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 相关文章推荐
phpwind放自动注册方法
Dec 02 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
Mar 25 Javascript
javascript实现继承的简单实例
Jul 26 Javascript
功能强大的Bootstrap使用手册(一)
Aug 02 Javascript
Node.js检测端口(port)是否被占用的简单示例
Sep 29 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
Feb 19 Javascript
整理关于Bootstrap排版的慕课笔记
Mar 29 Javascript
vuejs2.0子组件改变父组件的数据实例
May 10 Javascript
完美解决axios跨域请求出错的问题
Feb 05 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
微信小程序后端(java)开发流程的详细步骤
Nov 13 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
自动分页的不完整解决方案
2007/01/12 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
Python 闭包的使用方法
2017/09/07 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
浅谈Pandas Series 和 Numpy array中的相同点
2019/06/28 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
html5的localstorage详解
2017/05/09 HTML / CSS
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
软件测试面试题
2015/10/21 面试题
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
文体活动总结范文
2014/05/05 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
班主任工作实习计划
2015/01/16 职场文书
高中教师个人总结
2015/02/10 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
Nginx限流和黑名单配置
2022/05/20 Servers