我在updatepanel中有一个gridview,我的下拉列表也是。从下拉列表的触发器中,我使用选定的值刷新gridview。一切正常。问题是我还在页面上显示gridview行计数,该计数也在updatepanel内。更新似乎正在发生,一个选择太晚了。
protected void Drop_Change(object sender, EventArgs e)
{
String Value = AjaxDrop.SelectedValue;
GridView1.SelectParameters["Target"].DefaultValue=Value;
RowCount.InnerText = GridView1.Rows.Count.ToString();
}
我认为它发生了一个选择,因为参数更新了gridview rowcount太晚而RowCount值没有它,在参数传递后获得实际值的工作是什么。只有我能想到的方法是使用javascript,我想知道这是否会起作用。我想要的解决方案是将它全部保留在服务器端。
答案 0 :(得分:1)
当你调用它时,GridView还没有完成它的数据绑定,因此该值无效。将RowCount.InnerText更新移动到在DataBinding事件之后执行的某个位置(例如Page_OnPreRender),或者在更新行计数之前强制执行DataBinding。
值得注意的是,如果使用GridView分页,GridView.Rows.Count不是可靠的信息源 - 因为这将是一个页面上的行数,即使查询返回的行数更多。