با سلام
چطور باید در دیتا گرید یک ستون را برای ردیف در نظر گرفت
اگه امکان داره کد برنامه را بنویسید
با تشکر
با سلام
چطور باید در دیتا گرید یک ستون را برای ردیف در نظر گرفت
اگه امکان داره کد برنامه را بنویسید
با تشکر
ابتدا یه ستون template به گرید اضافه کنید .
تابع زیر را بنویسید :
private int Count = 0;
public string Counter()
{
++Count;
return Count.ToString();
}
حال در ستون templateاضافه شده یک label گذاشته و خاصیت text اون با این تابع Bind کنید.
گرچه اگه تو همین بخش جستجو می کردید روشهای دیگه ای هم میتونستی پیدا کنی.
سلام
من تابع زیر را نوشتم وخاصیت lable1.text ان را با خروجی تابع bind کردم ولی فقط در datagrid
یک ردیف شماره دارد
dim count as integer
function counter () as string
count=count+1
return count . tostring
end function
و به صورت زیر فراخوانی شده است
lable1.text=counter ()
با تشکر
سلام
1- شما label رو تو همون ستون tempelate و در قسمت item گذاشتید ؟؟
2- آیا تو قسمت بایند به حالت custom رفتید و textرو bind کردید ؟
سلام
آقای مهدوی منم همین مشکل رو دارم
می شه بگید چجوری خاصیت text ,template رو با تابع بالا bind کنم؟
<?xml:namespace prefix = asp /><asp:TemplateColumn headertext="ردیف"><asp:Label id=Label1 text="<%# Count() %>" runat="server">
این یه راه :
<asp:Label id=Count runat="server" Text="<%# Count() %>">
</asp:Label><ITEMTEMPLATE><asp:Label id=Label1 runat="server" Text="<%# Count() %>"></asp:Label></ITEMTEMPLATE><ITEMTEMPLATE><asp:Label id=Label1 runat="server" Text="<%# Count() %>"></asp:Label></ITEMTEMPLATE>
و تصویر هم یه راه:</asp:Label></asp:TemplateColumn>
آخرین ویرایش به وسیله Mahdavi : یک شنبه 16 مرداد 1384 در 22:25 عصر
سلام
مرسی از جواب مفیدی که دادید.
با تشکر
سلام
منم مرسی
اما کدش نیست بالا رو می گم کد جا افتاده میشه کدش رو دوباره بزنید
با شرمندگی
سلام
یه چیز دیگه
آقای مهدوی ممنون میشم اگه بگید توی شکل زیر حالت costom binding چی نوشتید آخه واضح نیست
مرسی
سلام
خیلی مرسی
واقعا مرسی
اینقدر باهاش ور رفتم تا درست شد
این کدش:
...
<?xml:namespace prefix = asp /><asp:Label id=lbCount runat="server" Text="<%# Count() %>"></asp:Label>
...
<asp:TemplateColumn>
<ITEMTEMPLATE>
<asp:Label id=lbCount runat="server" Text="<%# Count() %>"></asp:Label>
</ITEMTEMPLATE>
</asp:TemplateColumn><asp:TemplateColumn>
<ITEMTEMPLATE>
<asp:Label id=lbCount runat="server" Text="<%# Count() %>"></asp:Label>
</ITEMTEMPLATE>
</asp:TemplateColumn>
و تو اون اسمه تابع رو نوشتم : Count()
قابل توجه آقای کرامتی::: من هیچ کد asp.netتی رو نمیتونم اینجا بنویسم
آخرین ویرایش به وسیله Mahdavi : دوشنبه 17 مرداد 1384 در 13:57 عصر
مهدوی جان!
فعلا به جای علامت بزرگتر-کوچکتر از حرف T استفاده کن تا ببینیم چی میشه.
با سلام و تشکر از شما دوستان عزیز
من هنوز نتونستم در دیتا گرید یه ستون برای ردیف در نظر بگیرم
اگه یکی کد کاملش را اینجا بنویسه بر من منت گذاشته
با تشکر
منظورت از ستون واسه ردیف چیه؟
می خوای یه ستون ایجاد کنی؟
تصاویر و توضیحات فکر کنم به اندازه کاف گویا باشه.نوشته شده توسط hassan_RK
آقای Behrouz_Rad فکر کنم سوال این دوستمون به اندازه کافی گویا باشه. ایشون میخوان در گریدشون شماره ردیف داشته باشند !!!
به این خاطر مجددا پرسیدم چون دیدم با پاسخ صحیحی که تو دادی، اما دوستمون هنوز مشکلش برطرف نشده.
به همین خاطر احتمال دادم شاید منظورش چیز دیگه ای باشه.
با سلام
و تشکر از شما
مشکلم حل شد
میشه یک نمونه برنامه بگذارید
1.اول از همه باید یه lable رو Formet ایجاد کنی
2.بعدش رو datagrid کلیک راست کنpropertebilderرو انتخواب کن
بعد از column یه tamplate انتخواب کن ok بزنی در datagridet یه ستون جدید اضافه می شه دوباره رو datagrid کلیک راست کن edit tamplateرو انتخواب کن(رو نام اون ستونی که اضافه کردی کلیک کن حالت datagridetعوض می شه
3.lableکه در اول کار ساختی رو بکش با موس بیار رو قسمت item قرار بده
4.روی lableکلیک کن (انتخوابش کن)بورو تو قسمت propertyروی ردیف اول bildکلیک کن یه پنجره ای جدید باز میشه سمت چپ پنجره رو text کلیک کن بعد بیا حالت costom رو انتخواب کن تو قسمت costom بنویس
()Counter
5.کد زیر رو تو قسمت viewcodeفرمت بنویس
dim count as integer=0
function counter () as string
count=count+1
return count . tostring
end function
همون توضیحاتی بود که دوستان دادند
سلام
خوب حالا اگه دیتا گرید ما شامل چند صفحه باشه این کد درست کار نمی کنه ؟
یا اگر براساس یک ستون مرتب بشه
با کمی خلاقیت، حل میشه!
فرض کن در هر صفحه از دیتاگرید، 10 رکورد نمایش داده میشه.
شماره ی صفحه ی جاری رو به دست بیار. یک واحد ازش کم کن. (چون نیاز داریم که اندیس شروع از صفر باشه)
در عدد 10 ضربش کن.
با مقدار Counter که از 1 شروع میشه جمعش کن.
به همین سادگی!
به این ترتیب، ساختاری همانند زیر برای صفحات 1 تا 3 ایجاد خواهد شد.
موفق باشید.
10 1
20 11
30 21
سلام
آقا این خلاقیت رو من بخرج دادم قبل از دیدن جواب شما اما با کمی تفاوت
از این کد استفاده کردم
count = GrdRank.PageSize * GrdRank.CurrentPageIndex
در جایی که شماره صفحه تغیر می کنه یا موقع مرتب سازی مقدار شروع کانترم را با این کد محاسبه می کنم.
از توضیحات شما هم خیلی ممنون هستم
آخرین ویرایش به وسیله rezaei manesh : سه شنبه 05 اردیبهشت 1385 در 14:47 عصر
ا سلام وخسته نباشید
از کمکتون خیلی ممنون.ولی یک مشکلی برام پیش آمده زمانی که pagesizeرا از 30 بیشتر در نظر می گیرم وقتی صفحه بعد می روم ردیف را استباه نمایش می دهد.از طرفی زمانی به صفحه قبلی می رم باز بهcountاضافه می شود می شه کد مربوطه را برام بذارید.ممنون
درود بر شما
در صورتی که از sql 2005 استفاده می کنید می توانید از دستور خود sql استفاده کنید
SELECT ROW_NUMBER() OVER (ORDER BY Id) AS 'Row', Id, Text FROM TBNode
پیروز و نیک باشید
سلام
یک ستون template بسازید در قسمت کد asp آن کد زیر را بنوسید :
<asp:TemplateFieldHeaderText="ردیف">
<ItemTemplate>
<%# Container.DataItemIndex +1 %>
</ItemTemplate>
</asp:TemplateField>