Domanda Come creare thead e tbody nella tabella ASP.NET?


Come creare thead e tbody nella tabella ASP.NET? Ho bisogno di quei tag a causa di jquery e asp.net mi dà solo tr, th e td.


19
2017-10-25 14:58


origine


risposte:


asp: Table non supporta questi elementi.

Aggiornare: Come la risposta di jameh rivela, la frase sopra è completamente sbagliata: il TableSection la proprietà consente di controllare   se una determinata riga va nell'intestazione, nel corpo o nel piè di pagina della tabella.

Per elaborare la sua risposta, sembra che si possa raggiungere questo risultato anche impostando il TableSection proprietà nel tuo markup, senza codice dietro:

<asp:Table id="yourId" runat="server">
    <asp:TableHeaderRow TableSection="TableHeader">
        <!-- ... -->
    </asp:TableHeaderRow>
    <asp:TableRow>
        <!-- 'TableSection' defaults to 'TableRowSection.TableBody'. -->
        <!-- ... -->
    </asp:TableRow>
    <asp:TableRow TableSection="TableFooter">
        <!-- ... -->
    </asp:TableRow>
</asp:Table>

La risposta originale, ora controvoglia, segue:

Potresti voler provare il HtmlTable classe invece:

<table id="yourId" runat="server">
    <thead>
        .
        .
        .
    </thead>
    <tbody>
        .
        .
        .
    </tbody>
</table>

24
2017-10-25 15:02



La risposta di Frédéric non è accurata. asp: Table DOES supporta infatti <tbody> e <thead> tag, ma in modo meno ovvio di HtmlTable.

UseAccessibleHeader è true per impostazione predefinita per le tabelle, il che significa che le righe di intestazione verranno renderizzate correttamente con <th> invece di <td>, ma per ottenere il <tbody> e <thead> tag, devi solo impostare il voodoo su Page_Load e quando stai creando / inserendo le tue righe nel codebehind.

Ecco il mio esempio asp: tabella markup:

<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>

A Page_Load, specifichiamo che TableHeaderRow1 dovrebbe essere un TableHeader:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    TableHeaderRow1.TableSection = TableRowSection.TableHeader      
End Sub

E infine, nella tua funzione che inserisce le righe nella tabella, devi solo specificare che il TableRowSection di ogni riga che aggiungi è un 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

Puoi fare più letture sul Proprietà TableRowSection; sembra che tu possa farlo anche con il tuo asp: modello di tabella.


18
2018-05-11 13:49