我正在遍历我创建的表格并从每一行中获取第一个单元格。根据细胞的类型,会做不同的事情。例子:
if(cCell.type=='th' && cCell.parent.next.Cells[0].type == 'th'){
cCell.parent.parent.controls.remove(cCell.parent);
}
说明,如果当前单元格和它下面的单元格都是 th,则删除当前单元格行。
我正在遍历我创建的表格并从每一行中获取第一个单元格。根据细胞的类型,会做不同的事情。例子:
if(cCell.type=='th' && cCell.parent.next.Cells[0].type == 'th'){
cCell.parent.parent.controls.remove(cCell.parent);
}
说明,如果当前单元格和它下面的单元格都是 th,则删除当前单元格行。
没有 HtmlTableHeaderCell 控件,但是TableHeaderCell在页面的 html 中变成了 a<th>
而TableCell是<td>
. 我不完全理解您的问题的上下文,但您应该能够使用 typeof() 区分 TableCell 和 TableHeaderCell。这个所有 HtmlControls 的列表<td>
确认和之间没有类型差异<th>
,都是 HtmlTableCell。
我认为,如果您想以编程方式生成表格,最好使用 Web 控件,但如果您有一个已经创建的表格,则使用 TagName 本质上没有任何问题。
汤姆英格拉姆似乎是正确的......
foreach (HtmlTableRow row in MyTable.Rows)
{
if (row.Cells[0].TagName.ToLower() == "th")
{
// header.
}
else
{
// cell.
}
}
使用的示例表...
<table runat="server" id="MyTable">
<tr>
<th>header 1</th>
<th>header 2</th>
</tr>
<tr>
<td>cell 1</td>
<td>cell 2</td>
</tr>
</table>
如果您检查的表格单元格是 System.Web.UI.WebControls.TableCell 类型,您应该能够使用 TagKey 属性(在此处输入链接描述
那么您的代码将是:
if(cCell.TagKey == HtmlTextWriterTag.Td && cCell.parent.next.Cells[0].TagKey == HtmlTextWriterTag.Th){
cCell.parent.parent.controls.remove(cCell.parent);
}
虽然不确定您要完成什么,但我敢打赌有更简单的方法来做到这一点。