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 26 Javascript
js tab效果的实现代码
Dec 26 Javascript
jQuery Validation实例代码 让验证变得如此容易
Oct 18 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
Nov 05 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
May 17 Javascript
vue + vuex todolist的实现示例代码
Mar 09 Javascript
Vue-路由导航菜单栏的高亮设置方法
Mar 17 Javascript
vue自动化表单实例分析
May 06 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
Jun 18 jQuery
微信小程序表单验证WxValidate的使用
Nov 27 Javascript
React 条件渲染最佳实践小结(7种)
Sep 27 Javascript
一文帮你理解PReact10.5.13源码
Apr 03 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
星际原理概述
2020/03/04 星际争霸
Sony CFR 320 修复改造
2020/03/14 无线电
无数据库的详细域名查询程序PHP版(5)
2006/10/09 PHP
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
JavaScript 函数调用规则
2009/09/14 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
python安装以及IDE的配置教程
2015/04/29 Python
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
python3实现mysql导出excel的方法
2019/07/31 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
python如何停止递归
2020/09/09 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
饭店工作计划书
2014/01/10 职场文书
年级组长自我鉴定
2014/02/22 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA
服务器间如何实现文件共享
2022/05/20 Servers