我正在动态构建一个.NET表,包括带有TablesSection集的TableRows,从而产生1个THEAD行和多个TBODY行。现在我需要在THEAD行中获取TableCells以使用TH标签而不是TD标签进行渲染。我怎么做?我还没有找到一个TableCell属性,它赢了,让我将Literals添加到行Cells集合中。
答案 0 :(得分:14)
您是否尝试过TableHeaderCell
?
答案 1 :(得分:0)
您可以使用HtmlGenericControl th = new HtmlGenericControl("th")
并将其添加到thead行。
答案 2 :(得分:0)
另一个解决方案是继承TableCell
类并覆盖Render
方法。
这使您能够真正自定义WebControl,并添加可能使您的特定方案受益的其他方法。
protected override void Render(HtmlTextWriter writer)
{
if (Type == CellType.th)
{
writer.Write(HtmlTextWriter.TagLeftChar + "th"); // Render <th
Attributes.Render(writer); // Render any associated attributes
writer.Write(HtmlTextWriter.TagRightChar); // Render >
base.RenderContents(writer); // Render the content between the <th></th> tags
writer.Write(HtmlTextWriter.EndTagLeftChars + "th" + HtmlTextWriter.TagRightChar); // Render </th>
}
else
base.Render(writer); // Defaults to rendering <td>
}
如果您希望分别自定义它们,此解决方案允许您继承一个类而不是TableCell
和TableHeaderCell
。
修改强>
Type
语句中的if
属性是该类的自定义属性,我在其中添加了enum
以简化适用的类型。
public enum CellType
{
td,
th
}
private CellType _Type;
public CellType Type
{
get { return _Type; }
set { _Type = value; }
}