javascript 操作treeview的checkbox加载、全选、全不选、以及光标回焦问题
来源:互联网 发布:java子类继承父类 编辑:程序博客网 时间:2024/06/05 07:21
//在页面加载中:onLoad="Loadtreeview()";
//服务器端加载时注册treeview的check的事件: TreeView1.Attributes.Add("oncheck","tree_oncheck(TreeView1)");
<script language="javascript">
function Loadtreeview() //加载树形
...{
var AllRootNode=new Array();
AllRootNode=document.getElementById("TreeView1").getChildren();//获得treview的最外层节点数组
CheckboxLoad(AllRootNode); //加载checkbox的控件
var selectedNodes = GetnodeID(AllRootNode);//获得被checked的nodes的ID连加字符串
// window.alert(selectedNodes);
var arrayNodes = new Array();
arrayNodes = selectedNodes.split(",");
//window.alert(gg);
findAndCheckedNodes(AllRootNode,arrayNodes);//加载时判断checkbox的是否有被checked,有的话把它
设置成勾住状态
}
function tree_oncheck(TreeView1)//treeview的check的事件
...{
var AllRootNode=new Array();
AllRootNode=document.getElementById("TreeView1").getChildren();
var node=TreeView1.getTreeNode(TreeView1.clickedNodeIndex); //获得刚刚被check的节点
var child="";
child=node.getAttribute("id");//获得刚刚被check的节点的ID
Select(AllRootNode,child); //实现光标回焦方法
var Pchecked=TreeView1.getTreeNode(TreeView1.clickedNodeIndex).getAttribute("checked");
setcheck(node,Pchecked); //实现checked节点的下面判断是否有子节点有的话,全部实现把子节点给勾
上或全部不勾
/**//*之后的其他操作自己添写,比如check触发的方法、事件啊等等*/
}
function Select(NodeArray,nodeid) //光标回焦方法
...{
if(parseInt(NodeArray.length)==0)
return;
else
...{
for(var i=0;i< parseInt(NodeArray.length);i++)
...{
var cNode;
cNode=NodeArray[i];
if (cNode.getAttribute("id")==nodeid)
...{
TreeView1.selectedNodeIndex = cNode.getNodeIndex();
break;
}
//如果有子节点,则继续递归
if(parseInt(cNode.getChildren().length)!=0)
Select(cNode.getChildren(),nodeid);
}
}
}
function setcheck(node,Pc) //设置子节点选中
...{
var ChildNode=new Array();
ChildNode=node.getChildren();
if(parseInt(ChildNode.length)==0)
return;
else
...{
for(var i=0;i<ChildNode.length;i++)
...{
var cNode;
cNode=ChildNode[i];
if(parseInt(cNode.getChildren().length)!=0)
setcheck(cNode,Pc);
cNode.setAttribute("checked",Pc);
}
}
}
function GetnodeID(NodeArray) //找到被选中节点的所有ID的字符串累加
...{
var str = "";
if(parseInt(NodeArray.length)==0)
return;
else
...{
var cNode;
for(var i=0;i<parseInt(NodeArray.length);i++)
...{
cNode=NodeArray[i];
if (cNode.getAttribute("Checked")==true)
...{
str = str + cNode.getAttribute("id")+",";
}
//如果有子节点,则继续递归
if(parseInt(cNode.getChildren().length)!=0)
GetnodeID(cNode.getChildren());
}
}
return str;
}
function CheckboxLoad(NodeArray) //checkbox的初始化
...{
if(parseInt(NodeArray.length)==0)
return;
else
...{
for(var i=0;i<parseInt(NodeArray.length);i++)
...{
var cNode;
cNode=NodeArray[i];
cNode.setAttribute("checkbox","true");
//如果有子节点,则继续递归
if(parseInt(cNode.getChildren().length)!=0)
CheckboxLoad(cNode.getChildren());
}
}
}
function findAndCheckedNodes(NodeArray,nodeDatas) //找到已经被checked的节点
...{
if(parseInt(NodeArray.length)==0)
...{
return;
}
else
...{
for(var i=0;i<parseInt(NodeArray.length);i++)
...{
var cNode,nodeData;
cNode=NodeArray[i];
/**/////如果该节点在nodeDatas里则初始化checked = true;
nodeData = cNode.getAttribute("id");
for(var j=0;j<parseInt(nodeDatas.length);j++)
...{
if(nodeDatas[j] == nodeData)
...{
cNode.setAttribute("checked","true");
break;
}
}
//如果有子节点,则继续递归
if(parseInt(cNode.getChildren().length)!=0)
findAndCheckedNodes(cNode.getChildren(),nodeDatas);
}
}
}
</script>
- javascript 操作treeview的checkbox加载、全选、全不选、以及光标回焦问题
- TreeView CheckBox全选 以及获取选中的值
- javascript+php 实现全选/全不选 以及对checkbox的处理
- 解决TreeView中使用JavaScript完成CheckBox全选的办法
- [转]关于treeview中的checkbox的全选问题
- [转]关于treeview中的checkbox的全选问题
- CHECKBOX"全选"的JavaScript
- checkbox的全选操作
- JavaScript checkbox全选与全不选的切换
- checkbox 全选的问题
- html,javaScript中怎么控制复选框checkbox的全选,全不选,以及全选中,全选按钮选中,其中一个或者多个没选,则全选按钮不被选中
- html,javaScript中怎么控制复选框checkbox的全选,全不选,以及全选中,全选按钮选中,其中一个或者多个没选,则全选按钮不被选中
- Html Javascript Checkbox 全选/全不选
- javascript控制 checkbox 全选/全不选
- js操作TreeView的checkbox
- treeview checkbox的一些操作
- JavaScript -- 操作input CheckBox 全选框
- checkbox的全选、全不选
- oracle10g客户端及server端配置
- 使DIV不被select等控件遮挡的解决办法
- 如何使用BHO定制你的Internet Explorer浏览器
- 测试
- Spring 框架简介
- javascript 操作treeview的checkbox加载、全选、全不选、以及光标回焦问题
- CSS样式
- 一些directx Show例子在visual studio 2005 中编绎的问题
- 自己收藏的技术网页
- Windows消息机制
- winxp sp2安装directx 9.0C 一闪而过的问题.
- C++BUILDER非可视组件的消息处理
- 解决hibernate+mysql中文问题
- SQLFreeStmt( m_hstmt, SQL_CLOSE);