Ciao a tutti![]()
Mi trovo a dover metter mano su uno script di paginazione in ASP, in modo che non visualizzi semplicemente N record per pagina, ma ne mostri al massimo N secondo determinati criteri.
Per fare questo, io ho lasciato rs.PageSize=N, ma il ciclo for per scorrere i record da visualizzare nella singola pagina l'ho fatto invece che da i=1 to N, così: for i=1 to righe, dove righe è una variabile che corrisponde ad un valore compreso tra 1 e N e che cambio dinamicamente in ogni pagina.
Alla fine del ciclo for, io ho settato una variabile chiamata segnalibro=rs.Bookmark, dopodichè ho passato tramite querystring il valore di segnalibro alla pagina successiva.
Il mio intento era di riportare il recordset, all'inizio di pagina 2, al valore che invece ha raggiunto alla fine di pagina 1 (visto che pagina 1 poteva non aver stampato tutti e N i valori impostati nel PageSize), e per fare questo vado a rilevare il valore di segnalibro dalla querystring, ed imposto: rs.Bookmark=segnalibro.
A questo punto, però, su quella riga ricevo il famigerato errore:
ADODB.Recordset error '800a0bb9'
Gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto.
Ho fatto la prova, solo per vedere se non dava errore (poi ovviamente l'ho tolto), ad assegnare rs.Bookmark=segnalibro subito dopo segnalibro=rs.Bookmark (quindi alla fine del ciclo e virtualmente ancora "a pagina 1") e non ha dato alcun errore.
Non riesco a capire, quindi, se è proprio sbagliato il concetto di base, cioè una volta passati alla pagina successiva qualcosa impedisce al recordset di posizionarsi e quindi mostrarmi dei record che apparterrebbero alla pagina precedente, oppure se il problema è nel passare il valore di segnalibro tramite querystring.... qualcuno sa aiutarmi, visto che non ho mai affrontato un problema del genere? Grazie!


Rispondi quotando