IPostBackDataHandler Interface
Collapse the table of content
Expand the table of content

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)

public interface IPostBackDataHandler

System_CAPS_pubmethodLoadPostData(String, NameValueCollection)

When implemented by a class, processes postback data for an ASP.NET server control.


When implemented by a class, signals the server control to notify the ASP.NET application that the state of the control has changed.

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.

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.

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() {

      protected virtual void OnTextChanged(EventArgs e) {
         if (TextChanged != null)

      protected override void Render(HtmlTextWriter output) {
         output.Write("<INPUT type= text name = "+this.UniqueID
            + " value = " + this.Text + " >");

.NET Framework
Available since 1.1
Return to top
© 2015 Microsoft