Cómo filtrar condicionalmente un XMLDATASOURCE de un repetidor basado en el valor de los padres

StackOverflow https://stackoverflow.com/questions/7419888

Pregunta

Estoy tratando de crear una navegación en el menú de la página de detalle del producto y solo quiero mostrar los elementos de navegación para productos que están en la misma categoría.

Los datos se mantienen en dos archivos XML diferentes. Uno que contiene los datos actuales del producto y otro que contiene la información de navegación. Ambos contienen "categoría" como elemento.

Me gustaría usar otro XMLDataSource y luego pasar en la categoría de productos actuales desde el contenedor principal, accesible usando XPATH ("Categoría"), al atributo XPath para filtrar los valores.

Luego pasaría esta fuente de datos filtrada a un repetidor para representar.

<%-- 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&amp;id=<%# XPath("prodctid") %>"><%# XPath("producttitle") %></a></li>
        </ItemTemplate>
        <FooterTemplate>
            </ul>
        </FooterTemplate>
     </asp:Repeater>

     ... etc

Sin embargo, esto no funciona.

¿Cómo hago para lograr esto en .NET 2.0?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top