ASP.NET 2.0 引入的 Web 部件架構為 Web 應用程式帶來了強大的個人化與元件化能力。本文深入探討 Web 部件連接機制,說明如何設計可互通的提供者與消費者部件,實現主從式資料呈現、一對多關聯查詢及表單篩選等實務情境。
建立自訂類別繼承 System.Web.UI.WebControls.WebParts.WebPart,封裝於組件 DLL 中。此方式支援版本控制、重複使用與 Visual Studio 2005 設計工具整合,適合企業級元件開發。
拖放控制項快速建構 UI,適合快速原型開發。建議實作 IWebPart 介面,以便程式化設定 Title、TitleIconUrl 等屬性。範例採用 WebPartBase 基類繼承 UserControl 並實作 IWebPart:
Partial Class WebParts_Customers
Inherits WebPartBase
Sub New()
Title = "Northwind Customer List"
TitleIconImageUrl = "~\img\Customers.gif"
End Sub
End Class
ICustomerIDProvider)。ASP.NET 2.0 僅要求提供者實作介面,較 WSS 2.0 的雙向介面限制更靈活。
Public Interface ICustomerIDProvider
ReadOnly Property CustomerID() As String
End Interface
客戶清單部件(提供者)連接客戶明細部件(消費者),傳遞 CustomerID 顯示詳細資訊。
客戶清單連接訂單清單部件,依選取客戶篩選訂單。
篩選條件部件連接結果顯示部件,執行查詢前傳遞參數。
ICustomerIDProvider 介面定義契約。CustomerID 屬性回傳當前選取項目鍵值。WebPartManager 與 WebPartZone 宣告靜態連接,或執行期動態建立。Web 部件連接將獨立元件編織成協作應用,是建構模組化、可擴充企業入口網站的關鍵技術。