2010-09-22 116 views
0

我在此視圖中擁有此代碼。我需要在下拉列表中顯示來自數據庫的選定值。如何在下拉列表框中顯示選定的值

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

現在我得到的是默認的Name1,但是我到底需要在視圖中顯示哪些數據庫值?

有人可以幫我嗎?

回答

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

將選定的屬性設置爲您希望選擇爲默認選項的選項應該可以實現。

如:

<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

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> 

正如在前面的回答中提到設置選定爲true列表項,將其選中。

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

但正如你所說你的價值來自數據庫,所以你會在後面的代碼中設置它。

相關問題