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 相关文章推荐
javascript 写类方式之七
Jul 05 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
Jun 25 Javascript
js下通过getList函数实现分页效果的代码
Sep 17 Javascript
javascript对select标签的控制(option选项/select)
Jan 31 Javascript
JavaScript实现找出字符串中第一个不重复的字符
Sep 03 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
Jun 02 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
Dec 18 Javascript
JS继承与闭包及JS实现继承的三种方式
Oct 15 Javascript
理解Koa2中的async&amp;await的用法
Feb 05 Javascript
vue实现百度语音合成的实例讲解
Oct 14 Javascript
OpenLayers3实现地图显示功能
Sep 25 Javascript
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 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配置文件中最常用四个ini函数
2007/03/19 PHP
FleaPHP的安全设置方法
2008/09/15 PHP
PHP生成Flash动画的实现代码
2010/03/12 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
python交互界面的退出方法
2019/02/16 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
Oracle的内存结构(Memory structures)
2015/06/10 面试题
Linux的主要特性
2016/09/03 面试题
房地产营销活动策划方案
2014/09/15 职场文书
教师群众路线心得体会
2014/11/04 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
安全员岗位职责
2015/02/10 职场文书
家长意见书
2015/06/04 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang