*/
の Page_load() イベントに yourTreeView.Attribute.Add("OnCheck","CheckNode(yourTreeView.getTreeNode(yourTreeView.clickedNodeIndex))") を追加します。
//すべての子ノードを再帰的に走査します
function CheckNode(currentNode)
{
var childNode=new Array();
varparentNodeChild=new Array();
childNode=currentNode.getChildren();
if(currentNode.getAttribute('checked'))
{
isChecked=true
}
else
{
isChecked=false;
}
//親ノードの処理
if(currentNode.getParent()!=null)
{
//選択された処理
if(currentNode.getAttribute ('チェック済み'))
{
ParentNode(currentNode);
}
else
//チェックを外します
{
ChildNode(currentNode); }
}
else
{
//何もしない
}
//子ノードの処理
if(childNode.length>0)
{
for(var i=0;i
childNode.setAttribute("Checked",isChecked);
if(childNode.getChildren().length>0)
{
CheckNode(childNode);
}
}
}
}
// 親ノードを再帰的に選択
function ParentNode(currentNode)
{
if(currentNode.getParent()!=null)
{
currentNode.getParent().setAttribute('Checked',true);
// 更新をトラバースするために ParentNode(currentNode) を再帰的に呼び出します。前の層のノード
ParentNode(currentNode.getParent());
}
}
//親ノードの選択を再帰的に解除
function ChildNode(currentNode)
{
if(currentNode.getParent()!=null)
{ var selectedCount=0;
var childNode=currentNode.getParent().getChildren();
for (var i=0; i
if(childNode.getAttribute('Checked'))
{
selectedCount ;
}
}
if(checkedCount= =0)
{
currentNode.getParent().setAttribute('Checked',false);
}
// ChildNode(currentNode) を再帰的に呼び出して、上位レベルの親ノードを走査します
ChildNode (currentNode) .getParent()); 問題
コードをコピーします
コードは次のとおりです:
var AllRootNode=new Array();
AllRootNode=TreeView1.getChildren();
AlertNode(AllRootNode);
function AlertNode(NodeArray)
{
if(parseInt(NodeArray.length)==0)
return;
else
{
for(i=0;i
var cNode;
cNode=NodeArray;
alter(cNode.getAttribute("Text"));
if(parseInt(cNode.getChildren().length)!=0)
AlertNode(cNode.getChildren());
}
}
}