Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Mujtaba Y VocelkaIndiaAmy Elsner QUALIFIED
Juan P StockhamUnited KingdomIoni Bowcher RENEWAL
Kaitlin J NickaCanadaOnyama Limba NEGOTIATION
Aika X WaycottRussiaAmy Elsner RENEWAL
Antonio L OldroydJapanBernardo Dominic RENEWAL
Jennifer J ButtAustraliaIoni Bowcher NEW
Stacey G SchemmerJapanAnna Fali PROPOSAL
Aditya S FollerBrazilBernardo Dominic PROPOSAL
Julie Y PaprockiSpainAmy Elsner QUALIFIED
Ricardo B CaudyBrazilXuxue Feng NEGOTIATION
Chavez A CampainAustraliaBernardo Dominic UNQUALIFIED
Clifford Q RoysterIndiaElwin Sharvill PROPOSAL
Juan I RoysterIndiaIoni Bowcher RENEWAL
Jones H MacleadIndiaAsiya Javayant PROPOSAL
Murillo L SchemmerArgentinaBernardo Dominic NEGOTIATION
Mayumi Z PaprockiAustraliaIvan Magalhaes PROPOSAL
Mujtaba Z CampainArgentinaXuxue Feng RENEWAL
Adams R SaylorsAustraliaIvan Magalhaes NEW
David Q MaletItalyAmy Elsner NEGOTIATION
Antonio H PaprockiSpainOnyama Limba UNQUALIFIED
David R SlusarskiSpainAmy Elsner PROPOSAL
Mujtaba Q BologniaBrazilAsiya Javayant NEW
Aika S PoquetteCanadaAsiya Javayant NEW
Aruna K StockhamItalyElwin Sharvill PROPOSAL
Wickens M SlusarskiJapanIoni Bowcher PROPOSAL
Emily F RutaUnited KingdomOnyama Limba UNQUALIFIED
Chavez Q TollnerSpainAsiya Javayant UNQUALIFIED
Silvio P TollnerFranceElwin Sharvill RENEWAL
Jennifer U PaprockiRussiaStephen Shaw RENEWAL
Aruna E MacleadUnited KingdomAsiya Javayant NEW
Sinclair R SaylorsUnited KingdomOnyama Limba NEGOTIATION
Julie S AlbaresArgentinaStephen Shaw NEW
Maria H CampainUnited KingdomIvan Magalhaes QUALIFIED
Francesco S GauchoIndiaElwin Sharvill RENEWAL
James F SergiCanadaStephen Shaw NEGOTIATION
Morrow L FigeroaSpainAsiya Javayant NEW
Clifford Q FollerUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer X WhobreySpainAmy Elsner NEW
Leja H FigeroaJapanAmy Elsner NEGOTIATION
Jones Y FollerFranceOnyama Limba UNQUALIFIED
Rodrigues Y NickaRussiaIoni Bowcher NEGOTIATION
Izzy R RoysterIndiaOnyama Limba PROPOSAL
Arvin H GauchoRussiaBernardo Dominic QUALIFIED
Ricardo M AmigonAustraliaXuxue Feng PROPOSAL
Julie Y NestleAustraliaBernardo Dominic NEW
Tony S SergiAustraliaElwin Sharvill QUALIFIED
Adams F WieserGermanyXuxue Feng QUALIFIED
Munro Z WieserUnited KingdomAmy Elsner RENEWAL
Aditya P SaylorsGermanyBernardo Dominic PROPOSAL
Aika T FerenczAustraliaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Murillo X FigeroaItalyXuxue Feng RENEWAL
Francesco H BowleyGermanyXuxue Feng NEGOTIATION
Misaki C WieserIndiaIvan Magalhaes RENEWAL
Aruna S GauchoSpainIvan Magalhaes UNQUALIFIED
Tony K VocelkaIndiaStephen Shaw QUALIFIED
Leja U GlickGermanyOnyama Limba UNQUALIFIED
Maisha U OstroskyAustraliaAnna Fali UNQUALIFIED
Maisha H MaletArgentinaIoni Bowcher NEW
Tony B VocelkaArgentinaXuxue Feng RENEWAL
Ashley I GlickArgentinaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba P OldroydItaly2026-07-14Commercial Press PROPOSAL3Onyama Limba
1001Mayumi A FerenczBrazil2026-07-19Dorl, James J Esq UNQUALIFIED4Stephen Shaw
1002Misaki I CaldareraGermany2026-07-18Truhlar And Truhlar Attys RENEWAL80Anna Fali
1003Smith T ChuiItaly2026-07-08Chemel, James L Cpa NEW40Bernardo Dominic
1004Jefferson X BologniaUnited Kingdom2026-07-09Printing Dimensions NEGOTIATION5Ivan Magalhaes
1005Emily B GillianUnited Kingdom2026-07-14Benton, John B Jr NEGOTIATION21Ioni Bowcher
1006Jeanfrancois R PoquetteCanada2026-07-08Benton, John B Jr NEGOTIATION74Xuxue Feng
1007David H BriddickSpain2026-07-14Feiner Bros NEGOTIATION18Ioni Bowcher
1008Mayumi I PerinRussia2026-07-20Morlong Associates NEW49Stephen Shaw
1009Greenwood Q RimAustralia2026-07-14Rangoni Of Florence UNQUALIFIED38Ioni Bowcher
1010David S MaletItaly2026-06-27King, Christopher A Esq UNQUALIFIED41Onyama Limba
1011Adams R GlickSpain2026-07-03Dorl, James J Esq NEGOTIATION61Stephen Shaw
1012Leja B MaletUnited Kingdom2026-07-19Feiner Bros PROPOSAL9Stephen Shaw
1013Jennifer M AmigonGermany2026-07-18Rangoni Of Florence NEW48Xuxue Feng
1014Julie Q MarrierCanada2026-07-12Chemel, James L Cpa UNQUALIFIED81Bernardo Dominic
1015Claire L OldroydGermany2026-06-25Morlong Associates RENEWAL37Anna Fali
1016Jefferson V AmigonIndia2026-06-29Feltz Printing Service NEW60Ioni Bowcher
1017Wickens N FerenczRussia2026-07-11Commercial Press NEW57Xuxue Feng
1018Leon L PoquetteCanada2026-07-16Chapman, Ross E Esq UNQUALIFIED80Asiya Javayant
1019Greenwood I MarrierSpain2026-07-02Morlong Associates RENEWAL16Xuxue Feng
1020Faith H GillianGermany2026-06-29Dorl, James J Esq NEGOTIATION92Amy Elsner
1021Jefferson M MacleadArgentina2026-07-20Feiner Bros UNQUALIFIED72Asiya Javayant
1022Nicolas C ShinkoJapan2026-07-08Benton, John B Jr NEGOTIATION21Onyama Limba
1023Arvin B WaycottFrance2026-06-23Chanay, Jeffrey A Esq NEGOTIATION30Bernardo Dominic
1024Jefferson K KolmetzCanada2026-06-29Chapman, Ross E Esq QUALIFIED45Anna Fali
1025Johnson K DoeCanada2026-07-20Benton, John B Jr NEW30Amy Elsner
1026Adams L WieserFrance2026-07-04Benton, John B Jr PROPOSAL26Ivan Magalhaes
1027Tony B MacleadArgentina2026-06-24Truhlar And Truhlar Attys RENEWAL28Anna Fali
1028Smith A GarufiIndia2026-07-04Truhlar And Truhlar Attys PROPOSAL76Anna Fali
1029Adams E MarrierArgentina2026-06-26Chapman, Ross E Esq NEGOTIATION9Anna Fali
1030Ivar S IturbideSpain2026-06-24Chemel, James L Cpa QUALIFIED97Onyama Limba
1031Maria V StockhamIndia2026-07-03Chanay, Jeffrey A Esq QUALIFIED29Bernardo Dominic
1032Juan X ChuiCanada2026-07-07Truhlar And Truhlar Attys NEW67Ioni Bowcher
1033Chavez H ButtSpain2026-07-06Rangoni Of Florence UNQUALIFIED1Bernardo Dominic
1034David G BologniaGermany2026-06-21Benton, John B Jr NEGOTIATION87Xuxue Feng
1035Julie U WaycottRussia2026-07-09Feltz Printing Service NEW47Stephen Shaw
1036Ricardo K DoeRussia2026-07-15Benton, John B Jr UNQUALIFIED95Stephen Shaw
1037Octavia N IturbideArgentina2026-07-15Chemel, James L Cpa QUALIFIED42Elwin Sharvill
1038Darci X OstroskyItaly2026-06-25Truhlar And Truhlar Attys NEGOTIATION26Onyama Limba
1039Jefferson F RimArgentina2026-07-04Chanay, Jeffrey A Esq NEGOTIATION2Xuxue Feng
1040Aika V ShinkoCanada2026-06-22Benton, John B Jr NEGOTIATION44Onyama Limba
1041Antonio Y CampainBrazil2026-06-29Rousseaux, Michael Esq NEW22Xuxue Feng
1042Arvin V FollerSpain2026-07-08Morlong Associates UNQUALIFIED51Bernardo Dominic
1043Johnson Q BologniaUnited Kingdom2026-07-10Benton, John B Jr PROPOSAL53Xuxue Feng
1044Maria J MorascaUnited Kingdom2026-07-20Feiner Bros NEW20Stephen Shaw
1045Jennifer R PaprockiFrance2026-07-11Chemel, James L Cpa UNQUALIFIED41Bernardo Dominic
1046Isabel S BologniaCanada2026-06-26Printing Dimensions NEW44Amy Elsner
1047David Z BriddickFrance2026-07-20King, Christopher A Esq QUALIFIED2Onyama Limba
1048Stacey B NickaFrance2026-07-01Benton, John B Jr PROPOSAL65Asiya Javayant
1049Jeanfrancois Z DilliardSpain2026-07-02Chanay, Jeffrey A Esq QUALIFIED75Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Misaki M GauchoBrazilStephen Shaw PROPOSAL
Rodrigues S PerinFranceAnna Fali NEGOTIATION
Costa P FollerGermanyIoni Bowcher PROPOSAL
Adams Z StensethFranceXuxue Feng UNQUALIFIED
Jeanfrancois V GarufiSpainIoni Bowcher NEW
James U TollnerSpainBernardo Dominic NEW
Jefferson S DarakjySpainAmy Elsner NEGOTIATION
Aditya D VocelkaSpainStephen Shaw PROPOSAL
Jeanfrancois F ShinkoJapanAnna Fali RENEWAL
Silvio Y DarakjyAustraliaAmy Elsner UNQUALIFIED
Leon U FlosiItalyAsiya Javayant QUALIFIED
Sinclair T MarrierCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois L StockhamUnited KingdomAsiya Javayant QUALIFIED
Nicolas N BriddickAustraliaBernardo Dominic PROPOSAL
Ashley L StockhamAustraliaStephen Shaw NEGOTIATION
Maisha B KuskoJapanStephen Shaw PROPOSAL
Maisha J GillianCanadaAnna Fali RENEWAL
Rodrigues P RimFranceOnyama Limba RENEWAL
Salvatore W WaycottJapanIvan Magalhaes RENEWAL
Misaki L CaudyItalyBernardo Dominic RENEWAL
Ashley C DoeSpainElwin Sharvill PROPOSAL
James S OldroydCanadaOnyama Limba RENEWAL
Deepesh R MarrierIndiaAsiya Javayant NEGOTIATION
Rodrigues I ShinkoFranceElwin Sharvill NEW
Francesco V PerinFranceAnna Fali NEGOTIATION
Murillo X StensethJapanOnyama Limba NEGOTIATION
Isabel G MorascaCanadaBernardo Dominic PROPOSAL
Arvin M AmigonIndiaBernardo Dominic UNQUALIFIED
Francesco G DoeRussiaAnna Fali NEW
Aruna A PoquetteGermanyIoni Bowcher QUALIFIED
Darci D ChuiArgentinaOnyama Limba RENEWAL
Leon N VenereSpainXuxue Feng PROPOSAL
Maria J KolmetzCanadaXuxue Feng NEW
Nicolas R SaylorsFranceAnna Fali QUALIFIED
Greenwood N SlusarskiBrazilStephen Shaw NEW
Juan U PerinCanadaAnna Fali NEW
Munro I TollnerIndiaAmy Elsner NEW
Emily Y OldroydItalyIvan Magalhaes UNQUALIFIED
Mujtaba Z BriddickSpainIvan Magalhaes NEGOTIATION
Ricardo J FollerUnited KingdomStephen Shaw PROPOSAL
Aika Y KolmetzIndiaIoni Bowcher NEW
Aika W DoeGermanyBernardo Dominic QUALIFIED
James B DarakjyJapanStephen Shaw NEGOTIATION
Darci C CaldareraItalyOnyama Limba NEW
Stacey N MacleadBrazilAmy Elsner NEW
Aika D CaldareraIndiaAsiya Javayant QUALIFIED
Alejandro H KuskoArgentinaAnna Fali RENEWAL
Aditya W AlbaresItalyOnyama Limba NEW
Clifford Y MaletItalyElwin Sharvill RENEWAL
Adams L MaletFranceOnyama Limba RENEWAL
Frozen Columns
Name
Julie V Caudy
Leon U Shinko
Stacey K Vocelka
Julie S Figeroa
Munro Y Bolognia
Izzy F Rulapaugh
Tony S Waycott
Isabel R Garufi
Ricardo A Malet
Morrow P Flosi
Wickens Z Nicka
Aruna W Rim
Arvin R Vocelka
Misaki D Nestle
Ashley U Darakjy
Leon I Nicka
Salvatore A Wieser
Silvio Y Kusko
Munro I Perin
Octavia W Dilliard
James G Saylors
Sinclair C Foller
Jefferson P Dilliard
Isabel F Marrier
Maria V Bowley
Chavez M Nicka
Adams Q Oldroyd
Rodrigues P Darakjy
Octavia X Saylors
Jefferson U Sergi
Aditya P Albares
Mayumi G Gaucho
Faith I Waycott
Wickens O Doe
David B Campain
Cody T Ruta
Ricardo B Albares
Juan E Morasca
Izzy I Ostrosky
Sinclair K Gaucho
Sinclair Q Doe
James S Paprocki
Jones Z Campain
Salvatore R Gaucho
Arvin C Whobrey
Jones U Doe
Mujtaba N Kusko
Rodrigues V Venere
Jones N Gaucho
Wickens Q Ferencz
IdCountryDate
1000Australia2026-07-15
1001United Kingdom2026-07-05
1002Spain2026-07-02
1003Australia2026-07-01
1004Argentina2026-07-02
1005India2026-06-22
1006Brazil2026-07-13
1007India2026-07-04
1008India2026-07-03
1009Italy2026-07-14
1010Japan2026-07-10
1011Russia2026-07-02
1012Argentina2026-07-12
1013Italy2026-07-03
1014Canada2026-07-11
1015Spain2026-07-15
1016United Kingdom2026-07-12
1017Argentina2026-07-06
1018Spain2026-07-07
1019Spain2026-07-18
1020Germany2026-07-19
1021India2026-07-15
1022Brazil2026-07-15
1023United Kingdom2026-07-19
1024Australia2026-07-19
1025Germany2026-06-25
1026Russia2026-06-27
1027Brazil2026-07-12
1028India2026-07-16
1029France2026-07-16
1030Italy2026-06-25
1031Germany2026-06-22
1032Germany2026-07-04
1033France2026-07-03
1034France2026-06-26
1035Argentina2026-07-07
1036India2026-07-11
1037Canada2026-07-03
1038United Kingdom2026-07-07
1039India2026-07-12
1040United Kingdom2026-06-26
1041United Kingdom2026-06-23
1042India2026-07-16
1043Brazil2026-06-21
1044France2026-06-21
1045Brazil2026-07-01
1046Russia2026-07-03
1047Italy2026-06-29
1048Italy2026-07-02
1049Spain2026-06-23

On-Demand Data

NameIdCountryDate
Maria M Maclead1000Argentina2026-07-09
Rodrigues O Caldarera1001Brazil2026-07-20
Johnson U Figeroa1002Russia2026-06-29
Kadeem R Bowley1003Spain2026-07-13
Smith B Poquette1004Australia2026-06-27
Alejandro C Gillian1005Argentina2026-07-02
Antonio R Inouye1006Canada2026-07-13
Kadeem K Paprocki1007Spain2026-07-19
Octavia F Marrier1008France2026-07-05
Ivar R Albares1009Canada2026-06-23
Aika D Glick1010Germany2026-07-08
Johnson Q Vocelka1011Canada2026-07-06
Ashley X Butt1012Italy2026-06-22
Greenwood W Rulapaugh1013United Kingdom2026-07-06
Maisha V Sergi1014India2026-07-16
James W Nicka1015Germany2026-07-04
Costa A Maclead1016Argentina2026-07-13
Darci S Bolognia1017India2026-06-28
Arvin R Wieser1018United Kingdom2026-07-17
Smith C Albares1019France2026-06-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith P DilliardCanadaIoni Bowcher NEW
Juan Z DarakjySpainXuxue Feng NEGOTIATION
Aditya X GlickGermanyBernardo Dominic RENEWAL
Murillo R RulapaughItalyAnna Fali UNQUALIFIED
Aika J WieserFranceXuxue Feng NEGOTIATION
Jefferson H SchemmerUnited KingdomAsiya Javayant RENEWAL
Kadeem B GarufiArgentinaIoni Bowcher UNQUALIFIED
Clifford L MacleadUnited KingdomBernardo Dominic QUALIFIED
Mujtaba E KolmetzItalyIvan Magalhaes QUALIFIED
Deepesh X StensethUnited KingdomAsiya Javayant NEGOTIATION
Julie I CampainGermanyElwin Sharvill QUALIFIED
Jeanfrancois Z RulapaughUnited KingdomElwin Sharvill UNQUALIFIED
Jones T GlickIndiaStephen Shaw RENEWAL
Claire K KuskoCanadaOnyama Limba QUALIFIED
Antonio Q SchemmerBrazilStephen Shaw UNQUALIFIED
Stacey M PoquetteCanadaXuxue Feng RENEWAL
Leon A PoquetteFranceAmy Elsner RENEWAL
Wickens U KuskoJapanElwin Sharvill RENEWAL
Ashley Q FlosiCanadaOnyama Limba NEW
Cody N MaletBrazilAsiya Javayant RENEWAL
Octavia R VenereArgentinaIvan Magalhaes RENEWAL
Isabel Q AmigonRussiaIvan Magalhaes QUALIFIED
David X FlosiItalyXuxue Feng NEW
Octavia O CaudyGermanyAnna Fali NEGOTIATION
James A VocelkaArgentinaElwin Sharvill NEW
Mujtaba R FollerUnited KingdomAnna Fali QUALIFIED
Ricardo W MarrierGermanyAmy Elsner QUALIFIED
Cody Q MaletCanadaElwin Sharvill RENEWAL
Leja V SlusarskiArgentinaIvan Magalhaes NEW
Cody M RulapaughJapanXuxue Feng PROPOSAL
Mayumi L SergiFranceIoni Bowcher QUALIFIED
Leon D FigeroaBrazilStephen Shaw NEW
Jefferson O VenereIndiaBernardo Dominic UNQUALIFIED
Salvatore I CaudyIndiaIvan Magalhaes NEW
Octavia V FollerGermanyOnyama Limba QUALIFIED
Kadeem X SchemmerGermanyAnna Fali QUALIFIED
Arvin Y FerenczCanadaAnna Fali PROPOSAL
Wickens Z StockhamRussiaIoni Bowcher PROPOSAL
Rodrigues W CaudySpainStephen Shaw PROPOSAL
Adams M MaletRussiaStephen Shaw PROPOSAL

<style>
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>