asp.net treeview 级联选择
2010-10-30 14:04
309 查看
<script type="text/javascript"> //当前table的父table所在的checkbox function GetParentCheckBox(node) { while (node.tagName != "TABLE") { node = node.parentNode; } while (node.tagName != "DIV") { node = node.parentNode; } var siblingNode = node.previousSibling; while (siblingNode != null && siblingNode.tagName != "TABLE") { siblingNode = siblingNode.previousSibling; } if (siblingNode == null) { return null; } var checkBox = siblingNode.getElementsByTagName('INPUT')[0]; return checkBox; } function GetCurrentLevelCheckBoxes(node) { var tables = new Array(); while (node.tagName != "TABLE") { node = node.parentNode; } tables[0] = node; //当前选择的checkbox var siblingNode = node.nextSibling; var index = 0; while (siblingNode != null) { if (siblingNode.tagName == "TABLE") { tables[++index] = siblingNode; } siblingNode = siblingNode.nextSibling } siblingNode = node.previousSibling while (siblingNode != null) { if (siblingNode.tagName == "TABLE") { tables[++index] = siblingNode; } siblingNode = siblingNode.previousSibling; } var checkBoxs = new Array(); var checkBox; for (var i = 0; i < tables.length; i++) { checkBox = tables[i].getElementsByTagName('INPUT'); for (var j = 0; j < checkBox.length; j++) { if (checkBox[j].type == 'checkbox') { checkBoxs[i] = checkBox[j]; } } } return checkBoxs; } function CheckParentNode(ele) { var currentLevelCheckBoxes = GetCurrentLevelCheckBoxes(ele); var parentCheckBox = GetParentCheckBox(ele); if (parentCheckBox != null) { var checkCount = 0; for (var i = 0; i < currentLevelCheckBoxes.length; i++) { if (currentLevelCheckBoxes[i].checked) { checkCount++; } } if (currentLevelCheckBoxes.length == checkCount) { parentCheckBox.checked = true; } else { parentCheckBox.checked = false; } CheckParentNode(parentCheckBox); } } function OnTreeNodeChecked() { var ele = event.srcElement; if (ele.type == 'checkbox') { var childrenDivID = ele.id.replace('CheckBox', 'Nodes'); var div = document.getElementById(childrenDivID); if (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; } } CheckParentNode(ele); } } </script>
<asp:TreeView ID="tvCategoryProcess" runat="server" OnClick="OnTreeNodeChecked()"> </asp:TreeView>
相关文章推荐
- [导入]ASP.NET TreeView级联选择问题
- ASP.NET TreeView级联选择问题
- 解决asp.net 2.0 中treeview的checkbox级联选择
- ASP.NET 2.0里Treeview控件中对Checkbox的联级选择
- Asp.Net TreeView 复选框选择
- Asp.net TreeView来构建用户选择输入的方法 推荐
- asp.net treeview控件无刷新选择和删除节点(使用jquery)
- ASP.NET 2.0中集联选择TreeView节点
- 【原】父子树的选择【全选/不全选】Asp.Net 2.0 Treeview Checkbox Check/Uncheck All script
- ASP.NET 2.0中集联选择TreeView节点
- ASP.NET 递归算法 生成N级(级联)树TreeView
- 中国省份城市级联选择--asp.net +jquery +json +xml
- Asp.Net 2.0 TreeView的Checkbox级联操作
- Asp.net TreeView来构建用户选择输入的方法
- 最简单的Asp.Net 2.0 TreeView的Checkbox级联操作
- asp.net 1.1的treeview 级联问题
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- asp.net 1.1的treeview 级联问题(转贴)
- 最简单的Asp.Net 2.0 TreeView的Checkbox级联操作
- 使用Asp.net的TreeView来构建用户选择输入