在TreeView里,用JS怎么获得CheckBox的Checked?
在TreeView里,用JS怎么获得CheckBox的Checked?
我使用.net1.1的微软TreeView组件
后台:
TreeView1.Attributes.Add( "oncheck ", "tree_oncheck(event) ");
前台JS:
function tree_oncheck()
{
var node = TreeView1.getTreeNode(event.treeNodeIndex);
var Pchecked = node.getAttribute( "checked ");
alert(Pchecked);
}
///////
初始时没有打勾得能正确显示。原来打勾的,一直显示true。
查看了
生成的html代码:
<tvns:treeview id= "TreeView1 " ExpandAll= "True " oncheck= "tree_oncheck(this.value) " >
<tvns:treenode Expanded= "True " Selected= "true " Checked= "true " NodeData= "100100101 " CheckBox= "True "> 美容 </tvns:treenode>
<tvns:treenode Expanded= "True " NodeData= "100100102 " CheckBox= "True "> 美发 </tvns:treenode>
</tvns:treeview>
原来打勾的有Selected= "true "。
所以用上面的JS方法只能获得true。
请问:我怎么才能在去掉打勾时获得正确的false?
[解决办法]
TreeView1.Checked
[解决办法]
.net 的就是麻烦。msdn里面查查
顶O.o
[解决办法]
以下是俺从代码里搜出来滴一些有关早期 treeview 的代码,希望能对 lz 有帮助。
似乎应该用此法:n.getAttribute( "checked ") 获取 checked 属性值。
代码里还有许多其他对于 treeview 滴操作方法一起赠与 lz。
==== html ====
<form id= "Form1 " method= "post " runat= "server " onsubmit= "getAllCheckedValue() ">
<INPUT id= "SelectedNodes " type= "hidden " runat= "server " NAME= "SelectedNodes ">
==== Javascript ====
//获取全部节点数据
function getAllCheckedValue()
{
var organCtl = document.all[ 'SelectedNodes '];
organCtl.value = " ";
recurGetChecked(Tree.getChildren(), 0, organCtl);
}
//递归获取树中节点CheckBox选定状态
function recurGetChecked(nodes, level, organCtl)
{
level--;
if (nodes == null || nodes.length == 0)
return;
for(var i = 0 ; i < nodes.length; ++i)
{
var n = nodes[i];
var child = n.getChildren();
if ((child == null || child.length == 0) && n.getAttribute( "checked ")) //必须是末级节点才有效
{
var d = n.getAttribute( "NODEDATA ").split( '; ')
organCtl.value += d[0] + ', '
}
else if (level != 0)
{
if(n.getAttribute( "checked "))
{
var d = n.getAttribute( "NODEDATA ").split( '; ')
organCtl.value += d[0] + ', '
}
recurGetChecked(child, level, organCtl);
}
}
}
//以下脚本为设置权限树所用
function setAllCheckedValue()
{
recurSetChecked(Tree.getChildren());
}
function recurSetChecked(nodes)
{
if (nodes == null || nodes.length == 0)
return true;
var allChecked = true;
for(var i = 0 ; i < nodes.length; ++i)
{
var n = nodes[i];
var currentChecked = false;
var d = n.getAttribute( "NODEDATA ").split( '; ');
if (d.length > 1 && d[1] == "1 ")
{
n.setAttribute( "checked ", true);
currentChecked = true;
}
else
allChecked = false;
if (!recurSetChecked(n.getChildren()))
{
if (currentChecked)//当前节点处于Checked,而下层节点并非全部为Checked状态时,展开当前节点
{
n.setAttribute( 'EXPANDED ', true);
}
allChecked = false;
}
}
return allChecked;
}
function checkNode()
{
var node = Tree.getTreeNode(event.treeNodeIndex);
if (node == null)
return;
var checked = node.getAttribute( "checked ");
downRecurCheck(node.getChildren(), checked, 0);
upRecurCheck(node.getParent(), checked, 0);
}
function downRecurCheck(nodes, checked, level)
{
level--;
if (nodes == null || nodes.length == 0)
return;
for(var i = 0 ; i < nodes.length; ++i)
{
var n = nodes[i];
if (level != 0)
downRecurCheck(n.getChildren(), checked, level);
n.setAttribute( "checked ", checked);
}
}
function upRecurCheck(parentNode, checked, level)
{
level--;
if (parentNode == null)
return;
if (checked)
{
parentNode.setAttribute( "checked ", checked);
if (level != 0)
upRecurCheck(parentNode.getParent(), checked, level);
}
else
{
var c = false
var nodes = parentNode.getChildren();
for(var i = 0 ; i < nodes.length; ++i)
{
var n = nodes[i];
if (n.getAttribute( "checked "))
{
parentNode.setAttribute( "checked ", true);
c = true;
break;
}
}
if (!c)
parentNode.setAttribute( "checked ", false);
if (level != 0)
upRecurCheck(parentNode.getParent(), checked, level);
}
}