如何在“下拉列表”框中显示所选值

时间:2010-09-22 04:20:00

标签: asp.net-mvc-2

我在我看来有这个代码。我需要在下拉列表中显示从数据库中提交的选定值。

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

现在我将默认设置为Name1但是我需要在视图中显示的数据库值是什么?

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:3)

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 :(得分:1)

在您想要选择为默认值的选项上设置所选属性应该可以解决问题。

例如:

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

答案 2 :(得分:1)

在您的代码隐藏中,您需要在下拉列表控件上设置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>

如前一个答案所述,在列表项中将selected设置为true以选择它。

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

但正如您所说,您的价值来自数据库,因此您将在后面的代码中设置它。