我有以下代码,它给出了绑定到对象数据源的gridview中的行数。
protected void odsProduct_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
lblHowManyRows.Text = ((List<tblProduct>)e.ReturnValue).Count.ToString();
可爱。
但是,在对象数据源生成gridview输出之前,我将如何进行基本相同的计数呢?
我要做的是让用户有机会检查在实际创建gridview之前返回的行数(绑定到对象数据源)
是否有东西存在于ods中,或者我应该只写另一个linq语句并将其绑定到那个?
为我的无知道歉
答案 0 :(得分:0)
好吧,你可以有一个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检索完整的计数,而不进行回发或完全使用gridview,但我不知道问题的完整上下文。