我正在尝试从具有多个页面的gridview中显示工作小时数。
这就是我现在正在做的事情:
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();
是否有可能在将objectdatasource绑定到gridview之后从objectdatasource获取数据表,然后迭代它?除非我真的需要,否则我不想再打电话给数据库。
答案 0 :(得分:1)
是的,正如您已经意识到的那样,您只能获得一页的总数,因为您只是将这一页加起来。您可以像这样获得实际的ObjectDataSourceView
:
var view = this.dataSource.GetView() as ObjectDataSourceView;
然后你可以像这样发出Select
:
view.Select(null);
参数的类型为DataSourceSelectArguments
,因此如果您需要传入参数,则需要构建其中一个参数。