zoukankan      html  css  js  c++  java
  • Sys.WebForms.PageRequestManagerParserErrorException:无法分析从服务器收到的消息

    我引起此原因的功能如下:

    在aspx页面添加按钮

    JS方法:

    function downPPT() { $("#Btn_DownPPT").click();    }

    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="~/Business/DataQuery/NavagationInfo.svc" />
            </Services>
        </asp:ScriptManager>

    …………

    <td>
     <input type="button" runat="server" class="normalBtn" id="BtnDownPPT" value="公报下载" onclick="downPPT();" visible="false" /> &nbsp;&nbsp;&nbsp;
    </td>

     <div id="div_AdvanceQuery" style=" 100%; display: none;">
            <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <Triggers>
                    <asp:PostBackTrigger ControlID="Btn_DownPPT" />
                </Triggers>
                <ContentTemplate>

     <asp:Button ID="Btn_DownPPT" runat="server" Text=" 公报下载 " CssClass="displayNone"
                        OnClick="Btn_DownPPT_Click" />

    ………… </ContentTemplate>
            </asp:UpdatePanel>
        </div>

    …………  </form>
    </body>

    aspx.cs方法

     protected void Btn_DownPPT_Click(object sender, EventArgs e)
            {

    …………   Response.WriteFile(file.FullName);…………}

    以下是转载: http://blog.csdn.net/wjr_loves/article/details/7357759

    报上述错误的常见的原因是:通过调用Response.Write()修改相应时,将启用响应筛选器、HttpModules或服务器追踪。

    详细信息:分析附近的“输出内容”时出错。

    解决方法如下:  

    1.如果调用Response.Write()方法的服务器控件在使用UpdatePanel的页面,则只需要在UpdatePanel下增加一个<Triggers>节点,通过PostBackTrigger注册一下改控件就可以了。代码如下:  

      1. <asp:ScriptManager ID="ScriptManager1" runat="server">  
      2. </asp:ScriptManager>  
      3. <asp:UpdatePanel ID="UpdatePanel1" runat="server">  
      4. <Triggers>  
      5. <asp:PostBackTrigger ControlID="Button2" /> <!--Button2就是下面那个需要在Button2_Click事件里使用Response.Write()的按钮ID-->  
      6. </Triggers>  
      7. <ContentTemplate>   
      8. <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" />  
      9. <asp:UpdateProgress ID="UpdateProgress1" runat="server">  
      10. <ProgressTemplate></ProgressTemplate>  
      11. </asp:UpdateProgress>  
      12. </ContentTemplate>  
      13. </asp:UpdatePanel>  

    2.但是,如果是在母版页中使用UpdatePanel,则不能通过以上方法来解决,否则或出现类似以下错误:  

    A control with ID 'btnExport' could not be found for the trigger in UpdatePanel 'UpdatePanel1'.  

    这主要是UpdatePanel1找不到<asp:PostBackTrigger ControlID="btnExport" />中注册的控件,因为,我们一般没有在母版页中添加这个控件(btnExport)。(当然,如果在UpdatePanel的<ContentTemplate> 节点下添加了ID为btnExport的控件,则不会出错。)  

    如果出现这样的错误该怎么办呢,我的解决方法是在需要用到Response.Write()方法的控件所在页码的Page_Load事件中添加如下代码:  
    ((ScriptManager)Master.FindControl("ScriptManager1")).RegisterPostBackControl(btnExport);  

    //ScriptManager1是<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>的ID 


     

  • 相关阅读:
    Nmap手册
    练习题,新建数据库anyun
    Centos6.5
    七丶人生苦短,我用python【第七篇】
    六丶人生苦短,我用python【第六篇】
    五、人生苦短,我用python【第五篇】
    linux 创建连接命令 ln -s 软连接
    激活phpstorm10.0.1
    php 数组合并方法
    通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效
  • 原文地址:https://www.cnblogs.com/xuxin-1989/p/3896502.html
Copyright © 2011-2022 走看看