0

我有一个看起来与此类似的 xml 文件

<items>
    <cla1>
        <type1>
            <unit>this is a unit</unit>
            <title>this is a title</title>
            <link></link>
        </type1>

        <type2>
            <unit>this is a unit</unit>
            <title>this is a title</title>
            <link></link>
        </type2>
    </cla1>

        <cla2>
            <type1>
                <title>this is a title</title>
                <link></link>
            </type1>
        </cla2>

</items>

使用此信息,我希望填充树视图控件,如下所示:

(无法添加图片,所以这里有一个链接) http://i.imgur.com/cVRDhDR.png

name of cla
 |____type1 value
 |  |____unit value
 |      |_____title value
 |____type2 value
 |  |____unit value
 |      |_____title value
 |
name of cla
 |____type1 value
 |  |____title value
 |      

我知道我的 xml 结构可能会使这变得困难(只是对它来说是新的),但是如果它使事情变得更容易,我不介意改变它。任何有关如何完成我正在寻找的建议的建议将不胜感激。这是我已经拥有的示例,对我来说这似乎过度且效率低下,我觉得有一种更简单的方法可以做到这一点。

//this code is in a loop going over certain nodes and
//keeps going like this until it reaches the end

if (!treeView1.Nodes.ContainsKey(cla))
{ treeView1.Nodes.Add(cla, cla); }

if (!treeView1.Nodes[cla].Nodes.ContainsKey(type))
{
treeView1.Nodes[cla].Nodes.Add(type, type);
}

谢谢

4

1 回答 1

0

您可以尝试将 TreeView 与 XMLDatasource 绑定作为此示例

这是你的 xml,我用标题节点做了一些修改

<?xml version="1.0" encoding="utf-8" ?>
<items>
    <cla1>
        <type1>
            <unit>this is a unit</unit>
            <title text="this is a titl1" link="/Default.aspx"></title>
            <link></link>
        </type1>
        <type2>
            <unit>this is a unit</unit>
            <title text="this is a titl2" link="/Default.aspx"></title>
            <link></link>
        </type2>
    </cla1>
    <cla2>
        <type1>
            <title text="this is a titl3" link="/Default.aspx"></title>
            <link></link>
        </type1>
    </cla2>
</items>

然后你必须在 aspx 部分制作绑定代码

<asp:XmlDataSource runat="server" id="xmlDataSource"  DataFile="App_Data/XMLFile.xml" />

    <asp:TreeView ID="TreeView1" runat="server"
        DataSourceID="xmlDataSource" >
        <DataBindings>
            <asp:TreeNodeBinding DataMember="title" TextField="text" NavigateUrlField="link"  />
        </DataBindings>
    </asp:TreeView>

仅绑定具有要绑定属性的元素的部分,例如具有文本链接属性的标题元素。我会在树视图中显示文本属性值,链接属性就像导航 url,所以我的代码变成这样。对于您不想绑定属性的其他元素,您不必对它们做任何事情,树视图将显示为您的 xml 部门。

于 2013-11-09T03:15:06.207 回答