求助:如何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
浙公网安备 33010602011771号