加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在扩展asp.net Web控件时,应该在哪个事件中注入其他Web控件?

发布时间:2020-12-16 09:29:20 所属栏目:asp.Net 来源:网络整理
导读:我试图通过扩展现有控件来避免复合控件或使用ASCX.但是,我无法将控件添加到继承的控件中并保持其视图状态/后置完整性.每当我在预渲染期间添加控件时,控件都会显示,但是post-back会抛出一个viewstate异常.我尝试在那里和LoadViewState期间添加它们(当然这是一
我试图通过扩展现有控件来避免复合控件或使用ASCX.但是,我无法将控件添加到继承的控件中并保持其视图状态/后置完整性.每当我在预渲染期间添加控件时,控件都会显示,但是post-back会抛出一个viewstate异常.我尝试在那里和LoadViewState期间添加它们(当然这是一个长镜头傻).我没有从我正在扩展的控件中获得Init.

The exception is
Sys.WebForms.PageRequestManagerServerErrorException:
Failed to load viewsstate. The control
tree into which viewstate is being
loaded must match the control tree
that was used to save viewstate during
the previous request. For example,
when adding controls dynamically,the
controls added during a post-back must
match the type and position of the
controls added during the initial
request

解决方法

实际上,microsoft说你应该覆盖 CreateChildControls方法.

你可以在添加控件之前或之后调用基类方法,我不确定那里是否有约定.

protected override void CreateChildControls(){
  Controls.Add(someControl);
  base.CreateChildControls();
}

希望有所帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读