我有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>
在占位符中添加用户控件后,我需要在每个用户控件中为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
{
}
}
但有错误
在UpdatePanel'UpdatePanel_Items'中找不到ID为'ctl00 $ MainContent $ ctl02 $ LinkButton_AddToCart'的控件。
答案 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" />