日期:2014-05-19  浏览次数:20435 次

treeview请教,最好有实例! 在线等!
现有一个表khlb(lbbh(char),lbmc(char))
表的记录如下:
lbbh               lbmc
00                   根结点
01                   A
02                   B
0101               A1  
0201               B1
0202               B2
020101           B11
想用Treeview来怎么实现.

------解决方案--------------------
把数据放到DataTable中:
DataTable dt=new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn( "id ",typeof(Int32)));//说明DataTable表里的包含哪些字段
  dt.Columns.Add(new DataColumn( "name ",typeof(string)));
  dt.Columns.Add(new DataColumn( "url ",typeof(string)));
dt.Columns.Add(new DataColumn( "ParentId ",typeof(Int32)));

SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings[ "pic "]);
conn.Open();
string sql= "Select * from tb_class order by datetime desc ";
  SqlCommand Cmd=new SqlCommand(sql,conn);
  SqlDataReader reader=Cmd.ExecuteReader();
while (reader.Read())
{
dr=dt.NewRow();//用DataTable的NewRow方法新建一个DataRow对象的实例dr
  dr[0]=reader[ "id "];//数据库中的id字段填入这一行的第一列
   dr[1]=reader[ "name "].ToString();//数据库中的name字段填入这一行的第二列
   dr[2]= "http://www.163.com ";
dr[3]=reader[ "ParentId "];
   dt.Rows.Add(dr);//把这一行插入到到表格dt中
}
Response.Write( "ok ");

this.AddNodes(dt,null, "0 "); //添加节点
//Response.End();
this.TreeView1.SelectedNodeIndex= " "; //不选中任何节点。
reader.Close();

把DataTablet进站TreeView:
private void AddNodes(DataTable dt,TreeNode node,string ParentId)

{

DataRow[] rows = dt.Select( "ParentId= "+ParentId); //筛选出属于父节点 “node”的子节点集合
foreach(DataRow dr in rows) //循环子节点集合
{
TreeNode nd =new TreeNode();
nd.NavigateUrl=dr[ "url "].ToString(); //设置浏览的网址
nd.NodeData=dr[ "id "].ToString(); //存放节点 ID
nd.Text=dr[ "name "].ToString(); //设置节点名称

if(node==null || ParentId== "0 ")
{
this.TreeView1.Nodes.Add(nd); //添加至根节点
}
else
{
node.Nodes.Add(nd); //添加子节点
}
this.AddNodes(dt,nd,nd.NodeData); //递归,添加该节点的子节点
}//foreach(DataRow dr in rows)
}//private void AddNodes(DataTable dt,TreeNode node,string id)
------解决方案--------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.Web.UI.WebControls;
using System.Data.SqlClient;
namespace treeview
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;

private void Page_Load(object sender, System.EventArgs e)
{