【jackyrong 】asp.net 2.0中TREEVIEW中動態增加結點
在asp.net 2.0中,要動態從資料庫中取出內容,動態增加結點,其實不難,比如以SQL SERVER 2000的PUBS資料庫為例子,要以樹型列表方式,取出作者,做為根結點,然後取出每位作者寫過什麼書,作為子結點,可以這樣
-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
http://www.w3.org/1999/xhtml">
Dynamic Population of the TreeView Control
void FillAuthors(TreeNode node)
void FillTitlesForAuthors(TreeNode node)
其中,注意ontreenodepopulate事件,是在展開樹的結點時發生的,這裡定義了自定義的NODE_POPULATE,在node_populate中,檢查當前結點的深度,如果是0,就是根結點,於是就呼叫FillAuthors過程,取出所有的作者,如果深度是1,則是葉子結點,呼叫FillTitlesForAuthors過程。其中,要注意它們中的動態建立樹結點的過程,如:
TreeNode newNode = new TreeNode(row["au_fname"].ToString() + " " +
-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
http://www.w3.org/1999/xhtml">
void Node_Populate(object sender,
System.Web.UI.WebControls.TreeNodeEventArgs e)
{
if(e.Node.ChildNodes.Count == 0)
{
switch( e.Node.Depth )
{
case 0:
FillAuthors(e.Node);
break;
case 1:
FillTitlesForAuthors(e.Node);
break;
}
}
}
void FillAuthors(TreeNode node)
{
string connString = System.Configuration.ConfigurationSettings.
ConnectionStrings["NorthwindConnnection"].ConnectionString;
SqlConnection connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand("Select * From
authors",connection);
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet authors = new DataSet();
adapter.Fill(authors);
if (authors.Tables.Count > 0)
{
foreach (DataRow row in authors.Tables[0].Rows)
{
TreeNode newNode = new
TreeNode(row["au_fname"].ToString() + " " +
row["au_lname"].ToString(),
row["au_id"].ToString());
newNode.PopulateOnDemand = true;
newNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(newNode);
}
}
}
void FillTitlesForAuthors(TreeNode node)
{
string authorID = node.Value;
string connString = System.Configuration.ConfigurationSettings.
ConnectionStrings["NorthwindConnnection"].ConnectionString;
SqlConnection connection = new SqlConnection(connString);
SqlCommand command = new SqlCommand("Select T.title,
T.title_id From titles T" +
" Inner Join titleauthor TA on
T.title_id = TA.title_id " +
" Where TA.au_id = '" + authorID + "'", connection);
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet titlesForAuthors = new DataSet();
adapter.Fill(titlesForAuthors);
if (titlesForAuthors.Tables.Count > 0)
{
foreach (DataRow row in titlesForAuthors.Tables[0].Rows)
{
TreeNode newNode = new TreeNode(
row["title"].ToString(), row["title_id"].ToString());
newNode.PopulateOnDemand = false;
newNode.SelectAction = TreeNodeSelectAction.None;
node.ChildNodes.Add(newNode);
}
}
}
CollapseImageUrl="Images/open.gif"
OnTreeNodePopulate="Node_Populate" ID="tvwauthors">
Value="0"/>
其中,注意ontreenodepopulate事件,是在展開樹的結點時發生的,這裡定義了自定義的NODE_POPULATE,在node_populate中,檢查當前結點的深度,如果是0,就是根結點,於是就呼叫FillAuthors過程,取出所有的作者,如果深度是1,則是葉子結點,呼叫FillTitlesForAuthors過程。其中,要注意它們中的動態建立樹結點的過程,如:
TreeNode newNode = new TreeNode(row["au_fname"].ToString() + " " +
row["au_lname"].ToString(),
row["au_id"].ToString());
newNode.PopulateOnDemand = true;
newNode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(newNode);
其中, popluateondemand屬性表明,該結點會動態擴充套件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-330991/,如需轉載,請註明出處,否則將追究法律責任。
請登入後發表評論
登入
全部評論
相關文章
- asp.net TreeView動態新增ASP.NETView
- 【jackyrong 】asp.net 2.0中 updatepannel(1)ASP.NET
- OpenResty + Lua 動態增加 Zuul 節點RESTZuul
- 資料庫驅動的asp.net treeview資料庫ASP.NETView
- asp.net TreeView 的使用ASP.NETView
- 動態menu導航條以及treeview樹View
- 【jackyrong 】asp.net 2.0中在gridview中使用DataFromatStringASP.NETView
- 【jackyrong】asp.net 2.0中使用sitemapDATAsource做頁面導航ASP.NET
- 【轉載】WPF中TreeView控制元件資料繫結和後臺動態新增資料(一)View控制元件
- Asp.Net中動態頁面轉靜態頁面ASP.NET
- mysql cluster 7 動態增加資料節點配置步驟MySql
- 【jackyrong】asp.net 2.0常見問題技2ASP.NET
- 基於jquery-treeview的動態選單實現jQueryView
- Delphi中的TreeViewView
- TreeView樹狀結構View
- java中的靜態繫結與動態繫結Java
- DM8動態增加讀寫分離叢集節點
- JAVA動態增加列舉項Java
- Asp.net利用Treeview實現樹形列表ASP.NETView
- 禁止TreeView自動PostbackView
- ASP.NET 2.0中動態修改頁面標題ASP.NET
- vue路由動態增加元件渲染Vue路由元件
- jQuery列表動態增加和刪除jQuery
- Fabric動態增加組織【資料】
- linux 動態增加一個ipLinux
- asp.net動態表格生成ASP.NET
- ASP.net中動態載入控制元件時一些問題的總結ASP.NET控制元件
- C# TreeView選單,MenuStrip選單遞迴動態生成例子C#View遞迴
- 統計報表中動態增加列的解決方法之一
- drools動態增加、修改、刪除規則
- 【wljcan】ASP.net中動態載入控制元件時一些問題的總結ASP.NET控制元件
- stm32 USB增加端點總結
- ASP.NET中,動態載入使用者控制元件ASP.NET控制元件
- ASP.NET 動態資料支援ASP.NET
- ASP.NET中的狀態管理ASP.NET
- Hive中靜態分割槽和動態分割槽總結Hive
- 繫結變數在靜態sql和動態sql中變數SQL
- TreeView 在失去焦點的時候 選中的TreeNode仍為高亮View