Siirry pääsisältöön

Sorting

Avaa ChatGPT:ssä

Lajittelu antaa käyttäjille mahdollisuuden järjestää tietoja sarakkeittain, mikä tekee tiedoista helpommin luettavia ja analysoitavia. Tämä on hyödyllistä, kun käyttäjät tarvitsevat nopeaa pääsyä tietyn sarakkeen korkeimpiin tai matalimpiin arvoihin.

Tietojen hallinta ja kysely

Tietoa siitä, miten käyttää Repository-mallia kokoelmien hallintaan ja kyselyyn, katso Repository-artikkelit.

Näytä koodi

Oletuksena saraketta ei voi lajitella, ellet erikseen ota sitä käyttöön. Sallitaksesi lajittelun tietyssä sarakkeessa, käytä setSortable(true)-menetelmää:

table.getColumn("Ikä").setSortable(true);

Monilajittelu

Monisarakkeinen lajittelu on oletuksena pois käytöstä webforJ:ssä 25.00

Ennen webforj 25.00:aa taulut tukivat monisarakkeista lajittelua oletuksena. Versiosta 25.00 alkaen tämä käyttäytyminen muuttui—kehittäjien on nyt erikseen otettava käyttöön monisarakkeinen lajittelu.

Jos monilajittelu on tarpeen, setMultiSorting(true) on sovellettava taululle. Tämä antaa käyttäjille mahdollisuuden lajitella useita sarakkeita peräkkäin:

table.setMultiSorting(true);

Monilajittelun ollessa käytössä useiden sarakeotsikoiden klikkaaminen lajittelee ne peräkkäin. Lajittelun prioriteetti näkyy visuaalisesti taulun käyttöliittymässä.

Näytä koodi

Voit myös määrittää lajittelun prioriteetin ohjelmallisesti palvelinpuolen lajittelua varten. Käytä setSortOrder() haluamillesi sarakkeille lajittelun prioriteetin mukaan:

// Palvelinpuolen lajittelujärjestys
nameColumn.setSortOrder(1);
ageColumn.setSortOrder(2);
Sarakkeen järjestyksellä on merkitystä

Ellei setSortOrder()-menetelmää käytetä, taulu lajittelee oletuksena sarakkeet sen mukaan, missä järjestyksessä ne on määritelty.

Näytä koodi

Lajittelusuunta

Sarakkeen lajittelusuunnalle on kolme saatavilla olevaa asetusta:

  • SortDirection.ASC: Lajittelee sarakkeen nousevassa järjestyksessä.
  • SortDirection.DESC: Lajittelee sarakkeen laskevassa järjestyksessä.
  • SortDirection.NONE: Sarakkeeseen ei ole sovellettu lajittelua.

Kun sarakkeella on lajittelu käytössä, voit nähdä joukon pystysuoria nuoli-indikaattoreita sarakkeen yläpäässä. Nämä nuolit mahdollistavat käyttäjän vaihdella eri lajittelusuuntien välillä.

Kun nouseva järjestys on valittuna, näytetään ^, kun taas laskeva järjestys näyttää v.

Asiakkaan vs. palvelimen puolen lajittelu

Tietojen lajittelu voidaan laajalti luokitella kahteen päämenetelmään: Asiakkaan lajittelu ja Palvelimen lajittelu.

Asiakkaan lajittelu

Asiakkaan lajittelu tarkoittaa tietojen järjestämistä ja näyttämistä suoraan asiakasohjelman käyttöliittymässä. Se on lajittelu, jonka kanssa käyttäjät ovat vuorovaikutuksessa napsauttaessaan sarakeotsikoita, vaikuttaen tietojen visuaaliseen esitykseen näytöllä.

Kehittäjällä ei ole suoraa hallintaa asiakaspuolen lajittelusta, vaan se määräytyy Javaan määritetyn saraketyypin mukaan. Seuraavat tyypit ovat tällä hetkellä tuettuja:

  • TEKSTI
  • NUMERO
  • BOOLEANI
  • PÄIVÄ
  • PÄIVÄYS-AIKA
  • AIKA
tiedot

Asiakkaan lajittelu ei toimi, kun vain osa tiedoista on saatavilla asiakkaassa.

Palvelimen lajittelu

Erottaen asiakaspuolen lajittelusta, palvelimen lajittelu tarkoittaa tietojen järjestämistä ja organisoimista palvelimella ennen niiden siirtämistä asiakkaalle. Tämä lähestymistapa on erityisen hyödyllinen suurten tietojoukkojen käsittelyssä, jotka saattavat olla epäkäytännöllisiä siirtää kokonaan asiakkaalle.

Kehittäjillä on enemmän hallintaa palvelinpuolen lajittelun logiikasta. Tämä mahdollistaa monimutkaisempien lajittelualgoritmien ja optimointien toteuttamisen, mikä tekee siitä sopivan laajojen tietojen skenaarioihin. Tämä varmistaa, että asiakas saa esilajiteltua dataa, mikä minimoi laajan asiakaspuolen käsittelyn tarpeen.

tiedot

Palvelimen lajittelu on suorituskykyyn suuntautunut strategia tietojoukoille, jotka ylittävät tehokkaan asiakaspuolen käsittelyn kyvyt, ja se on oletusmenetelmä, jota Table käyttää.

Vertailijat

Column-komponentti mahdollistaa kehittäjien käyttää Java Comparators-toimintoja dynaamiseen ja mukautettuun lajitteluun. Comparator on mekanismi, jota käytetään järjestämään kaksi samaan luokkaan kuuluvaa objektia, vaikka kyseinen luokka olisi käyttäjän määrittelemä. Tämä toiminnallisuus tarjoaa kehittäjille joustavuutta mukauttaa, miten tiedot lajitellaan, antaen suurempaa hallintaa oletuslajittelukäyttäytymiseen verrattuna luonnolliseen järjestykseen.

Voit hyödyntää Comparator-lajittelua Column-komponentissa käyttämällä setComparator()-menetelmää. Tämä menetelmä mahdollistaa mukautetun Comparator-funktion määrittämisen, joka ohjaa lajittelu-logiikkaa.

Näytä koodi

Edellisessä esimerkissä on määritelty mukautettu vertailufunktio, joka ottaa kaksi elementtiä (a ja b) ja määrittää lajittelujärjestyksen Number-attribuutin käsiteltyjen kokonaislukuarvojen perusteella.

Vertailijoiden käyttäminen sarakkeen lajittelussa on erityisen hyödyllistä, kun käsitellään numeerisesti ei-juoksevia arvoja. Ne ovat myös hyödyllisiä monimutkaisten lajittelualgoritmien toteuttamiseen.

tiedot

Oletuksena Table käyttää palvelinpuolen lajittelua ja lajittelee ei-primitiiviset arvot objektitoString()-menetelmän avulla, muuttaen ne merkkijonoarvoiksi ja lajittaen sitten ne.