1.492 messaggi dal 27 dicembre 2005
Ciao sto facendo una prova semplice con una Webgrid e ricerca ajax.

Allora ho una form tipo questa

 <form action="/Inventory/WebgridSamplep" method="post">
        First name:<br>
        <input type="text" name="firstname" value="Mickey">
        <br>
        Last name:<br>
        <input type="text" name="lastname" value="Mouse">
        <br><br>
        <input type="submit" value="Submit">
    </form> 


Fatto il post viene popolata una Webgrid non scrivo tutto il codice..

 var grid = new WebGrid(Model, canPage: true, rowsPerPage: 5, selectionFieldName: "selectedRow", ajaxUpdateContainerId: "gridContent");
        grid.Pager(WebGridPagerModes.NextPrevious);}


Tutto questo ovviamente avviene in post.

Ora ho la grigli belle e pronta, però ho notato che se clicco per riordinare sulle colonne o cambia pagine lui richiama il metodo non più in Post ma in Get e quindi gli eventuali parametri per la ricerca li perdo.

Ora vorrei sapere come fare, nella post salvo tutto in sessione per poi recuperare i dati nella GET opure c'è un altra soluzione ?

Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
per prima cosa proviamo con la soluzione che comporta la minima quantità di modifiche: prova semplicemente a modificare il metodo del tuo form da post a get.
Ti suggerisco questo perché la WebGrid dovrebbe preservare i parametri querystring con cui è stata chiamata la pagina anche quando invia le sue richieste ajax per ordinamento e paginazione.

ciao,
Moreno

Enjoy learning and just keep making
1.492 messaggi dal 27 dicembre 2005
BrightSoul ha scritto:
ciao,
per prima cosa proviamo con la soluzione che comporta la minima quantità di modifiche: prova semplicemente a modificare il metodo del tuo form da post a get.
Ti suggerisco questo perché la WebGrid dovrebbe preservare i parametri querystring con cui è stata chiamata la pagina anche quando invia le sue richieste ajax per ordinamento e paginazione.

ciao,
Moreno


Ci proverò grazie.

Altrimenti uso le session ?
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao e buona domenica!

totti240282 ha scritto:

Altrimenti uso le session ?

No, meglio scrivere i valori in un cookie. Dato che si tratta dell'input dell'utente, non c'è problema nel memorizzare quei valori lato client.

Il problema di usare la sessione è che se, un giorno, volessi far scalare l'applicazione su più istanze del webserver dovrai pensare ad un modo per persisterla su uno storage condiviso (es. database, stateserver, ecc..). Non sarebbe difficile da fare, ma è una questione in più da dover gestire.
Siccome in questo caso non c'è un reale bisogno di usare la sessione, per il momento evitala e mantieni la tua applicazione stateless.

Ora che siamo nel famoso periodo delle applicazioni cloud first, chiediti sempre se le decisioni che prendi ti consentirebbero di scalare facilmente. Non puoi sapere quando ti capiterà di sviluppare l'applicazione che ha effettivamente bisogno di farlo. Se cominci a ragionarci sin da subito, con le applicazioni che stai sviluppando ora, ti troverai pronto.

ciao,
Moreno

Enjoy learning and just keep making
1.492 messaggi dal 27 dicembre 2005
BrightSoul ha scritto:
ciao e buona domenica!

totti240282 ha scritto:

Altrimenti uso le session ?

No, meglio scrivere i valori in un cookie. Dato che si tratta dell'input dell'utente, non c'è problema nel memorizzare quei valori lato client.

Il problema di usare la sessione è che se, un giorno, volessi far scalare l'applicazione su più istanze del webserver dovrai pensare ad un modo per persisterla su uno storage condiviso (es. database, stateserver, ecc..). Non sarebbe difficile da fare, ma è una questione in più da dover gestire.
Siccome in questo caso non c'è un reale bisogno di usare la sessione, per il momento evitala e mantieni la tua applicazione stateless.

Ora che siamo nel famoso periodo delle applicazioni cloud first, chiediti sempre se le decisioni che prendi ti consentirebbero di scalare facilmente. Non puoi sapere quando ti capiterà di sviluppare l'applicazione che ha effettivamente bisogno di farlo. Se cominci a ragionarci sin da subito, con le applicazioni che stai sviluppando ora, ti troverai pronto.

ciao,
Moreno


Grazie come al solito.

Pero se uso la session posso mettere l'oggetto per intero, con i cookie posso solo memorizzare i valori delle combo e quindi rifare le query ogni volta....
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, prego!

Penso che rifare le query ogni volta in questo caso sia preferibile, perché sono coinvolti ordinamento e paginazione.
Cioè, meglio non mettere in sessione l'intero dataset (che potrebbe essere composto di qualche migliaio di righe), ma fai di volta in volta una query per ottenere solo le poche righe da visualizzare nella pagina scelta dall'utente, secondo un certo ordinamento.
Credo sia una soluzione più scalabile.

ciao,
Moreno
Modificato da BrightSoul il 14 luglio 2015 22.29 -

Enjoy learning and just keep making
1.492 messaggi dal 27 dicembre 2005
BrightSoul ha scritto:
Ciao, prego!

Penso che rifare le query ogni volta in questo caso sia preferibile, perché sono coinvolti ordinamento e paginazione.
Cioè, meglio non mettere in sessione l'intero dataset (che potrebbe essere composto di qualche migliaio di righe), ma fai di volta in volta una query per ottenere solo le poche righe da visualizzare nella pagina scelta dall'utente, secondo un certo ordinamento.
Credo sia una soluzione più scalabile.

ciao,
Moreno
Modificato da BrightSoul il 14 luglio 2015 22.29 -


Ok oggi molto molto velocemente stavo facendo delle prove in GET e non mi ha funzionato, ma domani con calma rifaccio tutto e vediam ose funziona.


Grazie.
1.492 messaggi dal 27 dicembre 2005
Ho fatto la prova e funziona, solo se devo essere sincero non mi piacciono alcune cose :

I parametri che si vedono in GET e sopratutto se i campi di ricerca sono tanti rischio di superare il limite

Possibile che non si riesca a fargli fare una Post della form invece della GET ?

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.