Visualizzazione dei risultati da 1 a 2 su 2

Discussione: treenode

  1. #1

    treenode

    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.

    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
    Grazie mille.

    Luciano

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    305
    Ho avuto anch'io lo stesso problema tempo fā, ma non sono riuscito a risolverlo.


    .... mi sā che non c'č soluzione .


    Vincenzo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.