您的位置:首页 > 其它

TreeView节点选择问题

2008-03-31 12:41 435 查看
就是VS2005的TreeView中父节点的CheckBox被点击 则其下的所有子节点也被选中

子节点只要有一个选择 父节点也被选择上

子节点没有一个被选择 父节点就取消选择

<script >
function GoClick()
{

var obj = event.srcElement;
if(obj.tagName.toUpperCase() != "INPUT") return;
var tb = obj.parentElement.parentElement.parentElement.parentElement;//当前节点的Table

SelAllChildren(tb,obj.checked);

tb= tb.parentElement;//

while(true)
{
tb = tb.previousSibling
if( tb == null) return;
SetParentCheckBoxStatus(tb);
tb= tb.parentElement
if( tb == null) return;
}

}

function SelAllChildren(tb,checked)
{
var div = tb.nextSibling;
try
{
for(var i=0;i<div.children.length;i++)
{

if(div.children[i].tagName.toUpperCase()!="TABLE")continue;
var chkBox= FindRowCheckBox(div.children[i].rows[0]);
if(chkBox == null) continue;
chkBox.checked = checked;

SelAllChildren(div.children[i],checked);

}
}catch(e){}
}
function SetParentCheckBoxStatus(objTb)
{
var div = objTb.nextSibling;

var bSelAll = true;
var bSelOne = false;
for(var i=0;i<div.children.length;i++)
{

if(div.children[i].tagName.toUpperCase()!="TABLE")continue;

var chkBox= FindRowCheckBox(div.children[i].rows[0]);

if(!chkBox.checked)
{
bSelAll =false;
}else
{
bSelOne = true;
}
}

if(objTb.rows!= null)
{
var chkBox = FindRowCheckBox(objTb.rows[0])
chkBox.checked = bSelOne;

}
}

function FindRowCheckBox(tr)
{
for(var i=0;i<tr.cells.length;i++)
{
if(tr.cells[i].firstChild.tagName == "INPUT")
{
return tr.cells[i].firstChild;
}
}
}

function CheckDeleteTree(form,treeviewid)
{
if(document.getElementById(treeviewid+"_SelectedNode").value == "")
{
alert("请选择!");
return
}else
{
return confirm("确定?");
}

}

</script>

<asp:TreeView ID="TreeView1"
onclick="javascript:GoClick()"
EnableClientScript="true"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐