IPostBackDataHandler Gränssnitt
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Definierar metoder som ASP.NET serverkontroller måste implementera för att automatiskt läsa in postback-data.
public interface class IPostBackDataHandler
public interface IPostBackDataHandler
type IPostBackDataHandler = interface
Public Interface IPostBackDataHandler
- Härledda
Exempel
I följande kodexempel visas en anpassad textruteserverkontroll som implementerar IPostBackDataHandler gränssnittet. Egenskapen Text ändras som ett resultat av efteråterställningen och serverkontrollen genererar en TextChanged händelse när postback-data har lästs in.
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
Kommentarer
Du måste implementera IPostBackDataHandler gränssnittet när du skapar en serverkontroll som behöver undersöka formulärdata som skickas tillbaka till servern av klienten. Kontraktet som det här gränssnittet definierar gör det möjligt för en serverkontroll att avgöra om dess tillstånd ska ändras som ett resultat av efteråterställningen och att generera lämpliga händelser. Mer information finns i Server Event Handling i ASP.NET Web Forms Pages.
Metoder
| Name | Description |
|---|---|
| LoadPostData(String, NameValueCollection) |
När de implementeras av en klass bearbetar du postback-data för en ASP.NET serverkontroll. |
| RaisePostDataChangedEvent() |
När det implementeras av en klass signalerar serverkontrollen att meddela ASP.NET-programmet att kontrollens tillstånd har ändrats. |