[asp.net vb]Info addizzione e moltiplicazione celle

mercoledì 30 gennaio 2008 - 23.00

ertulio Profilo | Senior Member

Salve, sto realizzando un ecommerce, il mio problema è il seguente:
Attraverso gridview visualizzo il contenuto del carrello, uno dei campi è il prezzo e la quantità. Vorrei sapere come posso fare per moltiplicare la cellal prezzo alla quantita e il risultato sovascriverlo al vecchio prezzo?
Inoltre vorrei anche addizzionare tutte le celle visualizzate nella colonna prezzo per poi visualizzare il risultato in una label.

Spero in un vostro caloroso aiuto grazie :cry: :dhò:
http://www.risorsefantacalcio.it

Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.

alx_81 Profilo | Guru

>Salve,
Ciao!

>sto realizzando un ecommerce, il mio problema è il seguente:
>Vorrei sapere come posso fare per moltiplicare la cellal prezzo alla quantita e il risultato
>sovascriverlo al vecchio prezzo?
Puoi gestire l'evento RowDataBound e da quello prendere le due celle moltiplicandole tra loro, scrivendo il risultato sulla cella che preferisci.

GridView.RowDataBound Event
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

>Inoltre vorrei anche addizzionare tutte le celle visualizzate
>nella colonna prezzo per poi visualizzare il risultato in una
>label.
Se il tuo datasource è un datatable (o un dataset che contiene un datatable), puoi utilizzare il metodo Compute, il quale ti consente di eseguire una funzione di aggregazione e di specificare eventualmente un filtro su cui eseguire l'operazione. Il risultato puoi metterlo nella proprietà text della label.

Eccoti il link su MSDN:
Datatable.Compute method
http://msdn2.microsoft.com/en-us/library/system.data.datatable.compute.aspx

Se invece non è un datatable, puoi calcolare il totale gestendo sempre l'evento RowDataBound. In tal caso devi sommare ag ogni rowdatabound (l'evento si scatena per ogni riga del gridview, fai attenzione a considerare solo le righe di tipo Data e non Header e Footer) il valore della compute in una variabile che poi passerai alla label.

Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

ertulio Profilo | Senior Member

per visualizzare i dati uso il vizard del datagrid è uguale?
http://www.risorsefantacalcio.it

Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.

alx_81 Profilo | Guru

>per visualizzare i dati uso il vizard del datagrid è uguale?
Per il datatable sì, per l'evento da gestire no, è ItemDataBound:
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.datagrid.itemdatabound.aspx
Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

freeteo Profilo | Guru

ciao,
se hai datatable puoi usare una colonna calcolata che ti faccia l'operazione di prodotto, ad esempio:
DataTable table = new DataTable(); table.Columns.Add("quantita", typeof(long)); table.Columns.Add("prezzo", typeof(long)); table.Columns.Add("costo", typeof(long), "quantita * prezzo"); ... miaGridView.DataSource = table; miaGridView.DataBind();

e poi la passi alla proprieta' "DataSource" della gridview.A questo punto hai una colona "costo" che è gia' calcolata senza gestirti il "ItemDataBound".

Se i dati li calcoli dalla query puoi usare direttamente nella stringa sql il farti tornare i dati.

Se invece non hai esigenza di farlo lato codice ma è solo una visualizzazione, nella gridview, puoi farti una colonna template dove specifichi dentro li il calcolo da visualizzare:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

vedi te quali delle 3 ti va meglio

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5