程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET自定義控件 第九天 自定義GridView

ASP.NET自定義控件 第九天 自定義GridView

編輯:關於ASP.NET

1. 引言

ASP.NET 2.0裡為我們提供了全新的GridView控件,它在DataGrid基礎之上增 加了許多新的特性,例如不編寫一行代碼就可以和數據源控件結合起來實現數據 的展示並且分頁,但是這種分頁效率較低,這是從數據庫一次讀取所有的數據再 進行分頁,如果數據量較少則可以實現快速開發,但是假如數據庫中存放大量數 據,這種操作性能顯得就比較低了,所以我們一般自己編寫數據讀取方法,在 PageIndexChanging事件中綁定新頁,這時會遇到一個問題,如果我們僅讀取一頁 數據時GridView不能正確計算出共有多少頁,也就無法正確呈現出分頁按鈕,因 此需要考慮對其進行擴展。另外DataList控件提供了靈活的模版設置以顯示記錄 內容,但是它有一個最大的弱點就是不支持分頁,我們同樣試圖擴展DataList以 增加分頁的特性。

2. 分析

之所以要將GridView和DataList放在一起考慮,是因為不論哪一個數據綁定控 件生成分頁鏈接列表時需要執行相似的操作。GridView控件本身支持分頁,所以 在開發自定義表格控件時,只需要加入相應的按鈕服器端控件,將CommandName屬 性設置為Page,並設置CommandArgument屬性為特定值,即可由GridView捕捉到頁 面更改事件,為了避免在代碼中出現“魔法字符”,定義了常量類保存使用的字 符串常量。但是這種方法對於DataList卻不適用,因為DataList不能接收到客戶 端的回發事件,這也是DataList類和GridView類的一個區別—DataList類沒有實 現IPostBackEventHandler接口。為了能夠使DataList接收客戶端回發並觸發分頁 事件,需要使自定義DataList實現IPostBackEventHandler接口,並使用自定義事 件參數類在觸發事件時傳遞頁碼信息。

現在自定義GridView和DataList控件均可以實現分頁了,為了使兩者有一個統 一的分頁外觀,定義分頁基類實現分頁功能,並且針對DataList分頁,繼承分頁 基類並設置分頁按鈕的回發腳本。最後為了能夠把分頁按鈕作為一個整體添加到 表格中,使之繼承自TableCell(表格中的單元格)。

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