Ho realizzato il seguente codice per esplorare un file system.
Funziona correttamente e le sottodirectory si aprono cliccando sulla cartella a sinistra del testo.
Vorrei che l'apertura delle sottodirectory avvenga anche cliccando sul testo del nodo.
Ho provato a vedere le proprietā del Treenode ma non sono riuscito a trovarne nessuna che possa soddisfare la mia esigenza.
Grazie mille.codice:Imports System Imports System.IO Partial Class ProgrammazioneStrategica Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then Dim directory As String = "Programmazione Strategica" Dim percorso = Request.PhysicalApplicationPath() & "MenuDinamico\" & directory Dim NewNode As TreeNode = New TreeNode(directory) TreeView1.Nodes.Add(NewNode) ottieniSottoCartelle(percorso, TreeView1.Nodes(0)) ottieniFiles(percorso, TreeView1.Nodes(0), 0) End If End Sub Public Sub ottieniSottoCartelle(ByVal path As String, ByVal node As TreeNode) Dim cartelle() As String = Directory.GetDirectories(path) If cartelle.Length <> 0 Then ' per ogni sottocartella, aggiungi al TreeView e chiama ricorsivamente te stesso Dim cartella As String For Each cartella In cartelle ' aggiungi il path relativo al TreeView Dim cartella_da_inserire As String cartella_da_inserire = cartella.Substring(cartella.LastIndexOf("\") + 1) Dim NewNode As TreeNode = New TreeNode(Mid(cartella_da_inserire, 4, Len(cartella_da_inserire))) node.ChildNodes.Add(NewNode) ' trova le sue sottocartelle ottieniSottoCartelle(cartella, NewNode) ' trova i file ottieniFiles(cartella, NewNode, 1) ' chiudi il nodo corrente NewNode.CollapseAll() Next End If End Sub Public Sub ottieniFiles(ByVal path As String, ByVal node As TreeNode, ByVal i As Integer) Dim files() As String = Directory.GetFiles(path) If files.Length = 0 And node.ChildNodes.Count = 0 Then Dim NewNode As TreeNode = New TreeNode("Directory is empty") node.ChildNodes.Add(NewNode) Else Dim file As String Dim nome_file As String For Each file In files ' aggiungi il file al TreeView Dim file_da_inserire As String file_da_inserire = file.Substring(path.Length + i) Dim estensione As String = Mid(file_da_inserire, Len(file_da_inserire) - 2, 3) nome_file = Mid(file_da_inserire, 10, Len(file_da_inserire) - 13) Dim NewNode As TreeNode = New TreeNode(nome_file) NewNode.ImageUrl = "Immagini/doc.gif" If (estensione = "txt") Then 'pagina ASP NewNode.Target = "_self" nome_file = nome_file + ".aspx" Else NewNode.Target = "_blank" 'documento PDF nome_file = path + "\" + file_da_inserire End If NewNode.NavigateUrl = "documento.aspx?nome_file=" + nome_file node.ChildNodes.Add(NewNode) Next End If End Sub End Class
Luciano

Rispondi quotando