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 :

Evenement OnClick et OnClientClick dans un meme LinkButton


Sujet :

ASP.NET

  1. #1
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut Evenement OnClick et OnClientClick dans un meme LinkButton
    Bonjour à tous, j'aimerai connaître la marche à suivre pour avoir pour un meme LinkButton un appel à une fonction côté serveur, et une autre côté client lors du clic sur ce boutton.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <asp:LinkButton ID="lbtnStatut" runat="server"                                                                                                                  
                                                Text="Statut"        
                                                OnClientClick="showPopupStatut(this); return false;"
                                                OnClick="lbtnStatut_Click"/>
    fonction javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function showPopupStatut(source){
                this._source = source;
                this._popup = $find('mpeStatutBehavior');
     
                //  find the Statut ModalPopup and show it    
                this._popup.show();
                }
    fonction C#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     protected void lbtnStatut_Click(object sender, System.EventArgs e)
        {
            //  get the gridviewrow from the sender so we can get the datakey we need
            LinkButton lbtnStatut = sender as LinkButton;
            GridViewRow row = (GridViewRow)lbtnStatut.NamingContainer;
            this._ucStatut.iID = Int32.Parse(gvTab2.DataKeys[row.RowIndex].Value.ToString());
            this.pnlStatut.Controls.Add(_ucStatut);
        }
    Car en procédant ainsi, seul ma fonction Javascript est executée...

  2. #2
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    A priori je dirais le "return false;" dans ton OnClientClick

  3. #3
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut
    C'est la première chose à laquelle j'ai pensé, mais je ne peux pas l'enlever, car dès que je l'enlève, mon animation d'ouverture de ModalPopup s'interrompt et la popup se ferme....

  4. #4
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Ta popup se ferme et lance le postback de ta page, non ?
    Dans ce cas, peut-être faut-il que tu revois le fonctionnement et ne pas mettre le postback sur le linkbutton mais sur le bouton fermer de ta popup (s'il en a un)

  5. #5
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut
    Je ne crois pas qu'il y est de postBack sur mon LinkButton, en tout cas, quand je regarde ses propriété en mode design, la propriété PostBackUrl est vide...

  6. #6
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Citation Envoyé par obitskater Voir le message
    Je ne crois pas qu'il y est de postBack sur mon LinkButton, en tout cas, quand je regarde ses propriété en mode design, la propriété PostBackUrl est vide...
    Pour être sur, regarde le code html généré: cherche la fonction __dopostback sur ton lien

  7. #7
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut
    J'ai bien un truc ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="javascript:__doPostBack('gvTab2$ctl02$lbtnStatut','')
    gvTab2 est ma gridView dans laquelle j'ai mon LinkButton (lbtnStatut), comment je pourrai faire pour ne rien avoir?

  8. #8
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    tu peux laisser ton postback, et dans ta méthode lbtnStatut_Click côté serveur lancer un javascript qui ouvre ta popup.

  9. #9
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut
    Justement c'est ce que je penser faire, mais je n'arrive pas à appeler une fonction JavaScript depuis le code behind.

    Pourrais tu m'aider s'il te plaît?

  10. #10
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    il y a plusieurs façons de faire.


    Soit tu utilises

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.write("<SCRIPT>alert('coucou')</SCRIPT>");
    soit tu peux créer un asp:literal en mode passthrough dans ton design, et écrire le code js dans la propriété .text à partir du code behind.

  11. #11
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut
    Merci pour ta réponse, j'ai essayer avec la ligne de code que tu m'a donnée, mais en l'exécutant j'ai une alerte sous IE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sys.WebForms.PageRequestManagerParseErrorException: The message received from the server could not be parsed. Common causes for this error are when the response is modified by calls to Response.Write(), response filters, HttpModules, or server trace is enabled.
    Details: Error parsing near '<SCRIPT>alert('couco'.
    Ondirait qu'il ne prend pas l'integralité de la page...

  12. #12
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Utilise plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('toto');", true);

  13. #13
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Citation Envoyé par guitoux1 Voir le message
    Utilise plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('toto');", true);
    Effectivement, si tu utilises ajax library, cette méthode doit marcher

  14. #14
    Membre confirmé Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Par défaut
    rien ne ce passe, pas de toto....

  15. #15
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Citation Envoyé par gdkenny Voir le message
    Effectivement, si tu utilises ajax library, cette méthode doit marcher
    En fait ce code fonctionne sans l'AJAX library, c'est de l'ASP.Net 2.0 "seulement"

  16. #16
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Oui pardon, j'ai confondu avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ScriptManager.RegisterStartupScript
    Ceci dit, l'utilisation de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Page.RegisterStartupScript
    est désapprouvé maintenant... (en tout cas dans VS 2008 avec le framework 3.5)

Discussions similaires

  1. Fonction dans un evenement onclick sur une image
    Par SweetLeaf dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/07/2008, 11h23
  2. Réponses: 12
    Dernier message: 08/11/2007, 20h38
  3. evenement onclick dans un script
    Par yanice dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 13/06/2007, 17h35
  4. evenement onclick dans du code html généré par js
    Par gelko dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/11/2006, 09h24
  5. Bouton alternant 2 fonctions sur le meme evenement onClick
    Par Rocca dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/01/2006, 09h16

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