【发布时间】:2010-12-07 16:08:36
【问题描述】:
假设我有一个用户控件 MyUserControl,它有一个 容器 控件(它是一个服务器控件,但它可能只是一个面板)和一个下拉列表。下拉列表最初不在容器控件中。在它的代码隐藏中,我重写了 OnInit 并创建了用户控件,其中包括填充下拉列表并将该下拉列表添加到我的容器控件中。我有一个公共财产年,它是一个整数。根据 Year 的值,我想填充下拉列表。问题是在 OnInit 中,年份总是 0。
在 Init 页面上,我正在设置年份,但直到控件的 Init 运行后才会运行。如果我尝试在页面上的 PreInit 上设置值,则页面尚未初始化控件,并且在为控件设置值时得到无效的空引用。
我的问题是:如何正确初始化控件?如何在控件实际初始化之前在页面上设置值?
如果我将控件的代码移到 OnLoad,它会一直工作,直到我必须进行回发。不过,在这种情况下,我需要这样做!
【问题讨论】:
标签: asp.net user-controls