2013-02-22 29 views
2

我有一個WebForm有兩個更新面板:當我點擊其中一個按鈕時,如何防止所有更新面板重新加載?

<asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release"> 
    </asp:ScriptManager> 

<p> 
    <asp:UpdatePanel ID="upl1" runat="server"> 
     <ContentTemplate> 
      <asp:Button runat="server" ID="btn1" Text="Button1" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

    <asp:UpdatePanel ID="upl2" runat="server"> 
     <ContentTemplate> 
      <asp:Button runat="server" id="btn2" Text="Button2" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</p> 

如果我點擊btn1,那麼upl2負荷事件被觸發,以及upl1

我預計只有upl1被加載,因爲這是包含按鈕的更新面板。

爲什麼不會發生這種情況,我該如何做到這一點?

+0

我認爲你需要使用觸發器來正確地隔離了正確的更新面板 - 看看這個MSDN教程HTTP: //www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-updatepanel-triggers – bUKaneer 2013-02-22 13:25:53

回答

1

一個初步實踐,當我與更新專家組的工作我總是使用,是設置屬性:

ChildrenAsTriggers="false" UpdateMode="Conditional"

並刷新更新面板只有當我想:

protected void btn1_Click(object sender, EventArgs e) 
{ 
    // some logic 
    // .... 
    upl1.Update(); 
} 

嘗試應用這些性質,看看如果它解決了你的問題。

+0

對不起。每個按鈕點擊都會重新加載上傳面板。 – Urbycoz 2013-02-22 14:28:44

+0

這兩個UpdatePanel不在另一個UpdatePanel中嗎? – MarcusVinicius 2013-02-22 14:32:26

+0

不是他們應該嗎? – Urbycoz 2013-02-22 14:49:48

0

我有一個類似的問題,觸發UpdatePanel的按鈕,並使用ChildrenAsTriggers="false" UpdateMode="Conditional"沒有幫助。

我結束了使用以下迫使按鈕做一個普通郵寄回:

ScriptManager1.RegisterPostBackControl(btn1); 
相關問題