次の方法で共有


TreeView.MaxDataBindDepth プロパティ

定義

TreeView コントロールにバインドされるツリー レベルの最大数を取得または設定します。

public:
 property int MaxDataBindDepth { int get(); void set(int value); };
public int MaxDataBindDepth { get; set; }
member this.MaxDataBindDepth : int with get, set
Public Property MaxDataBindDepth As Integer

プロパティ値

TreeView コントロールにバインドされるツリー レベルの最大数。 既定値は -1 で、データ ソース内のすべてのツリー レベルをコントロールにバインドします。

例外

選択した値が -1 未満です。

このセクションには、2 つのコード例が含まれています。 最初のコード例では、 プロパティを MaxDataBindDepth 使用して、最初の 2 つのノード レベル (深さ 0 と 1) のみをコントロールにバインドする方法を TreeView 示します。 2 番目のコード例では、最初のコード例のサンプル XML データを提供します。

次のコード例では、 プロパティを MaxDataBindDepth 使用して、最初の 2 つのノード レベル (深さ 0 と 1) のみをコントロールにバインドする方法を TreeView 示します。 データ ソース内のすべてのノード レベルは無視されます。 この例を正しく機能させるには、このコード例の後に提供されるサンプル XML データを Book.xml という名前のファイルにコピーする必要があります。


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeView MaxDataBindDepth Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView MaxDataBindDepth Example</h3>
    
      <asp:TreeView id="BookTreeView"
        MaxDataBindDepth="1"  
        DataSourceID="BookXmlDataSource"
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
          <asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
        </DataBindings>
         
      </asp:TreeView>

      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
      

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

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeView MaxDataBindDepth Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView MaxDataBindDepth Example</h3>
    
      <asp:TreeView id="BookTreeView"
        MaxDataBindDepth="1"  
        DataSourceID="BookXmlDataSource"
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
          <asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
        </DataBindings>
         
      </asp:TreeView>

      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
      

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

次のコード例では、前のコード例のサンプル XML データを提供します。

<Book Title="Book Title">
    <Chapter Heading="Chapter 1">
        <Section Heading="Section 1">
        </Section>
        <Section Heading="Section 2">
        </Section>
    </Chapter>
    <Chapter Heading="Chapter 2">
        <Section Heading="Section 1">
        </Section>
    </Chapter>
</Book>

注釈

コントロールを TreeView データ ソースにバインドする場合は、 プロパティを MaxDataBindDepth 使用して、コントロールにバインドするツリー レベルの数を制限します。 たとえば、このプロパティを に設定すると 2 、ルート ノードと、ルート ノードのすぐ下にあるノードのみがコントロールに TreeView バインドされます。 データ ソース内の残りのノードはすべて無視されます。

重要

悪意のあるユーザーはコールバック要求を作成し、ページ開発者が表示していないコントロールのノードの TreeView データを取得できます。 したがって、データのセキュリティはデータ ソースによって実装される必要があります。 プロパティを MaxDataBindDepth 使用してデータを非表示にしないでください。

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

適用対象

こちらもご覧ください