文章转载至:  http://www.olnote.com/itlife/note/100000003.aspx
控件包含代码块(即<% ... %>),因此无法修改控件集合。
说明: 执行当前 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动态添加控件,而引发错误。

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><script type="text/javascript">function showTime(){var now = new Date();var lbTime = document.getElementById('<%= this.lb_Time.ClientID %>');lbTime.innerHTML = now.getHours() + ":" + now.getMinutes();}</script></head><body><asp:Label ID="lb_Time" runat="server" Text="lb_Time"></asp:Label><input id="btn_Show" type="button" value="button" οnclick="return showTime()" /></body>
</html>

解决方案如下:

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

public class ControlInfoWriter : Control
{private string writerControlID;private string writerProperty;public string WriterControlID{get { return writerControlID; }set { writerControlID = value; }}public string WriterProperty{get { return writerProperty; }set { writerProperty = value; }}protected override void Render(System.Web.UI.HtmlTextWriter writer){object writerControl = this.Parent.FindControl(writerControlID);//查找要输出的控件Type t = writerControl.GetType();//获取控件的类型PropertyInfo pi = t.GetProperty(writerProperty);//获取要输出的属性string value = pi.GetValue(writerControl, null).ToString();//得到控件的属性值writer.Write(value);base.Render(writer);}
}

head中的javascript修改如下:

<script type="text/javascript">
function showTime()
{var now = new Date();var lbTime = document.getElementById('<CustomControl:ControlInfoWriter ID="controlInfoWriter" WriterControlID="lb_Time" WriterProperty="ClientID" runat="server" />');lbTime.innerHTML = now.getHours() + ":" + now.getMinutes();
}
</script>

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

转载于:https://www.cnblogs.com/jsonzheng/archive/2011/01/18/1938403.html

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

  1. 控件包含代码块(即 % ... %),因此无法修改控件集合。

    第一种: 在使用主题的时候出现 控件包含代码块(即 <% ... %>),因此无法修改控件集合错误,原来错误的原因是: 控件包含代码块(即 <% ... %>),因此无法修改控 ...

  2. 控件包含代码块(即% ... %),因此无法修改控件集合解决

    控件包含代码块(即<% ... %>),因此无法修改控件集合 除了其他人分析的原因之外,还有我遇到的: 有人把Repeater里数据绑定写成<%=XXX%>,改了之后就没有那个 ...

  3. 控件包含代码块(即 ),因此无法修改控件集合 (转自http://blog.csdn.net/wangchao1982/archive/2007/11/19/1892472.aspx)...

    相信很多朋友都遇到过这个问题,这的确是一个很古怪的东西.js在HTML页面的不同标签中,好像有不同的含义(具体我就不清楚了, 所以我就试着把js从head里拿到了body中,最后拿到了</htm ...

  4. Android Studio中快捷键实现try catch等功能包含代码块

    1.windows系统下,只需选中需包含的代码块,按快捷键Ctry+Alt+T即可: 2.Ubuntu下由于快捷键已经被占用,故需要自行重新设定,设定过程如下: 点击file--->settin ...

  5. [ASP.NET 控件实作 Day14] 继承 CompositeControl 实作 Toolbar 控件

    之前我们简单介绍过继承 CompositeControl  来实作复合控件,在本文我们将以 Toolbar 控件为例,以复合控件的作法(继承 CompositeControl )来实作 Toolbar ...

  6. eclipse实现代码块折叠-类似于VS中的#region……#endregion

    刚才在写代码的时候,写了十几行可以说是重复的代码: 如果整个方法或类中代码多了,感觉它们太TM占地方了,给读者在阅读代码上造成很大的困难,于是想到能不能把他们"浓缩"成一行,脑子里 ...

  7. Typora DIY 主题背景,以及透明pre代码块。

    文章目录 1. 文件 → 偏好设置 → 外观 → 打开主题文件夹 2. 找到你正在使用的主题文件 这里我用的是 (night)夜间主题 3.新建一个文件夹( image)用于存放背景图片 二.修改cs ...

  8. 静态代码块、构造代码块、非法的前向引用

    目录 类变量(静态变量)和静态代码块 类变量(静态变量)和构造代码块 static final变量引用 两个类关于final变量的引用 非法的前向引用(Illegal forward referenc ...

  9. C语言块级变量:在代码块内部定义的变量

    所谓代码块,就是由{ }包围起来的代码.代码块在C语言中随处可见,例如函数体.选择结构.循环结构等.不包含代码块的C语言程序根本不能运行,即使最简单的C语言程序(上节已经进行了展示)也要包含代码块. ...

最新文章

  1. 又来搞事情了,这次女友让我研究如何实现一个文件系统
  2. 深度解析K-L变换 及其 在特征识别中的应用
  3. 前端学习(1980)vue之电商管理系统电商系统之实现文本框和按钮的切换
  4. 【转】深入理解Windows消息机制
  5. Android保存之SharedPreferences
  6. eclipse的自动检查语法错误功能让我有点烦,能不能关掉,或者,只是10秒检查一次。。...
  7. Oracle官网登录下载资源账号密码共享
  8. 压缩解压缩工具之WinRAR
  9. 《JavaSE系列教程》
  10. 金蝶K3系统数据库群集部署方案
  11. 计算机应用苹果笔记,使用感受 篇一:为什么我不推荐ipad+apple pencil记笔记(一反主流)...
  12. 阿里云短信发送接口直接HTTP请求调用
  13. Windows10 插入耳机没声音,安装驱动无效问题解决
  14. web页面下实现文字环绕图片效果
  15. AIBU-在建工程转固定资产(预转固)报错:消息号AW002 资产无单项需结算
  16. OPPO出货量超越苹果跻身全球第四,直逼小米
  17. 概率论中常见的几种分布
  18. Udacity Deep Learning课程作业(五)
  19. 存储管理——页式存储管理
  20. 毕业设计-基于微信小程序的校园快递代取系统

热门文章

  1. 微服务项目的整合与测试
  2. Oracle的基本操作(二:存储过程)
  3. Hadoop集群搭建(四:Zookeeper环境安装)
  4. (C++)strlen(),strcmp(),strcpy(),strcat()用法
  5. python 列表维度_如何输出python中list的维度
  6. 如何评判软件测试培训机构的好坏?
  7. UI设计培训教程分享:UI设计师的色彩使用技巧
  8. 零基础学Java需要做哪些准备
  9. 为什么企业选择年底裁员?如何选择一个正确的公司!
  10. 分布式RPC实践--Dubbo基础篇