Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

150
Views
¿Cómo hago para que mi lista desplegable esté en orden alfabético para mi proyecto en MVC?

Necesito que los elementos de mi menú desplegable se muestren en orden alfabético. El siguiente es el código:

 <select id="participantIds" data-placeholder="Select Participants" class="chosen-select" multiple style="width:100%;" tabindex="4" asp-for="UserIds" asp-items="@(new SelectList(ViewBag.Users, "Id", "Name"))">
He intentado hacerlo con `OrderBy pero parece que no funciona para `ViewBag`. ¿Cómo lo hago con JavaScript o Jquery?

Mi ViewBag es de:

 this.ViewBag.Users = await this._eventSessionService.GetAllUsers(eventSessionId);
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Dado que ViewBag es dinámico, no puede utilizar Orderby u otros métodos en una propiedad dinámica.

Ahora, suponiendo que su ViewBag.Users es de List<Users> , puede convertir la propiedad en una colección de tipo conocido y el método de extensión debería estar disponible.

 <select id="participantIds" data-placeholder="Select Participants" class="chosen-select" multiple style="width:100%;" tabindex="4" asp-for="UserIds" asp-items="@(new SelectList((ViewBag.Users as List<Users>).OrderBy(x=>x.Name), "Id", "Name"))">

Una alternativa es ordenar la lista en el controlador antes de asignarla a ViewBag :

 var userList = await this._eventSessionService.GetAllUsers(eventSessionId); this.ViewBag.Users = userList.OrderBy(x=>x.Name);

También puede usar JQuery para ordenar nuestra lista después de que se haya inicializado:

 var myList = $('#participantIds'); var selected = myList.val(); var opts_list = myList.find('option'); opts_list.sort(function(a, b) { return $(a).text() > $(b).text() ? 1 : -1; }); myList.html('').append(opts_list); myList.val(selected);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!