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对象的函数
Dec 22 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
Sep 26 Javascript
jquery选择器之基本过滤选择器详解
Jan 27 Javascript
jQuery中:last选择器用法实例
Dec 30 Javascript
AngularJS入门教程之过滤器用法示例
Nov 02 Javascript
过期软件破解办法实例详解
Jan 04 Javascript
JS仿JQuery选择器功能
Mar 08 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
JS执行控制之节流模式实例分析
Dec 21 Javascript
js中arguments对象的深入理解
May 14 Javascript
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
开发一个封装iframe的vue组件
Mar 29 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执行速度全攻略(上)
2006/10/09 PHP
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
php微信开发自定义菜单
2016/08/27 PHP
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
ES6数组与对象的解构赋值详解
2019/06/14 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
python读写配置文件操作示例
2019/07/03 Python
Pycharm修改python路径过程图解
2020/05/22 Python
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
父亲生日宴会答谢词
2014/01/10 职场文书
中国好声音华少广告词
2014/03/17 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
思想作风建设心得体会
2014/10/22 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
2015年重阳节主持词
2015/07/04 职场文书
同学会感言
2015/07/30 职场文书
一篇文章弄懂MySQL查询语句的执行过程
2021/05/07 MySQL
MySQL数据库查询之多表查询总结
2022/08/05 MySQL