7 messaggi dal 27 aprile 2012
Salve,
avrei bisogno di un aiuto.
Vi spigo il mio problema...
Devo sviluppare un sw che gestisca la prenotazione online del biglietto di una compagnia di autobus.
Sono arrivato al punto che selezionata la tratta del viaggio dovrei scalare i posti del bus in base al numero in input di passeggeri in una prenotazione.
Quindi se il bus è di 50 posti e il cliente ne prenota 3 dovo automaticamente decrementare il numero dei posti disponibili.

Detto ciò il mio problema adesso è che una volta selezionata la tratta e chiesto quanti posti da pronotare, devo aggiornare la gridview della tratta di viaggio in cui ho inserito il numero dei posti.
L'input è una textbox.

Per avere un vostro aiuto ho creato un esempio banale
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="id" DataSourceID="SqlDataSource1" Visible="False">
        <Columns>
            <asp:CommandField ShowSelectButton="True" />
            <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" 
                ReadOnly="True" SortExpression="id" />
            <asp:BoundField DataField="numero" HeaderText="numero" 
                SortExpression="numero" />
        </Columns>
    </asp:GridView>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="verifica disponibilità" />


Grazie mille
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
se ho capito bene la questione, penso che la GridView e la Textbox non debbano "parlarsi".

Quando clicchi il bottone, leggi il valore della Textbox, l'Id della tratta selezionata dalla GridView e vai a controllare nel database se quel numero di posti è ancora disponibile. Se lo è, allora detrai il numero dalla disponibilità residua. Il tutto, possibilmente, nell'ambito di una transazione così non c'è rischio di overbooking se due prenotazioni dovessero arrivare nello stesso momento.

Quando questa operazione è conclusa, il tuo SqlDataSource1 estrarrà dal Db i valori aggiornati, che verranno poi rivisualizzati nella GridView.

ciao,
Moreno

Enjoy learning and just keep making
7 messaggi dal 27 aprile 2012
Grazie della risposta Moreno.
Ho seguito il tuo consiglio come linea guida.
Adesso il mio problema è quello di ciclare una formview per l'inserimento dei passeggeri (nome, cognome, ecc...)

Per il numero dei passeggerei mi deve uscire una formview in modalità insert. C'è un modo per implementare questo?

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Gianni,
devi fare in modo che l'utente inserisca nome e cognome per ciascuno dei passeggeri?

Forse potresti usare un'altra GridView, con tante righe per quanti sono i passeggeri.
Qui trovi un esempio di editing massivo:
http://www.aspsnippets.com/Articles/Bulk-Edit-Update-Multiple-Rows-in-ASPNet-GridView-using-CheckBoxes.aspx

In quel caso la modifica viene abilitata solo quando si spunta una checkbox, ma tu puoi fare in modo che ogni riga sia sempre abilitata per la modifica.

Può risolvere il problema?

ciao,
Moreno

Enjoy learning and just keep making
7 messaggi dal 27 aprile 2012
Ciao Moreno,
ho visto il tuo esempio ma a priori devo sapere per quanti passeggeri l'utente vuole prenotare il biglietto.

Sto utilizzando questo approccio...
ho creato una gridwiew nella quale viene selezionata la corsa (luogo partenza/arrivo, orari, id_autobus, ecc) e da questa selezione viene visualizata una formview in cui avvine la prenotazione per quella corsa in quella data.

Ora dovrei gestire il discorso dei posti prenotati...

Ho pensato di fare un controllo sottraendo al numero massimo di posti dell'autobus il numero di posti prenotati ad ogni Insert nella form view. Ma non so bene come fare, mi potresti dare una dritta?

Grazie mille

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.