Heim > Datenbank > MySQL-Tutorial > Treeview绑定数据库

Treeview绑定数据库

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 15:47:37
Original
1769 Leute haben es durchsucht

1.建立一个表,表中有三个字段,分别为id、父id、名称,然后往里面插入些数据2.注意:如果没有父id则是空(NULL),什么东西也不要填写,必须是NULL 3 .aspx 页面上要添加一个Treeview1控件! 4 .aspx.cs页面中的代码: using System;using System.Collectio

1.建立一个表,表中有三个字段,分别为id、父id、名称,然后往里面插入些数据

2.注意:如果没有父id则是空(NULL),什么东西也不要填写,必须是NULL
Nach dem Login kopieren
3 .aspx 页面上要添加一个Treeview1控件!
Nach dem Login kopieren
4 .aspx.cs页面中的代码:
Nach dem Login kopieren
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace Test
{
    public partial class TreeViewBind : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Bind_Tv(TreeBind(), TreeView1.Nodes, null, "id", "parent_id", "name");                
            }

        }
        public DataTable TreeBind()
        {
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Test;User ID=sa;Password=123456");
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "select * from TreeView";
            cmd.Connection = con;
            con.Open();
            DataTable dt = new DataTable() ;
            dt.Load(cmd.ExecuteReader());
            con.Close();
            return dt;

        }


        /// 绑定TreeView(利用TreeNodeCollection)
        /// 
        /// <param name="tnc">TreeNodeCollection(TreeView的节点集合)
        /// <param name="pid_val">父id的值
        /// <param name="id">数据库 id 字段名
        /// <param name="pid">数据库 父id 字段名
        /// <param name="text">数据库 文本 字段值
        private void Bind_Tv(DataTable dt, TreeNodeCollection tnc, string pid_val, string id, string pid, string text)
        {
            DataView dv = new DataView(dt);//将DataTable存到DataView中,以便于筛选数据
            TreeNode tn;//建立TreeView的节点(TreeNode),以便将取出的数据添加到节点中
            //以下为三元运算符,如果父id为空,则为构建“父id字段 is null”的查询条件,否则构建“父id字段=父id字段值”的查询条件
            string filter = string.IsNullOrEmpty(pid_val) ? pid + " is null" : string.Format(pid + "='{0}'", pid_val);
            dv.RowFilter = filter;//利用DataView将数据进行筛选,选出相同 父id值 的数据
            foreach (DataRowView drv in dv)
            {
                tn = new TreeNode();//建立一个新节点(学名叫:一个实例)
                tn.Value = drv[id].ToString();//节点的Value值,一般为数据库的id值
                tn.Text = drv[text].ToString();//节点的Text,节点的文本显示
                tn.NavigateUrl = "Test1.aspx?id=" + drv["id"].ToString();//点击要到的页面
                tnc.Add(tn);//将该节点加入到TreeNodeCollection(节点集合)中
                Bind_Tv(dt, tn.ChildNodes, tn.Value, id, pid, text);//递归(反复调用这个方法,直到把数据取完为止)
            }
        }
        
    }
} 

Nach dem Login kopieren
 
Nach dem Login kopieren

  1   treeview 递归调用

  public void TreeBind()
        {
            BLLSorts bllSort = new BLLSorts();
            DataTable dt = bllSort.SelSortByType(4);
            TreeNode node = null;
            foreach (DataRow row in dt.Rows)
            {
                node = new TreeNode();
                node.Text = row["sname"].ToString();
                node.Value = row["sid"].ToString();
                TreeView1.Nodes.Add(node);               
                TreeNodeAdd(TreeData(Convert.ToInt32(row["sid"])), node);
            }
        }      
        public DataTable TreeData(int parentID)
        {
            BLLSorts bllSort = new BLLSorts();
            DataTable dt = bllSort.SelSortByParentID(parentID);
            return dt;
        }
        public void TreeNodeAdd(DataTable dt,TreeNode node)
        {
            TreeNode t = null;
            foreach (DataRow row in dt.Rows)
            {
                t = new TreeNode();
                t.Text = row["sname"].ToString();
                t.Value = row["sid"].ToString();              
                node.ChildNodes.Add(t);
                TreeNodeAdd(TreeData(Convert.ToInt32(row["sid"])), t);
            }
        }    

2 递归查询treeview那些节点被选中

 public void ZbsBind()
        {
            int uid = Convert.ToInt32(Request.QueryString["uid"]);
            Users user = new BLLUsers().SelByID(uid);
            string zbIDs = user.zbIDs;
            string[] zbArray = zbIDs.Split(',');        
            foreach (TreeNode node in TreeView1.Nodes)
            {
                foreach (string id in zbArray)
                {
                    if (node.Value.Equals(id))
                    { node.Checked = true; }
                    nodeCheck(node, id);
                }
            }
        }

 public void nodeCheck(TreeNode node,string id)
        {           
            foreach (TreeNode t in node.ChildNodes)
            {
                if (t.Value.Equals(id))
                {
                    t.Checked = true;                  
                }
                nodeCheck(t, id);
            }
           
        }

3 treeview复选框被选中节点的value值:

string insertQXLB =string.Empty;
            foreach (TreeNode t in TreeView1.CheckedNodes)
            {
                insertQXLB += t.Value + ",";
            }

 4 Treeview  checkbox级联选择  在treeview中加入onclick="javascript: OnTreeNodeChecked() ;" 

 

Treeview绑定数据库数据截图

 

Treeview绑定数据库最终效果图

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage