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 相关文章推荐
DIV菜单层实现代码
Nov 19 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
May 04 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
Dec 15 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
Dec 29 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
Feb 06 Javascript
详解vue渲染函数render的使用
Dec 12 Javascript
Vue 去除路径中的#号
Apr 19 Javascript
webstorm添加*.vue文件支持
May 08 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 27 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
Aug 08 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入门源程序
2006/10/09 PHP
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
用JQUERY增删元素的代码
2012/02/14 Javascript
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
python复制与引用用法分析
2015/04/08 Python
Python get获取页面cookie代码实例
2018/09/12 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
纺织工程专业推荐信
2014/09/08 职场文书
机关工会工作总结2015
2015/05/26 职场文书
清明节主题班会
2015/08/14 职场文书
导游词之五台山
2019/10/11 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python
Python中tqdm的使用和例子
2022/09/23 Python