我在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);
}
我知道这是一个复杂的问题,但我真的很感激任何帮助。
答案 0 :(得分:1)
最终的解决方案是按原样使用上面的代码,但是在RowCreated事件中而不是RowDataBound。显然,ASP.NET的一个怪癖,有时事件顺序令人惊讶,似乎无法预测。出于同样的原因,我总是发现最好尽可能晚地注册JavaScript,所以我通常使用SaveStateComplete事件。