问候!
我有一个使用XmlDataSource控件的Repeater控件。
<asp:FormView id="myFormView" runat="server" DataSourceID="myXmlDataSource">
<ItemTemplate>
<span>Items</span>
<asp:Repeater id="myRepeater1" runat="server" DataSource='<%# XPathSelect("Items/*")%>'>
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><%# XPath("text()")%></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
<span>Things</span>
<asp:Repeater id="myRepeater2" runat="server" DataSource='<%# XPathSelect("Things/*")%>'>
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><%# XPath("text()")%></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:FormView>
<asp:XmlDataSource ID="myXmlDataSource" XPath="Root" EnableCaching="false" runat="server" />
XML看起来像这样:
<Root>
<Items>
<Item>A</Item>
<Item>B</Item>
<Item>C</Item>
<Item>D</Item>
</Items>
<Things>
<Thing>1</Thing>
<Thing>2</Thing>
<Thing>3</Thing>
</Things>
</Root>
在某些情况下,我想在绑定时“跳过”“B”项目,以便不显示它。在DataBinding事件期间有没有办法可以跳过“B”项的绑定,以便它不会显示?
答案 0 :(得分:3)
如果您使用的是XmlDataSource,我建议您将XPath从“Root”更改为只包含您要绑定的项目。
答案 1 :(得分:3)
您可以调查转发器的OnItemDataBound()方法中的当前DataItem,如果符合您的条件,则跳过处理该项