WebControl.SupportsDisabledAttribute プロパティ


コントロールの IsEnabled プロパティが disabled の場合、レンダリングされた HTML 要素の false 属性を "無効" に設定するかどうかを示す値を取得します。Gets a value that indicates whether the control should set the disabled attribute of the rendered HTML element to "disabled" when the control's IsEnabled property is false.

 virtual property bool SupportsDisabledAttribute { bool get(); };
public virtual bool SupportsDisabledAttribute { get; }
member this.SupportsDisabledAttribute : bool
Public Overridable ReadOnly Property SupportsDisabledAttribute As Boolean


常に trueAlways true.


次の例は、無効なコントロールLabelのマークアップを示しています。The following example shows markup for a disabled Label control:

<asp:Label id="Label1" runat="server" Text="Test" Enabled="false"/>

ASP.NET 3.5 以前のバージョンでは、このマークアップは次の HTML をレンダリングします。In ASP.NET 3.5 and earlier versions, this markup renders the following HTML:

<span id="Label1" disabled="disabled">Test</span>

ASP.NET 4 では、 RenderingCompatibilityプロパティの値が4.0 以上で、 DisabledCssClassプロパティが既定値に設定されている場合、同じマークアップによって次の HTML がレンダリングされます。In ASP.NET 4, if the value of the RenderingCompatibility property is 4.0 or greater, and if the DisabledCssClass property is set to its default value, the same markup renders the following HTML:

<span id="Label1" class="aspNetDisabled">Test</span>


派生クラスでは、このプロパティは、コントロールが無効になっている場合に、ASP.NET がコントロールの HTML を表示する方法を示します。In derived classes, this property indicates how ASP.NET should render HTML for a control when the control is disabled.

ASP.NET Web コントロールの無効化Disabling ASP.NET Web Controls

ASP.NET コントロールのfalseプロパティがに設定されている場合 (つまり、コントロールが無効になっている場合)、ASP.NET はページ内にコントロールをレンダリングしますが、無効の状態 (通常は淡色表示) で表示します。 EnabledWhen the Enabled property of an ASP.NET control is set to false (that is, when the control is disabled), the intent is that ASP.NET should render the control in the page, but display it in a disabled state (typically dimmed). 親コントロールが無効になっている場合は、そのコントロールの子も無効として表示されます。If a parent control is disabled, children of that control are also displayed as disabled. その場合、子IsEnabledコントロールのプロパティは、 Enabledプロパティがにfalse true設定されている場合でも、に設定されます。In that case, the child control's IsEnabled property is set to false, even though its Enabled property might be set to true.

ASP.NET 3.5 以前のバージョンでは、コントロールのIsEnabledプロパティがの場合、ASP.NET は、コントロール用に表示さfalseれる HTML 要素でdisabled属性を "disabled" に設定します。In ASP.NET 3.5 and earlier versions, when a control's IsEnabled property is false, ASP.NET sets the disabled attribute to "disabled" in the HTML element that it renders for the control. ただし、HTML 4.01 標準では、 disabledユーザー入力に使用される特定の要素に対してのみ属性が許可されます。However, the HTML 4.01 standard allows the disabled attribute only on certain elements that are used for user input. たとえば、 disabled属性はinput要素に対して許可されますがspan 、要素には使用できません。For example, the disabled attribute is allowed for input elements, but not for span elements.

ほとんどのブラウザーでは、属性を持つdisabled表示のみの要素に対して既定で無効になっている外観がサポートされています。Most browsers support a default disabled appearance for display-only elements that have disabled attributes. ただし、HTML 標準に準拠するために、ASP.NET 4 では既定で無効な属性が省略されています。However, in order to comply with HTML standards, by default ASP.NET 4 omits invalid attributes.

SupportsDisabledAttribute プロパティの使用方法How the SupportsDisabledAttribute Property is Used

プロパティがtrueの場合、ASP.NET は、 disabledコントロールが無効になったときに属性をレンダリングします。 SupportsDisabledAttributeIf the SupportsDisabledAttribute property is true, ASP.NET renders a disabled attribute when the control is disabled. このプロパティがのfalse場合、ASP.NET はclass 、コントロールが無効になったときに属性を表示します。If this property is false, ASP.NET renders a class attribute when the control is disabled.

派生クラスは、次の条件falseがすべて満たされた場合にを返すように、このプロパティをオーバーライドします。Derived classes override this property to return false if all the following conditions are true:

  • コントロールは、属性をdisabledサポートしていない HTML 要素をレンダリングします。The control renders an HTML element that does not support the disabled attribute.

  • プロパティRenderingCompatibilityは、ASP.NET のバージョン番号が4.0 未満であることを示します。The RenderingCompatibility property indicates an ASP.NET version number lower than 4.0.

プロパティSupportsDisabledAttributeは、コントロールに対して表示される HTML 要素が属性をdisabledサポートしている (許可されている) かどうかを示すとは限りません。The SupportsDisabledAttribute property does not necessarily indicate whether the HTML element that is rendered for a control supports (allows) the disabled attribute. コントロールのRenderingCompatibilityプロパティが4.0 より低い ASP.NET のバージョン番号を示している場合、レンダリングされた HTML がtrue属性をdisabledサポートしていない場合でも、コントロールのSupportsDisabledAttributeプロパティの値はを返す可能性があります。If a control's RenderingCompatibility property indicates an ASP.NET version number lower than 4.0, the value of the control's SupportsDisabledAttribute property might return true even if the rendered HTML does not support the disabled attribute.

無効なコントロールの旧バージョンとの互換性Backward Compatibility for Disabled Controls

Visual studio を使用して、以前のバージョンの web プロジェクトを ASP.NET 4 にアップグレードすると、visual studio controlRenderingCompatibilityVersionによって、web.config ファイル (プロパティをRenderingCompatibility設定) の属性が以前のバージョン番号に自動的に設定されます。When you use Visual Studio to upgrade a Web project to ASP.NET 4 from an earlier version, Visual Studio automatically sets the controlRenderingCompatibilityVersion attribute in the Web.config file (which sets the RenderingCompatibility property) to the earlier version number. このプロパティは、 RenderingCompatibilityプロパティtrueが4.0 未満の場合は常にを返します。そのため、Web コントロールでは、以前のバージョンの場合と同じように、無効なコントロールに対して HTML がレンダリングされます。 SupportsDisabledAttributeBecause the SupportsDisabledAttribute property always returns true when the RenderingCompatibility property is lower than 4.0, this causes Web controls to render HTML for disabled controls as they did in the earlier version. アップグレードした Web サイトで、ASP.NET 4 で導入されたアルゴリズムを使用して HTML を表示する場合controlRenderingCompatibilityVersionは、属性を変更または削除できます。If you want an upgraded Web site to render HTML using the algorithm introduced in ASP.NET 4, you can change or remove the controlRenderingCompatibilityVersion attribute. 詳細については、RenderingCompatibility プロパティを参照してください。For more information, see the RenderingCompatibility property.

CSS を使用した無効な外観の設定Setting a Disabled Appearance By Using CSS

コントロールのfalse classプロパティがで、コントロールが無効になっている場合、ASP.NET は、 WebControl.DisabledCssClassレンダリングされた HTML 要素の属性をプロパティの値に設定します。 SupportsDisabledAttributeIf the SupportsDisabledAttribute property of a control is false and the control is disabled, ASP.NET sets the class attribute of the rendered HTML element to the value of the WebControl.DisabledCssClass property. WebControl.DisabledCssClassプロパティの既定値は "aspNetDisabled" です。The default value of the WebControl.DisabledCssClass property is "aspNetDisabled".

無効になっているコントロールに対して無効な外観を提供するには、 WebControl.DisabledCssClassプロパティの値で表されるクラスの CSS 規則を定義する必要があります。To provide a disabled appearance for disabled controls, you must define a CSS rule for the class that is represented by the value of the WebControl.DisabledCssClass property.

プロパティに値がある場合、コントロールに対して表示される HTML 要素のclass属性には複数の値が含まれることがあります。 CssClassThe HTML element that is rendered for a control might have more than one value in its class attribute if there is a value in its CssClass property. 詳細については、DisabledCssClass プロパティを参照してください。For more information, see the DisabledCssClass property.