我相信很多.NET新人会对TreeView非常感兴趣,因为TreeView功能十分强大,而且在应用中也经常出现,包括一些框架的设计上可能也会采用TreeView的。
       废话不多说了,我从第一步讲起。
 
小块头有大智慧---TreeView初级使用指南_休闲
一、首先在界面上拉一个TreeView、一个Button、一个Label。TreeView的格式和风格都可以自己调整。(上图是我项目的截图)
 
二、数据库。包含两张表big 和 class
big:
小块头有大智慧---TreeView初级使用指南_TreeView_02
 
class:
小块头有大智慧---TreeView初级使用指南_职场_03
 
三、进入后台,下面是后台代码。代码里有注释。
小块头有大智慧---TreeView初级使用指南_.net控件_04using System;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Configuration;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Data;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Linq;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Web;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Web.Security;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Web.UI;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Web.UI.HtmlControls;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Web.UI.WebControls;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Web.UI.WebControls.WebParts;
小块头有大智慧---TreeView初级使用指南_.net控件_04using System.Data.SqlClient;
小块头有大智慧---TreeView初级使用指南_.net控件_04
小块头有大智慧---TreeView初级使用指南_.net控件_04public partial class _Default : System.Web.UI.Page    
小块头有大智慧---TreeView初级使用指南_.net控件_04{
小块头有大智慧---TreeView初级使用指南_.net控件_04        protected void Page_Load(object sender, EventArgs e)
小块头有大智慧---TreeView初级使用指南_.net控件_04        {
小块头有大智慧---TreeView初级使用指南_.net控件_04                if (!IsPostBack)
小块头有大智慧---TreeView初级使用指南_.net控件_04                {
小块头有大智慧---TreeView初级使用指南_.net控件_04                        //填充第一级节点
小块头有大智慧---TreeView初级使用指南_.net控件_04                        DataView dv = drv("select * from big");
小块头有大智慧---TreeView初级使用指南_.net控件_04                        foreach (DataRowView datav in dv)
小块头有大智慧---TreeView初级使用指南_.net控件_04                        {//循环数据,读取到节点上
小块头有大智慧---TreeView初级使用指南_.net控件_04                                TreeNode tn = new TreeNode();
小块头有大智慧---TreeView初级使用指南_.net控件_04                                tn.Text = datav["title"].ToString();
小块头有大智慧---TreeView初级使用指南_.net控件_04                                tn.Value = datav["bid"].ToString();
小块头有大智慧---TreeView初级使用指南_.net控件_04                                tn.Expanded = false; //当前节点都是折叠起来的
小块头有大智慧---TreeView初级使用指南_.net控件_04                                TreeView1.Nodes.Add(tn); //填充
小块头有大智慧---TreeView初级使用指南_.net控件_04                                AddchildNodes(tn); //调用方法填充二级节点
小块头有大智慧---TreeView初级使用指南_.net控件_04                        }
小块头有大智慧---TreeView初级使用指南_.net控件_04                }
小块头有大智慧---TreeView初级使用指南_.net控件_04        }
小块头有大智慧---TreeView初级使用指南_.net控件_04        private DataView drv(string sql)
小块头有大智慧---TreeView初级使用指南_.net控件_04        {
小块头有大智慧---TreeView初级使用指南_.net控件_04                string conn = "Server=.;User id=sa;Pwd=L;Database=test";    //这个是我本地的数据库命令
小块头有大智慧---TreeView初级使用指南_.net控件_04                SqlConnection con = new SqlConnection(conn);
小块头有大智慧---TreeView初级使用指南_.net控件_04                SqlDataAdapter sda = new SqlDataAdapter(sql, con);
小块头有大智慧---TreeView初级使用指南_.net控件_04                DataSet ds = new DataSet();
小块头有大智慧---TreeView初级使用指南_.net控件_04                sda.Fill(ds, "tree");
小块头有大智慧---TreeView初级使用指南_.net控件_04                return ds.Tables["tree"].DefaultView;    //注意一下这里的返回值
小块头有大智慧---TreeView初级使用指南_.net控件_04        }
小块头有大智慧---TreeView初级使用指南_.net控件_04        private void AddchildNodes(TreeNode tn)
小块头有大智慧---TreeView初级使用指南_.net控件_04        {//二级节点
小块头有大智慧---TreeView初级使用指南_.net控件_04                int bid = Convert.ToInt32(tn.Value);
小块头有大智慧---TreeView初级使用指南_.net控件_04                DataView dv = drv("select * from class where bid = " + bid + "");
小块头有大智慧---TreeView初级使用指南_.net控件_04                foreach (DataRowView datav in dv)
小块头有大智慧---TreeView初级使用指南_.net控件_04                {
小块头有大智慧---TreeView初级使用指南_.net控件_04                        TreeNode ctn = new TreeNode();
小块头有大智慧---TreeView初级使用指南_.net控件_04                        ctn.Text = datav["title"].ToString();
小块头有大智慧---TreeView初级使用指南_.net控件_04                        ctn.Value = datav["cid"].ToString();
小块头有大智慧---TreeView初级使用指南_.net控件_04                        ctn.NavigateUrl = "http://mixangel.blog.51cto.com/";
小块头有大智慧---TreeView初级使用指南_.net控件_04                        tn.ChildNodes.Add(ctn);    //加载到tn的下级节点
小块头有大智慧---TreeView初级使用指南_.net控件_04                }
小块头有大智慧---TreeView初级使用指南_.net控件_04        }
小块头有大智慧---TreeView初级使用指南_.net控件_04        protected void Button1_Click(object sender, EventArgs e)
小块头有大智慧---TreeView初级使用指南_.net控件_04        {
小块头有大智慧---TreeView初级使用指南_.net控件_04                //按钮事件,根据check选定与否来显示
小块头有大智慧---TreeView初级使用指南_.net控件_04                if (TreeView1.CheckedNodes.Count > 0)
小块头有大智慧---TreeView初级使用指南_.net控件_04                {
小块头有大智慧---TreeView初级使用指南_.net控件_04                        foreach (TreeNode tn in TreeView1.CheckedNodes)
小块头有大智慧---TreeView初级使用指南_.net控件_04                        {
小块头有大智慧---TreeView初级使用指南_.net控件_04                                if (tn.ChildNodes.Count > 0)
小块头有大智慧---TreeView初级使用指南_.net控件_04                                {
小块头有大智慧---TreeView初级使用指南_.net控件_04                                        foreach (TreeNode ctn in tn.ChildNodes)
小块头有大智慧---TreeView初级使用指南_.net控件_04                                        {
小块头有大智慧---TreeView初级使用指南_.net控件_04                                                Response.Write(ctn.Text + "<br>");
小块头有大智慧---TreeView初级使用指南_.net控件_04                                        }
小块头有大智慧---TreeView初级使用指南_.net控件_04                                }
小块头有大智慧---TreeView初级使用指南_.net控件_04                                else
小块头有大智慧---TreeView初级使用指南_.net控件_04                                {
小块头有大智慧---TreeView初级使用指南_.net控件_04                                        Response.Write(tn.Text + "<br>");
小块头有大智慧---TreeView初级使用指南_.net控件_04                                }
小块头有大智慧---TreeView初级使用指南_.net控件_04                        }
小块头有大智慧---TreeView初级使用指南_.net控件_04                }
小块头有大智慧---TreeView初级使用指南_.net控件_04        }
小块头有大智慧---TreeView初级使用指南_.net控件_04
小块头有大智慧---TreeView初级使用指南_.net控件_04        //下面是TreeView的三个事件,非常简单,就是点击TreeView触发的事件,代码实现后可以看看效果。
小块头有大智慧---TreeView初级使用指南_.net控件_04        protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
小块头有大智慧---TreeView初级使用指南_.net控件_04        {
小块头有大智慧---TreeView初级使用指南_.net控件_04                Label1.Text = TreeView1.SelectedNode.Text;
小块头有大智慧---TreeView初级使用指南_.net控件_04        }
小块头有大智慧---TreeView初级使用指南_.net控件_04        protected void TreeView1_TreeNodeCollapsed(object sender, TreeNodeEventArgs e)
小块头有大智慧---TreeView初级使用指南_.net控件_04        {
小块头有大智慧---TreeView初级使用指南_.net控件_04                Label1.Text = "你折叠了" + e.Node.Text;
小块头有大智慧---TreeView初级使用指南_.net控件_04        }
小块头有大智慧---TreeView初级使用指南_.net控件_04        protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
小块头有大智慧---TreeView初级使用指南_.net控件_04        {
小块头有大智慧---TreeView初级使用指南_.net控件_04                Label1.Text = "你展开了" + e.Node.Text;
小块头有大智慧---TreeView初级使用指南_.net控件_04        }
小块头有大智慧---TreeView初级使用指南_.net控件_04}
 
 
四、实现效果图。
小块头有大智慧---TreeView初级使用指南_休闲_93
 
       TreeView是很多管理软件都会用到的一个控件,功能也十分强大,能导航能链接,虽然不是出镜率非常多,但是一般办公类软件都会有这个控件。
       希望以后和大家多交流.NET的控件方面的东西,我觉得可能创意是很重要的,其实控件本身很简单,虽然现在.NET的控件还是有很多鸡肋的东西,但  是据我了解,微软的silverlight已经给中国软件业很大的惊喜了,以后估计会是不可忽视的一股冲击力。
       希望以后能和大家沟通和交流。