29. august 2005 - 12:15
Der er
41 kommentarer og 1 løsning
Fast række ved scroll
Jeg skal have lavet den effekt som nogle sikkert kender fra Excel, hvor man kan sætte f.eks. den øverste række til at være låst, så den ikke scroller med, hvis brugeren scroller ned af. Så vil brugeren altid kunne se hvad der står i øverste række. Den effekt skal jeg også have, på en række i en tabel, men hvordan.? Framens er NO NO, kan jeg eventuelt gøre det med layers og hvordan så eller er der noget som er smartere?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
29. august 2005 - 12:18
#1
Tjah, du kan vel lægge den øverste række af en tabel udenfor en div, og så placere resten af tabellens indhold i en anden tabel inde i en div ... -- men bemærk, at kolonnebredde kan være ret tricky at holde styr på !-)
29. august 2005 - 12:55
#2
Den øverste række blev ikke låst
29. august 2005 - 12:57
#3
Øeh, hvad ?-) -- du har vel sat en defineret højde og f.eks. overflow:auto; på diven !-)
29. august 2005 - 14:34
#5
Præcist, prøver lige om jeg kan tilpasse det til koden
29. august 2005 - 14:57
#6
ellers må du skrive så skal jeg hjælpe :)
29. august 2005 - 16:33
#7
Får dog først kigget på det i morgen, forhåbentligt
07. september 2005 - 10:04
#8
Nej, jeg har ikke lige kunnet få det til at virke. Komer lige med min kode, så I har en bedre mulighed for at hjælpe mig :)
07. september 2005 - 10:13
#9
Jeg har for nemhedens skyld ikke kopieret hele koden, men kun det vigtige. Der hvor opdelingen skal begynde er ved linierne: <td class="content" valign="top"><b><a href="#" onClick="return setSort('intern');">Intern<br \>s/t/p</a></b></td> </tr> Alt herefter skal der kunne scrolles i, uden at det før forsvinder ud af skærmen. <form action="/salg/ordre/" method="post" name="ds" id="ds" style="display:inline;" autocomplete="off"> <input type="hidden" name="sort" value="<?php echo $sort; ?>"> <table width="400" border="0" cellspacing="2" cellpadding="0"> <tr> <td class="title" colspan="3">Igangværende ordrer</td> </tr> <tr> <td class="content" valign="top">Ordrenr.:</td><td class="content" valign="top"><input type="text" name="q1" class="listform" style="width:60px;" value="<?php echo $_POST['q1']; ?>"></td> <td class="content" valign="top">Kunde:</td><td class="content" valign="top"><input type="text" name="q4" value="<?php echo $_POST['q4']; ?>" class="listform" style="width:100px;"></td> </tr> <tr> <td class="content" valign="top">Projektleder.:</td> <td class="content" valign="top"> <select name="projektleder" size="1" class="listform" style="width:175px;"> <option value=""></option> <?php while (list ($key, $val) = each ($PROJECTMANAGER)) {?> <option value="<?php echo $key; ?>"<?php if ($_POST['projektleder'] == $key || (!isset($_POST['sort']) && $id == $key)) echo ' selected'; ?>><?php echo $val['navn']; ?></option> <?php }?> </select> </td> <td class="content" valign="top">Bygherre:</td> <td class="content" valign="top"><input type="text" name="q6" value="<?php echo $_POST['q6']; ?>" class="listform" style="width:100px;"></td> <td class="content" valign="top">Produktionsmetode:</td> <td class="content" valign="top"> <select name="produktionsmetode" size="1" class="listform" style="width: 155px;"> <option value=""></option> <?php while (list ($key, $val) = each ($PRODUKTIONSMETODE)) {?> <option value="<?php echo $key; ?>"<?php if ($_POST['produktionsmetode'] == $key || (!isset($_POST['sort']) && $id == $key)) echo ' selected'; ?>><?php echo $val; ?></option> <?php }?> </select> </td> </tr> <tr> <td align="right"><input type="submit" name="submit2" value="Søg" class="submit"><br> </td> </tr> </table> <table width="810" border="0" cellspacing="1" cellpadding="0"> <tr> <?php $antal = mysql_num_rows($sql)+1;//bruges til rowspan som opdeling af oversigten ?> <td class="content" valign="top"><b><a href="#" onClick="return setSort('o5.r575a DESC');">F</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('ordre asc');">Ordre</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('levering');">Lev.<br \>uge</a></b></td> <td class="content" valign="top" style="text-align: left;"><b><a href="#" onClick="return setSort('projektleder');">P.L.</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('kunde');">Kunde</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('bygherre');">Bygherre</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('o5.r572 DESC');">OB sendt</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('o5.r541 DESC, o5.r541a DESC');">Spe.-<br \>stål</a></b></td> <!--<td class="content" valign="top"><b><a href="#" onClick="return setSort('o5.r542 DESC');">Klar <br \>til statik</a></b></td>--> <td class="content" valign="top"><b><a href="#" onClick="return setSort('statik');">Klar <br \>til statik</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('o5.r546 DESC');">Statik OK</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('o5.r543 DESC');">Klar til<br \>opt.</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('godkendelse');">Sendt til<br \>godk.</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('o5.r544 DESC');">Godk. af<br \>kunde</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('o5.r548 DESC');">OB retur</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('o5.r552 DESC');">Kredit OK</a></b></td> <td class="content" valign="top"><b><a href="#" onClick="return setSort('intern');">Intern<br \>s/t/p</a></b></td> </tr> <?php if (!mysql_num_rows($sql)) { ?> <tr> <td class="content" colspan="7">Ingen ordrer blev fundet.</td> </tr> <?php } else { $antal=0; while ($foo = mysql_fetch_assoc($sql)) { $antal++; $ntal = $antal%2; $farve=""; $farve2=""; if ($ntal!=0){ $farve = "bgcolor=\"#F2F2F2\""; } else { $farve2 = "bgcolor=\"#F2F2F2\""; } ?> <tr> <!--<td colspan="16"><div owerflow="auto" height="10%"><table border="0">--><tr> <?//Fabrinsag eller ej $fabrin=""; if ($foo['r575a']==1){ $fabrin = "<b>F</b>"; } ?> <td <?php echo $farve;?> class="content" valign="top" style="width: 10px; text-align: center";><?php echo $fabrin; ?></td> <td <?php echo $farve;?> class="content" valign="top" style="width: 60px; text-align: left;"> <a href="java script:newWindow=openWin('/popupordre/ordre11/<?php echo $foo['id']; ?>/','pop2Win<?php echo $foo['id']; ?>');newWindow.focus();"> <?php echo $foo['ordre']; if ($foo['rev'] > 0) echo " R".$foo['rev']; ?> </a> </td> . . . fortsætter indtil der ikke er flere resultater i sql-forespørgelsen
07. september 2005 - 10:42
#10
Kunne du ikke lave et simpelt eksempel med det, der kommer igennem til browseren ?-)
07. september 2005 - 10:42
#11
Du mener outputtet?
07. september 2005 - 10:45
#12
ja det gør han ;)
07. september 2005 - 10:45
#13
-- eller linke til et eksempel !-)
07. september 2005 - 10:52
#14
Jeg kan ikke linke til eksemplet, da det kører som intranet. Men jeg vil prøve at tegne det, som en anden Jørgen Clevin ;-) Outputtet er forenklet: tabelstart -------------- | Overskrift | --------------------------- | Søgefelt 1 | Søgefelt 2 | ---------------------------------------- | Søgefelt 3 | Søgefelt 4 | Søgefelt 5 | ---------------------------------------- | Søg knap | -------------- tabelslut tabelstart -------------------------------- | Kolonneoverskrifter i alt 16 | -------------------------------- | Data fra DB | -------------------------------- tabelslut Alt over "Data fra DB" skal forblive, så nå der scrolles på sql-resultatet, så kan man altså stadig se kolonneoverskrifterne og søgefelterne.
07. september 2005 - 10:53
#15
Kolonneoverskrifterne og data fra DB er selvfølgelig er hver deres celle, men jeg gad ikke lige lave 16 x 2 celler :)
07. september 2005 - 11:01
#16
Du kan kun gøre det med: tabelstart -------------------------------- | Kolonneoverskrifter i alt 16 | tabelslut divstart tabelstart -------------------------------- | Data fra DB | -------------------------------- tabelslut divslut !-) -- men det giver så potentielle problemer med kolonnebredder ...
07. september 2005 - 11:05
#17
Lige for at få det afklaret. Hvad sker der så, men tabellen inden kolonneoverskrifterne, forbliver de også eller ?
07. september 2005 - 11:12
#18
Hvis du sætter ind i en div og giver den højde og overflow:scroll, vil det kun være dens indhold, som scroller !-)
07. september 2005 - 11:32
#19
Okay, det synes jeg at have prøvet, men jeg må have gjort noget forkert. Prøver lige
07. september 2005 - 12:04
#20
Har nu sat det ind mellem de 2 tabeller, men det eneste der sker, er at kolonnebrederne for overskrifterne ændres. </table> <div owerflow="auto" height="10%"> <table> <tr> ...... </tr> </table> </div>
07. september 2005 - 12:07
#21
Hov, det kunne være man skulle stave overflow rigtigt, men det gør nu ingen forskel
07. september 2005 - 12:12
#22
Måske skal jeg lige sige, at sitet er bygget lidt anderledes op. Det fungerer, på den måde, at en index-side, opbygger en tabel. I 3 celler bliver der så hentet 3 andre sider i, henholdsvis menu, topbanner og selve indholdssiden (den vi knokler med nu). Kan det have noget at sige?
07. september 2005 - 12:15
#23
<div style="overflow: auto;" height="10%"> dutter heller ikke
07. september 2005 - 12:22
#24
07. september 2005 - 12:26
#25
Et simpelt eksempel: <style type="text/css"> .ordreTabel{border:1px solid red;border-collapse:collapse;} .ordreTabel td{width:65px;padding:2px;} </style> <table id="tableHead" class="ordreTabel"> <tr> <td>Overskrift 1</td><td>Overskrift 2</td><td>Overskrift 3</td><td>Overskrift 4</td> </tr> </table> <div style="overflow:auto;height:300px;"> <table class="ordreTabel"> <tbody> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> </tbody> </table> </div> -- mangfoldiggør data-tabelrækken, så kan du se ideen i dette meget forsimplede eksempel !-)
07. september 2005 - 13:06
#26
Hmmm, roenving, dit forslag kommer lidt der hen ad. Men der ser ud som hver række bliver lavet med overflow ikke kun hele tabellen. //Kun og hele i en os samme sætning... Lidt modsigende, men I forstår nok hvad jeg mener.
07. september 2005 - 13:11
#28
Ja, præcist, jeg kan bare ikke få det til at virke endnu
07. september 2005 - 13:12
#29
lsskaarup >> Har du kikket på de to links, jeg lagde?
07. september 2005 - 13:15
#30
olebole -> Ja, jeg har lige kigget lidt på dem, men ikke på kode bagved endnu. Men der er sådan set også som de skal være
07. september 2005 - 13:17
#31
<div style="overflow:auto;height:300px;"> <table class="ordreTabel"> <tbody> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> <tr> <td>Data 1</td><td>Data 2</td><td>Data 3</td><td>Data 4</td> </tr> </tbody> </table> </div>
07. september 2005 - 14:01
#32
roenving -> det er jo det samme som du tidligere er kommet med. Jeg tror grunden til at jeg har problemer, skyldes at jeg jo dynamisk laver rækkerne, så der går sikkert noget galt, fordi placeringen af de forskellige ting er forkert.
07. september 2005 - 14:28
#33
Okay, jeg tror det er fordi jeg ikke for sat en størrelse det rigtige sted, for jeg kan at nu, så betyder height på div ikke noget ?-) Kommer lige med koden, som den ser ud nu.
07. september 2005 - 14:32
#34
</table><!-- afslutter de fast overskrifter --> <?php } else {?> <div style="overflow:auto; height:57px;"> <table class="ordreTabel"> <tbody> <? $antal=0; while ($foo = mysql_fetch_assoc($sql)) { $antal++; $ntal = $antal%2; $farve=""; $farve2=""; if ($ntal!=0){ $farve = "bgcolor=\"#F2F2F2\""; } else { $farve2 = "bgcolor=\"#F2F2F2\""; } ?> Herefter kommer hver række så. Der er så en rød ramme uden om hele datatabellen, ud fra roenving tidligere eks., men det er som om jeg ikke kan styre højden på denne.
07. september 2005 - 15:21
#35
Ahhh, så kom den. Jeg begyndte simpelthen at lave en ordentlig indrykning af koden, også sættes roenvings forslag ind. Nu virker det, så skal jeg bare have tilpasset kolonnebredder, damn... Roenving ligger du et svar?
08. september 2005 - 09:18
#36
Damn, det er godt nok svært at få tilpasset kolonnebredderne. Når jeg har givet overskriftstabellen en bredde, der svarer til bredden på scroll-tabellen minus bredden på scrollbaren, så burde der vel ikke være nogle problemer eller hvad?
08. september 2005 - 11:16
#37
Mund jeg også lige kunne få jer til at hjælpe mig med størrelsesangivelserne. Det skal selvfølgelig nok give ekstra
08. september 2005 - 15:11
#38
Jeg har nu næsten fået tilpasset alle celler, så ingen hjælp nødvendig der, men hold kæft et helvede
08. september 2005 - 20:12
#39
Afhængig af data-størrelse, kunne jeg faktisk finde på at dublere det, så overskrift-rækken kun blev vist i den ene udgave, og ikke blev vist i den anden udgave !-) -- men det er selvfølgelig under forudsætning, at der ikke er alvorlige problemer med at få det til rådighed med det samme, altså ved indernet-forbindelser små datamængder, eller intranet-forbindelser under tusindvis af poster !o] -- els velbekomme '-)
09. september 2005 - 16:30
#40
Okay, der røg jeg af i svinget. Hvilke udgaver er det du snakker om, jeg har kun en visning?
11. september 2005 - 09:44
#41
At man faktisk udskrev data to gange, så tabellerne blev formatteret ens ... -- men i den første udgave blev alle rækker undtaget den første ikke vist, mens i den anden udgave blev den første række skjult !-) -- og tak for point ;~}
11. september 2005 - 14:48
#42
Okay, hvordan ville du så gøre det helt præcist. Jeg tvivler på den kan betale sig i mit tilfælde, men derfor vil jeg jo gerne prøve det af.
Vi tilbyder markedets bedste kurser inden for webudvikling