2012-08-07 111 views

回答

3

在innerupdate面板中,將updatemode設置爲conditional,並將outerupdatepanel childrenastriggers屬性設置爲false。在內部更新面板中添加一個postbacktrigger並將其設置爲將導致回發的按鈕。這樣

<asp:UpdatePanel ID="parentup" runat="server" ChildrenAsTriggers="false"> 
    <ContentTemplate> 
     <asp:UpdatePanel ID="chidlup" UpdateMode="Conditional" runat="server"> 
      <ContentTemplate> 
       <asp:Button ID="btn" runat="server" /> 
      </ContentTemplate> 
      <Triggers> 
       <asp:PostBackTrigger ControlID="btn" /> 
      </Triggers> 
     </asp:UpdatePanel> 
    </ContentTemplate> 
</asp:UpdatePanel> 
4

@Waqar揚尤亞事情是正確的。

但是,您不必將ChildrenAsTriggers設置爲false,有時將它保留爲true會更方便。

在您的兩個更新面板中設置屬性UpdateMode =「條件」(將ChildrenAsTriggers的默認值設置爲true)。然後之間的:到觸發添加到您的按鈕,揚尤亞稱:

<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="btn" /> 
</Triggers> 

當將UpdateMode不是條件各的UpdatePanel將更新它。

+0

THX,我 – aref 2018-02-15 08:26:48

0

此代碼可以幫助你:這裏是Source

<asp:ScriptManager ID="script1" runat="server"></asp:ScriptManager> 
     <asp:UpdatePanel ID="up1" runat="server"> 
      <ContentTemplate> 
       <asp:Label ID="lblTime" runat="server" ForeColor="Red"></asp:Label> 
       <asp:Button ID="buttonOuter" runat="server" OnClick="buttonOuter_Click" Text="What is the time?" /> 
       <asp:UpdatePanel ID="up2" runat="server" UpdateMode="Conditional"> 
        <ContentTemplate> 
         <asp:Label ID="lblTime2" runat="server" ForeColor="Blue"></asp:Label> 
         <asp:Button ID="buttonInner" runat="server" OnClick="buttonInner_Click" Text="What is the time?" /> 
        </ContentTemplate> 
       </asp:UpdatePanel> 
      </ContentTemplate> 
      <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="buttonOuter" EventName="Click"/> 
      </Triggers> 
     </asp:UpdatePanel> 

這裏是code behinde

protected void Page_Load(object sender, EventArgs e) 
{ 

} 
protected void buttonInner_Click(object sender, EventArgs e) 
{ 
    up2.Update(); 
    lblTime2.Text = DateTime.Now.Second.ToString(); 
} 
protected void buttonOuter_Click(object sender, EventArgs e) 
{ 
    lblTime.Text = DateTime.Now.Second.ToString(); 
} 
0

如果UP1是外部的UpdatePanel,和UP2是內在的,並且要防止外部用內部按鈕進行更新(對於exp:Btn):

UP1.UpdateMode="Conditional" 
UP1.ChildrenAsTriggers= "False" 

您也不應工作添加BTN作爲UP1觸發器(如下面的代碼)

<asp:UpdatePanel ID="UP1" runat="server" ....> 
    <ContentTemplate> 
    .... 
    </ContentTemplate> 
    <Triggers> 
    <asp:Trigger ControlID="btn" EventName="Click"/> 
    </Triggers> 
</asp:UpdatePanel>