asp.net控件开发基础(11)
2008-12-19 17:02
489 查看
上一篇讨论了集合属性的使用,这一篇我们主要来讨论视图状态的自定义管理.
刚开篇的时后在最后把属性值用视图状态来保存时,得以把当前状态保存下来,关于视图状态的概述,这里不再累赘,没了解过的朋友可以在MSDN里输入视图状态概述了解一下.以下我们还是以以前讲过的内容为例,一起继续来改善控件的使用(第五篇和第九篇的例子)
示例一
我们启用了跟踪,按下确定按钮后,控件属性发生变化,按下无事件按钮后,控件状态则恢复到之前的状态,而且在跟踪状态下发现Custom无视图状态.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
</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="确定" />
<asp:Button ID="Button2" runat="server" Text="无事件" />
</div>
</form>
</body>
</html>
那么接下来将修改Custom的属性更改为视图状态保存,代码如下
重新编译一下代码,再次测试上面代码Custom的Age和CustomMetier属性可以保存其状态,而无法保存CustomAddress这个复杂属性的状态值.这个也可以理解,我们没有为CustomAddress的子属性值保存在视图状态里.启动跟踪后,还发现Custom控件在更改控件属性后保存了一部分的视图状态.
private bool _isTrackingViewState;
private StateBag _viewState;
protected StateBag ViewState
private StateBag _viewState;
2
15
22public Address CustomAddress
internal void SetDirty()
<system.web>
<pages maxPageStateFieldLength="1000" >
<system.web>
asp.net2.0还加入了视图状态持久性机制,大家可以在博客园参考相关文章,这里就当了解下有这种机制存在.
好了,就写到这里,个人认为视图状态是很重要的,下面很多东西都要涉及到它,所以要好好理解这个东西.
写的比较乱,对视图状态我真的比较敏感,很难理解,也难表达,可能很多地方写错,还请指出,这样才能提高
示例代码下载
刚开篇的时后在最后把属性值用视图状态来保存时,得以把当前状态保存下来,关于视图状态的概述,这里不再累赘,没了解过的朋友可以在MSDN里输入视图状态概述了解一下.以下我们还是以以前讲过的内容为例,一起继续来改善控件的使用(第五篇和第九篇的例子)
示例一
我们启用了跟踪,按下确定按钮后,控件属性发生变化,按下无事件按钮后,控件状态则恢复到之前的状态,而且在跟踪状态下发现Custom无视图状态.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
</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="确定" />
<asp:Button ID="Button2" runat="server" Text="无事件" />
</div>
</form>
</body>
</html>
那么接下来将修改Custom的属性更改为视图状态保存,代码如下
重新编译一下代码,再次测试上面代码Custom的Age和CustomMetier属性可以保存其状态,而无法保存CustomAddress这个复杂属性的状态值.这个也可以理解,我们没有为CustomAddress的子属性值保存在视图状态里.启动跟踪后,还发现Custom控件在更改控件属性后保存了一部分的视图状态.
private bool _isTrackingViewState;
private StateBag _viewState;
protected StateBag ViewState
private StateBag _viewState;
2
15
22public Address CustomAddress
internal void SetDirty()
<system.web>
<pages maxPageStateFieldLength="1000" >
<system.web>
asp.net2.0还加入了视图状态持久性机制,大家可以在博客园参考相关文章,这里就当了解下有这种机制存在.
好了,就写到这里,个人认为视图状态是很重要的,下面很多东西都要涉及到它,所以要好好理解这个东西.
写的比较乱,对视图状态我真的比较敏感,很难理解,也难表达,可能很多地方写错,还请指出,这样才能提高
示例代码下载
相关文章推荐
- asp.net控件开发基础(11)
- asp.net控件开发基础(11)
- asp.net控件开发基础(11)
- asp.net控件开发基础(11)
- asp.net控件开发基础(11)
- 一起谈.NET技术,asp.net控件开发基础(11)
- asp.net控件开发基础(11) --------自定义视图状态管理
- asp.net控件开发基础(22) --------定义数据源控件(1)
- asp.net控件开发基础(2)
- asp.net控件开发基础(6)
- asp.net控件开发基础(19)
- asp.net控件开发基础學習
- asp.net控件开发基础(3) -- 回发事件
- asp.net控件开发基础(2)
- 基础温习(三) 开发ASP.NET控件基础
- asp.net控件开发基础(2)
- asp.net控件开发基础(7)
- asp.net控件开发基础(6)
- asp.net控件开发基础(14)
- asp.net控件开发基础(20)