2010-01-18 13 views
8

का उपयोग कर सी # एमवीसी में चयनित आइटम नहीं दिख रही है मैंने चयनित वस्तुओं को किसी भाग्य के साथ बहुउद्देश्यीय सूची में पास करने के कई अलग-अलग तरीकों की कोशिश की है। आखिरकार, मैंने यह कोशिश की, जो मुझे लगता है कि सभी वस्तुओं को चयनित के रूप में प्रदर्शित करना चाहिए और अभी भी सूची में कुछ भी नहीं चुना गया है।मल्टीइलेक्स्ट सूची linq2sql

public MultiSelectList Companies { get; private set; } 

Companies = MulitSelectList(subcontractRepository.SubcontractCompanies(Subcontract.subcontract_id), "Value", "Text"); 
SubcontractRepository.cs में

:

public IEnumerable<SelectListItem> SubcontractCompanies(Guid id) 
{ 
    return c in db.companies 
    select new SelectListItem 
    { 
      Text = c.company_name, 
      Value = c.company_id.ToString(), 
      Selected = true 
    } 
} 

इसमें देखें: - चयनित आइटम

<p> 
    <label for="Companies">Company:</label> 
    <%= Html.ListBox("Companies", Model.Companies) %> 
    <%= Html.ValidationMessage("Companies", "*") %> 
</p> 
+0

एमवीसी का आप किस संस्करण का उपयोग कर रहे हैं? फ़ील्ड का नाम मॉडल मॉडल में मिलता है। फ़ील्डनाम? –

+0

1.0 नाम समान हैं। मैं सूची देखता हूं, इसमें अभी कुछ भी नहीं है। – RememberME

उत्तर

8

यहां समस्या का पता चला। मल्टीसेलेलिस्ट के पास सूची बॉक्स से अलग नाम होना चाहिए। उस परिवर्तन को बनाया और अब कोड के दोनों संस्करण काम करते हैं।

+0

+1 बस मुझे यह पता लगाने की कोशिश कर रहा दर्द का भार बचाया !!!! :-) – klabranche

2

MultiSelectList निर्माता चौथे पैरामीटर है। यह प्रयोग करें: इस कोड

http://msdn.microsoft.com/en-us/library/system.web.mvc.multiselectlist.multiselectlist.aspx

उपयोग:

public class SelectCompanyItem 
{ 
    public string Name { get; set; } 
    public Guid Id { get; set; } 
} 

public IEnumerable<SelectCompanyItem> SubcontractCompanies(Guid id) 
{ 
    return c in db.companies 
    select new SelectCompanyItem 
    { 
      Name = c.company_name, 
      Id = c.company_id 
    } 
} 

var companiesList = subcontractRepository.SubcontractCompanies(Subcontract.subcontract_id); 
Companies = new MultiSelectList(companiesList , "Id", "Name", companiesList.Select(a => a.Id)); 

यह काम करता है?

+0

यह पहला तरीका था कि मैंने इसे करने का प्रयास किया। मैं इसे काम करने के लिए नहीं मिल सका। मैं उम्मीद कर रहा था कि अगर मुझे पता चला कि ऊपर क्या गलत था, तो मैं यह जान सकता था कि मैं क्या गलत कर रहा था। – RememberME

+0

तो आपने कुछ गलत किया। 'C.company_id' को स्ट्रिंग में कनवर्ट न करें। इसकी आवश्यकता नहीं है। – LukLed

+0

मुझे पता है मैंने कुछ गलत किया है। मैं क्या सीखने की कोशिश कर रहा हूँ। जब मेरे पास .ToString() नहीं है, तो यह शिकायत करता है कि "सिस्टम को पूरी तरह से परिवर्तित नहीं किया जा सकता है" System.Guid 'to' string '" – RememberME

संबंधित मुद्दे