ASP.NET 4 ListBox控件无法被禁用(3)
来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:04 点击:次
<link href="Main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form method="post" action="TestForm.aspx" id="form1">
<div class="aspNetHidden"><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/w ... YP" /></div>
<div class="aspNetHidden"><input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/w ... tA" /></div>
<div>
<select size="4" name="lstTest" id="lstTest" class="aspNetDisabled" disabled="disabled">
<option value="Unspecified">Unspecified</option>
<option selected="selected" value="Utc" class="aspNetDisabled">Utc</option>
<option value="Local">Local</option>
</select>
<input type="submit" name="btnDisable" value="禁用" id="btnDisable" disabled="disabled" class="aspNetDisabled" />
<input type="submit" name="btnEanble" value="启用" id="btnEanble" />
</div>
</form>
</body>
</html>
可以看出,上述 HTML 源代码中第 11 行的 select HTML 元素已经添加了 disabled 属性,第 13 行的的 option 子元素也添加了 class 属性,以便对应 Main.css 中相应的样式,补救在 IE 8、IE9 和 Chrome 19.0 浏览器中不能正确显示的 bug。
MSDN 中的说法
在 MSDN 的 ASP.NET 4 和 Visual Web Developer 中的新增功能 中提到:
用于可禁用控件的 CSS
在 ASP.NET 3.5 中,禁用某个控件时(请参见 WebControl.Enabled),会将一个 disabled 特性添加到呈现的 HTML 元素中。
例如,下面的标记将创建一个已禁用的 Label 控件:
<asp:Label id="Label1" runat="server" Text="Test" Enabled="false" />
在 ASP.NET 3.5 中,原有控件设置将生成以下 HTML:
<span id="Label1">Test</span>
在 HTML 4.01 中,针对 span 元素将 disabled 特性视为无效。 它仅对 input 元素有效,因为它指定这些元素无法访问。
对于仅供显示的元素(如 span),浏览器通常支持呈现禁用的外观,但根据辅助功能标准,依赖于这种非标准行为的网页并不可靠。
对于仅供显示的元素,应使用 CSS 指明已禁用的可视外观。 因此在默认情况下,ASP.NET 4 将针对上面显示的控件设置生成以下 HTML:
<span id="Label1" class="aspNetDisabled">Test</span>
通过设置 DisabledCssClass 属性,可以更改控件禁用时默认呈现的 class 特性的值。
实际上,在 ASP.NET 4 中,如果将 WebControl 的 Enabled 属性设置为 false,ListBox 服务器控件对应的 select HTML 元素的确没有被添加 disabled 属性。而 Button 服务器控件对应的 input HTML 元素还是被添加 disabled 属性。照理说,select HTML 元素也不能说是仅供显示的元素吧。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>