vs2005 treeview checkbox级联控制
来源:互联网 发布:视频点播服务器软件 编辑:程序博客网 时间:2024/05/22 15:41
在网上查了好多资料,终于搞定了级联控制:代码如下
var __nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);//判断浏览器
//根据元素ID获取元素
function public_getElementByID(target)
{
var el;
if (__nonMSDOMBrowser)
{
el = document.getElementById(target);
}
else
{
el = document.all[target];
}
return el;
}
//获取触发事件的的目标元素
function public_getEventTarget()
{
var target;
if (__nonMSDOMBrowser)
{
target = event.target;
}
else
{
target = event.srcElement;
}
return target;
}
//获取元素指定tagName的父元素
function public_GetParentByTagName(element, tagName)
{
var parent = element.parentNode;
var upperTagName = tagName.toUpperCase();
while (parent && (parent.tagName.toUpperCase() != upperTagName))
{
parent = parent.parentNode ? parent.parentNode : parent.parentElement;
}
return parent;
}
//设置节点的父节点Cheched,权限树的规则一:该节点可访问,则能访问他的父节点(递归)
// function setParentChecked(objNode)
// {
// var objParentDiv = public_GetParentByTagName(objNode,"div");
//// alert(objParentDiv.innerHTML);
// if(objParentDiv==null || objParentDiv == "undefined")
// {
// return;
// }
// var objID = objParentDiv.getAttribute("ID");
// objID = objID.substring(0,objID.indexOf("Nodes"));
// objID = objID+"CheckBox";
// var objParentCheckBox = public_getElementByID(objID);
// if(objParentCheckBox==null || objParentCheckBox == "undefined")
// {
// return;
// }
// if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
// {
// return;
// }
// objParentCheckBox.checked = true;
// setParentChecked(objParentCheckBox);
// }
//设置父节点的子节点都可用
function setChildChecked(divID)
{
var objchild = divID.children;
var count = objchild.length;
for(var i=0;i<objchild.length;i++)
{
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
{
tempObj.checked = true;
}
setChildChecked(tempObj);
}
}
//设置节点的子节点uncheched,权限树的规则二:该节点不可访问,则能访问他的子节点(递归)
function setChildUnChecked(divID)
{
var objchild = divID.children;
var count = objchild.length;
for(var i=0;i<objchild.length;i++)
{
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
{
tempObj.checked = false;
}
setChildUnChecked(tempObj);
}
}
//触发事件,
function doCheck()
{
var objNode = public_getEventTarget();
var objID = objNode.getAttribute("ID");
var objID = objID.substring(0,objID.indexOf("CheckBox"));
var objParentDiv = public_getElementByID(objID+"Nodes");
if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
{
return;
}
if(objNode.checked==true)
{
if(objParentDiv==null || objParentDiv == "undefined")
{
return;
}
// setParentChecked(objNode);
setChildChecked(objParentDiv) ;
}
else
{
if(objParentDiv==null || objParentDiv == "undefined")
{
return;
}
// setParentChecked(objNode);
setChildUnChecked(objParentDiv);
}
}
- vs2005 treeview checkbox级联控制
- VS2005 TreeView的checkBox的父子节点级联状态
- VS2005 TreeView的checkBox的父子节点级联状态
- TreeView CheckBox级联选中
- treeview checkbox 客户端级联选中
- vs2005 treeview checkbox 取值
- treeview控件中的checkbox级联选择
- Asp.Net 2.0 TreeView的Checkbox级联操作
- Asp.Net 2.0 TreeView的Checkbox级联操作(转贴)
- Asp.Net 2.0 TreeView的Checkbox级联操作
- Asp.Net 2.0 TreeView的Checkbox级联操作
- Asp.Net 2.0 TreeView的Checkbox级联操作
- js控制treeview中的checkbox实现单选功能
- 使用JS控制treeview上面checkbox的选择
- .Net TreeView 父节点checkbox控制子节点checbox
- C#TreeView控件控制某些节点的checkbox不显示
- 最简单的Asp.Net 2.0 TreeView的Checkbox级联操作
- treeview绑定到关系数据源,生成树,并实现checkbox的级联选择
- equinox实现Class Loader机制的代码解读(1)
- VB.NET中使用代表对方法异步调用
- 图表制作(JFreeCha)说明
- GTK+-1.0.6 for Netbas OS
- 自动加密pushmail配置的探索
- vs2005 treeview checkbox级联控制
- 时间操作
- SQL Server的空值处理策略
- Symbian学习笔记(4):在GUI应用中使用图像
- 2月CPI创出新高 加息与否?央行面临两难选择
- Silent Void
- [转载]关于IE和Firefox下event乱谈
- 太爱你而不得不放手
- 一道小题目