paul_vin Ответов: 1

Я хочу отобразить корневые узлы древовидного представления в ASP .NET page load, а затем после каждого щелчка по узлу он будет отображать данные этого узла.


I want to display root nodes of tree view in asp .net page load and then after for each node click it will display data of that node.

Когда я нажимаю на первый корень, он будет отображать только первые корневые данные.
теперь, когда я нажимаю второй корневой узел, он будет отображать вторые корневые данные, скрывающие первые корневые данные, которые я ранее нажимал.

Кроме того какой бы корневой узел я ни выбрал я хочу отобразить все детали файлов в gridview
то есть имя файла, дата создания ,размер пути к файлу и т. д.

Также требуется отобразить выбранные данные файла в текстовом редакторе.

Что я уже пробовал:

Код Aspx выглядит следующим образом
    <div>
       <h3>
    Vehicle Details</h3>
<hr>
<asp:TreeView ID="TreeView1" runat="server" ImageSet="XPFileExplorer" NodeIndent="15" OnTreeNodeExpanded="TreeView1_TreeNodeExpanded">
    <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" />


        <hr>
        <asp:GridView ID="GridView1" runat="server">
    </div>


Код файла Aspx.cs выглядит следующим образом

public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                DirectoryInfo rootInfo = new DirectoryInfo(Server.MapPath("~/Vehicles/"));
                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);
            }
        }

       

        protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
        {
            GetFilesAndFolders();
            //if (e.Node.Parent == null)
            //    return;
            //string strNodeValue = e.Node.Value;
            //foreach (TreeNode node in e.Node.Parent.ChildNodes)
            //{
            //    if (node.Value != strNodeValue)
            //        node.Collapse();
            //}
        }

        public void GetFilesAndFolders()
        {
            DirectoryInfo dirInfo = new DirectoryInfo(Server.MapPath("~/Vehicles"));
            FileInfo[] fileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
            GridView1.DataSource = fileInfo;
            GridView1.DataBind();
        }
    }


Он отображает все корневые узлы и все их дочерние узлы при загрузке страницы. Вместо этого я хочу отобразить только все корневые узлы.
кроме того он отображает все файлы детали всех дочерних всех корневых на сетке вместо этого я хочу только выбранные корневые дочерние файлы

Sibasisjena

После заполнения treeview вы можете использовать TreeNode.Способ Коллапсировал ()

1 Ответов

Рейтинг:
2

Sibasisjena

Пожалуйста, ознакомьтесь с решением, приведенным ниже по ссылке. Надеюсь, это вам поможет.
Свернуть все остальные узлы в TreeView при выборе одного узла[^]