Somme des éléments d'une colonne dans une gridview

Résolu
celdu7 Messages postés 11 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 19 juin 2009 - 11 juin 2009 à 17:18
celdu7 Messages postés 11 Date d'inscription mardi 26 mai 2009 Statut Membre 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
A voir également:

7 réponses

celdu7 Messages postés 11 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 19 juin 2009
17 juin 2009 à 10:22
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.
3
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
11 juin 2009 à 20:13
salut,

fait une boucle sur ton gridview puis tu récupére ton élément :
TonTextBox.text = GridView1.Rows(i).Cells(1).Text;
0
celdu7 Messages postés 11 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 19 juin 2009
11 juin 2009 à 20:15
Ok merci je vais essayer ça !
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 36
11 juin 2009 à 23:32
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;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
celdu7 Messages postés 11 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 19 juin 2009
12 juin 2009 à 08:03
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.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 36
12 juin 2009 à 22:50
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
0
celdu7 Messages postés 11 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 19 juin 2009
13 juin 2009 à 12:05
Ok, merci beaucoup pour ces solutions.
Je vous tiendrais au courant quand j'aurais réussi
0
Rejoignez-nous