как установить значение по умолчанию для элемента управления выпадающего списка?

#c# #asp.net #drop-down-menu

#c# #asp.net #выпадающее меню

Вопрос:

У меня есть элемент управления выпадающим списком на моей веб-странице. Я привязал datatable к элементу управления выпадающим списком следующим образом —

 lstDepartment.DataTextField = "DepartmentName";
    lstDepartment.DataValueField = "DepartmentID";
    lstDepartment.DataSource = dtDept;
    lstDepartment.DataBind();
 

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

как это сделать?

Ответ №1:

После вашего DataBind() :

 lstDepartment.SelectedIndex = 0;  //first item

or

lstDepartment.SelectedValue = "Yourvalue"

or 
//add error checking, just an example, FindByValue may return null
lstDepartment.Items.FindByValue("Yourvalue").Selected = true;

or
//add error checking, just an example, FindByText may return null
lstDepartment.Items.FindByText("Yourvalue").Selected = true;
 

Комментарии:

1. он работает именно так, как я хочу. Если значение отсутствует, то я хочу установить пустую запись. как это сделать?

2. lstDepartment. Товары. Вставить(0, новый список («», «»));

3. я привязал таблицу данных к выпадающему списку. я использовал ваш код для установки значения по умолчанию пустым. но тогда также отображается 0-я запись из таблицы.

4. В моем случае это тоже не работает. У меня есть идентификатор и имя, и для selectedindex =-1 он не работает, а для selectedvalue выдает ошибку, что myvalue отсутствует. что делать.

Ответ №2:

если вы знаете индекс элемента со значением по умолчанию, просто

 lstDepartment.SelectedIndex = 1;//the second item
 

или, если вы знаете значение, которое хотите установить, просто

 lstDepartment.SelectedValue = "the value you want to set";
 

Ответ №3:

Предполагая, что элемент управления DropDownList в другой таблице также содержит DepartmentName и DepartmentID:

 lstDepartment.ClearSelection();

foreach (var item in lstDepartment.Items) 
{
  if (item.Value == otherDropDownList.SelectedValue)
  {
    item.Selected = true;
  }
} 

Ответ №4:

 lstDepartment.DataTextField = "DepartmentName";
lstDepartment.DataValueField = "DepartmentID";
lstDepartment.DataSource = dtDept;
lstDepartment.DataBind();
'Set the initial value:
lstDepartment.SelectedValue = depID;
lstDepartment.Attributes.Remove("InitialValue");
lstDepartment.Attributes.Add("InitialValue", depID);
 

И в вашем методе отмены:

 lstDepartment.SelectedValue = lstDepartment.Attributes("InitialValue");
 

И в вашем методе обновления:

 lstDepartment.Attributes("InitialValue") = lstDepartment.SelectedValue;