locked
Comment récupérer en ASP.NET les éléments d'1 ListBox ? (ajoutés en JavaScript) RRS feed

  • Question

  • Bonjour,

     

       J'ai 1 ListBox que je complète dynamiquement en JavaScrip:

    function fctAjouter(val){

      ListBox1 = document.getElementById('ctl00_cphMain_rptElements_ctl01_ctl09_lbxCartonsSelectionnes1');

      var element = document.createElement("OPTION");

      element.text = val;

      element.value= val;

      ListBox1.options.add(element);

    }

     

      Lorsque l'utilisateur valide la page, j'essaie de récupérer les données saisies, en ASP.NET:

    ListBox ListBox1 = ((ListBox)AccordionX.FindControl(strLbxCartonsSelectionnesX));

    for (int ii = 0; i < ListBox1.Items.Count; i++)

    {

    strLigneDeListBox1 = ListBox1.Items[ii];

    Response.Write(" Ligne n°" + ii + " : " + strLigneDeListBox1);

    }

     

       ListBox1 est vide !!?? alors que je l'ai remplie en javascript ??!!

    A priori, il faudrait sauvegarder les lignes ajoutées à la ListBox en JavaScript, dans des champs cachés ?

    Cela permettrait de les ajouter Réellement, en ASP.NET ?

     

      Comment sauvegarder dans des HiddenFields alors que je ne connais même pas le nombre de lignes que l'utilisateur ajoutera à ma ListBox ? Je crée une infinité de HiddenFields au cas où ??

     

      Merci de votre aide,

    lundi 30 juin 2008 09:24

Toutes les réponses

  • Ah non, c'est bon, je prend 1 seul HiddenField dans lequel je colle toutes mes données séparées par soit ';' soit ',' soit etc...

     

    mardi 1 juillet 2008 14:52
  • Bonjour,

    Tu devrais plutot essayer de passer par l
    'ASP.NET AJAX Control Toolkit, qui est plus intégré à Asp.Net.
    jeudi 3 juillet 2008 13:05
  • Ajax, je l'ai installé mais il n'y a pas de ListBox ?

    J'en ai utilisé pour vérifier la saisie de champs Texte, mais je ne vois pas comment utiliser AjaxToolKit pour gérer les ListBox coté client ?

     

    Merci de m'éclairer.

    vendredi 4 juillet 2008 09:16
  • Pourquoi ne pas la remplir en faisant un PostBack ? Avez-vous des problématiques qui vous obliges à faire cela en Ajax  ?

    Je vais essayer de vous trouver un exemple en Ajax Toolkit. Je reviens vers vous dès que cela est fait Smile
    vendredi 4 juillet 2008 09:55
  • Donc voici une solution en Ajax avec le AjaxToolkit.

    Il faut mettre votre contrôle ListView dans un UpdatePanel (ainsi que les éléments qui entre en compte dans votre trairement). Avant celui ci, mettez un ScriptManager pour pouvoir gérer les appels Ajax. Après tous les événements natif aspnet des contrôles qui sont dans l'update panel seront traité en appel Ajax, donc un appel asynchrone. Vous codez ensuite le remplissage de la liste sur les événements.

    Dans votre le cas le remplissage de la liste doit passer par un UpdatePanel pour que la couche Asp.net puisse prendre en compte les modifications. Sans cela je pense que c'est impossible.

    En espérant que cela vous aide.
    vendredi 4 juillet 2008 11:32