自己对treeview这个东西不是很熟悉 现在碰上一个麻烦的问题
数据库的数据结构是这样的
crs_no crs_name
01 一年级
0101 一班
0102 二班
010101 一小组
010102 二小组
02 二年级
大概就是这样的 两位一级 可以无限加现在的问题是 像我这样的数据如何绑定treeview 或者数据库需要做什么改变
由于不太了解这个控件
所以希望大家帮帮忙
急.................
数据库的数据结构是这样的
crs_no crs_name
01 一年级
0101 一班
0102 二班
010101 一小组
010102 二小组
02 二年级
大概就是这样的 两位一级 可以无限加现在的问题是 像我这样的数据如何绑定treeview 或者数据库需要做什么改变
由于不太了解这个控件
所以希望大家帮帮忙
急.................
看看这个!
然后说: 递归,数据需要先整理下!http://www.cnblogs.com/mushroom_lb/archive/2008/08/26/1276449.html看看这个
id crs_no crs_name parentId
1 01 一年级 0
2 0101 一班 1
3 0102 二班 1
4 010101 一小组 2
5 010102 二小组 2
6 02 二年级 0
<Area>
<Province iAreaID ="1" cAreaName="北京市"/>
<Province iAreaID ="2" cAreaName="上海市"/>
<Province iAreaID ="3" cAreaName="天津市"/>
<Province iAreaID ="4" cAreaName="重庆市"/>
<Province iAreaID ="5" cAreaName="湖北省">
<City iAreaID ="51" cAreaName="武汉市"/>
<City iAreaID ="52" cAreaName="黄冈市" />
<City iAreaID ="53" cAreaName="荆州市"/>
<City iAreaID ="54" cAreaName="武穴市" />
<City iAreaID ="55" cAreaName="十堰市"/>
<City iAreaID ="56" cAreaName="黄石市" />
</Province>
<Province iAreaID ="6" cAreaName="河北省">
<City iAreaID ="61" cAreaName="石家庄市"/>
<City iAreaID ="62" cAreaName="唐山市" />
</Province>
<Province iAreaID ="7" cAreaName="山西省">
<City iAreaID ="71" cAreaName="太原市" />
<City iAreaID ="72" cAreaName="大同市" />
</Province>
</Area>
--------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Xml;
using System.Xml.XPath;
namespace BBSweb.TreeView
{
public partial class TreeView : System.Web.UI.Page
{
private XmlDocument xmlDoc;
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
MakeParentNode();
}
}
public void MakeParentNode()
{
this.treeAreaList.Nodes.Clear();
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("area.xml"));
XmlNodeList nodeList = xmlDoc.SelectSingleNode("Area").ChildNodes;//获取Area节点下的所有子结点
//定义Area结点
TreeNode topNode = new TreeNode();//定义顶级节点
topNode.Text = "area ";
// tn.Value = "-1";
topNode.Expanded = true;
treeAreaList.Nodes.Add(topNode);//添加"区域"父结点
XmlElement element = null;
TreeNode treeNode = null;
//遍历区域下的所有省和直辖市
foreach (XmlNode node in nodeList)
{
element = (XmlElement)node;
treeNode = new TreeNode();
treeNode.Text = element.GetAttribute("cAreaName");//在树控件上显示省或直辖市的名称
treeNode.Value = element.GetAttribute("iAreaID");//获取节点值
treeNode.Expanded = true;
topNode.ChildNodes.Add(treeNode);//将省或直辖市级结点添加到顶级节点中
MakeChildNode(node.ChildNodes, treeNode);//通过递归将所有子节点添加到节点集合中 }
}
protected void MakeChildNode(XmlNodeList nodeList, TreeNode treeNode)
{
XmlElement element = null;
TreeNode subTreeNode = null;
//遍历省级节点下的所有市,市辖区
foreach (XmlNode node in nodeList)
{
element = (XmlElement)node;
subTreeNode = new TreeNode();
subTreeNode.Text = element.GetAttribute("cAreaName");//在树控件上显示市或市辖区的名称
subTreeNode.Value = element.GetAttribute("iAreaID");//这里设置节点Value
subTreeNode.Expanded = true;
treeNode.ChildNodes.Add(subTreeNode);//将子结点添加到父结点下面
MakeChildNode(node.ChildNodes, subTreeNode);//递归调用本方法
}
}
protected void Tree_SelectedNodeChanged(object sender, EventArgs e)
{
//当节点变化时
Response.Write("节点的值:" + treeAreaList.SelectedNode.Value + "<br/>");
Response.Write("节点的路径:" + treeAreaList.SelectedNode.ValuePath + "<br/>");
Response.Write("节点的数据路径:" + treeAreaList.SelectedNode.DataPath + "<br/>"); }
}
}
http://developer.51cto.com/art/200909/149263.htm