winfrom里treeview怎么动态的添加节点
例如
中国
江苏
南京
南通
上海
北京
比如点击
连接数据库动态生成。。
[解决办法]
http://blog.csdn.net/wtpmcheng/article/details/5405863
[解决办法]
private void btnAddType_Click(object sender, EventArgs e) { try { TreeNode node = tvType.SelectedNode; AddProductCategory add = new AddProductCategory(); if (add.ShowDialog() == DialogResult.OK) { TreeNode nd = new TreeNode(); nd.Text = add.Name; node.Tag =; if (node == null) { tvType.Nodes.Add(nd); } else { node.Nodes.Add(nd); tvType.SelectedNode = nd; } } } catch (Exception ex) { FunctionsUI.CreateErrorDialog(ex.Message); } }
[解决办法]
http://www.cnblogs.com/duhongyu216/articles/1702591.html
[解决办法]
楼上的大神们的链接都很详细了 在给你一段
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 App_page_NaviLeft : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string SchoolID = ""; if (Session["SchoolID"] != null && Session["SchoolID"].ToString() != "") { SchoolID = Session["SchoolID"].ToString(); this.TextBox_SchoolID.Text = SchoolID; } else { ShowMessage("Session已超时,请重新登录!"); return; } //动态绑定DateList DatelistAdd(); //只添加第一层的节点 PopulateCategories(); } } #region 动态绑定DateList private void DatelistAdd() { string strConn = ConfigurationManager.AppSettings["conn"].ToString(); // 获取连接数据库的字符串 string strSQL = "Select * From Schoolname_IP where IsDelete='0' order by id desc"; System.Data.SqlClient.SqlConnection sqlConn = new SqlConnection(strConn); System.Data.SqlClient.SqlCommand sqlComm = new SqlCommand(strSQL, sqlConn); try { sqlConn.Open(); System.Data.SqlClient.SqlDataReader sqlDR = sqlComm.ExecuteReader(); if (sqlDR != null) { while (sqlDR.Read()) { ListItem LI = new ListItem(); LI.Text = sqlDR["schoolname"].ToString(); LI.Value = sqlDR["id"].ToString(); this.DropDownList_School.Items.Add(LI); } } sqlDR.Close(); this.DropDownList_School.SelectedValue = this.TextBox_SchoolID.Text; } catch { Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>window.alert('获得数据的过程出现了错误!请检查数据库的连接是否正确!');</script>"); } finally { sqlConn.Close(); } } #endregion #region 填充第一层树节点 private void PopulateCategories() { TVMenu.Nodes.Clear(); SqlCommand sqlQuery = new SqlCommand("Select * From LM_Navi where NaviGrade=1 and schoolid = '" + this.TextBox_SchoolID.Text + "' order by NaviID"); DataSet resultSet = RunQuery(sqlQuery); if (resultSet == null) { return; } if (resultSet.Tables.Count > 0) { foreach (DataRow row in resultSet.Tables[0].Rows) { TreeNode NewNode = new TreeNode(row["NaviName"].ToString(), row["NaviCode"].ToString() + "," + row["NaviGrade"].ToString() + "," + row["NaviChild"].ToString()); NewNode.PopulateOnDemand = true; this.TVMenu.Nodes.Add(NewNode); if (TextBox1.Text.Trim() == "1") { NewNode.ExpandAll(); } else { NewNode.CollapseAll(); } } } resultSet.Dispose(); } #endregion #region 执行SQL语句并返回数据集 /// <summary> /// 函数原型:private DataSet RunQuery(SqlCommand sqlQuery) /// 函数功能:执行SQL语句并返回数据集 /// 函数参数:SqlCommand sqlQuery 带SQL语句的SqlCommand /// 函数返回:执行SQL语句后的数据集 /// </summary> /// <param name="sqlQuery">带SQL语句的SqlCommand</param> private DataSet RunQuery(SqlCommand sqlQuery) { string connectionString = ConfigurationManager.AppSettings["conn"]; SqlConnection DBConnection = new SqlConnection(connectionString); SqlDataAdapter dbAdapter = new SqlDataAdapter(); dbAdapter.SelectCommand = sqlQuery; sqlQuery.Connection = DBConnection; DataSet resultsDataSet = new DataSet(); try { dbAdapter.Fill(resultsDataSet); } catch { resultsDataSet = null; } return resultsDataSet; } #endregion #region 展开节点时触发的事件 protected void TVMenu_TreeNodePopulate(object sender, TreeNodeEventArgs e) { //防止重复填充节点 if (e.Node.ChildNodes.Count > 0) return; string[] str = e.Node.Value.Split(','); string strNaviCode = str[0].ToString(); string strGrade = ""; bool BoolFlag = e.Node.Checked; strGrade = Convert.ToString((Convert.ToInt32(str[1]) + 1)); SqlCommand sqlQuery = new SqlCommand("Select * From LM_Navi where schoolid = '" + this.TextBox_SchoolID.Text + "' and NaviCode like '" + strNaviCode + "%' and NaviGrade=" + strGrade + " order by NaviID"); DataSet ResultSet = RunQuery(sqlQuery); if (ResultSet == null) { return; } if (ResultSet.Tables.Count > 0) { foreach (DataRow row in ResultSet.Tables[0].Rows) { TreeNode NewNode = new TreeNode(row["NaviName"].ToString(), row["NaviCode"].ToString() + "," + row["NaviGrade"].ToString() + "," + row["NaviChild"].ToString()); NewNode.PopulateOnDemand = true; NewNode.Checked = BoolFlag; e.Node.ChildNodes.Add(NewNode); //if ((int)row["ChildFlag"] == 1) //{ // NewNode.Collapse(); //} //else //{ // NewNode.Expand(); //} NewNode.ExpandAll(); } } ResultSet.Dispose(); } #endregion #region 显示信息函数 public void ShowMessage(string Message) { Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>window.alert('" + Message + "');</script>"); } #endregion protected void ImageButton_open_all_Click(object sender, ImageClickEventArgs e) { TextBox1.Text = "1"; PopulateCategories(); } protected void ImageButton_close_all_Click(object sender, ImageClickEventArgs e) { TextBox1.Text = "0"; PopulateCategories(); } protected void ImageButton_select_Click(object sender, ImageClickEventArgs e) { try { //if (TVMenu.CheckedNodes != null && TVMenu.CheckedNodes.Count > 0) //{ string strWhere = ""; for (int i = 0; i < TVMenu.CheckedNodes.Count; i++) { if (TVMenu.CheckedNodes[i].Parent == null || TVMenu.CheckedNodes[i].Parent.Checked == false) { string[] str = TVMenu.CheckedNodes[i].Value.Split(','); string strClassCode = str[0].ToString(); strWhere += strClassCode + "|"; } } if (strWhere.Length > 1) { strWhere = strWhere.Substring(0, strWhere.Length - 1); } string strRSQL = strWhere; string strContent = this.TextBox_Content.Text.Trim(); string SchoolID = DropDownList_School.SelectedValue; Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>window.open('FAQslist.aspx?SQL=" + strRSQL + "&Content=" + strContent + "&Page_SchoolID=" + SchoolID + "','FAQRight');</script>"); //} //else //{ // ShowMessage("请选择节点"); // return; //} } catch { ShowMessage("配置有误,请检查配置。"); return; } } protected void DropDownList_School_SelectedIndexChanged(object sender, EventArgs e) { this.TextBox_SchoolID.Text = this.DropDownList_School.SelectedValue; string schoolid = this.TextBox_SchoolID.Text; Response.Write("<script>window.open('FAQslist.aspx?Page_SchoolID=" + schoolid + "','FAQRight');</script>"); PopulateCategories(); } protected void TVMenu_SelectedNodeChanged(object sender, EventArgs e) { try { string[] str = TVMenu.SelectedNode.Value.Split(','); string strClassCode = str[0].ToString(); string SchoolID = DropDownList_School.SelectedValue; Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>window.open('FAQslist.aspx?A_SQL=" + strClassCode + "&Page_SchoolID=" + SchoolID + "','FAQRight');</script>"); } catch { ShowMessage("配置有误,请检查配置。"); return; } }}