Export (0) Print
Expand All

HideDisabledControlAdapter Class

Provides rendering capabilities for the associated Web control to modify the default markup or behavior for a specific browser.

System.Object
  System.Web.UI.Adapters.ControlAdapter
    System.Web.UI.WebControls.Adapters.WebControlAdapter
      System.Web.UI.WebControls.Adapters.HideDisabledControlAdapter

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

public class HideDisabledControlAdapter : WebControlAdapter

The HideDisabledControlAdapter type exposes the following members.

  NameDescription
Public methodHideDisabledControlAdapterInitializes a new instance of the HideDisabledControlAdapter class.
Top

  NameDescription
Protected propertyBrowserGets a reference to the browser capabilities of the client making the current HTTP request. (Inherited from ControlAdapter.)
Protected propertyControlGets a reference to the Web control to which this control adapter is attached. (Inherited from WebControlAdapter.)
Protected propertyIsEnabledGets a value indicating whether the Web control and all its parent controls are enabled. (Inherited from WebControlAdapter.)
Protected propertyPageGets a reference to the page where the control associated with this adapter resides. (Inherited from ControlAdapter.)
Protected propertyPageAdapterGets a reference to the page adapter for the page where the associated control resides. (Inherited from ControlAdapter.)
Top

  NameDescription
Protected methodBeginRenderCalled prior to the rendering of a control. In a derived adapter class, generates opening tags that are required by a specific target but not needed by HTML browsers. (Inherited from ControlAdapter.)
Protected methodCreateChildControlsCreates the target-specific child controls for a composite control. (Inherited from ControlAdapter.)
Protected methodEndRenderCalled after the rendering of a control. In a derived adapter class, generates closing tags that are required by a specific target but not needed by HTML browsers. (Inherited from ControlAdapter.)
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodLoadAdapterControlStateLoads adapter control state information that was saved by SaveAdapterControlState during a previous request to the page where the control associated with this control adapter resides. (Inherited from ControlAdapter.)
Protected methodLoadAdapterViewStateLoads adapter view state information that was saved by SaveAdapterViewState during a previous request to the page where the control associated with this control adapter resides. (Inherited from ControlAdapter.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodOnInitOverrides the OnInit method for the associated control. (Inherited from ControlAdapter.)
Protected methodOnLoadOverrides the OnLoad method for the associated control. (Inherited from ControlAdapter.)
Protected methodOnPreRenderOverrides the OnPreRender method for the associated control. (Inherited from ControlAdapter.)
Protected methodOnUnloadOverrides the OnUnload method for the associated control. (Inherited from ControlAdapter.)
Protected methodRenderWrites the associated Web control to the output stream as HTML. (Overrides WebControlAdapter.Render(HtmlTextWriter).)
Protected methodRenderBeginTagCreates the beginning tag for the Web control in the markup that is transmitted to the target browser. (Inherited from WebControlAdapter.)
Protected methodRenderChildrenGenerates the target-specific markup for the child controls in a composite control to which the control adapter is attached. (Inherited from ControlAdapter.)
Protected methodRenderContentsGenerates the target-specific inner markup for the Web control to which the control adapter is attached. (Inherited from WebControlAdapter.)
Protected methodRenderEndTagCreates the ending tag for the Web control in the markup that is transmitted to the target browser. (Inherited from WebControlAdapter.)
Protected methodSaveAdapterControlStateSaves control state information for the control adapter. (Inherited from ControlAdapter.)
Protected methodSaveAdapterViewStateSaves view state information for the control adapter. (Inherited from ControlAdapter.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

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

Adapters are compiled .NET Framework components that take over one or more stages in the life cycle of a page or control. Extending the HideDisabledControlAdapter class will provide access to the life-cycle stages of the WebControl 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. For more information, see Architectural Overview of Adaptive Control Behavior.

For a description of the adaptive rendering architecture of ASP.NET and a step-by-step walkthrough that shows how to implement a control adapter and map it to a control, see "Authoring ASP.NET Server Control Adapters: An Introduction" in the MSDN Library at http://msdn.microsoft.com/library.

The following code example shows how to extend the HideDisabledControlAdapter class to display a Label control in an enabled and disabled state. This example contains three parts:

  • An adapter derived from the HideDisabledControlAdapter class.

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

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

The following code example demonstrates how to extend the HideDisabledControlAdapter class.

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 HideDisabledControlContosoAdapter:
        System.Web.UI.WebControls.Adapters.HideDisabledControlAdapter
    {
        // Link the Label control to the adapter. 
        protected new System.Web.UI.WebControls.Label Control
        {
            get
            {
                return (System.Web.UI.WebControls.Label)base.Control;
            }
        }

        // Do not render the Contoso controls if Enabled is false. 
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            if (Control.ID.StartsWith("Contoso"))
            {
                if (!Control.Enabled)
                {
                    return;
                }
            }

            base.Render(writer);
        }
    }
}

The following code example demonstrates how to declare a Label control with device-specific content.

<%@ 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 id="Head1" runat="server">
    <title>HideDisabledControl Adapter</title>
    <script runat="server">
        void ServerButtonClick(Object source, EventArgs args)
        {
            if (Button1.Text == "Enable Label")
            {
                ContosoLabel1.Enabled = true;
                Button1.Text = "Disable Label";
                messageLabel.Text = "The label is <b>En</b>abled";
            }
            else
            {
                ContosoLabel1.Enabled = false;
                Button1.Text = "Enable Label";
                messageLabel.Text = "The label is <b>dis</b>abled";
            }
        }
    </script>
</head>
<body style="background-color:silver">
    <form id="Form1" runat="server">
        <asp:Label id="ContosoLabel1"             
            text="Contoso Label" 
            WinCE:text="CE Label"
            BorderWidth="3" 
            BorderStyle="Inset"
            style="FONT-SIZE: xx-small"
            runat="server">
            </asp:Label>
        <br />
        <asp:Button id="Button1" 
            text="Disable Label"
            OnClick="ServerButtonClick" 
            runat="server" />
        <br />    
        <asp:Label id="messageLabel" 
            runat="server" 
            style="FONT-SIZE: xx-small"
            AssociatedControlID="Button1">
            <i>Select the button to disable the label.</i>
        </asp:Label>
    </form>
</body>
</html>

The following code example shows how to link the Label control to the custom adapter for browsers running on Windows CE .NET.

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

.NET Framework

Supported in: 4.5.3, 4, 3.5, 3.0, 2.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft