数据库设计
NODEID(主键) 文本
NODENAME 文本
PRAENTID 文本
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.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
//页面初始化
protected void Page_Load(object sender, EventArgs e)
{
}
/// < summary>
/// 初始化目录树
/// < / summary>
/// < param name= 0objDataSet0 > 导航树的数据源< / param>
/// < param name= 0 parentId0> 根节点的父节点ID, - 1< / param>
/// < param name= 0Nds0 > TreeVie w 实例的结点集< / param>
private void intiTree(TreeNodeCollection TreeView1, string parentId) //
{

//数据库连接字符串
SqlConnection objConnection = new SqlConnection("server=XP-201204161236\\MSSQL2008;Initial Catalog=db_13;Integrated Security = SSPI ");
//打开数据库连接
objConnection.Open();
// 定义一个dataAdapter对象
SqlDataAdapter objAdapter = new SqlDataAdapter("select * from treeview", objConnection);
DataSet objDataSet = new DataSet();
objAdapter.Fill(objDataSet,"treeview");
DataView dv= new DataView() ;
//用于筛选 排序 搜索 编辑和导航的datatable可绑定数据的自定义视图可以将DataView同数据库的视图类比,
//不过有点不同,数据库的视图可以跨表建立视图,DataView则只能对某一个DataTable建立视图。
//DataView一般通过DataTable.DefaultView 属性来建立,再通过RowFilter 属性和RowStateFilter 属性建立这个DataTable的一个子集。
string intId;
dv.Table=objDataSet.Tables[0] ;
dv.RowFilter = "PARENTID='"+parentId +"'"; //查找以当前的所有子结点记录
for( int i= 0; i<dv. Count;i++ ) // 遍历当前的所有子结点
{
//根据当前记录信息生成一个临时结点
TreeNode tmpNd = new TreeNode();
intId = dv[i]["NODEID"].ToString() ;
tmpNd.Value= intId;
tmpNd.Text = dv[i]["NODENAME"] .ToString() ;
TreeView1.Add(tmpNd); //将该结点添加到TreeView 的结点集合中
intiTree( TreeView1[TreeView1.Count - 1].ChildNodes, intId); // 递归调用
}
}
}
还有需要改的地方的么?为什么在页面上不显示自己目录树啊?小白求解释啊