如何在下拉列表框中显示选定的值

如何在下拉列表框中显示选定的值

问题描述:

我在此视图中拥有此代码。我需要在下拉列表中显示来自数据库的选定值。如何在下拉列表框中显示选定的值

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

现在我得到的是默认的Name1,但是我到底需要在视图中显示哪些数据库值?

有人可以帮我吗?

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"])%> 

将选定的属性设置为您希望选择为默认选项的选项应该可以实现。

如:

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

我认为这是一个MVC问题,而不是纯html问题 – 2010-09-22 05:09:24

+0

,但它的allways showitn name3如果我从databse获得name2或Name1? – kumar 2010-09-22 05:26:32

绑定在你的后台代码,你需要设置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> 

但正如你所说你的价值来自数据库,所以你会在后面的代码中设置它。