天天看點

treeview 控件動态綁定資料部分執行個體代碼

treeview 控件動态綁定資料部分執行個體代碼

一:

treeview 源教程執行個體部分代碼段

protected void page_load(object o ,eventargs e )

{//首先填充第一級節點

    dataview dv=擷取dataview視圖函數;

foreach(datarowview datav in dv)

    {//循環資料視圖,将對應的值交給一個節點對象,然後添加到樹上有繼續添加

      treenode tn=new TreeNode();

      tn.Text=datav("title").ToString();

      tn.Value=datav("bid").ToString();

      tn.Expanded=false;

      TreeView1.Nodes.Add(tn);

      AddchildNodes(tn);//調用方法填充二級節點

    }

}

private void AddchildNodes(TreeNode tn)

{//填充二級節點,他需要一級節點的value ,是以幹脆送了一個完整的根節點對象

   int bid=Convert.ToInt32(tn.Value);

DataView dv=drv("select * from class where bid="+bid+");

foreach(DataRowView datav in dv)

    {//同上

     TreeNode ctn=new TreeNode();

     ctn.Text=datav["title"].ToString();

     ctn.Value=datav["cid"].ToString();

     ctn.NavigateUrl="+datav["cid"].ToSring;

     tn.ChildNodes.Add(ctn);

     //把節點ctn加載到tn下面或者說添加為tn的子節點

//下面這段代碼的作用在于把選用節點的text值列印出來

protect void Button1_Click(object sender,Eventargs e)

{

 if(TreeView1.CheckedNodes.Count>0)

   {

     //如果有項被選中

       foreach(TreeNode tn in TreeView1.CheckedNodes)

          {//跌代所有被選中的節點

            if(tb.ChildNodes.Count>0)

              {//如果被選中項下面還有子節點

                 foreach(TreeNode ctn in tn.ChildNodes)

                    {//疊代所有子節點,把值讀出來

                        Response.Write(ctn.Text+"<br>");

                    }     

              }

               else

                {

                  //如果下面沒有節點了,說明是葉節點,那麼直接讀出被選取項的值

                   Response.Write(tn.Text+"<br>");

                }

          }

   }

============================================================================

treeview 執行個體代碼段(待續)

using System;

using System.Data;

using System.Configuration;

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;

public partial class _Default : System.Web.UI.Page

    TreeNode tn = new TreeNode();

    protected void Page_Load(object sender, EventArgs e)

    {

        TreeView1.ShowLines = true;

        TreeView1.ToolTip = "a test";

        TreeView1.ShowExpandCollapse = true;

        TreeView1.ShowCheckBoxes = TreeNodeTypes.Leaf;

        if (!IsPostBack)

        {

            tn.Text = "根結點";

            tn.Value = "rootnode";

            tn.Expanded = true;

            TreeView1.Nodes.Add(tn);

            addlevel2nodes(tn);

        }

        else

        }  

    protected void addlevel2nodes(TreeNode fathertn)

        string conn = "Server=localhost;Database=bookshop;Uid=sa;Pwd=asen";

        Userinfo userinfo1 = new Userinfo(conn);

        DataView dv1 = userinfo1.selectalluserinfo();

        foreach (DataRowView dv in dv1)

            TreeNode tn = new TreeNode();

            tn.Text = dv["username"].ToString();

            tn.Value = dv[3].ToString();

            fathertn.ChildNodes.Add(tn);          

方法 二

注意在設計資料庫時,ID為自動增長,ROWID 是基于父節點ID的子節點

using System.Collections;

using System.Data.SqlClient;

public partial class TreeView : System.Web.UI.Page

      protected void Page_Load(object sender, EventArgs e)

      {

          if (!IsPostBack)

          {

              InitTreeView();

              TreeView1.Target = "main"; //架構的NAME

      }

      private void InitTreeView()

          string strSqlSelete = "SELECT ID,NAME,URL,ROWID,PIC FROM TREE1";

          DataView dataview = GetTreeDataView(strSqlSelete);

          dataview.RowFilter = "ROWID=0";

          foreach (DataRowView AddDataView in dataview)

              TreeNode node = new TreeNode();

              node.Text = AddDataView["NAME"].ToString();

              node.Value = AddDataView["ID"].ToString();

              node.NavigateUrl = AddDataView["URL"].ToString();

              node.ImageUrl = AddDataView["PIC"].ToString();

              node.ImageToolTip = "首頁圖象";

              TreeView1.Nodes.Add(node);

              AddChildNodes(node);

      private DataView GetTreeDataView(string strSQL)

          ConnClass conn = new ConnClass();

          SqlConnection Conn = new SqlConnection(conn.GetStrConnction);

          SqlDataAdapter da = new SqlDataAdapter(strSQL, Conn);

          DataSet ds = new DataSet();

          da.Fill(ds, "TreeView");

         return ds.Tables["TreeView"].DefaultView;

      private void AddChildNodes(TreeNode ChildNode)

          int ROWID = Convert.ToInt32(ChildNode.Value);

          DataView dataview = GetTreeDataView("SELECT ID,NAME,URL,PIC FROM TREE1 WHERE ROWID=" + ROWID);

          foreach (DataRowView AddChilDataView in dataview)

              TreeNode Node = new TreeNode();

              Node.Text = AddChilDataView["NAME"].ToString();

              Node.Value = AddChilDataView["ID"].ToString();

              Node.NavigateUrl = AddChilDataView["URL"].ToString();

              Node.ImageUrl = AddChilDataView["PIC"].ToString();

              Node.ImageToolTip = AddChilDataView["NAME"].ToString();

              Node.ToolTip=AddChilDataView["NAME"].ToString();

              ChildNode.ChildNodes.Add(Node);

              AddChildNodes(Node);

方法三

TreeView綁定省市的代碼。

=============================================

protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {//首先填充第一級節點。

            DataView dv = GetDv("select * from prov");

            foreach(DataRowView datav in dv)

             {     //循環資料視圖,将對應的資料交給一個節點對象,然後添加到樹上繼續填加         

            TreeNode tn = new TreeNode();

            tn.Text = datav["prov"].ToString();

            tn.Value = datav["provid"].ToString();

            tn.Expanded = false;

            TreeView1.Nodes.Add(tn);

            AddChildNode(tn);

            }

        }

    }

    private DataView GetDv(string sql)

    {//根據傳來的sql語句傳回一個DataView資料式圖

        OleDbConnection conn = new OleDbConnection();

        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="

        + Server.MapPath("~/") + @"//App_Data//data.mdb;Persist Security Info=True";

        conn.Open();

        OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);

        DataSet ds = new DataSet();

        da.Fill(ds, "Tree");

        return ds.Tables["Tree"].DefaultView;

    private void AddChildNode(TreeNode tn)

    {//填充二級節點,需要一級節點的Value,是以直接傳了個TreeNode

        int provID = Convert.ToInt32(tn.Value);

        DataView dv = GetDv("select * from city where provid=" + provID + "");

        foreach (DataRowView datav in dv)

        {

            TreeNode Ctn = new TreeNode();

            Ctn.Text = datav["city"].ToString();

            Ctn.Value = datav["cityId"].ToString();

            Ctn.NavigateUrl = "Detail.aspx?id="+datav["cityid"].ToString()+"";

            Ctn.Target = "_blank";

            tn.ChildNodes.Add(Ctn);