Announcement

Collapse
No announcement yet.

Eigener SitemapProvider zeigt nur die Wurzel an

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

  • Eigener SitemapProvider zeigt nur die Wurzel an

    Hallo,

    ich habe meinen eigenen SiteMap Provider geschrieben der die Daten aus Access holt.

    Leider zeigt die TreeView die auf diesen Provider geht nur die Root an. alle anderen werden zwar korrekt ausgelesen aber nicht angezeigt...

    Wäre klasse wenn mir jemand sagen könnte warum!

    Hier der Code:
    Code:
    Dim rootNodeId As Integer = 0
    
    If accessConnection.State = ConnectionState.Closed Then
    
    accessConnection.Open()
    
    End If
    
    Dim rootNodeCommand As New OleDbCommand("SELECT S_ID, S_Path, S_Title FROM T_Sites WHERE S_Parent = 0", accessConnection)
    
    Dim rootNodeReader As OleDbDataReader = rootNodeCommand.ExecuteReader()
    
    If rootNodeReader.HasRows Then
    
    rootNodeReader.Read()
    
    rootNodeId = rootNodeReader.GetInt32(0)
    
    Dim tmpID As Integer = rootNodeID
    
    ' Create a SiteMapNode that references the current StaticSiteMapProvider.
    
    aRootNode = New SiteMapNode(Me, rootNodeId.ToString(), rootNodeReader.GetString(1), rootNodeReader.GetString(2))
    
    Else
    
    Return Nothing
    
    End If
    
    rootNodeReader.Close()
    
    PopulateChildNode(rootNodeId, RootNode)
    
    ' Select the child nodes of the root node.
    
    accessConnection.Close()
    
    End If
    
    Return aRootNode
    
    End SyncLock
    
    End Function 'BuildSiteMap
    
    Protected Sub PopulateChildNode(ByVal ParentID As Integer, ByRef Parentnode As SiteMapNode)
    
    If accessConnection.State = ConnectionState.Closed Then
    
    accessConnection.Open()
    
    End If
    
    Dim NodeCommand As New OleDbCommand("SELECT S_ID, S_Path, S_Title FROM T_Sites WHERE S_Parent = ?", accessConnection)
    
    Dim NodeParam As New OleDbParameter("S_Parent", OleDbType.Integer)
    
    NodeParam.Value = ParentID
    
    NodeCommand.Parameters.Add(NodeParam)
    
    Dim NodeReader As OleDbDataReader = NodeCommand.ExecuteReader()
    
    If NodeReader.HasRows Then
    
    While NodeReader.Read
    
    Dim ChildNode As SiteMapNode = Nothing
    
    Dim NodeID As Integer
    
    NodeID = NodeReader.GetInt32(0)
    
    Dim a As String = NodeID.ToString()
    
    Dim b As String = ""
    
    If Not NodeReader.IsDBNull(1) Then
    
    b = NodeReader.GetString(1)
    
    End If
    
    'Dim b As String = NodeReader.GetString(1)
    
    Dim c As String = NodeReader.GetString(2)
    
    ChildNode = New SiteMapNode(Me, a, b, c)
    
    AddNode(ChildNode, Parentnode)
    
    PopulateChildNode(NodeID, ChildNode)
    
    End While
    
    NodeReader.Close()
    
    ' Create a SiteMapNode that references the current StaticSiteMapProvider.
    
    Else
    
    'Return Nothing
    
    End If
    
    End Sub
Working...
X