我在我看来有这个代码。我需要在下拉列表中显示从数据库中提交的选定值。
<select id="PeopleClass" name="PeopleClass">
<option value="1">Name1</option>
<option value="2">Name2</option>
<option value="3">Name3</option>
</select>
现在我将默认设置为Name1但是我需要在视图中显示的数据库值是什么?
有人可以帮帮我吗?
答案 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>
但正如您所说,您的价值来自数据库,因此您将在后面的代码中设置它。