控件包含代码块,因此无法修改控件集合
- 文章转载至: 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
控件包含代码块,因此无法修改控件集合相关推荐
- 控件包含代码块(即 % ... %),因此无法修改控件集合。
第一种: 在使用主题的时候出现 控件包含代码块(即 <% ... %>),因此无法修改控件集合错误,原来错误的原因是: 控件包含代码块(即 <% ... %>),因此无法修改控 ...
- 控件包含代码块(即% ... %),因此无法修改控件集合解决
控件包含代码块(即<% ... %>),因此无法修改控件集合 除了其他人分析的原因之外,还有我遇到的: 有人把Repeater里数据绑定写成<%=XXX%>,改了之后就没有那个 ...
- 控件包含代码块(即 ),因此无法修改控件集合 (转自http://blog.csdn.net/wangchao1982/archive/2007/11/19/1892472.aspx)...
相信很多朋友都遇到过这个问题,这的确是一个很古怪的东西.js在HTML页面的不同标签中,好像有不同的含义(具体我就不清楚了, 所以我就试着把js从head里拿到了body中,最后拿到了</htm ...
- Android Studio中快捷键实现try catch等功能包含代码块
1.windows系统下,只需选中需包含的代码块,按快捷键Ctry+Alt+T即可: 2.Ubuntu下由于快捷键已经被占用,故需要自行重新设定,设定过程如下: 点击file--->settin ...
- [ASP.NET 控件实作 Day14] 继承 CompositeControl 实作 Toolbar 控件
之前我们简单介绍过继承 CompositeControl 来实作复合控件,在本文我们将以 Toolbar 控件为例,以复合控件的作法(继承 CompositeControl )来实作 Toolbar ...
- eclipse实现代码块折叠-类似于VS中的#region……#endregion
刚才在写代码的时候,写了十几行可以说是重复的代码: 如果整个方法或类中代码多了,感觉它们太TM占地方了,给读者在阅读代码上造成很大的困难,于是想到能不能把他们"浓缩"成一行,脑子里 ...
- Typora DIY 主题背景,以及透明pre代码块。
文章目录 1. 文件 → 偏好设置 → 外观 → 打开主题文件夹 2. 找到你正在使用的主题文件 这里我用的是 (night)夜间主题 3.新建一个文件夹( image)用于存放背景图片 二.修改cs ...
- 静态代码块、构造代码块、非法的前向引用
目录 类变量(静态变量)和静态代码块 类变量(静态变量)和构造代码块 static final变量引用 两个类关于final变量的引用 非法的前向引用(Illegal forward referenc ...
- C语言块级变量:在代码块内部定义的变量
所谓代码块,就是由{ }包围起来的代码.代码块在C语言中随处可见,例如函数体.选择结构.循环结构等.不包含代码块的C语言程序根本不能运行,即使最简单的C语言程序(上节已经进行了展示)也要包含代码块. ...
最新文章
- 又来搞事情了,这次女友让我研究如何实现一个文件系统
- 深度解析K-L变换 及其 在特征识别中的应用
- 前端学习(1980)vue之电商管理系统电商系统之实现文本框和按钮的切换
- 【转】深入理解Windows消息机制
- Android保存之SharedPreferences
- eclipse的自动检查语法错误功能让我有点烦,能不能关掉,或者,只是10秒检查一次。。...
- Oracle官网登录下载资源账号密码共享
- 压缩解压缩工具之WinRAR
- 《JavaSE系列教程》
- 金蝶K3系统数据库群集部署方案
- 计算机应用苹果笔记,使用感受 篇一:为什么我不推荐ipad+apple pencil记笔记(一反主流)...
- 阿里云短信发送接口直接HTTP请求调用
- Windows10 插入耳机没声音,安装驱动无效问题解决
- web页面下实现文字环绕图片效果
- AIBU-在建工程转固定资产(预转固)报错:消息号AW002 资产无单项需结算
- OPPO出货量超越苹果跻身全球第四,直逼小米
- 概率论中常见的几种分布
- Udacity Deep Learning课程作业(五)
- 存储管理——页式存储管理
- 毕业设计-基于微信小程序的校园快递代取系统
热门文章
- 微服务项目的整合与测试
- Oracle的基本操作(二:存储过程)
- Hadoop集群搭建(四:Zookeeper环境安装)
- (C++)strlen(),strcmp(),strcpy(),strcat()用法
- python 列表维度_如何输出python中list的维度
- 如何评判软件测试培训机构的好坏?
- UI设计培训教程分享:UI设计师的色彩使用技巧
- 零基础学Java需要做哪些准备
- 为什么企业选择年底裁员?如何选择一个正确的公司!
- 分布式RPC实践--Dubbo基础篇