Précédent   Forum du club des développeurs et IT Pro > Dotnet > Développement Web avec .NET > ASP.NET
ASP.NET ASP.NET -Forum d'entraide sur le Développement Web en ASP.NET. Avant de poster -> FAQ ASP.NET, Articles ASP.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/12/2012, 16h28   #1
neo_2000_2006
Invité régulier
 
Homme J
Consultant informatique
Inscription : août 2007
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme J
Localisation : France

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : août 2007
Messages : 33
Points : 6
Points : 6
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
neo_2000_2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 12h13   #2
Immobilis
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 6 387
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 6 387
Points : 7 054
Points : 7 054
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+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/12/2012, 11h05   #3
neo_2000_2006
Invité régulier
 
Homme J
Consultant informatique
Inscription : août 2007
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme J
Localisation : France

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : août 2007
Messages : 33
Points : 6
Points : 6
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
neo_2000_2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 11h48   #4
neo_2000_2006
Invité régulier
 
Homme J
Consultant informatique
Inscription : août 2007
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme J
Localisation : France

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : août 2007
Messages : 33
Points : 6
Points : 6
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 )
neo_2000_2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 11h53   #5
Immobilis
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 6 387
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 6 387
Points : 7 054
Points : 7 054
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.
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 14h27   #6
neo_2000_2006
Invité régulier
 
Homme J
Consultant informatique
Inscription : août 2007
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme J
Localisation : France

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : août 2007
Messages : 33
Points : 6
Points : 6
bon j'y comprends rien ! j'ai besoin de passé des repeater ( puisque je les parses )
neo_2000_2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 14h44   #7
Immobilis
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 6 387
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 6 387
Points : 7 054
Points : 7 054
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+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 17h44   #8
neo_2000_2006
Invité régulier
 
Homme J
Consultant informatique
Inscription : août 2007
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme J
Localisation : France

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : août 2007
Messages : 33
Points : 6
Points : 6
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 ?
neo_2000_2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 22h33   #9
Immobilis
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 6 387
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 6 387
Points : 7 054
Points : 7 054
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+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 08h53   #10
neo_2000_2006
Invité régulier
 
Homme J
Consultant informatique
Inscription : août 2007
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme J
Localisation : France

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : août 2007
Messages : 33
Points : 6
Points : 6
bonjour,

coté client j'ai :

Code :
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 :
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();
}
neo_2000_2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h05.


 
 
 
 
Partenaires

Hébergement Web