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 :

Passage et utilisation d'un tableau de structure de c# à Javascript


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut Passage et utilisation d'un tableau de structure de c# à Javascript
    Bonjour,

    J'ai une page Accueil dans laquelle je consomme en code behind (c#) un web service qui me retourne un tableau de structure. Ce tableau je voudrais l'utiliser dans ma page Accueil.aspx.

    J'ai essayé ce code là mais aucun ne marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
           WSProxy.WSClass proxy = new WSProxy.WSClass();
           WSProxy.Struct[] listStructs = proxy.getListStructs();
    Jusque là, tout se passe bien. Je récupère bien mon tableau de structure "listStructs" (testé en mode débogage et affichage dans des labels).

    Ensuite, j'ai créé un contrôle caché input dans lequel j'enregistre mon tableau que j'essaye de récupérer en javascript.

    C# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myHiddenInput.Value = listStructs.ToString();
    ASPX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             <input id="myHiddenInput" type="hidden" NAME="Hidden1">
    JAVASCRIPT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var myTextField = document.getElementById('myHiddenInput');
    alert("You entered: " + myTextField.value);
    ca marche pas...

    J'ai utilisé une autre méthode.
    J'ai déclaré un tableau en javascript dans le head.
    et dans le code behind, je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "cle1", "<script type=\"text/javascript\">jsListStructs = " + ListStructs + "; </script>");
    j'essaie de l'afficher avec un alert mais ca marche pas non plus. (j'ai ajouté ToString() à ListStructs dans la chaine de caractère et ca marche pas non plus...

    Auriez-vous une idée siouplé ?
    Merciiiii.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    1- comment tu fais pour acceder à ton champ hidden sans l'attribute runat="server"?

    2- quand on fait du JS, on doit utiliser la propriété ClientID (à moins que tu ne fasses du 1.1)

    t'as utilisé un debuggueur de javascript pour voir le soucis?
    t'as regardé la source pour voir le code javascript généré?

  3. #3
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    1- comment tu fais pour acceder à ton champ hidden sans l'attribute runat="server"?
    oui, bien sur, c'etait juste un mauvais copier coller... désolé.

    Citation Envoyé par Louis-Guillaume Morand Voir le message
    2- quand on fait du JS, on doit utiliser la propriété ClientID (à moins que tu ne fasses du 1.1)
    alors j'ai ce code en code behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hidden.Value = tabListStructs.ToString();
    tabListStructs étant mon tableau de structures.

    ASPX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input id="hidden" type="hidden" runat="server" />
        <script type="text/javascript"> var jsListStructs = document.getElementById('<%=hidden.ClientID%>').value;</script>
        <script type="text/javascript">alert(jsListStructs); </script>
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    t'as regardé la source pour voir le code javascript généré?
    Source générée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input name="ctl00$ContentPlaceHolder4$hidden" type="hidden" id="ctl00_ContentPlaceHolder4_hidden" value="WSProxy.Struct[]" />
        <script type="text/javascript"> var jsListStructs = document.getElementById('ctl00_ContentPlaceHolder4_hidden').value;</script>
        <script type="text/javascript">alert(jsListStructs); </script>
    messageBox :
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    t'as utilisé un debuggueur de javascript pour voir le soucis?
    Désolé, mais non, je code sur MS Web developper 2008. le déboggeur ne m'affiche pas le contenu des variables...

    je ne vois pas comment avoir le contenu du tableau...
    j'ai essayé avec alert(jsListStructs[0].attribut1); mais il me retourne undefined sur le messagebox.


    MErci !!
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    Désolé, mais non, je code sur MS Web developper 2008. le déboggeur ne m'affiche pas le contenu des variables...
    le debuggueur Javascript, tu peux l'avoir avec IE ou aussi avec Firebug sous firefox. y a rien de mieux, tu peux faire du pas à pas, faire des watch, etc
    teste le

  5. #5
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Firebug est excellent! je ne connaissais pas... merci!!

    Le contenu de la variable javascript est bien WSProxy.Struct[].
    Il faudrait que je crée dynamiquement des input pour chaque structure du tableau (en code behind) pour les récupérer en javascript ? Mais là, j'aurais le même problème, ca sera toujours un tableau, enfin une structure. Je pourrais faire maStruct.attribut1 ?
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  6. #6
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    J'ai essayé plusieurs choses... mais j'ai pas pu récupérer le tableau en javascript... !

    la création dynamique me pose des problèmes de gestion des ID des contrôles...

    N'y a t-il pas une méthode simple pour ce tableau de structures ?

    merci!!
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  7. #7
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Il se déclenche quand ton JS ? sur un click ? sur un onload ? Je dis ça comme ça mais si tu fais appel à un event js, et que tu utilises RegisterStartupScript, tu dois rajouter un attribut sur l'item qui va générer ton js, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myButton.Attributes.Add("onclick",monjs)

  8. #8
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    Citation Envoyé par Ishizaki Voir le message
    Il se déclenche quand ton JS ? sur un click ? sur un onload ? Je dis ça comme ça mais si tu fais appel à un event js, et que tu utilises RegisterStartupScript, tu dois rajouter un attribut sur l'item qui va générer ton js, genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myButton.Attributes.Add("onclick",monjs)
    pourquoi faire? là son javascript va s'initialiser au démarrage, il ne fait qu'initialiser une variable. le reste importe peu puisque cela sera forcément éxecuter plutard lorsque la variable sera settée

  9. #9
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Je le sais bien qu'il ne fait qu'initialiser une variable, je pensais simplement qu'il voulait récuperer l'élément sur un event...

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

Discussions similaires

  1. Utilisation d'un tableau de structures
    Par Amnael dans le forum Débuter
    Réponses: 7
    Dernier message: 04/02/2014, 14h05
  2. Réponses: 0
    Dernier message: 17/02/2013, 20h27
  3. Utilisation d'un tableau dans une structure
    Par Angelique64 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/06/2009, 11h05
  4. Réponses: 2
    Dernier message: 23/02/2009, 11h23
  5. Réponses: 7
    Dernier message: 16/04/2007, 13h39

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