У меня есть веб-форма ASP.NET, на которой я использую элемент управления DropDownList, чтобы пользователь мог выбрать элемент и просмотреть связанные результаты. По какой-то причине, когда я устанавливаю свойство SelectedValue в DropDownList, значение, которое оно установлено, не доступно сразу.Свойство ASP.NET DropDownList SelectedValue не устанавливается сразу
Вот мой код:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DropDownList1.SelectedValue = "5";
BindView();
}
}
protected void BindActivities()
{
DataClassesDataContext dc = new DataClassesDataContext();
var query = from activity in dc.Activities
where activity.AssignedTo == Convert.ToInt32(DropDownList1.SelectedValue);
GridView1.DataSource = query;
GridView1.DataBind();
}
В предыдущем коде я получаю ошибку, что DropDownList1.SelectedValue является нулевым. Самое странное, что если я прокомментирую код, который использует DropDownList1.SelectedValue и пусть загружается страница, DropDownList1 на самом деле имеет значение 5. Таким образом, похоже, что он устанавливается правильно, но просто не доступен сразу. Отладчик подтверждает, что DropDownList.SelectedValue не установлен в 5 сразу после строки кода, который его устанавливает.
Любые идеи, что здесь происходит?
DropDownList декларативно связан с элементом управления LinqDataSource. Я думаю, что это происходит до события Page_Load. Это верно? – joshb
Нет, если вы явно не назовете это. –
Я добавил явный вызов DropDownList1.DataBind() непосредственно перед установкой SelectedValue, и он работает так, как я ожидал сейчас. – joshb