首先需要创建一个数据库表test,字段包括nodeid、parentid、nodename、adderss、icon、linkurl
nodeid是在数据库中作为节点的唯一标识,这里为了方便,将其设置为标识;
parentid表示每个节点的上级节点id,如该节点无上级,则为0;
nodename是节点在页面上显示的名称;
以上三个字段应不能为空
adderss地址;icon节点图片;linkurl节点链接地址;
以上三个字段用与不用不是必须的,因实际情况而定,这里因为使用到所以列出来
接着向设计窗体添加一个treeview控件
如果还没添加过此控件的请到以下地址下载并安装,添加引用microsoft.web.ui.webcontrols.dll然后到工具箱内添加控件
http://msdn.microsoft.com/archive/en-us/samples/internet/asp_dot_net_servercontrols/webcontrols/default.asp
下面是aspx.cs部分的代码
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;
namespace ioa
{
/// <summary>
/// webform1 的摘要说明。
/// </summary>
public class webform1 : system.web.ui.page
{
protected microsoft.web.ui.webcontrols.treeview treeview1;
protected classes.deptartment mydt=new ioa.classes.deptartment();//我把与数据库链接以及对数据库的操作请求写在此类中
这里数据库的链接就不具体写出来了,链接数据库以后
通过select * from test返回值传给程序中的ds变
量即可,记得返回的值的类型是dataset
private void page_load(object sender, system.eventargs e)
{
inittreeview(this.treeview1.nodes);
// 在此处放置用户代码以初始化页面
}
public void inittreeview(treenodecollection node)
{
this.inittree(node,"0");
}
public void inittree(treenodecollection nds,string parentid)
{
dataset ds=new dataset();
ds=mydt.treeinfo();
dataview dv = new dataview();
treenode tmpnd;
string intid;
dv.table = ds.tables[0];
dv.rowfilter = "parentid = " + parentid;
foreach(datarowview drv in dv)
{
tmpnd = new treenode();
tmpnd.id = drv["nodeid"].tostring();
if(drv["linkurl"].tostring().trim() != "")
{
tmpnd.text = "<a href ='"+drv["linkurl"].tostring().trim() +"'target='mainframe'>"+drv["nodename"].tostring()+"</a>";
}
else
{
tmpnd.text = drv["nodename"].tostring();
}
nds.add(tmpnd);
intid = drv["parentid"].tostring();
inittree(tmpnd.nodes,tmpnd.id);
}
}
#region web 窗体设计器生成的代码
override protected void oninit(eventargs e)
{
//
// codegen: 该调用是 asp.net web 窗体设计器所必需的。
//
initializecomponent();
base.oninit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void initializecomponent()
{
this.load += new system.eventhandler(this.page_load);
}
#endregion
}
}
新闻热点
疑难解答
图片精选