ورود

View Full Version : سوال: نشان دادن شماره هرسطر در دیتاگرید



Mostafa_Sabeti
یک شنبه 24 شهریور 1387, 12:48 عصر
من یک دیتاگرید دارم که می خواهم داخل ItemTemplate آن یک لیبل بگذارم و این لیبل، شماره هر سطر از آن دیتاگرید را نشان بدهد.
کسی راهی دارد پیش پای من بگذارد؟ خیلی ممنونم.

Amir Taghavi
یک شنبه 24 شهریور 1387, 13:37 عصر
<asp:TemplateField>
<ItemTemplate>
<%# Container.DataItemIndex + 1 %>
</ItemTemplate>
</asp:TemplateField>

Rambod
یک شنبه 24 شهریور 1387, 13:58 عصر
ميشه كمي در مورد Container توضيح بديد؟

در ضمن اگر ميخواين در Code Behind كد بنويسيد بايد از كد زير استفاده كنيد:




Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

Dim Label1 As Label
Try
Dim F As Integer
F = GridView1.Rows.Count
Label1 = CType(GridView1.Rows(F - 1).Cells(4).FindControl("Label1"), Label)
Label1.Text = GridView1.Rows(F - 1).DataItemIndex + 1
Catch ex As Exception
End Try
End Sub

Amir Taghavi
یک شنبه 24 شهریور 1387, 14:44 عصر
http://msdn.microsoft.com/en-us/library/858twd77.aspx

Amir Taghavi
یک شنبه 24 شهریور 1387, 15:41 عصر
چرا مقدار فیلد primary رو بایند نمی کنی.
البته باید مقدار رو اتو نامبر بزاری

بدلیل اینکه اگه ردیف 2 حذف بشه دیگه ردیف شماره 2 نداری. AutoNumber حذف شده هیچ وقت مجددا" ساخته نمیشه

ibd_iran
یک شنبه 24 شهریور 1387, 16:04 عصر
منظورت ردیف برای هر سطر است من در سایت گذاشتم که ردیف ایجاد می کنه و اگر یک رکورد اضافه یا کم شود درست کار کند

ibd_iran
یک شنبه 24 شهریور 1387, 16:15 عصر
یک ردیف ایجاد کن به نام ردیف بعد در متد گریو موقع ساخت کد زیر اضافه کن
یک متغیر در اول صفحه ایجاد کن


int count;

این متغییر را هر گاه عمل fill کردن اطلاعات انجام دادی یا پاک کردی صفر کن


if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[شماره همان سطر].Text = Convert.ToString(count = count + 1);
}

mp2009
دوشنبه 25 شهریور 1387, 00:07 صبح
به نظر من از این روشی که سویتمون گفتند استفاده کنید.
اخه سرعت توی این روش خیلی بیشتره.
منضورم این روش هستش
<asp:TemplateField>
<ItemTemplate>
<%# Container.DataItemIndex + 1 %>
</ItemTemplate>
</asp:TemplateField>

salehbagheri
دوشنبه 25 شهریور 1387, 23:03 عصر
دوست عزیز یه متغیر int بساز بعد با یه حلقه برای هر بار که رید می کنه یه ++ بکنه.بعد بایند کن توی گرید ویو.

کلا هر بار +=1 بکنه


این روش شما برای صفحات دوم و سوم و ... کار نمیکنه! دوباره از 1 شروع می کنه!