首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 數據教程(三十):DataList 與 Repeater 資料格式化完整指南

     編輯:關於ASP.NET

返回 ASP.NET 2.0 數據教程目錄

導言

前面教程學習 DataList 提供樣式屬性,及定義 HeaderStyle、ItemStyle、AlternatingItemStyle、SelectedItemStyle 等預設 CSS。除這四個屬性,DataList 還提供 Font、ForeColor、BackColor、BorderWidth 等。Repeater 則無此類屬性,若需此效果需直接在模板撰寫標記。

資料格式化需求通常取決於資料本身。例如:以灰色字體列出停用產品、UnitsInStock 為 0 時高亮顯示。前面教程已學 GridView、DetailsView、FormView 提供兩種截然不同的格式化方法:

  1. DataBound 事件 — 建立事件處理器,在資料繫結至項目時觸發(GridView 為 RowDataBound,DataList/Repeater 為 ItemDataBound)。在事件中格式化剛繫結資料。參考 基於數據的自定義格式化。
  2. 模板格式化功能 — 在 DetailsView/GridView 使用 TemplateField、FormView 使用模板,可在 ASP.NET 頁面代碼後置、BLL 或任何可呼叫的類別庫加入格式化方法。此功能可接收任意輸入參數,在模板中回傳 HTML。最早於 在 GridView 控制項中使用 TemplateField 提及。

兩種方法皆適用於 DataList 與 Repeater。本章將逐步示範這兩種方法在兩控制項中的應用。

使用 ItemDataBound 事件處理器

資料繫結至 DataList 時(無論使用資料源控制項或程式碼直接用 DataSource 與 DataBind()),DataBinding 事件觸發。DataList 為資料源每筆記錄建立 DataListItem 物件並繫結當前記錄。過程中觸發兩事件:

  • ItemCreated — 建立 DataListItem 後觸發
  • ItemDataBound — 當前記錄繫結至 DataListItem 後觸發

DataList 資料繫結大致步驟:

  1. DataBinding 事件觸發
  2. 對資料源每筆記錄……
  3. 建立 DataListItem 物件
  4. 觸發 ItemCreated 事件
  5. 繫結記錄至 DataListItem
  6. 觸發 ItemDataBound 事件
  7. 將 DataListItem 加入 Items 集合

Repeater 同理,差別在於 DataListItem 換成 RepeaterItem。

注意: 細心讀者可能注意到 DataList/Repeater 繫結步驟順序與 GridView 略有不同。GridView 後期觸發 DataBound 事件,DataList/Repeater 則無此事件。

同 GridView,可為 ItemDataBound 建立事件處理器格式化資料。此處理器可處理剛繫結至 DataListItem 或 RepeaterItem 的資料,依需求格式化。

對 DataList,可用樣式相關屬性(Font、ForeColor、BackColor、CssClass 等)格式化項目。若要格式化模板內 Web 控制項,需程式化取得控制項再控制。參考 Custom Formatting Based Upon Data。Repeater 控制項同樣無樣式屬性,需在 ItemDataBound 事件處理器中程式化實現。

因 DataList/Repeater 使用 ItemDataBound 格式化技術本質相同,示範以 DataList 為主。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved