注册 登录
编程论坛 ASP.NET技术论坛

想实现一个四级的TreeView控件,其数据库是如何设计的?最好有这方面的实例,谢谢!

foshan 发布于 2007-03-28 09:03, 1871 次点击
想实现一个四级的TreeView控件,其数据库是如何设计的?最好有这方面的实例,谢谢!
8 回复
#2
bygg2007-03-28 09:04
一个父ID一个子ID就行了..
#3
foshan2007-03-28 09:34
父ID 与 子ID 是如何表达的??他们之间有什么形式上的类同中吗??
#4
foshan2007-03-28 11:55
如下图所示,在数据库里,如何标识各节点与上一级你节点之间的联系???谢谢!
只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2007-3-28 11:55:47编辑过]

#5
bygg2007-03-28 12:56
比如:
ID 子ID 父ID
1 0 null
2 1 0
3 2 0
4 3 1
5 4 1
6 5 2
7 6 2
.....

这个里面:父ID为null的就是最大的层.父ID为0的就是ID为1的子菜单,父ID为1的就是ID为2的子菜单,父ID为2的就是ID为3的子菜单.....这样..不要说是四级,就是四十级就可以..呵...
#6
sean882007-03-28 13:03
我想问一下,VS2003 winform里面的treeview 每个节点前面如何带有checkbox?请问一下怎么样实现?

我找了一些网上的资料:TreeNode node=new TreeNode();
node.CheckBox=true; --我找不到这个属性,请问这句怎么实现
treeview1.nodes.add(node);

[此贴子已经被作者于2007-3-28 13:19:41编辑过]

#7
bygg2007-03-28 14:46
我知道2005里面可以直接添加CheckBox..以前用2003时没有弄过.呵.
#8
foshan2007-03-28 15:24
谢谢!试了一下,但以下的代码出错,请大家帮忙指正错误:错误 1 “System.Web.UI.WebControls.TreeNode”并不包含“Nodes”的定义 D:\myweb\TreeView\Default.aspx.cs 56 23 http://localhost/TreeView/

请大家帮忙解决,谢谢!
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//创建一个连接
SqlConnection conn = new SqlConnection("data source=(local);database=****;user=****; password=********");
//创建一个DataSet(数据集)
DataSet ds = new DataSet();
//创建一个DataAdapter
SqlDataAdapter da = new SqlDataAdapter("select * from tbTree", conn);
//填充DataSet ds
da.Fill(ds, "tbTree");
GridView1.DataSource = ds;
GridView1.DataBind();
this.ViewState["ds"] = ds;
AddTree(0, (TreeNode)null);
}
}
// 递归添加树的节点
public void AddTree(int ParentID, TreeNode pNode)
{

//调用递归函数,完成树形结构的生成
DataSet ds = (DataSet)this.ViewState["ds"];
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[ParentID] = " + ParentID;
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{ //''̀添加根节点
Node.Text = Row["ConText"].ToString();
TreeView1.Nodes.Add(Node);
Node.Expanded = true;
AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
}
else
{ //添加当前节点的子节点
Node.Text = Row["ConText"].ToString();
pNode.Nodes.Add(Node);
Node.Expanded = true;
AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
}
}
}
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2007-3-28 16:11:49编辑过]

#9
foshan2007-03-28 16:37
已解决!
在ASP.NET1.0没问题,在ASP.NET2.0就要将
pNode.Nodes.Add(Node);
改为
pNode.ChildNodes.Add(Node);
1