UpdatePanel与HtmlTextWriter输出流:PageRequestManagerParserErrorException

来源:互联网 发布:qq好友克隆软件下载 编辑:程序博客网 时间:2024/04/30 16:59

vs2008文件代码:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
<ContentTemplate>

    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    地区:
    <asp:DropDownList ID="ddl_region" runat="server"
 onselectedindexchanged="ddl_region_SelectedIndexChanged1"></asp:DropDownList>
    开发区:
    <asp:DropDownList ID="ddl_dept" runat="server" Width="120"></asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>

 

报错:

JavaScript Error:

msg: Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪。
详细信息: 分析附近的“<script type="text/j"时出错。

 

原因找到了,因为继承的基类中有以下代码:

protected override void Render(HtmlTextWriter writer)
{
    string script = topScript.ToString();
    if (!string.IsNullOrEmpty(script))
    {
       writer.Write(Func.GetScript(script));
    }
    base.Render(writer);

    script = bottomScript.ToString();
    if (!string.IsNullOrEmpty(script))
    {
       writer.Write(Func.GetScript(script));
    }
}

但是怎么解决呢,网上搜了两天,都没找到答案。。。。

:(

 

 

将输出流writer.Write(Func.GetScript(script));
改为:

topScript.Append(Func.GetScript(script));

ClientScript.RegisterStartupScript(this.GetType(), "", "<script>" + script + "</script>");

都失败了。。。

原创粉丝点击