ASP.NET 4新增功能(三) 对Web标准的支持和辅助功能的增强
ASP.NET 控件的早期版本有时会呈现不符合 HTML、XHTML 或辅助功能标准的标记。ASP.NET 4 消除了其中大部分异常情况。
1.用于可禁用控件的 CSS
在 ASP.NET 3.5 中,禁用某个控件时,会将一个 disabled 属性添加到呈现的 HTML 元素中。例如,下面的标记将创建一个已禁用的 Label 控件:
<asp:Label id="Label1" runat="server"
Text="Test" Enabled="false" />
在 ASP.NET 3.5 中,原有控件设置将生成以下 HTML:
<span id="Label1" disabled="disabled">Test</span>
在 HTML 4.01 中,针对 span 元素将 disabled 特性视为无效。它仅对 input 元素有效,因为它指定这些元素无法访问。对于仅供显示的元素(如 span),浏览器通常支持呈现禁用的外观,但根据辅助功能标准,依赖于这种非标准行为的网页并不可靠。
对于仅供显示的元素,应使用 CSS 指明已禁用的可视外观。因此在默认情况下,ASP.NET 4 将针对上面显示的控件设置生成以下 HTML:
<span id="Label1" class="aspNetDisabled">Test</span>
通过设置 DisabledCssClass 属性,可以更改控件禁用时默认呈现的 class属性的值。
2.用于验证控件的 CSS
在 ASP.NET 3.5 中,验证控件呈现将默认颜色 red 呈现为内联样式。例如,下面的标记创建一个 RequiredFieldValidator 控件:
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required Field" ControlToValidate="RadioButtonList1" />
ASP.NET 3.5 为验证控件呈现以下 HTML:
<span id="RequiredFieldValidator1"
style="color:Red;visibility:hidden;">RequiredFieldValidator</span>
默认情况下,ASP.NET 4 不会呈现将颜色设置为红色的内联样式。内联样式仅用于隐藏或显示验证程序,如下面的示例所示:
<span id="RequiredFieldValidator1"
style="visibility:hidden;">RequiredFieldValidator</span>
因此,ASP.NET 4 不会自动以红色显示错误提示。
3.用于隐藏字段 Div 元素的 CSS
ASP.NET 使用隐藏字段存储状态信息,如视图状态和控件状态。这些隐藏字段包含在 div 元素中。在 ASP.NET 3.5 中,此 div 元素没有 class 属性或 id 属性。因此,影响所有 div 元素的 CSS 规则可能会在无意中导致此 div 变为可见状态。为避免这种问题,ASP.NET 4 使用一个 CSS 类呈现隐藏字段的 div 元素,该类可用于将包含隐藏字段的div与其他元素区分开来。下面的示例显示了新类的值:
<div class="aspNetHidden">
4.用于Table、Image 和 ImageButton 控件的 CSS
默认情况下在 ASP.NET 3.5 中,某些控件会将所呈现 HTML 的 border 属性设置为零。下面的示例显示由 ASP.NET 3.5 中的 Table 控件生成的 HTML:
<table id="Table2" border="0">
Image 控件和 ImageButton 控件也会这样。由于此设置没有必要,而且会提供应通过使用 CSS 提供的可视格式设置信息,因此在 ASP.NET 4 中未自动生成该属性。
5.用于UpdatePanel 和 UpdateProgress 控件的 CSS
在 ASP.NET 3.5 中,UpdatePanel 和 UpdateProgress 控件不支持 expando 属性。因此无法针对它们呈现的 HTML 元素设置 CSS 类。在 ASP.NET 4 中,这些控件已更改为接受 expando 属性,如下面的示例所示:
<asp:UpdatePanel runat="server" class="myStyle"> </asp:UpdatePanel>
下面是此标记呈现的 HTML:
<div id="ctl00_MainContent_UpdatePanel1" class="expandoclass"> </div>
6.消除不需要的外部表
在 ASP.NET 3.5 中,以下控件呈现的HTML包装在一个table元素中,该元素的用途是将内联样式应用于整个控件:
FormView
Login
PasswordRecovery
ChangePassword
如果使用模板自定义这些控件的外观,您则可以在模板中提供的标记中指定CSS样式。在这种情况下,不需要额外的外部表。在 ASP.NET 4 中,通过将新的 RenderOuterTable属性设置为false,可以避免呈现表。
7.向导控件的布局模板
在 ASP.NET 3.5 中,Wizard 和 CreateUserWizard 控件可生成用于可视格式设置的 HTML table 元素。在 ASP.NET 4 中,可以使用 LayoutTemplate 元素指定布局。如果这样做,将不生成 HTML table 元素。在模板中,可创建占位符控件来指示应在该控件中动态插入项的位置。(这与 ListView 控件的模板模型的工作方式类似。)
8.用于CheckBoxList 和 RadioButtonList 控件的新增 HTML 格式设置选项
ASP.NET 3.5 使用 HTML 表元素为 CheckBoxList 和 RadioButtonList 控件的输出设置格式。为提供不使用表进行可视格式设置的替代方法,ASP.NET 4 为 RepeatLayout 枚举增加了两个选项:
UnorderedList.此选项指定使用 ul 和 li 元素而并不是表对 HTML 输出进行格式设置。
OrderedList.此选项指定使用 ol 和 li 元素而并不是表对HTML 输出进行格式设置。
9.Table控件的页眉和页脚元素
在 ASP.NET 3.5 中,可通过设置 TableHeaderRow类和TableFooterRow 类的 TableSection 属性将 Table 控件配置为呈现thead和tfoot元素。在 ASP.NET 4 中,这些属性均默认设置为适当的值。
10.Menu 控件的 CSS 和 ARIA 支持
在 ASP.NET 3.5 中,Menu 控件使用的是HTML table 元素进行可视化格式设置,在某些配置中无法通过键盘来访问该控件。ASP.NET 4 通过以下方法解决了这些问题,并提高了可访问性:
生成的 HTML 具有无序列表(ul 和 li 元素)的结构。
使用 CSS 进行可视化格式设置。
菜单按照 ARIA 标准实现键盘访问。可以使用箭头键在菜单项中进行导航。
ARIA 角色和属性特性将添加到生成的 HTML 中。(通过使用 JavaScript 添加的特性而不是直接将其包含在 HTML 中,以免生成的 HTML 产生标记验证错误。)
Menu 控件的样式呈现在页面顶部的 style 块中,而不是与出现的 HTML 元素内联出现。如果要使用单独的 CSS 文件来修改菜单样式,可以将 Menu 控件的新的 IncludeStyleBlock 属性设置为 false,这样便不会生成样式块。
11.用于 HtmlForm 控件的有效 XHTML
在 ASP.NET 3.5 中,HtmlForm 控件(由 <form runat="server"> 标记隐式创建)出现的 HTML form 元素同时具有 name 和 id 属性。name 必性在 XHTML 1.1 中已弃用。因此,该控件在 ASP.NET 4 中不会呈现 name 属性。
12.保留控件呈现中的向后兼容性
现有的ASP.NET网站中的代码可能会假定控件是以 ASP.NET 3.5 中的方式呈现 HTML。为避免在将该站点升级为 ASP.NET 4 时出现向后兼容的问题,可以在升级站点后让 ASP.NET 继续以 ASP.NET 3.5 中的方式生成 HTML。为此,可以在 ASP.NET 4 网站的 Web.config 文件中将 pages 元素的 controlRenderingCompatibilityVersion 属性设置为“3.5”,如下面的示例所示:
<system.web>
<pages controlRenderingCompatibilityVersion="3.5"/>
</system.web>
如果省略上述设置,默认值将与网站的目标 ASP.NET 版本相同。
转载于:https://www.cnblogs.com/longgel/archive/2010/06/03/1750707.html
ASP.NET 4新增功能(三) 对Web标准的支持和辅助功能的增强相关推荐
- 工业ERP管理系统新增功能对企业有哪些好处?
ERP管理系统的应用对生产制造业的发展极为重要,为了适应生产制造业更好的发展,ERP管理系统也在不断优化和改善,从产品的制造.原料的采购.库存.销售以及财务等管理细节都逐步更加完善,使用户体验感更佳. ...
- Web标准概念--摘抄《CSS布局实录》
前言 对于日常的很多事情,我们并没有注意到这背后都有着一个隐藏的"因素"在起作用,这个因素就是:标准. 生活中各行各业都有着自己相应的标准与规范,标准可以方便交流.促进协作.提高效 ...
- 一、网页、Web浏览器、Web标准
一.网页 1.1 什么是网页 网站\color{red}{网站}网站是指在因特网上根据一定的规则,使用HTML等制作的,用于展示特定内容相关的网页集合. 网页\color{red}{网页}网页是网站中 ...
- ASP.NET Core 5.0新增功能摘要
.NET5.0发布了大半个月,从.NET Core3.1的平滑迁移体验令人心旷神怡,改个targetframework就完成迁移,不要太轻松!然而,ASP.NET Core5.0也有很多有意思的改变, ...
- ASP.NET 2.0 本地化功能:本地化 Web 应用程序的新方法
适用于: Microsoft ASP.NET 2.0 Microsoft Visual Studio .NET Microsoft Visual Studio 2005 本地化 摘要:随着越来越多的公 ...
- IIS6.0下ASP的新增功能
ASP 的新增功能 除了内部性能增强和优化外,该版本的 Active Server Pages(ASP) 还具有如下新功能: 更好的国际化和 UTF-8 支持 改进的 POST 支持 ASP 挂起检测 ...
- LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(四)之ASP.NET SignalR核心功能介绍
前言 本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能.源代码不包含LayIM的源代码,因为官方并没开源属于收费资源, ...
- 评论回复功能 asp.net_一键抠图 更快 更强!六月新版 PS 2020 21.2 新增功能测试报告...
一键抠图 更快 更强!六月新版 PS 2020 21.2 新增功能测试报告! 紫枫前几天发布了 Adobe Photoshop 2020 21.2.0.225 最新版本,今天来说说这个版本的新增功能. ...
- KSO-.NET 6 中的新增功能
.NET 6 中的新增功能 .NET 6 提供 .NET 统一计划的最终部分,该计划在 .NET 5 中启动. .NET 6 在移动.桌面.IoT 和云应用之间统一了 SDK.基础库和运行时. 除了这 ...
最新文章
- mybatis的union查询
- angle-class
- nowcoder20C 位数差
- 在现有k8s集群中安装kubesphere时报错:metrics-server failed
- linux lynx 源码,Linux移植浏览器 Lynx字符浏览器移植
- 原来R语言还有这些不为人知的用处!
- Linux epoll 笔记(高并发事件处理机制)
- 备战520|Python花式表白的几种姿势
- mysql redis geo_利用Redis的Geo功能实现查找附近的位置
- 如何解决JSP中文乱码问题
- Map.Entry使用详解
- html事件中写js,html标签中绑定触发事件与js中绑定触发事件写法上的区别
- 【几何/数学】概念的理解 —— (非)刚体变换((non-)rigid transformation)
- 2014年12月份工作日学习计划
- PowerBuilder 开发的游戏(建房子)
- 网页php如何判断登录手机串号_php判断是否是手机登陆
- 2019年淘宝新开店铺怎么提升销量
- android apk u盘升级_android升级安装包--包解析错误
- 数字电路 时序逻辑电路
- HTML+CSS+JavaScript速成