读书人

winfrom里treeview如何动态的添加节点

发布时间: 2012-08-27 21:21:56 作者: rapoo

winfrom里treeview怎么动态的添加节点
例如
中国
江苏
南京
南通
上海
北京
比如点击
连接数据库动态生成。。

[解决办法]
http://blog.csdn.net/wtpmcheng/article/details/5405863
[解决办法]

C# code
    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
[解决办法]
楼上的大神们的链接都很详细了 在给你一段
C# code
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;            }            //动态绑—ateList            DatelistAdd();            //只添加第一层的节点            PopulateCategories();        }    }    #region   动态绑—ateList    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;        }    }} 

读书人网 >C#

热点推荐