ASP.NET 2.0数据教程之三十四:跨页面的主/从报表2010-08-10 翻译:cnblogs 有些伤感返回“”导言在前面一章里我们学习了如何在一个页里显示主/从信息.另外一 种经常使用的模式就是将主从信息用两个页分别显示.在前面的跨页面的主/从报 表我们通过GridView显示所有的supplier来使用这个模式.GridView里包含一个 HyperLinkField,链接到另外一个页,并将SupplierID通过querystring传过去.第 二个页使用GridView列出了选中的supplier提供的product.这样的两页主 /从表也可以用DataList和Repeater来实现.唯一的区别是DataList和Repeater都 不提供HyperLinkField.所以我们需要添加一个HyperLink控件或者在 ItemTemplate里使用HTML <a>.HyperLink的NavigateUrl属性和<a> 的href属性可以通过声明或者编程来自定义.本章我们将探讨使用 Repeater列出categories.每个list item都包含了category的name和 description.通过name可以直接链接到第二个页面.在第二页里用DataList显示选 中的categroy提供的proudct.第一步: 列出Categories所有创建主从 表的第一步都是显示主记录.因此,我们首先在"主"页里显示 categories.打开DataListRepeaterFiltering文件夹里的 CategoryListMaster.aspx页,添加一个Repeater,然后通过智能标签添加一个 ObjectDataSource.使用CategriesBLL类的GetCategories方法配置它.见图 1.

图 1:使用CategoriesBLL类的GetCategories方法配置 ObjectDataSourcepage. The following shows the declarative markup for the Repeater and ObjectDataSource:我们先不关心如何添 加link.将Repeater的template配置成显示每个category的name和description.见 下面的代码:ASP.NET
<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:列出所有的 Category