急需一个能删除、添加、移动、修改的四个功能目录树!不知道哪位大侠有源码!能不能贴出来啊!

解决方案 »

  1.   

    把你的目录存在数据库中,tree的数据从数据库中读取!
    代码太长你还是到网上搜索一下!很多
      

  2.   

    我做的是用了GridView控件来添加,删除,修改等等,然后这些数据都是保存在数据库中的,然后从数据库中调用数据来显示模型树。
    TreeViewM.Nodes[0].ChildNodes[0].ChildNodes.Add(chtn);
    这是添加时的关键代码
      

  3.   

    机构管理(树形结构)不知道是不是你所说的那样。这里有新建,编辑和删除功能。
    后台代码: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 deptree : System.Web.UI.Page
    {
        DataSet ds = new DataSet();
        protected void Page_Load(object sender, EventArgs e)
        {
            
            if (Session["UserName"] == null || Session["LogState"] == null)
            {
                Response.Redirect("error.aspx?id=1");
            }
            //如果用户不是机构管理员,则不能进行此项操作
            if (Session["UserTYpe"].ToString() != "2")
                Response.Redirect("error.aspx?id=3");        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["iqmssup_bsConnectionString"].ToString());
            SqlCommand cmd = new SqlCommand("select placeno,placename,parentplaceid from placeinfo where placeno like '" + Session["UserNamePlaceIDLike"].ToString() + "'", conn);
            SqlDataAdapter sad = new SqlDataAdapter(cmd);
            sad.Fill(ds);
            if (!IsPostBack)
            {
                AddNode(Session["UserNameParentPlaceID"].ToString(), (TreeNode)null, TreeView1);//应将此处的父节点编号替换为用户所在机构的上级机构的编号
            }
           
            Panel1.Enabled = false;
        }
        protected void AddNode(string ParentKey, TreeNode pNode, TreeView myTreeView)
        {        DataView dvTree = new DataView(ds.Tables[0]);
            dvTree.RowFilter = "[ParentplaceID] = " + ParentKey;    //过滤ParentID,得到所有子节点 
            foreach (DataRowView Row in dvTree)
            {
                TreeNode Node = new TreeNode();
                if (pNode == null)
                {
                    Node.Text = Row["placeName"].ToString().Trim();
                    myTreeView.Nodes.Add(Node);
                    //Node.Expanded = true;
                    Node.Value = Row["placeno"].ToString().Trim();
                    Node.SelectAction = TreeNodeSelectAction.Select;
                    AddNode(Row["placeno"].ToString(), Node, myTreeView);    //递归调用生成节点 
                }
                else
                {
                    Node.Text = Row["placename"].ToString().Trim();
                    pNode.ChildNodes.Add(Node);
                    Node.Expanded = true;
                    Node.Value = Row["placeno"].ToString().Trim();
                    Node.SelectAction = TreeNodeSelectAction.Select;
                    AddNode(Row["placeno"].ToString(), Node, myTreeView);        //递归生成节点 
                }
            }
        }   
      

  4.   

    接上贴。
        protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            placeno.Text = "";
            placename.Text = "";
            memo.Text = "";
            contact.Text = "";
            phone.Text = "";
            parentPlaceName.Text = "";
            //填充数据
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["iqmssup_bsConnectionString"].ToString());
            SqlCommand cmd = new SqlCommand("select * from placeinfo where placeno='" + TreeView1.SelectedNode.Value.ToString() + "'", conn);
            try
            {
                conn.Open();
                SqlDataReader rdPlaceInfo = cmd.ExecuteReader();
                while (rdPlaceInfo.Read())
                {
                    placeno.Text = rdPlaceInfo["placeno"].ToString();
                    placename.Text = rdPlaceInfo["placename"].ToString();
                    memo.Text = rdPlaceInfo["placememo"].ToString();
                    contact.Text = rdPlaceInfo["contact"].ToString();
                  phone.Text = rdPlaceInfo["phone"].ToString();
                }
            }
            catch (Exception  e2)
            {
                throw new Exception(e2.Message + "%SQLtxt" + cmd.CommandText + "%UserName" + Session["UserID"].ToString());
           }
            finally
            {
                conn.Close();
            }
            SqlCommand cmd2 = new SqlCommand("select placename from placeinfo where placeno =  (select parentplaceid from placeinfo where placeno='" + TreeView1.SelectedNode.Value.ToString() + "')", conn);
            try
            {
                conn.Open();
                SqlDataReader rdparentplaccename = cmd2.ExecuteReader();
                while (rdparentplaccename.Read())
                {
                    if (rdparentplaccename["placename"] == null)
                    {                    return;
                    }
                    else
                    {
                        parentPlaceName.Text = rdparentplaccename["placename"].ToString();
                    }
                }        }
            catch (Exception e2)
            {
                throw new Exception(e2.Message + "%SQLtxt" + cmd2.CommandText + "%UserName" + Session["UserID"].ToString());
            }
            finally
            {
                conn.Close();
            }
        }
     
     
      

  5.   

    PS:
    数据库结构啥的:
    USE [psBankOfChina]
    GO
    /****** 对象:  Table [dbo].[PlaceInfo]    脚本日期: 03/25/2009 19:28:27 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[PlaceInfo](
    [PlaceNo] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [PlaceName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [PlaceMemo] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [Contact] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
    [Phone] [varchar](15) COLLATE Chinese_PRC_CI_AS NULL,
    [ParentPlaceId] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
     CONSTRAINT [PK_placeInfo] PRIMARY KEY CLUSTERED 
    (
    [PlaceNo] ASC
    ) ON [PRIMARY]
    ) ON [PRIMARY]GO
    SET ANSI_PADDING OFF
    GO
      

  6.   

    代码太长了。
    MD,只能输入8K个字符。
      

  7.   

    http://www.cnblogs.com/sunnystar365/articles/280121.html
      

  8.   

        [PlaceNo] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
        [PlaceName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
        [PlaceMemo] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
        [Contact] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
        [Phone] [varchar](15) COLLATE Chinese_PRC_CI_AS NULL,
        [ParentPlaceId] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
                        软件开发交流群 58773512 欢迎加入!!!!!
      

  9.   

    呵呵,我研究了咯!自己手写的,没有用空间,感觉自己又回到asp的手写时代了!HOHO!
      

  10.   

    呵呵,我研究了咯!自己手写的,没有用控件,感觉自己又回到asp的手写时代了!HOHO!
      

  11.   

    不难实现,网上例子很多。
    与后台交互最好要使用ajax,否则编辑、删除、新增的时候,会造成页面重刷。
      

  12.   

    楼主说的是不是这个呢??关键字:ASP TreeView非常快速并且非常小(only 44 KB) 的.Net Treeview控件. 易于使用并且样式丰富,并且你还可以自己设置节点的HTML标签Basic版本(小于20个节点)免费!
    此产品包含在产品集合 obout components Suite 中。More Features:
         From/To XML file
        Populate from XML file with one line of code
        Loading Web style
        WhiteR style
        XpBlue style
        Gray style
        TsMenu style
        Open in Search pane
        Find Selected Node
        From Dennis
        Checkboxes
        How To add checkboxes
        Select multiple nodes
        Show File System
        File System Loading
        Edit nodes
        Keyboard Navigation
        Icons for treeview
        Customize
        How-To and HelpASP TreeView Vista Theme