2010-03-04 1 views
1

Я пытаюсь сделать мой сайт полностью совместимым с w3c.Как избежать ошибки проверки w3c в таблице, связанной с таблицей, с страницей vb.net aspx?

В настоящий момент я получаю сообщение об ошибке, потому что таблица, которая сгенерирована программно и помещена в текстовый атрибут метки, отображается как таблица, вложенная в тег 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 я получаю следующее сообщение об ошибке:

тип документа не допускает элемент «таблица» здесь; отсутствующий «объект», «апплет», «карта», «iframe», «кнопка», «ins», «del» start-tag

Указанный элемент не может появляться в контексте в котором вы его разместили; другие упомянутые элементы являются единственными, которые разрешены там и могут содержать упомянутый элемент. Это может означать, что вам нужен содержащий элемент или, возможно, вы забыли закрыть предыдущий элемент.

Я предполагаю, что это потому, что я пытаюсь поместить элемент блока (таблицу) внутри встроенного элемента (span), но я не знаю, как это сделать!

У кого-нибудь есть идеи об обходном пути?

Спасибо,

Бен

ответ

1

Используйте Literal вместо Label чтобы избежать оберточной <span> элемент:

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

Вы легенда! (Из интереса, это лучшая практика использовать литералы вместо ярлыков? - Извините, бит newb!) – user286693

+0

Это зависит от того, что вы делаете. 'Label' отображает элемент' 'или'

0

Используйте панель и добавить generichtml управление.

0

Почему бы просто не использовать таблицы управления:

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

Тогда просто создать столбцы и строки, и добавить их в сторону таблицы сервера.

 Смежные вопросы

  • Нет связанных вопросов^_^