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 :

[2.0] Navigateur, empêcher clic page précédente


Sujet :

ASP.NET

  1. #1
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut [2.0] Navigateur, empêcher clic page précédente
    Bonjour,
    D'abord bonne année à toutes et tous.

    Concernant mon pb, peut-être que je devrais mettre un tag "JavaScript" ?
    Voilà, j'ai un formulaire de saisie. Un bouton "Valider" permet de d'enregistrer (insert) les données en base (après toutes les vérifs de saisie).
    J'utilise le contrôle MultiView disponible en aspnet 2.0.
    J'active la vue ViewResult :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MultiViewInclusion.SetActiveView(ViewResult);
    Je voudrais empêcher l'utilisateur de cliquer sur "Précédente" du navigateur, car il pourrait revenir au formulaire de saisie et cliquer à nouveau sur le bouton "Valider" (et créer ainsi plusieurs "memes" enregistrements).

    Ou peut-être qu'il existe une solution alternative.

    Merci beaucoup pour votre aide
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut Re: [Asp.Net 2.0] Navigateur, empêcher clic page précédente
    Citation Envoyé par quanou
    Je voudrais empêcher l'utilisateur de cliquer sur "Précédente" du navigateur
    Peux pas.

    Citation Envoyé par quanou
    Ou peut-être qu'il existe une solution alternative.
    Vérifier qu'un enregistrement identique n'a pas déjà été ajouté ? Si les doublons ne sont pas censés être autorisés, ça semble devoir faire partie de la validation. Et si les doublons sont possibles, ben ils sont possibles. Si un utilisateur veut envoyer 10 fois la même chose, il le fera :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  3. #3
    Membre régulier
    Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juillet 2002
    Messages : 88
    Points : 97
    Points
    97
    Par défaut
    Salut !
    Tu pourrais peut être faire un petit workflow :
    Tu retiens la dernière page visitée par l'utilisateur et tu vérifies avant de lui envoyer une nouvelle page si il a bien le droit de l'afficher...

    L'utilisateur demande les pages A puis B puis C.
    Tu retiens la dernière page visitée, c'est à dire C.
    S'il fait back, cad s'il demande B, tu lui dis que B ne peux pas être affiché après C, et tu traites l'erreur. Ou alors tu dis que B ne peux être affiché qu'après A.
    Je pense que ce n'est pas trop dur à implementer, pour peux que tu restes dans un schéma basique.

  4. #4
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Salut,
    Je viens de relire plusieurs fois ton post avant de "l'imprimer" . Merci pour ta réponse.
    Citation Envoyé par Pete
    Je pense que ce n'est pas trop dur à implementer, pour peux que tu restes dans un schéma basique.
    Le principe m'a l'air bien. Le problème est que je ne suis pas si bon que ça. Je ne vois pas comment l'appliquer techniquement, si tu pouvais me donner qq indices...C'est du JavaScript ?
    J'utilise un contrôle MultiView contenant 2 Views, une pour la saisie et une pour le résultat qui peut être OK ou KO).
    J'ai essayé de me servir des variables Viewstate mais lorsque j'active la View résultat, puis ensuite un Back, puis "Valider", la page se comporte comme un PostBack mais les valeurs des variables de Viewstate définies ne persistent pas !
    Pour info, qd la View résultat est activée, on repasse par Global.asax et l'url reste inchangée, de même que lorsque l'on fait Back. Je ne donc pas me servir de l'url pour mémoriser la page.
    Je ne suis pas sûr d'être super clair dans mes explications...

    La, je me débrouille avec une variable de session. Ca marche mais la solution ne me satisfait toujours pas car l'utilisateur peut toujours cliquer sur "Valider", même si c'est sans conséquence.

    Merci également à Maniak, ce qui m'embete c'est la vérif des doublons, vu que les ID sont auto-incrémentaux.
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

  5. #5
    Membre régulier
    Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juillet 2002
    Messages : 88
    Points : 97
    Points
    97
    Par défaut
    Tu ne peux pas empecher l'utilisateur de cliquer sur Back. Tu peux juste plus ou moins le savoir et donc traiter le cas.

    ->La solution de Maniak est bien aussi : pour les doublons, fait une comparaison de chaque champs, sauf de l'ID.

    ->Pour ma solution (qui est plus difficile que celle de Maniak), il faut que tu mémorises en Session le nom de la dernière page visitée. Et que tu compares à la page demandée. Tout se fait côté serveur, donc rien à voir avec le Java script.
    Disons que A est la page précédent le formulaire, B le formulaire et C le résultat du formulaire.
    Qd le client demande B, tu vérifies que la dernière page était A, sinon tu lui envoies une erreur.
    Tu peux peut être te placr dans le Global.asax, dans BeginRequest ou qq chose comme ça pour implémenter ce code.
    Fait abstraction, du Multiview et du contenu de tes pages, ça ne change en rien la problématique.
    Je ne peux pas trop t'aider plus, je l'ai encore jamais fait moi même . Si tu débutes vraiment, c'est possible que ça ne te paresse trop dur, dans ce cas, opte pour la solution de Maniak.

  6. #6
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Tu ne peux pas empecher l'utilisateur de cliquer sur Back. Tu peux juste plus ou moins le savoir et donc traiter le cas.
    Comment ? Il existe un évènement lié au clic "Précédent" ?

    ->La solution de Maniak est bien aussi : pour les doublons, fait une comparaison de chaque champs, sauf de l'ID.
    Elle rejoint en fait un peu la mienne sauf que je ne fais pas d'accès base. Je me sers juste d'une variable de session comme flag (que j'initialise au premier accès not ispostback de la page du formulaire, page B). La variable est alimentée lors du passage à la page C (donc au clic sur "Valider").
    ->Pour ma solution (qui est plus difficile que celle de Maniak), il faut que tu mémorises en Session le nom de la dernière page visitée. Et que tu compares à la page demandée. [...] Qd le client demande B, tu vérifies que la dernière page était A, sinon tu lui envoies une erreur.
    Le pb est qu'il faut savoir que la page B est demandée justement, le "Back" ne le permet pas côté serveur. En tout cas, je ne sais pas comment. Sauf si on clique sur "Valider". J'ai plus ou moins fait ta solution en fait.
    Je ne peux pas empêcher l'utilisateur de cliquer sur "Valider" même si je peux gérer l'erreur derrière.

    Je ne peux pas trop t'aider plus, je l'ai encore jamais fait moi même
    C'est déjà sympa de ta part de m'avoir répondu, merci. Qd on est dans le flou, rien que le fait d'échanger peut débloquer les situations.
    A+
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

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

Discussions similaires

  1. Quel langage pour simuler clic page web ?
    Par Invité dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/08/2013, 10h41
  2. indiquer au navigateur les proportions de la page
    Par Creanet dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/07/2011, 20h41
  3. [Navigateur] Aller en bas de page automatiquement ?
    Par Casp dans le forum GWT et Vaadin
    Réponses: 7
    Dernier message: 20/08/2010, 09h59
  4. Réponses: 4
    Dernier message: 30/04/2010, 18h29
  5. Réponses: 2
    Dernier message: 12/04/2010, 15h27

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