我正在遍歷我創建的表並獲取每行的第一個單元格。基於什麼類型的細胞,會做不同的事情。例如:如何確定HtmlTableCell控件是th還是td?
if(cCell.type=='th' && cCell.parent.next.Cells[0].type == 'th'){
cCell.parent.parent.controls.remove(cCell.parent);
}
聲明,如果當前單元格和它下面的單元格都是th,則刪除當前單元格行。
我正在遍歷我創建的表並獲取每行的第一個單元格。基於什麼類型的細胞,會做不同的事情。例如:如何確定HtmlTableCell控件是th還是td?
if(cCell.type=='th' && cCell.parent.next.Cells[0].type == 'th'){
cCell.parent.parent.controls.remove(cCell.parent);
}
聲明,如果當前單元格和它下面的單元格都是th,則刪除當前單元格行。
湯姆英格拉姆似乎是正確的......表中使用
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>
沒有HtmlTableHeaderCell控件,但TableHeaderCell在頁面的html中成爲<th>
,而TableCell是<td>
。我不完全理解你的問題的上下文,但你應該能夠用typeof()區分TableCell和TableHeaderCell。所有HtmlControls的list確認<td>
和<th>
之間沒有類型差異,都是HtmlTableCell。
我認爲,如果你想以編程方式生成表格,你最好用Web控件,但是如果你有一個已經創建的表格,使用TagName沒有任何內在的錯誤。
如果要檢查表細胞類型System.Web.UI.WebControls的.TableCell,你應該能夠使用TagKey屬性(enter link description here
那麼你的代碼將是:
if(cCell.TagKey == HtmlTextWriterTag.Td && cCell.parent.next.Cells[0].TagKey == HtmlTextWriterTag.Th){
cCell.parent.parent.controls.remove(cCell.parent);
}
不知道你試圖完成什麼,但我敢打賭有辦法更簡單的方法。
也許'cCell.TagName' –