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 相关文章推荐
js控制框架刷新
Aug 01 Javascript
jQuery Validation插件remote验证方式的Bug解决
Jul 01 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
May 24 Javascript
AngularJs Modules详解及示例代码
Sep 01 Javascript
js+css3实现旋转效果
Jan 20 Javascript
基于D3.js实现时钟效果
Jul 17 Javascript
Vue中的异步组件函数实现代码
Jul 20 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
Sep 13 Javascript
详解离线安装npm包的几种方法
Nov 25 Javascript
node后端服务保活的实现
Nov 10 Javascript
JS实现鼠标移动拖尾
Dec 27 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
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
python连接sql server乱码的解决方法
2013/01/28 Python
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
django-初始配置(纯手写)详解
2019/07/30 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
python实现自动打卡的示例代码
2020/10/10 Python
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
台湾旅游网站:灿星旅游
2018/10/11 全球购物
俄语专业毕业生推荐信
2013/10/28 职场文书
法律专业实习鉴定
2013/12/22 职场文书
我的小天地教学反思
2014/04/30 职场文书
会议通知
2015/04/15 职场文书
党员带头倡议书
2015/04/29 职场文书
教师节感想
2015/08/11 职场文书
学者《孟子》名人名言
2019/08/09 职场文书