Newsgroup: it.comp.lang.javascript
Titolo: Problemone di gestione tabella..

Ciao a tutti,
vi spiego il problema: ho creato una pagina asp che fa vari accessi a
diverse tabelle(circa una quindicina di accessi in 5 o 6 tabelle), in
base ai vari dati scrive in un vettore dei messaggi.
Il vettore è un vettore di strutture composto da 3 campi: data, evento,
bottoni. In data ovviamente c'è la data del messaggio, in evento c'è il
messaggio e in bottoni c'è la stringa HTML che, richiamata con il
Response.Write, genererà dei form in cui saranno inseriti dei tasti che
serviranno per varie funzioni.
Un esempio di un record del vettore messaggi può essere:(OT:le pagine
gestiscono un fantacalcio:)
mex(i).data = #16/01/2000#
mex(i).evento= "Offerta di 20 miliardi dell'Atletico Martina per
Ronaldo"
mex(i).bottoni = "<form ....."          (ad ogni evento non è detto che
siano associati pulsanti)
Il messaggio visualizzato sarà
16/01/2000      Offerta di 20 miliardi dell'Atletico Martina per Ronaldo
[Tasto accetta l'offerta] [Tasto Rifiuta]
la gestione dei messaggi è fatta attraverso un file message.inc che
gestisce una tabella che visualizza n record del vettore mex. Questo
file sarà incluso in tutte le pagine che gestiscono l'area del
presidente delle squadre (come dare la formazione oppure compravendita
giocatori....)(a questa sezione si accede attraverso il login). Una
tipica pagina dell'area utente è divisa in 3 sezioni: in alto sono
visualizzati i dati dell'utente, sotto la tabella dei messaggi ed
infine, in base alla pagina caricata, c'è la parte della gestione della
squadra. 
Una precisazione. Sono costretto in ogni caso a creare un vettore di
messaggi poichè i questi sono visualizzati in ordine di data.
Per ora i messaggi sono visualizzati in una tabella che visualizza n
record alla volta. Ho fatto una gestione dell'impaginazione tale che ci
siano dei link in modo da poter visualizzare gli n record precedenti e
gli n record successivi di quello corrente. 
Ora il problema sorge qui: Vorrei fare in modo che una volta selezionati
gli n record successivi o precedenti questi fossero visualizzati nella
parte della pagina dedicata ai messaggi. La prima soluzione che mi è
venuta in mente è ricaricare la pagina ogni volta, ma la cosa è
impraticabile perchè dovrei rifare ogni volta gli accessi al
database.... Allora ho pensato, ricarico la pagina e creo una vettore
session uguale a mex. Anche questo mi sembra impraticabile perchè a
priori non so quanti messaggi ci sono e usare un vettore session così
grosso rischierebbe di rallentare molto (si è sempre detto di usare meno
variabili session possibili....:). Inoltre la pagina può essere
richiamata anche dalla terza sezione della pagina (ad esempio facendo
offerte per giocatori di altre squadre). Questo comporterebbe accessi
inutili al database per creare il vettore messaggi, quando questo in
realtà esiste già. Quindi ho pensato di usare i frame, ma preferirei
farne a meno e non risolverei il problema perchè comunque dovrei rifare
gli accessi al db e ricreare il vettore messaggi.... Ultima soluzione
che mi è venuta in mente è, ad ogni selezione degli n record successivi
o precedenti (selezione che può avvenire tramite un tasto) lancio una
funzione associata all'evento click del pulsante che mi visualizzi i
record del vettore mex selezionati. Ora, la funzione non è un problema,
neanche associarla all'evento, il vero problema è che così i messaggi
così non li visualizzo sempre nello stesso punto della pagina o almeno
così non avviene utilizzando la funzione Response.Write. Esiste una
funzione con cui specificare il punto della pagina in cui andare a
scrivere?(questo risolverebbe il problema) Oppure un'altra soluzione
potrebbe essere quella di andare a scrivere i messaggi in un oggetto
come ad esempio una casella di testo, ma questa non può divisa in righe
e colonne (in modo da avere le date e i tesi dei messaggi incolonnati) e
soprattutto non posso visualizzare i pulsanti. Esistono oggetti o
componenti (standard oppure creati da qualcuno, sparsi nella rete) che
mi permettono di fare qualcosa di simile? Il problema dei pulsanti penso
(ora la sparo grossa)che possa essere risolto cambiando nella funzione
le proprietà dei vari tasti (in VisualBasic so che ad un tasto
cmdAccetta possono essere cambiate le proprietà con un comando del tipo
cmdAccetta.Visible = True... ora non so se questo può essere fatto anche
in vbscript e/o in javascript). 
Spero di essere riuscito a inquadrare il mio problema, so che la
richiesta è un po' complicata e soprattutto strana ma se qualche GURU
del Newsgroup riuscisse ad aiutarmi a trovare una soluzione risolverei
dei dubbi che mi porto dietro da anni...che dico anni, secoli...:)
Grazie 
A presto
Gian

 vi spiego il problema: ho creato una pagina asp [....]
Forse il vero problema č che tu stai facend ASP con JScript.
Che č si JavaScript, ma lato server. In questo NG (purtroppo per te :-) si 
parla di JavaScript lato CLIENT.
Comunque:
1.- Io non mi preoccuperei piů di tanto degli accessi al database, dopotutto no 
puoi leggere tutto in una volta ed aspettare che l'utente faccia una scelta. Se 
quello impiega mezz'ora per fare tutto e nel frattempo uno ha modificato il 
database come pensi di gestire il disallineamento fra il db appena modificato e 
le modifiche fatte sulla base di dati vecchi letti mezz'ora fa? In soldoni, se 
uno impiega mezz'ora per acquistare il tuo Ronaldo, lo acquista e 15 minuti 
prima lo ha acquistato un altro utente tu che gli rispondi quando ti fa notare 
che "Ronaldo era disponibile quando sono entrato"? Potresti rispondergli che si 
č slogato un dito mignolo e non gioca per un altro anno perň... :-))))
2.- In secondo luogo, non possibile scrivere in un punto predeterminato della 
pagina con ASP, la pagina viene composta riga per riga (di codice) ed inviata 
al client, quindi devi per forza ragionare in termimi di una pagina nuova ad 
ogni chiamata.
Hope this help....
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
               Nessun traguardo č abbastanza lontano.
------------------------------------------------------------------------