完成應用程式架構與頁面設計後,探討實現多樣化普通資料到報表展現任務。前面了解從 DAL、BLL 繫結資料至 ASP.NET 頁面資料控制項。ASP.NET 1.x 透過 DataSource` 屬性賦值呼叫 DataBind()` 實現資料展現方式在 ASP.NET 2.0 仍可用。但 ASP.NET 2.0 資料源控制項提供新方式,讓你輕鬆從 BLL 繫結資料,甚至無需手寫程式碼。
ASP.NET 2.0 提供五種內建資料源控制項:SqlDataSource`、`AccessDataSource`、`ObjectDataSource`、`XmlDataSource`、`SiteMapDataSource`。若需求也可建構自訂資料源控制項。因前文完成應用程式範例系統架構,基於既有 BLL 類別使用 ObjectDataSource`。

圖 1:ASP.NET 2.0 包含五種內建的資料源控制項
ObjectDataSource` 扮演其他物件代理。配置時指定底層物件,及物件方法如何映射至 ObjectDataSource` 的 Select`、`Insert`、`Update`、`Delete` 方法。底層物件指定且方法映射後,可將 ObjectDataSource` 繫結至頁面 Data Web 伺服器控制項`。ASP.NET 提供多種 Data Web 伺服器控制項`:GridView`、`DetailsView`、`RadioButtonList`、`DropDownList` 等。頁面生命週期中,Data Web 伺服器控制項` 可能需存取繫結資料,透過呼叫 ObjectDataSource` 的 Select` 方法實現;若支援插入、更新、刪除,將呼叫 Insert`、`Update`、`Delete` 方法。這些呼叫經 ObjectDataSource` 發送至適當底層物件方法(見圖 2)。

圖 2:ObjectDataSource 扮演一個代理
雖 ObjectDataSource` 用於實現插入、更新、刪除,暫時專注回傳資料,後續章節探討 ObjectDataSource` 與 Data Web 伺服器控制項` 實現資料修改。
開啟 BasicReporting` 資料夾 SimpleDisplay.aspx`,切換設計檢視,從工具箱拖 ObjectDataSource` 至頁面。設計介面顯示灰色方塊,因不產生宣告標記;僅透過呼叫指定物件方法存取資料。ObjectDataSource` 回傳資料可展現至 Data Web 伺服器控制項`,如 GridView`、`DetailsView`、`FormView` 等。
注意: 另一選擇:先加 Data Web 伺服器控制項`,再「顯示智慧標籤」,從「選擇資料源」下拉選單選「<新建資料源...>`」進入配置精靈新增 ObjectDataSource`。
指定 ObjectDataSource` 底層物件並映射方法至 ObjectDataSource` 方法,點擊智慧標籤「配置資料源」連結進入配置精靈(見圖 3)。

圖 3:點擊智慧標籤中的「配置資料源」連結