今天在写下面的代码时遭遇错误——“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 = "<div id=\"cnblogs_post_body\">" + body + "</div><div id=\"signature\"></div>";

本来这不是问题,把类型由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 >= )
{
Controls.AddAt(bodyControlIndex, postBodyDiv);
Controls.AddAt(bodyControlIndex + , signatureDiv);
}

“System.Web.UI.WebControls.Literal”不允许使用子控件的更多相关文章

  1. System.Web.UI.WebControls.FileUpload.cs

    ylbtech-System.Web.UI.WebControls.FileUpload.cs 1. 程序集 System.Web, Version=4.0.0.0, Culture=neutral, ...

  2. foreach statement cannot operate on variables of type 'System.Web.UI.WebControls.Table' because 'System.Web.UI.WebControls.Table' does not contain a public definition for 'GetEnumerator'

    错误:foreach statement cannot operate on variables of type 'System.Web.UI.WebControls.Table' because ' ...

  3. 无法将类型“ASP.login_aspx”转换为“System.Web.UI.WebControls.Login”

    今天碰上了一个很傻的问题,起码我认为是这样. 项目中首页名是:Login.aspx,编译.运行都没有出现问题. 于是打包发布网站,各项内容都配置好后,问题出现了.一运行首页面就出现下面这个错误: 编译 ...

  4. 怎样将某一类型标识为适合绑定到 System.Web.UI.WebControls.ObjectDataSource 对象的对象

    1.页面的代码如下: body> <form id="form1" runat="server"> <div> </div& ...

  5. System.Web.UI.WebControls的Web服务器控件

    calendar[英][ˈkælɪndə(r)][美][ˈkæləndɚ]n.日历; 历法; 日程表; (一年之中的)重大事件(或重要日期)一览表; vt.把…记入日程表中; 把…列入表中; 为(文件 ...

  6. System.Web.UI.Page的页面基类

    服务器端的page类 所有我们编写的页面都继承自page类,可见page类是非常重要的,page类提供了哪些功能,直接决定了我们的页面类可以继承什么功能,或者说,直接决定了我们的页面类功能的强大与否! ...

  7. System.Web.UI.HtmlControls

    用来创建一个标签.HtmlContainerControl 一般用此类来新建标签. 可能我们熟悉System.Web.UI.WebControls;空间.System.Web.UI.WebContro ...

  8. 继承System.Web.UI.Page的页面基类

    服务器端的page类      所有我们编写的页面都继承自page类,可见page类是非常重要的,page类提供了哪些功能,直接决定了我们的页面类可以继承什么功能,或者说,直接决定了我们的页面类功能的 ...

  9. 非静态的字段、方法或属性“System.Web.UI.Page.ClientScript...”要求对象引用 (封装注册脚本)

    在写项目时想对asp.net的注册前台脚本事件进行封装,就添加了一个BasePage.cs页面,但一直报错‘非静态的字段.方法或属性“System.Web.UI.Page.ClientScript.. ...

随机推荐

  1. Java2OP

    Java2OP D:\Program Files (x86)\Embarcadero\Studio\18.0\bin\converters\java2op\Java2OP.exe Java2OP.ex ...

  2. 滚动div的动画

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. css3颜色

    镂空字的2种做法

  4. loadrunner工具使用之脚本创建

    loadrunner工具使用之脚本创建 一.创建脚本 1.打开loadrunner,选择第一个控件VuGen(创建/编辑脚本),点击

  5. MySQL_杭州11月销售昨日未上架的SKU_20161212

    #C034杭州11月销售昨日未上架的SKU SELECT 城市,a.订单日期,a.客户数,a.订单数,b.产品数,a.金额,c.销售确认额,c.毛利额,c.毛利率 FROM ( SELECT 城市,订 ...

  6. java 堆栈

    堆栈(stack).位于通用RAM中,但通过它的“堆栈指针”可以从处理器哪里获得支持.堆栈指针若向下移动,则分配新的内存:若向上移动,则释放那些 内存.这是一种快速有效的分配存储方法,仅次于寄存器. ...

  7. AEScrypto WEB and ANDROID (GITHUB)

    https://github.com/evgenyneu/aes-crypto-android https://github.com/evgenyneu/aes-crypto-web https:// ...

  8. LoadRunner参数化详解(转)

    距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又想有一把好的利器毕竟可以帮助自己 ...

  9. spring3.0事务管理配置

    转载:http://war-martin.iteye.com/blog/1396335 第一种配置方法:基于XML的事务管理 这种方法不需要对原有的业务做任何修改,通过在XML文件中定义需要拦截方法的 ...

  10. 解决C# 转到定义时打开的是元数据文件而非源代码文件的问题

    原因:添加引用时 使用的是“浏览"选项卡,选择了项目生成的dll作为引用的内容. 解决:添加引用时 使用的是"项目"选项卡,选择了项目本身作为引用的内容.