代码之家  ›  专栏  ›  技术社区  ›  Bullines

在数据绑定期间跳过项目

  •  2
  • Bullines  · 技术社区  · 17 年前

    问候语!

    我有一个使用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" />
    

    <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”项,这样就不会显示它。在数据绑定事件期间,有没有一种方法可以跳过“B”项的绑定,这样就不会显示它?

    2 回复  |  直到 17 年前
        1
  •  3
  •   Jarrett Widman    17 年前

    如果您使用的是XmlDataSource,我建议您将XPath从“Root”更改为只包含要绑定的项。

        2
  •  3
  •   Christian Hagelid    17 年前

    您可以在repeater的OnItemDataBound()方法中调查当前数据项,如果该项符合您的条件,则跳过处理该项