您的位置:首页 > 编程语言 > ASP

asp.net TreeView 一些操作

2007-04-24 23:20 387 查看
最近在asp.net中总是用到TreeView,有一些基本的操作,比如选中所有子节点,选中父节点之类的,每次用的时候都得找以前的代码段拷贝,挺烦的,现在就把这些放在这里,方便以后使用 ^_^

选中所有子节点:


function OnTreeNodeChecked()






{


var ele = window.event.srcElement;


if(ele.type=='checkbox')






{


var childrenDivID = ele.id.replace('CheckBox','Nodes');


var div = document.getElementById(childrenDivID);


if(div==null)return;


var checkBoxs = div.getElementsByTagName('INPUT');


for(var i=0;i<checkBoxs.length;i++)






{


if(checkBoxs[i].type=='checkbox')


checkBoxs[i].checked=ele.checked;


}


}


}

如果要选中子节点又同时选中所有父节点:


function getParentByTagName(element,tagName)






{


var parent = element.parentNode;


var upperTagName = tagName.toUpperCase();


while (parent && (parent.tagName.toUpperCase() != upperTagName))






{


parent = parent.parentNode ? parent.parentNode : parent.parentElement;


}


return parent;


}




function setParentChecked(objNode)






{


var objParentDiv = getParentByTagName(objNode,"div");


if(objParentDiv == null || objParentDiv == "undefined")


return;


var objID = objParentDiv.getAttribute("ID");


var objParentCheckBox = document.getElementById(objID.replace("Nodes","CheckBox"));


if(objParentCheckBox == null || objParentCheckBox == "undefined")


return;


if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")


return;


objParentCheckBox.checked = true;


setParentChecked(objParentCheckBox);


}






function setChildCheckedState(div,state)






{


var objchild = div.childNodes;


var count = objchild.length;


for(var i=0;i<objchild.length;i++)






{


var tempObj = objchild[i];


if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")






{


tempObj.checked = state;


}


setChildCheckedState(tempObj,state);


}


}


function TreeNodeChecked()






{


var objNode = window.event.srcElement;


if(objNode.tagName!="INPUT" || objNode.type!="checkbox")


return;




if(objNode.checked == true)






{


setParentChecked(objNode);


}


var objID = objNode.getAttribute("ID");


var objParentDiv = document.getElementById(objID.replace("CheckBox","Nodes"));


if(objParentDiv==null || typeof(objParentDiv) == "undefined")


return;


setChildCheckedState(objParentDiv,objNode.checked);




}

后台的给treeview添加onclick事件处理:


m_Tree.Attributes.Add("onclick", "TreeNodeChecked();");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐