2012-05-29 31 views
1

時,這是我的標記:的UpdatePanel有條件的模式問題,有用戶控件裏面

<asp:UpdatePanel runat="server" ID="updEml" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:LinkButton runat="server" Text="+ Add Email" ID="lnkAddEmail" OnClick="lnkAddEmail_Click" /> 
      <div id="Emlpopup" style="width: 470px; display: none; height: 200px;"> 
       <uc:AddEditEmailAddress runat="server" ID="ucAdEdEml" /> 
      </div> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="lnkAddEmail" EventName="Click" /> 
      <asp:AsyncPostBackTrigger ControlID="btnAdEdEmail" EventName="Click" /> 
     </Triggers> 
    </asp:UpdatePanel> 

正如你可以看到我的UpdateMode設置爲Conditional。我希望在單擊lnkAddEmail或btnAdEdEmail時刷新它。但問題是btnAdEdEmail是我的用戶裏面,因此我得到異常

「ID爲‘btnAdEdEmail’的控制不能在UpdatePanel的‘updEml’觸發 被發現。」

。我如何解決這個問題?

+0

您可以嘗試在您的UserControl中實現自定義EventHandler並更新新事件的UpdatePanel觸發器:http://forums.asp.net/post/1980781.aspx –

回答

0

默認情況下,UpdatePanel的ChildrenAsTriggers屬性設置爲true。這意味着它內部的任何控件會觸發回發將導致刷新,因此您不需要指定任何觸發器。

+0

這不適用。 ChildrenAsTriggers是爲了立即控制孩子。我的按鈕在usercontrol內。 –

+0

不,它的任何後代不只是直接的孩子 –

+0

閱讀此以獲取更多信息:http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.childrenastriggers.aspx –