2012-08-07 3 views

답변

3

innerupdate 패널에서 updatemode를 조건부로 설정하고 outerupdatepanel childrenastriggers 속성을 false로 설정합니다. 내부 업데이트 패널에서 포스트 백 트리거를 추가하고 포스트 백을 발생시킬 버튼에 설정합니다. 이

<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 Janjua 같은 뭔가 권리입니다.

그러나 ChildrenAsTriggers를 false로 설정할 필요는 없으며 때로는 사실로 두는 것이 더 편리합니다.

두 업데이트 패널에서 모두 속성을 UpdateMode = "조건부" (기본값으로 ChildrenAsTriggers를 그대로 유지)으로 설정하십시오. 다음의 : Janjua 말했듯이 당신의 버튼에 트리거를 추가하려면 UpdateMode를이 조건없는 경우

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

각 updatepanel가 업데이트됩니다. 여기 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입니다 :

+0

THX (다음 코드 등) UP1의 트리거로 그 작업을 щࣉ =를 추가하지 말아야 – aref

0

이 코드는 당신을 도와줍니다 UP1은 외부 UpdatePanel이며, UP2는 내부, 그리고 당신이를 방지하려면

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.UpdateMode="Conditional" 
UP1.ChildrenAsTriggers= "False" 

또한 당신은 나에게

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