IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Manipulation de ListBoxes en Javascript


Sujet :

ASP.NET

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par d�faut Manipulation de ListBoxes en Javascript
    Bonjour,

    je d�veloppe un site ASP .NET avec utilisation d'AJAX (via la biblioth�que de Microsoft) et d'une master page.

    J'utilise un UpdatePanel qui englobe plusieurs ContentPlaceHolders.

    Dans une page de contenu, un des <asp:Content> contient 2 <asp:ListBox> qui sont remplies dans le Page_Init gr�ce � un Bind sur la base de donn�es.
    Jusque l� tout marche bien.

    Les deux listes doivent interagir entre elles : celle de gauche liste tous les �l�ments dispos, celle de droite liste les �l�ments s�lectionn�s (elle est donc vide la premi�re fois).

    A chaque fois qu'un �l�ment est selectionn� (et valid� via un bouton) dans la liste de gauche, il doit �tre ins�r� dans celle de droite et enlev� de celle de gauche.

    La solution la plus simple serait de faire un appel serveur � chaque ajout d'�l�ment : INSERT en base + rafra�chissement du UpdatePanel qui listerait donc les nouveaux contenus des 2 listes. Seulement cette solution g�n�re beaucoup de trafic serveur et pourrait �tre un peu lente c�t� client si une personne veut s�lectionner beaucoup d'�l�ments, j'ai donc voulu essayer une autre solution : g�rer toutes les interactions entre les listes c�t� client (en JavaScript) puis valider une fois pour toutes les modifications et les enregistrer en base (DELETE de tous les anciens �l�ments s�lectionn�s et INSERT de chaque �l�ment contenus dans la liste de droite).

    Toutes les modifications c�t� client en Javascript fonctionnent bien mais lorsque je fais mon appel serveur, ma ListBox est d�sesp�r�ment vide, m�me si des �l�ments ont �t� ajout�s en javascript.
    Pour info, voici le code des fonctions d'ajout et de retrait d'�l�ments dans une liste :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    //ajoute l'élément 'item' à la fin de la liste 'list'
            function ListAdd(list,item)
            {
                var option = new Option(item.text,item.value);
                list.options[list.length] = option;   
            }
     
            //supprime l'élément 'item' de la liste 'list'
            function ListRemove(list,item)
            {
                var original_length = list.length;
     
                for( i=list.length-1; i>=0; i--) 
                {	
                    if(list.options[i].text == item.text) 
                    {            
                        for(j=i;j<list.length-1;j++) 
                        {
                            list.options[j].text=list.options[j+1].text;
                        }
                        //si on a enlevé le dernier élément, il faut sélectionner le précédent
                        //(comportement par défaut : sélectionne l'élément suivant)
                        if( (i == original_length - 1) && (list.length > 1) )
                        {
                            list.selectedIndex = i - 1;
                        }
                        list.length--;
                    }
                }  
            }
    Je sais que la fonction ListRemove "corrompt" les values des items de la liste mais seul le texte de chaque �l�ment m'int�resse.

    Quelque chose m'�chappe mais je n'arrive pas � voir quoi. Quelqu'un a t-il une id�e ?
    Merci d'avance

    Nicolas

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : IT Analyst & Software Developer
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par d�faut
    J'ai d�j� trait� ce genre de contr�le, et je sais que ASP.NET n'appr�cie pas trop. La solution utilis�e pour y parvenir a �t� de passer par des champs cach�s dans lesquels �taient stock�s les id des �l�ments, les deux listes servant uniquement de "visuel".

Discussions similaires

  1. manipulation de tableau en javascript
    Par aztec dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 02/06/2008, 14h42
  2. Listbox: href="javascript:Cre()" onClick="Supprimer(STache)"
    Par ZACKX dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 28/01/2008, 16h56
  3. ListBox et Javascript
    Par oyigit dans le forum ASP.NET
    R�ponses: 5
    Dernier message: 28/09/2007, 17h11
  4. Listbox et Javascript
    Par dynek dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 12/02/2007, 11h27
  5. manipulation du code en javascript d'un calendrier
    Par leclone dans le forum G�n�ral JavaScript
    R�ponses: 22
    Dernier message: 24/01/2007, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo