#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;