2012-12-08 19 views
16

Voglio usare selezione multipla in Chosen. devo modello di abilità come,Come utilizzare selezioni multiple in mvc 4?

public class Skill 
    { 
     public int Id { get; set; } 
     public string Name { get; set; }   
    } 

Questo funziona nella mia domanda:

<select data-placeholder="Choose a Country..." class="chzn-select" multiple > 
      <option value=""></option> 
      <option value="United States">United States</option> 
      <option value="Albania">Albania</option> 
      <option value="Algeria">Algeria</option> 
    </select> 

voglio sostituire i dati Paesi con i miei dati. Nel regolatore scrivo:

 var list = MyService.LoadAllSkills(); 
     ViewBag.Skills = new MultiSelectList(list, "Id", "Name"); 

In considerazione:

@Html.ListBox("Name", ViewBag.Skills as MultiSelectList, 
       new { @class = "chzn-select" }) 

Visualizzare i risultati di @ Html.ListBox() e @ Html.DropDownList() non è come <select>

Ottengo così risultato:

enter image description here

Ma, voglio arrivare risultare

enter image description here

Come posso cambiare campione scelto?

+0

provare qualsiasi plugin jQuery per quello. –

+0

@Kundan Singh Chouhan, puoi condividere qualsiasi altro link? per altri plugin attributo di segnaposto dati –

risposta

12

L'unica differenza che posso vedere tra l'esempio hardcoded (che hai dichiarato funzionante) e quello che generi con l'helper ListBox è l'assenza dell'attributo data-placeholder. Quindi:

@Html.ListBox(
    "Countries", 
    ViewBag.Skills as MultiSelectList, 
    new { @class = "chzn-select", data_placeholder = "Choose a Country..." } 
) 

Questo dovrebbe almeno generare lo stesso markup di quello che hai detto funziona. Se non funziona probabilmente non hai configurato correttamente il plugin o hai altri errori javascript. Leggi la documentazione del plugin su come dovrebbe essere configurato.

+0

sconosciuto. e data_placeholder non funziona .. –

+2

Quindi probabilmente hai qualche altro problema con l'impostazione del plugin che non ha assolutamente nulla a che fare con ASP.NET MVC. Per quanto riguarda il codice lato server, dovrebbe generare un markup strettamente equivalente a quello che hai mostrato nella tua domanda. Si noti inoltre che quando si utilizza 'data_placeholder' sul lato server, l'helper lo converte automaticamente in' data-placeholder' durante la generazione dell'attributo corrispondente. –

0

come altri ragazzi menzionati, sembra che la causa del problema non è lato server (rasoio), è in realtà lato client (molto probabilmente l'inizializzazione del plugin Jquery).

probabilmente quando l'inizializzazione del plugin chiamato il DOM html non è ancora stato generato, inserire lo script di inizializzazione del plugin alla fine del corpo o all'interno di $(document).ready() e non dimenticare di dare un'occhiata alla console per vedere se c'è qualche errori

happy coding

Problemi correlati