PDA

View Full Version : شمارش رکورد های گریدویو



pedram_ns
شنبه 25 مهر 1388, 15:05 عصر
سلام
من با کدهای زیر تعداد صفحات و رکورد های گریدویو رو می شمارم
مشکل اینه که اگه تعداد صفحات از یک صفحه بیشتر بشه تنها رکوردهای یک صفحه شمارش می شه نه همه رکورد ها باید چه کنم؟

count = GridView1.Rows.Count
page = GridView1.PageCount

آریوس1985
شنبه 25 مهر 1388, 15:45 عصر
سلام
عموما یک گریدویو با یک DataSet یا DataTable پر میشه. اگر گرید شما هم با یک DataTable پر میشه، پیشنهاد میکنم تعداد سطر های DataTable را شمارش کنید

DataTable dt = new DataTable();
if (laptop.ReqListInfo(dt))
{
if (dt.Rows.Count > 0) lblSearchCount.Text = dt.Rows.Count + " رکورد یافت شد ";
else lblSearchCount.Text = "رکوردی یافت نشد!";

gdView.DataSource = dt;
gdView.DataBind();
hdnFieldRowCount.Value = gdView.Rows.Count.ToString();
}

pedram_ns
شنبه 25 مهر 1388, 16:00 عصر
راستش من تازه کارم و نمی دونم dataset و data table چیه.
من از کنترل گریدویو خود برنامه استفاده می کنم و کدهاش رو تغییر نمی دم اگه بازم کمکی هست دریغ نکنید.
لطفا به زبان vb باشه.

a_true_2004
یک شنبه 26 مهر 1388, 00:29 صبح
سلام
در این کد ستونی برای نمایش شماره ردیف نیاز هست. نمیدونم درست متوجه منظور شما شدم یا نه؟
این کد رو از بین کدهای دوست خوبم آقای راد در آوردم که مربوط به نسخه 6 پروژه Gridview Function است.
اصل کد ایشون VB هست که من برای نیاز خودم اون رو C#‎ کردم.
مواد مورد نیاز ::لبخندساده:
1- یک ستون از نوع TemplateField که دارای کنترلی با نام litRowNumberNormal باشد.
2- از Propertyهای مربوط به گریدویو در قسمت DataKeyNames ، نام فیلد کلید اصلی از جدول دیتابیس رو وارد کنید.(فراموش نکنید که این فیلد باید همراه دیگر فیلدها از DB خوانده شود.)(مثلاً ID)

نکته : grdCongress نام گریدویو در این کد است.
رویداد grdCongress_RowCreated برای اختصاص دادن شماره سطری که تا آن لحظه ایجاد شده به کنترل litRowNumberNormal.

تابع GridViewRowsIndexing برای بدست آوردن شماره سطر با احتساب شماره صفحه و تعداد سطر موجود در هر صفحه.

رویداد grdCongress_PageIndexChanging رو مجبور شدم بنویسم. شما بدون این رویداد بنویسید اگر جواب نداد اونوقت این رویداد رو هم اضافه کنید.


protectedvoid grdCongress_RowCreated(object sender, GridViewRowEventArgs e)
{
Literal ref_LitRowNumberNormal = newLiteral();
if (e.Row.DataItem != null)
{
ref_LitRowNumberNormal = (Literal)e.Row.FindControl("litRowNumberNormal");
if (grdCongress.PageIndex != 0)
ref_LitRowNumberNormal.Text = GridViewRowsIndexing(grdCongress.PageIndex + 1, 5, e.Row.RowIndex);
else
ref_LitRowNumberNormal.Text = GridViewRowsIndexing(0, 5, e.Row.RowIndex);
}
}
protectedstring GridViewRowsIndexing(int PageIndex, int PageSize, int RowIndex)
{
string resultIndex;
resultIndex = ((PageIndex * PageSize) + 1 + RowIndex).ToString();
return resultIndex;
}
protectedvoid grdCongress_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
grdCongress.PageIndex = e.NewPageIndex;
grdCongress.DataBind();
}

pedram_ns
یک شنبه 26 مهر 1388, 08:44 صبح
کدهای دوستان c# که من بلد نیستم و کمی گیج شدم.
من کدم رو اینطور ادامه دادم که در اینجا تعداد صفحات رو غیر از صفحه آخر (1-) رو در pagesize که 10 است ضرب می کنه و تعداد رکورد های این صفحات بدست میاد حالا کدی می خوام که فقط تعداد رکورد های صفحه آخر رو بده تا باش جمع کنم آیا چنین کاری می شه؟
کمک vb لطفا.

If page <> 0 Then
count = (page - 1) * 10
End If

pedram_ns
دوشنبه 27 مهر 1388, 13:40 عصر
این کدی که توسط دوستمون ارایه شده بازم تعداد رکورد های یک صفحه رو می شماره چطور تمام رکورد های رو در تمام صفحات بخونم لطفا کمک کنید.

Hossein Bazyan
دوشنبه 27 مهر 1388, 14:46 عصر
این کدی که توسط دوستمون ارایه شده بازم تعداد رکورد های یک صفحه رو می شماره چطور تمام رکورد های رو در تمام صفحات بخونم لطفا کمک کنید.
سلام
بهترین و دقیقترین روش پستهای 3 و 4 میباشند.
اینهم معادل کد پست شماره 3



Dim dt As New DataTable()
If laptop.ReqListInfo(dt) Then
If dt.Rows.Count > 0 Then
lblSearchCount.Text = dt.Rows.Count + " رکورد یافت شد "
Else
lblSearchCount.Text = "رکوردی یافت نشد!"
End If

pedram_ns
سه شنبه 28 مهر 1388, 09:00 صبح
با تشکر از شما
این کد در datatable و laptop ارور می ده می شه بگین دقیقا این دو چی هستن؟
نام گریدویو من gridview1 است آیا هیچ ارتباطی بین این گریدویو و این کد نباید باشه؟
با سپاس

Hossein Bazyan
سه شنبه 28 مهر 1388, 09:41 صبح
با تشکر از شما
این کد در datatable و laptop ارور می ده می شه بگین دقیقا این دو چی هستن؟
نام گریدویو من gridview1 است آیا هیچ ارتباطی بین این گریدویو و این کد نباید باشه؟
با سپاس

سلام
دوست عزیز این کد مال من نیست بلکه مال پست شماره 3 بود که به وی بی تبدلش کردم
اما laptop یک متغییر است که دوستمون انتخاب کرده .
شما برای پرکردن گرید ویو از چه روشی استفاده میکنید؟
برای اینکار باید دیتا ست تعریف و سپس دیتاتیبل و اخر سر گریدویو با دیتا تیبل پر شود حال در دیتا تیبل میتوان تعداد روردها را شمرد.
باز متوجه نشدی بگو مثال بزنم

pedram_ns
سه شنبه 28 مهر 1388, 09:48 صبح
من از کنترل برنامه استفاده کردم و این هم کد گریدویو منه .

<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" CellPadding="4"
DataKeyNames="ID" DataSourceID="Data" ForeColor="#333333" GridLines="None"
Width="100%"
style="font-family: Tahoma; font-size: 8pt; text-align: center"
BorderColor="Black" BorderWidth="2px" ShowFooter="True">
<RowStyle BackColor="#F8F8F8" ForeColor="#333333" />
<Columns>
<asp:BoundField DataField="City" HeaderText="شهر" SortExpression="City" />
<asp:BoundField DataField="name" HeaderText="نام" SortExpression="name" />
<asp:BoundField DataField="family" HeaderText="نام خانوادگی" SortExpression="family" />
</Columns>
<FooterStyle BackColor="White" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center"
Font-Bold="False" Font-Size="14pt" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White"
Font-Names="b mitra" Font-Size="11pt" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>

Hossein Bazyan
سه شنبه 28 مهر 1388, 10:22 صبح
من از کنترل برنامه استفاده کردم و این هم کد گریدویو منه .

<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" CellPadding="4"
DataKeyNames="ID" DataSourceID="Data" ForeColor="#333333" GridLines="None"
Width="100%"
style="font-family: Tahoma; font-size: 8pt; text-align: center"
BorderColor="Black" BorderWidth="2px" ShowFooter="True">
<RowStyle BackColor="#F8F8F8" ForeColor="#333333" />
<Columns>
<asp:BoundField DataField="City" HeaderText="شهر" SortExpression="City" />
<asp:BoundField DataField="name" HeaderText="نام" SortExpression="name" />
<asp:BoundField DataField="family" HeaderText="نام خانوادگی" SortExpression="family" />
</Columns>
<FooterStyle BackColor="White" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center"
Font-Bold="False" Font-Size="14pt" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White"
Font-Names="b mitra" Font-Size="11pt" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>

سلام
دوست عزیز شما گرید ویو را با DataSourceID="Data" یعنی با data پر کرده ای یعنی دیتا تیبیل شما همان data باید باشه