2009-04-02 5 views
2

J'ai une table d'en-tête contenant une liste de pages Web. Chaque enregistrement a un champ URL de page que je cherche à analyser dans une hiérarchie (TreeView). Je ne suis pas sûr de la meilleure façon d'y arriver et j'ai un problème pour le faire fonctionner.Analyser les chaînes d'URL dans la hiérarchie d'arborescence

Voici un exemple de URLS:

/file1.aspx 
/file2.aspx 
/aFolder/file.aspx 
/aFolder/file2.aspx 
/bfolder/file.aspx 
/bFolder/cFolder/file.aspx 

Je veux mettre ce type d'une liste dans un style explorateur de fichiers TreeView que vous pouvez développer les dossiers, puis sélectionnez le fichier à la fin.

Quelque chose comme

--Root 
    | 
    +-aFolder 
    | - aFolderFile1.aspx 
    | - aFolderFile2.aspx 
    +-bFolder 
     +-cFolder 
     | -cFolderFile1.aspx 
     -bFolderFile1.aspx 

Les données réelles a évidemment plus sous-dossiers et fichiers dans chacun. Ce que je cherche, c'est du code, que ce soit .NET ou SQL pour analyser mes chaînes. J'ai essayé d'employer un peu de SQL qui a employé WITH et UNION ALL mais je ne peux juste pas l'obtenir pour travailler pour moi. Pour le lier à TreeView, la source de données doit avoir un champ parent afin de relier les nœuds. Ainsi, par exemple, le parent pour le fichier cFolderFile1.aspx est cFolder et le cFolder a un parent de bFolder, et ainsi de suite ....

J'espère avoir inclus suffisamment d'informations. Si non, s'il vous plaît faites le moi savoir et je vais modifier le poste.

Répondre

0

Merci pour tout le monde des suggestions. Aucun des liens ne semblait être exactement ce que je cherchais donc j'ai fini par mettre quelque chose ensemble.

Il y a beaucoup de code, mais en général, j'ai lu la liste des URLs dans une liste générique avec quelques propriétés supplémentaires et utilisé quelques instructions regex pour analyser le chemin. Parce que la liste des URLs n'avait aucune sorte d'ID parent/enfant, j'ai utilisé la fonction FIND et j'ai obtenu les pièces dont j'avais besoin.

0

Je suis sûr que vous pouvez lier un SqlDataSource directement à l'arborescence .NET. Voici deux forums qui couvrent que:

Building a Treeview From a SqlDataSource

Dynamic treeview

+0

Merci pour les liens. Je ne pense pas que cela fonctionnera parce qu'ils traitent principalement des dossiers physiques, mais les miens sont répertoriés dans une base de données. Dans ce cas, je n'ai pas de parentID/childID que je peux utiliser pour relier les enregistrements - juste l'URL complète dans une chaîne. – hacker

Questions connexes