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

ASP.NET自定義控件 第十天 實現分頁功能的DataList

編輯:關於ASP.NET

1. 引言

在ASP.NET中DataList可以實現數據展示,我們可以通過定制其模版實現豐富 的格式,但是美中不足的時DataList默認情況下不支持分頁,我們當然可以編寫 一個用戶控件以實現分頁功能,但是這種方案仍然不是很好,我們希望像使用普 通ASP.NET服務器端控件一樣,只需要放置一個DataList並設置分頁樣式就可以輸 出分頁鏈接。

在上次任務中我們創建了DataPager類將創建分頁的操作從GridView分離出來 ,本次任務將嘗試重用DataPager類為DataList增加分頁特性。

2. 分析

開發自定義GridView控件時,可以通過向控件中加入具有特定CommandName的 按鈕實現分頁,但是對於DataList卻不適用,因為DataList不能接收到客戶端的 回發事件,這也是DataList類和GridView類的一個區別—DataList類沒有實現 IPostBackEventHandler接口。為了能夠使DataList接收客戶端回發並觸發分頁事 件,需要使自定義DataList實現IPostBackEventHandler接口,並使用自定義事件 參數類在觸發事件時傳遞頁碼信息。

IPostBackEventHandler接口定義了ASP.NET服務器控件為處理回發事件而必須 實現的方法,它的成員只有一個方法:

void RaisePostBackEvent(string eventArgument)

該方法由類實現時,使服務器控件能夠處理將窗體發送到服務器時引發的事件 。

接下來需要考慮如何在客戶端引起回發事件,即怎樣生成回發腳本。這裡使用 到了ClientScriptManager類,該類作為Page類的一個屬性ClientScript出現,通 過調用該類的GetPostBackClientHyperlink方法生成客戶端腳本以引起回發,該 方法有兩個形式的重載:

GetPostBackClientHyperlink (Control, String)

獲取一個引用,並在其開頭附加 javascript:,可以在客戶端事件中使用該引 用,並將該引用與指定的事件參數一起使用,以便回發到指定控件的服務器。

GetPostBackClientHyperlink (Control, String, Boolean)

獲取一個引用,並在其開頭附加 javascript:,該引用可用於在客戶端事件中 回發到指定控件的服務器,回發時使用指定的事件參數和一個指示是否為事件驗 證注冊該回發的布爾值。

其中第一個參數指明了處理回發的服務器控件,第二個參數代表傳遞給服務器 控件的參數,第三個參數代表是否驗證注冊回發事件。

接下來編寫實現代碼。

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