इसलिए, मैं एक बहु-चयन ड्रॉपडाउन सूची बनाने की कोशिश कर रहा हूं और मैं इसमें कुछ डिफ़ॉल्ट चयनित मान सेट करना चाहता हूं।
मैं मान प्राप्त करता हूं और उन्हें स्ट्रिंग की एक सरणी में संग्रहीत करता हूं जिसमें प्रत्येक में मान होते हैं।
मैंने उन्हें 1 स्ट्रिंग के रूप में सेट करने का प्रयास किया और यह काम नहीं किया, उन्हें स्ट्रिंग्स की एक सरणी के रूप में सेट करने का प्रयास किया और यह भी काम नहीं किया।

यहाँ कोड है:

<select name="FacultyList" multiple class="sel form-control" asp-for="Faculties" 
id="uniFaculties" asp-items="@(new SelectList(facultyList,"Name","Name",@selectedFaculties))">
</select> 

facultyList उन मूल्यों की सूची है जो मुझे और एपीआई से मिलते हैं।
चयनित संकाय स्ट्रिंग की एक सरणी है जिसमें चयनित मान होते हैं।

नोट: मैं चुनी हुई jQuery लाइब्रेरी का भी उपयोग कर रहा हूं, अगर इससे कोई फर्क पड़ता है।

2
Moataz Alsayed 26 सितंबर 2020, 22:18

1 उत्तर

सबसे बढ़िया उत्तर

इसके लिए आप एक MultiSelectList उपयोग कर सकते हैं:

new MultiSelectList(facultyList, "Name", "Name", @selectedFaculties)

मैंने अभी आपके कोड से देखा है कि आप asp-for का उपयोग select पर कर रहे हैं। ऐसा करते समय, आपके द्वारा पास किए गए चयनित मान SelectList या MultiSelectList पर ध्यान नहीं दिया जाएगा। इसका कारण यह है कि यह चयनित मानों को Faculties संपत्ति में होने की उम्मीद कर रहा है जिसे आप बाध्य कर रहे हैं। यदि आप उसमें भाग लेते हैं, तो यहां आपके लिए एक कार्यशील उदाहरण है।

राय

<select name="FacultyList" multiple class="sel form-control" asp-for="SelectedFaculties"
    id="uniFaculties" asp-items="@(new MultiSelectList(Model.AvailableFaculties, "Name", "Name"))">
</select> 

नियंत्रक

public IActionResult Faculty()
{
    var vm = new FacultyViewModel
    {
        AvailableFaculties = new List<Faculty>
        {
            new Faculty
            {
                Name = "Arts"
            },
            new Faculty
            {
                Name = "Science"
            },
            new Faculty
            {
                Name = "Mathematics"
            }
        },
        SelectedFaculties = new List<string> { "Arts", "Mathematics" }
    };

    return View(vm);
}

यह Arts और Mathematics का चयन करेगा। ध्यान दें कि चयनित मान उसी प्रॉपर्टी से आ रहे हैं जिसे हम select को asp-for का उपयोग करने के लिए बाध्य कर रहे हैं, और यह कि अब हम चयनित मानों को सीधे MultiSelectList में नहीं भेज रहे हैं।

1
John H 26 सितंबर 2020, 22:54