.NET Server Controls verwenden

Bäume darstellen mit dem TreeControl

TreeControls - egal ob für Client- oder Server-Seite - sind in kommerzieller Form von Drittanbietern schon länger zu haben. Ein besonderer Fall ist da zum Beispiel der Javascript-Baum von Ansgar Federhen, der hier kostenlos zu haben ist. Das Control läuft auf dem Client in Javascript und funktioniert mit praktisch allen gängigen Browsern. Allerdings muss dazu immer eine Menge Javascript-Code ausgeliefert werden: Wen das nicht stört, der ist mit "js-menue" gut bedient.

Praktischer sind allerdings die DHTML-Behaviours von Microsoft. Diese - nicht offiziell unterstützten - Controls funktionieren ebenfalls rein Client-seitig, haben aber den Vorteil, dass die Bestückung mit Daten über XML-Dateien erfolgt. Diese sind relativ einfach zu erstellen und zu warten. Der Nachteil: Diese Elemente funktionieren ausschließlich mit dem Internet Explorer und können daher bestenfalls in Intranets oder anderen kontrollierten Umgebungen verwendet werden.

Beim "TreeView Server Control" von .NET sieht die Sache besser aus. Es lässt sich einfach auf einer ASP-Seite verwenden, ohne dass man sich Gedanken über den Browser des Besuchers machen muss: Im Wesentlichen läuft die Sache dabei so ab, dass bereits beim Request des Client ermittelt wird, welchen Code er benötigt. Je nach Client wird dann unterschiedlicher Code ausgeliefert. Im besten Fall gibt es reines DHTML mit Script-Elementen. Bei älteren Browsern wird bei Bedarf auch reines HTML 3.2 ausgegeben, wodurch allerdings deutlich mehr Traffic entsteht: Öffnet der Benutzer einen Ast im Baum, so erzeugt das eine erneute Anfrage an den Server, der mit einer neuen HTML-Seite antwortet, in der der gewünschte Ast dann eben in geöffneter Form dargestellt ist.

Ähnlich wie beim DHTML-Behaviour erfolgt die Bestückung mit Daten auch beim "TreeView Server Control" per XML-Datei. Dabei können auf Wunsch auch mehrere Dateien zum Zuge kommen. Jede dieser Dateien wird XML-Island genannt und kann einen Teil des anzuzeigenden Baums enthalten. Das ist dann sehr praktisch, wenn zum Beispiel unterschiedliche Teile des Baumes von unterschiedlichen Personen verwaltet werden oder wenn ein Teil des Baumes in statischer Form vorliegt, während ein anderer dynamisch erzeugt werden muss.