动态树2070208

    技术2022-05-11  67

      public   void  BindFavoriteTree(){         this .treeV_Favorite.Nodes.Clear();        TreeNode node  =   new  TreeNode();    // 这里是创建一个根节点,就是dome中看到的Root          node.Text  =   " HelpFavorite " ;        node.Value  =   " 1 " ;        CreateChildTree(node,  1 );        treeV_Favorite.Nodes.Add(node);        node.SelectAction  =  TreeNodeSelectAction.Expand;        TreeNode node1  =   new  TreeNode();        node1.Text  =   " HelpSearch " ;        node1.Value  =   " 2 " ;        CreateChildTree(node1,  2 );        treeV_Favorite.Nodes.Add(node1);        node1.SelectAction  =  TreeNodeSelectAction.Expand;    }     protected   void  CreateChildTree(TreeNode _parentNode,  int  _parentID){         using  (SqlConnection _conn  =   new  SqlConnection(constring)){            SqlCommand _comm  =   new  SqlCommand();             string  sql  =   " SELECT IDFavorite, Title, Status, IDHelpFile FROM V_Favorite where status=@rootid " ;            _comm.Parameters.Add( " @rootid " , SqlDbType.Int).Value  =  _parentID;            _comm.CommandText  =  sql;            _comm.Connection  =  _conn;            _conn.Open();             using  (SqlDataReader r  =  _comm.ExecuteReader())            {                 while  (r.Read())               {                    TreeNode _node  =   new  TreeNode();                    _node.Text  =  r[ " Title " ].ToString();                    _node.Value  =  r[ " IDHelpFile " ].ToString();                    _node.ShowCheckBox  =   true ;                     // CreateChildTree(_node, (int)r["ID"]);   // 递归出子节点                      _parentNode.ChildNodes.Add(_node);                }            }        }    }  

     按钮删除功能:

         protected   void  imgBtn_DelFavorite_Click( object  sender, ImageClickEventArgs e)     {        foreach ( TreeNode node in treeV_Favorite.CheckedNodes)        {            string SelectTreeID = node.Value;            string strDelete = "delete from CD_HC_Favorite where IDUser='" + UserProfile.UserInfo.UserID.ToString() + "' and IDHelpFile='" + SelectTreeID + "' and status = '"+node.Parent.Value+"'";            PubLibrary.cmdExecute(strDelete);        }        BindFavoriteTree();    }

    ==============================================================================下面介绍第二中方法前台:

    <% @ Page Language="C#" AutoEventWireup="true" CodeFile="AutoTree.aspx.cs" Inherits="AutoTree_AutoTree"  %> <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html  xmlns ="http://www.w3.org/1999/xhtml"   > < head  runat ="server" >      < title > AutoTree </ title > </ head > < body > < form  id ="form1"  runat ="server" >      < div >          < asp:TreeView  ID ="AutoTree"  runat ="server"  ShowLines ="True" >          </ asp:TreeView >               < asp:DropDownList  ID ="ddlTreeNode"  runat ="server"  DataSourceID ="SqlDataSource1"             DataTextField ="TreeName"  DataValueField ="TreeValue" >          </ asp:DropDownList >          < asp:TextBox  ID ="txtNode"  runat ="server" ></ asp:TextBox >          < asp:SqlDataSource  ID ="SqlDataSource1"  runat ="server"  ConnectionString ="<%$ ConnectionStrings:ConnectionString %>"             SelectCommand ="SELECT [TreeValue], [TreeName] FROM [AutoTree]" ></ asp:SqlDataSource >                        < asp:Button  ID ="btnSubmit"  runat ="server"  Text ="Submit"  OnClick ="btnSubmit_Click"  Width ="60px"   />        </ div >      </ form > </ body > </ html >

     

     后台:

     

    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  AutoTree_AutoTree : System.Web.UI.Page {    protected string constring = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();    protected void Page_Load(object sender, EventArgs e)   {        if (!Page.IsPostBack)       {            InitTree();        }    }    // 递归绑定同一个表数据    private void InitTree()    {        DataTable dt = GetTreeViewTable();        DataView dv = new DataView(dt);        dv.RowFilter = "TreeParentID='0'";        foreach (DataRowView drv in dv)      {           TreeNode node = new TreeNode();            node.Text = drv["TreeName"].ToString();            node.Value = drv["TreeValue"].ToString();            //node.ImageUrl = drv["TreeIco"].ToString();            node.Expanded = true;            AutoTree.Nodes.Add(node);            AddReplies(dt, node);        }    }    private DataTable GetTreeViewTable()   {               SqlConnection con = new SqlConnection(constring);        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM AutoTree", con);        DataTable dt = new DataTable();        da.Fill(dt);        return dt;    }    private void AddReplies(DataTable dt, TreeNode node)    {            DataView dv = new DataView(dt);            dv.RowFilter = "TreeParentID='" + node.Value + "'";            foreach (DataRowView row in dv)           {                TreeNode replyNode = new TreeNode();                replyNode.Text = row["TreeName"].ToString();                replyNode.Value = row["TreeValue"].ToString();                //replyNode.ImageUrl = row["TreeIco"].ToString();                //replyNode.NavigateUrl = row["TreeLink"].ToString().Trim();                //replyNode.Target = row["TargetStr"].ToString().Trim();                replyNode.Expanded = false;                node.ChildNodes.Add(replyNode);                AddReplies(dt, replyNode);            }    }    protected void btnSubmit_Click(object sender, EventArgs e)    {        //string rootID = this.AutoTree.SelectedValue;        string rootID = ddlTreeNode.SelectedValue.ToString();        string txtNode = this.txtNode.Text;        using (SqlConnection Conn = new SqlConnection(constring))        {            SqlCommand cmd = new SqlCommand("insert into AutoTree (TreeName,TreeParentID,TreeValue) values (@TreeName,@TreeParentID,@TreeName)", Conn);            cmd.Parameters.Add("@TreeName", SqlDbType.NVarChar, 50).Value = txtNode;            cmd.Parameters.Add("@TreeParentID", SqlDbType.NVarChar, 50).Value = rootID;            Conn.Open();            cmd.ExecuteNonQuery();            ddlTreeNode.ClearSelection();            ddlTreeNode.DataSourceID = SqlDataSource1.ID;            this.txtNode.Text = "";        }                this.AutoTree.Nodes.Clear();        InitTree();    }}

     

     

    数据库:ID,TreeParentID,TreeValue,TreeName.

    第一条数据的 TreeParentID=0,TreeValue=1

     

    最新回复(0)