2009-08-26 73 views
7

任何人都可以告诉我如何动态创建我的c#代码中的tbody标签?c#创建thead和tbody

private void MakeTable() 
{ 
    Table tb = new Table(); 
    TableRow tr = new TableRow(); 
    TableCell td = new TableCell(); 
    td.Text="hello world"; 
    tr.Cells.Add(td); 
    tb.Rows.Add(tr); 
} 

感谢

+4

不知怎的,我读为“线”,这让绝对没有任何意义。很抱歉打扰了。 – 2009-08-26 18:40:43

+0

相同! (15个令人讨厌的角色占用空间) – Jagd 2009-08-26 18:42:00

回答

20

这里创建一个THEAD,TBODY和TFooter一个示例代码。

基本上可以一直使用的TableRow对象只是重置该TableSection财产。

Table table = new System.Web.UI.WebControls.Table(); 
    TableRow tableRow; 
    TableCell tableCell; 

    tableRow = new TableRow(); 
    tableRow.TableSection = TableRowSection.TableHeader; 
    tableCell = new TableCell(); 
    tableCell.Text = "HEADER"; 
    tableRow.Cells.Add(tableCell); 
    table.Rows.Add(tableRow); 

    tableRow = new TableRow(); 
    tableRow.TableSection = TableRowSection.TableBody; 
    tableCell = new TableCell(); 
    tableCell.Text = "BODY"; 
    tableRow.Cells.Add(tableCell); 
    table.Rows.Add(tableRow); 

    tableRow = new TableRow(); 
    tableRow.TableSection = TableRowSection.TableFooter; 
    tableCell = new TableCell(); 
    tableCell.Text = "FOOTER"; 
    tableRow.Cells.Add(tableCell); 
    table.Rows.Add(tableRow); 

    plhTest.Controls.Add(table); 

虽然我会建议建立直接的HTML表,并追加到页。

+1

为什么你会建议(“在直接html中创建表格并附加到页面”)的任何具体原因? – Jayesh 2011-09-26 12:58:24

+0

如果你必须动态生成这个(比如说,对于未知的列数或其他原因),我发现TableHeader不会呈现为'thead',除非添加了TableFooter(页脚可以没有单元格,但它必须是添加到行集合中)。 GRRRR。 – 2012-08-10 15:46:43

+1

小心通过表的Rows属性添加TableHeaderRow,而不是控件属性。通过Controls属性添加_sometimes_意味着thead元素不会呈现为html。 – Bucket 2015-06-29 13:03:50

6

的TableRow基本上是tbody

若要制作thead节,请使用TableHeaderRow类而不是TableRow类。

(还有,顺便说一句,TableFooterRow如果你想实现tfoot

0
var row = new TableHeaderRow() { TableSection = TableRowSection.TableHeader }; 
table.Rows.Add(row); 

应该做的伎俩