2013-10-31 52 views
0

我已經使用樹視圖ImageSet =「XPFileExplorer」我已經創建了一個循環來填充一組目錄到TreeNodes,進入樹視圖節點treenodecollection。這工作,並給我一個樹狀圖,表示目錄的層次結構。但是,圖標都是錯誤的。一些是計算機圖標,一些是文本文件圖標,一些是文件夾圖標。我的問題是如何讓他們都成爲文件夾圖標。我看到有一種方法可以在TreeNodes上設置ImageUrl,但我不想構建自己的圖像。我更喜歡使用由提供的圖像ImageSet =「XPFileExplorer」這裏是asp和我用於製作節點的方法。asp:樹視圖與XPFileExplorer設置圖像

<asp:TreeView ID="TreeViewfilelist" runat="server" 
      onload="TreeViewfilelist_Load" ImageSet="XPFileExplorer" 
     NodeIndent="15"> 
      <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" /> 
      <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="Black" 
       HorizontalPadding="2px" NodeSpacing="0px" VerticalPadding="2px" /> 
      <ParentNodeStyle Font-Bold="False" /> 
      <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" 
       HorizontalPadding="0px" VerticalPadding="0px" /> 
</asp:TreeView> 

呼叫的onload

TreeNodeCollection main = TreeViewfilelist.Nodes; 
makemainNodes(main, dir); 

方法:

protected void makemainNodes(TreeNodeCollection treec, System.IO.DirectoryInfo directory) 
    { 
     foreach (System.IO.DirectoryInfo g in directory.GetDirectories()) 
     {    
      TreeNode child = new TreeNode(g.Name);     
      System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(g.FullName); 
      makesubNodes(child, dir); 
      treec.Add(child); 
     } 
    } 
protected void makesubNodes(TreeNode treec, System.IO.DirectoryInfo directory) 
    { 
     foreach (System.IO.DirectoryInfo g in directory.GetDirectories()) 
     {    
      TreeNode child = new TreeNode(g.Name); 
      System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(g.FullName); 
      makesubNodes(child, dir); 
      treec.ChildNodes.Add(child); 
     } 
    } 

回答

1

我找不到任何方式改變所有的圖標文件夾使用內置ImageSet =「XPFileExplorer圖標「。相反,我創建了自己的folder.png的形象,我的項目中添加到圖像文件夾中,併爲我創建節點的樹我用

child.ImageUrl = "~/Images/folder.png"; 

在上面的例子中,

protected void makemainNodes(TreeNodeCollection treec, System.IO.DirectoryInfo directory) 
{ 
    foreach (System.IO.DirectoryInfo g in directory.GetDirectories()) 
    {    
     TreeNode child = new TreeNode(g.Name);     
     System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(g.FullName); 
     child.ImageUrl = "~/Images/folder.png";    
     makesubNodes(child, dir); 
     treec.Add(child); 
    } 
} 

protected void makesubNodes(TreeNode treec, System.IO.DirectoryInfo directory) 
{ 
    foreach (System.IO.DirectoryInfo g in directory.GetDirectories()) 
    {    
     TreeNode child = new TreeNode(g.Name); 
     System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(g.FullName); 
     child.ImageUrl = "~/Images/folder.png"; 
     makesubNodes(child, dir); 
     treec.ChildNodes.Add(child); 
    } 
}