Somme des éléments d'une colonne dans une gridview [Résolu]

Messages postés
11
Date d'inscription
mardi 26 mai 2009
Dernière intervention
19 juin 2009
- 11 juin 2009 à 17:18 - Dernière réponse :
Messages postés
11
Date d'inscription
mardi 26 mai 2009
Dernière intervention
19 juin 2009
- 17 juin 2009 à 10:22
Bonjour. Dans le cadre de mon stage je dois réaliser une page web. Le début était assez simple, mais je me retrouve coincé au niveau de ma gridview.
En, effet, je dispose d'une gridview composée des colonnes suivantes :
Rubrique, Montant HT, Montant TVA, Montant TTC, Commentaire(s).
Il faut que je fasse un total des montants TTC dans une TextBox qui est à part de la gridview. Enfin je sais qu'il faut que je fasse ça dans le RowDataBound, mais je ne vois pas du tout comment faire. Je signale bien que je ne veux pas avoir ce résultat dans le footer, mais bien dans une textbox à part.

protected void gvNdFAttente_RowDataBound(object sender, GridViewRowEventArgs e)
    {
           // code pour faire la somme des montants TTC
    }

Merci pour votre aide
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
11
Date d'inscription
mardi 26 mai 2009
Dernière intervention
19 juin 2009
17 juin 2009 à 10:22
3
Merci
Alors voilà j'ai enfin réussi. Je met mon code si ça peut aider quelqu'un par la suite. Mais y a plein de façons différentes de le faire.
 
protected void gvNdFAttente_RowDataBound(object sender, GridViewRowEventArgs e)
    {
if (e.Row.RowType == DataControlRowType.DataRow)
        {
             var txtTTC = e.Row.Cells[3].Controls[0] as TextBox;
              // Calcul du total TTC
            double somme=0;
            if(Double.TryParse(txtTTC.Text, out somme))
                {
                    _total += somme;
                }
               TextBoxTotal.Text = _total.ToString();
        }
}
Je n'ai pas mis tout mon code car il y a d'autres éléments dans mon rowdatabound qui serve à autre chose. Il y a donc ici seulement le code pour faire le total.

Merci celdu7 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de celdu7
Messages postés
440
Date d'inscription
samedi 24 mai 2003
Dernière intervention
23 janvier 2011
11 juin 2009 à 20:13
0
Merci
salut,

fait une boucle sur ton gridview puis tu récupére ton élément :
TonTextBox.text = GridView1.Rows(i).Cells(1).Text;
Commenter la réponse de scottmat
Messages postés
11
Date d'inscription
mardi 26 mai 2009
Dernière intervention
19 juin 2009
11 juin 2009 à 20:15
0
Merci
Ok merci je vais essayer ça !
Commenter la réponse de celdu7
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
11 juin 2009 à 23:32
0
Merci
Salut

Regardes ici

http://aspalliance.com/782


<%# GetUnitPrice(decimal.Parse(Eval("UnitPrice").ToString())).ToString("N2") %>

<FooterTemplate>
<%# GetTotal().ToString("N2") %>
</FooterTemplate>



decimal TotalUnitPrice;
decimal GetUnitPrice(decimal Price)
{
TotalUnitPrice += Price;
return Price;
}
decimal GetTotal()
{
return TotalUnitPrice;
}
Commenter la réponse de nhervagault
Messages postés
11
Date d'inscription
mardi 26 mai 2009
Dernière intervention
19 juin 2009
12 juin 2009 à 08:03
0
Merci
Oui j'avais vu ce code déjà, mais ils font ça dans le footer. Mais je peux quand même essayer de l'adapter.
Merci.
Commenter la réponse de celdu7
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
12 juin 2009 à 22:50
0
Merci
Oups j'ai pas fais gaffe que c''etait  sur la meme ligne.

Solution 1
dans les aspx (je ne suis pas trop sur de la syntaxe)
<%#=Eval("HT")+Eval("TVA")%>

 Soltution 2
dans le aspx.cs (syntaxe approximative)
sur l'evenement onitem_databound
TextBox t1 = e.findcontrol("Textbox1") as TextBox;
t1 = e.dataitem["HT"] + e.dataite["TVA"]

Solution 3
dans le fichie aspx.cs
Ajout d'une propriété calculé à ta source de données
* Classe List<T>
dans T tu as un TTC {get HT+TVA;}
* Dans une datable
ajout d'une datacolonneexpression

Solution 4
* dans la requete SQL

Solutions 5
* dans la requete LINQ ou EF (si tu utilises ces technos)

Donc plusieurs solutions a toi de choisir la plus adaptée ou celle ou tu te sens le plus a l'aise
Commenter la réponse de nhervagault
Messages postés
11
Date d'inscription
mardi 26 mai 2009
Dernière intervention
19 juin 2009
13 juin 2009 à 12:05
0
Merci
Ok, merci beaucoup pour ces solutions.
Je vous tiendrais au courant quand j'aurais réussi
Commenter la réponse de celdu7

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.