簡體   English   中英

在更新面板中捕獲UserControl的Linkbutton事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM