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
Wickens F NickaCanadaBernardo Dominic NEGOTIATION
Ashley U GarufiSpainElwin Sharvill UNQUALIFIED
James R VocelkaAustraliaIoni Bowcher QUALIFIED
Izzy E BowleyFranceIvan Magalhaes NEW
Kaitlin L VocelkaRussiaXuxue Feng RENEWAL
Morrow V GlickSpainBernardo Dominic PROPOSAL
Ricardo E DilliardItalyAmy Elsner NEGOTIATION
Rodrigues T VenereJapanStephen Shaw PROPOSAL
Nicolas Q AmigonArgentinaAnna Fali QUALIFIED
Stacey D BologniaItalyOnyama Limba RENEWAL
Salvatore N BowleyItalyStephen Shaw QUALIFIED
Leon O FerenczIndiaStephen Shaw QUALIFIED
Mujtaba V StockhamSpainXuxue Feng NEGOTIATION
Misaki W DoeJapanElwin Sharvill QUALIFIED
Morrow X RoysterGermanyAnna Fali QUALIFIED
Maria C DoeCanadaAsiya Javayant NEW
Mujtaba A WieserArgentinaElwin Sharvill PROPOSAL
Leon I MorascaBrazilOnyama Limba UNQUALIFIED
Ashley S FollerArgentinaOnyama Limba RENEWAL
Claire E MorascaArgentinaAmy Elsner UNQUALIFIED
Jennifer X RoysterSpainElwin Sharvill UNQUALIFIED
Mayumi O FlosiRussiaIvan Magalhaes UNQUALIFIED
Costa S ChuiRussiaBernardo Dominic PROPOSAL
Octavia L CaudyCanadaAnna Fali RENEWAL
Murillo W StockhamAustraliaIoni Bowcher PROPOSAL
Cody T FerenczSpainElwin Sharvill RENEWAL
Jefferson S FollerArgentinaIvan Magalhaes UNQUALIFIED
Clifford T StockhamCanadaAmy Elsner NEGOTIATION
Francesco Y FigeroaSpainIvan Magalhaes PROPOSAL
Antonio Z GarufiGermanyAmy Elsner QUALIFIED
Kadeem Q OldroydBrazilAmy Elsner QUALIFIED
Murillo S OstroskyJapanAsiya Javayant QUALIFIED
Jones U PaprockiSpainOnyama Limba NEGOTIATION
Wickens F PaprockiCanadaIoni Bowcher UNQUALIFIED
Tony T CaudyFranceAsiya Javayant NEW
Costa U AmigonGermanyXuxue Feng NEW
Murillo B DarakjyGermanyAmy Elsner NEW
Wickens L TollnerIndiaAmy Elsner NEGOTIATION
Costa S PoquetteCanadaElwin Sharvill PROPOSAL
Francesco G VocelkaSpainAnna Fali RENEWAL
Aruna P VocelkaRussiaElwin Sharvill QUALIFIED
Mayumi A FerenczArgentinaAsiya Javayant RENEWAL
David I CaldareraIndiaOnyama Limba PROPOSAL
Antonio E RulapaughJapanOnyama Limba QUALIFIED
Morrow T MaletCanadaAsiya Javayant NEGOTIATION
Leon Y InouyeItalyBernardo Dominic RENEWAL
Salvatore C ShinkoAustraliaOnyama Limba RENEWAL
Adams J RutaUnited KingdomStephen Shaw UNQUALIFIED
Misaki C ChuiCanadaIoni Bowcher NEGOTIATION
Izzy J ButtUnited KingdomAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody A SlusarskiGermanyXuxue Feng QUALIFIED
Jennifer S MarrierSpainOnyama Limba NEW
Octavia P SlusarskiGermanyStephen Shaw NEW
Ivar Q GlickJapanAsiya Javayant UNQUALIFIED
Mayumi D GlickArgentinaBernardo Dominic NEW
Mayumi K GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Smith O MaletUnited KingdomAsiya Javayant NEGOTIATION
Sinclair M SlusarskiGermanyAnna Fali UNQUALIFIED
Chavez O NickaBrazilIvan Magalhaes PROPOSAL
Aruna V FlosiIndiaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio O PaprockiIndia2026-06-27Rousseaux, Michael Esq NEGOTIATION80Amy Elsner
1001Maria Y GauchoBrazil2026-07-15King, Christopher A Esq RENEWAL15Asiya Javayant
1002Tony Z WaycottIndia2026-07-03Chanay, Jeffrey A Esq QUALIFIED68Asiya Javayant
1003Costa O MacleadFrance2026-06-30Dorl, James J Esq NEW93Elwin Sharvill
1004Greenwood P SchemmerRussia2026-07-13Dorl, James J Esq PROPOSAL86Ivan Magalhaes
1005Francesco W RimJapan2026-06-29Rousseaux, Michael Esq PROPOSAL51Ioni Bowcher
1006Izzy C MacleadBrazil2026-07-02Printing Dimensions PROPOSAL72Xuxue Feng
1007Rodrigues N ChuiSpain2026-07-17Feiner Bros NEGOTIATION66Elwin Sharvill
1008Leon R GlickBrazil2026-06-29Buckley Miller Wright NEW98Asiya Javayant
1009Octavia I FollerGermany2026-07-19Commercial Press UNQUALIFIED29Xuxue Feng
1010Misaki X ChuiAustralia2026-07-20Morlong Associates PROPOSAL1Ivan Magalhaes
1011Sinclair R BologniaArgentina2026-07-18Feltz Printing Service UNQUALIFIED2Bernardo Dominic
1012Octavia E SchemmerGermany2026-07-05Benton, John B Jr NEW15Xuxue Feng
1013James A AlbaresAustralia2026-07-06Dorl, James J Esq RENEWAL66Ioni Bowcher
1014Sinclair U SaylorsItaly2026-06-30Benton, John B Jr PROPOSAL73Asiya Javayant
1015Mayumi E MorascaFrance2026-07-04Chapman, Ross E Esq QUALIFIED88Elwin Sharvill
1016Smith S NestleIndia2026-07-09Rangoni Of Florence UNQUALIFIED97Ioni Bowcher
1017Silvio C CaldareraItaly2026-07-03Rangoni Of Florence QUALIFIED61Elwin Sharvill
1018Stacey C PoquetteGermany2026-07-18Chemel, James L Cpa RENEWAL43Ivan Magalhaes
1019Mayumi I WieserSpain2026-06-29Feiner Bros QUALIFIED30Xuxue Feng
1020Aditya O OldroydItaly2026-07-15Benton, John B Jr PROPOSAL90Stephen Shaw
1021Jennifer N AmigonFrance2026-07-05Commercial Press PROPOSAL62Onyama Limba
1022Maria X BowleyIndia2026-07-13Dorl, James J Esq NEW20Onyama Limba
1023Johnson Z BowleySpain2026-07-10Commercial Press UNQUALIFIED23Ivan Magalhaes
1024Jennifer C CaudyCanada2026-07-07Chapman, Ross E Esq PROPOSAL51Anna Fali
1025Deepesh T PaprockiBrazil2026-07-18Chapman, Ross E Esq QUALIFIED30Ioni Bowcher
1026Rodrigues O ShinkoAustralia2026-06-30Feltz Printing Service PROPOSAL67Onyama Limba
1027Salvatore S StockhamSpain2026-07-14Chapman, Ross E Esq NEGOTIATION29Ioni Bowcher
1028Arvin X RulapaughUnited Kingdom2026-07-13Printing Dimensions NEGOTIATION40Elwin Sharvill
1029Izzy B FigeroaItaly2026-07-19Chapman, Ross E Esq UNQUALIFIED13Ioni Bowcher
1030Silvio T IturbideBrazil2026-07-02Buckley Miller Wright PROPOSAL45Xuxue Feng
1031Johnson C OstroskyRussia2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED47Asiya Javayant
1032Ricardo Z FigeroaAustralia2026-07-14Chanay, Jeffrey A Esq NEGOTIATION74Anna Fali
1033Nicolas Q DilliardFrance2026-07-07Chemel, James L Cpa RENEWAL15Ioni Bowcher
1034Claire A GlickAustralia2026-06-25Dorl, James J Esq NEW85Ivan Magalhaes
1035Octavia R WaycottBrazil2026-06-26Chemel, James L Cpa UNQUALIFIED62Onyama Limba
1036Mayumi M BriddickItaly2026-06-25Morlong Associates RENEWAL0Onyama Limba
1037Munro E DarakjyBrazil2026-06-27Benton, John B Jr NEW51Onyama Limba
1038Jennifer Q TollnerCanada2026-07-19Rangoni Of Florence RENEWAL66Amy Elsner
1039Jefferson F ButtSpain2026-07-13Chanay, Jeffrey A Esq NEW93Asiya Javayant
1040Misaki W CampainCanada2026-07-12Truhlar And Truhlar Attys NEGOTIATION3Anna Fali
1041Sinclair Q KuskoAustralia2026-07-09Rangoni Of Florence RENEWAL26Xuxue Feng
1042Emily D WaycottIndia2026-06-29Rousseaux, Michael Esq NEGOTIATION66Amy Elsner
1043Misaki V KuskoUnited Kingdom2026-06-26Feltz Printing Service QUALIFIED92Ivan Magalhaes
1044Costa M OldroydJapan2026-07-06Printing Dimensions NEGOTIATION0Amy Elsner
1045Mujtaba G OstroskyCanada2026-07-15Morlong Associates RENEWAL43Stephen Shaw
1046Tony Z CaudyItaly2026-07-13Commercial Press PROPOSAL24Ioni Bowcher
1047Chavez V PerinUnited Kingdom2026-06-30Chapman, Ross E Esq PROPOSAL32Xuxue Feng
1048Clifford G SlusarskiGermany2026-07-20Rousseaux, Michael Esq NEW71Anna Fali
1049Francesco T ShinkoGermany2026-07-18Buckley Miller Wright UNQUALIFIED38Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Faith O KolmetzBrazilElwin Sharvill NEW
Juan X WieserRussiaIoni Bowcher QUALIFIED
Greenwood A PerinSpainXuxue Feng UNQUALIFIED
Silvio B WaycottArgentinaElwin Sharvill RENEWAL
Maisha T ShinkoItalyAsiya Javayant NEGOTIATION
Mujtaba B CaudyArgentinaAmy Elsner NEGOTIATION
Izzy R GillianItalyOnyama Limba QUALIFIED
Juan D MaletItalyAnna Fali RENEWAL
Aditya A VenereSpainAmy Elsner PROPOSAL
Alejandro L RutaIndiaAsiya Javayant RENEWAL
Aika N PaprockiGermanyIoni Bowcher NEW
Claire L VocelkaGermanyAnna Fali NEGOTIATION
Deepesh J NickaRussiaOnyama Limba PROPOSAL
Francesco S PaprockiArgentinaXuxue Feng PROPOSAL
Wickens Z MacleadArgentinaOnyama Limba RENEWAL
Aditya O StensethAustraliaElwin Sharvill PROPOSAL
Aditya S OldroydRussiaIvan Magalhaes PROPOSAL
Adams U CaldareraCanadaAmy Elsner QUALIFIED
Juan O MaletItalyElwin Sharvill PROPOSAL
Rodrigues F ShinkoCanadaAmy Elsner RENEWAL
Smith Y IturbideBrazilStephen Shaw UNQUALIFIED
Chavez J DoeBrazilIoni Bowcher UNQUALIFIED
Salvatore W RutaRussiaStephen Shaw PROPOSAL
Morrow C KolmetzCanadaIvan Magalhaes RENEWAL
Clifford M VocelkaFranceElwin Sharvill QUALIFIED
Faith P DarakjyIndiaXuxue Feng UNQUALIFIED
Misaki X RutaRussiaOnyama Limba RENEWAL
Nicolas U DoeFranceElwin Sharvill PROPOSAL
Costa S OldroydJapanAmy Elsner RENEWAL
Silvio R BriddickUnited KingdomOnyama Limba NEW
Clifford W TollnerAustraliaStephen Shaw NEW
Adams U VenereAustraliaAmy Elsner QUALIFIED
Ricardo H WaycottAustraliaElwin Sharvill NEGOTIATION
Aika J FlosiGermanyBernardo Dominic QUALIFIED
Alejandro O KolmetzGermanyElwin Sharvill PROPOSAL
Izzy T SaylorsUnited KingdomElwin Sharvill QUALIFIED
Claire A PoquetteFranceXuxue Feng UNQUALIFIED
Aika T FollerGermanyStephen Shaw RENEWAL
Isabel P GlickBrazilAmy Elsner NEGOTIATION
Octavia S SaylorsRussiaBernardo Dominic UNQUALIFIED
Rodrigues M AlbaresRussiaXuxue Feng NEGOTIATION
Jones Z AmigonArgentinaIvan Magalhaes RENEWAL
Julie P GauchoItalyAmy Elsner NEW
Darci U AlbaresUnited KingdomOnyama Limba RENEWAL
Jefferson Q MaletItalyStephen Shaw UNQUALIFIED
Jefferson R GlickFranceIvan Magalhaes NEGOTIATION
Aika C OldroydAustraliaIvan Magalhaes RENEWAL
Leja Y MorascaGermanyAsiya Javayant NEW
David I PaprockiArgentinaXuxue Feng RENEWAL
Murillo R FollerGermanyStephen Shaw NEW
Frozen Columns
Name
Maria G Sergi
Chavez C Gaucho
Deepesh L Royster
Rodrigues Z Royster
Morrow E Bolognia
Aditya K Vocelka
Greenwood J Morasca
Leon C Maclead
Rodrigues S Royster
Claire I Vocelka
Claire F Malet
Octavia C Rim
Greenwood F Stenseth
Stacey P Bolognia
Antonio V Marrier
Kadeem Q Darakjy
Ashley Z Kusko
Tony L Chui
Jeanfrancois Q Oldroyd
Sinclair T Butt
Isabel F Tollner
Antonio V Sergi
Leja H Gaucho
Misaki Q Kolmetz
Claire R Rim
Isabel J Venere
Wickens F Ostrosky
Chavez L Garufi
Jennifer O Gaucho
Darci W Tollner
Claire T Venere
Ricardo Y Iturbide
Antonio M Malet
Costa U Gillian
Kaitlin N Stenseth
Antonio A Albares
Silvio T Butt
Alejandro J Schemmer
Wickens Q Garufi
Jones P Chui
Chavez O Perin
Aruna I Campain
Aruna G Whobrey
Alejandro J Inouye
Leon K Rim
Deepesh T Amigon
Alejandro D Figeroa
Mayumi C Ostrosky
Johnson R Malet
Isabel Z Saylors
IdCountryDate
1000Spain2026-07-20
1001Australia2026-07-15
1002Russia2026-06-28
1003Argentina2026-06-21
1004France2026-07-18
1005United Kingdom2026-06-24
1006Germany2026-07-10
1007Russia2026-07-19
1008Japan2026-07-09
1009Canada2026-06-28
1010India2026-06-23
1011Germany2026-07-06
1012India2026-07-07
1013Spain2026-06-27
1014Australia2026-07-15
1015Russia2026-07-04
1016Russia2026-06-28
1017India2026-07-12
1018Canada2026-06-29
1019France2026-07-11
1020Brazil2026-07-06
1021Spain2026-06-27
1022Brazil2026-06-23
1023Argentina2026-06-23
1024India2026-07-14
1025Japan2026-07-03
1026France2026-06-30
1027Russia2026-06-27
1028Japan2026-07-18
1029Canada2026-07-09
1030Canada2026-07-08
1031Spain2026-06-22
1032Germany2026-07-10
1033Australia2026-06-22
1034Argentina2026-06-26
1035Spain2026-07-10
1036Canada2026-06-23
1037Japan2026-06-26
1038Canada2026-06-27
1039Germany2026-06-25
1040India2026-07-08
1041United Kingdom2026-07-14
1042United Kingdom2026-07-12
1043Japan2026-07-20
1044Germany2026-07-03
1045Japan2026-07-20
1046Japan2026-07-10
1047Brazil2026-07-04
1048Germany2026-07-19
1049Spain2026-06-28

On-Demand Data

NameIdCountryDate
Maisha H Rulapaugh1000Russia2026-06-27
Deepesh I Gillian1001Italy2026-07-11
Julie W Butt1002Australia2026-07-01
Arvin U Morasca1003Canada2026-07-02
Aruna K Wieser1004Canada2026-07-15
Leja W Paprocki1005Argentina2026-07-05
Arvin N Campain1006Russia2026-07-19
Leja T Albares1007France2026-06-30
Izzy E Tollner1008Australia2026-07-06
Murillo W Wieser1009United Kingdom2026-07-06
Chavez S Inouye1010Italy2026-07-04
Julie U Doe1011Spain2026-07-15
Aruna H Saylors1012Spain2026-07-19
Francesco G Kusko1013Australia2026-07-02
Ricardo R Garufi1014India2026-06-28
Faith X Kolmetz1015India2026-07-17
Stacey B Nestle1016Brazil2026-06-22
Alejandro T Schemmer1017Germany2026-07-17
Cody Y Oldroyd1018Argentina2026-06-22
Isabel A Briddick1019United Kingdom2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna E FlosiUnited KingdomIvan Magalhaes UNQUALIFIED
James X RulapaughCanadaAsiya Javayant PROPOSAL
Murillo W FigeroaAustraliaStephen Shaw NEGOTIATION
Silvio O IturbideBrazilIvan Magalhaes QUALIFIED
Morrow X InouyeUnited KingdomXuxue Feng NEW
Isabel X ChuiFranceOnyama Limba NEW
Munro Q BowleyAustraliaElwin Sharvill QUALIFIED
Morrow J OstroskyFranceAsiya Javayant QUALIFIED
Smith E GlickArgentinaAsiya Javayant RENEWAL
Adams A OldroydIndiaIoni Bowcher RENEWAL
Ricardo J FlosiBrazilAmy Elsner RENEWAL
Izzy I DarakjyArgentinaAnna Fali RENEWAL
Maisha J DilliardSpainOnyama Limba PROPOSAL
Claire B BowleyBrazilAmy Elsner NEW
Munro T NickaFranceIvan Magalhaes PROPOSAL
Salvatore U KolmetzFranceBernardo Dominic UNQUALIFIED
Ivar B SchemmerItalyBernardo Dominic PROPOSAL
Emily W FigeroaBrazilStephen Shaw QUALIFIED
Claire U FlosiUnited KingdomOnyama Limba UNQUALIFIED
Jones Y StensethCanadaOnyama Limba PROPOSAL
Misaki T GauchoCanadaXuxue Feng PROPOSAL
Cody L DarakjySpainBernardo Dominic NEW
Morrow S TollnerJapanIoni Bowcher NEW
Faith C CampainItalyBernardo Dominic NEW
Alejandro J FlosiAustraliaBernardo Dominic QUALIFIED
Silvio H FlosiBrazilBernardo Dominic NEGOTIATION
Leja V SlusarskiIndiaAnna Fali PROPOSAL
Greenwood V SaylorsRussiaAmy Elsner UNQUALIFIED
Jefferson O IturbideBrazilAnna Fali NEGOTIATION
Munro H NestleRussiaOnyama Limba RENEWAL
Ashley D BologniaBrazilAsiya Javayant UNQUALIFIED
Jeanfrancois T DilliardArgentinaAnna Fali QUALIFIED
Izzy V FollerArgentinaStephen Shaw NEW
Munro E GlickArgentinaXuxue Feng NEW
Mayumi N MaletJapanAmy Elsner UNQUALIFIED
Kadeem K NestleGermanyAsiya Javayant UNQUALIFIED
Jones M RutaSpainStephen Shaw PROPOSAL
Misaki E IturbideArgentinaXuxue Feng UNQUALIFIED
Deepesh W GarufiIndiaIvan Magalhaes NEW
Mujtaba Z AlbaresItalyElwin Sharvill 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>