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

来源:互联网 发布:sqlserver 字段别名 编辑:程序博客网 时间:2024/04/20 17:29

刚才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图片,区别,只是图片名称不同而已。重构一下:



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




<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击