成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DataGrid Web控件運作機制探秘

開發 后端
DataGrid Web控件是ASP.NET中一個十分常用,也是功能最豐富的控件之一。本文介紹了DataGrid Web控件的工作原理以及一些特點。

DataGrid Web控件是三個ASP.NET數據Web控件中功能最多的。正如前文所述,DataGrid Web控件從WebControl類中誕生,因此可以指定自己想要的樣式。但是在自定義控件生成的實際 HTML 標記時,它又是最不靈活的。 呈現的 HTML 標記中的這種不靈活性,是由于 DataGrid 是設計用于使用 HTML< table>以表格形式顯示數據所造成的。 因此,對于每一條綁定到 DataGrid 的記錄,都會創建一個單獨的表行( < tr>),對于要顯示的記錄中的每一個字段,都會創建一個單獨的表列( < td>)。

DataGrid Web控件提供了許多功能,可極大地提高要顯示的數據的可用性。 例如,把 DataGrid 的AllowSorting屬性設置為 True 并添加一點源代碼,開發人員就可以把一個普通的 DataGrid 變成一個其數據可以由最終用戶排序的 DataGrid。 另外,再增加一點工作量,開發人員就能增強 DataGrid 的功能以允許數據分頁或數據的內聯編輯。 這些功能明顯增強了 DataGrid 的可用性。

除了在可用性方面得分很高,DataGrid 還提供了很短的開發時間。 要使用 DataGrid 開始在 ASP.NET Web 頁面中顯示數據,只需要把 DataGrid 添加到 Web 頁面中并編寫兩行必要的代碼: ***行把數據綁定到 DataGrid 的DataSource,第二行調用 DataGrid 的 DataBind()方法。 顯然,隨著添加到 DataGrid 中的功能數量的增加,開發時間也增加了,但這只是把開發時間和其他數據 Web 控件進行比較。 假設您要允許對 Repeater 顯示的數據進行排序。 添加這樣的功能是一定可能的,但是與用 DataGrid 完成同樣的操作相比,這需要明顯多很多的時間和精力。

盡管 DataGrid 具有良好的可用性和開發時間得分,但是這個控件有兩個固有的缺點。 ***,正如前面所談到的,DataGrid 在對所呈現的 HTML 標記進行自定義方面的功能很有限。 是的,您可以自定義 DataGrid 的不同行和列的字體、顏色和邊框,但是事實仍然是,當 DataGrid 顯示數據時,結果將是一個 HTML< table>, DataSource中的每一條記錄都對應其中一個 < tr>,每一個字段都對應其中一個 < td>。

具體地說,DataGrid 中的每一列都是一個從DataGridColumn類中派生的類實例。 有五個內置的 DataGrid 列類型:

BoundColumn

ButtonColumn

EditColumn

HyperLinkColumn

TemplateColumn

每一個列類型都提供數據或提供某種允許用戶和 DataGrid 進行交互的接口。 例如,BoundColumn 以純文本顯示DataSource字段的值,而 HyperLinkColumn 則會顯示一個超級鏈接,其文字和 URL 部分可能是 DataSource字段。 除了這些內置的列類型,通過創建 DataGridColumn類的派生類,還可以創建自定義 DataGrid 列類型。

有了這么多的 DataGrid 列類型,可能就不理解為什么 DataGrid 呈現的 HTML 標記不能進行高度自定義了。 要知道,雖然每一個 DataGrid 列類型在呈現時生成不同的 HTML,但是每一列都包含在一組< td>標記中,每一行都包含在一組 < tr>標記中。 因此,即使可以用 TemplateColumn 自定義每一行的特定列的 HTML 輸出,而 DataGrid 仍然呈現為 HTML < table>,其中每一行使用一個 < tr>,每一列使用一個 < td>。 DataGrid 的這種限制禁止了更多具有創造性的數據顯示。 例如,如果要在每一表行中顯示五條記錄,就不能使用 DataGrid,必須使用DataList 或 Repeater。 另外,如果要在除 < table>之外的 HTML 標記中顯示數據,很遺憾,就不能使用 DataGrid 了。

DataGrid 第二個缺點是它的性能。 DataGrid 是這三個數據 Web 控件中性能最差的。 基于這一點,由 DataGrid - 特別是具有許多行的 DataGrids - 產生的 ViewState 可能會非常大。 如果使用 DataGrid 僅僅是為了顯示數據,則可以關閉 ViewState,但是,使用 DataGrid 的排序、分頁或編輯功能時,就不能這樣做了。

為了測試 DataGrid 的性能,我使用了 Microsoft 的免費 Web Application Stress Tool (WAST)。 在本文***的“基準設置”一節中列出了精確的測試條件和 WAST 設置。 另外,測試使用的代碼也可在本文***下載。

這個 Web Application Stress Tool 會向 Web 服務器發出一組特定的 URL 請求。 對于每一項測試,我都在一分鐘之內盡可能快地不斷請求一個 URL。 WAST 報告了許多性能衡量標準;我要關注的一個衡量標準是每秒請求數,它表明了 Web 服務器每秒能執行多少次 ASP.NET Web 頁面。

對于一個僅顯示數據的簡單 DataGrid,運行了兩個測試。 具體地說,DataGrid 顯示了來自 Northwinds 數據庫的 Customers 表(Customers 表總共包含 91 條記錄)的四個字段。 DataGrid 的AutoGenerateColumns屬性設置為 True。 ***項測試把 DataGrid 放在一個 Web 窗體( < form runat="server">)中,而第二項測試則沒有。 如果在窗體中放置一個控件而不把它的 EnableViewState屬性顯式設置為 False,那么該控件則會用 ViewState 保持它的狀態。 創建這個 ViewState 項可能是一個比較費時的過程,因此減少了可處理的總的每秒請求數,結果如圖 1 所示。

DataGrid 的每秒請求數 

圖 1: DataGrid 的每秒請求數

應該說,DataGrid Web控件的性能并不是很理想。

【編輯推薦】

  1. 小議ASP.NET數據Web控件之間的相似性
  2. 從傳統ASP到ASP.NET的轉變:了解控件
  3. ASP.NET調試API之Log4net使用指南
  4. 使用ASP.NET模板生成HTML靜態頁面的五種方案
  5. ASP.NET Login控件使用方法及須知
責任編輯:yangsai 來源: MSDN
相關推薦

2009-08-11 14:45:41

C# DataGrid

2009-06-30 09:55:24

Spring運作機制

2009-08-21 15:27:11

C# DataGrid

2023-06-07 15:25:19

Kafka版本日志

2009-07-24 17:22:22

CLR 4.0安全模型

2010-08-06 14:13:31

FlexDataGrid分頁控

2010-08-09 08:48:46

File APIWeb

2012-11-07 10:06:05

路由器VPN

2021-01-06 09:01:05

javaclass

2013-09-09 15:06:03

2009-07-09 18:15:42

JDBC事務處理

2009-08-07 17:42:43

ASP.NET Dat

2010-03-18 14:11:32

Web交換機

2010-05-11 16:22:40

2018-06-29 14:20:05

2010-09-26 14:08:41

Java垃圾回收

2020-01-16 09:55:28

STGW流量內核

2024-08-12 14:37:38

2010-04-16 09:06:18

WPF 4

2019-04-04 09:08:41

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人av播放 | 一区二区三区回区在观看免费视频 | 国产精品久久久久久婷婷天堂 | 91精品国产91久久综合桃花 | 国产毛片久久久久久久久春天 | 天天天天天操 | 日韩中文字幕av | 欧美极品在线观看 | 久久草在线视频 | 久久久91精品国产一区二区三区 | 在线观看国产wwwa级羞羞视频 | 国产精品欧美日韩 | 粉嫩高清一区二区三区 | 欧美中文字幕一区二区三区亚洲 | 日韩av视屏| 精品综合久久 | 丁香六月伊人 | 请别相信他免费喜剧电影在线观看 | 中文字幕亚洲欧美 | 久久久久一区二区三区四区 | 麻豆精品国产91久久久久久 | 毛片一级黄色 | 九九亚洲 | www.日韩 | 久久69精品久久久久久久电影好 | 亚洲在线高清 | 欧美美女爱爱视频 | 日韩一级免费大片 | 国产人免费人成免费视频 | 91黄色片免费看 | 红色av社区 | 91在线影院 | 偷拍自拍网址 | 欧美一级二级在线观看 | 欧美精产国品一二三区 | 99视频免费在线 | 久久精品99国产精品日本 | 影音先锋中文字幕在线观看 | 国产精品久久久久久久久久 | 四虎午夜剧场 | 精品日韩一区二区三区 |