在ASP.NET Server Control中使用控制項狀態

來源:互聯網
上載者:User
一提到在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>這個傢伙,先進先出的隊列,可以讓代碼看著舒服一些。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.