asp.net – 确定哪个UpdatePanel导致部分(异步)PostBack?
发布时间:2020-12-15 22:53:57 所属栏目:asp.Net 来源:网络整理
导读:在一个页面中包含两个UpdatePanels,如何知道哪个UpdatePanel导致部分PostBack? 我的意思是在Page_Load事件处理程序中. 这是我的代码: asp:ScriptManager ID="ScriptManager1" runat="server" /asp:ScriptManager asp:UpdatePanel ID="UpdatePanel1" runat=
在一个页面中包含两个UpdatePanels,如何知道哪个UpdatePanel导致部分PostBack?
我的意思是在Page_Load事件处理程序中. 这是我的代码: <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" onprerender="UpdatePanel1_PreRender"> <ContentTemplate> <A:u1 ID="u1" runat="server" /> </ContentTemplate> </asp:UpdatePanel> <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional" onprerender="UpdatePanel2_PreRender"> <ContentTemplate> <A:u2 ID="u2" runat="server" /> </ContentTemplate> </asp:UpdatePanel> 我尝试过这个代码,但是它并没有起作用! protected void Page_Load(object sender,EventArgs e) { if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack) { if (UpdatePanel1.IsInPartialRendering) { // never enter to here } if (UpdatePanel2.IsInPartialRendering) { // neither here } } } 任何帮助! 解决方法
您可以使用
UpdatePanel类的
IsInPartialRendering属性来确定特定面板是否导致部分回发:
protected void Page_Render(object sender,EventArgs e) { if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack) { if (yourFirstUpdatePanel.IsInPartialRendering) { // The first UpdatePanel caused the partial postback. } else if (yourSecondUpdatePanel.IsInPartialRendering) { // The second UpdatePanel caused the partial postback. } } } 编辑:在渲染阶段之前,IsInPartialRendering看起来总是假的.由于您在加载阶段需要该信息,因此无法正常工作.见this bug. 有一个解决方法documented here,其中包括从UpdatePanel派生您自己的类来访问其受保护的RequiresUpdate属性: public class ExtendedUpdatePanel : UpdatePanel { public bool IsUpdating { get { return RequiresUpdate; } } } 在页面标记中使用ExtendedUpdatePanel替换asp:UpdatePanel之后,上面的代码变成: protected void Page_Load(object sender,EventArgs e) { if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack) { if (yourFirstUpdatePanel.IsUpdating) { // The first UpdatePanel caused the partial postback. } else if (yourSecondUpdatePanel.IsUpdating) { // The second UpdatePanel caused the partial postback. } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何防止CPU占用100%,因为iis中的工作进程
- asp.net-mvc-3 – 避免服务器端Razor视图和客户端jQuery模板
- asp.net-membership – 泛型和ASP.Net成员资格提供者
- asp.net – 如何从身体绑定时自定义模型绑定器?
- asp-classic – 从Classic ASP执行存储过程
- asp.net – ASP错误:由于对象的当前状态,操作无效
- asp.net-mvc-3 – 具有ASP.NET MVC3和嵌入式Razor视图的插件
- ASP.net客户端ID模式
- asp.net-mvc – 我应该将.edmx和生成的POCO类放在哪一层?
- 在ASP.NET中使用区域5
推荐文章
站长推荐
- asp-classic – asp CDO.Message.1错误’8004021
- [你必须知道的.NET] 第三回:历史纠葛:特性和属
- “超频”处理ASP.NET应用的技术
- asp.net – 如何添加一个模板到一个UserControl?
- asp.net – 如何通过在MasterPage上单击按钮来处
- 从经典ASP检测移动用户代理并在会话启动时重定向
- asp.net – 是否可以使用Membership API更改用户
- iis-6 – 如何防止IIS覆盖我在ASP.NET中设置的文
- asp.net-mvc – 在ASP.NET MVC视图中递归
- asp.net-mvc – 从ASP.NET在Office Web Apps中打
热点阅读