Ajax TreeView綁定資料庫(一)

來源:互聯網
上載者:User

TreeView控制項
  TreeView控制項顯示Node對象的等級體繫結構,每個Node對象包含了一個標籤和可選的點位元影像。TreeView控制項通常用於顯示文檔頭、索引中的條目、磁碟上的檔案和目錄或者可以顯示為等級結構的各種其他資訊。

  在建立了TreeView控制項之後,你可以設定Node對象的屬性和調用其方法增加、刪除或者操縱Node對象。可以編程展開或收縮Node節點以便顯示或隱藏所有的子節點。事件Collapse, Expand和NodeClick提供了在程式中使用的功能。

  使用Root, Parent, Child, FirstSibling, Next, Previous和LastSibling屬性可以檢取Node對象的引用,從而在程式碼中瀏覽節點樹。在樹的根部,選擇則跳到樹頭,如果有必要就滾動視窗。

  TreeView控制項的外觀有幾種選擇。Node對象可以表現為文本,點位元影像,線條和加減號的8種組合之一。

  TreeView控制項使用ImageList屬性指定的ImageList控制項儲存在Node對象中使用的點位元影像和表徵圖。一個TreeView控制項一次只能使用一個ImageList。這意味著當TreeView控制項的Style屬性設定為顯示映像的風格時,TreeView控制項中的每個成員旁邊都顯示一個等大的映像。
Treeview 如何從資料庫中綁定呢。代碼如下:
 //得到根節點
       public void bindTree(int tableid)//從資料庫中擷取一個表的id,        {
           DataSet ds = new DataSet();
           using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["TreeviewConnectionString"].ConnectionString)) //串連資料庫
            {
              SqlCommand com = new SqlCommand("select * from table where tableid=" + tableid, conn);
                SqlDataAdapter da = new SqlDataAdapter(com);
                da.Fill(ds);
           }
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
           {
               TreeNode node = new TreeNode();
               node.PopulateOnDemand = false;
               node.Text = ds.Tables[0].Rows[i]["tablename"].ToString();
               node.Value = ds.Tables[0].Rows[i]["id"].ToString();
              node.Target = "frmright";
               node.NavigateUrl = ds.Tables[0].Rows[i]["tableurl"].ToString();
               TreeView1.Nodes.Add(node);

               
                node.Expanded = false;
                node.SelectAction = TreeNodeSelectAction.Expand;
               bindChildnodes(node);//調用子節點的方法
           }
        }

//得到子節點
         public void bindChildnodes(TreeNode rootnode)         {
            DataSet ds = new DataSet();
             using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["TreeviewConnectionString"].ConnectionString))
             {
                 SqlCommand com = new SqlCommand("select * from table where tableid=" + rootnode.Value, conn);
                SqlDataAdapter da = new SqlDataAdapter(com);
               da.Fill(ds);
            }
             for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
             {
                TreeNode node = new TreeNode();
                 node.Text = ds.Tables[0].Rows[i]["tablename"].ToString();
                 node.Value = ds.Tables[0].Rows[i]["id"].ToString();
                 node.Target = "frmright";
                node.NavigateUrl = ds.Tables[0].Rows[i]["tableurl"].ToString();

                rootnode.ChildNodes.Add(node);
                 bindChildnodes(node);
            }

         }

最後在頁面載入中調用得到根節點的方法即:bindTree(0)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.