读书人

.net页面TreeView树形绑定数据库,该如

发布时间: 2013-03-17 13:48:31 作者: rapoo

.net页面TreeView树形绑定数据库
要求:利用TreeView控件节点绑定数据库,后台可以自由增删改这些节点以及对应的内容,点击这些节点的时候内容页面在右边出现。

这样的一个问题,什么思路,数据库(SQL)该怎么建立好,怎么绑定数据库。最好能有具体代码,本人初学不久,先谢谢各位了!

[解决办法]
http://www.cnblogs.com/SunYu/archive/2010/04/29/1724367.html
循环读取
[解决办法]
随便什么数据库都行。treeView的节点是自己添加的。只要有数据,树就能建起来。
你可以试试最简单的 TreeNode par = new TreeNode("root")
this.treeView1.Nodes.Add("par");
TreeNode chi1 = new TreeNode("chi1");
TreeNode chi2 = new TreeNode("chi2");
par.Nodes.Add(chi1);
par.Nodes.Add(chi2);
然后你尝试增加删除修改保持,最简单的出来了,其他功能就可以慢慢加
[解决办法]
tblType分类表(加到树上的)
TID PTID TypeName
编号 父节点编号 分类名称

tblContent内容表(右边的)
ID TID content ...
编号 分类编号 内容...


根据PTID递归加载Tree

[解决办法]


public partial class TreeView : System.Web.UI.Page
{
DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dt.Columns.Add("a1");
dt.Columns.Add("a2");
dt.Columns.Add("a3");
dt.Columns.Add("num", Type.GetType("System.Int32"));
dt.Columns.Add("url");
dt.Rows.Add(new object[] { "1", "0", "我的文件夹", 2, "http://www.sina.com.cn" });
dt.Rows.Add(new object[] { "2", "0", "工作文件夹", 1, "http://www.baidu.com" });
dt.Rows.Add(new object[] { "3", "1", "图片", 1, "http://www.qq.com" });


dt.Rows.Add(new object[] { "4", "1", "文档", 2, "http://www.hao123.com" });
dt.Rows.Add(new object[] { "5", "3", "风景", 2, "http://www.163.com" });
dt.Rows.Add(new object[] { "6", "3", "人物", 1, "http://bbs.csdn.net" });
dt.Rows.Add(new object[] { "7", "2", "报告", 1, "http://www.taobao.com" });
dt.Rows.Add(new object[] { "8", "3", "写真", 3, "http://www.liuzhou.gov.cn" });

bindData("0", TreeView2.Nodes, "根目录");
}
}
private void bindData(string parentid, TreeNodeCollection tnc,string path)
{
DataRow[] ary_row = dt.Select("a2=" + parentid, "num");
foreach (DataRow item in ary_row)
{
TreeNode node = new TreeNode();
string txtpath = path + "//" + item["a3"].ToString();
node.Text = string.Format("<font onclick=\"selval(this,'{1}','{2}')\" style=\"cursor:pointer;\">{0}</font>", item["a3"].ToString(), item["url"].ToString(),"Right");
node.Value = item["a1"].ToString();
node.Expanded = true;//是否展开
//node.ShowCheckBox = true;//是否显示选择框
node.SelectAction = TreeNodeSelectAction.None;
//node.NavigateUrl = "javascript:selval('" + txtpath + "');";//连接路径
//node.SelectAction = TreeNodeSelectAction.Expand;//选择事件
tnc.Add(node);
bindData(item["a1"].ToString(), tnc[tnc.Count - 1].ChildNodes, txtpath);


}
}
}


[解决办法]
数据库字段设计,有自己的ID号,父节点的ID号。
绑定前查询数据是否存在父ID,有就创建父节点。循环查询。
给你个节点加个URL,节点对应的内容重新绑定到你说的右边。

读书人网 >asp.net

热点推荐