Sys.WebForms.PageRequestManagerParserErrorException的解决方法
在使用UpdatePanel的时候,如果要用到Response.Write()方法,则会出错,错误信息内容大概如下:
Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled. Details: Error parsing near ' 你要输出的内容|UpdatePanel|U'
解决方法如下:
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
这样,问题就解决了。
下面是我的一个项目中的代码:
母版页前台代码:
1. <asp:ScriptManager runat="server" ID="ScriptManager1">
2. </asp:ScriptManager>
3. <asp:UpdatePanel ID="UpdatePanel1" runat="server">
4. <ContentTemplate>
5. <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
6. </asp:ContentPlaceHolder>
7. <asp:UpdateProgress ID="UpdateProgress1" runat="server">
8. <ProgressTemplate>
9. <table class="progressBox" style="width: 200px">
10. <tr>
11. <td>
12. <asp:Image runat="server" ID="imgLoad" ImageUrl="~/App_Themes/SkinFile/Images/animated_loading.gif" />
13. </td>
14. <td>
15. 正在从服务器下载数据...
16. </td>
17. </tr>
18. </table>
19. </ProgressTemplate>
20. </asp:UpdateProgress>
21. </ContentTemplate>
22. <asp:UpdatePanel>
23.
子页面后台代码:
1. protected void Page_Load(object sender, EventArgs e)
2. {
3. ((ScriptManager)Master.FindControl("ScriptManager1")).RegisterPostBackControl(btnExport);
4. }
这样,当按钮btnExport的单击事件中用到:Response.Write()方法时,就不会出现题目中的错误了。
分享到:
相关推荐
在使用ASP.NET AJAX时,可能会遇到一种特定的异常——`Sys.Webforms.PageRequestManagerParseErrorException`。这个异常通常发生在使用UpdatePanel进行异步更新时,由于服务器返回的响应内容无法被客户端的...
`sys.h`文件是这个工程模板的核心部分,通常包含了一些系统级别的初始化和控制函数,用于设置和管理MCU的基本功能。 `sys.h`测试例程是用来验证和展示`sys.h`中定义的功能的。在`sys.h`中,函数名和正点原子...
`sys.h`是STM32固件库中的一个头文件,包含了系统控制相关的函数声明和宏定义,为开发者提供了与系统时钟、中断、内存配置等核心功能交互的接口。以下将详细讲解`sys.h`中涉及的知识点: 1. **系统初始化**:在STM...
`sys.argv` 是 Python 标准库中的一个变量,它是一个列表,包含了运行 Python 脚本时在命令行中传递的所有参数。当你在命令行中执行一个 Python 程序时,`sys.argv[0]` 总是表示脚本的名称,而 `sys.argv[1]` 及其...
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别 os._exit() 和 sys.exit() os._exit() vs sys.exit() 概述 Python的程序有两中退出方式:os._exit(), sys.exit()。本文介绍这两种方式的...
### Oracle 审计表 Sys.Aud$ 授权与管理 #### 概述 在Oracle数据库管理系统中,审计功能是一项重要的安全特性,它记录了数据库的所有访问活动,包括但不限于登录、查询、更新等操作。这些审计记录通常存储在系统表...
【标题】"s8514sys.fon" 是一种字体文件,常见于Windows操作系统中。这类文件主要用于存储特定字体的样式和字符集,使得计算机能够显示或打印各种文字。在Windows系统中,fon文件是TrueType字体的一种格式,允许用户...
在Linux下做增加系统调用的实验的时候,我们会因为找不到sys.c文件而无法继续做下去,在此我和大家分享下我的问题的解决的方法
"STM32F0F4Px工程移用sys.h新建工程模板"正是这样一个为STM32F0系列微控制器设计的开发基础。 `sys.h`是系统级别的头文件,通常包含了与系统初始化、时钟配置、内存分配等相关的函数声明和宏定义。在这个模板中,`...
本篇文章将通过框图详细解析A-SPICE中的SYS.1需求挖掘、SYS.2系统需求分析以及SYS.3系统架构设计三个关键阶段。 首先,我们来看SYS.1需求挖掘。在这个阶段,开发团队会识别并记录所有相关的业务需求,包括用户需求...
CentOS 7.5 64位下编译好的lib_mysqludf_sys.so,源文件在https://download.csdn.net/download/shaynerain/10715798,我博客 中有介绍怎么用
电子-sys.h,单片机/嵌入式STM32-F0/F1/F2
System.Windows.Forms.TreeListView.dll
标题中的问题“ORACLE SYS.DBMS_REGISTRY_SYS has errors”指的是在Oracle数据库系统中,系统包BODY `SYS.DBMS_REGISTRY_SYS` 出现错误,导致了一系列的PL/SQL调用失败。这种错误通常与数据库的元数据注册功能有关,...
### Python中`sys.argv[]`用法详解 #### 前言 对于初学者而言,Python 的 `sys.argv[]` 可能是一个较为抽象的概念。本文旨在深入浅出地介绍 `sys.argv[]` 的功能与应用场景,帮助大家更好地理解如何在实际编程中...
《db2sys.dll:数据库系统的关键组件》 在IT领域,数据库系统是不可或缺的一部分,而db2sys.dll作为其中的一个动态链接库文件,扮演着至关重要的角色。本文将深入探讨db2sys.dll的功能、作用以及如何正确处理与之...
"impsys.rar_impsys_impsys.m_通信 干扰_通信干扰"这一标题暗示了一个专门针对通信干扰问题的模拟系统。这个压缩包包含了几个关键的MATLAB文件,如c_idsys_re.m、c_impsys.m和c_idsys.m,这些文件可能是用于仿真通信...
【sys.exe:U盘杀毒精灵系统免疫模块与反黑战士】 sys.exe 是一个与U盘杀毒精灵相关的系统免疫模块,它属于反病毒软件的一部分,主要任务是保护计算机免受通过USB设备(如U盘)传播的恶意软件攻击。在Windows操作...
标题中的"win10的sermouse.sys与serial.sys文件.rar"指向了这个问题的一个解决方案。 sermouse.sys和serial.sys是Windows 10系统中两个关键的驱动程序文件,它们分别对应鼠标串行端口(Serial Mouse)和串行端口...
注册脚本: ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "alert('error message');", true); 即可解决,困惑了我一下午。