您的位置:首页 > 产品设计 > UI/UE

Sys.WebForms.PageRequestManagerParserErrorException错误

2010-05-21 11:11 495 查看
错误消息:

Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪。

发生状况:

页面使用了ajax的UpdatePanels,在使用excel导出时,使用了Response.WriteFile这样的方法,所以出现上述错误。

解决办法:

1、将使用了Response.Write的控件放到啊UpdatePanels外面,或者将UpdatePanels删除。当然大多数情况下,我们是不可以删除UpdatePanels的。

2、如果控件的名称是唯一的,可以使用在UpdatePanels里增加PostBackTrigger ,并制定controlid为你的控件:

<Triggers><asp:PostBackTrigger ControlID="btnExport" /></Triggers>

3、如果你的控件是动态的,比如在gridview每行中都有的按钮,可以使用ScriptManager.RegisterPostBackControl()来注册你的控件

protected void gvGirdView_RowDataBound(object sender, GridViewRowEventArgs e)
{
//不为表头
if (e.Row.RowType == DataControlRowType.DataRow)
{
//含有ajax的updatepanel的页面必须将想要使用Response.Write的控件注册PostBackControl
//本业务使用了excel导出,所以必须绑定

//我的业务用到了模板页,ScriptManager 定义在模板页上,所以使用this.Parent.Parent到上级去找ScriptManager

//实际可根据自己程序情况查找
ScriptManager smManage = (ScriptManager)this.Parent.Parent.FindControl("smManage ");
if (e.Row.FindControl("btExport") != null)
{
smManage .RegisterPostBackControl(e.Row.FindControl("btExport"));
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐