ASP.Net为usercontrol的元素运行时添加postbacktrigger

时间:2011-02-04 13:43:04

标签: c# asp.net

我有PlaceHolder,我在其中加载运行时一些用户控件。

<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 
            {

            }            
        }

但有错误

在UpdatePanel'UpdatePanel_Items'中找不到ID为'ctl00 $ MainContent $ ctl02 $ LinkBut​​ton_AddToCart'的控件。

2 个答案:

答案 0 :(得分:3)

PostBack触发器应该直接用ScriptManager注册,试试这样:

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

(当然,如果此代码不在您的Page类中,则必须引用它而不是'this')

答案 1 :(得分: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" />