zoukankan      html  css  js  c++  java
  • 利用.net 2.0中的TreeView控件与数据库绑定,生成无限级的树目录

    数据表的结构

    www.lemongtree.com 
        
    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(); 
        }
     
    }
     

  • 相关阅读:
    数据库存储语句
    数据库练习总结
    数据库练习
    数据库增添
    数据库创建
    cookie 和 session的区别 & 三种传值方式
    内置对象——cookie
    webform跨页面传值
    复合控件
    repeater(控件)数据展示
  • 原文地址:https://www.cnblogs.com/xiang/p/449944.html
Copyright © 2011-2022 走看看