Stronicowanie tabeli
Atrybut DATAPAGESIZE określa liczbę rekordów jaka ma być jednorazowo
prezentowana na ekranie. Możemy zdefiniować deklarację przedstawionej poprzednio
tabeli w następujący sposób:
<TABLE BORDER=1 ID="Tableka" DATAPAGESIZE=5 DATASRC="#Baza">
W takim przypadku na ekranie wyświetalych będzie tylko 5 rekordów bazy.
Wykorzystując JavaSript możemy swobodnie zmieniać wyświetlane
strony za pomocą metod nextPage() oraz prevoiusPage().
Wprowadźmy na stronę odpowiednie klawisze umożliwiający spacerowanie po kolejnych
stronach:
<img src="prev.gif" width="1"6 height=16 border=0 onClick="tabelka.previousPage()">
<img src="next.gif" width="1"6 height=16 border=0 onClick="tabelka.nextPage()">
Możliwa jest także zmiana wielkości strony poprzez zwykłe przypisanie. Możemy na przykład wprowadzić klawisz ustawiający wielkość strony na 5 rekordów:
<img src="newsize.gif" width="1"6 height=16 border=0 onClick="tabelka.dataPageSize=5">
Sortowanie tabeli
Aby posortować generowaną tabelkę (przyjmijmy sortowanie względem typu nadwozia), wystarczy wykorzystać kolejny parametr naszej kontrolki:
<PARAM NAME=SortColumn VALUE="typ nadwozia">
Możliwe są także dynamiczne zmiany sposobu sortowania. Wywołanie funkcji JavaScript:
function wgnadwozia() {
Baza.Sort="typ nadwozia"
Baza.Reset();
}
spowoduje zmianę kolumny, według której posortowane są rekordy. Metoda Reset() powoduje ponowne wygenerowanie tabeli według nowych kryteriów.
Filtrowanie danych
Filtrowanie danych w tabeli polega na wyświetleniu w niej tylko tych rekordów, które odpowiadają pewnemu ściśle określonemu kryterium. Funkcja wyświetlająca w tabeli tylko te modele z naszej bazy, które posiadają nadwozie typu sedan może mieć postać:
function ktozPoznania() {
Baza.FilterColumn="typ nadwozia sedan";
Baza.FilterValue="sedan";
Baza.FilterCriterion="=";
Baza.Reset();
}
Parametr FilterValue określa klucz, względem ktorego
będą filtrowane dane, natomiast FilterCriterion określa sposób
porównywania danych z kluczem (możliwe są następujące operatory: <,
<=, >, >=, =, <>).
| producent | model | typ nadwozia | liczba drzwi |
![]()
|
Sortuj wg producenta |
|
Sortuj wg modelu |
|
Sortuj wg typu nadwozia |
|
Wyświetl tylko modele 5 drzwiowe |
<object id="Baza" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83" width=0 height=0>
<param name=DataURL value="dane.txt">
<param name=TextQualifier value=",">
<param name=UseHeader value=True>
<param name=SortColumn value="model">
</object> </p>
<p></p>
<p></p>
<table border=0 id="tabelka" datasrc="#Baza"
datapagesize=6 align="center" cellpadding="5" width="430" cellspacing="0">
<thead bgcolor="white">
<tr bgcolor="#A9C0C7">
<td>producent</td>
<td>model</td>
<td>typ nadwozia</td>
<td>liczba drzwi</td>
</thead> <tbody>
<tr bgcolor="#CBD8D7">
<td>
<div datafld="producent" dataformatas="html"></div>
</td>
<td>
<div datafld="model"></div>
</td>
<td>
<div datafld="typ nadwozia"></div>
</td>
<td>
<div datafld="liczba drzwi" ></div>
</td>
</tr>
</tbody>
</table>
<div align="center"><br>
<img src="prev.gif" width="1"6 height=16 border=0 alt=""
onClick="tabelka.previousPage()"> <img src="next.gif" width="1"6 height=16 border=0 alt=""
onClick="tabelka.nextPage()"><br>
</div>
<div onClick="wgproduc()" align="center">Sortuj wg producenta</div>
<div align="center"><br>
</div>
<div onClick="wgmodelu()" align="center">Sortuj wg modelu</div>
<div align="center"><br>
</div>
<div onClick="wgnadwozia()" align="center">Sortuj wg typu nadwozia</div>
<div align="center"><br>
</div>
<div onClick="pokdrzwi()" align="center">Wyświetl tylko modele 5 drzwiowe</div>
<div align="center"><br>
<script language="Javascript">
function wgproduc() {
Baza.Sort="producent"
Baza.Reset();
}
function wgmodelu() {
Baza.Sort="model"
Baza.Reset();
}
function wgnadwozia() {
Baza.Sort="typ nadwozia"
Baza.Reset();
}
function pokdrzwi() {
Baza.FilterColumn="liczba drzwi";
Baza.FilterValue="5";
Baza.FilterCriterion="=";
Baza.Reset();
}
</script>