TreeView显示

freeflying1222 2009-10-08 08:58:09

<?xml version="1.0" encoding="utf-8" ?>
<root>
<catalog>asp.net
<catalog>XML
<catalog>reader</catalog>
<catalog>writer</catalog>
</catalog>
<catalog>Pagelife Circle</catalog>
</catalog>
<catalog>Ajax</catalog>
<catalog>Sql</catalog>
</root>


用TreeView控件绑定以上xml文件,我希望的是:

+ asp.net
+ xml
+ reader
+ writer
+ pagelife circle
……

但实际结果是:
+ asp.net xml reader writer
+ xml reader writer
+ reader
+ writer
+ pagelife circle
……

也就是父节点在一行中就显示了所有的子节点内容。

如何处理呢?

我希望是做无限分级,想windows文件资源管理器那样。

我的代码:

<body>
<form id="form1" runat="server">
<div>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/XMLFile.xml">
</asp:XmlDataSource>
<asp:TreeView ID="TreeView1" runat="server" AutoGenerateDataBindings="False"
DataSourceID="XmlDataSource1" ShowLines="True">
<DataBindings>
<asp:TreeNodeBinding DataMember="root" />
<asp:TreeNodeBinding DataMember="catalog" TextField="#InnerText" />
</DataBindings>
</asp:TreeView>
</div>
</form>
</body>


用的TextField="#InnerText",不知道有没有问题?
...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
freeflying1222 2010-02-16
  • 打赏
  • 举报
回复
正解:
xml文件:

<catalog name="reader" value="value"></catalog>

aspx文件:

<asp:TreeNodeBinding DataMember="catalog" TextField="name" />
小芝麻 2009-10-11
  • 打赏
  • 举报
回复
XMLFile.xml修改一下加个value:
<?xml version="1.0" encoding="utf-8" ?>
<root >
<catalog value="asp.net">
<catalog value="XML">
XML
<catalog value="reader">reader</catalog>
<catalog value="writer">writer</catalog>
</catalog>
<catalog value="Pagelife Circle">Pagelife Circle</catalog>
</catalog>
<catalog value="Ajax">Ajax</catalog>
<catalog value="Sql">Sql</catalog>
</root>


<asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1">
<DataBindings>
<asp:TreeNodeBinding DataMember="catalog" TextField="value" />
<asp:TreeNodeBinding DataMember="catalog" TextField="value" />
<asp:TreeNodeBinding DataMember="catalog" TextField="value" />
</DataBindings>
</asp:TreeView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/XMLFile.xml"></asp:XmlDataSource>
春天的气息 2009-10-11
  • 打赏
  • 举报
回复
楼上都说了,更多TreeView的也可以参照一下:http://www.bbs180.com/topictag-45.aspx
sforiz 2009-10-11
  • 打赏
  • 举报
回复
学习一下、、
mngzilin 2009-10-11
  • 打赏
  • 举报
回复
楼上正确
huming_h 2009-10-08
  • 打赏
  • 举报
回复
你用xmldatasource直接绑定就行了
为什么还要设置treeviw的 <DataBindings>
<asp:TreeNodeBinding DataMember="root" />
<asp:TreeNodeBinding DataMember="catalog" TextField="#InnerText" />
</DataBindings>
wuyq11 2009-10-08
  • 打赏
  • 举报
回复
递归绑定数据
System.Xml.XmlDocument dom = new System.Xml.XmlDocument();
dom.LoadXml(xml);
foreach (System.Xml.XmlNode node in dom.ChildNodes)
{
if(node.Name !="xml")
{

}
}
void GetNodeText(System.Xml.XmlNode node)
{
string str=node.InnerText;
if (node.HasChildNodes)
{
foreach (System.Xml.XmlNode n in node.ChildNodes)
{

}
}
}
也可先遍历1几层,再点击时加载其他层数据
参考

62,067

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧