Announcement

Collapse
No announcement yet.

TreeView dynamisch (ondemand)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TreeView dynamisch (ondemand)

    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:
    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>
    Codebehind:
    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
Working...
X