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 :

UpdatePanel avec Trigger (Empêcher mise à jour)


Sujet :

ASP.NET

  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut UpdatePanel avec Trigger (Empêcher mise à jour)
    Bonjour à tous,

    J'ai deux UpdatePanel qui se suivent un après l'autre.
    Voici à quoi cela ressemble. J'ai placé l'heure et un bouton dans chacun des UpdatePanel afin de savoir lequel est mise à jours et lequel ne l'est pas.

    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
     
    <asp:updatepanel id="upn1" runat="server" updatemode="Conditional">
    <contenttemplate>
       <%= DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss [fffffff]")%>
       <asp:textbox id="tbx1" runat="server"></asp:textbox>
       <br />
       <asp:button id="bt1" runat="server" text="bt1"/>
    </contenttemplate>
    <triggers>
        <asp:asyncpostbacktrigger controlid="bt2" eventname="click" />
    </triggers>
    </asp:updatepanel>
     
    <asp:updatepanel id="upn2" runat="server" updatemode="Conditional">
    <contenttemplate>
       <%= DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss [fffffff]")%>
       <asp:textbox id="tbx2" runat="server"></asp:textbox>
       <br />
       <asp:button id="bt2" runat="server" text="bt2" />
    </contenttemplate>
    <triggers>
        <asp:asyncpostbacktrigger controlid="bt1" eventname="click" />
    </triggers>
    </asp:updatepanel>
    Si le bouton bt1 est cliqué alors il faut simplement mettre à jours l'Updatepanel upn1.
    Toutefois, sous certainnes conditions logiques, il se peut aussi que l'UpdatePanel upn2 doivent aussi être mise à jours. Ce qui sera fait du côté CodeBehind en appelant upn2.Update() dans l'événement click du bouton.

    Si le bouton bt2 est cliqué alors il faut simplement mettre à jours l'Updatepanel upn2.
    Toutefois, sous certainnes conditions logiques, il se peut aussi que l'UpdatePanel upn1 doivent aussi être mise à jours. Ce qui sera fait du côté CodeBehind en appelant upn1.Update() dans l'événement click du bouton.

    En ce moment, les deux UpdatePanel se mettre toujours à jours l'un et l'autre.
    Pourtant, leur mode est bien Conditionnal. Si j'ai bien compris, lorsque le mode est Conditionnal, il faut appeler la méthode Update() en CodeBehind pour qu'il soit mise à jours. Or, en ce moment, j'ai aucun controle là-dessus.

    Quelqu'un à une idée ?
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Si j'ai bien compris, je vois une bourde dans ton code (à vrai dire j'ai un gros doute tant ça me paraît simple ) :
    Dans ton upn1, ton trigger est le bouton situé dans l'upn2 et vice-versa.
    Si btn1 doit déclencher l'update de upn1, il y a une erreur et on devrait avoir :
    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
    <asp:updatepanel id="upn1" runat="server" updatemode="Conditional">
    <contenttemplate>
       <%= DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss [fffffff]")%>
       <asp:textbox id="tbx1" runat="server"></asp:textbox>
       <br />
       <asp:button id="bt1" runat="server" text="bt1"/>
    </contenttemplate>
    <triggers>
        <asp:asyncpostbacktrigger controlid="bt1" eventname="click" />
    </triggers>
    </asp:updatepanel>
     
    <asp:updatepanel id="upn2" runat="server" updatemode="Conditional">
    <contenttemplate>
       <%= DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss [fffffff]")%>
       <asp:textbox id="tbx2" runat="server"></asp:textbox>
       <br />
       <asp:button id="bt2" runat="server" text="bt2" />
    </contenttemplate>
    <triggers>
        <asp:asyncpostbacktrigger controlid="bt2" eventname="click" />
    </triggers>
    </asp:updatepanel>

  3. #3
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Non ce n'est pas un erreur.

    Comme le bouton bt1 est déjà un children du upn1 alors le fait de cliquer dessus déclanchera automatiquement la mise à jour du upn1. Même chose avec upn2

    Le fait de spécifier que le bouton bt1 est un trigger de upn2 sert à indiquer que si le bouton bt1 est cliqué alors upn2 pourrait être mise à jour.

    Toutefois, au lieu que ce soit "POURRAIT", c'est plutôt "EST".

    Pourtant il n'y a aucun CodeBehind pour l'événement click des deux boutons. Or que si j'ai bien compris, lorsqu'un UpdatePanel est en mode "Conditionnal", il est mise à jour QUE SI un sa méthode Update() est appelée ?

    Enfin, c'est le comportement que je souhaite avoir.
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par Erakis Voir le message
    Le fait de spécifier que le bouton bt1 est un trigger de upn2 sert à indiquer que si le bouton bt1 est cliqué alors upn2 EST mise à jour.
    FYP

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Il y a donc bien quelque chose que je n'avais pas saisi
    Mea Culpa

    Comme le dit LuteceFalco, si btn2 est trigger de upn1, chaque clic sur bnt2 updatera upn1, updateMode conditional ou non.

    C'est pour cette raison que je n'avais pas compris ce que tu souhaitais faire.
    Avec ce que je te proposais dans mon premier message, chaque clic sur btn2 updatera upn2 et, si la condition que tu évoques est remplie, il te faudra appeler upn1.update() dans le code-behind pour updater upn1.

  6. #6
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Donc en résumé, ce que je désire faire est impossible ?

    Il doit bien y avoir un moyen... C'est que j'ai trois GridView étant dans des UpdatePanel différents. Le fait de mettre à jours la grille 1 (PEUT) nécessiter de mettre à jours les deux autres GridView (par conséquent leur UpdatePanel respectif).

    Même chose avec la GridView2, si un item est supprimé ou ajouté, il se PEUT que la GridView 1 et la GridView3 doivent être mise à jour.

    Ce ne serait pas trop optimal de les mettre les trois dans le même UpdatePanel. Cela reviendrait quaisiment à recharger la page à chaque Postback.
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

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

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Bah tu vires le trigger et t'appelles la méthode Update de l'update panel à mettre à jour si nécessaire

  8. #8
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Wow ça fonctionne !

    Je pensais que pour que la méthode Update fonctionne, il fallait que bouton soit spécifié comme étant un Trigger.

    On en apprend tous les jours

    Merci à tous pour votre aide
    Mieux vaut ne rien savoir que beaucoup savoir à moitié !
    Faite vous en pas avec la vie, personne en est sortie vivant !

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

Discussions similaires

  1. trigger en mise à jour
    Par k-eisti dans le forum PL/SQL
    Réponses: 4
    Dernier message: 17/01/2008, 13h54
  2. Réponses: 3
    Dernier message: 18/07/2007, 17h20
  3. Réponses: 2
    Dernier message: 17/05/2007, 22h04
  4. triggers insertion, mise à jour, suppression
    Par bibi_forever dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/05/2007, 11h22
  5. pb avec la derniere mise à jour de kaspersky
    Par arfy dans le forum Sécurité
    Réponses: 6
    Dernier message: 19/07/2005, 08h01

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