用戶可以方便地改換顯示控件、改變分頁控件本身的外觀。例如,在圖一中,和分頁控件協作的顯示控件可發換成一個DataGrid控件,頁面編號鏈接和四個導航按鈕分兩行顯示。
ASP.NET 支持創建定制Web控件的三種方式:用戶控件,復合控件,自定義控件。第三種控件即自定義控件的名稱很容易引起誤解。實際上,所有這三種控件都應該算是自 定義控件。復合控件和微軟所謂的自定義控件的不同之處在於,前者要用到CreateChildControls()方法, CreateChildControls()方法允許控件根據某些事件重新繪制自身。對於本文的通用分頁器,我們將使用復合控件。
下面的UML序列圖概括了通用分頁控件的一般機制。
雖然我們的目標是讓通用分頁控件不依賴於表現數據的控件,但很顯然,總得有某種方法讓分頁控件訪問數據。每一個從Control類繼承的控件都提供一個 DataBinding事件。我們把分頁器本身注冊成DataBinding事件的監聽器,分頁器就可以獲知數據的情況並修改數據。由於所有從 Control類繼承的控件都有這個DataBinding事件,所以分頁器控件達到了不依賴於特定數據表現控件的目標——換句話說,分頁器控件可以綁定 到所有從Control類派生的控件,即它能夠綁定到幾乎所有的Web控件。