2 votes

Obtenir les valeurs sélectionnées de Jquery multiselct en asp.net

J'ai cherché et trouvé des solutions avec des liens brisés ou qui n'ont pas fonctionné pour moi, ceci dit j'utilise le multiselect trouvé ici http://abeautifulsite.net/blog/2008/04/jquery-multiselect/ J'ai besoin de récupérer les cases à cocher sélectionnées lorsque j'appuie sur un bouton pour les utiliser en c#. Je suis totalement bloqué sur ce point et l'exemple utilisé dans la démo qui le fait est en php :-(

JQuery :

  $(document).ready(function () {
        $("#EGM").multiSelect({ selectAll: false, oneOrMoreSelected: '*' });
    });

Contrôle :

 <select id="EGM" multiple="multiple" style="width: 100px;">
        <optgroup label="EGM">
         <option>data</option>           
        <option>driven</option>           
        <option>dropdown</option>      
        </optgroup>
        <optgroup  label="System Type">SystemType
         <option>data</option>          
         <option>driven</option>           
         <option>dropdown</option>          
         </optgroup>            
         </select>

Où j'ai besoin de mes valeurs sélectionnées dans le code derrière :

  protected void SubmitButton_Click(object sender, EventArgs e)
{

     //what goes here?!?

}

2voto

lukiffer Points 4944

La bonne façon de procéder serait de modifier <select ...> à <asp:ListBox ...> et mettez à jour votre script pour

$(document).ready(function() {
    $('#<%=this.EGM.ClientID%>').multiSelect(...);
});

Mais le <asp:ListBox> ne supporte pas nativement optgroup éléments intérieurs. Il existe des solutions de contournement en utilisant les ControlAdapters (voir : Contrôle de Dropdownlist avec <optgroup>s pour asp.net (webforms) ? - VB.NET). Grâce à cela, vous pouvez accéder directement aux ListItems.

Ceci étant dit, une façon moins correcte mais moins longue, vous pouvez aussi simplement jeter $('#EGM').val() dans un <asp:HiddenField> en spécifiant une méthode de rappel dans l'initialisateur de multiSelect et en énumérant le tableau dans le code suivant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X