控件集合无法修改,因为控件包含代码块(即 <% ... %>)
Posted
技术标签:
【中文标题】控件集合无法修改,因为控件包含代码块(即 <% ... %>)【英文标题】:The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>) 【发布时间】:2010-05-13 09:14:00 【问题描述】:我正在尝试添加一个 CSS 表单代码。我的网站使用母版页。我收到错误无法修改控件集合,因为控件包含代码块(即 )。
我的代码片段
string CssClass = string.Format("0/1?$BUILD$", BaseImageUrl, CssFileName);
htmlLink css = new HtmlLink();
css.Href = CssClass;
css.Attributes["rel"] = "stylesheet";
css.Attributes["type"] = "text/css";
Header.Controls.Add(css);
有什么建议吗?
【问题讨论】:
【参考方案1】:您不能修改head标签的Controls
集合,因为header中的代码包含代码块。所以,你有两个选择:
去掉头部的代码块,把数据从后面的代码放到头部。
在 head 标签内放置一个容器(例如 PlaceHolder
),并将链接添加到容器的 Controls
集合中。
【讨论】:
【参考方案2】:该错误是因为尚未呈现控件,而正在执行 javascript 代码。
我刚刚将 javascript 移到页面底部。
【讨论】:
以上是关于控件集合无法修改,因为控件包含代码块(即 <% ... %>)的主要内容,如果未能解决你的问题,请参考以下文章
控件集合无法修改,因为控件包含代码块(即 <% ... %>)
无法修改 Controls 集合,因为控件包含代码块(即 <% ... %> ),动态添加具有 Masterpages 的控件
asp.net c# javascript 控件集合无法修改,因为控件包含代码块(即<% ... %>)
在服务器端控件中使用 <%= %> 会导致无法修改 Controls 集合,因为控件包含代码块(即 <% ... %>)
无法修改 Controls 集合,因为该控件包含代码块(即 <% ... %>)。Telerik.Web.UI.RadAjaxControl.MoveUpdatePanel