Treeview

01/02/2009 - 02:41 von Peter Haider | Report spam
Hallo,

ich suche ein Programmierbeispiel in Visual basic, wo ich ein ASP - Treeview
direkt aus der Datenbank fülle.
Die Tabelle besteht aus 3 Feldern und hat eine Hierarchie -> 1. Feld
CategoryID, 2. Feld Description, 3.Feld Parent Category
Den Inhalt zu dieser Tabelle erhalte ich via Webservice als Dataset.

Muss ich das Dataset in ein XML mittels XSL umwandeln, oder gibt es da einen
direkten Weg?
Mit Googeln bin ich leider nicht wirklich schlauer geworden (vielleicht auch
nur falsch gesucht).

Hat jemand ein Sample oder Links zu Beispielen?

Danke im voraus

Peter
 

Lesen sie die antworten

#1 Lutz Elßner
01/02/2009 - 11:32 | Warnen spam

ich suche ein Programmierbeispiel in Visual basic, wo ich ein ASP - Treeview direkt aus der Datenbank fülle.
Die Tabelle besteht aus 3 Feldern und hat eine Hierarchie -> 1. Feld CategoryID, 2. Feld Description, 3.Feld Parent Category
Den Inhalt zu dieser Tabelle erhalte ich via Webservice als Dataset.



Für ein TreeView hast du wahrscheinlich mehrere Tabellen, die über Relations verbunden sind.

Sollen alle Ebenen beim laden der aspx Seite schon geladen werden, oder erst beim draufklicken per javascript?
Dafür ist die Eigenschaft ExpandDepth zustàndig.

Für den dynamischen javascript Fall brauchst du keinen Webservice, den erzeugt das TreeView Control implizit selbst.
Oder holt der Webserver das DataSet von einem anderen Webserver - das wàre hier unwichtig.

Alle Nodes werden im Event OnTreeNodePopulate erzeugt. Dabei ist es völlig egal, ob diese statisch oder dynamisch gebraucht werden.
Du holst einfach die richtigen Daten aus dem DataSet und machst Nodes draus.

ein Beispiel: www.ferienlager.info


<asp:TreeView ID="TreeView1" runat="server" OnTreeNodePopulate="tv1.Monate_TreeNodePopulate" ExpandDepth="1">
<Nodes>
<asp:TreeNode Text="<b>Ferienlager Termine</b>" PopulateOnDemand="True" Value="1"
SelectAction="None"></asp:TreeNode>
<asp:TreeNode Text="<b>Klassenfahrten Termine</b>" PopulateOnDemand="True" Value="2"
SelectAction="None"></asp:TreeNode>
</Nodes>
</asp:TreeView>


Shared Sub Monate_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs)
Try
Dim lCom As SqlCommand
Select Case e.Node.Depth
Case 0
lCom = New SqlCommand("x0Monate")
lCom.Parameters.AddWithValue("@k", e.Node.Value)
exec(e.Node.ChildNodes, lCom, True, False, Nothing)
Case 1
lCom = New SqlCommand("x1MTermine")
lCom.Parameters.AddWithValue("@m", e.Node.Value.Split(":"c)(1))
lCom.Parameters.AddWithValue("@k", e.Node.Value.Split(":"c)(0))
exec(e.Node.ChildNodes, lCom, True, False, Nothing)
Case 2
lCom = New SqlCommand("x2Programme")
lCom.Parameters.AddWithValue("@t", e.Node.Value)
exec(e.Node.ChildNodes, lCom, True, True, cLink)
Case 3
If Not e.Node.Value = "0" Then
lCom = New SqlCommand("x3Preise")
lCom.Parameters.AddWithValue("@t", e.Node.Value)
exec(e.Node.ChildNodes, lCom, True, True, Nothing)
End If
End Select
Catch ex As Exception
System.Diagnostics.EventLog.WriteEntry("Application", ex.ToString)
Throw
End Try
End Sub


Lutz

Ähnliche fragen