C# 中Treeview无限级目录实现
2009-08-14 11:00
399 查看
库表结构:
后台代码:
protected void Page_Load(object sender, EventArgs e)//页面打开时执行
{
if (!IsPostBack)
{
PopulateNodes(TreeView1.Nodes, 0);
}
}
public DataTable GetTreeTable()//获得表
{
dbClient db = new dbClient();
DataTable dt = HttpContext.Current.Cache["Treeview"] as DataTable;//缓存表,保证速度
string sql = "select id,pid,yhm from users";
dt = db.getSQLTable(sql, "dt"); //获得表
return dt;
}
public void PopulateNodes(TreeNodeCollection nodes, Int32 intParentID)//节点展开
{
DataTable dt = GetTreeTable();
String strExpression = String.Empty;
strExpression = "[pid]=" + intParentID;
System.Data.DataRow[] dr;
dr = dt.Select(strExpression);
for (Int32 i = 0; i <= dr.GetUpperBound(0); i++)
{
TreeNode tn = new TreeNode();
tn.Text = dr[i]["yhm"].ToString().Trim();
tn.Value = dr[i]["id"].ToString();
tn.NavigateUrl = "Detail.aspx?id=" + tn.Value.ToString();//设置节点URL属性
tn.Target = "mainFrame";//设置节点Target属性
DataRow[] dr1;
dr1 = dt.Select("[pid]=" + tn.Value);
if (dr1.GetUpperBound(0) > -1)
{
tn.PopulateOnDemand = true;
}
nodes.Add(tn);
}
}
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)//触发节点展开
{
PopulateNodes(e.Node.ChildNodes, Int32.Parse(e.Node.Value));
}
前台只要拖个Treeview就可以了,然后捆绑下事件:
后台代码:
protected void Page_Load(object sender, EventArgs e)//页面打开时执行
{
if (!IsPostBack)
{
PopulateNodes(TreeView1.Nodes, 0);
}
}
public DataTable GetTreeTable()//获得表
{
dbClient db = new dbClient();
DataTable dt = HttpContext.Current.Cache["Treeview"] as DataTable;//缓存表,保证速度
string sql = "select id,pid,yhm from users";
dt = db.getSQLTable(sql, "dt"); //获得表
return dt;
}
public void PopulateNodes(TreeNodeCollection nodes, Int32 intParentID)//节点展开
{
DataTable dt = GetTreeTable();
String strExpression = String.Empty;
strExpression = "[pid]=" + intParentID;
System.Data.DataRow[] dr;
dr = dt.Select(strExpression);
for (Int32 i = 0; i <= dr.GetUpperBound(0); i++)
{
TreeNode tn = new TreeNode();
tn.Text = dr[i]["yhm"].ToString().Trim();
tn.Value = dr[i]["id"].ToString();
tn.NavigateUrl = "Detail.aspx?id=" + tn.Value.ToString();//设置节点URL属性
tn.Target = "mainFrame";//设置节点Target属性
DataRow[] dr1;
dr1 = dt.Select("[pid]=" + tn.Value);
if (dr1.GetUpperBound(0) > -1)
{
tn.PopulateOnDemand = true;
}
nodes.Add(tn);
}
}
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)//触发节点展开
{
PopulateNodes(e.Node.ChildNodes, Int32.Parse(e.Node.Value));
}
前台只要拖个Treeview就可以了,然后捆绑下事件:
相关文章推荐
- C# TreeView无限目录树实现方法
- TreeView(C#)无限目录树代码片段
- C#TreeView连接SQL数据库(可实现无限节点)
- C#TreeView 无限级别分类实现方法
- TreeView(C#)无限目录树代码片段
- TreeView(C#)无限目录树代码片段
- C#实现树型结构TreeView节点拖拽的简单功能(转)
- 对Android TreeView 的实现,目录结构的实现
- js递归方式实现无限级目录下的最后一层查找
- C# 里TreeView绑定数据库实现分类
- C#实现安全删除文件目录的方法
- (原创)用重载实现 treeview 的无限分类递归调用(图)
- C# FTPClientHelper共公类 实现文件上传,目录操作,下载等动作
- C#实现获取IIS站点及虚拟目录信息的方法
- Asp.net 2.0 Treeview 动态填充,并实现无限级树
- C#(asp.net)实现目录(无扩展名)重写
- c#生成无限级目录树
- C#中TreeView实现适合两级节点的选中节点方法
- 节点在TreeView中无限添加,无刷新实现父节点选中,子节点同时选中