2017-02-11 7 views
0

私はUpdate Panel内にUserControl呼び出しitemUserControlを持っています。UpdatePanel内のUserControlのLinkbuttonイベントをキャプチャします

<asp:UpdatePanel ID="updPanel" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <STX:ItemControl ID="itemUserControl" runat="server" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

UserControlの中には、ユーザーコントロールのコード内でキャプチャしたいと思うOnClickイベントのリンクボタンがあります。私は、ボタンのクリックイベントを配線するトリガを追加する必要があるように見えるの周りグーグルでから、それは:( ワーキングように見えることはできません。

<Triggers> 
    <asp:PostBackTrigger ControlID="lnkBtn" EventName="Click" /> 
</Triggers> 

しかし、私ができる

<asp:LinkButton ID="lnkBtn" runat="server" Text="ClickMe" OnClick="lnkBtn_Click" /> 

Visual StudioにボタンIDが表示されないため、親ページにこのトリガーを追加する必要はありません。ボタンのイベントをユーザーコントロールのコードの背後に配置したいだけです。

答えて

0

<Triggers>を削除してくださいページを含むPage_Loadイベントに次の行を追加します。

ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page); scriptManager.RegisterPostBackControl(MyControl.FindControl( "lnkBtn"));

これはあなたのユーザーコントロールを登録し、リンクボタンのイベントをクリックしますあなたはボタンがフルポストバックを実行する場合を除き、あなたは何をキャプチャする必要はありませんクリック

0

に発射されます。ユーザーコントロールのコードの後ろにlnkBtn_Clickメソッドを追加するだけで、非同期に処理されます。

完全なポストバックが必要な場合は、ボタンをそのイベントにUserControlのPage_loadに登録します。

protected void Page_Load(object sender, EventArgs e) 
{ 
    ScriptManager.GetCurrent(Page).RegisterPostBackControl(lnkBtn); 
} 
関連する問題