Asp.net 2.0 Treeview 动态填充,并实现无限级树
2013-01-04 09:58
411 查看
数据库表关键字段:
表: table1
type_id type_name per_type_id
0 根目录 -1
1 子目录
0
2 子目录2
0
3 子子目录
2
.
9 根目录二 -1
C#代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public
partial
class tree : System.Web.UI.Page
{
protected
void Page_Load(object sender, EventArgs e)
{
TreeView1.Nodes.Clear();
DataTable dt
= tree_table();
DataView dv
= new DataView(dt);
dv.RowFilter
= "type_id = 0";
foreach (DataRowView drv
in dv)
{
TreeNode node
= new TreeNode();
node.Text
= drv["type_name"].ToString();
node.Value
= drv["type_id"].ToString();
node.NavigateUrl
= "?s="
+ drv["type_id"].ToString();
TreeView1.Nodes.Add(node);
AddChildNode(dt, node);
}
}
private DataTable tree_table()
{
//hooyesDataLink 为配置中数据连接字符串键名
SqlConnection con
= new SqlConnection(ConfigurationManager.AppSettings["hooyesDataLink"]);
SqlDataAdapter sda
= new SqlDataAdapter("select * from table1",
con);
DataTable dt
= new DataTable();
sda.Fill(dt);
return dt;
}
递归以实现无限级树#region
递归以实现无限级树
private
void AddChildNode(DataTable dt, TreeNode node)
{
DataView dv
= new DataView(dt);//建立dt的表视图
dv.RowFilter
= "per_type_id = '"
+ node.Value
+ "'";
//过滤
foreach (DataRowView drv1
in dv)
{
TreeNode ChildNode
= new TreeNode();
ChildNode.Text
= drv1["type_name"].ToString();
ChildNode.Value
= drv1["type_id"].ToString();
ChildNode.NavigateUrl
= "?s="
+ drv1["type_id"].ToString();
ChildNode.Expanded
= true;//展开属性为FALSE
node.ChildNodes.Add(ChildNode);
AddChildNode(dt, ChildNode);
}
}
#endregion
}
效果:
表: table1
type_id type_name per_type_id
0 根目录 -1
1 子目录
0
2 子目录2
0
3 子子目录
2
.
9 根目录二 -1
C#代码
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public
partial
class tree : System.Web.UI.Page
{
protected
void Page_Load(object sender, EventArgs e)
{
TreeView1.Nodes.Clear();
DataTable dt
= tree_table();
DataView dv
= new DataView(dt);
dv.RowFilter
= "type_id = 0";
foreach (DataRowView drv
in dv)
{
TreeNode node
= new TreeNode();
node.Text
= drv["type_name"].ToString();
node.Value
= drv["type_id"].ToString();
node.NavigateUrl
= "?s="
+ drv["type_id"].ToString();
TreeView1.Nodes.Add(node);
AddChildNode(dt, node);
}
}
private DataTable tree_table()
{
//hooyesDataLink 为配置中数据连接字符串键名
SqlConnection con
= new SqlConnection(ConfigurationManager.AppSettings["hooyesDataLink"]);
SqlDataAdapter sda
= new SqlDataAdapter("select * from table1",
con);
DataTable dt
= new DataTable();
sda.Fill(dt);
return dt;
}
递归以实现无限级树#region
递归以实现无限级树
private
void AddChildNode(DataTable dt, TreeNode node)
{
DataView dv
= new DataView(dt);//建立dt的表视图
dv.RowFilter
= "per_type_id = '"
+ node.Value
+ "'";
//过滤
foreach (DataRowView drv1
in dv)
{
TreeNode ChildNode
= new TreeNode();
ChildNode.Text
= drv1["type_name"].ToString();
ChildNode.Value
= drv1["type_id"].ToString();
ChildNode.NavigateUrl
= "?s="
+ drv1["type_id"].ToString();
ChildNode.Expanded
= true;//展开属性为FALSE
node.ChildNodes.Add(ChildNode);
AddChildNode(dt, ChildNode);
}
}
#endregion
}
效果:
相关文章推荐
- Asp.net 2.0 Treeview 动态填充,并实现无限级树
- Asp.net 2.0 Treeview 动态填充,并实现无限级树
- ASP.NET 2.0 中实现 Treeview 与数据库的绑定(含代码)
- Asp.net 2.0 Treeview 无限级无刷新示例
- ASP.NET 2.0中GridView无限层复杂表头的实现
- TreeView无刷新动态生成树[C# Asp.net 2.0]
- ASP.NET 2.0中GridView无限层复杂表头的实现
- ASP.NET 2.0中GridView无限层复杂表头的实现(摘抄)
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- asp.net 2.0中TREEVIEW中动态增加结点
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0 中 Treeview 的Checkboxes 选中根 枝叶全选中的实现方法(转)
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu )
- [转]ASP.NET 2.0中GridView无限层复杂表头的实现
- ASP.NET 2.0中GridView无限层复杂表头的实现
- asp.net 2.0中treeview中动态增加结点
- 使用Asp.net 2.0设计的三种控件(TreeView,DropDownList,GridView)的无限分类
- ASP.NET 2.0中GridView无限层复杂表头的实现
- asp.net 2.0中treeview控件实现无限级分类