【问题标题】:Display Folders and Files in ListView在 ListView 中显示文件夹和文件
【发布时间】:2016-09-12 07:50:52
【问题描述】:

我在 Windows 窗体应用程序中创建了一个函数,允许用户在 ListView 中查看文件夹结构 (TreeForm) 和文件夹中的文件。现在,我需要为 WebForm 应用程序创建相同的函数。我尝试使用相同的代码,但发现 asp.net webform 控件不包含与 winform 相同的属性。以下是我无法确定如何转换的部分代码,以便可以在 Web 表单页面上使用。有谁现在如何转换以下代码以便它可以与 asp.net 网络表单一起使用?任何帮助将不胜感激。

    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {

        ListView1.Items.Clear();
        ListViewItem.ListViewSubItem[] subItems;
        List<string> permittedFoldersFiles = new List<string>();

        if (permittedFoldersFiles.Contains(dir.Name))
        {
            item = new ListViewItem(dir.Name, 0);
            subItems = new ListViewItem.ListViewSubItem[]
                    {new ListViewItem.ListViewSubItem(item, "Directory"), 
                    new ListViewItem.ListViewSubItem(item, 
                    dir.LastAccessTime.ToShortDateString())};
            item.SubItems.AddRange(subItems);
            listView1.Items.Add(item);
        }
    }

【问题讨论】:

    标签: c# asp.net listview webforms treeview


    【解决方案1】:

    尝试使用这个示例,效果很好

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!this.IsPostBack)
                {
                    DirectoryInfo rootInfo = new DirectoryInfo(Server.MapPath("~/MyFolder/"));
                    this.PopulateTreeView(rootInfo, null);
                }
            }
    
            private void PopulateTreeView(DirectoryInfo dirInfo, TreeNode treeNode)
            {
                foreach (DirectoryInfo directory in dirInfo.GetDirectories())
                {
                    TreeNode directoryNode = new TreeNode
                    {
                        Text = directory.Name,
                        Value = directory.FullName
                    };
    
                    if (treeNode == null)
                    {
                        //If Root Node, add to TreeView.
                        TreeView1.Nodes.Add(directoryNode);
                    }
                    else
                    {
                        //If Child Node, add to Parent Node.
                        treeNode.ChildNodes.Add(directoryNode);
                    }
    
                    //Get all files in the Directory.
                    foreach (FileInfo file in directory.GetFiles())
                    {
                        //Add each file as Child Node.
                        TreeNode fileNode = new TreeNode
                        {
                            Text = file.Name,
                            Value = file.FullName,
                            Target = "_blank",
                            NavigateUrl = (new Uri(Server.MapPath("~/"))).MakeRelativeUri(new Uri(file.FullName)).ToString()
                        };
                        directoryNode.ChildNodes.Add(fileNode);
                    }
    
                    PopulateTreeView(directory, directoryNode);
                }
            }
    

    【讨论】:

    • 您的回答提供了构建asp.net文件浏览器树形视图的基本概念,感谢您的宝贵时间!
    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 2013-08-12
    • 2017-10-08
    • 2017-05-17
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多