%@ Import Names" name="description" />

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • asp.net 2.0中TREEVIEW中動態增加結點

    發表于:2007-06-30來源:作者:點擊數: 標簽:
    在asp.net 2.0中,要動態從 數據庫 中取出內容,動態增加結點,其實不難,比如以 SQL SERVER 2000的PUBS數據庫為例子,要以樹型列表方式,取出作者,做為根結點,然后取出每位作者寫過什么書,作為子結點,可以這樣 %@ Page Language="C#"%> %@ Import Names
         在asp.net 2.0中,要動態從數據庫中取出內容,動態增加結點,其實不難,比如以SQL SERVER 2000的PUBS數據庫為例子,要以樹型列表方式,取出作者,做為根結點,然后取出每位作者寫過什么書,作為子結點,可以這樣
      
      <%@ Page Language="C#"%>
      <%@ Import Namespace="System.Data"%>
      <%@ Import Namespace="System.Data.SqlClient"%>
      <%@ Import Namespace="System.Configuration"%>
      
      <!DOCTYPE htmlPUBLIC"-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
      
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head runat="server">
       <title>Dynamic Population of the TreeView Control</title>
       <script runat=server>
      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);
       }
       }
       }
      
       </script>
      </head>
      <body>
       <form id="form1" runat="server">
       <div>
       <asp:TreeViewRunat="Server" ExpandImageUrl="Images/closed.gif"
       CollapseImageUrl="Images/open.gif"
       OnTreeNodePopulate="Node_Populate" ID="tvwauthors">
       <Nodes>
       <asp:TreeNodeText="Authors" PopulateOnDemand=true
      Value="0"/>
       </Nodes>
       </asp:TreeView>
       </div>
       </form>
      </body>
      </html>
       其中,注意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屬性表明,該結點會動態擴展。
      
      

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>