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 :

Affichage valeur de pourcentage d'une boucle


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut Affichage valeur de pourcentage d'une boucle
    bonjour,

    voilà mon probleme qui me semble etre trés simple et pourtant bien tordu !

    j'ai un traitement qui est fait dans une boucle de d'objet générique , a chaque passage , je calcule le pourcentage d'effectuer et veux le renvoyer sur un label coté client. Cependant , il ne m'affiche que la derniere valeur ! ce qui me semble logique puisque l'affichage ne se fait qu'une fois le traitement terminé ....

    Ma question est : comment mettre à jour mon label avec , à chaque passage dans la boucle , la valeur du pourcentage calculé !

    je pense à du jquery avec des appel ajax , mais je ne peux pas mettre ma methode en static !

    je seche ....

    merci pour votre aide !

    N

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Ta problématique revient un peu au scénario suivant:
    • Ma grand mère aux Etats Unis fait des cookies;
    • Je suis impatient de savoir quand elle aura fini;
    • J'aimerai savoir où elle en est dans sa préparation;
    • Quelles solutions ai-je à ma disposition?
      1. Je peux lui demander de m'informer à chaque étape => SilverLight;
      2. Je peux lui téléphoner toutes les 5 secondes => AJAX;
      3. Je peux attendre qu'elle ait fini => Cas standard.
    Si tu utilises l'AJAX, il te faut un web service. Le truc c'est que comme le web service sera complètement déconnecté du processus, il te faut obligatoirement une ressource partagée pour obtenir cette information => variable statique

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    bonjour,

    merci de vos réponse,

    j'ai commencé en AJAX Jquery , mais du fait de la méthode static , je perds beaucoup de mes objets (necessaire à ma boucle !!! ) et je ne vois pas comment y remedier

  4. #4
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    En fait , voilà mon cheminent de code :

    j'ai un bouton , sur lequel j'ai l'action click coté serveur... sur ce code ,j'ai du traitement et une boucle dans laquelle à chaque itération je veux mettre à jour l'affichage du pourcentage effectué ( que je calcule à chaque itération , donc j'ai sa valeur )

  5. #5
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Il faut que ton appel ajax envoi suffisamment d'informations pour permettre au web service de retrouver les données et formuler la réponse.
    "Winter is coming" (ma nouvelle page d'accueil)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    bon j'y comprends rien ! j'ai besoin de passé des repeater ( puisque je les parses )

  7. #7
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par neo_2000_2006 Voir le message
    bon j'y comprends rien ! j'ai besoin de passé des repeater ( puisque je les parses )
    Non. Si tu as un repeater, c'est que tu as des lignes de données. J'imagine qu'il y a des ID. Passe seulement l'ID.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    bon je progresse , ma progressbarre evolue mais en l'incrementant de 1 moi meme dans le code client. Or je recupere le pourcentage d'evolution que je met dans un hiddenfield coté serveur. Du coté serveur si je mets un point d'arret je vois bien mon hiddenfield s'incrementer ,mais si je fais un alert de celui ci , il reste à 0 !!!! pourquoi ?

  9. #9
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Ouh là, je suis pas certain que tout est fait dans le bon ordre...

    1. Tu affiches la page web avec la progress bar à 0;
    2. Toutes les x secondes, un javascript (client) va interroger un web service (serveur) pour lui poser la question suivante: Quel est le pourcentage d'accomplissement du travail "ABC123"?
    3. La web méthode (serveur) va chercher l'information demandée via une propriété partagée (dans le meilleur des cas un singleton);
    4. La web méthode répond au javascript client;
    5. Ce dernier met à jour le pourcentage de progression;
    6. Tu recommences à l'étape 2 jusqu'à atteindre 100%.


    Tout cela suppose qu'un travail s'exécute en tâche de fond et mette à jour le singleton précédemment cité.

    Y a-t-il un truc que tu ne connais pas dans ce que je viens d’énoncer?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  10. #10
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    bonjour,

    coté client j'ai :

    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
     
    var intervalID;
    ...
    intervalID=setInterval(updateProgress, 250);
    ....
    function updateProgress() {          
     
                $.ajax({
                    type: "POST",
                    url: "page.aspx/GetPourcentage",
                    contentType: "application/json; charset=utf-8",
                    success: function(msg) {
                        $("#pourcentValue").html(100);
                        clearInterval(intervalID);
                    },
                    error:function(xhr,err){
                        alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
                        alert("responseText: "+xhr.responseText);
                    }
                });
     
                var val= $("input[id$='hdfPourcentage']").val();
                var value = $("#progressbar").progressbar("option", "value");
     
                if (value < 100) {
                    // au lieu du 1 mettre val , mais hidden field toujorus à 0 ????!!!!!
                    $("#progressbar").progressbar("value", value + 1);   
                        $("#pourcentValue").html($("#progressbar").progressbar("option", "value"))  ;       
                }
            }
    coté serveur :

    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
     
    private static int PourcentageValue;
     
    .....
     
    mamethode()
    {
     
    ...
    //boucle de traitement
    foreach(int i in mlstId)
    {
       .....
       hdfPourcentage.Value = (i * 100 / mlstId.Count).ToString();
       PourcentageValue = i * 100 / mlstId.Count;
     
    }
     
    }
     
     
    [System.Web.Services.WebMethod]         
    public static string GetPourcentage()
    {
       return PourcentageValue.ToString();
    }

Discussions similaires

  1. [XL-2010] Copie de valeur de cellule dans une boucle
    Par sam01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/11/2014, 21h40
  2. Comment insérer une valeur en pourcentage dans une table
    Par abdel_java dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 28/05/2014, 15h58
  3. affichage a chaque itération d'une boucle
    Par moman dans le forum Débuter
    Réponses: 2
    Dernier message: 25/04/2012, 19h29
  4. Réponses: 2
    Dernier message: 14/03/2012, 10h32
  5. [MySQL] Affichage de résultats issus d'une boucle sur un switch
    Par Micaunprobzo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/09/2007, 11h45

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