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 相关文章推荐
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
Sep 15 Javascript
js单独获取一个checkbox看其是否被选中
Sep 22 Javascript
Vue.js每天必学之数据双向绑定
Sep 05 Javascript
EditPlus 正则表达式 实战(3)
Dec 15 Javascript
完美实现js选项卡切换效果(一)
Mar 08 Javascript
JavaScript中使用Async实现异步控制
Aug 15 Javascript
bootstrap实现二级下拉菜单效果
Nov 23 Javascript
webpack4的迁移的使用方法
May 25 Javascript
layui时间控件选择时间范围的实现方法
Sep 28 Javascript
ES6新增的数组知识实例小结
May 23 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
Aug 03 Javascript
js实现轮播图效果 纯js实现图片自动切换
Aug 09 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
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python中常用检测字符串相关函数汇总
2015/04/15 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
3分钟学会一个Python小技巧
2018/11/23 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
蛋糕店的商业计划书范文
2014/01/27 职场文书
采购助理岗位职责
2014/02/16 职场文书
副总经理岗位职责
2014/03/16 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
深入探讨opencv图像矫正算法实战
2021/05/21 Python
如何利用golang运用mysql数据库
2022/03/13 Golang