我想在 ASCX 文件中创建一个包含以下内容的用户控件:
...
<tr runat="server" ID="mytr">
<td runat="server" ID="myCell1"></td>
<asp:PlaceHolder runat="server" ID="myPlaceholder"></asp:PlaceHolder>
<td runat="server" ID="myCell2"></td>
</tr>
...
这会产生以下错误:
System.Web.UI.HtmlControls.HtmlTableCellCollection 必须具有“System.Web.UI.HtmlControls.HtmlTableCell”类型的项目。“asp:PlaceHolder”的类型为“System.Web.UI.WebControls.PlaceHolder”。
的原因PlaceHolder
是我想动态生成该单元格(例如在 and 之间进行选择TD
,TH
或者选择是否创建它。
是否有捷径可寻?或者也许我应该创建我自己的继承的自定义控件HtmlTableCell
?
我注意到某些表格元素的视图状态由序号(子控件集合的索引)键控,这意味着我有时也无法在我期望的情况下动态生成单元格。在这方面有一些一般的最佳实践吗?
我也考虑过总是创建 TD,但只是隐藏它。问题是我rowspan
在前一行使用,这意味着不同的行将呈现不同数量的单元格。这是有条件的,并且可以在回发之间更改(通过启用/禁用一行)。