2008-12-09 1 views
0

Я хочу добавить параметры в раскрывающийся список на моей странице aspx из кода C#, находящегося во время загрузки. Я не знаю, как получить ссылку на элемент управления. У меня есть код C#, который запускается, когда пользователь меняет раскрывающийся список. В том, что я получаю ссылку на выпадающий:Получить ссылку на выпадающий список с C# на странице PreRender

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

Но это не будет работать, если я попробовать его в

protected void Page_PreRender(object sender, EventArgs e) 
    { 

на моем aspx.cs

Что мне не хватает? Благодарю.

ответ

1

Если вы хотите, чтобы выбранный элемент из выпадающего списка будет автоматически выбран из ViewState на постбэков вам нужно будет иметь все элементы в выпадающем списке по времени Page_PreLoad пожаров. Чтобы сделать это, вы захотите поместить свой код в Page_Init, на данный момент элементы управления создаются, но viewstate еще не было введено в них.

Посмотрите здесь ASP.NET Page Life Cycle Overview для получения информации о жизненном цикле страницы.

Я вижу, что выпадающее меню находится в родительском контейнере, вам может потребоваться вызвать info.EnsureChildControls(), прежде чем вы будете использовать Find(), если он не сможет получить ссылку на ваш элемент управления.

0

PreRender находится в конце жизненного цикла страницы. Вы уверены, что хотите там внести изменения? Похоже, что вы должны менять элементы в раскрывающемся списке, когда оно первоначально связано или когда его выбор изменяется.

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