2013-12-09 83 views
0

我有一個默認的VS 2013 ASP.NET網絡表單項目包含一個ScriptManager和包含一個UpdatePanel內容頁母版頁。這是我在內容頁的裏面的ContentPlaceHolder:按鈕單擊一個UpdatePanel之外導致面板刷新

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 
    <asp:UpdatePanel runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      Updated at: <%=DateTime.Now.ToString() %> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    <asp:Button Text="Click" runat="server" /> 
</asp:Content> 

每次我點擊「點擊」按鈕,在UpdatePanel裏面的時間被刷新,甚至當我將UpdateMode設置爲「條件」。

我的理解是,ASP.NET代碼來顯示時間應該得到執行僅在第一次我得到的頁面,然後通過面板定義的觸發器(作爲面板的更新模式是有條件的)。

我錯了嗎?如果是這樣,爲什麼?

+1

這可能幫助:http://forums.asp.net/t/ 1786512.aspx – MusicLovingIndianGirl

+0

當您單擊UpdatePanel的按鈕外側時,當前頁面會回發並在瀏覽器中重新呈現,這就是顯示新日期時間值的原因。任何回發控制外面的情況下整個頁面回發和頁面將重新呈現在瀏覽器中,你的UP是頁面的一部分,所以它也得到了重新渲染。 –

回答

2

按鈕應該被放置在其他更新面板的內部。

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 
       <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
        <ContentTemplate> 
         Updated at: <%=DateTime.Now.ToString() %> 
        </ContentTemplate> 
       </asp:UpdatePanel> 
      <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> 
        <ContentTemplate> 
         <asp:Button ID="Button1" Text="Click" runat="server" /> 
        </ContentTemplate> 
       </asp:UpdatePanel> 

      </asp:Content> 

希望它能幫助,

而且更多地瞭解更新面板,請訪問鏈接

http://ajax.net-tutorials.com/controls/updatepanel-control/