一直没太搞懂TreeView,请帮忙写一个例子好吗?要求:
数据结构
系统编号 分类序号 主分类编号 上级分类编号 分类名称
1 2 001 000(主分类上级是000) a
2 1 002 000 b
3 1 001001 001 aa
4 2 002001 002 ba
5 1 002001001 002001 baa
数据结构
系统编号 分类序号 主分类编号 上级分类编号 分类名称
1 2 001 000(主分类上级是000) a
2 1 002 000 b
3 1 001001 001 aa
4 2 002001 002 ba
5 1 002001001 002001 baa
解决方案 »
- ICSharpCode.SharpZipLib.dll 该压缩组件 可以将几个txt文件压缩为 一个zip 文件吗?
- (祝各位哥哥,姐姐发大财) 如何保存GPS数据
- 获取DATALIST中某一列所有显示值的和
- 博客中如何传替多个用户名或者ID---顶者有分
- 动态显示新闻图片,只能先在数据库中读取然后保存到本地目录再链接到image控件?还有什么好的方法?各位支招!
- 郁闷一天的FCK上传图片路径设置问题?在vs2005里调试可以用,但放在iis里通过127.0.0.1访问就不能用了?????
- 急用:想在模板列使用checkbox实现单选,应该在什么事件中编写判断代吗??
- 关于SQL2005的问题,急急急,在线等
- 新人小白求助:关于文本框改变内容自动查询的问题
- 新手请教dropdownlist与Grideview绑定的问题
- 面试问,为什么jsp+oracle,asp+sql server这样来搭配?
- 散分,顺便问个问题
|__aa(001001)
b(002)
|__ba(002001)
|__baa(002001001)AJAX实现的TreeView,可以参考下
http://www.cnblogs.com/doll-net/archive/2007/05/16/749282.html
比如说有这样一个彩旦:
---河南
---洛阳
---郑州
---开封
---四川
---成都
---汉中
---
你可以做成两个表
一个表是province 一个表是city
字段 province 里面 Pid title
city 里面 cid Pid title
两个表里面的pid在数据库里面加上FK
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//首先填充第一级节点
DataView dv = drv("select * from province");//drv是个函数
foreach (DataRowView datav in dv)
{
//循环视图,将对应的值交给一个节点对象,然后添加到树上有继续添加
TreeNode tn = new TreeNode();
tn.Text = datav["title"].ToString();
tn.Value = datav["pid"].ToString();
TreeView1.Nodes.Add(tn);
AddchildNodes(tn);//调用方法填充二级节点
}
}
}
private void AddchildNodes(TreeNode tn)
{//填充二级节点,他需要一级节点的value,所以干脆送一个完整的根节点对象
int pid = Convert.ToInt32(tn.Value);
DataView dv = drv("select * from city where pid="+bid+"");
foreach (DataRowView datav in dv)//这里注意是DATAROWVIEW不是DATAVIEW
{//同上
TreeNode ctn = new TreeNode();
ctn.Text = datav["title"].ToString();
ctn.Value = datav["cid"].ToString();
ctn.NavigateUrl = "http://www.163.com/jiashe.aspx?aa=" + datav["cid"].ToString();
tn.ChildNodes.Add(ctn);
}
}
private DataView drv(string query)
{//根据传来的SQL串返回一个视图
//
SqlConnection myConnection = new SqlConnection("server=.;uid=sa;pwd=123;database=数据库名字");
SqlDataAdapter sda = new SqlDataAdapter(query,myConnection);
DataSet ds = new DataSet();
sda.Fill(ds,"tree");
return ds.Tables["tree"].DefaultView;
}
首先填充一个dateset,将所有菜单数据填入,(‘select 主分类编号,上级分类编号,分类名称 from memu_define')sub create_tree(byval menuData,as Dataset,byval menuFather_ID as Integer,byVal FatherNode as TreeNode)
dim filterStr as String
filterStr="上级分类编号="+cstr(menuFather_ID)
dim subMenu() as DataRow
subMenu=menuData.tables(0).select(filterStr)
dim i as integer
for i=0 to subMenu.GetUpperBound()
dim menuNode as TreeNode=new TreeNode()
menuNode.text=subMenu(i)(3).ToString
if menuFather_ID=0 then
treeview1.nodes.add(menuNode)
else
FatherNode.ChildNodes.Add(menuNode)
end if
create_tree(menuData,subMenu(i)(0),menuNode)
nextend sub用create_tree(menuData,0,null)调用