2011-02-04 4 views
0

저는 런타임에 일부 usercontrols를로드하는 PlaceHolder를 가지고 있습니다.ASP.Net은 usercontrol의 요소 런타임에 대한 postbacktrigger를 추가합니다.

<asp:UpdatePanel ID="UpdatePanel_Items" runat="server"> 
         <ContentTemplate> 
          <asp:PlaceHolder ID="PlaceHolder_Main" runat="server"></asp:PlaceHolder> 
         </ContentTemplate> 

사용자 제어 지정자로 사용자 제어를 추가 한 소자를

<asp:LinkButton ID="LinkButton_AddToCart" runat="server" OnClick="LinkButton_AddToCart_Click" CausesValidation="false"></asp:LinkButton> 

를 가지며, 난 모든 사용자 컨트롤 LinkButton_AddToCart위한 게시 트리거를 추가 할 필요가있다. 내가이 시도 :

foreach (Control item in PlaceHolder_Main.Controls) 
     { 
      try 
      { 
       WUC_Rim wuc = (WUC_Rim)item; 
       PostBackTrigger trigger = new PostBackTrigger();      
       LinkButton lnk = wuc.GetLinkButton_AddToCart(); 
       trigger.ControlID = lnk.UniqueID;  
       UpdatePanel_Items.Triggers.Add(trigger); 
      } 
      catch 
      { 

      }    
     } 

을하지만, 오류

ID와 제어 'ctl00 $ MainContent $ ctl02 $ LinkButton_AddToCart'UpdatePanel 'UpdatePanel_Items'에서 트리거를 찾을 수 없습니다 있습니다.

+0

당신의'ID'를 지정하여 시도 했습니까? –

+0

네, 시도했습니다. 오류 : 'LinkButton_AddToCart'ID가있는 컨트롤을 UpdatePanel 'UpdatePanel_Items'의 트리거에 대해 찾을 수 없습니다. Asynhtrigger는 내가 작성한 코드로 작업하고 있습니다. 그러나 포스트 백이 아닙니다. – Alex

답변

3

다시 게시 트리거가 스크립트 관리자에 직접 등록해야, 이런 식으로 시도 :

ScriptManager.GetCurrent(this).RegisterPostBackControl(wuc.GetLinkButton_AddToCart()); 

(이 코드는 페이지 클래스에없는 경우 물론, 당신은 '이'의 대신에 참조를 삽입해야합니다)

1

사용이 다음`UniqueID`에 반대

import postback url as same page 

<asp:ImageButton AlternateText='<%#Eval("JobLink") %>' runat="server" ID="ibtnExcel" 
                 ImageUrl="~/images/excel-doc.PNG" Width="25" Height="25" Visible='<%#Eval("Visible") %>' 
                 ToolTip="Export to excel sheet" OnClick="ExportToExcel" PostBackUrl="~/billing/BillingHome.aspx" />