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 相关文章推荐
passwordStrength 基于jquery的密码强度检测代码使用介绍
Oct 08 Javascript
解析js原生方法创建表格效率测试
Jul 08 Javascript
javascript特殊用法示例介绍
Nov 29 Javascript
javascript中的undefined和not defined区别示例介绍
Feb 26 Javascript
对于jQuery性能的一些优化建议
Aug 13 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
Sep 04 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
Aug 25 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
Dec 14 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
Aug 19 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
关于Vue中$refs的探索浅析
Nov 05 Javascript
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
基于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
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
PHP安全下载文件的方法
2016/04/07 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
详解PHP队列的实现
2019/03/14 PHP
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
vue.js的安装方法
2017/05/12 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
Python实现获取操作系统版本信息方法
2015/04/08 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
Python线程同步的实现代码
2018/10/03 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
如何基于线程池提升request模块效率
2020/04/18 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
表彰先进集体通报
2014/01/12 职场文书
2014年内勤工作总结
2014/11/24 职场文书
海上钢琴师观后感
2015/06/03 职场文书
给校长的建议书范文
2015/09/14 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
python如何读取和存储dict()与.json格式文件
2022/06/25 Python