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 :

calculer la somme de deux textbox C# csharp [Débutant]


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut calculer la somme de deux textbox C# csharp
    Bonjour,

    j'ai dans un formulaire avec 2 texbox :
    1er textbox, mNombre50donnerTextBox, c'est pour les nombres de billets à 5 $
    L'utilisateur arrive sur ce textbox, et remplit combien billet veut (exemple 5 billets)
    lorsqu'il quitte le 1er textbox pour remplir le reste du formulaire, je veux automatiquement ajouter le total dans un autre textbox, mTotal50donnerTextBox, (selon exemple (5x50=250) je veux afficher 250).
    Autrement dit, il faut calculer automatiquement le prix et s'afficher tout de suite dans un autre textbox

    Voila mon code dans aspx (Front end) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:label id="billets50donner" runat="server">Nombre de billet(s) à 50 $ :</asp:label>
    <asp:textbox id="mNombre50donnerTextBox" runat="server" MaxLength="3" Width="35px"></asp:textbox>
    <asp:textbox id="mTotal50donnerTextBox" runat="server" MaxLength="6" ReadOnly="True"></asp:textbox
    dans mon cs (Codebehind)
    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
    private void SetPageState()
      {
    	if (mNombre50donnerTextBox != null)
                 {
                     int cNombre50donner;
                     cNombre50donner = int.Parse(mNombre50donnerTextBox.Text);
                     int nombreMultiplier;
                     nombreMultiplier = 50;
                     int calculerBillet;
                     calculerBillet = cNombre50donner * nombreMultiplier;
                     mTotal50donnerTextBox.Show(calculerBillet.ToString());
     
                 }
                 else
                 {
     
                 }
     
     
    	mFormulairePageState.mNombre50donner = mNombre50donnerTextBox.Text;
            mFormulairePageState.mTotal50donner = mTotal50donnerTextBox.Text;
     
        SavePageState();
     }
     
    // plus loin
     
    		public struct FormulairePageState
    		{		
     
     
    			public int SelectedIndex;
     
                		public string mNombre50donner;
                		public string mTotal50donner;
    		}
    Comment je peux définir mon "Show" ? Que je dois changer pour que mon code marche ?

  2. #2
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Bonsoir,

    Je te conseille d'utiliser l’évènement TextChanged de ta TextBox mNombre50donnerTextBox afin d'effectuer ton calcul et reporter le total dans ta 2ème TextBox.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut
    Citation Envoyé par Jean-Michel Ormes Voir le message
    Bonsoir,

    Je te conseille d'utiliser l’évènement TextChanged[/URL] de ta TextBox mNombre50donnerTextBox afin d'effectuer ton calcul et reporter le total dans ta 2ème TextBox.
    Salut Jean-Michel,

    ce que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div class="conteneur_lbl">
            <div class="lbl">
              <asp:label id="billets50donner" runat="server">Nombre de billet(s) à donner à 50 $ :</asp:label>
            </div>
            <div class="nmbr_txtbox">
               <asp:textbox id="mNombre50donnerTextBox"  name="mNombre50donnerTextBox" TextChanged="mTotal50donnerTextBox_TextChanged"  runat="server" MaxLength="3" Width="35px"></asp:textbox>
            </div>
    		<div class="dollars_txtbx">
               somme partielle : <asp:textbox id="mTotal50donnerTextBox"  name="mTotal50donnerTextBox"
                    runat="server" MaxLength="6" ReadOnly="True"></asp:textbox>,00$ 
            </div>
          </div>
    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void mTotal50donnerTextBox_TextChanged(object sender, TextChangedEventArgs args)  // ligne 138
            {
                mTotal50donnerTextBox.Text = mNombre50donnerTextBox.Text;
            }
    mais j'ai un message d'erreur :
    message erreur : CS0246: Le type ou le nom d'espace de noms 'TextChangedEventArgs' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
    Fichier source: ........formulaire.aspx.cs Ligne: 138

    Alors il manque quelques choses ? Quelle directive "using" je dois utiliser ?

  4. #4
    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 : 39
    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
    Ce que tu demandes ne se fait pas en ASP.Net, il faut le faire en Javascript dans ta page!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Ce que tu demandes ne se fait pas en ASP.Net, il faut le faire en Javascript dans ta page!
    mais si le JavaScript était désactivé par l'utilisateur ?

  6. #6
    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 : 39
    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
    Citation Envoyé par aspkiddy Voir le message
    mais si le JavaScript était désactivé par l'utilisateur ?
    Je suis au grand regret de te dire que ASP.Net, sans que tu le saches, bourre ta page de Javascript

    De toute facon, celui qui bloque les Javascript de nos jour, ne peut même pas se servir de Google

    Autant à une époque le Javascript c'était kikoulol avec une trainée sur la souris, des popups, des trucs qui clignotent et une barre d'état qui défilent, autant maintenant c'est indispensable. Quasi la moindre fonctionnalité, c'est de l'AJAX

  7. #7
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    +1

    Et c'est tellement "bien fait" que maintenant certains développeurs ignorent justement qu'ils utilisent du JavaScript, pourtant, ce qui se fait côté client sur un site web, donc sans rafraîchissement de la page, c'est à 90% du JavaScript (je laisse le reste pour Silverlight ou les applets Java...).

    Personnellement, développer du JavaScript c'est ma hantise, mais avec VS2010 et le framework 4, il y a pleins d'extendeurs de contrôles Javascript/AJAX qui font des fonctionnalités très intéressantes (genre Ajax Control Toolkit).

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Par défaut
    Salut, tu peux ajouter un petit script jquery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script type="text/javascript">        
            $(document).ready(function () {
                $("#<%=mNombre50donnerTextBox.ClientID %>").keyup(function () {
                    $("#<%=mTotal50donnerTextBox.ClientID %>").attr("value", $("#<%=mNombre50donnerTextBox.ClientID %>").attr("value") * 50);
                });
            });  
    </script>

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut les valeurs....
    Bonjour ilya-bhn, Jean-Michel Ormes, Er3van et Nathanael Marchand,

    J'ai un p'tit problème...

    Avec le code Ajax, les valeurs....
    Avec ce code je n'arrive pas récupérer la valeur du textBox dans un autre écran (je n'arrive pas afficher les valeurs dans un label "mPriceLabel" dans l'écran suivant)...

    Dans 1er écran, j'ai un textBox, mNombre50TextBox, l'utilisateur remplit le nombre de ticket qu'il veut dans cette textBox.On affiche (en calculant avec jQuery) la somme dans un autre textBox, mTotal50TextBox, et dans un autre textBox,mMontantTextBox, on met la totale du facture...

    dans mon aspx :

    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
    <script type="text/javascript">
            $(document).ready(function () {
     
                $("#<%=mNombre50TextBox.ClientID %>").keyup(function () {
                    $("#<%=mTotal50TextBox.ClientID %>").attr("value", $("#<%=mNombre50TextBox.ClientID %>").attr("value") * 50);
     
                    $("#<%=mMontantTextBox.ClientID %>").attr("value", $("#<%=mTotal50TextBox.ClientID %>").attr("value"));
                });
    			 $("#<%=mNombre100donnerTextBox.ClientID %>").keyup(function () {
                    $("#<%=mTotal100donnerTextBox.ClientID %>").attr("value", $("#<%=mNombre100donnerTextBox.ClientID %>").attr("value") * 100);
     
                    $("#<%=mMontantTextBox.ClientID %>").attr("value", parseInt($("#<%=mTotal50TextBox.ClientID %>").attr("value")) +  parseInt($("#<%=mTotal100donnerTextBox.ClientID %>").attr("value")));
     
     
     
                });
     
    		                               });  
        </script>
     
     
      <div class="conteneur_lbl">
                    <div class="lbl">
                        <asp:Label ID="billets50" runat="server">Nombre de billet(s) à 50 $ :</asp:Label>
                    </div>
                    <div class="nmbr_txtbox">
                        <asp:TextBox ID="mNombre50TextBox" Text="0" runat="server" MaxLength="3" Width="35px"></asp:TextBox>
                    </div>
                    <div class="dollars_txtbx">
                        somme partielle :
                        <asp:TextBox ID="mTotal50TextBox" runat="server" Text="0" MaxLength="6" ReadOnly="True"></asp:TextBox><span
                            class="pour_cent_dollars">,00$ </span>
                    </div>
                </div>
    <div class="conteneur_lbl">
                    <div class="lbl">
                        <asp:Label ID="billets100donner" runat="server">Nombre de billet(s) à donner à 100 $ :</asp:Label>
                    </div>
                    <div class="nmbr_txtbox">
                        <asp:TextBox ID="mNombre100donnerTextBox" Text="0" runat="server" MaxLength="3" Width="35px"></asp:TextBox>
                    </div>
                    <div class="dollars_txtbx">
                        somme partielle :
                        <asp:TextBox ID="mTotal100donnerTextBox" Text="0" runat="server" MaxLength="6" ReadOnly="True"></asp:TextBox><span
                            class="pour_cent_dollars">,00$ </span>
                    </div>
                </div>
     
     
     <div class="conteneur_lbl">
                    <div class="lbl">
                        <asp:Label ID="OfferLabel" runat="server">Montant total :</asp:Label>
                    </div>
                    <div class="txtbx">
                        <asp:TextBox ID="mMontantTextBox" runat="server" ReadOnly="True"></asp:TextBox>
                        ,00$
                        </div>
                </div>
    Ensuite (lorsque l'utilisateur clique sur un bouton), on sauvegarde les informations pour l'écran suivant :
    DANS MON CS :
    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
    private void SetPageState()
    		{
     
     
    mFormulairePageState.MontantContribution = mMontantTextBox.Text; 
     
    //...
     
    			SavePageState();
    		}
     
    			public struct FormulairePageState
    		{		
     
     
    			public int SelectedIndex;
    			//....
     
    			public string MontantContribution;
     
    						//....
     
    		}
    Dans 2e écran, je vais afficher la somme dans un "Label", mPriceLabel, :


    Voici le code dans cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    		private void LoadLabels()
    		{
    			object FormulairePageState = Session["FormulairePage"];
     
    			// changement montant en ajoutant deux 00
    			cost = s.MontantContribution;
                double doubleVal = 0.0;
                if (Double.TryParse(cost, out doubleVal))
                {
                    newVal = (int)doubleVal * 100;
                    mPriceLabel.Text = newVal.ToString();   // on affiche 1000 J'ai besoin pour carte crédit
     
     
                }
    Mais dans mon "label" il n'y a rien, il est vide. Comemnt je peux afficher la somme dans ce 2e écran ?

    J'ai fait un test dans mon 1er écran : j'ai enlevé [ReadOnly="True"] dans mon textBox de "mMontantTextBox"... Ensuite, j'ai tapé directement les chiffres dans ce textBox, mMontantTextBox. Dans ce cas-là, ces valeurs sont affichées dans le label au 2e écran...

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut ReadOnly="True"
    Bonjour,

    Mon problème vient de l'attribut ReadOnly="True" de mon textBox...

    Lorsque je le supprime, tout va bien, je suis capable de récupérer les valeurs de ces textBox.

    Alors, vous pouvez me proposer quelques choses à la place de ReadOnly="True" qui fait la même chose

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut
    Du coup, j'ai transformé mon TEXT box à un Label puisque l'utilisateur ne peut pas changer la valeur d'un label,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Label ID="mTotal50TextBox" runat="server"></asp:Label>

    mais cette fois-ci mon calcule ne marche plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
            $(document).ready(function () {
     
                $("#<%=mNombre50TextBox.ClientID %>").keyup(function () {
                    $("#<%=mTotal50TextBox.ClientID %>").attr("value", $("#<%=mNombre50TextBox.ClientID %>").attr("value") * 50);
     
     
                });
     
            });  
        </script>

  12. #12
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Par défaut
    Bonjour, essaye plutôt de faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $("#<%= mTotal50TextBox.ClientID %>").innerHTML = $("#<%=mNombre50TextBox.ClientID %>").attr("value") * 50;

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut
    Bonjour ilya-bhn,

    Merci... Est ce qu'il y a un document sur cette histoire pourque je l'apprends... au lieu de te demander tout le temps ?

    en fait que je dois faire avec parseInt ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $("#<%=mNombre100TextBox.ClientID %>").keyup(function () {
                    $("#<%=mTotal100TextBox.ClientID %>").innerHTML = $("#<%=mNombre100TextBox.ClientID %>").attr("value") * 100);
     
                    $("#<%=mNombre_total_billetsTextBox.ClientID %>").attr("value", parseInt($("#<%=mNombre50TextBox.ClientID %>").attr("value")) + parseInt($("#<%=mNombre100TextBox.ClientID %>").attr("value")));
                    $("#<%=mTota_billetsTextBox.ClientID %>").attr("value", parseInt($("#<%=mTotal50TextBox.ClientID %>").attr("value")) + parseInt($("#<%=mTotal100TextBox.ClientID %>").attr("value")));
     
                    $("#<%=mMontantTextBox.ClientID %>").attr("value", parseInt($("#<%=mTotal50TextBox.ClientID %>").attr("value")) + parseInt($("#<%=mTotal100TextBox.ClientID %>").attr("value")));
     
     
                });
    Bonne journée

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

Discussions similaires

  1. [XL-2013] Calcule la somme entre deux dates en condition sur 6 mois
    Par undo74 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/07/2014, 16h30
  2. Réponses: 3
    Dernier message: 23/12/2013, 22h19
  3. Calculer 2 sommes affichés sur textbox ?
    Par enretard dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/04/2013, 11h40
  4. calculer la somme de deux variables
    Par Invité dans le forum iReport
    Réponses: 12
    Dernier message: 03/08/2007, 17h25

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