在上月刊中為您介紹了 ListView 控件,它是 ASP.NET 3.5 控件工具箱中的一個新成員。概括來說, ListView 是 DataList 控件的增強版本,它提供了對生成標記的更多控制,還支持分頁功能,並與基於 數據源的綁定模型實現了全面集成。
在本專欄中,我將深入介紹 ListView 模板和數據綁定的基礎知識,以實現在實際頁面中非常常見但 卻需要額外編碼的一些功能。您將了解到如何使用嵌套的 ListView 控件來創建數據的分層視圖,以及如 何通過派生自定義 ListView 類來擴展 ListView 事件模型。
特別是,我將改進事件模型,以便您能夠為不同的綁定數據項組使用不同的模板。例如,您可以對數 據集中與給定標准匹配的所有數據項使用不同的模板。這絕不僅僅是簡單地將特定項目設置為不同的樣式 ;您可以在任何視圖控件中僅通過處理 ItemDataBound 事件即可輕松完成此任務。
通常,菜單是由一系列使用 CSS 設計的 <li> 標記實現的。呈現平面菜單不會引起任何特殊的 綁定問題,但如果需要一個或多個子菜單時會發生什麼情況呢?在這種情況下,您可以使用內置的菜單控 件,也可以借助 ListView 來創建極具個性化的呈現方式。順便說一下,要注意在默認情況下,菜單控件 使用基於表格的輸出,這與 ListView 所提供的 CSS 友好輸出截然不同。
構建分層菜單
許多 Web 應用程序都在頁面的左側或右側提供了垂直菜單。利用此菜單,用戶能夠導航至二級或多級 嵌套頁面。在這裡 ASP.NET 菜單控件無疑是一種可行的選擇。但是,我更傾向於僅當菜單需要使用分層 數據源(通常為 XML 文件)以及需要創建飛出式子菜單時才使用菜單控件。
對於靜態的多級項目列表,我選擇使用 repeater 型控件來輸出 UI 設計團隊創建的標記。在 ASP.NET 3.5 中,可供選擇的 repeater 型控件是 ListView 控件。