- 爱易网页
-
ASP.NET教程
- treeview请问,最好有实例!
日期:2014-05-19 浏览次数:20480 次
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)
{