.Net TreeView 父节点checkbox控制子节点checbox
来源:互联网 发布:购物车数据库 编辑:程序博客网 时间:2024/05/14 02:35
1. 截图看看效果:
2.html结构
<div>
<asp:TreeView ID="tvList" runat="server" ShowCheckBoxes="All" ShowLines="True" onclick="javascript:return postBackByObjectCheck()"/>
</div>
3.函数解析:
//**IE下,event对象有srcElement属性,但是没有target属性;
//**Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的
function getEvent() {
if (document.all) {
return window.event; //如果是ie
}
func = getEvent.caller;
while (func != null) {
var arg0 = func.arguments[0];
if (arg0) {
if ((arg0.constructor == Event || arg0.constructor == MouseEvent)
|| (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {
return arg0;
}
}
func = func.caller;
}
return null;
}
function postBackByObjectCheck() {
var evt = getEvent();//**call method
var o = evt.srcElement || evt.target;
if (o.tagName == "INPUT" && o.type == "checkbox") //点击treeview的checkbox是触发
{
var d = o.id; //获得当前checkbox的id;
var e = d.replace("CheckBox", "Nodes"); //通过查看脚本信息,获得包含所有子节点div的id
var div = window.document.getElementById(e); //获得div对象
if (div != null) //如果不为空则表示,存在自节点
{
var check = div.getElementsByTagName("INPUT"); //获得div中所有的已input开始的标记
for (i = 0; i < check.length; i++) {
if (check[i].type == "checkbox") //如果是checkbox
{
check[i].checked = o.checked; //字节点的状态和父节点的状态相同,即达到全选
}
}
}
else //点子节点的时候,使父节点的状态改变,即不为全选
{
var divid = o.parentElement.parentElement.parentElement.parentElement.parentElement; //子节点所在的div
var id = divid.id.replace("Nodes", "CheckBox"); //获得根节点的id
var checkbox = divid.getElementsByTagName("INPUT"); //获取所有子节点数
var s = 0;
for (i = 0; i < checkbox.length; i++) {
if (checkbox[i].checked) //判断有多少子节点被选中
{
s++;
}
}
if (s == checkbox.length) //如果全部选中 或者 选择的是另外一个根节点的子节点 ,
{ // 则开始的根节点的状态仍然为选中状态
window.document.getElementById(id).checked = true;
}
else { //否则为没选中状态
window.document.getElementById(id).checked = false;
}
}
}
}
//**后台获取选中的ID
StringBuilder str = new StringBuilder();
for (int i = 0; i < tvList.CheckedNodes.Count; i++)
{
if (tvList.CheckedNodes[i].Checked)
str.Append(tvList.CheckedNodes[i].Value+";");
}
- .Net TreeView 父节点checkbox控制子节点checbox
- winform中TreeView的checkbox父节点连带子节点
- asp.net中的TreeView中的点击子节点的CheckBox,如果子节点CheckBox都为空,那父节点的CheckBox也为空.
- Jquery操作TreeView 父节点checkbox选中,子节点checkbox也选中
- 带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点
- javascrip实现:若选中TreeView的父节点checkbox,则其子节点全部选中
- TreeView中使用checkBox时子节点和父节点的级联选择
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- js控制treeview 只能选择一种节点 :有子节点 或 无子节点 的节点
- ASP.NET 2.0 TreeView中用JavaScript实现选择子接点CheckBox是自动选择上父节点(或者所有父节点)
- treeView中CheckBox如何设置子节点Check属性
- treeView中CheckBox如何设置子节点Check属性
- treeview checkbox选中的时候选择子节点 mvvm
- treeview checkbox选中的时候选择子节点 mvvm
- jquery asp.net 选择子节点checkbox
- C#TreeView控件控制某些节点的checkbox不显示
- TreeView有checkbox 当父节点选择框选中 子节点将全部选中 代码怎么写的?
- 【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)
- 硬盘原理
- POJ 1901 | LA 2963 | UVa 1325 - Hypertransmission (思维 扫描)
- nginx配置反向代理和多个网站
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- .Net TreeView 父节点checkbox控制子节点checbox
- vc程序以管理员权限运行方法
- [C++] WinAES的问题
- 透明视频和不透明视频
- 初探C/C++ typedef关键字
- 调整Hbase中cell大小
- Sequoiadb系统架构
- java reflect bits
- Linux 的 completion机制