views:

1016

answers:

2

Hi!

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

A: 

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.

graphicdivine
thank you very much !
Jack
+2  A: 

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

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

        var cell1 = new TableCell();
        row.TableSection = TableRowSection.TableHeader;
        cell1.Text = "Header";
        row.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(row);
        table.Rows.Add(row2);
        table.Rows.Add(row3);
        this.Controls.Add(table);
foreachdev
very very good. it help me. but they fo it only for header...there is no TableFooterCell...
Jack
Not necessary. You just make the row's TableSection value 'TableFooter'. These are the classes Gridview uses.
foreachdev
Keep in mind that the order is thead?, tfoot?, tbody+. The footer doesn't come at the end.
brianary