Newsgroup: it.comp.www.php
Titolo: Tabella divisa in 2: una parte fissa e una scorrevole

Salve a tutti
Vorrei fare una cosa un po' fuori dal normale: pensate ad un foglio di
excel, dove è possibile "bloccare" un tot di colonne in modo che
quando io scorro la barra di scorrimento a destra o a sinistra, queste
colonne rimangono sempre ferme e scorrono solo le altre.... Vorrei
ricreare lo stesso effetto in html. Il mio problema infatti è che ho
una tabella eccessivamente larga (una 40ina di colonne) e voglio che le
prime 3 colonne siano sempre visibili.
La tabella viene generata dinamicamente... Onestamente non averi idea
di come fare... Ho pensato all'utilizzo di frame: a destra la prima
parte di tabella (le prime 3 colonne) e a sx le altre colonne... Ho
provato e non mi è sembrata una soluzione molto bella... Anche perchè
essendo le pagine dinamiche, è un po' un macello!!! Forse devo fare un
popup "dettagli" al click su uno dei record della tabella?
Spero di non essere il primo ad avere questo problema e che ci sia
qualcosa di più pratico...
Qualche consiglio?

 
Non è molto in tema, comunque puoi provare con "iframe" oppure con 
qualche proprietà del tag div.
-- 
Cordialmente.
Melus.
dal mio e-mail togli i simboli di Zorro.

di come fare...
Uso pesantissimo di javascript, generando la tabella per colonne e non
per righe. Le prime tre colonne stanno li'; le altre le rendi visibili
o meno in base all'impostazione di uno slider.
Per esempio hai 40 colonne larghe ciascuna 120 pixel: questo vuol dire
che hai 360 pixel per le prime tre e diciamo 600 pixel per altre 5. In
pratica puoi visualizzarti sempre 3+5 colonne, con 5 che vengono da un
pool di (40-3 = 37) colonne. Quindi hai in tutto (37-5) = 32 posizioni
di visualizzazione, da {1-3,4-8} a {1-3,36-40}.
Installi uno slider in javascript; dividi la sua estensione in 32 zone
e, quando lo slider e' diciamo al 57%, fai: (32 * 57 / 100) = 18, ecco
che devi rendere visibili le colonne da 4+18 a 4+18+4 compresa, mentre
le altre devono diventare invisibili.
Per avere un effetto decente pero' devi fare un ragionamento cosi': le
colonne visibili ORA sono a,b,c,d,e; e quelle che saranno visibili POI
saranno d,e,f,g,h; cerchi la prima colonna del secondo gruppo, che non
appartenga al primo; e cerchi la prima del primo che non appartiene al
secondo; rendi invisibile la prima e visibile la seconda. Se invece il
primo gruppo e' a SINISTRA, devi cercare le ultime colonne.
	abcde -> bcdef -> cdefg -> defgh
e hai l'illusione che le colonne si "spostino" a sinistra.
Nel caso inverso,
	defgh -> cdefg -> bcdef -> abcde
In poche parole, un bagno di sangue... anche perche' devi pestare duro
sui CSS per assicurarti che le righe siano tutte alte uguale.
Detto questo, ci sono dei kit Javascript commerciali ($$$) che offrono
dei datagrid AJAX abbastanza flessibili; giudica tu cosa ti conviene.
http://www.ebusiness-apps.com/
  fa quello che vuoi, per 399 US$.
http://www.zapatec.com/
		stessa cosa ma MI SEMBRA 59 US$, ma ho
il dubbio che non funzioni con Mozilla (demo, pagina 3 di 3).
http://scbr.com/docs/products/dhtmlxGrid/
 gratis
Le licenze sono un casino, dovrei farti un preventivo solo per andarle
a leggere 8-D
Comunque, considera:
	* Quante righe devi gestire? Per grossi N ti serve AJAX o un
	  sistema di filtri.
	* Funziona su tutti i browser che ti interessano?
	* Ti serve per un sito solo?
	Eccetera.
Leonardo
-- 
Dawn is near, the time is short (Human aircraft! Hard to port!)
We eight reindeers of the night work as one in silent flight.
Let not one damn house pass by (Who taught that guy how to fly?)
Each year sees more girls and boys: how many of them can we bring toys?

 o meno in base all'impostazione di uno slider.
Carissimo Ale,
ti faccio un preventivo quasi aggratis (mi accontento diciamo di soli 
sedicimila euro...) :-)
Dai, scherzo, ma dopo dodici secondi di ragionamento, e la musica sparata 
nelle recchie (quindi pensa tu che porcheria ne uscirà fuori), sono giunto a 
questa conclusione:
due tabelle, con lo stesso numero di righe, una sulla sinistra, contenente 
solo le prime colonne (che tu hai detto che vuoi che siano sempre visibili), 
e una sulla destra, contenente tutti i miliardi di colonne restanti.
E allora il colpo di genio dove è? :-)
Già...dove è?
.....
......
.........
(per creare un po' di suspence)
..........
............
..............
inserisci le due tabelle in due div, con stessa altezza, ma al div di destra 
assegni la proprietà overflow:scroll
Geniale, eh?
ps: se poi in realtà è una cazzata quella che ho detto....vabbe......la 
colpa è delle cuffie!! ;-)
rob4you
www.outofmind.eu

 destra assegni la proprietą overflow:scroll
of course....al div di destra, gli devi scrivere anche float:left.
i wanttt it thattt wayyyy
rob4you
www.outofmind.eu
 

Grazie a tutti!
Ho risolto con i DIV e i CSS per il loro posizionamento.
E' semplicissimo, io credevo di dovermi ripassare javascript e cose
simili... E onestamente non ne avevo proprio voglia!
Invece con i DIV, le proprietà overflow e float e clear ho risolto
tutto in maniera semplicissima, ottenendo esattamente l'effetto che
volevo io!
Grandioso!
Grazie ancora!
Ciao!

Geniale, eh?
In effetti: hai meno controllo sul comportamento, ma e' enormemente piu'
facile da realizzare. Vorrei averci pensato io :-)))


Ciao!
Alla prossimaa,
ciaoo,
rob4you
www.outofmind.eu