很长的路

没nike鞋

导航

求助:如何treeview与xml的绑定实现无级树;

tree.xml代码:
<?xml version="1.0" encoding="utf-8" ?> 
<TREENODES>
    <TREENODE text="aaaaaaaa" CheckBox="true"></TREENODE>
    <TREENODE text="bbbbbbbb" CheckBox="true"></TREENODE>
    <TREENODE text="cccccccccc" EXPANDED="true" CheckBox="true">
        <TREENODE text="ddddddddd" CheckBox="true"></TREENODE>
        <TREENODE text="eeeeeeeee" CheckBox="true"></TREENODE>
    </TREENODE>
    <TREENODE text="fffffffffffff" CheckBox="true"></TREENODE>
</TREENODES>

tree.aspx代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using Microsoft.Web.UI.WebControls;


public partial class DesktopModules_LeftTree : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Microsoft.Web.UI.WebControls.TreeNode rootnode = new Microsoft.Web.UI.WebControls.TreeNode();
        rootnode.Expanded = true;
        TreeView2.Nodes.Add(rootnode);
        CreateTree(0, rootnode);
    }
    private void CreateXml(XmlDocument objXMLDoc, XmlElement objRootElem, int belong)
    {
        //GET DATASET
        DataSet ds = new DataSet();------这里的DataSet具体获取方法(如何编写程序?)

       
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            //create childNode
            XmlElement objXMLElem = objXMLDoc.CreateElement("TREENODE");
            objRootElem.AppendChild(objXMLElem);

            //create childNode treeNode
            XmlAttribute objXmlAttText = objXMLDoc.CreateAttribute("Text");
            objXmlAttText.Value = dr["treeTitle"].ToString().Trim();
            objXMLElem.SetAttributeNode(objXmlAttText);

            //create attribute Checkbox
            XmlAttribute objXmlAttCB = objXMLDoc.CreateAttribute("CheckBox");
            objXmlAttCB.Value = "true";

            int id = int.Parse(dr["treeID"].ToString().Trim());
            CreateXml(objXMLDoc, objXMLElem, id);

        }
    }

    private void BindXmlTree()
    {
        //Create Xml File
        XmlDocument objXmlDoc = new XmlDocument();

        //Insert Xml Declaration
        XmlDeclaration objXmlDeclare = objXmlDoc.CreateXmlDeclaration("1.0", "UTF-8", "yes");
        objXmlDoc.InsertBefore(objXmlDeclare, objXmlDoc.DocumentElement);

        XmlElement objRootElem = objXmlDoc.CreateElement("TREENODES");
        objXmlDoc.AppendChild(objRootElem);

        CreateXml(objXmlDoc, objRootElem, 0);

        //objXmlDoc.Save("office.xml");
        TreeView2.TreeNodeSrc = "office.xml";
    }
    private void CreateTree(int belong, Microsoft.Web.UI.WebControls.TreeNode rootnode)
    {
        DataSet ds = new DataSet();
      
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            Microsoft.Web.UI.WebControls.TreeNode treenode = new Microsoft.Web.UI.WebControls.TreeNode();
            treenode.Text = dr["treeTitle"].ToString().Trim();
            treenode.CheckBox = true;
            treenode.Expanded = true;
            rootnode.Nodes.Add(treenode);

            int id = int.Parse(dr["treeID"].ToString().Trim());
            CreateTree(id, treenode);
        }
    }
   
}

数据库里的数据格式是这样的
-----------------------------------------
treeID            treeTitle               treebelong
1                    aaaa                    0
2                    bbbb                   0
3                    cccc                    0
4                    dddd                    1
5                    eeee                    2
6                    ffff                        4

posted on 2007-04-11 16:53  陈志华  阅读(455)  评论(0)    收藏  举报