ASP.NET TreeView控件父子勾选框联动勾选

摘要:ASP.NET TreeView控件父子勾选框联动勾选

后置代码: this.TreeView1.Attributes.Add("onclick", "CheckEvent();");

JS 代码:

function setParentState(objNode) {

?? var objParentDiv = WebForm_GetParentByTagName(objNode, "div");

?? if (objParentDiv == null || objParentDiv == "undefined")

?????? return;

?? var divID = objParentDiv.getAttribute("ID");

?? var prefix = divID.substring(0, divID.indexOf("Nodes"));

?? var parentID = prefix + "CheckBox";

?? var parentChk = document.getElementById(parentID);

?? if (parentChk == null || parentChk == "undefined")

?????? return;

?? if (objNode.checked) {

?????? parentChk.checked = true;

?? }

?? else {

?????? if (isAllChildrenUnChecked(parentChk)) {

?????????? parentChk.checked = false;

?????? }

?? }

?? setParentState(parentChk);

}

function setChildState(objNode)//设定子控件状态

{

?? var nodeID = objNode.getAttribute("ID");?? //chkBox ID

?? var prefix = nodeID.substring(0, nodeID.indexOf("CheckBox"));? //节点的前缀

?? var childrenDiv = document.getElementById(prefix + "Nodes");

?? if (childrenDiv == null || childrenDiv == "undefined")

?????? return;

?? var childrenArray = childrenDiv.children; //取得所有子控件

?? for (var i = 0; i
?????? var container = childrenArray[i]; //子控件的容器

?????? var chk = WebForm_GetElementByTagName(container, "input"); //查找Check控件,由于只有一个种Input控件,就是CheckBox

?????? chk.checked = objNode.checked;

?????? setChildState(chk);

?? }

}

function isAllChildrenUnChecked(objChk) {

?? var objChkID = objChk.getAttribute("ID");

?? var prefix = objChkID.substring(0, objChkID.indexOf("CheckBox"));? //节点的前缀

?? var childrenDiv = document.getElementById(prefix + "Nodes");

?? if (childrenDiv == null || childrenDiv == "undefined")

?????? return;

?? var childrenArray = childrenDiv.children; //取得所有子控件

?? for (var i = 0; i
?????? var container = childrenArray[i]; //子控件的容器

?????? var chk = WebForm_GetElementByTagName(container, "input"); //查找Check控件,由于只有一个种Input控件,就是CheckBox

?????? if (chk.checked)

?????????? return false;

?? }

?? return true;

}

//触发事件

function CheckEvent() {

?? var objNode = event.srcElement;

?? if (objNode.tagName != "INPUT" || objNode.type != "checkbox")

?????? return;

?? //设定子Chk状态

?? setChildState(objNode);

?? //设定父Chk状态

?? setParentState(objNode);

}

原文:大专栏  ASP.NET TreeView控件父子勾选框联动勾选

原文地址:https://www.cnblogs.com/chinatrump/p/11505559.html

时间: 2024-11-05 17:24:30

ASP.NET TreeView控件父子勾选框联动勾选的相关文章

ASP.NET - TreeView控件,只操作最后一级节点

效果: 绑定TreeView控件:http://www.cnblogs.com/KTblog/p/4792302.html 主要功能: 点击节点的时候,只操作最后一级的节点,其他节点跳过不执行代码. 代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Data.SqlClient; 5 using System.Web.UI.WebControls; 6 7 nam

脚本全选全不选操作asp.net treeview控件

1 //树节点勾选(取消)上级自动全部勾选(取消)下级,勾选下级自动勾选上级,取消全部下级,自动取消上级 2 3 //事件响应函数 4 var HandleCheckbox = function () { 5 //取得事件触发的元素,因为只要点了树控件,就会触发这个函数,所以须判断:只有点击checkbox时才继续 6 var element = event.srcElement; 7 if (element.tagName == "INPUT" && element.

asp.net TreeView控件绑定数据库显示信息

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using System.Data; 8 using System.Data.SqlClient; 9 using System.Configuration; 10 11 public part

ASP.NET TreeView控件的使用

<asp:TreeView ID="TreeView2" runat="server"></asp:TreeView> 数据库: 前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="TreeView.index" %> <

C# TreeView控件 父节点子节点勾选变化关联

项目用到了TreeView控件,父节点子节点勾选需要关联.子节点勾选,父节点同步.父节点勾选,所有子节点都勾选,并递归.网上找了一圈,好多代码都不满足要求.节点勾选,向下递归子节点,都实现了.节点勾选,向上递归,父节点同步勾选,也实现了.但是节点去除勾选,应该判断其同级所有节点,若同级节点都处于未勾选状态,则应该去除父节点勾选状态,并向上递归.这一点,没有找到合适的代码.就自己写了这部分代码.仅仅只是实现这个效果,代码还有优化的空间,后续有时间再来修改了. private void treeVi

Chapter 2. ASP.NET 标准控件(单选、复选、列表、面板、日历)

<h2>单选和单选组控件:</h2><br /> <asp:RadioButton ID="RadioButton1" runat="server" AutoPostBack="True" GroupName="gender" Text="男"/>   <asp:RadioButton ID="RadioButton2" runat=

ASP.NET用递归法绑定Treeview控件

1.代码如下: private void Form1_Load(object sender, EventArgs e) { treeView1.Nodes.Clear();//清空 树的所有节点 List<T_NavigationModel> Fnods = new T_NavigationBLL().GetModelList("Npid=0");//获取所有根节点 if (Fnods.Count <= 0)//判断要添加的节点个数是否为0,为0则取消 return;

ASP.NET_验证控件(class0620)

为什么使用验证控件 当需要让用户输入数据时,用户有可能输入不符合我们程序逻辑要求的信息,所以我们要对输入进行验证. 客户端验证(用户体验,减少服务器端压力) 服务器端验证(防止恶意攻击,客户端js很容易就可以被绕过) 必须要对用户输入的数据进行合法性校验,这些校验逻辑很多是重复的,比如字段不能为空.必须为日期格式.数字不能大于100等,而且要同时在客户端和服务器端校验. 验证控件 ASP.Net提供了如下的控件: RequiredFieldValidator:字段必填: RangeValidat

ComboBox中如何嵌套TreeView控件

在ComboBox中嵌套TreeView控件,有时候我们在设计界面的时候,由于界面设计的需要,我们需要将TreeView控件嵌套在ComboBox中,因为TreeView控件实在是太占用地方了,要想实现这样的功能,我们需要修改ComboBox控件的模板,这里贴出相关的代码,并进行分析:既然要将TreeView嵌套到ComboBox中,那么我们必须要修改ComboBoxItem的模板,在这里我们修改 ComboBoxItem的控件模板,同时我们也需要修改TreeView的ItemTemplate模