我有一个类似于此
的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);
}
由于
答案 0 :(得分: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部门。