IPostBackDataHandler インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ポストバック データを自動的に読み込むために ASP.NET サーバー コントロールで実装する必要があるメソッドを定義します。
public interface class IPostBackDataHandler
public interface IPostBackDataHandler
type IPostBackDataHandler = interface
Public Interface IPostBackDataHandler
- 派生
例
次のコード例は、 インターフェイスを実装するカスタム テキスト ボックス サーバー コントロールを IPostBackDataHandler 示しています。 プロパティは Text ポストバックの結果として変更され、ポストバック データが読み込まれた後にサーバー コントロールによってイベントが発生 TextChanged します。
using System;
using System.Web;
using System.Web.UI;
using System.Collections;
using System.Collections.Specialized;
namespace CustomWebFormsControls {
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
public class MyTextBox: Control, IPostBackDataHandler {
public String Text {
get {
return (String) ViewState["Text"];
}
set {
ViewState["Text"] = value;
}
}
public event EventHandler TextChanged;
public virtual bool LoadPostData(string postDataKey,
NameValueCollection postCollection) {
String presentValue = Text;
String postedValue = postCollection[postDataKey];
if (presentValue == null || !presentValue.Equals(postedValue)) {
Text = postedValue;
return true;
}
return false;
}
public virtual void RaisePostDataChangedEvent() {
OnTextChanged(EventArgs.Empty);
}
protected virtual void OnTextChanged(EventArgs e) {
if (TextChanged != null)
TextChanged(this,e);
}
protected override void Render(HtmlTextWriter output) {
output.Write("<INPUT type= text name = "+this.UniqueID
+ " value = " + this.Text + " >");
}
}
}
Imports System.Web
Imports System.Web.UI
Imports System.Collections
Imports System.Collections.Specialized
Namespace CustomWebFormsControls
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> Public Class MyTextBox
Inherits Control
Implements IPostBackDataHandler
Public Property Text() As String
Get
Return CType(Me.ViewState("Text"), String)
End Get
Set
Me.ViewState("Text") = value
End Set
End Property
Public Event TextChanged As EventHandler
Public Overridable Shadows Function LoadPostData( _
postDataKey As String, _
postCollection As System.Collections.Specialized.NameValueCollection) _
As Boolean Implements IPostBackDataHandler.LoadPostData
Dim presentValue As String = Text
Dim postedValue As String = postCollection(postDataKey)
If presentValue Is Nothing Or Not presentValue.Equals(postedValue) Then
Text = postedValue
Return True
End If
Return False
End Function
Public Overridable Shadows Sub RaisePostDataChangedEvent() _
Implements IPostBackDataHandler.RaisePostDataChangedEvent
OnTextChanged(EventArgs.Empty)
End Sub
Protected Overridable Sub OnTextChanged(e As EventArgs)
RaiseEvent TextChanged(Me, e)
End Sub
Protected Overrides Sub Render(output As HtmlTextWriter)
output.Write("<INPUT type= text name = " & Me.UniqueID & _
" value = " & Me.Text & " >")
End Sub
End Class
End Namespace
注釈
クライアントによってサーバーに IPostBackDataHandler ポストバックされるフォーム データを調べる必要があるサーバー コントロールを作成するときは、 インターフェイスを実装する必要があります。 このインターフェイスで定義されるコントラクトを使用すると、サーバー コントロールはポストバックの結果として状態を変更する必要があるかどうかを判断し、適切なイベントを発生させます。 詳細については、「 ASP.NET Web フォーム ページでのサーバー イベント処理」を参照してください。
メソッド
LoadPostData(String, NameValueCollection) |
クラスによって実装された場合、ASP.NET サーバー コントロールのポストバック データを処理します。 |
RaisePostDataChangedEvent() |
クラスによって実装された場合、コントロールの状態が変化したことを ASP.NET アプリケーションに通知するために、サーバー コントロールにシグナルを送信します。 |
適用対象
こちらもご覧ください
.NET