问题地址: http://www.cnblogs.com/ninetynine/archive/2007/08/08/847847.html
环境:我的是一个产品表,目录和产品都在一个表里,有一个字段来表示是产品还是目录。
代码如下:
PageLoad部分:
protected
void
Page_Load(
object
sender, EventArgs e)
{
if (!IsPostBack)
{
string sql = "select id,name,parentid from [product] where isproduct='0' and id<>0";
dt = SqlHelper.ExecuteDataset(sql).Tables[0];
InitTreeAll();
}
}
{
if (!IsPostBack)
{
string sql = "select id,name,parentid from [product] where isproduct='0' and id<>0";
dt = SqlHelper.ExecuteDataset(sql).Tables[0];
InitTreeAll();
}
}
实际构建treeview方法:
1
private
void
InitTreeAll()
2 {
3 TreeNode tmpNd;
4 DataRow[] rows = dt.Select("ParentID=" + "0 and id<>0");
5 foreach (DataRow dr in rows)
6 {
7 tmpNd = new TreeNode(dr["name"].ToString(), dr["id"].ToString());
8 Product_tree.Nodes.Add(tmpNd);
9 tmpNd.Expanded = true;
10 DataRow[] rowss = dt.Select("parentid = " + dr["id"].ToString());
11 foreach (DataRow drr in rowss)
12 {
13 tmpNd.ChildNodes.Add(new TreeNode(drr["name"].ToString(), drr["id"].ToString(),"","UI/productlist.aspx?id="+drr["id"].ToString(),"_blank"));
14 tmpNd.Expanded = true;
15 }
16 }
17 Product_tree.ExpandAll();
18 }
2 {
3 TreeNode tmpNd;
4 DataRow[] rows = dt.Select("ParentID=" + "0 and id<>0");
5 foreach (DataRow dr in rows)
6 {
7 tmpNd = new TreeNode(dr["name"].ToString(), dr["id"].ToString());
8 Product_tree.Nodes.Add(tmpNd);
9 tmpNd.Expanded = true;
10 DataRow[] rowss = dt.Select("parentid = " + dr["id"].ToString());
11 foreach (DataRow drr in rowss)
12 {
13 tmpNd.ChildNodes.Add(new TreeNode(drr["name"].ToString(), drr["id"].ToString(),"","UI/productlist.aspx?id="+drr["id"].ToString(),"_blank"));
14 tmpNd.Expanded = true;
15 }
16 }
17 Product_tree.ExpandAll();
18 }
实际绑定效果请参看: http://www.over-value.com 左边的产品列表效果,我做的是一个用户控件。