提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2010-09-27 14:03:07.000|阅读 667 次
概述:在微软提供的文档中 Treeview 控件支持 XML 文件作为资源文件(XML 文件的结构本来就是一种树型结构),关于在 Treeview 控件中如可使用 XML 文件,很多资料有详细的介绍,本文介绍的则是用另外一种方式解析 XML 文件到 Treeview 控件中。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
在 Asp.Net 中,可以很方便地使用由微软提供的 Internet Exploer Web Controls 控件来实现树形列表。由微软提供的这套控件集合中包括有 MultiPage,TabStrip,Toolbar,Treeview 四个控件。
在微软提供的文档中 Treeview 控件支持 XML 文件作为资源文件(XML 文件的结构本来就是一种树型结构),关于在 Treeview 控件中如可使用 XML 文件,很多资料有详细的介绍,本文介绍的则是用另外一种方式解析 XML 文件到 Treeview 控件中。
因为该方法是我在没有找到资料的情况下为了方便使用该控件而自行写的一个处理过程,其实在使用的时候已经大不可必,写出来,只是出于共同学习的目的。
在拿到这个控件的时候,我对其使用方法是不大了解的,但为了让自己在以后的程序中能够较为方便的使用之,所以我决定采用使用 XML 文件的方式以存储节点信息,所以首先我构建了一个 XML 文件基本格式:
<?xml version="1.0" encoding="UTF-8"?>
<treeview>
<nodes>
<text>根节点</text>
<link></link>
<target>_self</target>
<description></description>
<node>
<text>测试节点 -1</text>
<link>/test1.aspx</link>
<target>MainFrame</target>
<description></description>
</node>
<node>
<text>测试节点 - 2</text>
<link>/test2.aspx</link>
<target>_top</target>
<description></description>
</node>
</nodes>
</treeview>
treeview 为根结点,nodes 为父级节点,node 为子节点。其中 nodes 可以嵌套,可以并行,node 只能并行。在定义好结构后,最主要的就是如何解析了。下面是具体的代码:
///
/// TreeViewParse TreeView解析器,从XML文件中读取节点值
/// document XML文档
/// treeView Microsoft.Web.UI.WebControls.TreeView
///
private void TreeViewParse(System.Xml.XmlNode document, Microsoft.Web.UI.WebControls.TreeView treeView)
{
if(document.Name != "treeview") return;
foreach(System.Xml.XmlNode node in document.ChildNodes)
{
if(node.Name != "nodes") return;
this.NodesParse(node, treeView, null);
}
}
///
/// NodesParse Nodes解析器,从XML文件中读取主节点值
/// document XML文档
/// treeView Microsoft.Web.UI.WebControls.TreeView
/// treeNode 父级节点
///
private void NodesParse(System.Xml.XmlNode document, Microsoft.Web.UI.WebControls.TreeView treeView, Microsoft.Web.UI.WebControls.TreeNode treeNode)
{
if(document.Name != "nodes") return;
Microsoft.Web.UI.WebControls.TreeNode child = new Microsoft.Web.UI.WebControls.TreeNode();
foreach(System.Xml.XmlNode node in document.ChildNodes)
{
string name = (node.Name != null ? node.Name : "");
// child.ID = node.Name + "_" + treeView.Nodes.Count.ToString();
switch(name.Trim().ToLower())
{
case "text":
child.Text = node.InnerText;
break;
case "link":
child.NavigateUrl = node.InnerText;
break;
case "target":
child.Target = node.InnerText;
break;
case "nodes":
NodesParse(node, treeView, child);
break;
case "node":
NodeParse(node, treeView, child);
break;
}
}
if(treeNode == null) treeView.Nodes.Add(child);
else treeNode.Nodes.Add(child);
}
///
/// NodeParse Node解析器,从XML文件中读取子节点值
/// document XML文档
/// treeView Microsoft.Web.UI.WebControls.TreeView
/// treeNode 父级节点
///
private void NodeParse(System.Xml.XmlNode document, Microsoft.Web.UI.WebControls.TreeView treeView, Microsoft.Web.UI.WebControls.TreeNode treeNode)
{
Microsoft.Web.UI.WebControls.TreeNode child = new Microsoft.Web.UI.WebControls.TreeNode();
foreach(System.Xml.XmlNode node in document.ChildNodes)
{
string name = (node.Name != null ? node.Name : "");
switch(name.Trim().ToLower())
{
case "text":
child.Text = node.InnerText;
break;
case "link":
child.NavigateUrl = node.InnerText;
break;
case "target":
child.Target = node.InnerText;
break;
case "nodes":
NodesParse(node, treeView, child);
break;
}
}
treeNode.Nodes.Add(child);
}
以下是使用方法:
private Microsoft.Web.UI.WebControls.TreeView MSTreeView = new Microsoft.Web.UI.WebControls.TreeView();
System.Xml.XmlDocument document = new System.Xml.XmlDocument(); //
document.Load(System.Web.HttpContext.Current.Server.MapPath(this.XmlDocument));
MSTreeView.Nodes.Clear();
TreeViewParse(document.DocumentElement, MSTreeView);
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢