在ContentPage使用时,ASP的UpdatePanel不起作用 [英] ASP UpdatePanel doesn't work when used in ContentPage

查看:243
本文介绍了在ContentPage使用时,ASP的UpdatePanel不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在一个正常的网页表单中使用时我的code正常工作。但是当我使用masterpages用它在一个WebForm,这是行不通的。


页头:〜/经理/ BaseManager.master


和一些嵌套的母版页:Base.master> Pages.master> BaseManager.master


ASP

 < ASP:的ScriptManager ID =ScriptManager1=服务器>< / ASP:ScriptManager的>
   < ASP:的UpdatePanel ID =UpdatePanel1=服务器的UpdateMode =条件>
      <&触发器GT;
         < ASP:AsyncPostBackTrigger事件名称=点击
              控件ID =btnUpdateEditPage/>
      < /触发器>
      <&的ContentTemplate GT;
         < ASP:标签ID =lblTest=服务器文本=标签>< / ASP:标签>
      < /&的ContentTemplate GT;
   < / ASP:的UpdatePanel>
< ASP:按钮的ID =btnUpdateEditPage的CssClass =btnUpdateEditPage=服务器
     文本=按钮的OnClick =btnUpdateEditPage_Click/>

C#

 保护无效btnUpdateEditPage_Click(对象发件人,EventArgs的发送)
{
   lblTest.Text + =**;
}


解决方案

执行以下操作请:

1-添加UpdatePanel1.Update();如下所示:

 保护无效btnUpdateEditPage_Click(对象发件人,EventArgs的发送)
{
   lblTest.Text + =**;
   UpdatePanel1.Update();
   //你的UpdatePanel应的UpdateMode =有条件因为你现在有什么..
}

2 - 把更新面板内的按钮

3删除触发器不火后回来,所以你的code具有如:

 < ASP:的ScriptManager ID =ScriptManager1=服务器>< / ASP:ScriptManager的>
   < ASP:的UpdatePanel ID =UpdatePanel1=服务器的UpdateMode =条件>
      <&的ContentTemplate GT;
         < ASP:标签ID =lblTest=服务器文本=标签>< / ASP:标签>
         < ASP:按钮的ID =btnUpdateEditPage的CssClass =btnUpdateEditPage=服务器
                文本=按钮的OnClick =btnUpdateEditPage_Click/>
      < /&的ContentTemplate GT;
   < / ASP:的UpdatePanel>

My code works fine when used in a normal webform. but when I use it in a webform using masterpages, It doesn't work.


page header : ~/Manager/BaseManager.master


and some nested master pages : Base.master > Pages.master > BaseManager.master


ASP

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
   <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
      <Triggers>
         <asp:AsyncPostBackTrigger EventName="Click"
              ControlID="btnUpdateEditPage" />
      </Triggers>
      <ContentTemplate>
         <asp:Label ID="lblTest" runat="server" Text="Label"></asp:Label>
      </ContentTemplate>
   </asp:UpdatePanel>
<asp:Button ID="btnUpdateEditPage" CssClass="btnUpdateEditPage" runat="server"  
     Text="Button" OnClick="btnUpdateEditPage_Click" />

C#

protected void btnUpdateEditPage_Click(object sender, EventArgs e)
{
   lblTest.Text += "**";
}

解决方案

Do the following please:

1- Add UpdatePanel1.Update(); like the following:

protected void btnUpdateEditPage_Click(object sender, EventArgs e)
{
   lblTest.Text += "**";
   UpdatePanel1.Update();
   //Your UpdatePanel should be UpdateMode="Conditional" as what you have now..
}

2- Put the button inside the update Panel

3- Remove the Trigger to not fire a post back, so your code has to be like:

 <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
   <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
      <ContentTemplate>
         <asp:Label ID="lblTest" runat="server" Text="Label"></asp:Label>
         <asp:Button ID="btnUpdateEditPage" CssClass="btnUpdateEditPage" runat="server"  
                Text="Button" OnClick="btnUpdateEditPage_Click" />
      </ContentTemplate>
   </asp:UpdatePanel>

这篇关于在ContentPage使用时,ASP的UpdatePanel不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆