Ecommerce in asp.net

mercoledì 04 febbraio 2009 - 14.50

86Marco Profilo | Expert

Salve nella mia applicazione asp.net ho creato una piccola sezione di eccomerce.
In particolare mi viene ricavato un gridview contenente gli articoli e tramite un pulsante selezione mi carico all'interno di variabili session il numero dell'articolo e la quantità dell'articolo, che per default è sempre uguale a 1.

Fin qui tutto bene, difatti se faccio clic sul pulsante carrello vengo riportato alla pagina del carrello e tramite una procedura di select mi selezione dal database gli articoli memorizzati nella session e le quantità, "infilo" tutto su un dataset e lo passo ad un gridview con qui faccio il databind.
Ed ho il carrello con l'articolo, l'eventuale descrizione e la quantità che è all'interno di una textbox da me inserita sul gridview.
Ora quello che mi servirebbe è la procedura che mi consenta di aggiornare il prezzo del carrello facendo moltiplicare le quantità per il costo dell'articolo.
Io ho scritto questo codice:

For Each riga As GridViewRow In GridView2.Rows
Dim mytext As TextBox
Dim label As Label
Dim riga_sel As Decimal
mytext = riga.FindControl("Textbox1")
label = riga.FindControl("Label2")
riga_sel = riga.Cells(5).Text
label.Text = FormatCurrency(CDec(mytext.Text) * CDec(riga_sel))
Next

Dove vado a prednere il valore della testbocx che moltiplico per il prezzo che si trova nella colonna 5 di ogni riga e me lo stampo su una label, come prezzo da pagare per quell'articolo.
Purtroppo pero non succede niente. Non funziona. Potreste darmi qualche consiglio? Grazie.

Vi riporto un piccolo esempio tirato su in 5 minuti di quello che dovrebbe essere il mio progetto e l'eventuale carrello da modificare, come potete vedere nel momento in cui faccio clic sulla casella di testo relativo ad un articolo per modificare la quantità e faccio clic su update carrello mi viene riproposto lo stesso risultato di prima... senza cambiamento xche??

In allegato a questo post un esempio video di quello chiestoVi sopra. SPero che qualcuno possa aitarmi :(

luigidibiasi Profilo | Guru

>Salve nella mia applicazione asp.net ho creato una piccola sezione
>di eccomerce.
>In particolare mi viene ricavato un gridview contenente gli articoli
>e tramite un pulsante selezione mi carico all'interno di variabili
>session il numero dell'articolo e la quantità dell'articolo,
>che per default è sempre uguale a 1.

Ciao,
mi permetto di darti un consiglio...

Creati una classe per la gestione del carrello... in questa classe definisciti tutti i metodi utili al tuo scopo (aggiornaRiga, aggiornaQta,aggiornaPrezziInRiga)...

Mantieni in memoria un solo oggetto invece che tanti oggetti Articolo->Q.ta
>
>Fin qui tutto bene, difatti se faccio clic sul pulsante carrello
>vengo riportato alla pagina del carrello e tramite una procedura
>di select mi selezione dal database gli articoli memorizzati
>nella session e le quantità, "infilo" tutto su un dataset e lo
>passo ad un gridview con qui faccio il databind.
>Ed ho il carrello con l'articolo, l'eventuale descrizione e la
>quantità che è all'interno di una textbox da me inserita sul
>gridview.

Usando un solo oggetto ti rimane solo da fare il mapping tra l'oggetto stesso e il dataView. L'oggetto carrello potrebbe ad esempio mantenere la lista delle righe e ogni riga potrebbe contenere tutti i dati necessari al funzionamento (quindi anche il prezzo..)

>Ora quello che mi servirebbe è la procedura che mi consenta di
>aggiornare il prezzo del carrello facendo moltiplicare le quantità
>per il costo dell'articolo.
>Io ho scritto questo codice:



Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

86Marco Profilo | Expert

Bhe mi viene dififficle capire cosa possa e come possa essere creata una classe "carrello" :)

luigidibiasi Profilo | Guru

Ciao,

Una classe rigaCarrello potrebbe essere simile a questa:

public class kartRow private codiceArticolo as integer private descrizione as string private qtaOrdinata as double private prezzo as double public sub setCodiceArticolo(newValue as integer) codiceArticolo=newValue end sub public function getCodiceArticolo as integer return codiceArticolo end if public sub setXXXX end sub public function getXXXX as tipo end function end class
la classe carrello invece una cosa del genere
public class kartObject // le righe del carrello private listaRighe as list(Of kartRow) // I metodi che potrebbero servirti public sub insertRow(theRow as kartRow) end sub public sub modificaPrezzi(theRow as kartRow,newPrice as double) end sub end class

Se ti crei una classe per gestirti la logica del carrello utilizzi solo i metodi invece di accedere direttamente in memoria...


Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5