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
Jones D ChuiIndiaElwin Sharvill PROPOSAL
Octavia W OldroydUnited KingdomAnna Fali UNQUALIFIED
Darci Q GlickAustraliaOnyama Limba NEW
Aditya F DoeCanadaAmy Elsner PROPOSAL
Costa U GillianItalyXuxue Feng QUALIFIED
Aika G GillianRussiaXuxue Feng PROPOSAL
Jefferson K KolmetzAustraliaElwin Sharvill QUALIFIED
Smith U OstroskyRussiaAmy Elsner PROPOSAL
Aditya J BowleyArgentinaOnyama Limba UNQUALIFIED
Jennifer I WhobreyArgentinaAnna Fali NEGOTIATION
Maria V CampainSpainOnyama Limba NEGOTIATION
Stacey L RoysterJapanAmy Elsner PROPOSAL
Leja B NickaSpainIoni Bowcher NEGOTIATION
Rodrigues U StensethJapanAnna Fali NEGOTIATION
Ivar G PaprockiBrazilAsiya Javayant NEW
Alejandro X KuskoIndiaIoni Bowcher NEW
Leon K MacleadBrazilIoni Bowcher QUALIFIED
Aruna T PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Clifford Q RimSpainXuxue Feng UNQUALIFIED
Greenwood C AmigonFranceBernardo Dominic QUALIFIED
Octavia G VenereJapanIoni Bowcher RENEWAL
Clifford J ChuiSpainAsiya Javayant NEGOTIATION
Maria S ChuiArgentinaIvan Magalhaes UNQUALIFIED
Juan O GarufiUnited KingdomOnyama Limba NEW
Greenwood B SergiIndiaOnyama Limba PROPOSAL
Clifford C WieserJapanAmy Elsner NEW
Johnson I MarrierBrazilElwin Sharvill RENEWAL
Isabel F BowleyGermanyAnna Fali NEGOTIATION
Aditya O WhobreyItalyStephen Shaw NEGOTIATION
Tony K TollnerCanadaAmy Elsner NEW
Leja K GlickFranceIvan Magalhaes QUALIFIED
Stacey Q ButtJapanAmy Elsner NEW
Kadeem W PoquetteIndiaAnna Fali QUALIFIED
Misaki M PaprockiIndiaIvan Magalhaes RENEWAL
Jennifer X DoeCanadaXuxue Feng PROPOSAL
Munro Q KuskoItalyElwin Sharvill PROPOSAL
James B RoysterAustraliaBernardo Dominic PROPOSAL
Jefferson K WhobreySpainXuxue Feng PROPOSAL
Johnson L MaletSpainIvan Magalhaes NEGOTIATION
Nicolas C BriddickUnited KingdomAmy Elsner UNQUALIFIED
Costa P SergiJapanIoni Bowcher RENEWAL
Morrow L WhobreyRussiaElwin Sharvill NEW
Silvio R WhobreyIndiaAnna Fali NEGOTIATION
Leon W MarrierCanadaStephen Shaw NEGOTIATION
Maria K KuskoUnited KingdomIoni Bowcher QUALIFIED
Juan P FollerGermanyStephen Shaw QUALIFIED
Tony R ShinkoRussiaAmy Elsner NEGOTIATION
Morrow S RoysterIndiaXuxue Feng RENEWAL
Maria W SlusarskiJapanElwin Sharvill QUALIFIED
Emily B AlbaresCanadaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya Z StensethCanadaAnna Fali NEW
Jennifer B GlickGermanyAnna Fali NEW
Smith J AmigonAustraliaElwin Sharvill RENEWAL
Misaki U PerinIndiaStephen Shaw RENEWAL
Greenwood Y MorascaAustraliaIvan Magalhaes NEGOTIATION
Mujtaba J FigeroaArgentinaAsiya Javayant NEGOTIATION
Deepesh W NickaItalyOnyama Limba NEGOTIATION
Nicolas N FigeroaAustraliaAnna Fali NEW
Silvio V SergiCanadaElwin Sharvill UNQUALIFIED
Leja G DoeSpainIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci I SlusarskiIndia2026-06-11Dorl, James J Esq NEGOTIATION91Xuxue Feng
1001Izzy U FerenczIndia2026-06-28Morlong Associates RENEWAL65Onyama Limba
1002Morrow G CaldareraGermany2026-06-24King, Christopher A Esq RENEWAL55Xuxue Feng
1003Ashley L AlbaresCanada2026-06-24Dorl, James J Esq RENEWAL32Ivan Magalhaes
1004Misaki N BriddickAustralia2026-06-20Dorl, James J Esq NEGOTIATION8Ioni Bowcher
1005Maisha U MacleadGermany2026-06-28Rousseaux, Michael Esq QUALIFIED45Bernardo Dominic
1006Izzy R DoeJapan2026-06-23Rangoni Of Florence NEGOTIATION70Anna Fali
1007Greenwood J SergiItaly2026-06-28Feltz Printing Service PROPOSAL36Asiya Javayant
1008Jefferson A BriddickItaly2026-06-04Dorl, James J Esq RENEWAL83Stephen Shaw
1009Kadeem Q FerenczRussia2026-06-21Feiner Bros QUALIFIED96Anna Fali
1010Ashley A AlbaresGermany2026-07-01Feiner Bros NEW66Elwin Sharvill
1011Deepesh M DoeBrazil2026-06-19Truhlar And Truhlar Attys QUALIFIED60Stephen Shaw
1012Aditya D RoysterJapan2026-06-14Rangoni Of Florence NEW92Amy Elsner
1013Aruna A PaprockiIndia2026-06-28King, Christopher A Esq NEGOTIATION87Stephen Shaw
1014Aika K WhobreyIndia2026-06-30Feltz Printing Service QUALIFIED44Elwin Sharvill
1015Francesco F VocelkaItaly2026-06-05Printing Dimensions QUALIFIED71Stephen Shaw
1016Deepesh H FigeroaArgentina2026-06-12Dorl, James J Esq UNQUALIFIED5Amy Elsner
1017Ricardo Q BriddickJapan2026-06-10Dorl, James J Esq UNQUALIFIED62Elwin Sharvill
1018Silvio S RoysterGermany2026-06-24Morlong Associates NEW9Anna Fali
1019Leja I SchemmerItaly2026-06-13Buckley Miller Wright NEW93Anna Fali
1020Nicolas T FlosiCanada2026-06-06Commercial Press QUALIFIED48Stephen Shaw
1021Faith J IturbideGermany2026-06-13Commercial Press RENEWAL46Ivan Magalhaes
1022Ricardo H IturbideCanada2026-06-16Chanay, Jeffrey A Esq UNQUALIFIED28Elwin Sharvill
1023Smith W BriddickGermany2026-06-13Chanay, Jeffrey A Esq NEGOTIATION22Ivan Magalhaes
1024Aruna B CampainGermany2026-06-08Rangoni Of Florence QUALIFIED3Ioni Bowcher
1025Cody E MaletJapan2026-06-18Feltz Printing Service NEGOTIATION4Bernardo Dominic
1026Nicolas H MaletAustralia2026-06-08Feltz Printing Service RENEWAL52Xuxue Feng
1027Octavia X OstroskyIndia2026-06-12Rousseaux, Michael Esq QUALIFIED52Amy Elsner
1028Smith M BologniaUnited Kingdom2026-06-29Feltz Printing Service QUALIFIED50Onyama Limba
1029Mujtaba P KuskoIndia2026-06-17Printing Dimensions QUALIFIED70Elwin Sharvill
1030Clifford F BowleyFrance2026-06-08Truhlar And Truhlar Attys NEGOTIATION66Amy Elsner
1031Kaitlin Y OldroydAustralia2026-06-20Chanay, Jeffrey A Esq NEW62Anna Fali
1032Julie F SchemmerCanada2026-06-25Rangoni Of Florence NEW80Amy Elsner
1033Isabel A NestleCanada2026-06-15King, Christopher A Esq NEW72Elwin Sharvill
1034Octavia W GauchoIndia2026-06-23Truhlar And Truhlar Attys RENEWAL5Ivan Magalhaes
1035Silvio Q KolmetzArgentina2026-06-05Benton, John B Jr RENEWAL9Stephen Shaw
1036Murillo M DarakjyUnited Kingdom2026-06-04Rousseaux, Michael Esq NEGOTIATION6Xuxue Feng
1037Silvio F DilliardRussia2026-06-27Truhlar And Truhlar Attys QUALIFIED44Asiya Javayant
1038Cody M FigeroaIndia2026-06-10Rangoni Of Florence QUALIFIED85Bernardo Dominic
1039Cody K DilliardJapan2026-06-27Rangoni Of Florence PROPOSAL22Stephen Shaw
1040Jeanfrancois T NestleUnited Kingdom2026-06-14King, Christopher A Esq UNQUALIFIED18Ioni Bowcher
1041Kaitlin L MorascaBrazil2026-06-21Chemel, James L Cpa RENEWAL9Onyama Limba
1042Kadeem Q BowleyGermany2026-06-12Truhlar And Truhlar Attys NEGOTIATION6Amy Elsner
1043Costa E NickaFrance2026-06-18Truhlar And Truhlar Attys UNQUALIFIED98Asiya Javayant
1044David T SergiFrance2026-06-12Buckley Miller Wright PROPOSAL21Onyama Limba
1045Leon N TollnerItaly2026-06-08Chanay, Jeffrey A Esq PROPOSAL61Anna Fali
1046Maria V InouyeSpain2026-07-02Truhlar And Truhlar Attys QUALIFIED26Bernardo Dominic
1047Adams J KolmetzUnited Kingdom2026-06-14Buckley Miller Wright UNQUALIFIED76Asiya Javayant
1048Misaki W KolmetzArgentina2026-06-08King, Christopher A Esq RENEWAL86Ioni Bowcher
1049Wickens A OstroskyAustralia2026-06-06Chanay, Jeffrey A Esq RENEWAL67Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ivar N IturbideCanadaIoni Bowcher QUALIFIED
Jones Z MorascaAustraliaIvan Magalhaes NEW
Wickens N FerenczArgentinaAsiya Javayant RENEWAL
Johnson A StockhamItalyOnyama Limba NEGOTIATION
James E MaletFranceElwin Sharvill QUALIFIED
Johnson G DilliardItalyIvan Magalhaes RENEWAL
Misaki P SchemmerBrazilAnna Fali UNQUALIFIED
Murillo G RutaRussiaAmy Elsner NEGOTIATION
Juan P StensethUnited KingdomIoni Bowcher NEW
James L SergiCanadaAmy Elsner QUALIFIED
Izzy T CaldareraAustraliaStephen Shaw PROPOSAL
David X GlickUnited KingdomXuxue Feng QUALIFIED
Wickens G MacleadIndiaAsiya Javayant UNQUALIFIED
Isabel F CaldareraArgentinaAsiya Javayant NEW
Morrow Q FigeroaCanadaElwin Sharvill QUALIFIED
Antonio B RoysterJapanIoni Bowcher NEGOTIATION
Wickens X VenereJapanIoni Bowcher NEGOTIATION
Faith J RimArgentinaAmy Elsner RENEWAL
Aruna J GlickUnited KingdomIoni Bowcher PROPOSAL
Maisha B KuskoRussiaIoni Bowcher QUALIFIED
Morrow V TollnerCanadaXuxue Feng NEGOTIATION
Nicolas O CaldareraArgentinaXuxue Feng UNQUALIFIED
Alejandro V RoysterCanadaElwin Sharvill UNQUALIFIED
Francesco B BriddickAustraliaStephen Shaw NEW
Maisha A WhobreyBrazilBernardo Dominic NEW
Antonio K WieserFranceElwin Sharvill NEGOTIATION
Maisha Z SergiRussiaAmy Elsner QUALIFIED
Munro Y FigeroaJapanIoni Bowcher RENEWAL
Munro Z SaylorsItalyXuxue Feng UNQUALIFIED
Octavia H RulapaughJapanOnyama Limba RENEWAL
Sinclair F FollerGermanyIoni Bowcher RENEWAL
Silvio F FollerRussiaAnna Fali UNQUALIFIED
Smith W WaycottItalyAnna Fali NEGOTIATION
Silvio X MacleadRussiaIoni Bowcher NEGOTIATION
Murillo V AlbaresBrazilElwin Sharvill RENEWAL
Aika J GlickArgentinaAnna Fali NEGOTIATION
Tony X KuskoAustraliaAmy Elsner QUALIFIED
Ivar Y InouyeAustraliaAnna Fali NEGOTIATION
Maria J WieserAustraliaBernardo Dominic NEGOTIATION
Munro L RimFranceXuxue Feng NEW
Salvatore J MorascaUnited KingdomIoni Bowcher NEW
Smith K StensethItalyIvan Magalhaes PROPOSAL
Isabel A BowleyAustraliaIoni Bowcher PROPOSAL
Costa U MaletCanadaAmy Elsner PROPOSAL
Claire M OstroskyFranceAsiya Javayant NEGOTIATION
Aika G CaudyIndiaIoni Bowcher NEGOTIATION
Jefferson F BologniaFranceOnyama Limba QUALIFIED
Maria P SaylorsGermanyAmy Elsner UNQUALIFIED
Jefferson N BologniaCanadaElwin Sharvill PROPOSAL
Sinclair N InouyeArgentinaAnna Fali QUALIFIED
Frozen Columns
Name
Murillo H Shinko
Costa U Nestle
Octavia B Stenseth
Wickens S Marrier
Tony A Albares
Mujtaba J Malet
Darci C Oldroyd
Alejandro L Rim
Smith U Amigon
Salvatore S Kusko
Claire Z Glick
Salvatore V Rim
Julie W Nestle
Francesco B Malet
Johnson Z Albares
Maisha R Iturbide
Aditya B Caldarera
Ivar W Bolognia
Maria F Briddick
Antonio A Bowley
Mayumi P Wieser
Mayumi K Shinko
Chavez Q Waycott
David A Foller
Silvio F Albares
Isabel T Vocelka
Jennifer X Chui
Octavia K Doe
Maisha C Foller
Aditya T Whobrey
Francesco U Albares
Cody O Doe
Wickens A Nicka
Kadeem E Doe
Costa S Shinko
Wickens E Caldarera
Ashley K Doe
Leja U Inouye
Juan M Ruta
Munro Q Paprocki
Morrow V Chui
Octavia W Schemmer
Francesco Q Butt
Costa X Malet
Greenwood G Sergi
Ricardo Q Darakjy
Faith X Dilliard
Ricardo R Tollner
David H Bowley
Greenwood P Royster
IdCountryDate
1000France2026-06-08
1001Spain2026-06-14
1002India2026-06-13
1003Germany2026-06-23
1004Germany2026-06-17
1005Russia2026-06-18
1006Germany2026-06-04
1007Spain2026-06-30
1008Brazil2026-07-02
1009Germany2026-06-07
1010Australia2026-06-26
1011Spain2026-07-01
1012Canada2026-07-01
1013Japan2026-07-02
1014United Kingdom2026-06-11
1015Italy2026-06-28
1016Canada2026-06-18
1017Japan2026-06-21
1018Canada2026-06-11
1019Brazil2026-06-05
1020Spain2026-06-28
1021Australia2026-06-05
1022Australia2026-06-19
1023Italy2026-06-06
1024Canada2026-07-02
1025Canada2026-06-16
1026Australia2026-06-15
1027India2026-06-25
1028Australia2026-06-17
1029Brazil2026-06-29
1030Canada2026-06-08
1031Russia2026-06-29
1032Canada2026-06-10
1033India2026-06-15
1034Argentina2026-06-24
1035Russia2026-07-01
1036Argentina2026-06-10
1037Spain2026-06-08
1038Argentina2026-06-24
1039Japan2026-06-17
1040Brazil2026-07-01
1041Canada2026-06-05
1042India2026-06-05
1043India2026-06-28
1044Japan2026-06-06
1045Germany2026-06-18
1046Spain2026-06-12
1047Japan2026-06-23
1048Russia2026-06-13
1049United Kingdom2026-06-28

On-Demand Data

NameIdCountryDate
Francesco E Royster1000Argentina2026-06-30
Izzy T Poquette1001Russia2026-06-06
Maria I Malet1002France2026-06-05
Alejandro L Ruta1003Argentina2026-06-08
Cody K Tollner1004Russia2026-06-22
Clifford B Saylors1005Spain2026-06-27
Deepesh N Figeroa1006Brazil2026-06-19
Misaki K Kusko1007Italy2026-06-06
Julie G Perin1008France2026-06-04
Mayumi Y Malet1009Spain2026-06-03
Silvio K Bowley1010Spain2026-06-15
Julie R Whobrey1011Russia2026-06-28
Smith R Albares1012India2026-06-28
Smith M Royster1013Canada2026-06-21
Aditya X Caudy1014Argentina2026-06-21
Julie J Venere1015Argentina2026-06-16
Wickens P Perin1016France2026-06-19
Maria R Shinko1017India2026-07-02
Darci L Caudy1018Japan2026-06-12
Julie U Campain1019Germany2026-06-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues C PoquetteFranceOnyama Limba PROPOSAL
Emily M IturbideAustraliaOnyama Limba PROPOSAL
Costa Y SlusarskiGermanyAsiya Javayant PROPOSAL
Julie C AmigonJapanIvan Magalhaes NEW
Tony K GarufiArgentinaAnna Fali UNQUALIFIED
Maisha W MarrierCanadaIoni Bowcher NEW
Mayumi L MorascaAustraliaBernardo Dominic RENEWAL
Silvio T MacleadAustraliaXuxue Feng QUALIFIED
Murillo I FlosiItalyOnyama Limba NEGOTIATION
Kadeem V BriddickItalyOnyama Limba NEGOTIATION
Chavez O CaudyJapanAmy Elsner NEW
Silvio V AlbaresIndiaAnna Fali NEGOTIATION
Deepesh K FlosiBrazilIoni Bowcher NEW
Leja G SchemmerAustraliaStephen Shaw NEW
Mayumi A PaprockiUnited KingdomBernardo Dominic UNQUALIFIED
Silvio A GauchoSpainBernardo Dominic UNQUALIFIED
James E WieserSpainOnyama Limba QUALIFIED
Alejandro Z GarufiJapanAsiya Javayant QUALIFIED
Jefferson D SlusarskiIndiaBernardo Dominic UNQUALIFIED
Jones Y DoeAustraliaXuxue Feng NEGOTIATION
Mayumi T BowleyBrazilBernardo Dominic PROPOSAL
Mayumi J ShinkoArgentinaIoni Bowcher PROPOSAL
Emily T IturbideIndiaIvan Magalhaes PROPOSAL
Antonio J ButtUnited KingdomIoni Bowcher NEGOTIATION
Morrow N RimUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens B FollerFranceOnyama Limba PROPOSAL
Mujtaba I DarakjyItalyStephen Shaw UNQUALIFIED
David R VenereArgentinaOnyama Limba QUALIFIED
Wickens A PoquetteItalyAsiya Javayant NEW
Izzy K FerenczJapanIoni Bowcher PROPOSAL
Octavia W GauchoItalyIoni Bowcher RENEWAL
Murillo A StensethBrazilAsiya Javayant NEGOTIATION
Munro V CampainItalyAnna Fali QUALIFIED
Isabel I NickaRussiaBernardo Dominic NEGOTIATION
Faith D GauchoSpainIvan Magalhaes NEW
Munro J TollnerGermanyIvan Magalhaes RENEWAL
Maria R ChuiJapanIoni Bowcher PROPOSAL
Johnson J SaylorsAustraliaBernardo Dominic PROPOSAL
Leja J ChuiBrazilOnyama Limba PROPOSAL
Emily X ChuiCanadaXuxue Feng UNQUALIFIED

<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>