如何避免“表格嵌套在跨度中” vb.net aspx 页面出现 w3c 验证错误?

发布于 2024-08-24 02:29:46 字数 963 浏览 2 评论 0原文

我正在努力使我的网站完全符合 w3c 验证器标准。

目前,我收到错误,因为以编程方式生成并插入到标签的文本属性中的表显示为嵌套在 span 标记中的表。

例如

MyPage.aspx.vb

strHtml = "<table><tr><td>Hello World</td></tr></table>" 
Me.myTable.Text = strHtml

MyPage.aspx

<asp:Label ID="myTable" runat="server" Text="testimonialTable"></asp:Label> 

呈现为:

<span id="ctl00_Main_myTable">
<table><tr><td>Hello World</td></tr></table>
</span>

当我在 validator.w3.org 验证我的页面时,出现以下错误:

文档类型确实此处不允许使用元素“table”;缺少“object”、“applet”、“map”、“iframe”、“button”、“ins”、“del”开始标记之一

所提到的元素不允许出现在您放置它的上下文;其他提到的元素是唯一允许存在并且可以包含提到的元素的元素。这可能意味着您需要一个包含元素,或者可能您忘记关闭前一个元素。

我认为这是因为我试图将块元素(表)放入内联元素(span)中) - 但我不知道还能怎么做!

有人知道解决方法吗?

谢谢,

I am trying to make my site fully w3c validator compliant.

At the moment, I am getting an error because a table which is generated programatically and insterted into a label's text attribute shows as a table nested in a span tag.

e.g

MyPage.aspx.vb

strHtml = "<table><tr><td>Hello World</td></tr></table>" 
Me.myTable.Text = strHtml

MyPage.aspx

<asp:Label ID="myTable" runat="server" Text="testimonialTable"></asp:Label> 

Renders as:

<span id="ctl00_Main_myTable">
<table><tr><td>Hello World</td></tr></table>
</span>

When I then validate my page at validator.w3.org I get the following error:

document type does not allow element "table" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag

The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.

I assume this is because I'm trying to put a block element (table) inside an inline element (span) - but I don't know how else to do this!

Anyone got any idea of a workaround?

Thanks,

Ben

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

零度℉ 2024-08-31 02:29:46

使用 文字 而不是 Label 以避免包装 元素:

<asp:Literal ID="myTable runat="server" />

Use a Literal instead of a Label to avoid the wrapping <span> element:

<asp:Literal ID="myTable runat="server" />
陌路终见情 2024-08-31 02:29:46

使用面板并向其添加 generichtml 控件。

Use a panel and add a generichtml control to it.

说好的呢 2024-08-31 02:29:46

为什么不只使用表控件:

<asp:Table ID="myTable" runat="server" />

然后简单地创建列和行并将它们添加到表服务器端。

Why not just use a Table control:

<asp:Table ID="myTable" runat="server" />

Then simply create the columns and rows and add them to the table server side.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文