Custom Controls ASP.Net Tutorial

File: ControlStateControl.cs
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace myControls
{
    public class ControlStateControl : WebControl
    {
        private string _controlStateText;
        public string ViewStateText
        {
            get
            {
                if (ViewState["ViewStateText"] == null)
                    return String.Empty;
                else
                    return (string)ViewState["ViewStateText"];
            }
            set { ViewState["ViewStateText"] = value; }
        }
        public string ControlStateText
        {
            get { return _controlStateText; }
            set { _controlStateText = value; }
        }
        protected override void OnInit(EventArgs e)
        {
            Page.RegisterRequiresControlState(this);
            base.OnInit(e);
        }
        protected override object SaveControlState()
        {
            return _controlStateText;
        }
        protected override void LoadControlState(object savedState)
        {
            _controlStateText = (string)savedState;
        }
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.Write("ViewStateText: " + ViewStateText);
            writer.WriteBreak();
            writer.Write("ControlStateText: " + ControlStateText);
            writer.WriteBreak();
        }
    }
}
            
File: Default.aspx
<%@ Page Language="C#" %>
<%@ Register TagPrefix="custom" Namespace="myControls" %>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    void Page_Load()
    {
        if (!Page.IsPostBack)
        {
            ControlStateControl1.ViewStateText = "Hello World!";
            ControlStateControl1.ControlStateText = "Hello World!";
        }
    }



    Show Control State


    
    

            id="ControlStateControl1"
        EnableViewState="false"
        Runat="server" />
            id="btnSubmit"
        Text="Submit"
        Runat="server" />