我试图从我的根目录中的一个文件夹(称为文件夹)构建文件和文件夹的树视图。Treeview在C#中不工作asp.net
我的C#代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
public class Default2: Seisan.DefaultTemplate
{
protected void Page_Load(object sender, EventArgs e){
if (!this.IsPostBack){
DirectoryInfo rootInfo = new DirectoryInfo(Server.MapPath("~/Folders/"));
this.PopulateTreeView(rootInfo, null);
}
}
private void PopulateTreeView(DirectoryInfo dirInfo, TreeNode treeNode)
{
foreach (DirectoryInfo directory in dirInfo.GetDirectories())
{
TreeNode directoryNode = new TreeNode(directory.Name, directory.FullName);
if (treeNode == null)
{
TreeView.Nodes.Add(directoryNode);
}
else
{
treeNode.ChildNodes.Add(directoryNode);
}
//Get all files in the Directory.
foreach (FileInfo file in directory.GetFiles())
{
TreeNode fileNode = new TreeNode(file.Name, file.FullName, "_blank", (new Uri(Server.MapPath("~/"))).MakeRelativeUri(new Uri(file.FullName)).ToString());
directoryNode.ChildNodes.Add(fileNode);
}
PopulateTreeView(directory, directoryNode);
}
}
和我的树视图asp.Net代码:
<asp:TreeView ID="TreeView" runat="server" 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"></NodeStyle>
<ParentNodeStyle Font-Bold="False" />
<SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px"
VerticalPadding="0px" />
</asp:TreeView>
运行时,我得到这个错误:
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0120: An object reference is required for the non-static field, method, or property 'System.Web.UI.WebControls.TreeView.Nodes.get'
Source Error:
Line 43: {
Line 44: TreeView.Nodes.Add(directoryNode);
Line 45: }
Line 46: else
虽然Treeview是在asp.Net窗体中声明的。我不知道这里有什么问题。任何帮助是极大的赞赏。由于
您需要创建一个根节点并开始向其添加节点。 44行没有任何意义。 – Vlad
第44行应将根节点添加到TreeView。然后出现子节点的else语句。 –
您的代码中的TreeView是类的名称,而不是您的TreeView实例的名称。不好的选择来命名你的treeview控件。叫它MyTreeView什么的。 – Vlad