0

我有一个网站,我试图使其符合 XHTML 1.0 Strict。已相应地声明了文档类型,并且我已将 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 一致性,我本来希望锚标记根本没有呈现。

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

4

3 回答 3

0

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

于 2009-08-13T04:24:46.690 回答
0

问题实际上是 disabled 属性不应该应用于锚标记——只应用于少数输入元素,如按钮。

您是否尝试过为“first”类的列表项中的锚标记修改 CSS 样式?

于 2009-08-13T04:32:17.690 回答
0

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

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

于 2009-08-13T05:20:08.793 回答