Export (0) Print
Expand All
2 out of 3 rated this helpful - Rate this topic

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

The IPostBackDataHandler type exposes the following members.

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

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 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() {
         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 + " >");
      }
   }   
}
   


.NET Framework

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

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.