Click to Rate and Give Feedback
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Class Library
HierarchicalDataBoundControlAdapter Class

Updated: November 2007

Customizes the behavior of a HierarchicalDataBoundControl object with which this control adapter is associated, for specific browser requests.

Namespace:  System.Web.UI.WebControls.Adapters
Assembly:  System.Web (in System.Web.dll)

Visual Basic (Declaration)
<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
Public Class HierarchicalDataBoundControlAdapter _
    Inherits WebControlAdapter
Visual Basic (Usage)
Dim instance As HierarchicalDataBoundControlAdapter
C#
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class HierarchicalDataBoundControlAdapter : WebControlAdapter
Visual C++
[AspNetHostingPermissionAttribute(SecurityAction::LinkDemand, Level = AspNetHostingPermissionLevel::Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction::InheritanceDemand, Level = AspNetHostingPermissionLevel::Minimal)]
public ref class HierarchicalDataBoundControlAdapter : public WebControlAdapter
J#
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class HierarchicalDataBoundControlAdapter extends WebControlAdapter
JScript
public class HierarchicalDataBoundControlAdapter extends WebControlAdapter

The HierarchicalDataBoundControlAdapter class adapts the associated HierarchicalDataBoundControl control to modify the default markup or behavior for a specific browser. You can extend the HierarchicalDataBoundControlAdapter class to further customize rendering of the HierarchicalDataBoundControl control.

A HierarchicalDataBoundControl control is bound to a data source and generates its user interface (or child control hierarchy, typically), by enumerating the items in the data source to which it is bound. For more information on hierarchical data-bound controls, see HierarchicalDataBoundControl.

Control adapters are.NET components that manage one or more stages in the life cycle of a control for a specific browser. Extending the HierarchicalDataBoundControlAdapter class provides access to the life-cycle stages of the HierarchicalDataBoundControl control. For more information, see Architectural Overview of Adaptive Control Behavior.

The initial request for an adapter causes the .NET Framework to search for a mapped adapter for the control, given the characteristics of the requesting browser. Browser definition files are used by the HttpBrowserCapabilities class to identify the characteristics of the client browser and map the adapter to the browser type.

The following code example shows how to extend the HierarchicalDataBoundControlAdapter class to render a hierarchical TreeView control that is bound to an XmlDataSource object.

This code example contains four objects:

  • An adapter derived from the HierarchicalDataBoundControlAdapter class.

  • The .aspx file that incorporates the TreeView control and device-specific content.

  • A browser file to link the adapter to a device type.

  • An XML file that contains a hierarchical list of employees.

This code example consists of four code segments. The first code segment demonstrates how to extend the HierarchicalDataBoundControlAdapter class.

Visual Basic
Imports System
Imports System.Web
Imports System.Security.Permissions

Namespace Contoso

    <AspNetHostingPermission(SecurityAction.Demand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public Class HierarchicalTreeViewAdapter
        Inherits _
        System.Web.UI.WebControls.Adapters.HierarchicalDataBoundControlAdapter

        ' Return a strongly-typed TreeView control for adapter.
        Protected Overloads ReadOnly Property Control() As _
            System.Web.UI.WebControls.TreeView

            Get
                Return CType( _
                    MyBase.Control, _
                    System.Web.UI.WebControls.TreeView)
            End Get
        End Property

        ' Verify the DataSourceID property is set prior to binding data.
        Protected Overrides Sub PerformDataBinding()

            If (Not Control.DataSourceID Is Nothing) Then

                MyBase.PerformDataBinding()
            End If
        End Sub
    End Class
End Namespace

C#
using System;
using System.Web;
using System.Web.UI;
using System.Security.Permissions;

namespace Contoso
{
    [AspNetHostingPermission(
        SecurityAction.Demand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(
        SecurityAction.InheritanceDemand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    public class HierarchicalTreeViewAdapter :
        System.Web.UI.WebControls.Adapters.HierarchicalDataBoundControlAdapter
    {
        // Return a strongly-typed TreeView control for adapter.
        protected new System.Web.UI.WebControls.TreeView Control
        {
            get
            {
                return (System.Web.UI.WebControls.TreeView)base.Control;
            }
        }

        // Verify the DataSourceID property is set prior to binding data.
        protected override void PerformDataBinding()
        {
            if (Control.DataSourceID != null)
            {
                base.PerformDataBinding();
            }
        }
    }
}

The second code segment demonstrates how to declare a TreeView to bind to an XML data source.

Visual Basic
<%@ page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  >
<head runat="server">
    <title>HierarchicalDataBoundControl Adapter</title>
</head>
<body>
    <form id="Form1" runat="server">
        <asp:TreeView ID="TreeView1" 
            Runat="server" 
            DataSourceID="XmlDataSource1">

            <DataBindings>
                <asp:TreeNodeBinding    
                    DataMember="employees" Text="Employees"/>
                <asp:TreeNodeBinding    
                    DataMember="employee" TextField="id" />
                <asp:TreeNodeBinding    
                    DataMember="name" TextField="fullname" />
            </DataBindings>
        </asp:TreeView>

        <asp:XmlDataSource ID="XmlDataSource1"  
            Runat="server" 
            DataFile="employees.xml" />
        <br />
    </form>
</body>
</html>

C#
<%@ page language="c#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html  >
<head runat="server">
    <title>HierarchicalDataBoundControl Adapter</title>
</head>
<body>
    <form id="Form1" runat="server">
        <asp:TreeView ID="TreeView1" 
            Runat="server" 
            DataSourceID="XmlDataSource1">

            <DataBindings>
                <asp:TreeNodeBinding    
                    DataMember="employees" Text="Employees"/>
                <asp:TreeNodeBinding    
                    DataMember="employee" TextField="id" />
                <asp:TreeNodeBinding    
                    DataMember="name" TextField="fullname" />
            </DataBindings>
        </asp:TreeView>

        <asp:XmlDataSource ID="XmlDataSource1"  
            Runat="server" 
            DataFile="employees.xml" />
        <br />
    </form>
</body>
</html>

The third code segment shows how to link the TreeView control to the custom adapter for browsers running on Windows CE.

<browsers>
    <browser refID="WinCE">
        <controlAdapters>
            <adapter controlType="System.Web.UI.WebControls.TreeView" 
                adapterType="Contoso.HierarchicalTreeViewAdapter" />
        </controlAdapters>
    </browser>
    <browser refID="IE">
        <controlAdapters>
            <adapter controlType="System.Web.UI.WebControls.TreeView" 
                adapterType="Contoso.HierarchicalTreeViewAdapter" />
        </controlAdapters>
    </browser>
</browsers>

The final code segment provides the XML data that the TreeView control binds to.

  • AspNetHostingPermission 

    for verifying at compilation time that the immediate caller has permission to call into the HierarchicalDataBoundControlAdapter class. Associated enumeration: Minimal

  • AspNetHostingPermission 

    for verifying that any class derived from the HierarchicalDataBoundControlAdapter class has at least the Minimal trust level. Associated enumeration: Minimal

System..::.Object
  System.Web.UI.Adapters..::.ControlAdapter
    System.Web.UI.WebControls.Adapters..::.WebControlAdapter
      System.Web.UI.WebControls.Adapters..::.HierarchicalDataBoundControlAdapter
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker