[英]Why LinkButton inside GridView which is present in Updatepanel not firing OnClientClick event?
[英]Capture UserControl's Linkbutton event in inside an updatepanel
我在更新面板中有一個UserControl調用itemUserControl。
<asp:UpdatePanel ID="updPanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<STX:ItemControl ID="itemUserControl" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
在UserControl內部,我有一個帶有OnClick事件的鏈接按鈕,希望從后面的用戶控件代碼中捕獲。
<asp:LinkButton ID="lnkBtn" runat="server" Text="ClickMe" OnClick="lnkBtn_Click" />
我似乎無法使其工作:(從谷歌搜索看來,我需要添加觸發器以連接按鈕單擊事件。
<Triggers>
<asp:PostBackTrigger ControlID="lnkBtn" EventName="Click" />
</Triggers>
但是,我無法在ContentTemplate標記后立即在父頁面上添加此觸發器,因為Visual Studio看不到按鈕ID。 有沒有辦法做到這一點? 我只希望按鈕事件在后面的用戶控件代碼上觸發。
從包含頁面中刪除<Triggers>
並在包含頁面的Page_Load事件中添加以下行
ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page); scriptManager.RegisterPostBackControl(MyControl.FindControl( “lnkBtn”));
這將注冊您的用戶控件,並在點擊時觸發鏈接按鈕的click事件
除非您希望按鈕執行完整的PostBack,否則您無需捕獲任何內容。 如果僅在用戶控件后面的代碼中添加lnkBtn_Click
方法,它將被異步處理。
如果確實需要完整的PostBack,請在UserControl的Page_load
按鈕注冊到該事件。
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager.GetCurrent(Page).RegisterPostBackControl(lnkBtn);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.