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 :

Problème affichage UpdateProgress simultanément


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut Problème affichage UpdateProgress simultanément
    Bonjour,

    Ma page contient plusieurs widgets avec chacun un UpdatePanel, une action sur un des boutons du widget entraine son rafraichissement et l'affichage d'un updateProgress. Tout fonctionne bien lorsque je n'utilise qu'un updateprogress à la fois. Je précise que le bloc contenant tous les widgets possède également un updatepanel avec updateprogress.

    Lorsque j'actionne 2 widgets différent, lors du clic sur le deuxième widget, l'updateprogress du premier disparait et l'updateprogress du second apparait. Les actions sont néanmoins bien effectuées.

    J'aimerai que lorsque je clique sur plusieurs widgets, tous les updateprogress concernés s'affichent.
    Est ce possible? Si oui, comment?
    Merci

    Jean

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut Pour faire plus simple
    Récupérez le code ci-dessous :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <%@ Page Language="C#" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <script runat="server">
        protected void Button1_Click(object sender, EventArgs e)
        {
            // Introducing delay for demonstration.
            System.Threading.Thread.Sleep(3000);
            Label1.Text = "Page refreshed at " +
                DateTime.Now.ToString();       
        }
     
        protected void Button2_Click(object sender, EventArgs e)
        {
            // Introducing delay for demonstration.
            System.Threading.Thread.Sleep(3000);
            Label2.Text = "Page refreshed at " +
                DateTime.Now.ToString();       
     
        }
    </script>
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
        <title>UpdateProgress Tutorial</title>
        <style type="text/css">
        #UpdatePanel1, #UpdatePanel2 { 
          width:300px; height:100px;
         }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <fieldset>
                    <legend>UpdatePanel1</legend>
                    <asp:Label ID="Label1" runat="server" Text="Panel initially rendered."></asp:Label>
                    <br />
                    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                    <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
                        <ProgressTemplate>
                            Panel1 updating...
                        </ProgressTemplate>
                    </asp:UpdateProgress>
                    </fieldset>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <ContentTemplate>
                    <fieldset>
                    <legend>UpdatePanel2</legend>
                    <asp:Label ID="Label2" runat="server" Text="Panel initially rendered."></asp:Label>
                    <br />
                    <asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" />
                    <asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="UpdatePanel2">
                        <ProgressTemplate>
                            Panel2 updating....
                        </ProgressTemplate>
                    </asp:UpdateProgress>
                    </fieldset>
                </ContentTemplate>
            </asp:UpdatePanel>
     
        </div>
        </form>
    </body>
    </html>
    Cliquez sur un des deux boutons et durant le rafarichissement, cliquez sur le deuxième bouton, l'updateprogress du premier s'arrête et l'autre démarre, j'aimerai que les deux continuent d'être affiché en même temps,
    Merci...

    Jean

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    C'est le comportement par défaut: tout nouveau async post back annule et remplace le précédent

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Ici une solution pour mettre les tâches en queue, mais rien de simultané.
    D'ailleurs je pense pas que ce soit possible étant donné le fonctionnement d'ASP.NET

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    Merci lutecefalco pour ta réponse
    mais quand tu dis Ici, c'est où ?

    Sinon est ce qu'il y a un moyen lors du lancement du deuxième updatepanel de récupérer le premier afin d'afficher manuellement son updateprogress et de lancer une action coté serveur à la fin de la requete?

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Oups voilà le lien: http://geekswithblogs.net/rashid/arc...-A-Remedy.aspx

    Ce que tu souhaites faire, ça doit être possible en js je pense

    Dans un billet de blog intitulé UpdatePanel, Trigger et UpdateProgress Cyril Durand explique comment afficher un updateprogress manuellement.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    Voici un lien intéressant avec un script plus simple et qui fonctionne dans plus de cas...

    http://disturbedbuddha.wordpress.com...ous-postbacks/

    Le problème est que les updateProgress ne s'affichent toujours pas, quelqu'un pourrait il m'aider à écrire en javascript l'affichage des updateprogress pour chaque widget qui va être rafraichis ou qui est en cours de refraichissement?
    Merci

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    T'es obligé de forcer l'affichage en js

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    J'utilise le script que j'ai posté et j'aimerai que tous les updateProgress qui sont dans la liste à rafraichir ainsi que celui qui est en train d'être rafraichis s'affichent mais actuellement seul le premier cliqué est affiché.
    Après que ce soit en code behind ou en js peu m'importe si ça marche

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    Même si mon sujet n'a pas l'air d'intéresser grand monde, voici la réponse...
    Oublier les files d'attentes puisque les actions côté serveurs sont malgrè tout effectuées et cela permet dans mon cas de garder les actions asynchrones de mes widgets!

    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
     
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_initializeRequest(InitializeRequestHandler);
            prm.add_beginRequest(BeginRequestHandler);
     
            var updateProgressUpdating = new Array();
     
            function InitializeRequestHandler(sender, args) {
                var updateProgress = $("div#UpdateProgressWidgetPanel").parent();
                var index = 0
                for (i = 0; i < updateProgress.length; i++) {
                    if (updateProgress[i].style.display == 'block') {
                        updateProgressUpdating.push(updateProgress[i]);
                    }
                }
            }
     
            function BeginRequestHandler(sender, args) {
                for (i = 0; i < updateProgressUpdating.length; i++) {
                    updateProgressUpdating[i].style.display = 'block';
                }
            }
    ($("div#UpdateProgressWidgetPanel").parent() : cette fonction permet d'atteindre le div généré à partir de l'updateProgress en html, explication : http://forums.asp.net/p/1426825/3183546.aspx)

    Ce petit code permet de récupérer en JQuery tous les UpdateProgress des widgets de la page qui sont déjà affichés, de les stocker et d'en forcer l'affichage à chaque ouvelle requête. Dès que la dernière requête est terminée, ils disparaissent tous et toutes les actions ont été effectuées côté serveur...
    Merci encore lutecefalco pour ton aide.

    Jean

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Donc là, t'affiches tous les updateProgress, pas juste ceux des widgets mis à jour, non?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 37
    Par défaut
    J'affiche tous les UpdateProgress des widgets qui ont été actionnés

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. problème affichage image
    Par thealpacino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/05/2005, 13h56
  3. Problème affichage primitive
    Par goutbouyo dans le forum DirectX
    Réponses: 4
    Dernier message: 29/12/2004, 18h25
  4. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 14h50
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31

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