我有以下代码,它给出了绑定(bind)到对象数据源的 gridview 中的行数。
protected void odsProduct_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
lblHowManyRows.Text = ((List<tblProduct>)e.ReturnValue).Count.ToString();
可爱。
但是,在对象数据源生成 gridview 输出之前,我将如何进行本质上相同的计数?
我想做的是让用户有机会在他们实际创建 gridview(绑定(bind)到对象数据源)之前检查将返回多少行
ods 中有什么东西吗,还是我应该写另一个 linq 语句并将其绑定(bind)到它?
为我的无知道歉
最佳答案
好吧,你可以有一个像这样的 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;
}
将标签清空,以便用户可以继续选择。这样他们第一次点击时他们只会得到计数,下次他们点击时他们会得到完整的网格绑定(bind)。
如果是我,我很可能会通过 AJAX/webservice 检索完整的计数,而无需进行回发或根本不使用 gridview,但我不知道问题的完整上下文。
关于c# - ods_Selected 行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3310420/