asp.net中TreeView的CheckBox 是否选中
2009-09-08 12:54
531 查看
var ClienName;
function OnTreeNodeChecked(controlID,obj)
{
tree=obj;//取出TreeView在客户端的表示对象
ClienName=tree.id.substring(0,tree.id.indexOf(controlID));//取出TreeView在客户ID的前缀
var ele = event.srcElement;
if(ele.type=='checkbox')
{
//当前节点全选
var subLength=ClienName.length+14;//取出当前复选框的索引值
var subLength=tree.id.length+1;
var nowIndex=ele.id.substring(subLength)
.substring(0,ele.id.substring(subLength).indexOf("C"));
var childrenDivID = ele.id.replace('CheckBox','Nodes');
var div = document.getElementById(childrenDivID); //获取同级的Div
if(div!=null) //判断同级的Div是否为Null
{
var checkBoxs = div.getElementsByTagName('INPUT');
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox')
checkBoxs[i].checked=ele.checked;
}
}
//处理选择当前节点的父节点的选中和取消选中
ChkParent(nowIndex,ele.id,ele.checked);
}
}
//上一节点的索引Index,上一节点checkBox的ID,状态(True)
function ChkParent(index,childId,flag)
{
//寻找当前节点的父节点(即寻找上级的DIV)
for(i=index;i>=0;i--)
{
var id=tree.id+"n"+i+"CheckBox";//当前CheckBox的ID
var parent=document.getElementById(id);//获取当前的CheckBox
if(parent!=null)//判断获取的当前的CheckBox是否为空
{
var childrenDivID = parent.id.replace('CheckBox','Nodes');
var div = document.getElementById(childrenDivID); //获取同级的Div
if(div==null) //判断同级的Div是否为Null
{
continue;
}
else
{
chk(div,flag);
break;
}
}
}
}
//根据找到的div逐级处理各级CheckBox的状态
function chk(obj,flag)
{
var chkID=obj.id.replace('Nodes','CheckBox');
var chkbox = document.getElementById(chkID); //获取同级的CheckBox
if(chkbox!=null)
{
//选中状态
if(flag)
{
chkbox.checked=flag;
//如果为顶层则终止递归
if(chkID==tree.id+"n0CheckBox")
{
return;
}
//递归处理各级CheckBox的状态
chk(obj.parentNode,flag);
}
///非选中状态
else
{
//如果为顶层则终止递归
if(chkID==tree.id+"n0CheckBox")
{
return;
}
//判断当前节点下面是否有Checkbox选中,如果有选中的,当前节点的CheckBox不取消选中状态,否则取消
var checkBoxs = obj.getElementsByTagName('INPUT');
var sel=false;//记录当前节点下面是否有Checkbox选中
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox')
{
if( checkBoxs[i].checked)
{
sel=true;
break;
}
}
}
if(!sel)
{
chkbox.checked=flag;
}
chk(obj.parentNode,flag);
}
}
else
{
return;
}
}
前台调用:tvPeople.Attributes.Add("onclick", "OnTreeNodeChecked('" + tvPeople.ID + "'," + tvPeople.ClientID + ")");
tvPeople为TreeView控件的实例名
根据一个checkbox节点对应一个table,父节点对应一个div 在找到相应的checkbox.进而判断选择与否.
function OnTreeNodeChecked(controlID,obj)
{
tree=obj;//取出TreeView在客户端的表示对象
ClienName=tree.id.substring(0,tree.id.indexOf(controlID));//取出TreeView在客户ID的前缀
var ele = event.srcElement;
if(ele.type=='checkbox')
{
//当前节点全选
var subLength=ClienName.length+14;//取出当前复选框的索引值
var subLength=tree.id.length+1;
var nowIndex=ele.id.substring(subLength)
.substring(0,ele.id.substring(subLength).indexOf("C"));
var childrenDivID = ele.id.replace('CheckBox','Nodes');
var div = document.getElementById(childrenDivID); //获取同级的Div
if(div!=null) //判断同级的Div是否为Null
{
var checkBoxs = div.getElementsByTagName('INPUT');
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox')
checkBoxs[i].checked=ele.checked;
}
}
//处理选择当前节点的父节点的选中和取消选中
ChkParent(nowIndex,ele.id,ele.checked);
}
}
//上一节点的索引Index,上一节点checkBox的ID,状态(True)
function ChkParent(index,childId,flag)
{
//寻找当前节点的父节点(即寻找上级的DIV)
for(i=index;i>=0;i--)
{
var id=tree.id+"n"+i+"CheckBox";//当前CheckBox的ID
var parent=document.getElementById(id);//获取当前的CheckBox
if(parent!=null)//判断获取的当前的CheckBox是否为空
{
var childrenDivID = parent.id.replace('CheckBox','Nodes');
var div = document.getElementById(childrenDivID); //获取同级的Div
if(div==null) //判断同级的Div是否为Null
{
continue;
}
else
{
chk(div,flag);
break;
}
}
}
}
//根据找到的div逐级处理各级CheckBox的状态
function chk(obj,flag)
{
var chkID=obj.id.replace('Nodes','CheckBox');
var chkbox = document.getElementById(chkID); //获取同级的CheckBox
if(chkbox!=null)
{
//选中状态
if(flag)
{
chkbox.checked=flag;
//如果为顶层则终止递归
if(chkID==tree.id+"n0CheckBox")
{
return;
}
//递归处理各级CheckBox的状态
chk(obj.parentNode,flag);
}
///非选中状态
else
{
//如果为顶层则终止递归
if(chkID==tree.id+"n0CheckBox")
{
return;
}
//判断当前节点下面是否有Checkbox选中,如果有选中的,当前节点的CheckBox不取消选中状态,否则取消
var checkBoxs = obj.getElementsByTagName('INPUT');
var sel=false;//记录当前节点下面是否有Checkbox选中
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox')
{
if( checkBoxs[i].checked)
{
sel=true;
break;
}
}
}
if(!sel)
{
chkbox.checked=flag;
}
chk(obj.parentNode,flag);
}
}
else
{
return;
}
}
前台调用:tvPeople.Attributes.Add("onclick", "OnTreeNodeChecked('" + tvPeople.ID + "'," + tvPeople.ClientID + ")");
tvPeople为TreeView控件的实例名
根据一个checkbox节点对应一个table,父节点对应一个div 在找到相应的checkbox.进而判断选择与否.
相关文章推荐
- asp.net动态添加CheckBox控件及判断是否选中,以下是页面及后台代码
- asp.net TreeView的选中CheckBox触发事件(父对象选中子对象全选)
- jquery判断asp.net<asp:Repeater>里面的checkbox是否选中
- ASP.NET 判断GRIDVIEW的checkbox是否选中
- asp.net CheckBoxList 取值与是否选中,后台控制前台checkboxList选中
- asp.net CheckBoxList 取值与是否选中,后台控制前台checkboxList选中
- asp.net CheckBox从数据库读取数据设定是否选中 并更新
- asp.net CheckBoxList 取值与是否选中,后台控制前台checkboxList选中
- asp.net 获得有复选框形式的TreeView的选中的节点值,获得树里复选框checkbox的值
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)2005-12-23更新
- ASP.NET DEMO 10: 如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
- 最简单的Asp.Net 2.0 TreeView的Checkbox级联操作
- 用JavaScript获取Asp.net服务器端控件CheckBoxList的选中值数组
- asp.net CheckBoxList 取值与勾选,复选框后台控制前台checkbox选中
- asp.net TreeView中checkBox的单选
- ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
- ASP.NET DEMO 10: 如何通过 javascript 访问 GridView/DataGrid 选中 CheckBox 行各列的值
- asp.net中的TreeView中的点击子节点的CheckBox,如果子节点CheckBox都为空,那父节点的CheckBox也为空.
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)