快速业务通道

ASP.NET控件开发基础(11)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

上一篇讨论了集合属性的使用,这一篇我们主要来讨论视图状态的自定义管理.

刚开篇的时后在最后把属性值用视图状态来保存时,得以把当前状态保存下来,关于视图状态的概述,这里不再累赘,没了解过的朋友可以在MSDN里输入视图状态概述了解一下.以下我们还是以以前讲过的内容为例,一起继续来改善控件的使用(第五篇和第九篇的例子)

示例一

我们启用了跟踪,按下确定按钮后,控件属性发生变化,按下无事件按钮后,控件状态则恢复到之前的状态,而且在跟踪状态下发现Custom无视图状态.

<%@ Page Language="C#" Trace="true" %>
<%@ Register Assembly="CustomComponents" Namespace="CustomComponents" TagPrefix="custom" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
   protected void Button1_Click(object sender, EventArgs e)
   {
     Custom1.Age = 21;
     Custom1.CustomMetier = Metier.教师;
     Custom1.CustomAddress.City = "杭州";
     Custom1.CustomAddress.State = "中国";
     Custom1.CustomAddress.Street = "街道";
     Custom1.CustomAddress.Zip = "310000";
   }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
   <title>无标题页</title>
</head>
<body>
   <form id="form1" runat="server">
   <div>
     <custom:Custom ID="Custom1" runat="server">
     </custom:Custom>
     <br />
     <br />
     <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="确定" />
     &nbsp; &nbsp;&nbsp;
     <asp:Button ID="Button2" runat="server" Text="无事件" />&nbsp;
   </div>
   </form>
</body>
</html>

那么接下来将修改Custom的属性更改为视图状态保存,代码如下

重新编译一下代码,再次测试上面代码Custom的Age和CustomMetier属性可以保存其状态,而无法保存CustomAddress这个复杂属性的状态值.这个也可以理解,我们没有为CustomAddress的子属性值保存在视图状态里.启动跟踪后,还发现Custom控件在更改控件属性后保存了一部分的视图状态.

属性#region 属性

[Description("年龄")]
     public int Age
     {
       get { return ViewState["Age"] != null ? (int)ViewState["Age"] : 0; }
       set { ViewState["Age"] = value; }
     }

     [Description("姓名")]
     public String Name
     {
       get { return ViewState["Name"] != null ? (string)ViewState["Name"] : string.Empty; }
       set { ViewState["Name"] = value; }
     }
     [TypeConverter(typeof(GameConverter))]
     [Description("喜欢的游戏")]
     public String Game
     {
       get { return ViewState["Game"] != null ? (string

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号