首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

在TreeView里,用JS如何获得CheckBox的Checked

2012-03-22 
在TreeView里,用JS怎么获得CheckBox的Checked?在TreeView里,用JS怎么获得CheckBox的Checked?我使用.net1.1

在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);
}
}

热点排行