我有下面这段代码,它提供了绑定到对象数据源的网格视图中的行数。
protected void odsProduct_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
lblHowManyRows.Text = ((List<tblProduct>)e.ReturnValue).Count.ToString();可爱的。
但是,在对象数据源生成网格视图输出之前,我如何进行本质上相同的计数?
我尝试做的是让用户有机会在实际创建网格视图(绑定到对象数据源)之前检查将返回多少行
ods中是否存在某些东西,或者我是否应该编写另一个linq语句并将其绑定到ods中?
为我的无知道歉
发布于 2010-08-07 01:44:19
好的,你可以有一个这样的OnSelecting事件:
protected void OnSelecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
if (lblHowManyRows.Text == string.Empty)
{
e.Cancel = true;
lblHowManyRows.Text = [Linq statement here].Count().ToString();
}
}它第一次将标签设置为计数,并在下一次检索数据。
下一次,lblHowManyRows将不会为空,因此它将到达您的odsProduct_Selected方法:
protected void odsProduct_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
lblHowManyRows.Text = string.Empty;
}清空标签,以便用户可以继续选择。这样,他们第一次点击时,他们只得到计数,而下一次点击时,他们得到整个网格的边界。
如果是我,我很可能会通过AJAX/webservice检索完整的计数,而根本不做回发或使用网格视图,但我不知道问题的完整上下文。
https://stackoverflow.com/questions/3310420
复制相似问题