CSDN一样,多级的可以删除和添加的动态树。删除和添加,改变数据库中的值。请问这样的树怎么做,有没有这样的Demo或是实例???

解决方案 »

  1.   

    .Net TreeView Web控件支持动态
      

  2.   

    这个问题在CSDN中没少被提到,建议LZ去找找资料。ls给链接。
      

  3.   

    CSDN导航树是见:CSDN网友“meizz”提供的MzTreeView1.0。
    MzTreeView1.0 可以在
    http://www.meizz.com/Web/Article.asp?id=436
    获得。http://www.meizz.com
      

  4.   

    MzTreeView1.0 参考:
    http://www.cnblogs.com/xvqm00/archive/2010/04/26/1721173.html
    http://jasonhero.itpub.net/post/21565/255325
      

  5.   

    删除和添加,改变数据库中的值简单的treeview 增删改查。可以满足不?
      

  6.   

    思路加载的
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    public partial class TreeView : System.Web.UI.Page
    {
        public List<ModelTree> TreeList = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["TreeData"] == null)
            {
                TreeList = new List<ModelTree>(){  
              new ModelTree(){TId="0001",TName="董事会",IsParent=1 },
              new ModelTree(){TId="0002",TName="监事会",IsParent=1 },
              new ModelTree(){TId="0003",TName="工会",IsParent=1 },
              new ModelTree(){TId="000101",TName="生产科",IsParent=0 },
              new ModelTree(){TId="000102",TName="地质科",IsParent=0 },
              new ModelTree(){TId="000201",TName="测量科",IsParent=0 },
              new ModelTree(){TId="000301",TName="工会干事科",IsParent=0 }
            };
                Session["TreeData"] = TreeList;
            }
            else
            {
                TreeList = Session["TreeData"] as List<ModelTree>;
            }
            this.Tv1.Nodes.Clear();
            this.Tv1.Nodes.Add(new TreeNode() { Text = "总部门" });
            InitTree(TreeList, "000", this.Tv1.Nodes[0]);    }
        int count = 0;
        public void InitTree(List<ModelTree> list, string ParentId, TreeNode Ptn)
        {
            List<ModelTree> lmt = new List<ModelTree>();
            lmt = list.Where(N => N.TId.ToString().Contains(ParentId.ToString()) && N.TId != ParentId).ToList();
            if (count == 0)
            {
                lmt = lmt.Where(I => I.IsParent == 1).ToList();
            }
            if (lmt.Count > 0)
            {
                count++;
                foreach (ModelTree mt in lmt)
                {
                    TreeNode Tn = new TreeNode();
                    Tn.Text = mt.TName + "&nbsp;&nbsp;&nbsp;&nbsp;<a href='NodeAdd.aspx?Type=add&TID=" + mt.TId.ToString() + "\'><font color='red'>添加节点</font></a>"
                        + "&nbsp;&nbsp;&nbsp;&nbsp;<a href='NodeAdd.aspx?Type=upd&TID=" + mt.TId.ToString() + "\'><font color='black'>更新节点</font></a>";
                    Tn.Value = mt.TId.ToString();
                    Ptn.ChildNodes.Add(Tn);
                    InitTree(list, mt.TId.ToString(), Tn);
                }
            }
        }
    }操作的using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;public partial class NodeAdd : System.Web.UI.Page
    {
        string type = string.Empty;
        string TID = string.Empty;
        List<ModelTree> lt = new List<ModelTree>();
        protected void Page_Load(object sender, EventArgs e)
        {
            lt = Session["TreeData"] as List<ModelTree>;
            try
            {
                type = Request.QueryString["type"].ToString();
                TID = Request.QueryString["TID"].ToString();
            }
            catch (NullReferenceException err)
            {
                throw err;
            }
            if (type.ToString() == "upd")
            {
                this.Txt_TID.ReadOnly = true;
                this.Btn_Cmd.Text = "Update";
                Btn_Cmd.Click += new EventHandler(Btn_UPD_Click);
            }
            else
            {
                this.Txt_TID.ReadOnly = true;
                this.Btn_Cmd.Text = "Insert";
                Btn_Cmd.Click += new EventHandler(Btn_ADD_Click);
                this.Txt_TID.Text = (Convert.ToInt32(lt.FindAll(N => N.TId.Contains(TID)).Max(I => I.TId)) + 1).ToString().PadLeft(TID.Length + 2, '0');        }    }
        protected void Btn_UPD_Click(object sender, EventArgs e)
        {
           //Update
           //取list.find 然后用值替换
            Session["TreeData"] = lt;
            Response.Redirect("TreeView.aspx");
        }
        protected void Btn_ADD_Click(object sender, EventArgs e)
        {   
            //insert
            //list.add方法
            Session["TreeData"] = lt;
            Response.Redirect("TreeView.aspx");    }
    }实体的
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;/// <summary>
    ///ModelTree 的摘要说明
    /// </summary>
    [Serializable]
    public class ModelTree
    {
        public ModelTree()
        { }    private string _TId;    public string TId
        {
            get { return _TId; }
            set { _TId = value; }
        }
        private string _TName;    public string TName
        {
            get { return _TName; }
            set { _TName = value; }
        }
        private int _IsParent;    public int IsParent
        {
            get { return _IsParent; }
            set { _IsParent = value; }
        }
    }
    就这个思路。自己看着弄算了。
    添加那块 我没去判断IsParent.所以加载出有些问题