2010-01-12 3 views
6

Ich arbeite mit C# ASP. Net, HtmlTable, HtmlTableRow, HtmlTableCell, um eine Tabelle zu erstellen.HtmlTable, HtmlTableRow, HtmlTableCell - Erstellen thead, tbody und tfoot

zum Beispiel ... Ich brauche einige Zellen zu haben, indem <tfoot> and </tfoot>

ich es mit Htmlgenericcontrol zu tun versucht, gewickelt werden, um zu wickeln, diese Zellen mit dem Stichwort „tfoot“ den Htmltable aber es hat nicht funktioniert .

ich weiß, dass HtmlTableCell im Konstruktor "th" für "thead" und "td" für tbody haben kann. aber ich brauche sie mit den tatsächlichen "Thead" und "tbody" gewickelt werden.

Irgendwelche Vorschläge ??

Antwort

20

Hier ist wie (unten). Alle verwendeten Klassen befinden sich 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); 
+0

sehr, sehr gut. es hilft mir. aber sie fo nur für Header ... gibt es keine TableFooterCell ... – Jack

+1

Nicht notwendig. Sie machen nur den TableSection-Wert der Zeile 'TableFooter'. Dies sind die Klassen, die Gridview verwendet. –

+1

Denken Sie daran, dass die Reihenfolge thead ?, tfoot ?, tbody +. Die Fußzeile kommt nicht am Ende. – brianary

4

Sieht nicht gut aus, fürchte ich. Das von http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmltable%28VS.80%29.aspx

Hinweis

Ein komplexes Tischmodell wird nicht unterstützt. Sie können kein HtmlTable-Steuerelement mit verschachtelten < Caption>, < col>, < colgroup>, < tbody>, < thead> oder < tfoot> -Elementen haben. Diese Elemente werden ohne Warnung entfernt und erscheinen nicht im Ausgabe-HTML. Wenn Sie versuchen, diese Tabellenmodellelemente der Control.Controls-Auflistung des HtmlTable-Steuerelements programmgesteuert hinzuzufügen, wird eine Ausnahme ausgelöst.

Old School HTML ist der Weg, dann.

+0

vielen Dank nutzen! – Jack

0

Graphic hat die richtige Antwort, dass die Funktionalität nicht verfügbar ist, um die Tabelle programmatisch mit htmlcontrols zu bauen. Sie könnten es im Markup mit html Tags erstellen und runat server wo nötig hinzufügen oder Sie erstellen es programmatisch mit den webcontrols. wie Tisch, TableRow etc ...

1

können Sie

HtmlGenericControl table = new HtmlGenericControl("table"); 

statt
HtmlTable table = new HtmlTable(); 
Verwandte Themen