在ASP.NET中用树视图管理系统目录
当 TreeView IE Web 控件在访问者浏览器中显示时,会显示一棵树,此树与
Windows 资源管理器中的树非常类似。不同的是,TreeView 可以由任意多个 TreeNode 对象组成。每个 TreeNode 对象都可以关联文本和图像。
|
首先在数据库中建一个目录数据表lists:
字段名 | 字段类型 | 字段长度 | 备注 |
l_id | int | 4 | 目录编号 |
l_name | nvarchar | 50 | 目录名称 |
pl_id | int | 4 | 所对应的上一级目录的编号 |
url | varchar | 50 | 目录所对应的地址 |
代码:
private SqlDataAdapter da;
private SqlConnection cn;
private DataSet ds;
private SqlConnection cn;
private DataSet ds;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
cn=new SqlConnection(ConfigurationSettings.AppSettings["LISTS"]);
GetResult();
ShowTree(tv1.Nodes,"0");//0是整个目录根结点的上一级目录编号
}
{
// 在此处放置用户代码以初始化页面
cn=new SqlConnection(ConfigurationSettings.AppSettings["LISTS"]);
GetResult();
ShowTree(tv1.Nodes,"0");//0是整个目录根结点的上一级目录编号
}
private DataSet GetResult()
{
da=new SqlDataAdapter("select * from lists",cn);
ds=new DataSet();
da.Fill(ds);
return ds;
}
{
da=new SqlDataAdapter("select * from lists",cn);
ds=new DataSet();
da.Fill(ds);
return ds;
}
private void ShowTree(TreeNodeCollection nds,string pf_id)
{
DataView dv=new DataView();
TreeNode tmpnd;
string id;
dv.Table=ds.Tables[0];
dv.RowFilter="pf_id="+pf_id;
{
DataView dv=new DataView();
TreeNode tmpnd;
string id;
dv.Table=ds.Tables[0];
dv.RowFilter="pf_id="+pf_id;
foreach(DataRowView drv in dv)
{
tmpnd=new TreeNode();
tmpnd.ID=drv["f_id"].ToString();
tmpnd.Text=drv["f_name"].ToString();
tmpnd.NavigateUrl=drv["url"].ToString();
{
tmpnd=new TreeNode();
tmpnd.ID=drv["f_id"].ToString();
tmpnd.Text=drv["f_name"].ToString();
tmpnd.NavigateUrl=drv["url"].ToString();
//在目录之前插入图片
tmpnd.ImageUrl="图片路径";
tmpnd.SelectedImageUrl="图片路径";
tmpnd.ExpandedImageUrl="图片路径";
tmpnd.SelectedImageUrl="图片路径";
tmpnd.ExpandedImageUrl="图片路径";
nds.Add(tmpnd);
id=drv["pf_id"].ToString();
ShowTree(tmpnd.Nodes,tmpnd.ID);
}
}
运行之后就是一棵以父目录编号为“0”的目录为根结点的目录树。