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 :

OnInit et sender


Sujet :

ASP.NET

  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut OnInit et sender
    Bonjour,

    Y a t il un moyen pour connaitre qui est le sender dans le onInit, car j'ai besoin de faire des traitements differents en fonction du sender.

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Dans l'évènement Init, c'est le paramètre sender
    Dans la méthode OnInit, c'est toujours this...

  3. #3
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Avec this on ne peut pas recuprerer le control qui a genere un postback !!!

  4. #4
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Lors du oninit tu ne peux pas le savoir car cette information ne sera disponible qu'une fois le viewstate evalué et si cela arrive dans l'evenement juste avant le pageload de ta page.. me souvient plus du nom exacte la..

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par topolino Voir le message
    Avec this on ne peut pas recuprerer le control qui a genere un postback !!!
    Ben oui... OnInit déclenche l'évènement Init sur le contrôle courant, et uniquement celui là

  6. #6
    Membre éprouvé
    Inscrit en
    Décembre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2003
    Messages : 108
    Par défaut
    tu peux essayer Context.Request.Form["__EVENTTARGET"] ou ca Page.Request.Params.Get("__EVENTTARGET") ca permet d'avoir l'ID du control qui a généré le postback

  7. #7
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Context.Request.Form["__EVENTTARGET"]me renvoie vide à chaque fois!!!!

  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
    Tain, je viens de faire une découverte incroyable: ca s'appelle google.
    J'ai tapé les mots asp.net init control postback et je suis tombé sur: http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx.

    Et ça m'a pris 15 secondes, énorme ...

  9. #9
    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 : 42
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Technique alternative utilisable uniquement si tu utilises les extensions ajax dans ton projet:
    utiliser le pageRequestManager côté client.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_initializeRequest(InitializeRequest);
        var postBackElement;
     
        function InitializeRequest(sender, args)
        {
            postBackElement = args.get_postBackElement();
        }
    Coller un "debugger;" sous "postBackElement = args.get_postBackElement();" et tu verras que tu récupères bien le contrôle à l'origine de la mise à jour de l'updatepanel.

    Un lien vers la MSDN

    Au passage, est ce que certains d'entre vous utilisent cette technique ? Qu'en pensez-vous ?

  10. #10
    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
    Citation Envoyé par calagan99 Voir le message
    Technique alternative utilisable uniquement si tu utilises les extensions ajax dans ton projet:
    utiliser le pageRequestManager côté client.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_initializeRequest(InitializeRequest);
        var postBackElement;
     
        function InitializeRequest(sender, args)
        {
            postBackElement = args.get_postBackElement();
        }
    Coller un "debugger;" sous "postBackElement = args.get_postBackElement();" et tu verras que tu récupères bien le contrôle à l'origine de la mise à jour de l'updatepanel.

    Un lien vers la MSDN

    Au passage, est ce que certains d'entre vous utilisent cette technique ? Qu'en pensez-vous ?
    Et en prod, tu fais comment?

  11. #11
    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 : 42
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Vous pouvez répéter la question ?
    Comment ça "en prod" ?

  12. #12
    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
    Citation Envoyé par calagan99 Voir le message
    Vous pouvez répéter la question ?
    Comment ça "en prod" ?
    Oublies, j'ai mal lu ton post

  13. #13
    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 : 42
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Ah! c'était pour le "debugger;" ?
    C'est juste pour coller un point d'arrêt dans le js à des fins de test.

    Sinon, pas d'avis sur cette technique ?

  14. #14
    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
    Citation Envoyé par calagan99 Voir le message
    Ah! c'était pour le "debugger;" ?
    C'est juste pour coller un point d'arrêt dans le js à des fins de test.

    Sinon, pas d'avis sur cette technique ?
    Reste à voir si tu récupères bien la variable côté code behind

  15. #15
    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 : 42
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Ca dépend évidemment quel est le but de la manoeuvre.
    On peut toujours utiliser un hiddenfield et lui affecter l'id du postbackElement même si ce n'est pas ultra classe.
    Pour ma part j'utilise cela essentiellement dans des traitements effectués côté client et n'ai donc pas besoin de récupérer quoi que ce soit dans le code behind.

  16. #16
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Request.Params.Get("__EVENTTARGET") et Request.Params.Get("__EVENTARGUMENT"); me retourne toujours vide.

    Je ne peux utiliser la solution ajax.

    J'ai cherché dans google et suis tombé sur les meme pages, j'ai ecris sur ce forum car ca ne marche pas et essaye de trouver une solution !!!!!!!

  17. #17
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Bah sinon une méthode peut etre pas tres propre mais qui peut marcher : tu inscris du coté client en javascript dans un champ hidden quel controle realise le postback avant de soumettre ton postback et ensuite tu recupéres cette valeur via ton querystring ou form.

    Mais en meme temps en disant cela, je me dis que cette information tu devrais de toutes facons l'avoir avec Request.Params.Get("__EVENTTARGET") et Request.Params.Get("__EVENTARGUMENT")....

    Bon je seche,


    PS: Prends pas la mouche... Lutecefaclo a toujours été un vieil ours mal léché!

  18. #18
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    En faite mon bouton en question est dans un updatePanel, est ce pour cela que je recupere une string vide ?

  19. #19
    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
    Citation Envoyé par topolino Voir le message
    En faite mon bouton en question est dans un updatePanel, est ce pour cela que je recupere une string vide ?
    Essaye sans, tu verras bien

  20. #20
    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 : 42
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Topolino, si ton contrôle est dans un UpdatePanel, alors tu peux utiliser la solution ajax proposée.
    Tu colles le code que j'ai indiqué dans l'aspx dans des balises <script></script> et tu trouves une solution pour récupérer le contenu de la variable postbackElement.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réutilisation du Sender (TObject)
    Par matech dans le forum Langage
    Réponses: 10
    Dernier message: 01/03/2006, 23h46
  2. Réponses: 6
    Dernier message: 01/02/2006, 00h30
  3. [VB.net] Sender et AddHandler
    Par prophetky dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/08/2005, 21h23
  4. transtypage de l'objet sender
    Par jeltimohamed dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/02/2005, 23h01
  5. Un Sender peut-il s'auto-détruire lors d'un onClick?
    Par Flo. dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/07/2002, 10h31

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