Ответ Фредерика не точный.asp: Таблица фактически поддерживает теги <tbody>
и <thead>
, но менее очевидно, чем HtmlTable.
UseAccessibleHeader по умолчанию имеет значение true для таблиц, что означает строки заголовкабудет отображаться правильно с <th>
вместо <td>
, но чтобы получить теги <tbody>
и <thead>
, вам просто нужно установить вуду в Page_Load и когда вы создаете / вставляете свои строки вcodebehind.
Вот мой пример asp: Разметка таблицы:
<asp:Table runat="server" ID="tblGeneral">
<asp:TableHeaderRow ID="TableHeaderRow1" runat="server">
<asp:TableHeaderCell ID="TableHeaderCell1" runat="server">Column 1</asp:TableHeaderCell>
<asp:TableHeaderCell ID="TableHeaderCell2" runat="server">Column 2</asp:TableHeaderCell>
<asp:TableHeaderCell ID="TableHeaderCell3" runat="server">Column 3</asp:TableHeaderCell>
<asp:TableHeaderCell ID="TableHeaderCell4" runat="server">Column 4</asp:TableHeaderCell>
<asp:TableHeaderCell ID="TableHeaderCell5" runat="server">Column 5</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table>
В Page_Load мы указываем, что наш TableHeaderRow1 должен быть TableHeader:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
TableHeaderRow1.TableSection = TableRowSection.TableHeader
End Sub
И, наконец,в вашей функции, которая вставляет строки в указанную таблицу, вы просто должны указать, что TableRowSection каждой добавляемой вами строки является TableBody:
Dim row As TableRow
Dim dvRow As Data.DataRowView
For Each dvRow In dv
row = New TableRow
row.TableSection = TableRowSection.TableBody 'THIS is the important bit
cell = New TableCell
Col1Stuff = New Label
Col1Stuff.Text = "Blah"
cell.Controls.Add(Col1Stuff)
row.Cells.Add(cell)
...
tblGeneral.Rows.Add(row)
Next
Вы можете больше читать в свойстве TableRowSection ;Похоже, вы можете сделать это с помощью шаблона asp: Table.