我有一个带有UserControl的页面(其中链接按钮是动态创建的)。在页面上,我有一个UpdatePanel。我需要做的是将一个AsynchronPostBackTrigger添加到UpdatePanel,但指向UserControl内的LinkButton。
(在.aspx中)
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="UserControl`s LinkButton" EventName="Click"
</Triggers>
</asp:UpdatePanel>
因此,每当我点击UserControl中的LinkButton时,页面上的UpdatePanel都会刷新。
答案 0 :(得分:1)
在我看来,最好的方法是在UserControl中提供一个自定义事件,该事件在LinkButton-Click上引发,可以在页面的UpdatePanel中用作AsyncPostbackTrigger。
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="UserControl1" EventName="LinkClicked" />
</Triggers>
</asp:UpdatePanel>
例如在您的UserControl中:
public delegate void OnLinkClicked(object sender, EventArgs e);
public event OnLinkClicked LinkClicked;
protected void LinkButton_Clicked(Object sender, EventArgs e)
{
LinkClicked(sender, e);
}
然后在你的页面中:
protected void Page_Init(object sender, EventArgs e)
{
MyControl1.LinkClicked += LinkClicked;
}
private void LinkClicked(object sender, EventArgs e)
{
//this is an AsyncPostBack;
}