微軟的TreeView控件,呈現到客戶端後是html 組件 treeview.htc 在web 根目錄的webctrl_client文件夾下,如果,所以安裝完微軟的IEWebControls後必須確認自己的web根目錄下的webctrl_client得htc和資源文件是否完整。
TreeView 空件的命名空間是Microsoft.Web.UI.WebControls,在客戶端的輸出是treeview.htc。既然是組件,那就有,屬性,方法,事件等,我們完全可以在客戶端對treeview 操作,減少一些與服務端無謂的交互。
1.取某節點得index
function getNodeIndex(node){
var strIndex = "";
if (node != null){
if (node.getAttribute("sibIndex") == null){
if (node.parentElement == null){
return null;
}
var col = node.parentElement.children.tags("treenode");
var i = 0;
while (col[i] != node) i++;
node.setAttribute("sibIndex",i);
}
strIndex = node.getAttribute("sibIndex");
while (node.getAttribute("parentElement") && node.getAttribute("parentElement").tagName.toLowerCase() == "treenode") {
node = node.getAttribute("parentElement");
if (node.getAttribute("sibIndex") == null)
return null;
strIndex = node.getAttribute("sibIndex") + "." + strIndex;
}
}
return strIndex;
}
2.取節點id是某各值的節點index
function getNodeIndexbyId(tTree,strId)
{
var objColl=tTree.getChildren();
for (var i=0;i<objColl.length;i++)
{
if (objColl[i].getAttribute("ID").toString()==strId)
{
return getNodeIndex(objColl[i]);
}
else
{
var strTemp=getNodeIndexbyId(objColl[i],strId);
if (strTemp!="")
{
return strTemp;
}
}
}
return "";
}
3.展開樹上的所有節點
function DoExpand(tTree)
{
var objColl=tTree.getChildren();
for (var i=0;i<objColl.length;i++){
objColl[i].setAttribute("Expanded",true);
DoExpand(objColl[i]);
}
}
4.判斷樹上是否含有text是某個指定值的節點
function DoTest(tNode){
var objColl=tNode.getChildren();
for (var i=0;i<oColl.length;i++){
if (objColl[i].getAttribute("text")=="xam"){
return true;
}
else{
if(DoTest(objColl[i])==true)
{
return true;
}
}
}
}
微軟的TreeView控件的客戶端操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.