目前我正致力于将我们的网络应用程序从.Net 3.5迁移到.Net 4.6.1。在此迁移中,我们遇到的问题是Response.Redirect在UpdatePanel中控件不起作用。但后来我们找到了使用命令注册回发的解决方案。
ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnViewHistory);
此语句允许重定向页面,但随后出现另一个问题。
支持我们在UpdatePanel中使用2个按钮进行转发器控制1.编辑,2。ShowMessage。 如果用户进入页面并单击“编辑”按钮,则用户将被重定向到“编辑”页面。它现在工作正常。但是如果用户点击“ShowMessage”按钮,它会显示jQuery弹出一些消息并保持在同一页面上。弹出窗口关闭后,“编辑”按钮停止工作,单击它时不会发生重定向。在devTool中,它显示以下错误。
ScriptResource.axd?d=JnUc-DEDOM5KzzVKtsL1tThQiyHdLKhpowp3haErZKv6k2DZphOCMxhYOmqVubfNB4ASzRZ-WmXlbG…:885 Uncaught Sys.WebForms.PageRequestManagerParserErrorException: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed.
有人可以告诉我在部分回发后如何在UpdatePanel中做RegisterPostBackControls吗?
答案 0 :(得分:0)
我认为您正在寻找的是IsInAsyncPostBack。
protected void Page_Load(object sender, EventArgs e)
{
if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack == true)
{
//do stuff on partial postback
}
//if you want buttons in an updatepanel Repeater to trigger a full postback you need to register them for it
foreach (RepeaterItem item in Repeater1.Items)
{
Button btn = item.FindControl("Button1") as Button;
ScriptManager.GetCurrent(this).RegisterPostBackControl(btn);
}
}