本帖最后由 lzbjackwsm 于 2014-11-26 16:45:57 编辑

解决方案 »

  1.   

    http://blog.csdn.net/yangmingxing980/article/details/37656603
      

  2.   

    这个初始化一个TreeView,然后写几个事件
    选中一个节点,点击删除,弹出对话框,确认就删除,同时删除数据库,刷新页面,修改同理;
    添加,选中一个节点,弹出一个页面,给个选项添加子节点还是兄弟节点,然后添加就行了;
    如果想要那种可以拖动修改什么的,就不是treeview可以完成的了,就需要js另外开发控件了;
      

  3.   

    在TreeView中读取数据库数据显示在节点和父节点
    //从根节点开始递归填充TreeView控件
     protected SqlConnection myConn;
        protected SqlDataAdapter myAdapter;
        protected DataSet data;
        protected string query;
    protected void Page_Load(object sender, EventArgs e)
        {        if (!IsPostBack)
            {
                //获取数据连接语句,并创建数据库连接对象
                myConn = DBClass.GetConnection();
                CreateDataSet();
                InitTree(TreeView1.Nodes, "0");
            }    }//codego.net/tags/11/1/
    //从DataSet中取数据建树
     public DataSet CreateDataSet()
        {
            query = "select * from tbTree";
            myAdapter = new SqlDataAdapter(query, myConn);
            data = new DataSet();
            myAdapter.Fill(data, "tree");
            return data;    }
      //从根节点开始递归调用显示子树
        public void InitTree(TreeNodeCollection Nds, string parentId)
        {
            TreeNode NewNode;
            //data为存储建树数据信息的数据集
            //用父节点进行筛选数据集中信息
            DataRow[] rows = data.Tables[0].Select("parent_Id='" + parentId + "'");
            foreach (DataRow row in rows)
            {            NewNode = new
                    TreeNode(row["title"].ToString(),                            //设置父节点
                    row["Files_Id"].ToString(), "images/1.gif", row["NavigateUrl"].ToString(), "");
                Nds.Add(NewNode);
              
                InitTree(NewNode.ChildNodes, row["Files_Id"].ToString());//添加子节点
            }
        }
      protected void TreeView1_SelectedNodeChanged1(object sender, EventArgs e)
        {
            int nodeId = Convert.ToInt32(TreeView1.SelectedValue);//获取TreeView控件选择的值
            string url = DBClass.GetUrl(nodeId);//获取指定地址
            Response.Redirect(url.ToString());//转到指定页
        }
    //利用存储过程从数据库中获取TreeView中某个节点的关联地址
    public static GetUrl(int filesID)
    {
      SqlConnection myConnection = GetConnection();
      SqlCommand myCommand = new SqlCommand("GetUrl",myConnection);
    myCommand.CommandType=ConnandType.StoredProcedure;
    //添加参数
    SqlParameter FilsesId = new SqlParameter("@FilesId" , SqlDbType.Int,4);
    FilsesId.Value = filesId;
    myCommand.Parameters.Add(FilsesId);
    //添加参数
    SqlParameter Url = new SqlParameter("@Url", SqlDbType.NVarChar,100);
    Url.Direction = ParameterDirection.Output;
    myConnection.Open();
    myCommand.ExecuteNonQuery();
    string url Url.Value.ToString();
    myCommand.Dispose();
    myConnection.Dispose();
    return url;
    }