Изменения DropDownList.SelectedValue (как дочерний элемент управления в FormView) не прилипают - PullRequest
2 голосов
/ 22 ноября 2008

Хорошо, у меня есть 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, и я вижу изменения, отраженные в моем списке наблюдения, но когда все сказано и сделано, на странице ничего не меняется.

Ответы [ 2 ]

4 голосов
/ 23 ноября 2008

Я понял это. Я до сих пор точно не понимаю, почему это не работает только в 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();
}

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

0 голосов
/ 23 ноября 2008

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

...