2012-03-28 37 views
1

鉴于:我在aspx页面的标记中有一个自定义服务器控件。该控件创建在其CreateChildControls()方法子控件(例如,它从数据库里面取出的内容,并基于该内容动态创建无论是CheckBoxListRadioButtonList如何检索动态创建的控件的子控件的值在回发?

现在我明白了,我无法访问回传动态创建的控件,除非我将它们再次添加到Page_Init或Page_PreInit(根据here)。

我的问题是,如果我们在每一个自定义服务器控件上调用Render()时,如何在Page_Init或Page_PreInit中明确再次添加它们?

我很确定这不是一个独特的问题,所以必须有做这件事的最佳实践方法......我只是不知道它是什么:/

回答

1

所有您需要do是在Pre_Init中创建自定义服务器控件。其他一切都是为你处理的。我想你想得好好的,这是怎么回事,它的混乱:)

自定义控制将呈现子控件,而在Pre_Init事件。他们不会得到两次渲染。

+0

不幸的是,我需要自定义服务器控件是在这种情况下:(标记 - 将通过间接的水平,例如,可以解决我有DBID =“123”一FigureHeadCustomControl的标记,然后在Pre_Init我动态创建一个TheRealCustomControl实例(通过传递DBID),使用TheRealCustomControl渲染子控件? – Whisker 2012-03-28 17:34:40

+0

您可以发布自定义服务器控件的代码吗? – TheGeekYouNeed 2012-03-28 21:28:18