TreeView操作

 TreeView 的服务器端操作:从xml文件中读取数据生成tree

        private void  InitPage()
        
{
            InitTreeView();

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


        
private void  InitTreeView()
        
{
            XmlDocument doc 
=
 Config.Menu;
            XmlElement ele 
=
 doc.DocumentElement;

            
for(int i=0; i<ele.ChildNodes.Count; i++
)
            
{
                XmlNode xmlNode 
=
 ele.ChildNodes[i];
                TreeNode treeNode 
= new
 TreeNode();

                treeNode.Text 
= xmlNode.Attributes["Text"
].Value;

                tvMainMenu.Nodes.Add(treeNode);

                AddXmlNode(xmlNode, treeNode);
            }

        }


        
private void  AddXmlNode(XmlNode xmlNode, TreeNode treeNode)
        
{
            
for(int i=0; i<xmlNode.ChildNodes.Count; i++
)
            
{
                TreeNode temp 
= new
 TreeNode();

                temp.Text 
= xmlNode.ChildNodes[i].Attributes["Text"
].Value;

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

                treeNode.Nodes.Add(temp);

                AddXmlNode(xmlNode.ChildNodes[i], temp);
            }

        }

TreeView的客户端操作:实现同级结点的互斥操作

function   initTree()
            
{  
                
var tree = document.all["tvMainMenu"
]; 
                tree.attachEvent(
"onexpand"
, collapseSameLevelNode);
            }

            
            
function  collapseSameLevelNode()
            
{
                
var index = this
.tvMainMenu.clickedNodeIndex;
                
                
if(1 ==
 getNodeLevel(index))
                
{
                    collapseFirstLevel(index);
                }

                
else
                
{
                    collapseSecondLevel(index);
                }
                
            }

            
            
function  collapseSecondLevel(index)
            
{
                
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++
)
                
{
                    
if(i !=
 second)
                    
{
                        
this.tvMainMenu.getTreeNode(first + "." + i).setAttribute("expanded""false"
);
                    }

                }

                
            }

            
            
function  collapseFirstLevel(index) 
            
{
                
var temp =
 index;
                
                
var nodes = new
 Array();
                nodes 
= this
.tvMainMenu.getChildren();
                
                
for(i=0;i<nodes.length;i++
)
                
{
                    
if(i!=
temp)
                    
{                            
                        
this.tvMainMenu.getTreeNode("0" + i).setAttribute('expanded','false'
);
                    }

                }

            }

            
            
function  getNodeLevel(index)
            
{    
                
return index.split('.'
).length;
            }

            
            
function  getFirstLevelIndex(index)
            
{
                
return index.substring(0, index.indexOf('.'
));
            }

            
            
function  getSecondLevelIndex(index)
            
{
                
return index.substring(index.lastIndexOf('.'+ 1
);
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值