Gridview上包含页的总计

本文关键字:包含页 Gridview | 更新日期: 2023-09-27 18:26:40

我试图显示一个有多个页面的网格视图的总工作小时数。

这就是我现在正在做的:

 protected void gwWorkhours_DataBound(object sender, GridViewRowEventArgs e)
    {
        int hour = 0;
        if (e.Row.DataItem != null)
        {
            string hours = DataBinder.Eval(e.Row.DataItem, "hours").ToString();
                Int32.TryParse(hours, out hour);
                completeCount += hour;
        }
    }

但它只显示了第一页的总数。

我使用ObjectDataSource来填充网格,如下所示:

 gwWorkhours.DataSourceID = "ObjectDataSource1";
        gwWorkhours.DataBind();

有没有可能在数据表绑定到gridview后从objectdatasource中获取数据表,然后对其进行迭代?除非迫不得已,否则我不想再调用数据库。

Gridview上包含页的总计

是的,正如你已经意识到的,你只得到一页的总数,因为你只加了那一页。你可以得到这样的实际ObjectDataSourceView

var view = this.dataSource.GetView() as ObjectDataSourceView;

然后你可以发出这样的Select

view.Select(null);

该参数的类型为DataSourceSelectArguments,因此如果需要传入参数,则需要构建其中一个参数。

  • Select文档
  • GetView文档