博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
“System.Web.UI.WebControls.Literal”不允许使用子控件
阅读量:5757 次
发布时间:2019-06-18

本文共 1182 字,大约阅读时间需要 3 分钟。

今天在写下面的代码时遭遇错误——“System.Web.UI.WebControls.Literal”不允许使用子控件('System.Web.UI.WebControls.Literal' does not allow child controls):

var postBodyDiv = new HtmlGenericControl(){    ID = "cnblogs_post_body",    ClientIDMode = ClientIDMode.Static,    TagName = "div",    InnerHtml = body};var signatureDiv = new HtmlGenericControl(){    ID = "signature",    TagName = "div"};literalBody.Controls.Add(postBodyDiv);literalBody.Controls.Add(signatureDiv);

literalBody的类型是System.Web.UI.WebControls.Literal。将postBodyDiv与signatureDiv作为子控件添加到literalBody中,是为了避免字符串拼接带来的内存消耗。

之前字符串拼接的代码如下:

literalBody.Text = "
" + body + "
";

本来这不是问题,把类型由Literal改为Label就行了,但是实际场景不允许这么做,必须要用Literal。

后来采取了在literalBody的父控件中动态添加postBodyDiv与signatureDiv的方法解决了问题,代码如下:

var postBodyDiv = new HtmlGenericControl(){    ID = "cnblogs_post_body",    ClientIDMode = ClientIDMode.Static,    TagName = "div",    InnerHtml = body};var signatureDiv = new HtmlGenericControl(){    ID = "signature",    TagName = "div"};var bodyControlIndex = this.Controls.IndexOf(literalBody);if (bodyControlIndex >= 0){    Controls.AddAt(bodyControlIndex, postBodyDiv);    Controls.AddAt(bodyControlIndex + 1, signatureDiv);}

转载地址:http://qhpkx.baihongyu.com/

你可能感兴趣的文章
HashSet HashMap 源码阅读笔记
查看>>
变量声明提升1
查看>>
轻量级的Java 开发框架 Spring
查看>>
JS之路——浏览器window对象
查看>>
Chrome教程(二)使用ChromeDevTools命令菜单运行命令
查看>>
数据结构及算法基础--快速排序(Quick Sort)(二)优化问题
查看>>
你对position的了解到底有多少?
查看>>
随笔2013/2/19
查看>>
Windows Phone的Silverlight Toolkit 安装及其使用
查看>>
DBS:同学录
查看>>
Mysql备份系列(1)--备份方案总结性梳理
查看>>
[CareerCup] 1.6 Rotate Image 翻转图像
查看>>
jQuery中$.fn的用法示例介绍
查看>>
Python中的画图初体验
查看>>
Java程序员的日常 —— 响应式导航Demo
查看>>
objective-c内存管理基础
查看>>
sap关于价值串的说法(转载)
查看>>
Migration to S/4HANA
查看>>
sed 对目录进行操作
查看>>
什么是代码
查看>>