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);