惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
博客园 - 【当耐特】
量子位
Engineering at Meta
Engineering at Meta
博客园_首页
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
V
Visual Studio Blog
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
Jina AI
Jina AI
The Cloudflare Blog
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
博客园 - 聂微东

博客园 - ProgrammingBookWorm

多层结构来开发ASP.NET程序 在.NET下多层架构企业管理系统的开发 VS2008中文试用版的破解 在ASP.NET 2.0中操作数据::使用ObjectDataSource展现数据 HTTP服务器状态代码定义(Status Code Definitions) CodeSmith快速向导(翻译) 用户控件中使用客户端脚本的控件名称问题 用户中心 - 博客园 图解Windows2003邮件服务器 Making sense of ASP.Net Paths JScript .NET Fundamentals JScript IntelliSense in Visual Studio Orcas JScript Debugging in Visual Web Developer Orcas javascript中String 对象属性和方法 Window.Open详解 Get Query String variables in JavaScript ASP.NET Script Exploits Overview ASP.NET / How to: Implement Simple Forms Authentication How to: Implement Simple Forms Authentication
利用.net 2.0中的TreeView控件与数据库绑定,生成无限级的树目录
ProgrammingBookWorm · 2008-03-13 · via 博客园 - ProgrammingBookWorm

利用.net 2.0中的TreeView控件与数据库绑定,生成无限级的树目录

数据表的结构 
  

using System; 
using System.Data; 
using System.Configuration; 
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 _Default : System.Web.UI.Page 

    
protected string _connstr = ConfigurationManager.ConnectionStrings["DemoConnectionstrings"].ConnectionString; 
    
protected void Page_Load(object sender, EventArgs e) 
    

        
if (!Page.IsPostBack) 
        

            BindTree(); 
            
using (SqlConnection _conn = new SqlConnection(_connstr)) 
            

                SqlCommand _comm 
= new SqlCommand("select * from treeview", _conn); 

                _conn.Open(); 
                
using (SqlDataReader r = _comm.ExecuteReader()) 
                

                    
while (r.Read()) 
                    

                        ListItem item 
= new ListItem(r["txt"].ToString(), r["id"].ToString()); 
                        
this._dd_parent.Items.Add(item); 
                    }
 
                }
 
            }
 
            
this._dd_parent.Items.Insert(0new ListItem(".""0")); 
        }
 
    }
 
    
protected void BindTree() 
    

        TreeNode node 
= new TreeNode();   //这里是创建一个根节点,就是dome中看到的Root 
        node.Text = "Root"
        CreateChildTree(node, 
0);    
        _tree_view.Nodes.Add(node); 
    }
 

    
protected void CreateChildTree(TreeNode _parentNode, int _parentID) 
    

        
using (SqlConnection _conn = new SqlConnection(_connstr)) 
        

            SqlCommand _comm 
= new SqlCommand(); 
            
string sql = "select * from treeview where rootid=@rootid"
            _comm.Parameters.Add(
"@rootid", SqlDbType.Int).Value = _parentID; 
            _comm.CommandText 
= sql; 
            _comm.Connection 
= _conn; 
            _conn.Open(); 
            
using (SqlDataReader r = _comm.ExecuteReader()) 
            

                
while (r.Read()) 
                

                    TreeNode _node 
= new TreeNode(r["txt"].ToString()); 
                        CreateChildTree(_node, (
int)r["ID"]);  //递归出子节点 
                        _parentNode.ChildNodes.Add(_node); 
                }
 
            }
 
        }
 
    }
 
    
protected void _btn_submit_Click(object sender, EventArgs e) 
    

        
int _rootid = Convert.ToInt16(this._dd_parent.SelectedValue); 
        
string _txt = this._txt_txt.Text.Trim(); 
        
using (SqlConnection _conn = new SqlConnection(_connstr)) 
        

            SqlCommand _comm 
= new SqlCommand("insert into treeview (txt,rootid) values (@txt,@id)", _conn); 
            _comm.Parameters.Add(
"@txt", SqlDbType.VarChar, 50).Value = _txt; 
            _comm.Parameters.Add(
"@id", SqlDbType.Int).Value = _rootid; 
            _conn.Open(); 
            _comm.ExecuteNonQuery(); 
        }
 
        
this._tree_view.Nodes.Clear(); 
        BindTree(); 
    }
 
}