7 messaggi dal 29 giugno 2009
Salve.

Premetto, sono alle prime armi con asp.net e sto sviluppando un'applicazione (un'intranet) in asp.net 2.0 con db firebird 2.5 RC2.

Vorrei gestire un elenco di news in questo modo:

- Dalla pagina principale l'utente seleziona tramite clic sulla riga interessata la news da aprire
(presentate tramite gridview associato alla tabella novita). Quindi passo, tramite querystring, l'id_novita identificante il record

- Nella pagina successiva recupero l'id_novita ed eseguo query per recuperare da db il record selezionato (tramite datareader)
Propongo i 3 campi del record selezionato (titolo,data,descrizione_novita) in textbox.

A questo punto se l'utente volesse leggere un'altra news dovrebbe tornare indietro o rinavigare, da menù,
all'elenco novità e selezionarne un'altra.

Vorrei evitare ciò fornendo, nella pagina sopra citata, (in cui visualizzo la novità) due pulsanti (precedente/successiva)
in modo da implementare la navigazione all'interno di quella pagina.
Non ho trovato molto sul web a riguardo o meglio non per quelle che sono le mie esigenze.
NOn posso fare affidamento sull'id_novita incrementandolo/decrementandolo poichè i record possono subire cancellazione e quindi
perdere la sequenzialità dell'id (1,2,3,5,8,9,ecc.).
Pensavo di passare in una variabile session un array contenente gli id_novita con associato un indice ordinato :
(1-1,2-2,3-3,4-5,5-8,6-9,ecc.) in modo da recuperare la posizione attuale da querystring di conseguenza navigare incrementando
o decrementando l'indice e recuperarne il relativo id_novita associato.

Che ne dite? Avete soluzioni/suggerimenti?

Spero di aver spiegato chiaramente la questione e spero di non aver detto troppe cose inesatte..

Grazie
7 messaggi dal 29 giugno 2009
Forse ho risolto.. ho solo letto, devo ancora provare, ma dovremmo esserci..

http://www.webmasterpoint.org/asp/pratica/93.asp

Grazie a tutti,
si accettano comunque consigli, suggerimenti

p.s.
In firebird select top 1 diventa select first 1
rubensoda wrote:
Che ne dite? Avete soluzioni/suggerimenti?

beh, per recuperare il record precedente, fai una select più o meno così: SELECT TOP 1 ID, oggetto FROM news WHERE ID<=IDCorrente-1 ORDER BY ID DESC dove IDCorrente è il tuo ID
stessa cosa per quella successiva, solo che la clausola è ID>=IDC+1 e l'order by è ASC. io ti consiglio, a questo punto, di tenere anche il testo, così l'utente vede subito quello di cui si tratta. e non capisco a cosa serva il link che hai postato, visto che è per Classic ASP e per paginare dati, mentre a te serve una cosa un pelino più rifinita  .

Daniele Bochicchio (ASPItalia.com)
I libri su HTML5, WP7, ASP.NET 4.0, VB 2010, C# 4, Entity Framework
Senior Software Architect @ 5DLabs.it
7 messaggi dal 29 giugno 2009
Daniele,

innanzi tutto grazie per la risposta.

Avevo effettivamente risolto con il medesimo procedimento.
Il link sarà anche riferito ad asp classico ma, a parte questo,
direi che contiene la stessa risposta che tu mi hai fornito:

spostare la logica sul db per recuperare previous o next record

io invece, in prima battuta, cercavo un sistema per ottenere lo stesso
risultato lavorando con oggetti .net: dataview o gridview.

Ho aggiunto in coda quel "select first 1" poichè firebird non supporta
la clausola TOP.

grazie, alla prossima

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.