C# 如何用代码填充我的ASP.NET树视图?
大家好,我对asp.net中的treeview控件有问题。我想用xml文件填充它,但asp.net中的treeview与窗口窗体treeview控件不同:/ 我的treeview的名称是treeview…我的文件夹中没有xml,我创建了一个xml字符串并使用它,但在这个示例中,我只想测试如何用代码填充这个treeview。我如何用我的方法做到这一点 这是我的密码:C# 如何用代码填充我的ASP.NET树视图?,c#,asp.net,xml,treeview,xelement,C#,Asp.net,Xml,Treeview,Xelement,大家好,我对asp.net中的treeview控件有问题。我想用xml文件填充它,但asp.net中的treeview与窗口窗体treeview控件不同:/ 我的treeview的名称是treeview…我的文件夹中没有xml,我创建了一个xml字符串并使用它,但在这个示例中,我只想测试如何用代码填充这个treeview。我如何用我的方法做到这一点 这是我的密码: XElement doc = XElement.Load("~/App_Data/test_xml.xml");
XElement doc = XElement.Load("~/App_Data/test_xml.xml");
TreeNode Feature;
TreeNode User;
foreach (XElement state in doc.Descendants("FEATURE"))
{
Feature = treeview.Nodes.Add(state.Attribute("NAME").Value);
foreach (XElement region in state.Descendants("USER"))
{
User =
Feature.Nodes.Add(region.Attribute("NAME").Value);
foreach (XElement area in region.Descendants("NAME"))
{
User.Nodes.Add(area.Attribute("NAME").Value);
}
}
}
我的xml示例:
<?xml version="1.0" encoding="UTF-8"?>
<LM-X STAT_VERSION="3.32">
<LICENSE_PATH TYPE="NETWORK" HOST="Server002" SERVER_VERSION="4.4.4" UPTIME="53 day(s) 21 hour(s) 10 min(s) 50 sec(s)">
<FEATURE NAME="GlobalZoneEU" VERSION="12.0" VENDOR="ALTAIR" START="2013-03-26" END="2014-03-31" USED_LICENSES="111720" TOTAL_LICENSES="147000" SHARE="CUSTOM ,VIRTUAL">
<USER NAME="SYSTEM" HOST="Server1" IP="" USED_LICENSES="2000" LOGIN_TIME="2013-04-17 12:42" CHECKOUT_TIME="2013-04-17 12:42" SHARE_CUSTOM=""/>
>
<USER NAME="Admin" HOST="Server1" IP="" USED_LICENSES="720" LOGIN_TIME="2013-04-17 12:44" CHECKOUT_TIME="2013-04-17 12:44" SHARE_CUSTOM=""/>
>
<USER NAME="Test.A" HOST="4327" IP="" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 07:52" CHECKOUT_TIME="2013-05-21 07:52" SHARE_CUSTOM=""/>
>
<USER NAME="Test.B" HOST="4327" IP="" USED_LICENSES="6000" LOGIN_TIME="2013-05-21 07:54" CHECKOUT_TIME="2013-05-21 07:54" SHARE_CUSTOM=""/>
>
<USER NAME="Test.C" HOST="4970" IP="" USED_LICENSES="21000" LOGIN_TIME="2013-05-21 08:15" CHECKOUT_TIME="2013-05-21 08:15" SHARE_CUSTOM=""/>
</FEATURE>
<FEATURE NAME="HWAIFPBS" VERSION="12.0" VENDOR="ALTAIR" START="2013-03-26" END="2014-03-31" USED_LICENSES="0" TOTAL_LICENSES="2147483647" SHARE="CUSTOM ,VIRTUAL"/>
<FEATURE NAME="HWAWPF" VERSION="12.0" VENDOR="ALTAIR" START="2013-03-26" END="2014-03-31" USED_LICENSES="0" TOTAL_LICENSES="2147483647" SHARE="CUSTOM ,VIRTUAL"/>
<FEATURE NAME="HWAcuconsole" VERSION="12.0" VENDOR="ALTAIR" START="2013-03-26" END="2014-03-31" USED_LICENSES="0" TOTAL_LICENSES="2147483647" SHARE="CUSTOM ,VIRTUAL"/>
</LICENSE_PATH>
</LM-X>
>
>
>
>
您可以按照Jeremy的建议使用XmlDataSource
,或者按照下面的方法更改代码
XElement doc = XElement.Load("~/App_Data/test_xml.xml");
TreeNode root = new TreeNode("FEATURES");
foreach (XElement state in doc.Descendants("FEATURE"))
{
TreeNode feature = new TreeNode(state.Attribute("NAME").Value);
foreach (XElement region in state.Descendants("USER"))
{
TreeNode user = new TreeNode(region.Attribute("NAME").Value);
foreach (XElement area in region.Descendants("NAME"))
{
user.ChildNodes.Add(new TreeNode(area.Attribute("NAME").Value));
}
feature.ChildNodes.Add(user);
}
root.ChildNodes.Add(feature);
}
treeview.Nodes.Add(root);
你能让它按照下面的指导工作吗:我得到功能节点,但不是用户节点:/@Tarasov根据给定的XML,你将得到用户节点,但不低于该节点,因为用户nodesok没有死者,所以它可以工作…如果我点击树视图中的一个节点并想要这个值,你知道我如何使用click事件吗?@Tarasov StackOverflow不像论坛,如果它与当前问题没有直接关系,你需要问新问题,无论如何检查这个链接