Javascript得到TreeView被选中的所有节点ID
function GetCheckedNode()
{
var treeView=document.getElementById('<%= treeViewSource.ClientID %>');
var children=treeView.getChildren();
var checkedIds=GetCheckedNodeIds(children[0]);
return checkedIds.substr(1,checkedIds.length);
}
function GetCheckedNodeIds(node)
{
var ids='';
if(node.getAttribute("checked")==true)
{
ids+=','+node.getAttribute("ID");
}
else
{
var childNodes=node.getChildren();
var childCount=childNodes.length;
if(childNodes.length>0)
{
for(var i=0;i<childCount;i++)
{
ids+=GetCheckedNodeIds(childNodes[i]);
}
}
}
return ids;
}
注:treeViewSource是TreeView控件。{
var treeView=document.getElementById('<%= treeViewSource.ClientID %>');
var children=treeView.getChildren();
var checkedIds=GetCheckedNodeIds(children[0]);
return checkedIds.substr(1,checkedIds.length);
}
function GetCheckedNodeIds(node)
{
var ids='';
if(node.getAttribute("checked")==true)
{
ids+=','+node.getAttribute("ID");
}
else
{
var childNodes=node.getChildren();
var childCount=childNodes.length;
if(childNodes.length>0)
{
for(var i=0;i<childCount;i++)
{
ids+=GetCheckedNodeIds(childNodes[i]);
}
}
}
return ids;
}
被选中的意思是节点前的CheckBox被选中(checked)
若当前节点被选中,则不遍历其子节点。
最终返回选中节点ID用逗号分隔的字符串。