计数启用分页的网格视图中的条目数

本文关键字:视图 网格 分页 启用 | 更新日期: 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