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 :

probleme collection/tableau javascript


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut probleme collection/tableau javascript
    Bonjour a tous, voila je suis en train de faire une appli asp.net avec vb.net, et un peu de code javascript.

    Mon probleme se situe au niveau du code javascript que j'ai associé a ma page asp, comment fait t'on pour passer une variable de type collection (arraylist) du code vb.net, vers un tableau dans le code javascript ???

    Je m'explique, j'ai une collection dans mon code vb.net, et je souhaite pouvoir la parcourir dans mon code javascript...

    Si il n'y a pas de solution a ce premier probleme, voici une autre question, est il possible de parcourir un tableau sous vb.net et retourner les valeurs obtenus dans le code javascript sans avoir 72 variables en javascript....

    J'espere etre assez clair, merci de votre aide...

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Si tu veux manipuer le tableau en javascript, tu peux generer du code javascript cote serveur, et le rendre dans ta page

    Quelque chose comme ca :

    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
     
      StringBuilder sb = new StringBuilder();
      List<Item> list = factory.GetAllItems();
     
      sb.Append("<script type=\"text/javascript\">\n\n");
      sb.Append("var itemList= new Array();\n");
     
      foreach (Item objItem in list)
      {
        sb.Append("currentLength = itemList.length;\n");
        sb.Append("existingAddCodes[currentLength] = \"" + objItem .Code + "\";\n");
            }
     
      sb.Append("</script>\n");
      Response.Write(sb.ToString());

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    Meci de ta reponse, mais pourrait tu commenter ton code svp, car la je ne comprend pas tout, et ce que je veut avant tout (je suis encore etudiant) c'est comprendre le pourquoi du comment de ta reponse...et ensuite le refaire pour pouvoir le mettre dans mon code...

    que dois-je faire au niveau javascript ??
    quels sont les references necessaires ??
    qu'est ce que ca va faire...

    desole de toutes ces questions, mais j'ai envie de comprendre ton code..

  4. #4
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Alors, le code fait ca :

    on instancie un stringbuilder (++performant pour construire une chaine de facon iterative...)
    on recupere a partir d'une autre classe une liste d'items, dans une liste generique (system.collections.generics)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sb.Append("<script type=\"text/javascript\">\n\n");
    sb.Append("var itemList= new Array();\n");
    on ajoute du texte au stringbuilder, qui, une fois rendu dans la page html, va ouvrir le tag script, et on cree un tableau javascript

    pour chacun des elements de la liste, on ajoute au stringbuilder du texte qui va permettre d'agrandir la table itemList, et d'ajouter les elements correspondant au code de nos items.

    a la fin, on ferme le tag script, et on ecrit dans la reponse (=dans la page) le contenu de notre stringbuilder....apres, cést du javascript interprete par le navigateur...


    grosso modo, si tu as 3 elements dans la liste, avec les codes 1,2 et 3 , ca va te generer ce javascript la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script type="text/javascript">
     
    var itemList= new Array();
    currentLength = itemList.length;
    itemList[currentLength] = "1";
    currentLength = itemList.length;
    itemList[currentLength] = "2";
    currentLength = itemList.length;
    itemList[currentLength] = "3";
     
    </script>
    voila, je pense que tu dois avoir tous les elements pour continuer

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    sauf que dans ma liste j'ai plus de 1800 enregistrements.... . de plus je vois ce que tu veut faire, mais dans ma collection (j'ai oublié de préciser peut etre...) j'ai des objets, pas que des strings....

    en gros, j'ai une collection(1) dans une collection(2), dans une collection(3) que je souhaite remonter (la 3) et parcourir le tout...je sens que ca vas etre misere pour moi..

    perso j'ai trouvé les registerclientscriptblock, mais je pietinne... tu connait par hazard ???

    sinon, y'a t'il moyen de parcourir ma collection en vb.net et de renvoyer les données une a une a la page asp.net ??

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par boubounne Voir le message
    perso j'ai trouvé les registerclientscriptblock, mais je pietinne... tu connait par hazard ???
    Ca permet "d'enregistrer" des fonctions js dans ta page mais faudra toujours passer par la phase écriture du code js

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 270
    Points : 270
    Points
    270
    Par défaut
    Tu peux "balancer" directement un tableau dans le code javascript avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    page.ClientScript.RegisterArrayDeclaration("NomDuTableau","MaChaîne")
    Le second paramètre doit être une chaîne de caractère comprendant les éléments de ta collection séparés par des virgules.

    "valeur1,valeur2,valeur3,valeur4"

    Maintenant, dans ton code javascript,
    NomDuTableau[2] te donne valeur3

  8. #8
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    merci de vos reponses, j'en prend note, et je vais voir comment les utiliser...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR8.5] Probleme de tableau
    Par Sto59 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/02/2007, 15h07
  2. probleme de tableau dynamique
    Par El Krotal dans le forum C
    Réponses: 9
    Dernier message: 25/06/2004, 17h00
  3. [C#] Probleme de tableau
    Par djsbens dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/06/2004, 14h04
  4. [Collections] Tableau de String
    Par gexti dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/06/2004, 15h42
  5. tableau javascript ecrit par une fonction asp
    Par LineLe dans le forum ASP
    Réponses: 4
    Dernier message: 03/11/2003, 08h38

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