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 相关文章推荐
document.open() 与 document.write()的区别
Aug 13 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
Nov 19 Javascript
基于javascript实现泡泡大冒险网页版小游戏
Mar 23 Javascript
jQuery 限制输入字符串长度
Jun 20 Javascript
JavaScript导航脚本判断当前导航
Jul 12 Javascript
微信小程序 下拉列表的实现实例代码
Mar 08 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
May 25 jQuery
JS数组操作之增删改查的简单实现
Aug 21 Javascript
layui自定义ajax左侧三级菜单
Jul 26 Javascript
vue2 拖动排序 vuedraggable组件的实现
Aug 08 Javascript
关于vue组件事件属性穿透详解
Oct 28 Javascript
Javascript之datagrid查询详解
Sep 15 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
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
php操作xml入门之cdata区段
2015/01/23 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
Python标准库与第三方库详解
2014/07/22 Python
12步教你理解Python装饰器
2016/02/25 Python
Python使用剪切板的方法
2017/06/06 Python
python线程的几种创建方式详解
2019/08/29 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
会计学自荐信
2014/06/03 职场文书
大学生就业自荐书
2014/06/16 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
继承公证书格式
2015/01/26 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android