2014-05-04 26 views
1

如何将一个单元拆分为两行?或让行跨度工作......我不太在意魔女方法可以工作...我只是不能使它工作...在两个C中拆分HtmlTableCell#

我想使这个:http://jsfiddle.net/su3AH/1/

只有它的弗罗姆C#...

什么我现在是这样的:

HtmlTableRow row = new HtmlTableRow(); 
HtmlTableCell cell = new HtmlTableCell(); 

foreach (DataRow dataRow in tab.Rows) 
{ 
    row = new HtmlTableRow(); 
    cell = new HtmlTableCell(); 
    cell.InnerHtml = "cell1"; 
    row.Cells.Add(cell); 

    cell = new HtmlTableCell(); 
    cell.InnerHtml = "cell2"; 
    row.Cells.Add(cell); 

    cell = new HtmlTableCell(); 
    cell.InnerHtml = "cell3"; 
    row.Cells.Add(cell); 

    cell = new HtmlTableCell(); 
    cell.InnerHtml = "cell4"; 
    row.Cells.Add(cell); 

    tableContent.Rows.Add(row); 
} 

谢谢!

回答

1

您可以设置RowSpan属性为您HtmlTableCell对象 - 2的值应为小区1做到这一点,4

所以你需要使用2行的HTML内容的每个行来解决这个问题:

HtmlTableRow row; 
HtmlTableCell cell; 
HtmlTable tableContent = new HtmlTable(); 

tableContent.Border = 2; 
foreach (DataRow dataRow in tab.Rows) 
{ 
    var row1 = new HtmlTableRow(); 
    var row2 = new HtmlTableRow(); 
    cell = new HtmlTableCell(); 
    cell.InnerHtml = "cell1"; 
    cell.RowSpan = 2; 
    row1.Cells.Add(cell); 

    cell = new HtmlTableCell(); 
    cell.InnerHtml = "cell2"; 
    row1.Cells.Add(cell); 

    cell = new HtmlTableCell(); 
    cell.InnerHtml = "cell3"; 
    row2.Cells.Add(cell); 

    cell = new HtmlTableCell(); 
    cell.InnerHtml = "cell4"; 
    cell.RowSpan = 2; 
    row1.Cells.Add(cell); 


    tableContent.Rows.Add(row1); 
    tableContent.Rows.Add(row2); 
} 

this.Controls.Add(tableContent); 
} 

产生的HTML将是这样的:

<table border="2"> 
    <tr> 
     <td rowspan="2">cell1</td> 
     <td>cell2</td> 
     <td rowspan="2">cell4</td> 
    </tr> 
    <tr> 
     <td>cell3</td> 
    </tr> 
    <tr> 
     <td rowspan="2">cell1</td> 
     <td>cell2</td> 
     <td rowspan="2">cell4</td> 
    </tr> 
    <tr> 
     <td>cell3</td> 
    </tr> 
</table> 
+0

不,没有工作......我不知道这个问题是在一个循环,岂不等于...我有一个数据库的数据乐和我从那里做表... – Andrew

+1

@Andrew我修好了 –

+0

是的,现在它的工作,非常感谢你! – Andrew