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
Juan Z PerinBrazilAmy Elsner PROPOSAL
Juan I CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Clifford X BowleyRussiaIoni Bowcher NEW
Kadeem O CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Mayumi W RutaSpainAnna Fali QUALIFIED
Mayumi H SchemmerItalyIvan Magalhaes PROPOSAL
Adams U RutaArgentinaIvan Magalhaes UNQUALIFIED
Cody P DarakjyGermanyBernardo Dominic QUALIFIED
Ashley X StensethGermanyBernardo Dominic NEW
Rodrigues M MarrierUnited KingdomIoni Bowcher NEW
Stacey U FlosiCanadaOnyama Limba RENEWAL
Smith U IturbideCanadaAnna Fali NEW
Deepesh O KuskoAustraliaIvan Magalhaes QUALIFIED
Murillo H PaprockiItalyAnna Fali PROPOSAL
Chavez L MaletRussiaIoni Bowcher UNQUALIFIED
Munro I NickaRussiaAsiya Javayant NEW
David E WhobreyAustraliaAsiya Javayant NEGOTIATION
Ashley F BriddickItalyXuxue Feng RENEWAL
Wickens F SaylorsJapanOnyama Limba UNQUALIFIED
Mujtaba A KolmetzFranceAnna Fali NEGOTIATION
Julie L AmigonAustraliaIoni Bowcher UNQUALIFIED
Claire V AmigonUnited KingdomXuxue Feng UNQUALIFIED
Misaki H KuskoJapanAmy Elsner RENEWAL
Ashley Q KolmetzBrazilAmy Elsner QUALIFIED
Emily H GarufiArgentinaAsiya Javayant PROPOSAL
Octavia T FigeroaArgentinaElwin Sharvill RENEWAL
Emily I InouyeFranceAmy Elsner RENEWAL
Izzy P CaudyGermanyAsiya Javayant UNQUALIFIED
Costa F StensethAustraliaOnyama Limba NEGOTIATION
Nicolas Z CaudyJapanStephen Shaw QUALIFIED
Jeanfrancois D FerenczAustraliaAsiya Javayant NEGOTIATION
Aditya P MorascaRussiaIvan Magalhaes UNQUALIFIED
Antonio F CaudyAustraliaElwin Sharvill UNQUALIFIED
Aruna B TollnerBrazilXuxue Feng QUALIFIED
James E RulapaughBrazilAmy Elsner UNQUALIFIED
Ivar A FlosiRussiaOnyama Limba PROPOSAL
Maria B RutaIndiaElwin Sharvill PROPOSAL
Costa B TollnerItalyIvan Magalhaes RENEWAL
Cody M NickaCanadaIoni Bowcher NEGOTIATION
Leon O SlusarskiUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois Y FerenczBrazilElwin Sharvill RENEWAL
Emily E OstroskyUnited KingdomStephen Shaw NEW
Cody J SaylorsSpainXuxue Feng UNQUALIFIED
Jeanfrancois Q MacleadAustraliaAnna Fali UNQUALIFIED
Ricardo L MarrierBrazilXuxue Feng NEW
Johnson G AmigonIndiaAmy Elsner RENEWAL
Kadeem T GarufiCanadaBernardo Dominic RENEWAL
Ashley D TollnerUnited KingdomStephen Shaw QUALIFIED
Jeanfrancois H GlickArgentinaStephen Shaw RENEWAL
Emily X FollerJapanStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi N FigeroaIndiaElwin Sharvill UNQUALIFIED
Smith F MaletArgentinaBernardo Dominic NEW
Ashley E BologniaArgentinaBernardo Dominic RENEWAL
Claire J SergiUnited KingdomAmy Elsner NEGOTIATION
Misaki G WhobreyCanadaOnyama Limba PROPOSAL
Jefferson P InouyeSpainXuxue Feng NEGOTIATION
Wickens F SchemmerSpainStephen Shaw RENEWAL
Jefferson D DarakjyJapanIvan Magalhaes PROPOSAL
Maria W MaletAustraliaXuxue Feng NEGOTIATION
Sinclair U RutaJapanOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith Q KuskoItaly2026-07-20Benton, John B Jr NEGOTIATION0Onyama Limba
1001Cody X DoeCanada2026-07-02Chemel, James L Cpa UNQUALIFIED25Stephen Shaw
1002David D MorascaGermany2026-07-18Buckley Miller Wright NEW69Elwin Sharvill
1003Chavez P FlosiAustralia2026-07-26Commercial Press NEGOTIATION29Ivan Magalhaes
1004Stacey U CaudyIndia2026-07-21Benton, John B Jr RENEWAL78Anna Fali
1005Kaitlin S SchemmerIndia2026-07-26Dorl, James J Esq NEW53Ioni Bowcher
1006Darci P PerinSpain2026-07-16Chemel, James L Cpa QUALIFIED87Onyama Limba
1007Maisha X GlickIndia2026-07-14Dorl, James J Esq NEGOTIATION15Amy Elsner
1008Salvatore B FlosiGermany2026-07-18Morlong Associates NEW13Stephen Shaw
1009Julie N StensethFrance2026-07-12Chapman, Ross E Esq RENEWAL48Ioni Bowcher
1010Costa I KolmetzFrance2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED31Ivan Magalhaes
1011Leja C FigeroaRussia2026-07-05Truhlar And Truhlar Attys QUALIFIED54Bernardo Dominic
1012Wickens Z NickaGermany2026-07-06Commercial Press RENEWAL15Bernardo Dominic
1013Isabel P ShinkoArgentina2026-07-25Buckley Miller Wright NEW22Amy Elsner
1014Wickens L ButtIndia2026-07-17Benton, John B Jr NEW43Stephen Shaw
1015Cody Y ButtArgentina2026-07-17Dorl, James J Esq PROPOSAL74Asiya Javayant
1016Rodrigues K DilliardSpain2026-07-08Buckley Miller Wright NEGOTIATION5Onyama Limba
1017Mujtaba G SlusarskiBrazil2026-07-05Printing Dimensions QUALIFIED13Stephen Shaw
1018Costa T MarrierIndia2026-07-13Chanay, Jeffrey A Esq NEW58Asiya Javayant
1019Cody Q WieserBrazil2026-07-16Benton, John B Jr NEW35Elwin Sharvill
1020Maria W ChuiJapan2026-07-19Printing Dimensions UNQUALIFIED17Stephen Shaw
1021Mayumi X StensethFrance2026-07-18Rousseaux, Michael Esq PROPOSAL39Asiya Javayant
1022Mujtaba W WaycottCanada2026-07-18Rangoni Of Florence NEGOTIATION70Ioni Bowcher
1023Emily G PoquetteJapan2026-07-29Chemel, James L Cpa NEW66Elwin Sharvill
1024Deepesh P MaletGermany2026-07-18Feiner Bros QUALIFIED9Anna Fali
1025Misaki B TollnerBrazil2026-07-30Truhlar And Truhlar Attys NEGOTIATION75Xuxue Feng
1026Ricardo Y SchemmerGermany2026-07-26Chemel, James L Cpa NEW3Bernardo Dominic
1027Faith B GlickIndia2026-07-05Feltz Printing Service PROPOSAL84Asiya Javayant
1028Darci C StockhamItaly2026-07-12Feiner Bros PROPOSAL91Amy Elsner
1029Leon Z ChuiFrance2026-07-20Benton, John B Jr QUALIFIED34Bernardo Dominic
1030Jennifer I GarufiFrance2026-07-29Buckley Miller Wright RENEWAL2Stephen Shaw
1031Claire L KolmetzAustralia2026-07-29Rousseaux, Michael Esq QUALIFIED92Xuxue Feng
1032Munro I KolmetzRussia2026-07-13Feiner Bros NEGOTIATION18Ivan Magalhaes
1033Aditya Q StensethBrazil2026-07-19Feiner Bros NEGOTIATION10Ioni Bowcher
1034Isabel S MaletJapan2026-07-14Feiner Bros PROPOSAL40Asiya Javayant
1035Leja V CaudyArgentina2026-07-15Feltz Printing Service NEGOTIATION2Ioni Bowcher
1036Munro S BriddickGermany2026-07-28Commercial Press PROPOSAL0Amy Elsner
1037Greenwood B GlickIndia2026-07-16Dorl, James J Esq QUALIFIED78Stephen Shaw
1038Tony F RulapaughUnited Kingdom2026-07-28Chemel, James L Cpa QUALIFIED67Xuxue Feng
1039Munro E RulapaughItaly2026-07-18Feltz Printing Service PROPOSAL57Anna Fali
1040Silvio T StensethGermany2026-07-02Morlong Associates NEW61Anna Fali
1041Adams T BowleyBrazil2026-07-24Morlong Associates RENEWAL64Xuxue Feng
1042Maria S OldroydUnited Kingdom2026-07-21Benton, John B Jr NEGOTIATION95Ivan Magalhaes
1043Jones J BriddickGermany2026-07-12Rousseaux, Michael Esq QUALIFIED96Asiya Javayant
1044Cody J PaprockiBrazil2026-07-25Rangoni Of Florence PROPOSAL29Xuxue Feng
1045Jefferson C ChuiItaly2026-07-26King, Christopher A Esq UNQUALIFIED14Stephen Shaw
1046Deepesh A OstroskySpain2026-07-30Chanay, Jeffrey A Esq QUALIFIED98Ivan Magalhaes
1047Kaitlin B KuskoGermany2026-07-24Printing Dimensions PROPOSAL73Xuxue Feng
1048Stacey D MorascaArgentina2026-07-29Chapman, Ross E Esq PROPOSAL7Stephen Shaw
1049Francesco T CaldareraRussia2026-07-15Chapman, Ross E Esq PROPOSAL45Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Emily L FerenczArgentinaAsiya Javayant RENEWAL
Isabel X SlusarskiUnited KingdomStephen Shaw NEW
Maria D OldroydIndiaElwin Sharvill PROPOSAL
Mujtaba J SergiGermanyBernardo Dominic PROPOSAL
Mayumi F SergiIndiaStephen Shaw PROPOSAL
Leon K SaylorsSpainAsiya Javayant NEW
Arvin M GlickJapanElwin Sharvill RENEWAL
Emily W NestleGermanyElwin Sharvill QUALIFIED
Juan O KolmetzArgentinaElwin Sharvill PROPOSAL
Misaki O MaletRussiaIoni Bowcher NEGOTIATION
Ashley G KolmetzUnited KingdomIoni Bowcher NEGOTIATION
Johnson W MaletFranceAmy Elsner PROPOSAL
Nicolas Q DarakjyBrazilXuxue Feng NEGOTIATION
Aika P DarakjyIndiaIvan Magalhaes NEW
Misaki E CampainUnited KingdomOnyama Limba QUALIFIED
Isabel B PoquetteFranceBernardo Dominic UNQUALIFIED
Leon C RoysterGermanyBernardo Dominic UNQUALIFIED
Arvin A CaudyCanadaAsiya Javayant PROPOSAL
Emily U InouyeGermanyOnyama Limba NEW
Ashley O DarakjyJapanIvan Magalhaes RENEWAL
Costa M OstroskyAustraliaXuxue Feng PROPOSAL
Mujtaba Z DoeItalyAnna Fali NEW
Stacey K SlusarskiCanadaStephen Shaw UNQUALIFIED
Adams N OstroskyRussiaBernardo Dominic PROPOSAL
Aika C PaprockiIndiaStephen Shaw NEGOTIATION
Munro U AmigonAustraliaStephen Shaw UNQUALIFIED
Munro H BriddickBrazilElwin Sharvill QUALIFIED
Ashley T RulapaughJapanOnyama Limba NEW
Arvin E OldroydIndiaOnyama Limba NEGOTIATION
Octavia R GarufiItalyElwin Sharvill NEGOTIATION
Faith K IturbideItalyBernardo Dominic PROPOSAL
Mujtaba Q ButtAustraliaStephen Shaw NEW
Arvin R RulapaughArgentinaBernardo Dominic QUALIFIED
Claire A GillianUnited KingdomIoni Bowcher NEW
Kaitlin O PaprockiArgentinaAmy Elsner UNQUALIFIED
Maisha S MarrierIndiaElwin Sharvill NEGOTIATION
Leon B VenereBrazilXuxue Feng NEGOTIATION
Aruna H GarufiFranceXuxue Feng NEGOTIATION
Tony Z CampainArgentinaAmy Elsner QUALIFIED
David R SchemmerJapanOnyama Limba UNQUALIFIED
Antonio G WaycottAustraliaStephen Shaw NEW
Ivar R WieserIndiaStephen Shaw QUALIFIED
Morrow C SlusarskiGermanyOnyama Limba NEW
Juan L MaletItalyIoni Bowcher PROPOSAL
Isabel M CampainAustraliaAsiya Javayant PROPOSAL
Tony D CaudyUnited KingdomBernardo Dominic QUALIFIED
Francesco U GillianFranceElwin Sharvill NEGOTIATION
Juan I MorascaItalyOnyama Limba UNQUALIFIED
Smith O OldroydCanadaAnna Fali RENEWAL
Morrow H PaprockiIndiaXuxue Feng NEGOTIATION
Frozen Columns
Name
Misaki R Figeroa
Smith O Figeroa
Jeanfrancois B Rulapaugh
Kaitlin W Darakjy
Isabel B Campain
Sinclair L Slusarski
Nicolas R Campain
Alejandro D Shinko
Greenwood D Oldroyd
Mujtaba P Darakjy
Chavez E Rulapaugh
Munro N Nicka
Smith F Venere
Nicolas U Figeroa
Nicolas Y Nicka
Aditya T Inouye
Wickens I Kolmetz
Octavia P Malet
Juan V Bowley
Aruna I Darakjy
Alejandro Q Sergi
Aruna W Stenseth
Isabel C Caudy
Costa G Doe
James D Wieser
Antonio G Figeroa
Sinclair J Sergi
Costa B Nestle
David H Gillian
Faith A Gillian
Costa Z Gaucho
Jennifer E Slusarski
Silvio M Vocelka
Stacey O Rulapaugh
Ricardo P Glick
Greenwood I Ruta
Munro O Campain
Wickens G Dilliard
Jones K Poquette
Tony C Paprocki
Aruna W Nicka
Aditya P Perin
Sinclair N Ruta
Rodrigues U Rulapaugh
Wickens K Amigon
Emily W Dilliard
Johnson W Flosi
Jennifer K Figeroa
Arvin L Poquette
Clifford G Caldarera
IdCountryDate
1000Canada2026-07-05
1001Japan2026-07-29
1002Japan2026-07-09
1003France2026-07-24
1004Canada2026-07-14
1005Japan2026-07-20
1006Spain2026-07-18
1007Spain2026-07-10
1008Italy2026-07-26
1009Germany2026-07-08
1010Italy2026-07-29
1011India2026-07-23
1012Spain2026-07-26
1013Canada2026-07-15
1014Australia2026-07-07
1015Canada2026-07-25
1016Argentina2026-07-30
1017India2026-07-30
1018Italy2026-07-11
1019Russia2026-07-13
1020Germany2026-07-13
1021Argentina2026-07-10
1022Canada2026-07-09
1023Brazil2026-07-22
1024Canada2026-07-08
1025Japan2026-07-15
1026United Kingdom2026-07-12
1027Australia2026-07-12
1028Italy2026-07-29
1029Spain2026-07-22
1030Russia2026-07-17
1031Japan2026-07-11
1032Japan2026-07-05
1033United Kingdom2026-07-08
1034Russia2026-07-01
1035Russia2026-07-12
1036France2026-07-27
1037Russia2026-07-08
1038India2026-07-30
1039Italy2026-07-23
1040India2026-07-17
1041Spain2026-07-24
1042Australia2026-07-24
1043Argentina2026-07-04
1044Japan2026-07-17
1045Brazil2026-07-22
1046United Kingdom2026-07-07
1047India2026-07-23
1048Russia2026-07-09
1049India2026-07-04

On-Demand Data

NameIdCountryDate
Isabel F Kusko1000Italy2026-07-05
Jefferson C Bowley1001Italy2026-07-13
Aditya L Bowley1002Italy2026-07-15
Francesco Q Stockham1003Japan2026-07-27
Clifford Z Venere1004Argentina2026-07-11
Sinclair Q Sergi1005Italy2026-07-09
Aruna E Chui1006Germany2026-07-20
Greenwood C Nestle1007United Kingdom2026-07-15
Isabel U Marrier1008India2026-07-23
Izzy Q Garufi1009Australia2026-07-27
Misaki M Bolognia1010Australia2026-07-27
Sinclair C Rim1011Brazil2026-07-16
Leon X Marrier1012Brazil2026-07-13
Clifford H Royster1013France2026-07-29
Francesco D Butt1014Spain2026-07-06
Johnson O Rulapaugh1015Russia2026-07-12
Ashley Q Caldarera1016Canada2026-07-01
Izzy M Caldarera1017Japan2026-07-03
Adams T Gillian1018Japan2026-07-03
Jones H Poquette1019Argentina2026-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy C PaprockiUnited KingdomXuxue Feng PROPOSAL
Ashley U OstroskyArgentinaElwin Sharvill UNQUALIFIED
Maria F SergiItalyOnyama Limba NEGOTIATION
Clifford Y CaldareraGermanyAnna Fali NEGOTIATION
Maria R VenereAustraliaAsiya Javayant PROPOSAL
Isabel R CaldareraArgentinaBernardo Dominic NEGOTIATION
Silvio X SchemmerJapanIvan Magalhaes RENEWAL
Sinclair T BowleyRussiaIoni Bowcher NEGOTIATION
Rodrigues C GauchoFranceBernardo Dominic NEGOTIATION
Emily A OldroydJapanIoni Bowcher UNQUALIFIED
Munro T FigeroaItalyIoni Bowcher QUALIFIED
Munro V IturbideBrazilStephen Shaw UNQUALIFIED
Misaki O MaletArgentinaIoni Bowcher UNQUALIFIED
Stacey H FerenczUnited KingdomOnyama Limba NEGOTIATION
Greenwood V ChuiAustraliaOnyama Limba RENEWAL
Tony O SlusarskiUnited KingdomAmy Elsner RENEWAL
Morrow X RulapaughItalyAsiya Javayant NEW
Ivar R FlosiItalyIvan Magalhaes QUALIFIED
Ivar G RutaBrazilIvan Magalhaes NEGOTIATION
David B AlbaresAustraliaAmy Elsner RENEWAL
Jeanfrancois U GauchoItalyOnyama Limba NEGOTIATION
Clifford D MarrierUnited KingdomXuxue Feng RENEWAL
Smith A InouyeArgentinaAmy Elsner QUALIFIED
Greenwood R WaycottArgentinaIvan Magalhaes NEGOTIATION
Jefferson H OldroydUnited KingdomBernardo Dominic NEGOTIATION
Nicolas S BriddickCanadaBernardo Dominic QUALIFIED
Smith P OldroydCanadaIvan Magalhaes PROPOSAL
Alejandro N PerinRussiaAmy Elsner NEW
Ricardo P RimRussiaOnyama Limba RENEWAL
Deepesh M SchemmerIndiaStephen Shaw UNQUALIFIED
Jones H VocelkaCanadaAmy Elsner NEW
Leja G FollerUnited KingdomAsiya Javayant QUALIFIED
Misaki G FollerGermanyXuxue Feng NEW
Octavia M GlickAustraliaAsiya Javayant NEW
Silvio W GauchoAustraliaAnna Fali PROPOSAL
Ashley D TollnerItalyAnna Fali QUALIFIED
Morrow K WhobreyFranceAnna Fali UNQUALIFIED
Claire L BologniaItalyBernardo Dominic UNQUALIFIED
Johnson J ChuiArgentinaAmy Elsner NEW
Johnson V AmigonArgentinaStephen 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>