TreeView.PopulateNodesFromClient プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > TreeView.PopulateNodesFromClient プロパティの意味・解説 

TreeView.PopulateNodesFromClient プロパティ

メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。

クライアントからの要求に応じてノードにデータを設定するかどうかを示す値を取得または設定します。

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Property PopulateNodesFromClient As
 Boolean
Dim instance As TreeView
Dim value As Boolean

value = instance.PopulateNodesFromClient

instance.PopulateNodesFromClient = value
public bool PopulateNodesFromClient { get;
 set; }
public:
property bool PopulateNodesFromClient {
    bool get ();
    void set (bool value);
}
/** @property */
public boolean get_PopulateNodesFromClient ()

/** @property */
public void set_PopulateNodesFromClient (boolean
 value)
public function get PopulateNodesFromClient
 () : boolean

public function set PopulateNodesFromClient
 (value : boolean)

プロパティ値
クライアントからの要求に応じてツリー ノード データを設定する場合は true。それ以外の場合は false。既定値は true です。

解説解説

データのサイズやカスタム コンテンツがユーザーの入力に依存する場合もあるため、ツリー構造をあらかじめ静的に定義するのは現実的ではありません。このため、TreeView コントロールはノードへの動的なデータ設定をサポートしています。ノードの PopulateOnDemand プロパティが true に設定されたノードは、実行時にノードが展開された時点でデータが設定されます。

必要に応じてノードにデータを設定する以外に、サポートされているクライアント ブラウザで直接ノードにデータを設定することもできます。PopulateNodesFromClient プロパティが true に設定されている場合、クライアントからサービスが呼び出されてツリー ノードにデータが設定されるため、サーバーへのポストバックが不要になります。それ以外の場合、TreeView コントロールはサーバーにポスト バックしてノードにデータを設定します。

メモメモ

PopulateNodesFromClient プロパティを true に設定するには、EnableClientScript プロパティも true に設定する必要があります。

クライアント上のノードにデータを設定するには、まず PopulateNodesFromClient プロパティを true に設定してから、ノードの PopulateOnDemand プロパティを true に設定します。次に、プログラムによってノードに値を設定する TreeNodePopulate イベントのイベント処理メソッドを定義します。通常、イベント処理メソッドはデータ ソースからノード データを取得して、データをノード構造に配置し、値が設定されるノードの ChildNodes コレクションにそのノード構造を追加します。TreeNode オブジェクトを親ノードの ChildNodes コレクションに追加すると、ノード構造が作成されます。

メモメモ

ノードの PopulateOnDemand プロパティが true に設定されている場合、ノードには動的に値が設定される必要があります。ノードの下に別のノードを宣言によって入れ子にすることはできません。それ以外の場合、ページでエラーが発生します。

このプロパティの値はビューステートに格納されます。

使用例使用例

PopulateNodesFromClient プロパティを使用して、TreeView コントロールのノードのクライアント側でのデータ設定を有効にする方法を次のコード例に示します。クライアント側のノードへのデータ設定が有効な場合、サーバーにポスト バックしなくても、クライアントのノードに動的にデータが設定されます。

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data"
 %>
<%@ Import Namespace="System.Data.SqlClient"
 %>

<script runat="server">

  Sub PopulateNode(ByVal sender As
 Object, ByVal e As TreeNodeEventArgs)

    ' Call the appropriate method to populate a node at a particular
 level.
    Select Case e.Node.Depth

      Case 0
        ' Populate the first-level nodes.
        PopulateCategories(e.Node)

      Case 1
        ' Populate the second-level nodes.
        PopulateProducts(e.Node)

      Case Else
        ' Do nothing.

    End Select

  End Sub

  Sub PopulateCategories(ByVal node As
 TreeNode)

    ' Query for the product categories. These are the values
    ' for the second-level nodes.
    Dim ResultSet As DataSet = RunQuery("Select
 CategoryID, CategoryName From Categories")

    ' Create the second-level nodes.
    If ResultSet.Tables.Count > 0 Then

      ' Iterate through and create a new node for each row in the query
 results.
      ' Notice that the query results are stored in the table of the
 DataSet.
      Dim row As DataRow

      For Each row In ResultSet.Tables(0).Rows

        ' Create the new node. Notice that the CategoryId is stored
 in the Value property 
        ' of the node. This will make querying for items in a specific
 category easier when
        ' the third-level nodes are created. 
        Dim newNode As TreeNode = New
 TreeNode()
        Newnode.Text = row("CategoryName").ToString()
 
        Newnode.Value = row("CategoryID").ToString()

        ' Set the PopulateOnDemand property to true so that the child
 nodes can be 
        ' dynamically populated.
        newNode.PopulateOnDemand = True

        ' Set additional properties for the node.
        newNode.SelectAction = TreeNodeSelectAction.Expand

        ' Add the new node to the ChildNodes collection of the parent
 node.
        node.ChildNodes.Add(newNode)

      Next

    End If

  End Sub

  Sub PopulateProducts(ByVal node As
 TreeNode)

    ' Query for the products of the current category. These are the
 values
    ' for the third-level nodes.
    Dim ResultSet As DataSet = RunQuery("Select
 ProductName From Products Where CategoryID=" & node.Value)

    ' Create the third-level nodes.
    If ResultSet.Tables.Count > 0 Then

      ' Iterate through and create a new node for each row in the query
 results.
      ' Notice that the query results are stored in the table of the
 DataSet.
      Dim row As DataRow

      For Each row In ResultSet.Tables(0).Rows

        ' Create the new node.
        Dim NewNode As TreeNode = New
 TreeNode(row("ProductName").ToString())

        ' Set the PopulateOnDemand property to false, because these
 are leaf nodes and
        ' do not need to be populated.
        NewNode.PopulateOnDemand = False

        ' Set additional properties for the node.
        NewNode.SelectAction = TreeNodeSelectAction.None

        ' Add the new node to the ChildNodes collection of the parent
 node.
        node.ChildNodes.Add(NewNode)

      Next

    End If

  End Sub

  Function RunQuery(ByVal QueryString As
 String) As DataSet

    ' Declare the connection string. This example uses Microsoft SQL
 Server 
    ' and connects to the Northwind sample database.
    Dim ConnectionString As String
 = "server=localhost;database=NorthWind;Integrated Security=SSPI"

    Dim DBConnection As SqlConnection = New
 SqlConnection(ConnectionString)
    Dim DBAdapter As SqlDataAdapter
    Dim ResultsDataSet As DataSet = New
 DataSet

    Try

      ' Run the query and create a DataSet.
      DBAdapter = New SqlDataAdapter(QueryString, DBConnection)
      DBAdapter.Fill(ResultsDataSet)

      ' Close the database connection.
      DBConnection.Close()

    Catch ex As Exception

      ' Close the database connection if it is still open.
      If DBConnection.State = ConnectionState.Open Then

        DBConnection.Close()

      End If

      Message.Text = "Unable to connect to the database."

    End Try

    Return ResultsDataSet

  End Function

</script>

<html>
  <body>
    <form runat="server">
    
      <h3>TreeView PopulateNodesFromClient Example</h3>
    
      <asp:TreeView id="LinksTreeView"
        Font-Name= "Arial"
        ForeColor="Blue"
        EnableClientScript="true"
        PopulateNodesFromClient="true"  
        OnTreeNodePopulate="PopulateNode"
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Text="Inventory" 
            SelectAction="Expand"  
            PopulateOnDemand="true"/>
        
        </Nodes>
        
      </asp:TreeView>
      
      <br><br>
      
      <asp:Label id="Message" runat="server"/>

    </form>
  </body>
</html>

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">

  void PopulateNode(Object sender, TreeNodeEventArgs e)
  {

    // Call the appropriate method to populate a node at a particular
 level.
    switch(e.Node.Depth)
    {
      case 0:
        // Populate the first-level nodes.
        PopulateCategories(e.Node);
        break;
      case 1:
        // Populate the second-level nodes.
        PopulateProducts(e.Node);
        break;
      default:
        // Do nothing.
        break;
    }
    
  }

  void PopulateCategories(TreeNode node)
  {
    
    // Query for the product categories. These are the values
    // for the second-level nodes.
    DataSet ResultSet = RunQuery("Select CategoryID, CategoryName From Categories");

    // Create the second-level nodes.
    if(ResultSet.Tables.Count > 0)
    {
    
      // Iterate through and create a new node for each row in the query
 results.
      // Notice that the query results are stored in the table of the
 DataSet.
      foreach (DataRow row in ResultSet.Tables[0].Rows)
      {
        
        // Create the new node. Notice that the CategoryId is stored
 in the Value property 
        // of the node. This will make querying for items in a specific
 category easier when
        // the third-level nodes are created. 
        TreeNode newNode = new TreeNode();
        newNode.Text = row["CategoryName"].ToString(); 
        newNode.Value = row["CategoryID"].ToString();        

        // Set the PopulateOnDemand property to true so that the child
 nodes can be 
        // dynamically populated.
        newNode.PopulateOnDemand = true;
        
        // Set additional properties for the node.
        newNode.SelectAction = TreeNodeSelectAction.Expand;
        
        // Add the new node to the ChildNodes collection of the parent
 node.
        node.ChildNodes.Add(newNode);
        
      }
      
    }
    
  }

  void PopulateProducts(TreeNode node)
  {

    // Query for the products of the current category. These are the
 values
    // for the third-level nodes.
    DataSet ResultSet = RunQuery("Select ProductName From Products Where CategoryID="
 + node.Value);

    // Create the third-level nodes.
    if(ResultSet.Tables.Count > 0)
    {
    
      // Iterate through and create a new node for each row in the query
 results.
      // Notice that the query results are stored in the table of the
 DataSet.
      foreach (DataRow row in ResultSet.Tables[0].Rows)
      {
      
        // Create the new node.
        TreeNode NewNode = new TreeNode(row["ProductName"].ToString());
        
        // Set the PopulateOnDemand property to false, because these
 are leaf nodes and
        // do not need to be populated.
        NewNode.PopulateOnDemand = false;
        
        // Set additional properties for the node.
        NewNode.SelectAction = TreeNodeSelectAction.None;
        
        // Add the new node to the ChildNodes collection of the parent
 node.
        node.ChildNodes.Add(NewNode);
        
      }
      
    }

  }

  DataSet RunQuery(String QueryString)
  {

    // Declare the connection string. This example uses Microsoft SQL
 Server 
    // and connects to the Northwind sample database.
    String ConnectionString = "server=localhost;database=NorthWind;Integrated
 Security=SSPI"; 

    SqlConnection DBConnection = new SqlConnection(ConnectionString);
    SqlDataAdapter DBAdapter;
    DataSet ResultsDataSet = new DataSet();

    try
    {

      // Run the query and create a DataSet.
      DBAdapter = new SqlDataAdapter(QueryString, DBConnection);
      DBAdapter.Fill(ResultsDataSet);

      // Close the database connection.
      DBConnection.Close();

    }
    catch(Exception ex)
    {

      // Close the database connection if it is still open.
      if(DBConnection.State == ConnectionState.Open)
      {
        DBConnection.Close();
      }
      
      Message.Text = "Unable to connect to the database.";

    }

    return ResultsDataSet;

  }

</script>

<html>
  <body>
    <form runat="server">
    
      <h3>TreeView PopulateNodesFromClient Example</h3>
    
      <asp:TreeView id="LinksTreeView"
        Font-Name= "Arial"
        ForeColor="Blue"
        EnableClientScript="true"
        PopulateNodesFromClient="true"  
        OnTreeNodePopulate="PopulateNode"
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Text="Inventory" 
            SelectAction="Expand"  
            PopulateOnDemand="true"/>
        
        </Nodes>
        
      </asp:TreeView>
      
      <br><br>
      
      <asp:Label id="Message" runat="server"/>

    </form>
  </body>
</html>

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
TreeView クラス
TreeView メンバ
System.Web.UI.WebControls 名前空間
TreeView.EnableClientScript プロパティ
TreeNodePopulate
TreeNode.PopulateOnDemand プロパティ



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「TreeView.PopulateNodesFromClient プロパティ」の関連用語

TreeView.PopulateNodesFromClient プロパティのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



TreeView.PopulateNodesFromClient プロパティのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS