【问题标题】:count number of entries in grid view with paging enabled在启用分页的情况下计算网格视图中的条目数
【发布时间】:2015-03-05 04:39:13
【问题描述】:

我有一个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;
    }

但这给了我一些错误的价值

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    您可以使用 SQLDataSource 的 Selected 事件,并使用 Affected 属性获取记录数,如下所示:-

    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();
    }
    

    【讨论】:

    • 嗨,Rahul,我已经尝试过了。它给了我一些错误的价值。
    • 它给了我一个 1063 的值。gridView 中只有 12 个条目。第一页中有 10 个,第二页有 2 个。我认为它计算了正在解析的行数之类的。
    • 我没有完成就输入了评论:P
    • @user1698232 - 我认为您的代码中还有其他原因导致了这种情况,因为这两个代码对我来说都可以正常工作。
    • @user1698232 - 干杯:)
    【解决方案2】:

    退后一步。你从哪里得到数据?如果您要绑定到数据表,那么只需计算那里的行数。如果调用带有开始行和结束行参数的存储过程并返回表,请将其更改为发送数据集。数据集中的第一个表是您的数据,第二个表是只包含计数的表。

    【讨论】:

    • 我正在使用 SqlDataSource。我试着按照你说的做。我在源代码上使用了 OnSelected 事件。我将显示代码作为对问题的编辑:)
    【解决方案3】:

    检查一下,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;
    }
    

    检查此链接

    Total Row Count SqlDataSource GridView

    Records count in asp.net gridview with SQL data source & Paging

    或者您可以添加row_number 列作为行数,如

    select row_number() over(order by pin) a , others column from yourtable
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-10
      • 2012-07-03
      • 2020-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 2011-06-09
      相关资源
      最近更新 更多