在Page PreRender上使用c#参考下拉框

时间:2008-12-09 23:56:16

标签: c# dropdownbox

我想在加载期间从后面的c#代码向我的aspx页面上的下拉框添加选项。我不知道如何获得对控件的引用。我有一些c#代码,当用户更改下拉框时触发。在那里,我得到了对下拉列表的引用:

DropDownBox ddb = (DropDownBox)info.Toolbar.ToolbarItems.Find("ID");

但如果我在

中尝试,那将无效
protected void Page_PreRender(object sender, EventArgs e)
    {

在我的aspx.cs上

我错过了什么?感谢。

2 个答案:

答案 0 :(得分:1)

如果您希望在回发中从视图状态自动选择下拉列表中的所选项目,则需要在Page_PreLoad触发时将所有项目放在下拉列表中。为此,您需要将代码放在Page_Init中,此时控件已创建,但尚未将viewstate注入其中。

请查看ASP.NET Page Life Cycle Overview以获取有关页面生命周期的信息。

我看到你的下拉列表在父容器中,你可能需要在使用Find()之前调用info.EnsureChildControls(),如果它无法获得对你的控件的引用。

答案 1 :(得分:0)

PreRender即将进入页面生命周期的末尾。你确定要在那里进行更改吗?听起来你应该在最初绑定时或更改其选择时更改下拉列表中的项目。

http://codebetter.com/blogs//images/codebetter_com/raymond.lewallen/89/o_aspNet_Page_LifeCycle.jpg