首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

treeview请问,最好有实例!

2012-01-13 
treeview请教,最好有实例! 在线等!现有一个表khlb(lbbh(char),lbmc(char))表的记录如下:lbbhlbmc00根结点0

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)
{
SqlConnection myConn ;


myConn=new SqlConnection( "server=.;database=db_cqit_1;uid=sa;pwd= ' ' ");
myConn.Open();
SqlCommand Comm=new SqlCommand( "select * from tbTree ",myConn);


if(!IsPostBack)
{
TreeView1.Nodes.Clear();
SqlDataReader dr=Comm.ExecuteReader();
while(dr.Read())
{

if(dr[ "parentId "].ToString()== " ")
{
TreeNode newNode=new TreeNode();
newNode.Text = dr[ "content "].ToString();
newNode.ID = dr[ "ID "].ToString();
TreeView1.Nodes.Add(newNode);
InitTree(newNode.Nodes, dr[ "ID "].ToString());
}
}
}//根接点是NULL
myConn.Close();
// 在此处放置用户代码以初始化页面
}
private void InitTree(TreeNodeCollection Nds,string parentId)
{
SqlConnection myConn ;
myConn=new SqlConnection( "server=.;database=db_cqit_1;uid=sa;pwd= ' ' ");
myConn.Open();
SqlDataAdapter da=new SqlDataAdapter( "select * from tbTree ",myConn);
DataSet ds=new DataSet();
da.Fill(ds);
myConn.Close();
DataRow[] rows;
rows=ds.Tables[0].Select( "parentId= ' "+parentId+ " ' ");
TreeNode temNd;
foreach(DataRow row in rows)
{
temNd=new TreeNode();
temNd.ID=row[ "ID "].ToString();
temNd.Text=row[ "content "].ToString();
Nds.Add(temNd);
InitTree(temNd.Nodes,temNd.ID);
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.TreeView1.SelectedIndexChange += new Microsoft.Web.UI.WebControls.SelectEventHandler(this.TreeView1_SelectedIndexChange);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
TreeNode NewNode=TreeView1.GetNodeFromIndex(e.NewNode);
string strNodeId=NewNode.Text ;
Label1.Text=strNodeId;

}


}
}

[解决办法]
IDcontentparentId isLeaf
hg韩国 0
mg美国 0
zg中国 0
zg.gd广东zg 0
zg.gd.fj福建zg.gd 0
zg.gd.gz广州zg.gd 0
zg.gd.st珠海zg.gd 0
zg.gd.xg宵旰zg.hb 0
zg.hb湖北zg 0

tbTree(ID ,content,parentId,isLeaf) 表结构..
你添加一个 treeview 和一个labal 进行了 还要该下数据库连接....

热点排行