Я хочу отобразить корневые узлы древовидного представления в 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.Способ Коллапсировал ()