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 :

page unload ne fonctionne pas


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut page unload ne fonctionne pas
    Bonjour,
    Pour quitter une page et faire la redirection vers une autre j'ai inscrit le code UnLoad mais je ne sais pas pourquoi il ne marche pas. En fait en faisant le retour en arrière avec le fleche de navigateur je me trouve que mon fieldset est toujours visible. Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     protected void Page_UnLoad(object sender, EventArgs e)
            {
                showplace.Visible = false;
            }
    et mon code asp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <fieldset id="showplace" runat="server" >
    Est ce que ce que vous avez une idée
    Merci.

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut
    Citation Envoyé par Naceur84 Voir le message
    En fait en faisant le retour en arrière avec le fleche de navigateur je me trouve que mon fieldset est toujours visible
    C'est normal car ton navigateur se sert de son cache local. Tu retombes sur la page telle que tu l'as quittée.
    Cet méthode n'est pas appelée par le client mais par le serveur.

    Que souhaites-tu faire exactement?
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut
    J'ai essayé de rajouté quelques modifs sur mon code voici le lien qui montre bien ce que je voudrais faire http://www.developpez.net/forums/d11...re-navigateur/

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Le retour sur la navigation se passe chez le client. Le navigateur utilise le cache. Si tu veux forcer la réinitialisation des champs il te faudra regarder du javascript. Une autre possibilité te permet de faire expirer la page: http://www.developpez.net/forums/d99...t/#post5558897

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut Page Web expiré IE
    Merci beaucoup c'est ca que je cherche, ca marche pour firefox( il demande le renvoi de la page) mais pour internet explorer il m'affiche que la page a expiré il faut actualiser la page pour qu'elle se recharge de nouveau
    La page Web a expiré

    Cause la plus probable :
    La copie locale de cette page Web est obsolète ; le site Web requiert que vous la téléchargiez à nouveau.
    Y a t-il une solution pour remédier à ce problème

    Si non quand tu disais
    il te faudra regarder du javascript
    Est ce que t'as un exemple comment faire

    Merci.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut
    J'ai rajouté ce code javascript au moment du click sur le boutton1 qui me fait la redirection vers une autre page. Sachant qu'il y a un traitement c# que je ne vais pas le citer( ce qui m’intéresse c'est plutot le javascript pour vider les champs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    protected void Button1_Click(object sender, EventArgs e)
    {
    // traitement c#
    string javaScript = "<script type='text/javascript'>"
                            + "function vider_champ()"
                            + "{"
                            + "<%# txtCode %>.Text =''; "
                            + "<%# txtNum %>.Text =''; "
                            + "}"
                            + "</script>\n";
                        ClientScript.RegisterStartupScript(this.GetType(), "key", javaScript);
     
                        Response.Redirect("page2.aspx")
    }
    En essayant avec ce code ca ne fonctionnait pas est ce que j'ai une erreur quelque part
    PS:sachant que txtCode est l'identifiant du textBox que je cherche à vider

  7. #7
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Attention! Il faut bien comprendre le cycle de vie d'une page ASPx: lors de la méthode Unload, la page a déjà été envoyé au client et par conséquent, agir sur les composants ne sert strictement à rien! Cette méthode est là pour faire du nettoyage de ressources.

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut
    lors de la méthode Unload, la page a déjà été envoyé au client
    Merci j'ai bien compris mais j'ai changé mon code, il n'est plus dans cette méthode c'est plutôt dans le click du boutton1 est ce qu'il y a une chose qui l’empêche de fonctionner

  9. #9
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Naceur84 Voir le message
    En essayant avec ce code ca ne fonctionnait pas est ce que j'ai une erreur quelque part
    Cela ne sert à rien d'enregistrer un script et de rediriger immédiatement vers une autre page. Si tu veux que du javascript vide les champs, il faut le faire sur le chargement de la page.

    Sinon, tu peux essayer d'ajouter l'attribut "autocomplete" sur la valeur "off": https://developer.mozilla.org/en/How...Autocompletion
    "Winter is coming" (ma nouvelle page d'accueil)

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut
    Quand tu disais
    Cela ne sert à rien d'enregistrer un script et de rediriger immédiatement vers une autre page
    maintenant ca me semble plus clair mais comme j'ai déjà dans ma page 2 boutons:
    1) le premier sert à vérifier la valeur de deux textbox( selon la valeur de ces 2 derniers et en cliquant sur le bouton j'affiche un dropdownlist qui sera rempli)
    2) Le 2 ème boutton sert à valider selon la sélection le choix de l'internaute

    Ce qui m'embette moi c'est que je voudrais bien vider les 2 textbox et le contenu du dropdownlist si l'internaute fait un retour en arrière avec la fleche du navigateur

    Concernant
    Si tu veux que du javascript vide les champs, il faut le faire sur le chargement de la page.
    je ne peux pas le faire car déja le premier bouton fait un rechargement de la page

    PS: Dites moi si je me trompe dans ce que je disais ou bien si j'ai une mauvaise conception.
    Merci

  11. #11
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Naceur84 Voir le message
    je ne peux pas le faire car déja le premier bouton fait un rechargement de la page
    Bah je comprend pas pourquoi tu pourrais pas le faire. Je comprend pas trop non plus le cycle de ta page...
    1. La page se charge la première fois;
    2. Un javascript vide les champs;
    3. L'utilisateur rempli les champs;
    4. Il valide;
    5. Il change de page;
    6. Il fait un back;
    7. Avec un peu de chance le javascript vide les champs;
    8. C'est fini;
    Non?
    "Winter is coming" (ma nouvelle page d'accueil)

  12. #12
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 230
    Par défaut
    Le cycle est le suivant
    1.La page se charge la première fois;
    2. Je met dans le code behind de la page load if(!ispostback) je vide les champs
    3. L'utilisateur rempli les champs;
    4. Il valide la première fois pour qu'un dropdownlist apparait;
    5. Il sélectionne une valeur
    6. Il valide
    7. Il sera redirigé vers une autre page
    8. Je fait un back je retrouve mes champs bien remplis( et je veux qu'ils soient vides)

  13. #13
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Ben là, je vois pas trop de solution à part l'expiration comme indiqué précédemment. Après y'a peut-être un souci de conception/ergonomie.
    "Winter is coming" (ma nouvelle page d'accueil)

  14. #14
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Et pourquoi tu ne ferais pas une action client sur ton bouton, évidemment JavaScript qui réinitialise te champs et qui retourne vers le serveur après ou qui redirige directement vers la page ?

    En version générique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <a onclick="workRedirect();" Text="Mon Lien vers ma nouvelle page" />
    <script type="javaScript">
    function workRedirect()
    {
    // recherche de tous les éléments à rechercher
        MesTextBox.Value = "";
    }
    </script>

Discussions similaires

  1. Redirection de page qui ne fonctionne pas.
    Par JeanJean75 dans le forum Langage
    Réponses: 4
    Dernier message: 28/01/2010, 14h54
  2. Page 404 ne fonctionne pas !
    Par mikael2235 dans le forum Apache
    Réponses: 11
    Dernier message: 16/12/2009, 12h51
  3. Mise en page galerie ne fonctionne pas sous IE
    Par charlyy dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 27/11/2009, 18h47
  4. Ma page ASP ne fonctionne pas
    Par vanou dans le forum ASP
    Réponses: 9
    Dernier message: 24/08/2006, 15h24

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