The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

刚才Insus.NET有尝试改一段代码,是让用户能动态变更网页背景图片的小功能。当Insus.NET去执行铵钮Click事件时,它却出现标题的错误。
代码是这样的:




此代码,原本是没有什么问题的,但现在添加了#6行代码,即是一个铵钮。当执行click事件,它就出现异常了。 Click事件代码是这样的:



怎样解决呢?
最终在网上找到一个方法:
http://leedumond.com/blog/the-controls-collection-cannot-be-modified-because-the-control-contains-code-blocks/
大约如下(英文):



Insus.NET所理解的,把 "=" 换为"#",然后去Page_load事件中作数据绑定。



在Page_load事件中:



OK,果然能解决此问题。
不过,Insus.NET想使用自己的方法来解这个问题。
去除网页head节点的样式:



去网页.aspx.cs的Page_Load拿掉那一句:Page.Header.DataBind();



并添加一个方法 protected override void OnInit(EventArgs e)



铵钮的Click事件没有改变:



#A图片与#B图片,区别,只是图片名称不同而已。重构一下:



看看动态变更网页背景图片:



posted @ 2013-06-24 17:26  Insus.NET  阅读(748)  评论(0编辑  收藏  举报