IPostBackDataHandler Интерфейс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет методы, которые 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.
Методы
| Имя | Описание |
|---|---|
| LoadPostData(String, NameValueCollection) |
При реализации класса обрабатывает данные обратной передачи для ASP.NET серверного элемента управления. |
| RaisePostDataChangedEvent() |
Когда класс реализуется классом, серверный элемент управления уведомляет приложение ASP.NET о том, что состояние элемента управления изменилось. |