Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何用代码填充我的ASP.NET树视图?_C#_Asp.net_Xml_Treeview_Xelement - Fatal编程技术网

C# 如何用代码填充我的ASP.NET树视图?

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");

大家好,我对asp.net中的treeview控件有问题。我想用xml文件填充它,但asp.net中的treeview与窗口窗体treeview控件不同:/

我的treeview的名称是treeview…我的文件夹中没有xml,我创建了一个xml字符串并使用它,但在这个示例中,我只想测试如何用代码填充这个treeview。我如何用我的方法做到这一点

这是我的密码:

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不像论坛,如果它与当前问题没有直接关系,你需要问新问题,无论如何检查这个链接