ASP.NET BulletedList禁用项不符合XHTML 1.0 Strict DOCTYPE

时间:2009-08-13 04:08:18

标签: asp.net xhtml bulletedlist

我有一个网站,我试图使其符合XHTML 1.0 Strict。 已经相应地声明了doctype,并且我使用以下内容设置了web.config:

  <system.web>
    <xhtmlConformance mode="Strict"/>
  </system.web>

我现在的问题在于此。我有一个BulletedList服务器控件,其DisplayMode设置为BulletedListDisplayMode.HyperLink。

此控件填充了web.sitemap xml文件中的条目,其中第一个文件被禁用(在后面的代码中启用设置为false)。这因此输出具有禁用属性的锚标签。但是,这不合规。

<ul id="example">
    <li class="first"><a disabled="disabled">test1</a></li>
    <li><a href="#">test2</a></li>
</ul>

当我针对W3验证器验证时,它因此而失败。这是错误吗?鉴于设置的xhtml一致性,我原本期望锚标记根本没有渲染。

我只是想让列表中的第一项显示为纯文本而不是禁用的链接。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您可以随时扩展BulletedList控件并适当地重新实现该部分。

答案 1 :(得分:0)

问题实际上是不应将disabled属性应用于锚标记 - 仅限于少数输入元素,如按钮。

您是否尝试使用类“first?”

修改列表项中的锚标记的css样式

答案 2 :(得分:0)

我要去睡觉了,但是我会狙击这个,给你一个可能的起点。

你可以像上面所说的那样做,并覆盖OnRender,或者你可以看看你是否可以使用System.Web.UI.Adapters.ControlAdapter和浏览器文件完成任务。 ControlAdapter的缺点是它将在整个网站范围内。