652 messaggi dal 21 gennaio 2007
Contributi
quel codice lo puoi utilizzare solamente all'interno dell'evento RowDataBound, perchè la variabile "e" è uno dei due parametri di tale evento
156 messaggi dal 12 ottobre 2007
sto procedendo così:

private int totale;



protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
TableCell cella = e.Row.Cells[0];

if (e.Row.RowType == DataControlRowType.DataRow)
{
int Uomini = Int32.Parse(e.Row.Cells(0).Text);
totale += Uomini;
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
int Donne = Int32.Parse(e.Row.Cells(0).Text);
totale += Donne;

else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "Totale:";
e.Row.Cells[1].Text = String.Format("{0}", totale);
}

ti sembra errato?
652 messaggi dal 21 gennaio 2007
Contributi
si perchè stai scrivendo codice c# e per prelevare una singola cella devi usare le parentesi quadre.

protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
TableCell cella = e.Row.Cells[0]; 

if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
int Uomini = Int32.Parse(e.Row.Cells[0].Text); 
totale += Uomini; 
} 
if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
int Donne = Int32.Parse(e.Row.Cells[0].Text); 
totale += Donne; 

else if (e.Row.RowType == DataControlRowType.Footer) 
{ 
e.Row.Cells[0].Text = "Totale:"; 
e.Row.Cells[1].Text = String.Format("{0}", totale); 
} 
}


poi occhio agli indici delle colonne.
156 messaggi dal 12 ottobre 2007
perchè? cos'hanno di sbagliato gli indici delle colonne?

{
int Uomini = Int32.Parse(e.Row.Cells[0].Text);
totale += Uomini; (titolo della colonna)
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
int Donne = Int32.Parse(e.Row.Cells[0].Text);
totale += Donne; (titolo della colonna)

effettivamente mi da errore:

"Format.exception non gestita, formato della stringa di input non corretto"

nella guida di VWD la spiegazione è complicata...
Modificato da lore_21 il 01 settembre 2008 15.15 -
156 messaggi dal 12 ottobre 2007
scusa, ma dove tu dicevi

int valoreDaSommare = Int32.Parse(e.Row.Cells(0).Text);
totale += valoreDaSommare;

per "valoredasommare" non intendevi che qui va inserito il nome delle colonne (senza virgole)?
156 messaggi dal 12 ottobre 2007
ciao, scusate il disturbo...
ma continuo ad avere difficoltà sulla somma dei record...

il codice precedente mi somma TUTTI i valori presenti nel Gridview, in tutti i campi, mentre a me servirebbe sommare i valori di ogni record di un campo:

(campo) Uomini

1 - 10
2 - 10
3 - 20

Tot. - 40

e cosi via per gli altri campi...

potete consigliarmi?

grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.