部分更新不适用于母版页

问题描述 投票:0回答:2

我正在开发一个C#asp.net Web表单项目。它有两个母版页。我有一个用户控件从数据库中读取数据,在html字符串中创建一个无序列表,并用它填充占位符。此用户控件必须每2分钟自动刷新一次。我已将此usercontrol包含在父母版主页面中。我有以下代码刷新用户控件,我通过另一个stackoverflow答案获得。问题是整个母版页刷新,我不知道为什么。

有没有办法让只有具有UpdatePanel刷新的用户控件?

外主页:

  <body>
  <form id="frmMain" role="form" method="post" runat="server">
    <div>
       <uc2:PendingOrders runat="server" ID="PendingOrders" />
    </div>
    <asp:ContentPlaceHolder ID="MainBodyContent" runat="server">
    </asp:ContentPlaceHolder>
    </form>
 </body>

用户控制:

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

    <asp:Timer ID="Timer1" runat="server" Interval="20000" 
  OnTick="Timer1_Tick"></asp:Timer>

    <asp:PlaceHolder runat="server" id="lblMyOrders"></asp:PlaceHolder>

  </ContentTemplate>
   <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
    </Triggers>
   </asp:UpdatePanel>

用户控制代码背后:

   protected void Timer1_Tick(object sender, EventArgs e)
   {
      //This method creates the html string with data as an unordered list 
      and
      //populates asp:PlaceHolder inte updatepanel
      GetData();
    }
asp.net asp.net-ajax master-pages
2个回答
0
投票

UpdatePanel1的内容将由Timer1_Tick更新。 “整个母版页刷新”意味着当Timer1被触发时,母版页的Page_Load将被调用? UpdatePanel始终发布整个页面返回服务器并仅呈现UpdatePanel1的内容。


0
投票

我遇到了同样的问题,但是在我们的项目中,在主页上将EnablePartialRendering设置为false,如果设置为true,则整个项目都会中断。为了解决这个问题,我在没有ScriptManager的情况下定义了另一个母版页,并将ScriptManager添加到我想要使用UpdatePanels且EnablePartialRendering属性设置为True的页面中。这解决了这个问题。

<asp:ScriptManager ID="myScriptManager" runat="server" EnablePartialRendering="True"></asp:ScriptManager> 
© www.soinside.com 2019 - 2024. All rights reserved.