请考虑以下几点:
后面的代码:
public void InitiateTable()
{
Controls.Add(new LiteralControl("<table class=\"table table-invoice\" >")); //Line that gave me error
...
Controls.Add(new LiteralControl("</table>"));
}
在我的ASP.Net页面上:
<% InitiateTable(); %>
当我运行代码时,它给我一个错误,说:
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
有人可以解释我做错了什么吗?谢谢你。
注意根据注释中的建议,将LiteralControl更改为Control。
错误消息告诉您,您不能在容器包含<%%>代码块的地方修改控件集合。Controls.Add将修改控件集合。为了解决这个问题:
在您的aspx页面更改
<% InitiateTable(); %>
到
<asp:Literal runat="server" id="mytable" />
然后在页面加载方法中,添加对InitiateTable()的调用
然后在您的InitiateTable()方法中将代码更改为如下所示:
public void InitiateTable()
{
var literalControlValue = new StringBuilder();
literalControlValue.Append("<table class=\"table table-invoice\" >");
...
literalControlValue.Append("</thead>"));
mytable.Text = literalControlValue.ToString();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句