您的位置:首页 > 编程语言

控件包含代码块,因此无法修改控件集合

2013-06-10 08:55 519 查看
原文 /article/6105083.html

控件包含代码块(即<% ... %>),因此无法修改控件集合。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 控件包含代码块(即 <% ... %> ),因此无法修改控件集合。
一、错误例子解说:
<asp:Panel ID="p_Time" runat="server">
<%= DateTime.Now.ToString("HH-mm")%>
</asp:Panel>

Label lb=new Label();
lb.Text = "当前时间";
p_Time.Controls.Add(lb);
以上代码执行的时候,将会产生该错误。由于p_Time控件中包含了代码块(即<% ... %>),无法修改控件集合,所以当执行语句p_Time.Controls.Add(lb)时会产生错误。
二、通常出错的地方以及解决方案
通常在页面代码的head部分的javascript代码中通过<%=this.control.ClientID%>来获取服务器控件标识符(代码如下所示)等,当应用主题等功能的时候,服务器脚本会向Header动态添加控件,而引发错误。

?
解决方案如下:1、把javascript放到body中
2、声明自定义控件来代替包含了代码块(即<% ... %>)
控件代码:

?
head中的javascript修改如下:

?
注:页面代码中要注册控件CustomControl:ControlInfoWriter

作者:郑某人
出处:http://jsonzheng.cnblogs.com
欢迎转载或分享,但请务必声明文章出处。如果文章对您有帮助,希望你能推荐或关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐