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

C# Discussion :

Confirmer un Submit Seulement quand cas particulier


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 60
    Par défaut Confirmer un Submit Seulement quand cas particulier
    Bonjour,


    Alors je realise une page ou le client doit entrée 2 valeurs (Valeur indiquée, Valeur mesurée)
    et je souhaite faire un Pop Up de confirmation OK/ANNULER si et seulement si les 2 valeurs entre elles sont hors normes (Par example: Tolerance de 5 de difference, Valeur mes = 5 et Valeur indiq = 11, c'est un hors norme)

    j'ai actuellement ceci

    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
     
                           protected void BTN_envoiecalib_Click(object sender, EventArgs e)
            {
                GC.Formok(valeurs); //Vérifie si les Champs sont bien remplis, sinon met en surbrillance les champs oubliés
     
                bool formok;
                formok = GC.Formok(valeurs); //return True si les Champs sont bien remplis
     
                if (formok)
                {
                    bool BoolHN = true;
                    float V1 = Convert.ToSingle(TXTB_Val_indiq.Text.Replace('.', ','));
                    float V2 = Convert.ToSingle(TXTB_Val_mes.Text.Replace('.', ','));
                    float V3 = Convert.ToSingle(LBL_Tol_Min.Text); //Valeur de la tolerance
     
                    if (LBL_Unit_Max.Text == "%") //ceci inclus LBL_Unit_Mini aussi || Effectue un calcul par rapport au %
                    {
                        float result = ((V1 - V2) / ((V1 + V2) / 2) * 100);
     
                        if (Math.Abs(result) <= V3)
                        {
                            BoolHN = false;
                        }
     
                    }
                    else //Effectue un calcul par rapport à une tolérance d'un entier
                    {
                        float result = V1 - V2;
                        if (Math.Abs(result) <= V3)
                        {
                            BoolHN = false;
                        }
                    }
     
                    if (BoolHN) //Si les valeurs submit sont Hors normes.
                    {
                        ClientScript.RegisterStartupScript(typeof(Page), "exampleScript", "if(confirm('Confirmez vous que la valeur à envoyer est belle et bien Hors Normes ?'))", true);
                    }
     
                }
            }


    Le pop up apparait bien grace a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       if (BoolHN) //Si les valeurs submit sont Hors normes.
                    {
                        ClientScript.RegisterStartupScript(typeof(Page), "exampleScript", "if(confirm('Confirmez vous que la valeur à envoyer est belle et bien Hors Normes ?'))", true);
                    }
    Mais le probleme, c'est que le code n'attend pas la réponse du client et continue a compiler
    Ce que je souhaite faire, c'est que la compilation se mette en pause, attende la reponse du client et SI REPONSE CLIENT == OK => je passe a la suite SINON => j'annule le Submit.

    Comment je peux faire ca ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Par défaut
    Bonjour,

    Il faut que tu mettes ton "Confirm" côté client sur le OnClick de ton bouton Submit avant d'envoyer la réponse au serveur.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:ImageButton ID="btnDelete" runat="server" ImageUrl="~/Images/Actions/delete.png" ToolTip="Suppression"
                                 OnClientClick="return confirm('Etes-vous sûr(e) de vouloir supprimer ?');" Width="25px"  OnClick="btnDelete_Click" />
    Seb

  3. #3
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 60
    Par défaut
    Le probleme c'est que je doit Submit, PUIS verifier si une valeur est hors normes, PUIS envoyer le message de confirm SI ET SEULEMENT SI la valeur est hors normes.


    Je ne peux pas faire afficher un message de confirmation "souhaitez vous envoyer ces valeurs malgrés qu'elles soient hors normes" alors que le calcul n'as pas encore etais fait.

    Mais je vais essayer un truc, c'est de creer un bouton factice caché et faire générer le Onclick du cote serveur.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Par défaut
    Bonjour,

    Pourquoi dois-tu faire le calcul de tolérance côté Serveur ?
    Tu as des valeurs en base, dans un fichier de conf ?

    Vu le code que tu as donné, tout est dans ta page, tu peux donc faire tes calculs en JS côté Client et afficher la question.


    Seb

  5. #5
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2013
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 60
    Par défaut
    Je n'ai fait que tres peu de JS,
    et je me retrouve bloqué à ce niveau la.


    Ce que je souhaite exactement c'est:



    -J'appuie sur le submit
    -un Calcul se produit
    -Un boolean detecte si le calcul est hors normes
    -Si il est Hors normes, envoyer message de confirmation savoir si on force l'ajout dans la base de donnée // Sinon on annule le reste du submit.

    Le probleme c'est que je peux pas utilise le ONCLICK car le message de confirmation ne doit pas se faire lors du submit, mais apres le click et avant l'envoie dans le base de données.


    Apres si il y a un moyen en JS de: recuperer les champs de données de Textboxs, comparé entre elle les valeurs et attribué un evenement onclick en fonction de la valeur retournée, je suis preneur mais je sais pas comment m'y prendre.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Par défaut
    Bonjour,

    Dit au fait, on parle bien de dev Web ASP.NET ? Demande à déplacer ton sujet, pour ne pas se mélanger les pinceaux.

    Tu reprends mon exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button ID="btnDelete" runat="server" Text="Valider" OnClick="btnDelete_Click" OnClientClick="return confirm('Etes-vous sûr(e) de vouloir supprimer ?');" />
    Et tu remplaces le "confirm" par un fonction JS à toi et avec un de JQuery tu retranscris ton code VB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button ID="btnDelete" runat="server" Text="Valider" OnClick="btnDelete_Click" OnClientClick="return ValeursHorsNorme($('#TXTB_Val_indiq').text, $('#TXTB_Val_mes).text);" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function ValeursHorsNorme(v1, v2) {
       var min = $('#LBL_Tol_Min').text;
       var max = $('#LBL_Unit_Max').text;
       var horsNorme = true;
       var retour = false;
     
    ....
     
       if (horsNorme) { retour = confirm('Etes-vous sûr(e) de vouloir supprimer ?'); }
     
    return retour ;
    }

    Ça donne une petite idée de la chose.


    Seb

Discussions similaires

  1. Problème de confirmation de formulaire seulement sur IE
    Par navis84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/04/2006, 09h45
  2. Réponses: 27
    Dernier message: 12/01/2006, 11h04
  3. cas particulier agaçant
    Par devdébuto dans le forum C
    Réponses: 17
    Dernier message: 13/12/2005, 23h45
  4. Enregistrement courant après refresh [cas particulier]
    Par say dans le forum Bases de données
    Réponses: 8
    Dernier message: 02/08/2005, 15h59

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