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

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Probleme de PostBack général avec un UpdatePanel d'AjaxToolKit et un timer
    Bonjour a tous,

    Je suis développeur dans une toute petite entreprise éditrice de logiciel :
    2 patrons, un qui développe, et l'autre qui commerce.
    1 formatrice
    et moi

    et nous travaillons en Asp.net WebForm.
    Je ne suis pas débutant en développement, seulement en client léger

    Nous utilisons AjaxToolKit

    Dans toutes nos solutions, nous avons une MasterPage qui contient différents ContentPlaceHolder

    Un entete (asp:Table) qui contient un update panel qui joue le role de l'horloge ...

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <asp:UpdatePanel ID="test" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
            <ContentTemplate>
                   <asp:Timer ID="Horloge" runat="server" Interval="10000" />
                   <asp:Label ID="EtiHeure" runat="server" />
            </ContentTemplate>
            <Triggers>
                 <asp:AsyncPostBackTrigger ControlID="HorlogeVirtuelle" EventName="Tick" />
            </Triggers>
    </asp:UpdatePanel>

    dans le code behind, l'evenement Tick de "Horloge"met a jour "EtiHeure"

    Le problème c'est qu'a chaque évènement tick, le postback est effectué sur toute la page.

    Ce qui est contenu dans les autres ContentPlaceHolder
    Par exemple, qd j'affiche un popup (avec un ModalPopupExtender), si j'attend les 10 secondes, il disparaît ....

    J'ai evidemment regardé sur Développez.com, puis sur differents forums.

    J'ai a peu près essayé toutes les solutions qui etaient proposées :

    en ajoutant le timer dans un autre UpdatePanel,
    en changeant le trigger,
    en changeant UpdateMode de Always à Conditional, etc...

    Mon patron y tient comme un fou a son horloge, et c'est pas un expert en Asp.Net

    Rien n'y fait ...
    Toujours le postback

    J'ai lu l'exellent tuto sur l'UpdatePanel : http://www.asp.net/Ajax/Documentatio...lOverview.aspx

    Un petits coup de main ?

    Merci d'avance

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    octobre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Resolution du pb avec JavaScript
    Re bonjour tout le monde,

    J'ai trouvé un article qui resout le pb via JavaScript
    http://www.supportduweb.com/scripts_...emps-reel.html

    Attention, la methode javascript devient :

    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
     
    <script type="text/javascript">
            function date_heure(idctrl) {
     
                date = new Date;
     
                //annee = date.getFullYear();
                //moi = date.getMonth();
                //mois = new Array('Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');
                //j = date.getDate();
                //jour = date.getDay();
                //if (jour == 1)
                //{
                //    jour = "1er";
                //}
                //jours = new Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
                h = date.getHours();
                if (h < 10) {
                    h = "0" + h;
                }
                m = date.getMinutes();
                if (m < 10) {
                    m = "0" + m;
                }
                s = date.getSeconds();
                if (s < 10) {
                    s = "0" + s;
                }
                //resultat = jours[jour] + ' ' + j + ' ' + mois[moi] + ' ' + annee + '  ' + h + ':' + m;
     
                resultat = '' + h + ':' + m + ':' + s;
                var lbl = document.getElementById(idctrl);
     
                if (lbl == null) {
                    return false;
                }
     
                lbl.innerHTML = resultat;
                setTimeout('date_heure("' + idctrl + '");', '1000');
                return true;
            }
        </script>
    Mettre dans le Body de la master page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body style="background-color: #124545;" onload="date_heure('<%= this.EtiHeure.ClientID%>');">

    Et tout va tres bien

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

Discussions similaires

  1. [Débutant] Probleme avec des updatepanel
    Par Gregney dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/03/2012, 09h26
  2. Réponses: 0
    Dernier message: 25/02/2009, 14h40
  3. [JSP] probleme de out.println() avec un document
    Par SEMPERE Benjamin dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/08/2004, 23h05
  4. [JSP] probleme de out.println() avec un document
    Par SEMPERE Benjamin dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 12/08/2004, 08h31
  5. Problème sur une cmd avec AWK
    Par OrangeBud dans le forum Linux
    Réponses: 3
    Dernier message: 02/06/2004, 10h51

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