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 :

Appeler une fonction .Net en quittant une page


Sujet :

ASP.NET

  1. #1
    Jsh
    Jsh est déconnecté
    Membre régulier Avatar de Jsh
    Inscrit en
    Août 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Août 2005
    Messages : 100
    Points : 90
    Points
    90
    Par défaut Appeler une fonction .Net en quittant une page
    Bonjour,

    J'aimerais écrire dans une base de données au moment où je quitte une page.

    J'ai tenté d'appeler ma fonction ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <body onunload = 'document.write("<%=Quitter()%>")'>
    mais il aime pas !

    quelqu'un connait une méthode (sans implémentation Ajax !) ?

  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 : 41
    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 106
    Points
    3 106
    Par défaut
    Peux tu expliquer plus clairement ce que tu souhaites faire ?

    Pourquoi ne pas utiliser l'événement UNLOAD de la page en question ?

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Points : 459
    Points
    459
    Par défaut
    Bonjour,

    il y a la propriété closed() en javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <SCRIPT language=javascript>
       var Mypopup=window.open("popup.html","nom_popup","width=200, height=200");
     
       function Scanner() {
           if (Mypopup.closed) {
               alert("Le popup a été fermé");
           } else {
               setTimeout("Scanner()",1000);
           }
       }
       setTimeout("Scanner()",1000);
    </SCRIPT>
    Aprés c'est côté client ... Sans AJAX, pour écrire dans une BDD je vois pas

    Bon courage,

  4. #4
    Jsh
    Jsh est déconnecté
    Membre régulier Avatar de Jsh
    Inscrit en
    Août 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Août 2005
    Messages : 100
    Points : 90
    Points
    90
    Par défaut
    Je n'utilise pas le unload de la page car lors du chargement d'une page, il passe par le load puis le unload, ce qui me ferait écrire des données à un moment non voulu.
    La propriété closed() ne me satisfait pas non plus, car il s'agit d'écrire dans la base de données au moment où je quitte la page pour aller vers une autre et non pas au moment où je ferme mon navigateur.


  5. #5
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Si tu restes au sein de ton site, tu peux en conclure que si l'utilisateur arrive sur une page, c'est qu'il a du quitter la précédente.

  6. #6
    Jsh
    Jsh est déconnecté
    Membre régulier Avatar de Jsh
    Inscrit en
    Août 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Août 2005
    Messages : 100
    Points : 90
    Points
    90
    Par défaut
    Ahah ! Pas bête !

    Effectivement, en me servant de Page.Request.UrlReferrer.ToString() !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Page.Request.UrlReferrer.ToString() = "nomdemapage.aspx" then
    'j'écris dans la base
    End If
    Bon ça sous entend que je dois le mettre partout, sauf que comme j'utilise un ascx dans toutes les pages je peux le mettre là !

    Pas bête du tout ! Merci


  7. #7
    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 : 41
    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 106
    Points
    3 106
    Par défaut
    Citation Envoyé par neptune Voir le message
    Si tu restes au sein de ton site, tu peux en conclure que si l'utilisateur arrive sur une page, c'est qu'il a du quitter la précédente.
    difficilement contre-attaquable Reste à déterminer la page dont il vient et cela oblige à utiliser une fonction en début de chaque âge du site.

  8. #8
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Citation Envoyé par Jsh Voir le message
    Bon ça sous entend que je dois le mettre partout, sauf que comme j'utilise un ascx dans toutes les pages je peux le mettre là !
    On travaille en orienté objet ou pas?

    Met ce morceau de code dans une BasePage dont toutes tes pages hériteront.

  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 : 41
    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 106
    Points
    3 106
    Par défaut
    Non, sérieusement c'est vrai que c'est bien pensé.
    Question cependant même si elle n'a pas grand chose à voir avec le sujet initial.
    Je travaille avec des pages qui héritent déjà d'une Base Page, si je me retrouve dans la situation de Jsh, comment puis-je faire pour ne pas avoir à appeller une fonction à chaque PAGE_LOAD ,

  10. #10
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Non, sérieusement c'est vrai que c'est bien pensé.
    Question cependant même si elle n'a pas grand chose à voir avec le sujet initial.
    Je travaille avec des pages qui héritent déjà d'une Base Page, si je me retrouve dans la situation de Jsh, comment puis-je faire pour ne pas avoir à appeller une fonction à chaque PAGE_LOAD ,
    Définir la méthode Page_Load dans ta base page en protected et faire ton appel.

    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
    public class BasePage : System.Web.UI.Page
    {
    	public BasePage()
    	{
     
    	}
     
        virtual protected void Page_Load(object sender, EventArgs e)
        {
            int i = 0;
        }
    }
     
    // --- //
     
    public partial class _Default : BasePage
    {
        protected override void Page_Load(object sender, EventArgs e)
        {
            base.Page_Load(sender, e);
        }
    }

  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 : 41
    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 106
    Points
    3 106
    Par défaut
    Ainsi, le Page_Load est surchargé, chaque méthode dont nous avons besoin sur l'intégralité des pages du site y est implémentée, et sur les pages héritant de la base_page, il suffit d'appeller la surcharge du page_load...
    J'ai bien compris ?

    C'est carrément ingénieux. Peut-être que je m'enflamme pour un truc finalement simple mais je ne maîtrise pas correctement les notions de overrides, overloads et malheureusement mon responsable au taf ne travaille pas (ou peu) en objet donc le peu que j'en connaissais s'envole rapidement.

    Merci pour cette explication

  12. #12
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    C'est carrément ingénieux. Peut-être que je m'enflamme pour un truc finalement simple mais je ne maîtrise pas correctement les notions de overrides, overloads et malheureusement mon responsable au taf ne travaille pas (ou peu) en objet donc le peu que j'en connaissais s'envole rapidement.

    Merci pour cette explication
    Base de l'orienté objet :-)

    Et avec plaisir pour les explications! ;-)

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

Discussions similaires

  1. Passer une Fonction comme argument d'une fonction
    Par ch16089 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/02/2011, 17h58
  2. Réponses: 3
    Dernier message: 16/04/2009, 08h34
  3. [Langage] une fonction comme argument d'une fonction?
    Par Krishna dans le forum Langage
    Réponses: 9
    Dernier message: 15/10/2008, 20h31
  4. passage d'une fonction en parametre d'une fonction
    Par psylox dans le forum Langage
    Réponses: 5
    Dernier message: 06/10/2008, 16h40
  5. Réponses: 1
    Dernier message: 25/05/2007, 14h33

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