ASP.NET 2.0數據教程之八:使用兩個DropDownList過濾的主/從報表
[2] ASP.NET 2.0數據教程之八:使用兩個DropDownList過濾的主/從報表
[3] ASP.NET 2.0數據教程之八:使用兩個DropDownList過濾的主/從報表
[4] ASP.NET 2.0數據教程之八:使用兩個DropDownList過濾的主/從報表
[5] ASP.NET 2.0數據教程之八:使用兩個DropDownList過濾的主/從報表
[6] ASP.NET 2.0數據教程之八:使用兩個DropDownList過濾的主/從報表
系列文章導航:
ASP.NET 2.0數據教程之四:使用ObjectDataSource展現數據
ASP.NET 2.0數據教程之六:編程設置ObjectDataSource的參數值
ASP.NET 2.0數據教程之七:使用DropDownList過濾的主/從報表
ASP.NET 2.0數據教程之八:使用兩個DropDownList過濾的主/從報表
ASP.NET 2.0數據教程之十:使用 GridView 和DetailView實現的主/從報表
ASP.NET 2.0數據教程之十一:基于數據的自定義格式化
ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
導言
在前面的指南中我們研究了如何顯示一個簡單的主/從報表, 該報表使用DropDownList和GridView控件, DropDownList填充類別,GridView顯示選定類別的產品. 這類報表用于顯示具有一對多關系的記錄時非常合適, 同時它也可以很容易的被擴展以顯示多個一對多關系的數據. 比如, 一個訂單系統應該包含表示客戶,訂單和訂單明細的表. 一個客戶也許有多個訂單,每個訂單又包含多條訂單項. 這樣的數據可以使用兩個DropDownList和一個GridView呈現給用戶. 第一個DropDownList應該包含數據庫中所有客戶的列表, 第二個DropDownList的內容是選定客戶的訂單. GridView用于列出所選定訂單的訂單明細項.
Step 1: 創建DropDownList并使用類別數據填充
我們的第一個目標是添加一個能夠列出類別的DropDownList. 這些步驟在前面的指南中已經做詳細的分析, 但為了保持本篇指南的完整性有必要在這里簡單概括一下.
打開Filtering文件夾中的MasterDetailsDetails.aspx, 在頁面上添加一個DropDownList, 設置它的ID為Categories,然后單擊智能標記上的 Configure Data Source鏈接. 在數據源配置向導中選擇新增一個數據源.
圖 1: 為DropDownList增加一個新的數據源
當然, 新的數據源應該是ObjectDataSource. 把新的ObjectDataSource命名為CategoriesDataSource并且讓他調用CategoriesBLL對象的GetCategories()方法
圖 2: 選擇使用CategoriesBLL類
圖3: 配置ObjectDataSource使用GetCategories()方法
配置完ObjectDataSource后還需要指定要在DropDownList中顯示的數據字段,以及作為數據項的值(value for the list item)的數據字段.我們指定CategoryName為要顯示的列,指定CategoryID為數據項的值字段
圖4: 指定DropDownList 顯示CategoryName列并且使用CategoryID列作為數據項的值
這時,我們就有了一個使用Categories表中的記錄來填充的DropDownList控件. 當用戶在DropDownList中選擇一個新的類別時, 我們需要一次回發,這樣可以刷新在第二步中我們要創建的產品DropDownList控件. 所以, categoriesDropDownList的智能標記上選中AutoPostBack選項.