Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HtmlTable, HtmlTableRow, HtmlTableCell - creating thead, tbody and tfoot

Tags:

html

c#

I'm working with c# ASP .Net, HtmlTable, HtmlTableRow, HtmlTableCell to create a table.

for example... i need to have some cells to be wrapped by <tfoot> and </tfoot>

i tried to do it with HtmlGenericControl to wrap these cells with the tag "tfoot" to the HtmlTable but it didn't work.

i know that HtmlTableCell can have in the constructor "th" for "thead" and "td" for tbody. but i need them to be wrapped with the actual "thead" and "tbody".

Any Suggestions??

like image 407
Jack Avatar asked Jan 12 '10 20:01

Jack


3 Answers

Here is how (below). All classes used are in System.Web.UI.WebControls.

        TableRow headerRow = new TableHeaderRow();
        TableRow row2 = new TableRow();
        TableRow row3 = new TableFooterRow();
        Table table = new Table();

        var cell1 = new TableCell();
        headerRow.TableSection = TableRowSection.TableHeader;
        cell1.Text = "Header";
        headerRow.Cells.Add(cell1);

        var cell2 = new TableCell();
        cell2.Text = "Contents";
        row2.Cells.Add(cell2);

        var cell3 = new TableCell();
        cell3.Text = "Footer";
        row3.Cells.Add(cell3);
        row3.TableSection = TableRowSection.TableFooter;


        table.Rows.Add(headerRow);
        table.Rows.Add(row2);
        table.Rows.Add(row3);
        this.Controls.Add(table);
like image 124
JR Kincaid Avatar answered Nov 09 '22 02:11

JR Kincaid


Doesn't look good, I'm afraid. This from http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmltable%28VS.80%29.aspx

Note

A complex table model is not supported. You cannot have an HtmlTable control with nested < caption >, < col >, < colgroup >, < tbody >, < thead >, or < tfoot > elements. These elements are removed without warning and do not appear in the output HTML. An exception will be thrown if you attempt to programmatically add these table model elements to the Control.Controls collection of the HtmlTable control.

Old school html is the way, then.

like image 39
graphicdivine Avatar answered Nov 09 '22 04:11

graphicdivine


You can use

HtmlGenericControl table = new HtmlGenericControl("table");

instead of

HtmlTable table = new HtmlTable();
like image 2
Evžen Černý Avatar answered Nov 09 '22 04:11

Evžen Černý