TreeView 用法(有代码)(asp.net)


Posted in Javascript onJuly 15, 2011

前台代码

<script type="text/javascript"> 
//客户端捕捉事件 
function CheckEvent() { 
var objNode = event.srcElement; 
if (objNode.tagName == "INPUT" && objNode.type == "checkbox") { 
var objParentDiv = objNode.id.replace("CheckBox", "Nodes"); 
if (objNode.checked == true) { 
setChildCheckState(objParentDiv, true); 
setParentCheckeState(objNode, true); 
} 
else { 
setChildCheckState(objParentDiv, false); 
if (!HasOtherChecked(objNode)) { 
setParentCheckeState(objNode, false); 
} 
} 
} 
} 
//判断是否有并行的其他节点被选中 
function HasOtherChecked(objNode) { 
var objParentDiv = WebForm_GetParentByTagName(objNode, "div"); 
var chks = objParentDiv.getElementsByTagName("INPUT"); 
for (var i = 0; i < chks.length; i++) { 
if (chks[i].checked && chks[i].id != objNode.id) { 
return true; 
} 
} 
return false; 
} 
//设置父节点 
function setParentCheckeState(objNode, chkstate) { 
try { 
var objParentDiv = WebForm_GetParentByTagName(objNode, "div"); 
if (objParentDiv == null || objParentDiv == "undefined ") { 
return; 
} 
else { 
var objParentChkId = objParentDiv.id.replace("Nodes", "CheckBox"); 
var objParentCheckBox = document.getElementById(objParentChkId); 
if (objParentCheckBox) { 
objParentCheckBox.checked = chkstate; 
setParentCheckeState(objParentDiv, chkstate); 
} 
} 
} 
catch (e) { } 
} 
//设置子节点 
function setChildCheckState(nodeid, chkstate) { 
var node = document.getElementById(nodeid); 
if (node) { 
var chks = node.getElementsByTagName("INPUT"); 
for (var i = 0; i < chks.length; i++) { 
chks[i].checked = chkstate; 
} 
} 
} 
</script> 
<body> 
<form id="form1" runat="server"> 
<asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" onclick="CheckEvent()"> 
</asp:TreeView> 
</form> 
</body>

后台代码:
private void BindGrid() 
{ 
DataTable mytable = menuTableBll.GetAllList().Tables[0]; //获取数据 
CreateTree(mytable, TreeView1.Nodes, "0"); 
} 
private void CreateTree(DataTable dtNodeSets, TreeNodeCollection node, string parent_id) 
{ 
DataView dvList = new DataView(dtNodeSets); 
dvList.RowFilter = "MeunParentId =" + parent_id; 
TreeNode nodeTemp; 
foreach (DataRowView dv in dvList) 
{ 
nodeTemp = new TreeNode(); 
nodeTemp.Text = dv["MenuName"].ToString(); 
nodeTemp.Expanded = true; 
nodeTemp.ToolTip = dv["MeunId"].ToString(); 
node.Add(nodeTemp); 
CreateTree(dtNodeSets, nodeTemp.ChildNodes, dv["MeunId"].ToString()); 
} 
}
Javascript 相关文章推荐
用函数式编程技术编写优美的 JavaScript
Nov 25 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
Nov 11 Javascript
JS 实现获取打开一个界面中输入的值
Mar 19 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
May 07 Javascript
JavaScript中exec函数用法实例分析
Jun 08 Javascript
vue.js 上传图片实例代码
Jun 22 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
通过button将form表单的数据提交到action层的实例
Sep 08 Javascript
vue2.0与bootstrap3实现列表分页效果
Nov 28 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
Apr 24 Javascript
36个正则表达式(开发效率提高80%)
Nov 17 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
Jul 15 #Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
Jul 15 #Javascript
js实现addClass,removeClass,hasClass的函数代码
Jul 13 #Javascript
js下将字符串当函数执行的方法
Jul 13 #Javascript
JS高级笔记
Jul 13 #Javascript
JS继承 笔记
Jul 13 #Javascript
$.format,jquery.format 使用说明
Jul 13 #Javascript
You might like
smarty section简介与用法分析
2008/10/03 PHP
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
js获取class的所有元素
2013/03/28 Javascript
JS定时器实例
2013/04/17 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
JQuery删除DOM节点的方法
2015/06/11 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python监控主机是否存活并以邮件报警
2015/09/22 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
python selenium 弹出框处理的实现
2019/02/26 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
配件采购员岗位职责
2013/12/03 职场文书
十岁生日同学答谢词
2014/01/19 职场文书
五年级数学教学反思
2014/02/11 职场文书
有关爱国演讲稿
2014/05/07 职场文书
社会实践活动总结
2015/02/05 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
德能勤绩工作总结
2015/08/11 职场文书
2016优秀护士求职自荐信
2016/01/28 职场文书
教师师德承诺书2016
2016/03/25 职场文书
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL