部分更新不适用于母版页

时间:2017-05-07 14:17:00

标签: asp.net asp.net-ajax master-pages

我正在开发一个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();
    }

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

<asp:ScriptManager ID="myScriptManager" runat="server" EnablePartialRendering="True"></asp:ScriptManager>