3 messaggi dal 01 marzo 2011
Ciao a tutti,
vi scrivo per illustrarvi ciò che vorrei realizzare.
Io ho un database, in una tabella ho riportato un elenco di immagini in questo modo.

ID || nomeFile || descrizione
-------------------------------
1 || 001.jpg || immagine1
2 || 002.jpg || immagine2
....
100 || 100.jpg || immagine100

Voglio creare una sezione nel sito in cui queste immagini possano essere votate (utilizzo il Rating Ajax).
Chiaramente essendo molte le immagini, devo disporle su più pagine.
Se volessi mostrarle in un determinato ordine (ad esempio l'id), sarebbe semplice perchè potrei, supponendo 20 immagini per pagina, mostrare nella pagina pagina.aspx?pg=1 quelle con id da 1 a 20, in pagina.aspx?pg=2 quelle dal 21 al 40...

Però ho intenzione di farle visualizzare in maniera CASUALE.

Potrei utilizzare una gridview, mettendo nella query del datasource un ORDER BY RANDN() o qualcosa di simile. Ma la gridview mi permetterebbe di avere una sola colonna mentre io vorrei fare una sorta di matrice (4x5 o altro....).

Come fareste voi?
Grazie in anticipo
51 messaggi dal 04 agosto 2008
Ciao,
dal punto di vista della presentazione direi che il buon vecchio DataList fa al caso tuo.
Diversa la questione dell'ordinamento casuale: l'ORDER BY NEWID() per SQL Server va bene ma il problema è la paginazione lato server, cioé puoi ottenere 20 elementi casuali di una tabella ma non puoi, ad esempio, spostarti sui "secondi" 20 e, addirittura, tornare agli stessi "primi" 20 di prima.
Dovresti trovare un modo per salvare da qualche parte almeno l'elenco ordinato degli indici generati la prima volta ma la fattibilità (e il modo in cui farlo) dipendono dal numero di record, dal numero di accessi e dalle risorse disponibili.
Ciao
s
3 messaggi dal 01 marzo 2011
Ciao,
innanzi tutto grazie per la risposta.
dunque, gli elementi al momento sono sui 50, ma penso che aumenteranno di circa 30 l'anno... Alla fine come mole di dati non sarebbe neanche troppo elevata....

Cercavo qualche soluzione pulita, ma sembra non esserci...
Al che, pensavo che potrei una di queste possibilità:

1) Se non si tratta di Postback, caricare gli id in un array, variabile della pagina, ed a seconda del caso caricare i primi 20, i secondi 20, etc...

2) memorizzare gli id ordinati la prima volta in una variabile di tipo hidden...

3) Oppure se faccio pagine diverse, memorizzare in una session...

Tu che soluzione adotteresti?
Tieni conto che i dati al massimo arriveranno intorno ai 100-200, risorse discrete, al momento utilizzerei un hosting gratuito (con possibilità di migrare ad Aruba), accessi... se ci fossero due accessi contemporanei bisognerebbe accendere un cero a qualche santo!
Grazie!
Modificato da pixus il 01 marzo 2011 15.07 -
Modificato da pixus il 01 marzo 2011 15.09 -
51 messaggi dal 04 agosto 2008
Ciao,
il numero di record e il numero presunto di accessi ti permettono, a mio parere, di scegliere qualsiasi soluzione: parametro in get (magari codificato e/o compresso), cookie, hiddenfield, sessione... ognuno ha i suoi pregi e i suoi difetti.
In questo caso forse i cookie sono il compromesso migliore e anche la cosa più sensata formalmente.

Pensavo ad una possibile alternativa, un po' macchinosa ma che forse fa al caso tuo. Se hai una data di inserimento del record sul DB potresti ordinare per ora o per minuti o per secondi o per millisecondi, magari sommando un numero random a modulo 24 o 60 0 60 0 1000 rispettivamente. Potresti legare la logica di ordinamento a un numero random che generi e salvi come avresti fatto prima (ma devi salvare un numero e non 300).

Ciao
s
3 messaggi dal 01 marzo 2011
Ciao,
ottima idea! Mi hai convinto. L'idea del cookie l'avevo tralasciata ma può essere la soluzione migliore.
Ed ottima l'idea di salvare nel cookie solo un numero random generato sul momento, legando poi ad esso l'ordinamento.
Ottimo, grazie!

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.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC