ポストバック イベントのキャプチャ
ポストバック イベントをキャプチャするコントロールで、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
ポストバック通知を受け取り、サーバー上にイベントを発生させるコントロールのサンプルについては、「ポストバック イベントのサンプル」を参照してください。