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] Cohérence du formulaire si page précédente


Sujet :

ASP.NET

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Points : 357
    Points
    357
    Par défaut [2.0] Cohérence du formulaire si page précédente
    Bonjour,

    Je cherche un moyen de faire une sorte de refresh si l'utilisateur fait page précédente.

    Par exemple, sur une fiche, on annule la commande par un bouton ad-hoc.

    La commande change d'état et n'est plus éditable.

    Si on revient en arrière, on retrouve le bouton Editer... Qui devrait être caché maintenant.

    Ca pose des problèmes de cohérence et de sécurité...

    How can I do ?...

  2. #2
    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

    Un moyen parmis tant d'autre je suppose:
    Ta fiche doit bien contenir des champs obligatoires, tu gère la propriété 'enabled' de ton bouton Editer à l'évènement de changement de text d'un de ces champs, du coup au Load de la page, le bouton n'est jamais utilisable.

    [Edit]Le bouton "page précédente" est en javascript, je doute de l'utilité de ce que j'ai écrit au dessus[/Edit]

    A bientôt

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Points : 357
    Points
    357
    Par défaut
    En fait, je fais quelques controles dans l'événement dataBound du formView :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
       Protected Sub fvCmde_DataBound( _
                ByVal sender As Object, _
                ByVal e As System.EventArgs) _
            Handles fvCmde.DataBound
    
            Dim canImprim, canValidSrv, canValid1, canValid2, canEdit, canFact, canAnnul, canSolder As Boolean
    
            Dim rowView As DataRowView = CType(fvCmde.DataItem, DataRowView)
    
            ' Paramétrage de l'affichage des boutons Modif, Annul, Edition, ...
            If rowView("ETAT_CMD") = 1 Then
                canValidSrv = (AchatUsr.NiveauService(rowView("SRV_CMD")) > 0)
            Else
                canValidSrv = False
            End If
    
            canValid1 = False
            If rowView("ETAT_CMD") = 2 Then
                If rowView("TOTAL_CMD").ToString <> "" Then
                    If rowView("TOTAL_CMD") >= CType(ConfigurationManager.AppSettings("Plafond1"), Double) Then
                        canValid1 = User.IsInRole("AchatsValid1")
                    End If
                End If
            End If
    
            canValid2 = False
            If rowView("ETAT_CMD") = 3 Then
                If rowView("TOTAL_CMD").ToString <> "" Then
                    If rowView("TOTAL_CMD") >= CType(ConfigurationManager.AppSettings("Plafond2"), Double) Then
                        canValid1 = User.IsInRole("AchatsValid2")
                    End If
                End If
            End If
    
            canImprim = False
            Select Case CType(rowView("ETAT_CMD"), Integer)
                Case 2
                    If rowView("TOTAL_CMD").ToString <> "" Then
                        canImprim = rowView("TOTAL_CMD") < CType(ConfigurationManager.AppSettings("Plafond1"), Double)
                    End If
                Case 3
                    If rowView("TOTAL_CMD").ToString <> "" Then
                        canImprim = rowView("TOTAL_CMD") < CType(ConfigurationManager.AppSettings("Plafond2"), Double)
                    Else
                        canImprim = True
                    End If
                Case 4 'Validé 2
                    canImprim = True
                Case 5
                    canImprim = True
                Case 6
                    canImprim = True
            End Select
    
            If rowView("TYPE_CMD") = 1 Then
                canEdit = (rowView("ETAT_CMD") = 1)
            Else
                canEdit = (rowView("ETAT_CMD") >= 1 And rowView("ETAT_CMD") <= 5)
            End If
            canFact = (CType(rowView("ETAT_CMD"), Int16) = 5) And (rowView("TYPE_CMD").ToString <> "3")
            canSolder = (CType(rowView("ETAT_CMD"), Int16) = 5) And (CType(rowView("NBF"), Integer) > 0)
            canAnnul = (CType(rowView("ETAT_CMD"), Int16) < 6) And (CType(rowView("NBF"), Integer) < 0)
            PanelFact.Visible = (CType(rowView("ETAT_CMD"), Int16) = 5) Or (CType(rowView("ETAT_CMD"), Int16) = 6)
    
    ...
                        Case FormViewMode.ReadOnly
                            'Valid
                            fvCmde.FindControl("imgBtnValid").Visible = canValidSrv Or canValid1 Or canValid2
                            fvCmde.FindControl("lnkBtnValid").Visible = canValidSrv Or canValid1 Or canValid2
                            'Edit
                            fvCmde.FindControl("imgBtnImprim").Visible = canImprim
                            fvCmde.FindControl("lnkBtnImprim").Visible = canImprim
                            'Modif
                            fvCmde.FindControl("imgBtnEdit").Visible = canEdit
                            fvCmde.FindControl("lnkBtnEdit").Visible = canEdit
                            'Fact
                            fvCmde.FindControl("imgBtnFact").Visible = canFact
                            fvCmde.FindControl("lnkBtnFact").Visible = canFact
                            'solder
                            fvCmde.FindControl("imgBtnSold").Visible = canSolder
                            fvCmde.FindControl("lnkBtnSold").Visible = canSolder
                            'annul
                            fvCmde.FindControl("imgBtnAnnul").Visible = canAnnul
                            fvCmde.FindControl("lnkBtnAnnul").Visible = canAnnul
    Il y a peut être une option quelque part au niveau de la webForm pour frcer un refresh ou quelque chose comme ça mais pas vu...

  4. #4
    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
    Salut

    Tu peux faire tous les controles que tu veux , le click sur "page précédente" du navigateur ne déclenche aucun appel au serveur. A moins d'interférer avec le navigateur client, je ne vois pas, et si tu regardes, des gros sites d'achat en ligne ne gèrent pas le click page précédente (retour à la commande apres annulation ou autre) . Une solution alternative est d'afficher ta page dans un popup, avec tous les inconvénients que ça comporte .

    Désolé de pas pouvoir t'aider plus .

    A bientôt

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Points : 357
    Points
    357
    Par défaut
    C'est franchement pas malin !...

    C'est vrai que j'ai déjà eu cette impression ailleurs que sur mon appli !...

    Le tout va être de penser un peu plus loin les controles en validation au cas où un utilisateur vicieux aurait joué avec son navigateur !... pfff



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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/01/2011, 13h22
  2. Formulaire de connexion et redirection sur la page précédente
    Par hackiles dans le forum Ruby on Rails
    Réponses: 6
    Dernier message: 13/06/2008, 15h17
  3. Formulaire et retour page précédente
    Par namstou3 dans le forum Langage
    Réponses: 1
    Dernier message: 14/09/2007, 15h14
  4. [HTML] Formulaire page précédente
    Par bourvil dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/01/2007, 15h53
  5. Réinitialiser formulaire après retour page précédente
    Par chivita dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 18/05/2006, 18h46

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