製品の詳細ページのメニューナビゲーションを構築しようとしていて、同じカテゴリーの製品のナビゲーション項目のみを表示したいとします。親値に基づいてリピーターのXmlDataSourceを条件付きでフィルターする方法
データは2つの異なるXMLファイルで管理されます。 現在の製品データを含むものと、ナビゲーション情報を含むもの。 どちらも "カテゴリ"を要素として含んでいます。
別のXmlDataSourceを使用し、XPath(「カテゴリ」)を使用してアクセス可能な親コンテナから現在の製品カテゴリをXPath属性に渡して値をフィルタリングしたいと考えています。
このフィルタリングされたデータソースをレンダリングのためにリピータに渡します。
<%-- get the current product XML --%>
<asp:XmlDataSource ID="productDS" runat="server" XPath="/product" DataFile="~/App_Theme/project/products/poduct1.xml"/>
<asp:DataList ID="product" DataSourceID="productDS" runat="server">
<ItemTemplate>
<%--
get the navigation XML and filter the nodes to only show the navItems with the current product category
--%>
<asp:XmlDataSource ID="navItemsDS" runat="server" XPath="/navigation/navItems/navItem[category='<%# XPath("category") %>']" DataFile="~/App_Theme/project/productslist.xml"/>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="navItemsDS" >
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><a href="productdetail.html?page=products&id=<%# XPath("prodctid") %>"><%# XPath("producttitle") %></a></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
... etc
これは動作しません。
これを.NET 2.0でどうやって達成するか。