asdfasfasdf

在ASP.NET Server Control中使用控件状态

一提到在ASP.NET Server Control中进行状态管理,大家自然而然的就会想起ViewState,对于简单属性,这东西毕竟简单么,而一提到控件状态,大家就会说到这东西还要单独编程,不方便,其实所谓单独编程,也就是固定的一段代码,没有什么复杂和麻烦的地方,只是额外需要多大几个字母而以么。

简单的来说,分为四个步骤:
1、老办法声明属性;
2、告诉运行库你要使用控件状态;
3、保存控件状态;
4、读取控件状态;

每个步骤我举一个简单的例子,大家一看就明白了。

1、老办法声明属性;
ButtonType type = ButtonType.Button;
public ButtonType Type
{
    
set { this.type = value; }
    
get { return this.type; }
}

string text = "按钮";
public string Text
{
    
set { this.text = value; }
    
get { return this.text; }
}

2、告诉运行库你要使用控件状态;
protected override void OnInit(EventArgs e)
{
    
base.OnInit(e);

    
this.Page.RegisterRequiresControlState(this);
}

3、保存控件状态;
protected override object SaveControlState()
{
    Queue
<object> states = new Queue<object>();

    states.Enqueue(type);
    states.Enqueue(text);

    
return states;
}

4、读取控件状态;
protected override void LoadControlState(object savedState)
{
    Queue
<object> states = savedState as Queue<object>;

    type 
= (ButtonType)(states.Dequeue());
    text 
= (string)(states.Dequeue());
}

补充一下:
1、数据结构这里采用了Queue<T>这个家伙,先进先出的队列,可以让代码看着舒服一些。


posted on 2007-07-22 22:37  明达  阅读(345)  评论(0编辑  收藏  举报

导航