ASP.NET GridView和UpdatePanel

时间:2010-03-25 12:04:06

标签: asp.net ajax gridview updatepanel postback

我在GridView内的UserControl内有一个UpdatePanel

Button中有GridView需要触发PostBack。会发生什么: 用户点击Button - > RowCommand火灾 - >自定义事件在UserControl - >上引​​发页面检测到此项并更改MultiView的活动视图索引以及页面标题和UpdatePanel之外的其他一些控件。

问题是,页面以异步方式回发,页面标题发生了更改,但是由于未发生完整PostBack,因此不需要执行完整PostBack的操作。

要将按钮注册为我正在使用的PostBack触发器:

ImageButton btnResults = e.Row.FindControl("btnResults") as ImageButton;
ScriptManager scrCurrent = ScriptManager.GetCurrent(this.Page);
if (btnResults != null && scrCurrent != null) {
    scrCurrent.RegisterPostBackControl(btnResults);
}

我知道这是一个复杂的问题,但我真的很感激任何帮助。

1 个答案:

答案 0 :(得分:1)

最终的解决方案是按原样使用上面的代码,但是在RowCreated事件中而不是RowDataBound。显然,ASP.NET的一个怪癖,有时事件顺序令人惊讶,似乎无法预测。出于同样的原因,我总是发现最好尽可能晚地注册JavaScript,所以我通常使用SaveStateComplete事件。