Изменения DropDownList.SelectedValue (как дочерний элемент управления в FormView) не сохраняются

Хорошо, у меня есть FormView с парой дочерних элементов управления в InsertItemTemplate. Одним из них является DropDownList, который называется DdlAssigned. Я ссылаюсь на него в методе OnLoad страницы следующим образом:

protected void Page_Load(object sender, EventArgs e)
{
    ((DropDownList)FrmAdd.FindControl("DdlAssigned")).SelectedValue =
          ((Guid)Membership.GetUser().ProviderUserKey).ToString();
}

По сути, я просто устанавливаю значение DropDownList по умолчанию для пользователя, вошедшего в систему.

В любом случае, когда страница завершает загрузку, изменение SelectedValue не отражается на странице. Я прошел через OnLoad и вижу изменение, отраженное в моем списке наблюдения, но когда все сказано и сделано, на странице ничего не изменилось.


person Dusda    schedule 22.11.2008    source источник
comment
Привязан ли FormView к источнику данных?   -  person BlackMael    schedule 23.11.2008
comment
Является ли DropDownList также связанным элементом управления?   -  person BlackMael    schedule 23.11.2008


Ответы (2)


Я понял. Я все еще не понимаю, почему это не работает только с FormLoad, но выполнение изменения в событии DataBound FormView помогает.

protected void FrmAdd_DataBound(object sender, EventArgs e)
{
    // This is the same code as before, but done in the FormView's DataBound event.
    ((DropDownList)FrmAdd.Row.FindControl("DdlAssigned")).SelectedValue =
        ((Guid)Membership.GetUser().ProviderUserKey).ToString();
}

Итак, я предполагаю, что общее эмпирическое правило заключается в том, что если у вас возникают проблемы с внесением изменений в элементы управления при работе с привязкой данных, попробуйте внести их сразу после привязки.

person Dusda    schedule 23.11.2008
comment
Ого, старая тема. Я могу подтвердить, что DataBound DropDownLists не заполняются своими значениями при запуске OnLoad, поэтому установка SelectedValue не приносит никакой пользы. - person Dave; 22.12.2009

У меня была проблема с выпадающими списками, когда первое значение говорило что-то вроде «Пожалуйста, выберите значение ...», но не делало его фактически выбираемым элементом и не отображалось в раскрывающемся списке. Я привязывал ddl к page_load, и мне нужно убедиться, что я установил текст раскрывающегося списка ПОСЛЕ того, как он был связан с данными. Вы сделали то же самое, добавив его в свой раздел с привязкой к данным.

person GregD    schedule 23.11.2008