用户操作
[即时聊天] [发私信] [加为好友]
cfyouling
最近评论
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 treeview如何使用XML文件收藏

     | 旧一篇: 公用代码放置位置

    使用treeview过程中可以进行简单的设置即可连接到XML文件,但是有时我们需要一些更细致的设置,这时简单的连接就无法达到理想的效果!我在网上找到很多相关的例子,不过都不是特别理想,后来自己写了如下代码进行详细说明:

    XTGL_MENU.XML文件内容

    <?xml version="1.0" encoding="utf-8" ?>
    <!--注意:treeview 为根结点,nodes 为父级节点,node 为子节点。-->
    <!--
    link:链接地址
    target:打开方式
    description:提示信息
    expanded:默认是否打开 false关闭  TRUE 打开
    select:选定时的动作  EXPAND 打开

    根据自己需要可以填加删除某些属性

    -->
    <treeview>
      <nodes>
        <text>根节点1</text>
        <link></link>
        <target>_self</target>
        <description></description>
        <expanded>false</expanded>
        <select>Expand</select>
        <node>
          <text>测试节点1 -1</text>
          <link>/test1.aspx</link>
          <target>MainFrame</target>
          <description></description>
        </node>
        <node>
          <text>测试节点1 - 2</text>
          <link>/test2.aspx</link>
          <target>_top</target>
          <description></description>
        </node>
      </nodes>
      <nodes>
        <text>根节点2</text>
        <link></link>
        <target>_self</target>
        <description></description>
        <node>
          <text>测试节点2 -1</text>
          <link>/test1.aspx</link>
          <target>MainFrame</target>
          <description></description>
        </node>
        <node>
          <text>测试节点2 - 2</text>
          <link>/test2.aspx</link>
          <target>_top</target>
          <description></description>
        </node>
      </nodes>
    </treeview>

    读取XML文件,读取父节点,读取子节点函数如下:

        Protected Sub CreatTreeView(ByVal XmLFileName As String, ByVal TreeViewName As System.Web.UI.WebControls.TreeView)
            Dim Document As New System.Xml.XmlDocument 'XML文件
            Document.Load(System.Web.HttpContext.Current.Server.MapPath(XmLFileName))
            Dim XmlBoot As System.Xml.XmlNode 'XML文件中的根节点
            XmlBoot = Document.DocumentElement
            If XmlBoot.Name <> "treeview" Then
                Return
            End If
            Dim I As Integer
            Dim XmlNode As System.Xml.XmlNode
            For I = 0 To XmlBoot.ChildNodes.Count() - 1
                XmlNode = XmlBoot.ChildNodes(I)
                If XmlNode.Name <> "nodes" Then
                    Return
                End If
                Response.Write(XmlNode.Name + "<br/>")
                AddNodes(XmlNode, TreeViewName)
            Next
        End Sub

        Protected Sub AddNodes(ByVal XmlNode1 As System.Xml.XmlNode, ByVal TreeViewName As System.Web.UI.WebControls.TreeView)
            If XmlNode1.Name <> "nodes" Then
                Return
            End If
            Dim Child As New System.Web.UI.WebControls.TreeNode
            Dim Node As System.Xml.XmlNode
            Dim I As Integer
            For I = 0 To XmlNode1.ChildNodes.Count() - 1
                Node = XmlNode1.ChildNodes(I)
                Response.Write(Node.Name + Str(I) + Node.InnerText + "<br/>")
                Select Case Node.Name
                    Case "text"
                        Child.Text = Node.InnerText
                    Case "link"
                        Child.NavigateUrl = Node.InnerText
                    Case "expanded"
                        If Node.InnerText = "false" Then
                            Child.Expanded = False
                        Else
                            Child.Expanded = True
                        End If
                    Case "select"
                        If Node.InnerText = "Expand" Then
                            Child.SelectAction = TreeNodeSelectAction.Expand
                        End If
                    Case "node"
                        AddNode(Node, TreeViewName, Child)
                End Select
            Next
            TreeViewName.Nodes.Add(Child)
        End Sub

        Protected Sub AddNode(ByVal Node As System.Xml.XmlNode, ByVal TreeViewName As System.Web.UI.WebControls.TreeView, ByVal BootNode As System.Web.UI.WebControls.TreeNode)
            Dim Child1 As New System.Web.UI.WebControls.TreeNode
            Dim Node1 As System.Xml.XmlNode
            Dim J As Integer
            For J = 0 To Node.ChildNodes.Count() - 1
                Node1 = Node.ChildNodes(J)
                Response.Write(Node1.Name + Str(J) + "<br/>")
                Select Case Node1.Name
                    Case "text"
                        Child1.Text = Node1.InnerText
                    Case "link"
                        Child1.NavigateUrl = Node1.InnerText
                End Select
            Next
            BootNode.ChildNodes.Add(Child1)
        End Sub

    没有进行更深的嵌套测试,如果大家有兴趣可以自己修改实验一下!

    发表于 @ 2006年09月28日 10:24:00|评论(loading...)|编辑

     | 旧一篇: 公用代码放置位置

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © cfyouling