各位大吓,如何把XML(或SPDL)串作为Treeview的数据源?可以直接绑定吗?如果不可以,是不是要遍历XML串来绑定?有没有相关例子啊?

解决方案 »

  1.   

    你可以用dataset来读取xml阿,然后就跟普通的dataset绑定treeview一样咯
    可能还有别的方法
      

  2.   

    就楼上说的啊DataSet ds = ReadXml(路径);然后跟操作一般的dataset一样
      

  3.   

    "然后就跟普通的dataset绑定treeview一样咯"
    这句不是很不明白,怎么绑定到treeview上去?
      

  4.   

    使用treeview中的treenodesrc="*.xml",就可以将xml文件绑定到treeview控件中,不过这个xml文件一定要符合格式:即
    <treenodes>
    <treenode text="第一个节点"/>
    <treenode text="第二个节点"/>
    </treenodes>
    一定要<treenodes>
      

  5.   

    用XML做数据源跟其他的数据库是一样的,给你个具体的例子:  '开始把树加载进来
        Public Function BinderTreeview(ByVal Tree As TreeView)
            Dim userXmlDocument As New XmlDocument
            Dim DocumentElement As XmlElement
            Dim xmlPath As String = ConfigurationSettings.AppSettings("menxml")
            Dim _XmlTreePath As String = ConfigurationSettings.AppSettings("SystemPath") + xmlPath
            userXmlDocument.Load(_XmlTreePath)
            DocumentElement = userXmlDocument.DocumentElement        If DocumentElement Is Nothing Then '如果根节点为空,就是XML文件是空的,没有数据,退出循环
                Exit Function
            End If
            If DocumentElement.HasChildNodes Then '判断是否有子节点,如果有的话,继续循环
                Dim theTreeNode As New TreeNode
                theTreeNode.Text = DocumentElement.FirstChild.Attributes("Text").Value '加载第一个节点下的子节点,给Text付值            'If Not DocumentElement.FirstChild.Attributes("imageurl") Is Nothing Then
                '    If DocumentElement.FirstChild.Attributes("imageurl").Value <> "" Then
                '        theTreeNode.ImageUrl = DocumentElement.FirstChild.Attributes("imageurl").Value
                '    End If
                'End If            theTreeNode.Expanded = True
                Tree.Nodes.Add(theTreeNode)
                For Each node As XmlNode In DocumentElement.FirstChild.ChildNodes '用方法AddTreeNode开始循环子节点
                    AddTreeNodemain(theTreeNode, node)
                Next
            End If
        End Function
        '如果有子节点,一直循环下去 
        Private Function AddTreeNodemain(ByVal perTreeNode As TreeNode, ByVal perXmlNode As XmlNode)
            '************************************
            '  AddTreeNode(perTreeNode, perXmlNode)
            Dim pTreeNode As New TreeNode '先定义一个树的新节点
            pTreeNode.Text = perXmlNode.Attributes("Text").Value '给Text付值        'If Not perXmlNode.Attributes("imageurl") Is Nothing Then
            '    pTreeNode.ImageUrl = perXmlNode.Attributes("imageurl").Value
            'End If        If Not perXmlNode.Attributes("navigateurl") Is Nothing Then '给NavigateUrl付值,并加载进去
                pTreeNode.NavigateUrl = perXmlNode.Attributes("navigateurl").Value
            End If        pTreeNode.Target = perXmlNode.Attributes("Target").Value
            perTreeNode.Nodes.Add(pTreeNode)        If perXmlNode.HasChildNodes Then '如果还有子节点的话,继续循环下去,直到最后一个节点
                For Each node As XmlNode In perXmlNode.ChildNodes
                    AddTreeNodemain(pTreeNode, node)
                Next
            End If
        End Function