Как отобразить выбранное значение в раскрывающемся списке - PullRequest
0 голосов
/ 22 сентября 2010

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

<select id="PeopleClass" name="PeopleClass">
    <option value="1">Name1</option>
    <option value="2">Name2</option>
    <option value="3">Name3</option>
</select>

Теперь я получаю значение по умолчанию как Имя1, но какое значение базы данных мне нужно отобразить в представлении?

Кто-нибудь может мне помочь?

Ответы [ 3 ]

3 голосов
/ 22 сентября 2010

DropDownListFor - метод, который вы можете использовать: проверьте это для более подробной информации: http://msdn.microsoft.com/en-us/library/system.web.mvc.html.selectextensions.dropdownlistfor.aspx

Я бы предложил вам создать

<select id="PeopleClass" name="PeopleClass">
    <option value="1">Name1</option>
    <option value="2">Name2</option>
    <option value="3">Name3</option>
</select>

в IEnumerable<SelectListItem> и связать егокогда вы отображаете представление с выбранным значением из базы данных.

// create People class
public class People{
     public value {get; set}
     public name {get; set}
}
//Create option list for your dropdown
List<People> peopleList= 
new List<People>{ new People{ value="1", name ="Name 1"}, new People{ value="2", name ="Name 2"}, new People{ value="3", name ="Name 3"}};
//bind it with ViewData
ViewData["ddl"] = new SelectList(peopleList, "value", "name", valueFromDatabase ); 

, наконец, в вашем представлении, свяжите раскрывающийся список с ViewData["ddl"]

<%=Html.DropDownListFor(model => model.People,(IEnumerable<SelectListItem>)ViewData["ddl"])%>
1 голос
/ 22 сентября 2010

В вашем коде вы должны установить SelectedValue в элементе управления выпадающего списка.

Замените код, который вы вставили выше, следующим:

<asp:dropdownlist id=ddlPeopleClass runat=server>
 <asp:listitem value=1>Name1</asp:listitem>
 <asp:listitem value=2>Name2</asp:listitem>
 <asp:listitem value=3>Name3</asp:listitem>
</asp:dropdownlist>

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

 <asp:listitem value=3 selected=true>Name3</asp:listitem>

Но, как вы заявили, ваше значение исходит из базы данных, поэтому вы установите его в коде позади.

1 голос
/ 22 сентября 2010

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

Например:

<select id="PeopleClass" name="PeopleClass">
    <option value="1">Name1</option>
    <option value="2">Name2</option>
    <option value="3" selected="true">Name3</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...