View Full Version : شماره ردیف در دیتا گرید
hassan_RK
پنج شنبه 13 مرداد 1384, 18:07 عصر
با سلام
چطور باید در دیتا گرید یک ستون را برای ردیف در نظر گرفت
اگه امکان داره کد برنامه را بنویسید
با تشکر
Mahdavi
جمعه 14 مرداد 1384, 14:50 عصر
ابتدا یه ستون template به گرید اضافه کنید .
تابع زیر را بنویسید :
private int Count = 0;
public string Counter()
{
++Count;
return Count.ToString();
}
حال در ستون templateاضافه شده یک label گذاشته و خاصیت text اون با این تابع Bind کنید.
گرچه اگه تو همین بخش جستجو می کردید روشهای دیگه ای هم میتونستی پیدا کنی.
gole_maryam
یک شنبه 16 مرداد 1384, 07:25 صبح
سلام
من تابع زیر را نوشتم وخاصیت lable1.text ان را با خروجی تابع bind کردم ولی فقط در datagrid
یک ردیف شماره دارد
dim count as integer
function counter () as string
count=count+1
return count . tostring
end function
و به صورت زیر فراخوانی شده است
lable1.text=counter ()
با تشکر
Mahdavi
یک شنبه 16 مرداد 1384, 14:19 عصر
سلام
1- شما label رو تو همون ستون tempelate و در قسمت item گذاشتید ؟؟
2- آیا تو قسمت بایند به حالت custom رفتید و textرو bind کردید ؟
marmar
یک شنبه 16 مرداد 1384, 15:46 عصر
سلام
آقای مهدوی منم همین مشکل رو دارم
می شه بگید چجوری خاصیت text ,template رو با تابع بالا bind کنم؟
Mahdavi
یک شنبه 16 مرداد 1384, 22:20 عصر
<?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>
gole_maryam
دوشنبه 17 مرداد 1384, 06:52 صبح
سلام
مرسی از جواب مفیدی که دادید.
با تشکر
marmar
دوشنبه 17 مرداد 1384, 07:48 صبح
سلام
منم مرسی
اما کدش نیست بالا رو می گم کد جا افتاده میشه کدش رو دوباره بزنید
با شرمندگی
marmar
دوشنبه 17 مرداد 1384, 09:01 صبح
سلام
یه چیز دیگه
آقای مهدوی ممنون میشم اگه بگید توی شکل زیر حالت costom binding چی نوشتید آخه واضح نیست
مرسی
marmar
دوشنبه 17 مرداد 1384, 09:20 صبح
سلام
خیلی مرسی
واقعا مرسی
اینقدر باهاش ور رفتم تا درست شد
Mahdavi
دوشنبه 17 مرداد 1384, 13:52 عصر
این کدش:
...
<?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تی رو نمیتونم اینجا بنویسم
Behrouz_Rad
سه شنبه 18 مرداد 1384, 06:33 صبح
مهدوی جان!
فعلا به جای علامت بزرگتر-کوچکتر از حرف T استفاده کن تا ببینیم چی میشه.
hassan_RK
سه شنبه 18 مرداد 1384, 11:47 صبح
با سلام و تشکر از شما دوستان عزیز
من هنوز نتونستم در دیتا گرید یه ستون برای ردیف در نظر بگیرم
اگه یکی کد کاملش را اینجا بنویسه بر من منت گذاشته
با تشکر
Behrouz_Rad
سه شنبه 18 مرداد 1384, 15:30 عصر
منظورت از ستون واسه ردیف چیه؟
می خوای یه ستون ایجاد کنی؟
Mahdavi
چهارشنبه 19 مرداد 1384, 14:05 عصر
با سلام و تشکر از شما دوستان عزیز
من هنوز نتونستم در دیتا گرید یه ستون برای ردیف در نظر بگیرم
اگه یکی کد کاملش را اینجا بنویسه بر من منت گذاشته
با تشکر
تصاویر و توضیحات فکر کنم به اندازه کاف گویا باشه.
آقای Behrouz_Rad فکر کنم سوال این دوستمون به اندازه کافی گویا باشه. ایشون میخوان در گریدشون شماره ردیف داشته باشند !!!
Behrouz_Rad
چهارشنبه 19 مرداد 1384, 16:02 عصر
به این خاطر مجددا پرسیدم چون دیدم با پاسخ صحیحی که تو دادی، اما دوستمون هنوز مشکلش برطرف نشده.
به همین خاطر احتمال دادم شاید منظورش چیز دیگه ای باشه.
hassan_RK
چهارشنبه 19 مرداد 1384, 18:42 عصر
با سلام
و تشکر از شما
مشکلم حل شد
ali_reza_nazari
پنج شنبه 20 مرداد 1384, 03:12 صبح
میشه یک نمونه برنامه بگذارید
hassan_RK
جمعه 21 مرداد 1384, 20:42 عصر
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
همون توضیحاتی بود که دوستان دادند
rezaei manesh
دوشنبه 04 اردیبهشت 1385, 14:22 عصر
سلام
خوب حالا اگه دیتا گرید ما شامل چند صفحه باشه این کد درست کار نمی کنه ؟
یا اگر براساس یک ستون مرتب بشه
Behrouz_Rad
دوشنبه 04 اردیبهشت 1385, 15:29 عصر
با کمی خلاقیت، حل میشه!
فرض کن در هر صفحه از دیتاگرید، 10 رکورد نمایش داده میشه.
شماره ی صفحه ی جاری رو به دست بیار. یک واحد ازش کم کن. (چون نیاز داریم که اندیس شروع از صفر باشه)
در عدد 10 ضربش کن.
با مقدار Counter که از 1 شروع میشه جمعش کن.
به همین سادگی!
به این ترتیب، ساختاری همانند زیر برای صفحات 1 تا 3 ایجاد خواهد شد.
10 1
20 11
30 21
موفق باشید.
rezaei manesh
سه شنبه 05 اردیبهشت 1385, 12:02 عصر
سلام
آقا این خلاقیت رو من بخرج دادم قبل از دیدن جواب شما اما با کمی تفاوت
از این کد استفاده کردم
count = GrdRank.PageSize * GrdRank.CurrentPageIndex
در جایی که شماره صفحه تغیر می کنه یا موقع مرتب سازی مقدار شروع کانترم را با این کد محاسبه می کنم.
از توضیحات شما هم خیلی ممنون هستم
jeniferxp
چهارشنبه 10 بهمن 1386, 09:48 صبح
ا سلام وخسته نباشید
از کمکتون خیلی ممنون.ولی یک مشکلی برام پیش آمده زمانی که pagesizeرا از 30 بیشتر در نظر می گیرم وقتی صفحه بعد می روم ردیف را استباه نمایش می دهد.از طرفی زمانی به صفحه قبلی می رم باز بهcountاضافه می شود می شه کد مربوطه را برام بذارید.ممنون
hesam_a110
پنج شنبه 11 بهمن 1386, 12:01 عصر
درود بر شما
در صورتی که از sql 2005 استفاده می کنید می توانید از دستور خود sql استفاده کنید
SELECT ROW_NUMBER() OVER (ORDER BY Id) AS 'Row', Id, Text FROM TBNode
پیروز و نیک باشید
nemidonam
جمعه 12 بهمن 1386, 10:37 صبح
سلام
یک ستون template بسازید در قسمت کد asp آن کد زیر را بنوسید :
<asp:TemplateFieldHeaderText="ردیف">
<ItemTemplate>
<%# Container.DataItemIndex +1 %>
</ItemTemplate>
</asp:TemplateField>
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.