Skip to main content
.NET Framework Class Library
IPostBackDataHandler Interface

Defines methods that ASP.NET server controls must implement to automatically load postback data.

Namespace:   System.Web.UI
Assembly:  System.Web (in System.Web.dll)
Syntax
Public Interface IPostBackDataHandler
public interface IPostBackDataHandler
public interface class IPostBackDataHandler
type IPostBackDataHandler =  interface end

The IPostBackDataHandler type exposes the following members.

Methods
  NameDescription
Public method LoadPostDataWhen implemented by a class, processes postback data for an ASP.NET server control.
Public method RaisePostDataChangedEventWhen implemented by a class, signals the server control to notify the ASP.NET application that the state of the control has changed.
Top
Remarks

You must implement the IPostBackDataHandler interface when creating a server control that needs to examine form data that is posted back to the server by the client. The contract that this interface defines allows a server control to determine whether its state should be altered as a result of the postback, and to raise the appropriate events. For more information, see Server Event Handling in ASP.NET Web Forms Pages.

Examples

The following code example demonstrates a custom text box server control that implements the IPostBackDataHandler interface. The Text property is changed as a result of the postback, and the server control raises a TextChanged event after postback data has been loaded.

Imports System
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
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 + " >");
      }
   }   
}
   
Version Information

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0
Platforms

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.