C# .NET-Treeview控件 标题1 副标题1 20 真的 资料 下降的 #996666 19
上面是我的XML 在My.ASPX页面中:C# .NET-Treeview控件 标题1 副标题1 20 真的 资料 下降的 #996666 19,c#,.net,C#,.net,上面是我的XML 在My.ASPX页面中: <?xml version="1.0" encoding="UTF-8" ?> <properties> <general> <title type="textbox">title1</title> <subtitle type="textbox">subtitle1</subtitle> <radius t
<?xml version="1.0" encoding="UTF-8" ?>
<properties>
<general>
<title type="textbox">title1</title>
<subtitle type="textbox">subtitle1</subtitle>
<radius type="textbox">20</radius>
</general>
<behavior>
<sorting>
<enable type="checkbox">True</enable>
<by type="dropdown">Data</by>
<order type="dropdown">Descending</order>
</sorting>
</behavior>
<appearance>
<series>
<innerseries type="colorpicker">#996666</innerseries>
<innerseries type="colorpicker"></innerseries>
<innerseries type="colorpicker"></innerseries>
<transparency type="slider">19</transparency>
</series>
</appearance>
</properties>
在我的Codebehind中,我动态加载一个xml并构建一个树视图
<asp:TreeView ID="TreeView1" runat="server"
OnSelectedNodeChanged="TreeView1_SelectedNodeChanged1" ImageSet="Arrows"
EnableTheming="true">
</asp:TreeView>
<asp:Button ID="Button1" runat="server" Text="Submit" OnClick="Button1_Click" />
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
doc.LoadXml(“XmlFile”);
XmlNode节点=doc.DocumentElement;
TreeView1.Nodes.Clear();
添加(新的TreeNode(doc.DocumentElement.Name));
TreeNode tNode=新的TreeNode();
tNode=TreeView1.Nodes[0];
Property obj=新属性();
对象AddChildNode(node,tNode);
}
在my Property.cs(类文件)中
public void AddChildNode(XmlNode中的XmlNode,TreeNode中的TreeNode)
{
xmlnodexnode;
三烯醇化物;
XmlNodeList节点列表;
int i;
//循环遍历XML节点,直到到达叶。
//在循环过程中将节点添加到树视图。
//if(inXmlNode.HasChildNodes)
if(inXmlNode.ChildNodes.Count>=1&&inXmlNode.ChildNodes[0].HasChildNodes)
{
nodeList=inXmlNode.ChildNodes;
对于(i=0;i 1)
{
nodeList=inXmlNode.ChildNodes;
对于(i=0;i)您想做什么请澄清?这不是它的工作方式,其他事情正在发生。向我们展示您的代码;您在何处创建TreeViewItem并将其添加到树和树事件。
protected void Button1_Click(object sender, EventArgs e)
{
doc.LoadXml("XmlFile");
XmlNode node = doc.DocumentElement;
TreeView1.Nodes.Clear();
TreeView1.Nodes.Add(new TreeNode(doc.DocumentElement.Name));
TreeNode tNode = new TreeNode();
tNode = TreeView1.Nodes[0];
Property obj = new Property();
obj.AddChildNode(node, tNode);
}
In my Property.cs (Class File)
public void AddChildNode(XmlNode inXmlNode, TreeNode inTreeNode)
{
XmlNode xNode;
TreeNode tNode;
XmlNodeList nodeList;
int i;
// Loop through the XML nodes until the leaf is reached.
// Add the nodes to the TreeView during the looping process.
//if (inXmlNode.HasChildNodes)
if (inXmlNode.ChildNodes.Count >= 1 && inXmlNode.ChildNodes[0].HasChildNodes)
{
nodeList = inXmlNode.ChildNodes;
for (i = 0; i <= nodeList.Count - 1; i++)
{
xNode = inXmlNode.ChildNodes[i];
inTreeNode.ChildNodes.Add(new TreeNode(xNode.Name));
tNode = inTreeNode.ChildNodes[i];
AddChildNode(xNode, tNode);
}
}
else
{
if (inXmlNode.ChildNodes.Count > 1)
{
nodeList = inXmlNode.ChildNodes;
for (i = 0; i <= nodeList.Count - 1; i++)
{
xNode = inXmlNode.ChildNodes[i];
inTreeNode.ChildNodes.Add(new TreeNode(xNode.Name));
tNode = inTreeNode.ChildNodes[i];
AddChildNode(xNode, tNode);
}
}
// Here you need to pull the data from the XmlNode based on the
// type of node, whether attribute values are required, and so forth.
else
{
if (inXmlNode.ChildNodes.Count == 0)
{
inTreeNode.Text = (inXmlNode.Name).Trim();
inTreeNode.Target = inXmlNode.Attributes[0].Value;
}
else
{
inTreeNode.Text = (inXmlNode.Name).Trim();
inTreeNode.Target = inXmlNode.Attributes[0].Value;
inTreeNode.Value = inXmlNode.ChildNodes[0].Value;
}
}
//inTreeNode.Value = (inXmlNode.OuterXml).Trim();
}
}