得到错误:“控件集合无法修改”

时间:2011-07-18 11:41:51

标签: c# asp.net

您好我最初使用此代码,但现在当我调试此代码时,我收到错误..

“无法修改Controls集合,因为控件包含代码块”

我的代码是:

for (int m = 0; m < dtGroupedByDate.Rows.Count; m++)
{
    Label Date = new Label();
    Date.Text = dtGrpBySmDate.Rows[m][0].ToString();
    Date.Style["margin-left"] = (m > 0) ? "20px" : "0px";
    this.Controls.Add(Date);
    Label PowerSum = new Label();
    PowerSum.Text = dtGroupedByDate.Rows[m][1].ToString();
    PowerSum.Style["margin-left"] = "20px";
    this.Controls.Add(PowerSum);
}

请帮助我,为什么我收到此错误..

1 个答案:

答案 0 :(得分:2)

谷歌搜索引用的错误返回了该短语的完整匹配的整页,第一个很好地总结了问题:

基本上看起来如果在.aspx页面中使用<% ... %>语法 where ,以这种方式修改Controls集合将会失败。

然后,该页面解释了您可以使用数据绑定语法<%# ... %>来解决此问题,但根据具体情况,这可能并非总是可行。

第二个链接是关于该主题的相当全面的StackOverflow问题,可能也有帮助。