ClientIDMode,ViewStateMode 詳解



Asp.Net 4.0 新特性,輸出更純淨的Html代碼 ClientIDMode,ViewStateMode等



1. 在Asp.Net 4.0 中我們可以控制輸出html中的對象id的形式了,之前我們常常看到類似這樣的id
ctl00_MainContent_txtAutoID
這在客戶端控制時很不方便,也沒有多少實質的意義
現在我們可以通過設置控件的ClientIDMode修改clientId的輸出形式,例如下面代碼:
<asp:TextBox ID="txtPredictable" runat="server" ClientIDMode="Predictable"></asp:TextBox>
    <asp:TextBox ID="txtAutoID" runat="server" ClientIDMode="AutoID"></asp:TextBox>
    <asp:TextBox ID="txtInherit" runat="server" ClientIDMode="Inherit"></asp:TextBox>
    <asp:TextBox ID="txtStatic" runat="server" ClientIDMode="Static"></asp:TextBox>


將分別輸出
<input name="ctl00$MainContent$txtPredictable" type="text" id="MainContent_txtPredictable" />
    <input name="ctl00$MainContent$txtAutoID" type="text" id="ctl00_MainContent_txtAutoID" />
    <input name="ctl00$MainContent$txtInherit" type="text" id="MainContent_txtInherit" />
    <input name="ctl00$MainContent$txtStatic" type="text" id="txtStatic" />


AutoID: 自動輸出和之前版本輸出的clientID一樣
Static:輸出和server端指定的id一樣的id
Predictable:對於dataGrid,listView特別有用,使ClientID值格式象clientIDrowsuffix一樣;
Inherit:這個值指定控件象它的父對象一樣產生ID,即我們常說的繼承。

2. ASP.NET4.0 提供了一個叫做 ViewStateMode 的新屬性,這個屬性可以單獨設置控件的視圖狀態。在以前版本的 ASP.NET 中,控件的視圖只有在 Page 的 ViewState 啓用的前提下纔可以單獨控制。在 ASP.NET4.0 中,控件的視圖狀態可以單獨設置了,也就是說,即使頁面的視圖狀態沒有啓用,控件依然可以啓用視圖狀態。
ViewStateMode 屬性有三種取值:
Inherit:視圖狀態從父控件繼承;
Enabled:即使父控件的視圖狀態沒有啓用,也啓用該控件的視圖狀態;
Disabled:即使父控件的視圖狀態啓用了,也禁用此控件的視圖狀態。

3. CheckBoxList和RadioButtonList,以及Menu控件都支持使用ul或者ol輸出html,這個很簡單知道有這麼回事,用的時候去用就好了

 

Asp.net 新特性相關閱讀:

1. 從頁面標記<%%>說起
2. Asp.Net 4.0 中可以用自定義的Provider做OutputCache 了
3. SEO增強支持MetaKeywords,和MetaDescription,RedirectPermanant
4. SEO增強之URL Routing
5. 輸出更純淨的Html代碼,ViewStateMode和ClientIDMode,CheckBoxList等

發佈了41 篇原創文章 · 獲贊 2 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章