如何获取treeview下级目录的子节点
treeview树如:
root--第0层根节点
------第一层节点1
------第二层节点1
------第一层节点2
第一层是从数据库读取添加的节点,现在要找到第一层的节点名称,添加第二层的节点。要怎样或取呢?
问题点数:20、回复次数:4Top
1 楼fphuang(人在哈尔滨·四月)回复于 2006-03-21 09:01:13 得分 6
http://topic.csdn.net/t/20030313/11/1525202.html
TreeView专题讨论Top
2 楼smile9961(good life)回复于 2006-03-21 09:04:59 得分 2
要添加你首先得知道在哪個節點下添加吧,所以需要先選擇一個節點;這時獲得選中節點的.id就可以了.Top
3 楼LoveMango(幻风)回复于 2006-03-21 11:01:16 得分 0
怎么判断已被选择?CHECKED??还是checkbox?Top
4 楼douguangyao(咦,有间客栈!)回复于 2006-03-21 11:07:21 得分 12
<script language="javascript">
/*
函数名称:CheckNode(currentNode)、ParentNode(currentNode)、ChildNode(currentNode)
作者:常东方
创建日期:2005-02-02
函数功能:实现带checkbox的treeview中
1、选中父结点其子结点也全部选中
2、取消全部子结点的选择后,父结点的选择也随之取消
使用方法:1、在<head></head>中间添加CheckNode(currentNode)、ParentNode(currentNode)、ChildNode(currentNode)
2、在*.aspx.cs的Page_load()事件中添加yourTreeView.Attribute.Add("OnCheck","CheckNode(yourTreeView.getTreeNode(yourTreeView.clickedNodeIndex))")
*/
//递归遍历所有子节点
function CheckNode(currentNode)
{
var childNode=new Array();
var parentNodeChild=new Array();
var isChecked;
childNode=currentNode.getChildren();
if(currentNode.getAttribute('checked'))
{
isChecked=true;
}
else
{
isChecked=false;
}
//父节点处理
if(currentNode.getParent()!=null)
{
//选中处理
if(currentNode.getAttribute('Checked'))
{
ParentNode(currentNode);
}
else
//取消选中
{
ChildNode(currentNode);
}
}
else
{
//什么也不做
}
//子节点处理
if(childNode.length>0)
{
for(var i=0;i<childNode.length;i++)
{
childNode[i].setAttribute("Checked",isChecked);
if(childNode[i].getChildren().length>0)
{
CheckNode(childNode[i]);
}
}
}
}
//递归选中父节点
function ParentNode(currentNode)
{
if(currentNode.getParent()!=null)
{
currentNode.getParent().setAttribute('Checked',true);
//递归调用ParentNode(currentNode)以遍历更上一层的父节点
ParentNode(currentNode.getParent());
}
}
//递归取消选中父节点
function ChildNode(currentNode)
{
if(currentNode.getParent()!=null)
{
var checkedCount=0;
var childNode=currentNode.getParent().getChildren();
for (var i=0;i<childNode.length;i++)
{
if(childNode[i].getAttribute('Checked'))
{
checkedCount++;
}
}
if(checkedCount==0)
{
currentNode.getParent().setAttribute('Checked',false);
}
//递归调用ChildNode(currentNode)以遍历更上一层的父节点
ChildNode(currentNode.getParent());
}
}
</script>
2.得到所选节点的Text,ID或NodeData
function GetAttribute()
{
alert(TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text"));
}
替换Text为ID或NodeData,可分别得到所选节点的ID或NodeData
3.修改节点属性,如修改第一个节点的Text
function ModifyNode()
{
var node=TreeView1.getTreeNode("0");
node.setAttribute("Text","hgknight");
}
4.得到点击节点
function TreeView1.onclick()
{
alert(TreeView1.getTreeNode(TreeView1.clickedNodeIndex).getAttribute("Text"));
}
5.添加节点
function AddNode()
{
var node=TreeView1.createTreeNode();
node.setAttribute("Text","hgknight");
TreeView1.add(node);
}Top




