您的位置:首页 > 数据库

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

2006-09-05 23:58 471 查看

数据表的结构






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(0, new 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();


}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: