1

我通过 XmlDataSource 得到了简单的 TreeView 绑定。这些数据表示包含某些项目的类别。我需要显示这些类别中的记录数。我怎样才能做到这一点?我得到了这个代码:

<asp:TreeView ID="TreeView1" 
        runat="server" 
        DataSourceID="XmlDataSource1" 
        ImageSet="Arrows"
        ExpandDepth="1" 
        OnSelectedNodeChanged="TreeView1_SelectedNodeChanged">
        <DataBindings>
            <asp:TreeNodeBinding DataMember="root" TextField="name" ValueField="id"  />
            <asp:TreeNodeBinding DataMember="category" TextField="name" ValueField="id" />
            <asp:TreeNodeBinding DataMember="subcategory" TextField="name" ValueField="id" />
            <asp:TreeNodeBinding DataMember="subsubcategory" TextField="name" ValueField="id" />
        </DataBindings>
        <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
        <NodeStyle Font-Names="Tahoma" 
            Font-Size="10pt" 
            ForeColor="Black" 
            HorizontalPadding="5px"
            NodeSpacing="0px" 
            VerticalPadding="0px" />
        <ParentNodeStyle Font-Bold="False" />
        <SelectedNodeStyle Font-Underline="True" 
            ForeColor="#5555DD" 
            HorizontalPadding="0px"
            VerticalPadding="0px" />
    </asp:TreeView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Categories.xml">
</asp:XmlDataSource>

我应该从这个页面还是从 XmlDataSource 调用一些 Sql 命令?谢谢你的建议

4

1 回答 1

0

下面是我将如何使用 TreeNodeDataBound 事件处理程序和 XPathNavigator 继续显示附加到名称的子项数量

protected void TreeView1_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
    {
    XmlElement myElement = (XmlElement)e.Node.DataItem;
    // e.Node.NavigateUrl = ...
    // e.Node.Expanded = ...
    e.Node.Text = String.Format("{0} ({1})"
                   ,myElement.Attributes["name"].Value
                   ,myElement.CreateNavigator().Evaluate("count(./child::*)"));
}

希望这会有所帮助

于 2013-08-30T15:44:16.480 回答