Hallo.
Ich möchte gerne eine Treeview zur Laufzeit dynamisch aufbauen.
Also die eizelnen Child-Nodes einer Node erst dann laden, wenn diese aufgeklappt wird. Wie es z.B. in diesem Beispiel gemacht wird: http://www.mathertel.de/AJAXEngine/S.../TreeView.aspx
Das klappt so weit auch ganz gut. Nun braucht es aber einige Zeit, bis so ein Ast nachgeladen wurde. Damit der User nun nicht denkt, dass nix passiert, soll ein "loading" unter der node erscheinen oder ein animiertes Gif als Icon vor der Node erscheinen. Und genau dort hapert es, ich weis leider nicht, wie ich nach dem Klicken auf die Node dieses "loading" bzw. das Icon darstellen kann.
Würde mich freuen, wenn mir einer von euch da weiter helfen könnte.
Bisher sieht meine Testseite so aus:
ASPX:
Codebehind:
Ich möchte gerne eine Treeview zur Laufzeit dynamisch aufbauen.
Also die eizelnen Child-Nodes einer Node erst dann laden, wenn diese aufgeklappt wird. Wie es z.B. in diesem Beispiel gemacht wird: http://www.mathertel.de/AJAXEngine/S.../TreeView.aspx
Das klappt so weit auch ganz gut. Nun braucht es aber einige Zeit, bis so ein Ast nachgeladen wurde. Damit der User nun nicht denkt, dass nix passiert, soll ein "loading" unter der node erscheinen oder ein animiertes Gif als Icon vor der Node erscheinen. Und genau dort hapert es, ich weis leider nicht, wie ich nach dem Klicken auf die Node dieses "loading" bzw. das Icon darstellen kann.
Würde mich freuen, wenn mir einer von euch da weiter helfen könnte.
Bisher sieht meine Testseite so aus:
ASPX:
Code:
<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Unbenannte Seite</title> <script type="text/javascript"> function nodeClickedFkt() { } </script> </head> <body> <form id="form1" runat="server"> <div> <!-- ExpandImageUrl="Images/closed.gif" CollapseImageUrl="Images/open.gif" --> <asp:TreeView Runat="Server" ID="MyTreeview" ExpandDepth="0"> <Nodes> <asp:TreeNode Text="Konzern" PopulateOnDemand="True" Value="0"/> </Nodes> </asp:TreeView> </div> </form> </body> </html>
Code:
Public Partial Class TreeviewTest Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load MyTreeview.Attributes.Add("OnClick", "nodeClickedFkt();") End Sub Sub node_Populate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles MyTreeview.TreeNodePopulate If (e.Node.ChildNodes.Count = 0) Then If (e.Node.Depth = 0) Then FillAuthors(e.Node) ElseIf (e.Node.Depth = 1) Then FillTitlesForAuthors(e.Node) End If End If End Sub Sub FillAuthors(ByVal node As TreeNode) Dim i As Integer = 0 For i = 0 To 100 Dim newNode As New TreeNode("Author: " + i.ToString(), "Author: " + i.ToString()) newNode.PopulateOnDemand = True newNode.SelectAction = TreeNodeSelectAction.Expand node.ChildNodes.Add(newNode) Next End Sub Sub FillTitlesForAuthors(ByVal node As TreeNode) Dim i As Integer = 0 For i = 0 To 10000 Dim newNode As New TreeNode("Title: " + i.ToString(), "Title: " + i.ToString()) newNode.PopulateOnDemand = False newNode.SelectAction = TreeNodeSelectAction.None node.ChildNodes.Add(newNode) Next End Sub End Class