服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - ASP.NET教程 - js获取Treeview选中的节点(C#选中CheckBox项)

js获取Treeview选中的节点(C#选中CheckBox项)

2019-10-15 10:42C#教程网 ASP.NET教程

方法网上有很多,试了一下都有瑕疵,于是设置断点调试,各个属性查找有用的字段,终于找到,接下来与大家分享解决方法,需要了解的朋友可以参考下

方法网上有很多,试了一下都有瑕疵。最后找了个看上去代码比较少,比较顺眼的,测试结果报错说有几个函数不存在,于是设置断点调试,各个属性查找有用的字段,终于找到。 
现整理如下: 
首先,要想在javascript中获取treeview中带checkbox的节点,需要设置treeview节点的某些属性,我是在后台代码中添加的。 

复制代码代码如下:


TreeNode newNode = new TreeNode(); 
newNode.Text = “showText”; 
newNode.Value =id; 
newNode.NavigateUrl = id; // 可用来在javascript中获取需要的value或text值 
newNode.ShowCheckBox = true; //显示checkbox 
newNode.Expanded = false; //节点折叠 
newNode.Checked = true; //checkbox选中 


获取Treeview带Input控件的节点:var tree = document.getElementById("treenameOrid").getElementsByTagName("input"); 
上边设置的是checkbox,所以tree选出的就是带checkbox的项。它不同于var treeitem=document.getElementById("treenameorid");不可遍历直接获取text和value; 
获取Treeview中Checkbox选中的节点,通常作为一个判断条件: if (tree[i].type == "checkbox" && tree[i].checked) {内容} 
获取各个节点需要的值:var s = tree[i].nextSibling.pathname; 发现这个费了我不少脑细胞。要用此属性获取值,必须设置属性newNode.NavigateUrl = 需要的值; 
好啦,现在给出一个javascript的完整代码: 

复制代码代码如下:


var idlist; 
function GeSelectedNode() { 
var getAllNodes = ""; 
idlist = new Array(); //实例化数组 
var tree = document.getElementById("treenameOrid").getElementsByTagName("input"); 
for (var i = 0; i < tree.length; i++) { 
if (tree[i].type == "checkbox" && tree[i].checked) { 
var s = tree[i].nextSibling.pathname; //要用此属性获取值,必须设置属性newNode.NavigateUrl = 需要的值; 
getAllNodes += s + '/'; 
idlist.push(s); //将值添加入数组最后一项; 


alert(tree.length); 
alert(getAllNodes); 


现在,运行起来,看看是不是你需要的结果,如果不对,别忘了设断点调试哦。

延伸 · 阅读

精彩推荐