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 相关文章推荐
符合W3C网页标准的iframe标签的使用方法
Jul 19 Javascript
用javascript来实现动画导航效果的代码
Dec 16 Javascript
IE与FireFox中的childNodes区别
Oct 20 Javascript
js字符串转换成xml对象并使用技巧解读
Apr 18 Javascript
html页面显示年月日时分秒和星期几的两种方式
Aug 20 Javascript
JavaScript中的方法调用详细介绍
Dec 30 Javascript
JQuery菜单效果的两个实例讲解(3)
Sep 17 Javascript
html+js实现简单的计算器代码(加减乘除)
Jul 12 Javascript
AngularJs 国际化(I18n/L10n)详解
Sep 01 Javascript
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
Apr 13 Javascript
老生常谈js中的MVC
Jul 25 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
Apr 23 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
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
php生成与读取excel文件
2016/10/14 PHP
jquery $.each()使用探讨
2013/09/23 Javascript
js闭包实例汇总
2014/11/09 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
python调用windows api锁定计算机示例
2014/04/17 Python
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
关于python中的xpath解析定位
2020/03/06 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
大学生军训自我评价分享
2013/11/09 职场文书
《长城》教学反思
2014/02/14 职场文书
2015元旦节寄语
2014/12/08 职场文书
优秀党员推荐材料
2014/12/18 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书