Custom Controls ASP.Net Tutorial

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace myControls
{
    public class ViewStateControl : WebControl
    {
        private string _text;
        public string Text
        {
            get { return _text; }
            set { _text = value; }
        }
        public string ViewStateText
        {
            get
            {
                if (ViewState["ViewStateText"] == null)
                    return String.Empty;
                else
                    return (string)ViewState["ViewStateText"];
            }
            set { ViewState["ViewStateText"] = value; }
        }
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.Write("Text: " + Text);
            writer.WriteBreak();
            writer.Write("ViewStateText: " + ViewStateText);
            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)
        {
            ViewStateControl1.Text = "Hello World!";
            ViewStateControl1.ViewStateText = "Hello World!";
        }
    }



    Show View State


    
    

            id="ViewStateControl1"
        Runat="server" />
            id="btnSubmit"
        Text="Submit"
        Runat="server" />