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 二分法(数组array)
Apr 24 Javascript
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
在JavaScript中判断整型的N种方法示例介绍
Jun 18 Javascript
jQuery中dom元素上绑定的事件详解
Apr 24 Javascript
JavaScript常用基础知识强化学习
Dec 09 Javascript
微信小程序组件 contact-button(客服会话按钮)详解及实例代码
Jan 10 Javascript
详解Javascript中new()到底做了些什么?
Mar 29 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
关于Vue源码vm.$watch()内部原理详解
Apr 26 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
May 07 Javascript
详解ES6 export default 和 import语句中的解构赋值
May 28 Javascript
微信小程序的开发范式BeautyWe.js入门详解
Jul 10 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
php实现mysql同步的实现方法
2009/10/21 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
js中开关变量使用实例
2017/02/24 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
Python 中的lambda函数介绍
2018/10/10 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
python实现数字炸弹游戏程序
2020/07/17 Python
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
大学毕业生的自我鉴定
2013/11/30 职场文书
精通CAD能手自荐书
2014/01/31 职场文书
毕业生工作求职信
2014/06/30 职场文书
先进班组材料范文
2014/12/25 职场文书
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS