前一章 使用 DropDownList 過濾的主/從報表 學習單頁面主從資訊顯示。另一常用模式為跨頁面顯示主從資訊。在 跨頁面的主/從報表 中透過 GridView 顯示所有供應商,包含 HyperLinkField 連結至另一頁並以查詢字串傳遞 SupplierID。第二頁用 GridView 列出所選供應商提供的產品。
此兩頁主從模式同樣可用 DataList 與 Repeater 實作。差別在於 DataList 與 Repeater 無 HyperLinkField,需在 ItemTemplate 加入 HyperLink 控制項或 HTML <a> 標籤。HyperLink 的 NavigateUrl 與 <a> 的 href 可宣告式或程式化設定。
使用 Repeater 列出分類,每個項目包含分類名稱與描述。點擊名稱連結至第二頁,第二頁用 DataList 顯示所選分類提供的產品。
建立主從報表第一步:顯示主記錄。開啟 DataListRepeaterFiltering 資料夾的 CategoryListMaster.aspx,加入 Repeater,透過智慧標籤加入 ObjectDataSource,使用 CategoriesBLL 類別的 GetCategories 方法設定(見圖 1)。

圖 1:使用 CategoriesBLL 類別的 GetCategories 方法設定 ObjectDataSource
Repeater 與 ObjectDataSource 宣告式標記如下:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1" EnableViewState="False">
<HeaderTemplate><ul></HeaderTemplate>
<ItemTemplate><li><%# Eval("CategoryName") %> - <%# Eval("Description") %></li></ItemTemplate>
<FooterTemplate></ul></FooterTemplate>
</asp:Repeater>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetCategories" TypeName="CategoriesBLL"></asp:ObjectDataSource>
完成後瀏覽頁面,如圖 2 所示。

圖 2:列出所有分類