计数启用分页的网格视图中的条目数
本文关键字:视图 网格 分页 启用 | 更新日期: 2024-10-18 20:35:57
我有一个TextBox
,我想在其中显示我的GridView
中的条目数。
count2.Text += (GV.Rows.Count).ToString();
分页已启用,但它只统计第一页中的条目。
如何确保它统计所有条目?
我试过这个:
<asp:SqlDataSource ProviderName="System.Data.SqlClient" ID = "sourceProducts" runat = "server" ConnectionString =" <%$ ConnectionStrings:DB %> " SelectCommand = "myqueryhere" OnSelected="sourceProducts_Selected">
protected void sourceProducts_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
z = e.AffectedRows;
}
但这给了我一些错误的值
您可以使用SQLDataSource的Selected事件,并使用Impacted属性获取记录数,如下所示:-
protected void sourceProducts_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
count2.Text = e.AffectedRows.ToString();
}
编辑:
protected void Page_Load(object sender, EventArgs e)
{
System.Data.DataView dataView = (DataView)sourceProducts
.Select(DataSourceSelectArguments.Empty);
count2.Text = dataView .Count.ToString();
}
后退一步。你从哪里得到数据的?如果您绑定到一个数据表,那么只需计算其中的行数。如果调用一个具有开始行和结束行参数的存储过程并返回一个表,请将其更改为返回一个数据集。数据集中的第一个表将是您的数据,第二个表仅包含计数。
只要检查一下,selected method
中的结果会是什么
protected void sourceProducts_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
int startRowOnPage = (GridView1.PageIndex * GridView1.PageSize) + 1;
int lastRowOnPage = startRowOnPage + GridView1.Rows.Count - 1;
int totalRows = e.AffectedRows;
count2.Text = "Showing " + startRowOnPage.ToString() +
" - " + lastRowOnPage + " of " + totalRows;
}
检查这个链接
SqlDataSource GridView 总行数
使用SQL数据源在asp.net网格视图中记录计数;寻呼
或者可以像一样将row_number
列添加为行计数
select row_number() over(order by pin) a , others column from yourtable