关于treeview控件复选框

news/2024/7/8 5:36:22
js吧。。给你代码。我实现了的。。没什么问题。记得在Page_load时间写
this.TreeView1.Attributes.Add("onclick", "CheckEvent()");


JScript code
//获取元素指定tagName的父元素
function public_GetParentByTagName(element, tagName)
{
var parent = element.parentNode;
var upperTagName = tagName.toUpperCase();
//如果这个元素还不是想要的tag就继续上溯
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");
if(objParentDiv==null || objParentDiv == "undefined")
{
return;
}
var objID = objParentDiv.getAttribute("ID");
objID = objID.substring(0,objID.indexOf("Nodes"));
objID = objID+"CheckBox";
var objParentCheckBox = document.getElementById(objID);
if(objParentCheckBox==null || objParentCheckBox == "undefined")
{
return;
}
if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
return;
objParentCheckBox.checked = true;
setParentChecked(objParentCheckBox);
}

//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
function setChildUnChecked(divID)
{
var objchild = divID.children;
var count = objchild.length;
for(var i=0;i
{
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
{
tempObj.checked = false;
}
setChildUnChecked(tempObj);
}
}

//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
function setChildChecked(divID)
{
var objchild = divID.children;
var count = objchild.length;
for(var i=0;i
{
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
{
tempObj.checked = true;
}
setChildChecked(tempObj);
}
}

//触发事件
function CheckEvent()
{

var objNode = event.srcElement;

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

if(objNode.checked==true)
{
setParentChecked(objNode);
var objID = objNode.getAttribute("ID");
var objID = objID.substring(0,objID.indexOf("CheckBox"));
var objParentDiv = document.getElementById(objID+"Nodes");
if(objParentDiv==null || objParentDiv == "undefined")
{
return;
}
setChildChecked(objParentDiv);
}
else
{
var objID = objNode.getAttribute("ID");
var objID = objID.substring(0,objID.indexOf("CheckBox"));
var objParentDiv = document.getElementById(objID+"Nodes");
if(objParentDiv==null || objParentDiv == "undefined")
{
return;
}
setChildUnChecked(objParentDiv);
}
}



记得给分

本文转自
http://topic.csdn.net/u/20080104/01/c1b18a8d-1cf2-4ce1-b959-5b201d8b2dc9.html

http://www.niftyadmin.cn/n/3970895.html

相关文章

推荐几个比较好用的GTD工具

前几天听米老师讲了关于时间管理的课,其中提到了GTD(Getting Things Done)。GTD是一种比较先进和有效的时间管理理论,我们可以用这种理论来提高我们学习效率,使我们在面对众多的待完成任务时,有条不紊。 我…

对象不能从DBNull 转换为其他类型的解决方法

string sql_str"select MAX(lID) from liuyan":改成 语句string sql_str "select iif((MAX(lID)) is null,0,1) from liuyan"; iff(判断,是,否) 但是只能添加一次,因为第二次添加运行string sql_str "select i…

如何在Eclipse中添加tomcat服务器

在J2EE开发中,时不时的要在编程过程中预览自己所做的开发,如果每次都将工程发布到TOMCAT来预览这样很麻烦,于是我们需要将tomcat添加到Eclipse中以便随时启动预览工程项目。 这里我们说下如何在Eclipse中添加Tomcat服务器。 配置完成后&#…

.net20做网站过程

1,根据需求ps出网站模板,切割图片。 - 2,保存到dw中,画层。 - 3,到vs中,建母版页,在层里放入ContentPlaceHolder,创建内容页。 - 4,所有编辑代码在内容页ContentPlace…

C#中的XML注释

C#中的XML注释注:转载自http://hi.baidu.com/czlaner/blog/item/aa9251d35e7005033af3cfce.html 上篇文章提到过如何使用Sandcastle创建C#的帮助文档&#xff0c;这需要在源文件中插入XML注释&#xff0c;以“///”的形式出现。C#的“///<></>”注释在编译生成xml时…

Android牟利之道(六)--积分(或积分墙)的使用

最近有网友私信我&#xff0c;问我如何在应用中使用积分功能获取一些额外收入&#xff0c;下面就以万普广告平台的积分模式介绍如何在应用中使用积分获取收入&#xff08;万普的SDK中也有开发文档&#xff0c;但是初次接触积分模式&#xff0c;使用时可能会有些困难&#xff0c…

主细表数据录入原则.

主细数据库同时录入数据的时候&#xff0c;我认为有如下原则: 1 逻辑远比方便重要。 有的人喜欢将主表数据之前,生成细表数据。撇开数据库的主外键约束的情况不说,单单从逻辑上,也应该是先有主表数据,然后再有细表数据。 为了绑定显示方便&#xff0c;而将细表数据先存到数据…

Asp.net下利用VB进行RSS解析

Protected Sub GetRSSSource(ByVal lt As Literal) Dim RSSURL,RSSName As String 根据需要可以从数据库动态获取 RSSURL "http://news.qq.com/newsgn/rss_newsgn.xml" RSSName "国内新闻" Dim …