Siirry pääsisältöön

Runsas sisältö ja asiakaspään renderointi

Avaa ChatGPT:ssa

Taulukot webforJ:ssä ovat myös konfiguroitavissa käyttäen seuraavia työkaluja runsaan sisällön esittämiseen soluissa. Tämä sisältää interaktiiviset komponentit tai muotoillut tiedot taulukon soluissa.

Nämä elementit renderoidaan asiakaspään, mikä tarkoittaa, että runsaan sisällön luonti ja esittäminen tapahtuu suoraan selaimessa, käyttäen JavaScriptiä vain tarvittaessa, mikä parantaa sovellusten suorituskykyä käyttäen Table.

Lodash-renderöijät

Renderöijät tarjoavat tehokkaan mekanismin tietojen näyttämisen mukauttamiseen Table-komponentissa. Pääluokka, Renderer, on suunniteltu laajennettavaksi mukautettujen renderöijien luomiseksi lodash-malleihin perustuen, mahdollistaen dynaamisen ja interaktiivisen sisällön renderoinnin.

Lodash-mallit mahdollistavat HTML:n suoran upottamisen taulukon soluihin, mikä tekee niistä erittäin tehokkaita monimutkaisten solutietojen renderoimiseen Table-komponentissa. Tämä lähestymistapa sallii HTML:n dynaamisen luomisen solutiedon perusteella, helpottaen runsasta ja interaktiivista taulukonsisältöä.

Lodash-syntaksi

Seuraava osio kuvaa Lodash-syntaksin perusteet. Vaikka tämä ei ole kattava tai ytimekäs esitys, sitä voidaan käyttää Lodashin aloittamiseen Table-komponentissa.

Syntaksin yleiskatsaus lodash-malleille:

  • <%= ... %> - Interpoloi arvoja, upottaen JavaScript-koodin tuloksen malliin.
  • <% ... %> - Suorittaa JavaScript-koodia, mahdollistaa silmukat, ehtolauseet ja muut.
  • <%- ... %> - Pakottaa HTML-sisällön, varmistaen, että interpoloidut tiedot ovat suojassa HTML-injektiohyökkäyksiltä.

Esimerkkejä solutiedoista:

1. Yksinkertainen arvon interpolointi: Näyttää suoraan solun arvon.

<%= cell.value %>

2. Ehtopohjainen renderointi: Käyttää JavaScript-logiikkaa sisällön ehtopohjaiseen renderointiin.

<% if (cell.value > 100) { %> 'Korkea' <% } else { %> 'Normaali' <% } %>

3. Tietokenttien yhdistäminen: Renderoi sisältöä käyttäen useita tietokenttiä solusta.

<%= cell.row.getValue('firstName') + ' ' + cell.row.getValue('lastName') %>

4. HTML-sisällön pakottaminen: Renderoi turvallisesti käyttäjän luomaa sisältöä.

Renderöijällä on pääsy yksityiskohtaisiin solu-, rivi- ja sarakeominaisuuksiin asiakaspäässä:

TaulukonSolun Ominaisuudet:

OminaisuusTyyppiKuvaus
columnTableColumnLiitetty sarakeobjekti.
firstbooleanIlmaisee, onko solu ensimmäinen rivissä.
idStringSolun ID.
indexintSolun indeksi sen rivissä.
lastbooleanIlmaisee, onko solu viimeinen rivissä.
rowTableRowLiitetty riviobjekti solulle.
valueObjectSolun raaka arvo, suoraan tietolähteestä.

TaulukonRivin Ominaisuudet:

OminaisuusTyyppiKuvaus
cellsTableCell[]Rivin sisällä olevat solut.
dataObjectSovelluksen antamat tiedot riville.
evenbooleanIlmaisee, onko rivi parillinen (tyylitarkoituksiin).
firstbooleanIlmaisee, onko rivi ensimmäinen taulukossa.
idStringRivin ainutlaatuinen ID.
indexintRivin indeksi.
lastbooleanIlmaisee, onko rivi viimeinen taulukossa.
oddbooleanIlmaisee, onko rivi pariton (tyylitarkoituksiin).

TaulukonSarake Ominaisuudet:

OminaisuusTyyppiKuvaus
alignColumnAlignmentSarakkeen tasaus (vasen, keskellä, oikea).
idStringRivillä olevan objektin kenttä, josta saadaan solun tiedot.
labelStringNimi, joka näytetään sarakkeen otsikossa.
pinnedColumnPinDirectionSarakkeen kiinnityssuunta (vasen, oikea, automaattinen).
sortablebooleanJos tosi, sarake voidaan lajitella.
sortSortDirectionSarakkeen lajittelujärjestys.
typeColumnTypeSarakkeen tyyppi (teksti, numero, boolean jne.).
minWidthnumberSarakkeen vähimmäisleveys pikseleinä.

Saatavilla olevat renderöijät

Vaikka mukautettuja renderöijä voidaan luoda, on useita valmiita renderöijöitä, jotka ovat käytettävissä Table-komponentin sisällä. Seuraavat ovat saatavilla kehittäjille käytettäväksi suoraan ilman tarvetta luoda mukautettua renderöijää:

  • ButtonRenderer - Renderöijä webforJ-napille.
  • NativeButtonRenderer - Renderöijä natiiville HTML-napille.
  • ElementRenderer - Perusluokka kaikille renderöijille, jotka renderöivät HTML-tagin sisällön kanssa.
  • VoidElementRenderer - Perusluokka kaikille renderöijille, jotka renderöivät tyhjää elementtiä, tai HTML-tagin ilman sisältöä.
  • IconRenderer - Renderöijä ikonille - katso tämä artikkeli saadaksesi lisätietoja ikoneista.

Renderöijät sallivat myös mukautettujen tapahtumien kirjoittamisen laajentamalla mitä tahansa tuettua perus renderöijää. Tällä hetkellä renderöijät tulevat mukana RendererClickEvent -tapahtumalla, jota kehittäjät voivat käyttää.

Alla on esimerkki Table-komponentista, joka käyttää renderöijöitä näyttämään runsasta sisältöä:

Näytä Koodi