构建自定义控件之二——ViewState和ControlState
2008-08-01 09:32
681 查看
ASP.NET利用一个名为_VIEWSTATE的隐藏表单域在回传中保存控件属性的状态。如果想要保存控件的属性值,就要把控件属性值添加到该隐藏的表单域。2.0支持在回传/回发保存值得两种方法:视图状态和控件状态
2.1支持视图状态
使用Control或Page类的ViewState属性把值添加到视图状态。
理论上讲,可以添加任何可序列化类的实例到ViewState,但在实践中,应当只添加间的地值到ViewState,否则会影响页面的执行效率。
代码示例:ViewStateControl.cs
using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace JerryShi.Controls
注:ViewState在页面InitComplete事件之后才进行加载,在页面PreRenderComplete事件之后进行保存。所以我们不应该在InitComplete事件之前或之中检索视图状态,也不应在PreRenderComplete事件之后向视图状态添加值。
2.2支持控件状态
与视图状态不同的是:控件状态无法禁用,而视图状态可以通过设置控件的EnableViewState属性为False禁用。
注:将最重要的信息保存在ControlState中。
代码示例:ControlStateControl.cs
using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace JerryShi.Controls
重写了WebControl基类的OnInit()、SaveControlState()、LoadControlState()方法。
OnInit——初始化控件
SaveControlState——保存视图状态
LoadControlState——加载视图状态
2.1支持视图状态
使用Control或Page类的ViewState属性把值添加到视图状态。
理论上讲,可以添加任何可序列化类的实例到ViewState,但在实践中,应当只添加间的地值到ViewState,否则会影响页面的执行效率。
代码示例:ViewStateControl.cs
using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace JerryShi.Controls
注:ViewState在页面InitComplete事件之后才进行加载,在页面PreRenderComplete事件之后进行保存。所以我们不应该在InitComplete事件之前或之中检索视图状态,也不应在PreRenderComplete事件之后向视图状态添加值。
2.2支持控件状态
与视图状态不同的是:控件状态无法禁用,而视图状态可以通过设置控件的EnableViewState属性为False禁用。
注:将最重要的信息保存在ControlState中。
代码示例:ControlStateControl.cs
using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace JerryShi.Controls
重写了WebControl基类的OnInit()、SaveControlState()、LoadControlState()方法。
OnInit——初始化控件
SaveControlState——保存视图状态
LoadControlState——加载视图状态
相关文章推荐
- 构建自定义控件之二——ViewState和ControlState
- Asp.Net底层解析(二)——视图状态ViewState与控件状态ControlState详解
- 【Cocoa(mac) Application 开发系列之二】总结一些常用控件及自定义View
- 【Cocoa(mac) Application 开发系列之二】总结一些常用控件以及简单在自定义View上绘制字符串
- Android 自定义View 三板斧之二——组合现有控件
- Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果
- 安卓中自定义view控件代替radiogroup实现颜色渐变效果的写法
- Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面 z
- 自定义ViewState的保存方式
- 自定义View实现水平滚动控件
- Android基础控件——TextView的跑马灯效果、变量赋值、字体属性、超链接、Activity跳转、字体加粗、自定义字体
- 自定义View之自定义EditText带删除内容按钮控件
- Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果
- ASP.Net中控件的EnableViewState属性
- Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果
- 自定义组合控件关于LayoutInflater.from(context).inflate(R.layout.view_title, this,true)的问题
- 自定义view之小米时间控件
- Android进阶——自定义View之组合系统控件实现水珠形状的ItemView
- CycleRotationView:自定义控件之轮播图
- Android 开发之 DishesView自定义点菜控件