)TreeView使用集錦

來源:互聯網
上載者:User
asp.net TreeView安裝、使用(如何將TreeView打包發布)(帶CheckBox選擇框的TreeView的初始化,TreeView用戶端操作:選擇父節點後自動選擇所有子節點,子節點選擇後自動選擇父節點)(TreeView節點精確定位)
http://www.cnblogs.com/adandelion/archive/2005/11/29/235681.html

http://ghost527.cnblogs.com/archive/2005/12/30/308363.html

http://www.aspxboy.com/private/showthread.asp?postid=840 

 

1.
http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp
下載後是尾碼為bat的版本
(1)bulid.將bulid.bat的路徑指向csc.exe所在路徑,產生Microsoft.Web.UI.WebControls.dll。
(2)在wwwroot下建立空目錄webctrl_client\1_0。
(3)將build\Runtime下的檔案拷至webctrl_client\1_0下。
(4)選擇工具箱的自訂工具箱,添加Microsoft.Web.UI.WebControls.dll。
有些麻煩
但如果你能找到尾碼是msi的自動安裝版本,直接下一步就行(我一直用這個版本,hoho)
安裝後,通過“自訂工具箱”->“.net架構組件”把TreeView添加到工具箱裡

2.運行時無法顯示
一般是TreeView的版本問題,最好下載英文版自動安裝版本重新安裝,安裝前應該先到添加刪除程式裡卸掉原版本

3.顯示格式出錯(非樹狀顯示)
TreeView要求用戶端瀏覽器版本為IE5.5及以上,最好要求用戶端升級為IE6.0

4.架構裡使用TreeView
設定NavigateUrl、Target屬性,可更新另外的Frame

5.找不到TreeNode類
使用TreeView,最好添加namespace:using Microsoft.Web.UI.WebControls;

6.遍曆TreeView節點(遞迴演算法)
private void Page_Load(object sender, System.EventArgs e)
{
 GetAllNodeText(TreeView1.Nodes);
}
void GetAllNodeText(TreeNodeCollection tnc)
{
 foreach(TreeNode node in tnc)
 {
  if(node.Nodes.Count!=0)
   GetAllNodeText(node.Nodes);
  Response.Write(node.Text + " ");
 }
}

7.得到node結點的父節點
TreeNode pnode;
if(node.Parent is TreeNode)
 pnode=(TreeNode)node.Parent;
else
 //node is root node

8.修改TreeView樣式(樣本)
<iewc:TreeView id="TreeView1" runat="server" HoverStyle="color:blue;background:#00ffCC;" DefaultStyle="background:red;color:yellow;" SelectedStyle="color:red;background:#00ff00;">
用代碼:
TreeView1.DefaultStyle["font-size"] = "20pt";

9.展開時不提交,改變選擇節點時才提交
將autopostback設定成false; 
在body裡添加  <body  onload="initTree()"> 
然後在PageLoad裡寫: 
string  strTreeName  =  "TreeView1"; 
string  strRef  =  Page.GetPostBackEventReference(TreeView1); 
string  strScript  =  "<script  language=\"JavaScript\">  \n"  +  "<!--  \n"  +  "            function  initTree()  {  \n"  +"                        "  +  strTreeName  +  ".onSelectedIndexChange  =  function()  {  \n"  +    "if  (event.oldTreeNodeIndex  !=   
event.newTreeNodeIndex)  \n"  +  "this.queueEvent('onselectedindexchange',  event.oldTreeNodeIndex  +  ','  +  event.newTreeNodeIndex);  \n"  +    "window.setTimeout('"  +  strRef.Replace("'","\\'")    +  "',  0,  'JavaScript');  \n"  +    "                        }  \n"  +      "            }  \n"  +    "//  -->  \n"  +  "</script>"; 
Page.RegisterClientScriptBlock("InitTree",strScript  ); 
 
這樣就只有你點擊的節點更改的時候才提交!

10.TreeView結合XML
把XML檔案設定為如下格式,然後直接設定TreeNodeSrc為該XML檔案就行
<?xml version="1.0" encoding="GB2312"?>
<TREENODES>
 <TREENODE TEXT="node0" EXPANDED="true">
  <TREENODE TEXT="node1"/>
  <TREENODE TEXT="node2"/>
 </TREENODE>
 <TREENODE TEXT="node3" NavigateURL="3.aspx"/>
</TREENODES>
或者用代碼
TreeView1.TreeNodeSrc="a.xml";
TreeView1.DataBind();

 

用戶端控制TreeView
http://expert.csdn.net/Expert/topic/1382/1382892.xml

1.設定所選節點,如選中第二個節點
function SetSelNode()
{
 TreeView1.selectedNodeIndex="1";
}

2.得到所選節點的Text,ID或NodeData
function GetAttribute()
{
 alert(TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text"));
}
替換Text為ID或NodeData,可分別得到所選節點的ID或NodeData

3.修改節點屬性,如修改第一個節點的Text
function ModifyNode()
{
 var node=TreeView1.getTreeNode("0");
 node.setAttribute("Text","hgknight");
}

4.得到點擊節點
function TreeView1.onclick()
{
 alert(TreeView1.getTreeNode(TreeView1.clickedNodeIndex).getAttribute("Text"));
}

5.添加節點
function AddNode()
{
 var node=TreeView1.createTreeNode();
 node.setAttribute("Text","hgknight");
 TreeView1.add(node);    
}

6.js遍曆所有節點
 var AllRootNode=new Array();
 AllRootNode=TreeView1.getChildren();
 AlertNode(AllRootNode);   

 function AlertNode(NodeArray)
 {
  if(parseInt(NodeArray.length)==0)
   return;
  else
  {
   for(i=0;i<NodeArray.length;i++)
   {
    var cNode;
    cNode=NodeArray[i];
    alert(cNode.getAttribute("Text"));
    if(parseInt(cNode.getChildren().length)!=0)
     AlertNode(cNode.getChildren());    
   }
  }
 }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.