程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 超級簡單 - 巧用ViewState屬性

超級簡單 - 巧用ViewState屬性

編輯:關於ASP.NET

當我在頁面中使用ViewState ,通常是用一個屬性表示,例如:

private int ViewState_UserID
{
     get { return (int) ViewState["UserId"]; }
     set { ViewState["UserId"] = value; }
}

寫這樣一組代碼感覺比較麻煩,如果能像下面這樣簡單地使用就好了。

[ViewStateProperty("UserID")]
protected int ViewState_UserID { get; set;}

或者

[ViewStateProperty]
protected int ViewState_UserID { get; set;}

這裡介紹一種超級簡單的方式去實現:使用Attribute。

第一步:創建BasePage 類,它繼承System.Web.UI.Page。這裡使用了 Reflection和LINQ。

using System.Reflection;
using System.Linq;
public class BasePage : System.Web.UI.Page

第二步:在BasePage中使用一個內部類ViewStateProperty ,這個類繼承 Attribute 。用Attribute的目的是描述頁面中哪個屬性是viewstate屬性。用這 個屬性來標識viewstate屬性,因此它應該BasePage內部。

代碼

[AttributeUsage(AttributeTargets.Property)]
public class ViewStateProperty : Attribute
{
     public string ViewStateName { get; private set; }
     internal ViewStateProperty(){
         this.ViewStateName = string.Empty;
     }
     public ViewStateProperty(string in_ViewStateName){
         this.ViewStateName = in_ViewStateName;
     }
}

[AttributeUsage(AttributeTargets.Property)]意味著這個attribute 只對 property類型可用。在public ViewStateProperty(string in_ViewStateName) 中初始化ViewState 的名稱。默認情況下,ViewState 的名字為空。如果你想在 設置attribute的時候初始化ViewState的名字時,要將默認構造函數設置為私有 的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved