六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

自定義 XML 文件在 TreeView 控件中的使用

[摘要]在 Asp.Net 中,可以很方便地使用由微軟提供的 Internet Exploer Web Controls 控件來(lái)實(shí)現(xiàn)樹形列表。由微軟提供的這套控件集合中包括有 MultiPage,TabSt...
在 Asp.Net 中,可以很方便地使用由微軟提供的 Internet Exploer Web Controls 控件來(lái)實(shí)現(xiàn)樹形列表。由微軟提供的這套控件集合中包括有 MultiPage,TabStrip,Toolbar,Treeview 四個(gè)控件。

關(guān)于這幾個(gè)控件的使用在微軟的網(wǎng)站由詳細(xì)的說(shuō)明(參見:http://www.microsoft.com/china/msdn/archives/library/dnaspp/html/aspnet-usingtreeviewiewebcontrol.asp; http://msdn.microsoft.com/library/default.asp?url=/workshop/webcontrols/overview/overview.asp)。

在微軟提供的文檔中 Treeview 控件支持 XML 文件作為資源文件(XML 文件的結(jié)構(gòu)本來(lái)就是一種樹型結(jié)構(gòu)),關(guān)于在 Treeview 控件中如可使用 XML 文件,很多資料有詳細(xì)的介紹(http://www.yesky.com/SoftChannel/72342380468043776/20040630/1825811.shtml),本文介紹的則是用另外一種方式解析 XML 文件到 Treeview 控件中。

因?yàn)樵摲椒ㄊ俏以跊](méi)有找到資料的情況下為了方便使用該控件而自行寫的一個(gè)處理過(guò)程,其實(shí)在使用的時(shí)候已經(jīng)大不可必,寫出來(lái),只是出于共同學(xué)習(xí)的目的。

在拿到這個(gè)控件的時(shí)候,我對(duì)其使用方法是不大了解的,但為了讓自己在以后的程序中能夠較為方便的使用之,所以我決定采用使用 XML 文件的方式以存儲(chǔ)節(jié)點(diǎn)信息,所以首先我構(gòu)建了一個(gè) XML 文件基本格式:

<?xml version="1.0" encoding="UTF-8"?>
<treeview>
<nodes>
<text>根節(jié)點(diǎn)</text>
<link></link>
<target>_self</target>
<description></description>
<node>
<text>測(cè)試節(jié)點(diǎn) -1</text>
<link>/test1.aspx</link>
<target>MainFrame</target>
<description></description>
</node>
<node>
<text>測(cè)試節(jié)點(diǎn) - 2</text>
<link>/test2.aspx</link>
<target>_top</target>
<description></description>
</node>
</nodes>
</treeview>

treeview 為根結(jié)點(diǎn),nodes 為父級(jí)節(jié)點(diǎn),node 為子節(jié)點(diǎn)。其中 nodes 可以嵌套,可以并行,node 只能并行。在定義好結(jié)構(gòu)后,最主要的就是如何解析了。下面是具體的代碼:

///
/// TreeViewParse TreeView解析器,從XML文件中讀取節(jié)點(diǎn)值
/// 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文件中讀取主節(jié)點(diǎn)值
/// document XML文檔
/// treeView Microsoft.Web.UI.WebControls.TreeView
/// treeNode 父級(jí)節(jié)點(diǎn)
///
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文件中讀取子節(jié)點(diǎn)值
/// document XML文檔
/// treeView Microsoft.Web.UI.WebControls.TreeView
/// treeNode 父級(jí)節(jié)點(diǎn)
///
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);

到此,基本結(jié)束,此時(shí)就可以在頁(yè)面正確顯示自行定義的 XML 文檔的樹目錄,但我還不認(rèn)為方便,于是將其綜合后寫成了一個(gè)組件,于是在使用的時(shí)候只需拖放到頁(yè)面上……但后來(lái)在找資料的時(shí)候找到了其實(shí) Treeview 控件本身就可以直接使用 XML 文檔(http://www.yesky.com/SoftChannel/72342380468043776/20040630/1825811.shtml)。所以,這個(gè)方法就只能是一段用以學(xué)習(xí)的代碼了!




主站蜘蛛池模板: 亚欧aⅴ天堂在线 | 日本性网 | 羞羞答答免费人成黄页在线观看国产 | 伊人成年综合网 | 中国日韩欧美中文日韩欧美色 | 欧美线在线精品观看视频 | 在线视频一区二区三区在线播放 | 色18美女社区| 日本三级香港三级人妇99 | 五月天婷婷在线视频国产在线 | 天天色一色 | 亚洲 欧美 日韩中文字幕一区二区 | 亚洲国产欧美在线人成精品一区二区 | 日韩经典在线 | 青娱乐在线观看 | 日韩中文字幕视频在线观看 | 人人鲁免费播放视频人人香蕉 | 日本伦理中文字幕 | 日韩不卡在线视频 | 欧美丝袜一区二区 | 伊人福利在线 | 午夜网站入口 | 天天看天天干天天操 | 我要看黄色毛片 | 伊久久| 伊人高清 | 伊人网址 | 欧美性色一级在线观看 | 天堂伦理 | 色88888久久久久久影院 | 日本伦理中文字幕 | 欧美亚洲日本国产 | 婷婷欧美 | 天天干天天操天天爱 | 色狠狠xx | 四虎影院免费在线播放 | 欧美视频自拍偷拍 | 中文字幕日本一区波多野不卡 | 在线看片亚洲 | 日韩高清在线播放不卡 | 日本大胆欧美人术艺术 |