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" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load()
{
if (!Page.IsPostBack)
{
ControlStateControl1.ViewStateText = "Hello World!";
ControlStateControl1.ControlStateText = "Hello World!";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Show Control State</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<custom:ControlStateControl
id="ControlStateControl1"
EnableViewState="false"
Runat="server" />
<asp:Button
id="btnSubmit"
Text="Submit"
Runat="server" />
</div>
</form>
</body>
</html>
|