totti240282 ha scritto:
Puoi sempre usare Ajax e un UpdatePanel.
E' una possibilità anche questa ma, anche se l'utente non avrà l'impressione la pagina si stia ricaricando, l'aggiornamento richiederà comunque un po' di tempo. Infatti si verificherà lo stesso una richiesta al server contenente
tutti i dati del form, viewstate compreso. Siccome si tratta semplicemente di cambiare la visibilità di un elemento, è preferibile che di questo se ne occupi il javascript.
Verce84 ha scritto:
Purtroppo non sono ferratissimo, ma per ipotesi: sarebbe possibile, dopo il click, fargli fare un autopostback
sì, è appunto l'esempio che hai trovato ma che il quadro della situazione è più completo posso consigliarti una soluzione più semplice, che non richieda neanche il javascript.
Dunque, tu hai un ecommerce e siamo nella pagina in cui l'utente sceglie la modalità di pagamento. Io farei così: lascia che l'utente selezioni una qualsiasi delle radio button e poi crea un solo asp:Button (non due) per fargli completare l'ordine. Si verificherà un postback alla pagina stessa e in quel momento scriverai l'ordine nel database e reindirezzari l'utente ad una pagina di riepilogo dei prodotti ordinati.
Lì, in base alla modalità di pagamento scelta, visualizzerai anche un bottone per avviare il pagamento.
Nel caso abbia scelto Paypal, tale bottone deve trovarsi dentro un form "semplice", cioè senza runat="server", che contenga tutti i campi hidden richiesti da Paypal. Il click sul bottone "Paga" scatenerà il post verso la pagina di pagamento Paypal.
Fai attenzione: il form deve trovarsi al di fuori dell'altro form runat="server" che solitamente si trova in pagine Asp.Net Web Forms e devi fare in modo che il
name dei campi hidden sia esattamente quello richiesto da Paypal, non puoi lasciare che Asp.Net li generi seguendo la
sua convenzione di nomi. Per riguadagnare il controllo sull'attributo
name dei controlli, in Asp.Net4 puoi usare l'attributo ClientIDMode="Static".
Così non devi fare autopostback e hai anche il vantaggio che l'utente, se non vuole pagare subito, potrà tornare nella pagina di riepilogo dell'ordine in qualsiasi momento e trovare lì il bottone per avviare la procedura di pagamento.
ciao
Modificato da BrightSoul il 06 ottobre 2012 14.16 -