次の方法で共有


ポストバック イベントのキャプチャ

ポストバック イベントをキャプチャするコントロールで、System.Web.UI.IPostBackEventHandler インターフェイスを実装する必要があります。このインターフェイスのコントラクトにより、コントロールは、クライアントからのポストバックに応答してサーバー上にイベントを発生させることができます。IPostBackEventHandler インターフェイスには、1 つのメソッドが含まれています。

public interface IPostBackEventHandler{
    void RaisePostBackEvent(string eventArgument);
}
[Visual Basic]
Public Interface IPostBackEventHandler
   Sub RaisePostBackEvent(eventArgument As String)
End Interface

ポストバックされた時点で、ページ フレームワークはポストされた内容を検索し、ポストされた名前が、IPostBackEventHandler を実装しているサーバー コントロールの UniqueID と一致するかどうかを確認します。一致している場合は、(Change イベントを発生させた後で) そのコントロールの RaisePostBackEvent メソッドを呼び出します。

サーバー上に Click イベントを発生させる RaisePostBackEvent の実装のコードを次に示します。

public void RaisePostBackEvent(String eventArgument){
      OnClick(EventArgs.Empty);
}
[Visual Basic]
Public Overridable Sub RaisePostDataChangedEvent() Implements IPostBackDataHandler.RaisePostDataChangedEvent
   OnTextChanged(EventArgs.Empty)
End Sub

メモ   次の例で示すように、レンダリング ロジックで、必ずコントロールの名前属性に UniqueID を割り当ててください。クライアント上のコントロールの名前属性がその UniqueID と一致しないと、ページ フレームワークはポストバック イベントをコントロールにルーティングできません。

protected override void Render(HtmlTextWriter output) {
   output.Write("<INPUT TYPE=submit name=" + this.UniqueID + 
            " Value='Click Me' />");   
} 
[Visual Basic]
Protected Overrides Sub Render(output As HtmlTextWriter)
   output.Write("<INPUT type=submit name=" & Me.UniqueID & _
      " Value='Click Me' />")
End Sub

ポストバック通知を受け取り、サーバー上にイベントを発生させるコントロールのサンプルについては、「ポストバック イベントのサンプル」を参照してください。

参照

ポストバック イベントのサンプル