首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CreateChildControls调用了两次

CreateChildControls调用了两次
EN

Stack Overflow用户
提问于 2012-12-04 17:48:47
回答 2查看 1.8K关注 0票数 1

我有一个复合服务器控件,在其中我实现了CreateChildControls。此控件是一个网格,它还包括分页和排序控件。

当单击排序链接时,首先调用CreateChildControls,然后调用事件处理程序,然后从事件处理程序再次调用CreateChildControls,以便按照新的排序顺序重新生成控件。

当回发由控件事件处理程序触发时,有没有办法跳过CreateChildControls?

这是可能的吗,或者我必须在事件处理程序之前通过CreateChildControls,这样asp.net才能将事件挂钩到现有的控件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-28 20:00:33

我在写这个问题的时候并不知道,但这实际上是自定义控件自然生命周期的一部分。

每次调用EnsureChildControls()时都会调用CreateChildControls()。诀窍是在对CreateChildControls()的第一次调用结束时设置ChildControlsCreated属性,这样整个过程就不会多次发生。

票数 3
EN

Stack Overflow用户

发布于 2016-09-09 20:36:24

我有类似的情况,但我有两件事要做:我正在加载控件,然后我根据用户之前的选择显示信息。当用户更改下拉列表或单击按钮时,页面将重新加载,并且他们的选择将添加到查询字符串中。所以,我的解决方案是:

代码语言:javascript
运行
复制
protected override void CreateChildControls()
{
    base.CreateChildControls();
    AddControls();
    if (Page.IsPostBack)
        return;
    ShowProcedure() // The time-intensive code that I don't want to call twice.
}

AddControls填充控件,并启用回发选项。ShowProcedure使用查询字符串中的值来显示大量数据。这样,我就不会对当前值调用ShowProcedure。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13700027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档