2009-08-19 14 views
44

ठीक है, मैं घंटों तक गुगल रहा हूं और सबकुछ कोशिश कर रहा हूं और काम करने के लिए कुछ भी नहीं प्राप्त कर सकता हूं। मैं तीव्र वास्तुकला का उपयोग कर एमवीसी सीख रहा हूं और क्लाइंट ऑब्जेक्ट्स बनाने के लिए कुछ बुनियादी रूप तैयार किए हैं। मैं अमेरिकी राज्यों की सूची के साथ राज्य ड्रॉप डाउन सूची भरना चाहता हूं और उपयोगकर्ता को उस सूची से चुनने देना चाहता हूं। मैं सूची को पॉप्युलेट करने और मूल्य वापस पाने में सक्षम हूं (क्लाइंट को सहेजने के लिए) लेकिन जब मैं क्लाइंट को संपादित करने के लिए जाता हूं, तो ग्राहक का वर्तमान स्थिति चयनित नहीं होता है। मैं selectList में चयनित मान निर्धारित किया है:पॉपुलटिंग एएसपी.नेट एमवीसी ड्रॉपडाउनलिस्ट

<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> 

यह काफी अच्छा होना करने के लिए प्रतीत नहीं होता। मैं क्या खो रहा हूँ?

+0

से सूची के रूप में डेटा प्राप्त करने के लिए कृपया अपने प्रश्न शीर्षक को फिर से लिखने और अधिक विशिष्ट बनाने पर विचार किया जाता है। –

+1

मुझे जो करने की आवश्यकता थी, उसके पास एक संपादन पृष्ठ है जहां मैं एक (डोमेन ऑब्जेक्ट) की जानकारी संपादित करता हूं, इस मामले में क्लाइंट ऑब्जेक्ट। जब मैं इसे संपादित करने के लिए जाता हूं, तो मुझे राज्यों (मानक सामान) की सूची के साथ एक ड्रॉप डाउन होने के लिए फॉर्म के राज्य हिस्से की आवश्यकता होती है, लेकिन जब मैं संपादन मोड में हूं, तब इसे पॉप्युलेट करने के बाद, मुझे इसकी स्थिति चुनने की आवश्यकता है वर्तमान में संपादन योग्य वस्तु। मैं ड्रॉप डाउन पॉप्युलेट कर रहा था, लेकिन वर्तमान स्थिति का चयन नहीं किया गया था। एक बार जब मैंने ड्रॉपडाउनलिस्ट (यहां लैम्ब्डा द्वारा प्रतिनिधित्व किया गया) का नाम राज्य के आईडी (मूल्य जो मैं ड्रॉप डाउन सूची पर मूल्य फ़ील्ड के लिए उपयोग कर रहा हूं) पर सेट करता हूं, तो मुझे जाना अच्छा था। – leebrandt

उत्तर

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

ऐसा करता है।

उम्मीद है कि यह किसी और की मदद करेगा।

~ ली

+0

आप सही हैं, पहले पैरामीटर को अंतिम प्रकार के समान प्रकार की आवश्यकता है। मेरे लिए भी काम किया! धन्यवाद। –

7

मेरे लिए मोटेक्स के लिए पूरी तरह से काम किया! मैं इसे इस्तेमाल किया एक उपश्रेणी पर एक माता पिता के संबंध स्थापित करने के लिए:

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

जेरोन

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

और StateProvince क्रमांक वापस जाने के लिए के लिए toString() ओवरराइड, अर्थात्:

return Id.ToString(); 

यह लेकिन काम करता है एक आदर्श समाधान नहीं है ...

डेनिस

+0

यह एकमात्र समाधान है जिसने मेरी मदद की! धन्यवाद! –

4

मैंने इसे इस तरह से किया। अच्छा काम करता है।

नियंत्रक

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

देखें

<%: 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(); 
} 

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(); } 

भरण ड्रापडाउन

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

0

यह देखें है - MVC नियंत्रक

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

MyMethod ड्रापडाउन के साथ डाटा सूची बाइंड जाओ का उपयोग 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 विधि Dropdown_Bl में - डेटाबेस

public List<My_Table> GetAll() 
     { 
      var Items = _Context.MyRepository.GetMany(q => q.Area == "ASD").ToList(); 
      return Items ; 
     } 
संबंधित मुद्दे