2011-02-04 11 views
0

私は実行時にいくつかのusercontrolをロードする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> 

を有している、私はすべてのユーザーコントロールにLinkBut​​ton_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 $ LinkBut​​ton_AddToCart 'を持つには、UpdatePanelの 'UpdatePanel_Items' にトリガーが見つかりませんでした。

+0

あなたは 'UniqueID'とは反対に、' ID'を指定することで、それを試してみましたか? –

+0

はい、私はそれを試しました。エラー:ID 'LinkBut​​ton_AddToCart'のコントロールが、UpdatePanel 'UpdatePanel_Items'のトリガーで見つかりませんでした。 Asynhtriggerは私が書いたコードを使って作業しています。ポストバックはできません。 – Alex

答えて

3

ポストバックのトリガーは、このようにそれを試してみてください、のScriptManagerに直接登録する必要があります。

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

(このコードは、あなたのページクラスにない場合はもちろん、あなたの代わりにthisのそれへの参照を置く必要があります)

1

使用この:

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" /> 
関連する問題