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 A MaletRussiaAsiya Javayant NEW
Murillo N WaycottBrazilOnyama Limba UNQUALIFIED
Stacey M SaylorsArgentinaIoni Bowcher NEW
Deepesh G MorascaUnited KingdomAnna Fali QUALIFIED
Arvin G MaletRussiaIvan Magalhaes UNQUALIFIED
Ivar L FollerUnited KingdomStephen Shaw UNQUALIFIED
David N StockhamIndiaBernardo Dominic NEW
Aditya Z StensethArgentinaIoni Bowcher QUALIFIED
Octavia Q BowleyBrazilIvan Magalhaes RENEWAL
Ricardo O GillianItalyIoni Bowcher RENEWAL
Aditya T MacleadFranceOnyama Limba QUALIFIED
Maria O RulapaughUnited KingdomAsiya Javayant QUALIFIED
Maisha H PoquetteGermanyStephen Shaw NEGOTIATION
Cody D InouyeFranceIvan Magalhaes QUALIFIED
Aika L PaprockiFranceAsiya Javayant PROPOSAL
Kaitlin X RulapaughSpainAmy Elsner UNQUALIFIED
Greenwood J OstroskyBrazilIvan Magalhaes UNQUALIFIED
Juan A CaldareraJapanStephen Shaw NEW
Tony I RimBrazilOnyama Limba RENEWAL
Antonio W WhobreyGermanyBernardo Dominic UNQUALIFIED
Silvio V StockhamItalyAmy Elsner NEGOTIATION
Misaki C TollnerFranceAnna Fali UNQUALIFIED
Jennifer P FlosiGermanyElwin Sharvill UNQUALIFIED
Johnson X MarrierBrazilStephen Shaw UNQUALIFIED
Kaitlin C PaprockiItalyOnyama Limba UNQUALIFIED
Maria B AlbaresArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois R NickaAustraliaIvan Magalhaes NEW
Cody F ChuiGermanyAsiya Javayant RENEWAL
Maria D WhobreyCanadaIoni Bowcher UNQUALIFIED
Aruna L DoeBrazilAmy Elsner NEGOTIATION
Faith Z GarufiArgentinaXuxue Feng PROPOSAL
Jefferson P BriddickArgentinaBernardo Dominic QUALIFIED
Wickens Z BriddickBrazilOnyama Limba NEW
Misaki P BriddickGermanyElwin Sharvill RENEWAL
Ivar L VenereItalyAmy Elsner QUALIFIED
Maisha N FigeroaFranceElwin Sharvill QUALIFIED
Clifford I GarufiArgentinaElwin Sharvill NEGOTIATION
Ricardo T VenereUnited KingdomElwin Sharvill PROPOSAL
Sinclair C ShinkoCanadaStephen Shaw UNQUALIFIED
Arvin O FlosiUnited KingdomElwin Sharvill PROPOSAL
Emily B GarufiIndiaElwin Sharvill UNQUALIFIED
Kadeem R WieserBrazilXuxue Feng RENEWAL
Maria F FollerIndiaAmy Elsner PROPOSAL
Jones O KuskoUnited KingdomIvan Magalhaes NEGOTIATION
Juan D MarrierFranceXuxue Feng RENEWAL
Maisha V MorascaFranceXuxue Feng NEGOTIATION
Silvio C VenereJapanOnyama Limba NEGOTIATION
Stacey D KolmetzIndiaOnyama Limba UNQUALIFIED
Chavez H VocelkaArgentinaOnyama Limba NEW
Antonio T OstroskyItalyAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Alejandro E MorascaItalyXuxue Feng PROPOSAL
David V PerinCanadaOnyama Limba PROPOSAL
Rodrigues N StockhamGermanyStephen Shaw NEGOTIATION
Johnson K DarakjyCanadaXuxue Feng RENEWAL
Maria S NickaArgentinaIvan Magalhaes NEW
Stacey M GillianJapanAmy Elsner QUALIFIED
Misaki I NickaJapanAnna Fali NEW
Antonio X BowleyCanadaXuxue Feng NEW
Greenwood J NickaUnited KingdomElwin Sharvill NEGOTIATION
Deepesh B StockhamSpainStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues Y RimJapan2026-07-15Benton, John B Jr PROPOSAL25Bernardo Dominic
1001Jennifer T BologniaArgentina2026-07-04Buckley Miller Wright NEGOTIATION48Amy Elsner
1002Chavez W KuskoUnited Kingdom2026-07-03Truhlar And Truhlar Attys QUALIFIED9Stephen Shaw
1003Murillo J MorascaAustralia2026-07-11Buckley Miller Wright UNQUALIFIED91Onyama Limba
1004Clifford T GarufiBrazil2026-06-21King, Christopher A Esq RENEWAL73Onyama Limba
1005Izzy F IturbideFrance2026-06-25Feltz Printing Service QUALIFIED5Asiya Javayant
1006Emily T SchemmerRussia2026-07-08Buckley Miller Wright QUALIFIED86Amy Elsner
1007Alejandro Q MarrierCanada2026-07-04Chapman, Ross E Esq PROPOSAL57Onyama Limba
1008Leon N TollnerAustralia2026-06-30Printing Dimensions NEW31Amy Elsner
1009Aruna A StockhamGermany2026-07-03Morlong Associates NEGOTIATION1Onyama Limba
1010Murillo G SlusarskiAustralia2026-07-12Rousseaux, Michael Esq UNQUALIFIED44Bernardo Dominic
1011Nicolas D RutaJapan2026-06-24Feiner Bros NEGOTIATION96Ioni Bowcher
1012Darci D PoquetteJapan2026-06-23Rousseaux, Michael Esq NEW41Xuxue Feng
1013Jennifer T RoysterArgentina2026-06-23Rangoni Of Florence NEGOTIATION32Elwin Sharvill
1014Emily W GauchoGermany2026-07-13Chapman, Ross E Esq UNQUALIFIED39Stephen Shaw
1015Ricardo B SlusarskiJapan2026-06-24Benton, John B Jr UNQUALIFIED93Asiya Javayant
1016Mayumi Y SergiFrance2026-07-01Chanay, Jeffrey A Esq RENEWAL45Ivan Magalhaes
1017Claire H GlickRussia2026-06-21Rangoni Of Florence NEW95Anna Fali
1018Sinclair I FollerAustralia2026-06-28Truhlar And Truhlar Attys NEGOTIATION98Onyama Limba
1019Francesco H IturbideIndia2026-06-23Commercial Press NEW82Elwin Sharvill
1020Leja L NickaGermany2026-07-14Buckley Miller Wright NEW51Elwin Sharvill
1021Morrow L ShinkoRussia2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED22Elwin Sharvill
1022Maisha D MarrierFrance2026-06-30Commercial Press UNQUALIFIED58Ivan Magalhaes
1023Misaki O MacleadAustralia2026-07-10Commercial Press PROPOSAL36Elwin Sharvill
1024Faith P GarufiArgentina2026-07-01Dorl, James J Esq RENEWAL63Ivan Magalhaes
1025Jennifer Q WieserIndia2026-07-15Dorl, James J Esq NEGOTIATION1Onyama Limba
1026Silvio A MorascaAustralia2026-07-10Chapman, Ross E Esq PROPOSAL90Ioni Bowcher
1027James Z DarakjyFrance2026-06-22Buckley Miller Wright UNQUALIFIED1Xuxue Feng
1028Misaki G GillianItaly2026-07-11Rousseaux, Michael Esq QUALIFIED3Elwin Sharvill
1029Francesco Z ChuiGermany2026-06-27Chanay, Jeffrey A Esq QUALIFIED93Asiya Javayant
1030Arvin I DarakjyJapan2026-07-17Commercial Press NEW21Amy Elsner
1031Silvio S ButtRussia2026-06-30Chemel, James L Cpa NEW43Asiya Javayant
1032Octavia U FerenczRussia2026-06-23Buckley Miller Wright RENEWAL63Anna Fali
1033Salvatore H PaprockiJapan2026-07-07Commercial Press NEGOTIATION98Elwin Sharvill
1034Chavez C VenereIndia2026-07-02Rangoni Of Florence NEGOTIATION75Asiya Javayant
1035Salvatore Y GillianItaly2026-06-19Feiner Bros UNQUALIFIED97Anna Fali
1036Morrow D PoquetteSpain2026-07-15Commercial Press RENEWAL46Asiya Javayant
1037Sinclair B KolmetzArgentina2026-07-05Rousseaux, Michael Esq NEW86Onyama Limba
1038Isabel D TollnerBrazil2026-06-27Dorl, James J Esq NEGOTIATION12Ivan Magalhaes
1039Mujtaba A MarrierCanada2026-06-24Buckley Miller Wright UNQUALIFIED18Anna Fali
1040Jefferson H VenereRussia2026-07-17Chapman, Ross E Esq NEGOTIATION74Onyama Limba
1041Octavia T AlbaresFrance2026-07-16Buckley Miller Wright NEW84Ioni Bowcher
1042Jeanfrancois K BriddickCanada2026-07-03Buckley Miller Wright NEW80Asiya Javayant
1043Jones S WhobreyJapan2026-07-14King, Christopher A Esq RENEWAL65Ivan Magalhaes
1044Tony A VenereUnited Kingdom2026-06-21Feiner Bros NEGOTIATION66Bernardo Dominic
1045Tony E BologniaItaly2026-07-07Printing Dimensions NEW0Xuxue Feng
1046Sinclair Y RulapaughUnited Kingdom2026-07-04Chemel, James L Cpa NEGOTIATION80Bernardo Dominic
1047Cody P NestleRussia2026-06-21Feiner Bros QUALIFIED53Asiya Javayant
1048Aditya B MorascaFrance2026-06-24Printing Dimensions PROPOSAL4Xuxue Feng
1049Arvin H DilliardArgentina2026-07-13Chapman, Ross E Esq UNQUALIFIED33Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Nicolas Y PerinGermanyAsiya Javayant NEW
Nicolas T ButtBrazilElwin Sharvill UNQUALIFIED
Munro G CaudyArgentinaOnyama Limba QUALIFIED
Misaki I CampainGermanyIoni Bowcher RENEWAL
Adams X VenereArgentinaIvan Magalhaes NEGOTIATION
Rodrigues B DoeUnited KingdomAsiya Javayant UNQUALIFIED
Jennifer Y CampainBrazilIvan Magalhaes NEW
Aditya M SchemmerJapanIvan Magalhaes RENEWAL
Darci Z DilliardJapanBernardo Dominic PROPOSAL
Mujtaba O ChuiUnited KingdomIvan Magalhaes NEGOTIATION
Maisha S FerenczItalyOnyama Limba NEGOTIATION
Smith C RoysterFranceIoni Bowcher NEGOTIATION
Clifford F VenereRussiaXuxue Feng UNQUALIFIED
Faith T ChuiIndiaStephen Shaw NEGOTIATION
Faith O FerenczAustraliaOnyama Limba UNQUALIFIED
Cody Y RutaRussiaAmy Elsner NEGOTIATION
Mayumi B AmigonBrazilStephen Shaw QUALIFIED
Aruna L FigeroaGermanyElwin Sharvill QUALIFIED
Francesco O KuskoFranceElwin Sharvill NEW
Faith G RutaJapanIoni Bowcher QUALIFIED
Greenwood Z WaycottBrazilIvan Magalhaes RENEWAL
Tony G AlbaresUnited KingdomAmy Elsner PROPOSAL
Faith E WaycottArgentinaXuxue Feng UNQUALIFIED
Francesco B DarakjyCanadaAnna Fali NEW
Aika Y NickaJapanXuxue Feng PROPOSAL
Aditya C PaprockiArgentinaIvan Magalhaes RENEWAL
Munro N BologniaIndiaAsiya Javayant QUALIFIED
James F MaletFranceElwin Sharvill QUALIFIED
Juan J MorascaAustraliaOnyama Limba RENEWAL
Juan Y OldroydRussiaOnyama Limba NEW
Octavia Q SergiCanadaStephen Shaw NEW
Johnson B WieserArgentinaIvan Magalhaes UNQUALIFIED
Greenwood E FollerAustraliaAnna Fali UNQUALIFIED
Jones P ChuiSpainBernardo Dominic NEGOTIATION
Murillo T GarufiBrazilStephen Shaw NEW
Francesco F AlbaresUnited KingdomOnyama Limba RENEWAL
Ashley O PerinArgentinaBernardo Dominic NEGOTIATION
Stacey Q TollnerRussiaIoni Bowcher NEGOTIATION
Salvatore W VenereIndiaIvan Magalhaes NEW
Greenwood E AmigonIndiaStephen Shaw NEW
Costa Q RoysterFranceIvan Magalhaes PROPOSAL
Isabel I CaudyCanadaIoni Bowcher RENEWAL
Izzy H RoysterArgentinaOnyama Limba NEGOTIATION
Maria S VenereFranceAmy Elsner NEGOTIATION
Leon H SaylorsGermanyElwin Sharvill NEGOTIATION
Munro C GauchoJapanIoni Bowcher NEW
Aditya K NestleSpainElwin Sharvill QUALIFIED
Emily M WieserArgentinaAmy Elsner RENEWAL
Rodrigues S IturbideItalyBernardo Dominic UNQUALIFIED
Octavia J DoeJapanIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
James Q Rim
Aika R Campain
Mujtaba G Shinko
Julie H Paprocki
Jeanfrancois W Malet
Jefferson Y Waycott
Chavez L Bolognia
Stacey N Slusarski
Misaki C Inouye
Mayumi M Paprocki
Chavez N Stenseth
Greenwood X Foller
Morrow T Royster
Kaitlin L Butt
Antonio V Bolognia
Darci I Perin
Costa V Perin
Cody O Marrier
Faith O Gaucho
Alejandro Y Perin
Misaki P Stenseth
Tony M Ruta
Johnson A Chui
Chavez Y Figeroa
Jefferson S Foller
Maria J Venere
Murillo O Amigon
Murillo A Maclead
Julie Z Foller
Wickens D Wieser
Wickens O Nestle
Tony N Gillian
Jennifer O Venere
Jeanfrancois H Vocelka
Aika W Royster
Jeanfrancois L Nicka
Alejandro I Malet
Leon R Dilliard
Tony F Venere
Johnson B Flosi
David C Whobrey
Costa O Caldarera
Jones Q Nicka
Morrow U Foller
Ricardo D Amigon
Aika A Caldarera
Leja B Flosi
Mayumi X Saylors
Costa X Chui
Costa V Dilliard
IdCountryDate
1000Canada2026-06-18
1001United Kingdom2026-07-08
1002France2026-06-21
1003Germany2026-06-20
1004Brazil2026-07-07
1005France2026-07-06
1006Germany2026-07-03
1007India2026-07-12
1008Russia2026-07-12
1009Russia2026-07-14
1010Germany2026-06-18
1011United Kingdom2026-06-27
1012France2026-07-13
1013Spain2026-07-11
1014Canada2026-07-03
1015Canada2026-07-05
1016Japan2026-07-11
1017Brazil2026-06-19
1018India2026-07-06
1019United Kingdom2026-06-20
1020India2026-07-02
1021France2026-06-27
1022United Kingdom2026-06-30
1023United Kingdom2026-06-18
1024Canada2026-07-11
1025United Kingdom2026-06-20
1026Australia2026-06-30
1027Australia2026-06-18
1028Canada2026-06-20
1029Italy2026-06-23
1030Russia2026-07-02
1031Argentina2026-07-03
1032France2026-07-10
1033France2026-07-07
1034India2026-07-11
1035Argentina2026-07-01
1036Australia2026-06-30
1037Canada2026-06-27
1038Spain2026-06-28
1039Spain2026-07-12
1040Argentina2026-07-10
1041Japan2026-07-10
1042Germany2026-07-16
1043Russia2026-07-09
1044United Kingdom2026-06-18
1045Argentina2026-07-04
1046Russia2026-07-04
1047Canada2026-06-18
1048Canada2026-07-13
1049Russia2026-07-11

On-Demand Data

NameIdCountryDate
Salvatore M Marrier1000France2026-06-19
Smith O Ruta1001Brazil2026-07-09
Ricardo X Nestle1002United Kingdom2026-06-19
James F Venere1003Canada2026-06-26
Johnson A Rulapaugh1004Argentina2026-07-02
Maisha C Venere1005Australia2026-07-10
Wickens H Bolognia1006Russia2026-07-04
Isabel U Briddick1007Germany2026-07-04
Maisha H Ruta1008Brazil2026-07-03
Julie Z Nicka1009India2026-07-14
Clifford K Bowley1010Germany2026-06-30
Julie T Malet1011India2026-07-09
Murillo C Whobrey1012United Kingdom2026-07-12
James C Amigon1013United Kingdom2026-07-14
Izzy Q Chui1014Russia2026-06-19
Aruna J Wieser1015Russia2026-07-06
Jennifer M Tollner1016Canada2026-07-12
Isabel W Poquette1017Spain2026-06-24
Mujtaba S Chui1018Brazil2026-06-21
Isabel Z Gillian1019Germany2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro T ShinkoIndiaIvan Magalhaes RENEWAL
Maisha D BowleySpainIvan Magalhaes QUALIFIED
David P RutaCanadaBernardo Dominic UNQUALIFIED
Ricardo O FigeroaCanadaIvan Magalhaes PROPOSAL
Murillo Y PaprockiRussiaElwin Sharvill NEGOTIATION
James G WieserRussiaXuxue Feng RENEWAL
Juan P MarrierArgentinaElwin Sharvill NEGOTIATION
Nicolas L IturbideSpainAmy Elsner QUALIFIED
Jeanfrancois M FigeroaItalyAmy Elsner RENEWAL
Leon K AlbaresIndiaXuxue Feng PROPOSAL
Smith X MorascaRussiaOnyama Limba UNQUALIFIED
Munro R PoquetteUnited KingdomAmy Elsner UNQUALIFIED
James C FigeroaCanadaElwin Sharvill UNQUALIFIED
Arvin D StensethAustraliaOnyama Limba NEGOTIATION
Emily S FerenczCanadaAsiya Javayant PROPOSAL
Tony D SaylorsGermanyXuxue Feng RENEWAL
Smith J MaletRussiaIvan Magalhaes UNQUALIFIED
Emily N InouyeAustraliaXuxue Feng QUALIFIED
Ricardo V BologniaFranceIvan Magalhaes QUALIFIED
Maria K DarakjyAustraliaIoni Bowcher PROPOSAL
Claire G WieserRussiaXuxue Feng PROPOSAL
Isabel S CaudyUnited KingdomAnna Fali PROPOSAL
Arvin N FerenczFranceAsiya Javayant QUALIFIED
Sinclair Y RimBrazilAsiya Javayant UNQUALIFIED
Sinclair F MaletUnited KingdomStephen Shaw NEW
Misaki X BriddickGermanyElwin Sharvill NEW
Greenwood P TollnerArgentinaIoni Bowcher PROPOSAL
Deepesh Q VocelkaAustraliaXuxue Feng RENEWAL
David B PoquetteSpainAmy Elsner NEW
Clifford C SchemmerAustraliaIoni Bowcher RENEWAL
Ashley M MarrierBrazilStephen Shaw UNQUALIFIED
Octavia H StensethArgentinaIoni Bowcher NEW
Jennifer H InouyeGermanyStephen Shaw PROPOSAL
Murillo P ButtFranceXuxue Feng UNQUALIFIED
Ricardo K VocelkaAustraliaStephen Shaw NEGOTIATION
Emily K MacleadGermanyIoni Bowcher NEGOTIATION
Tony O NestleBrazilAmy Elsner NEW
Clifford X InouyeSpainOnyama Limba PROPOSAL
Antonio F GarufiRussiaAsiya Javayant PROPOSAL
Salvatore H SlusarskiArgentinaIvan Magalhaes QUALIFIED

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