2009-08-19 71 views
44

OK, tôi đã được Googling trong nhiều giờ và cố gắng tất cả mọi thứ và không thể có được bất cứ điều gì để làm việc. Tôi đang học MVC bằng cách sử dụng Sharp Architecture và đã tạo ra một số biểu mẫu cơ bản để tạo các đối tượng Client. Tôi muốn điền vào danh sách thả xuống của tiểu bang với danh sách các tiểu bang của Hoa Kỳ và cho phép người dùng chọn từ danh sách đó. Tôi có thể điền danh sách và lấy lại giá trị (để lưu máy khách) nhưng khi tôi chỉnh sửa máy khách, trạng thái hiện tại của máy khách không được chọn. Tôi đã đặt giá trị đã chọn trong danh sách Chọn:Populating ASP.NET MVC DropDownList

<li> 
    <label for="Client_StateProvince">StateProvince:</label> 
    <div> 
     <%= Html.DropDownListFor(c=>c.Client.StateProvince, new SelectList(Model.StateProvinces, "id", "Name", Model.Client.StateProvince), "-- Select State --")%> 
    </div> 
    <%= Html.ValidationMessage("Client.StateProvince")%> 
</li> 

Điều này dường như không đủ tốt. Tôi đang thiếu gì?

+0

Vui lòng xem xét viết lại tiêu đề câu hỏi của bạn cụ thể hơn. –

+1

Những gì tôi cần làm là có một trang chỉnh sửa nơi tôi chỉnh sửa thông tin (đối tượng tên miền), trong trường hợp này là một đối tượng Client. khi tôi chỉnh sửa nó, tôi cần phần trạng thái của biểu mẫu thả xuống với danh sách các trạng thái (công cụ chuẩn), nhưng sau khi nó được điền khi tôi đang ở chế độ chỉnh sửa, tôi cần nó để chọn trạng thái đối tượng hiện có thể chỉnh sửa. Tôi đã được thả xuống, nhưng trạng thái hiện tại không được chọn. một khi tôi thiết lập tên của DropDownList (đại diện bởi lambda ở đây) để Id của nhà nước (giá trị tôi đang sử dụng cho trường giá trị trong danh sách thả xuống) Tôi đã tốt để đi. – leebrandt

Trả lời

78
<%= Html.DropDownListFor(c => c.Client.StateProvince.Id, 
           new SelectList(Model.StateProvinces, 
              "id", 
              "Name", 
              Model.Client.StateProvince), 
           "-- Select State --")%> 

Làm như vậy.

Hy vọng điều này sẽ giúp người khác.

~ Lee

+0

Bạn nói đúng, tham số đầu tiên cần phải có cùng loại với tham số cuối cùng. Làm việc cho tôi quá! Cảm ơn bạn. –

7

Làm việc hoàn hảo cho tôi thanx! Tôi sử dụng nó để thiết lập một mối quan hệ cha trên một tiểu thể loại:

<%= Html.DropDownListFor(
model => model.Category.ParentId, 
new SelectList(Model.Categories, 
"CategoryId", 
"Name", 
    Model.Categories.Where(x => x.CategoryId == Model.Category.ParentId).Single()))%> 

Jeroen

2
<%= Html.DropDownListFor(c => c.Client.StateProvince, new SelectList(Model.StateProvinces, "Id", "Name")) %> 

và ghi đè ToString() cho StateProvince trở Id, ví dụ:

return Id.ToString(); 

này hoạt động nhưng không phải là giải pháp hoàn hảo ...

Dennis

+0

Đây là giải pháp duy nhất đã giúp tôi! Cảm ơn! –

4

Tôi đã làm theo cách này. Hoạt động tốt.

khiển

IFarmModelInterface service2 = new FarmModelRepository(); 
ViewData["Farms"] = new SelectList(service2.GetFarmNames(), "id", "FarmName", "XenApp"); 

Xem

<%: Html.DropDownListFor(m => m.Farm, (ViewData["Farms"] as SelectList)) %> 
3
public ActionResult AllUsers() 
{ 
    List<Users> users = userRep.GetUsers(); 
    var listUsers = (from u in users.AsEnumerable() 
        select new SelectListItem 
        { 
         Text = u.UserName, 
         Value = u.UserId.ToString(), 
         Selected = (u.UserId==6) 
        }).AsEnumerable(); 
    ViewBag.ListItems = listUsers; 
    //ViewBag.SelectedItem = 2; 
    return View(); 
} 

Trong AllUsers.cshtml

<p>@Html.DropDownList("ListItems")</p> 
0
public ActionResult AllUsers() { 
    List<Users> users = userRep.GetUsers(); 
    var listUsers = (from u in users.AsEnumerable() 
        select new SelectListItem 
        { 
         Text = u.UserName, 
         Value = u.UserId.ToString(), 
         Selected = (u.UserId==6) 
        }).AsEnumerable(); 
    // ViewBag.ListItems = listUsers; 
    ViewData["tempEmpList"]=listUsers; 
    return View(); } 

Fill Dropdown

@Html.DropDownList("SelectedEmployee", new SelectList((IEnumerable) ViewData["tempEmpList"], "Id", "Name"))

0

Đây là Xem - MVC Controller

@Html.DropDownListFor(m => m.Entity, new ABC.Models.DropDownPopulate().MyMethod, new { @class = "form-control input-inline input-medium" }) 

MyMethod Nhận Danh sách dữ liệu Ràng buộc Với Dropdown Sử dụng SelectListItems

public List<SelectListItem> MyMethod 
     { 
      get 
      { 
       List<SelectListItem> dropdownList = new List<SelectListItem>(); 
       var items = new DropDown_Bl().GetAll(); 
       foreach (var item in items) 
       { 
        SelectListItem dropdownItem = new SelectListItem(); 
        dropdownItem.Value = item.RnID.ToString(); 
        dropdownItem.Text = item.Description; 
        dropdownList.Add(dropdownItem); 
       } 
       dropdownList.Insert(0, new SelectListItem() { Text = "Please Select", Value = "", Selected = true }); 
       return dropdownList; 
      } 
     } 

GetAll Phương pháp Trong Dropdown_Bl - Được sử dụng để lấy dữ liệu dưới dạng danh sách từ cơ sở dữ liệu

public List<My_Table> GetAll() 
     { 
      var Items = _Context.MyRepository.GetMany(q => q.Area == "ASD").ToList(); 
      return Items ; 
     } 
Các vấn đề liên quan