TreeView 的服务器端操作:从xml文件中读取数据生成tree
private void
InitPage()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
InitTreeView();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
//tvMainMenu.Attributes.Add("background-color", "#ffffff");
tvMainMenu.Attributes.Add("DefaultStyle", "Background-Color:#ffffff;Cursor:Hand;color:#000000;font-size:12.8px;");
tvMainMenu.Attributes.Add("SelectedStyle", "Background-Color:#ffffff;Cursor:Hand;color:#000000;font-size:12.8px;");
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
private void
InitTreeView()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
XmlDocument doc = Config.Menu;
XmlElement ele = doc.DocumentElement;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
for(int i=0; i<ele.ChildNodes.Count; i++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
XmlNode xmlNode = ele.ChildNodes[i];
TreeNode treeNode = new TreeNode();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
treeNode.Text = xmlNode.Attributes["Text"].Value;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
tvMainMenu.Nodes.Add(treeNode);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
AddXmlNode(xmlNode, treeNode);
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
private void
AddXmlNode(XmlNode xmlNode, TreeNode treeNode)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
for(int i=0; i<xmlNode.ChildNodes.Count; i++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
TreeNode temp = new TreeNode();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
temp.Text = xmlNode.ChildNodes[i].Attributes["Text"].Value;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
string right = xmlNode.ChildNodes[i].Attributes["Right"].Value;
string url = xmlNode.ChildNodes[i].Attributes["Value"].Value;
temp.NavigateUrl = IsAuthorized(right) ? "javascript:onNodeClicked('" + url + "');" : "javascript:onUnauthorized();";
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
treeNode.Nodes.Add(temp);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
AddXmlNode(xmlNode.ChildNodes[i], temp);
}
}
TreeView的客户端操作:实现同级结点的互斥操作
function
initTree()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
var tree = document.all["tvMainMenu"];
tree.attachEvent("onexpand", collapseSameLevelNode);
}
function
collapseSameLevelNode()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
var index = this.tvMainMenu.clickedNodeIndex;
if(1 == getNodeLevel(index))
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
collapseFirstLevel(index);
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
collapseSecondLevel(index);
}
}
function
collapseSecondLevel(index)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
var nodes = new Array();
var first = getFirstLevelIndex(index);
var second = getSecondLevelIndex(index);
nodes = this.tvMainMenu.getTreeNode("0" + first).getChildren();
for(i=0; i<nodes.length; i++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
if(i != second)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
this.tvMainMenu.getTreeNode(first + "." + i).setAttribute("expanded", "false");
}
}
}
function
collapseFirstLevel(index)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
var temp = index;
var nodes = new Array();
nodes = this.tvMainMenu.getChildren();
for(i=0;i<nodes.length;i++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
if(i!=temp)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
this.tvMainMenu.getTreeNode("0" + i).setAttribute('expanded','false');
}
}
}
function
getNodeLevel(index)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
return index.split('.').length;
}
function
getFirstLevelIndex(index)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
return index.substring(0, index.indexOf('.'));
}
function
getSecondLevelIndex(index)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
return index.substring(index.lastIndexOf('.') + 1);
}