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 T RimItalyAsiya Javayant PROPOSAL
Maria J StensethJapanXuxue Feng QUALIFIED
Ricardo O ShinkoCanadaXuxue Feng NEW
James A ChuiCanadaElwin Sharvill UNQUALIFIED
Deepesh O MorascaBrazilXuxue Feng NEW
Murillo R VocelkaGermanyAsiya Javayant RENEWAL
Stacey G DarakjySpainBernardo Dominic NEGOTIATION
Kaitlin S InouyeCanadaElwin Sharvill NEGOTIATION
Juan M FollerGermanyAsiya Javayant NEGOTIATION
Clifford V RimSpainAmy Elsner UNQUALIFIED
Emily F ShinkoBrazilIoni Bowcher NEGOTIATION
Octavia V BologniaUnited KingdomAsiya Javayant QUALIFIED
Jennifer E MaletAustraliaAnna Fali NEGOTIATION
Francesco E TollnerJapanIvan Magalhaes NEW
Isabel D PoquetteIndiaAsiya Javayant NEGOTIATION
Morrow A StensethUnited KingdomAmy Elsner NEW
Chavez F NestleArgentinaAmy Elsner PROPOSAL
Mujtaba Y WieserJapanStephen Shaw UNQUALIFIED
Antonio K CaldareraSpainAsiya Javayant NEGOTIATION
Jennifer V RulapaughFranceIoni Bowcher UNQUALIFIED
Rodrigues E MarrierRussiaAsiya Javayant UNQUALIFIED
Sinclair P MaletGermanyXuxue Feng NEW
Cody U KolmetzItalyStephen Shaw PROPOSAL
Leon Y DilliardItalyIoni Bowcher RENEWAL
Jeanfrancois T RimCanadaAnna Fali QUALIFIED
Mayumi U AmigonUnited KingdomAmy Elsner UNQUALIFIED
Aditya J AmigonSpainAnna Fali UNQUALIFIED
Antonio C MacleadRussiaAsiya Javayant RENEWAL
Claire K AmigonRussiaBernardo Dominic NEGOTIATION
Stacey Z MorascaArgentinaBernardo Dominic NEW
Smith F OldroydBrazilAmy Elsner UNQUALIFIED
Munro N DoeAustraliaAnna Fali RENEWAL
Chavez T CaudyRussiaXuxue Feng PROPOSAL
Johnson K DoeSpainAnna Fali NEGOTIATION
Ivar K TollnerFranceIvan Magalhaes UNQUALIFIED
David M BriddickJapanAsiya Javayant NEW
Claire V AmigonGermanyStephen Shaw NEGOTIATION
Wickens J IturbideUnited KingdomAsiya Javayant RENEWAL
Octavia D DilliardIndiaOnyama Limba RENEWAL
Jefferson J PerinRussiaAnna Fali NEGOTIATION
Maria T MacleadCanadaAsiya Javayant UNQUALIFIED
Francesco Q CampainSpainElwin Sharvill QUALIFIED
Faith B SlusarskiSpainStephen Shaw UNQUALIFIED
Arvin K FollerJapanStephen Shaw QUALIFIED
Arvin D CampainGermanyIoni Bowcher NEGOTIATION
Kadeem F CampainIndiaBernardo Dominic QUALIFIED
Stacey U BologniaBrazilOnyama Limba RENEWAL
Arvin W DoeArgentinaAmy Elsner NEGOTIATION
Julie K OstroskyFranceStephen Shaw RENEWAL
Rodrigues R StockhamAustraliaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
David I GlickIndiaElwin Sharvill PROPOSAL
Munro T SlusarskiGermanyIvan Magalhaes PROPOSAL
Wickens M WaycottArgentinaOnyama Limba RENEWAL
Maisha R SchemmerGermanyElwin Sharvill UNQUALIFIED
Mujtaba F DilliardCanadaOnyama Limba UNQUALIFIED
Darci P ShinkoItalyBernardo Dominic UNQUALIFIED
Claire Q ButtItalyAsiya Javayant NEGOTIATION
Tony F MarrierAustraliaStephen Shaw UNQUALIFIED
Isabel P WhobreyIndiaAnna Fali QUALIFIED
Jennifer E FigeroaIndiaAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire Y TollnerIndia2026-07-19Buckley Miller Wright NEW21Elwin Sharvill
1001Deepesh A VenereBrazil2026-07-11Chanay, Jeffrey A Esq PROPOSAL16Asiya Javayant
1002Sinclair F RulapaughRussia2026-07-19Feiner Bros UNQUALIFIED11Stephen Shaw
1003Izzy R FollerBrazil2026-07-07Truhlar And Truhlar Attys UNQUALIFIED16Anna Fali
1004Sinclair U DilliardIndia2026-07-17King, Christopher A Esq QUALIFIED38Onyama Limba
1005Maisha A TollnerRussia2026-07-06Commercial Press NEW83Bernardo Dominic
1006Salvatore S StockhamItaly2026-07-18Rangoni Of Florence RENEWAL23Anna Fali
1007Octavia T InouyeItaly2026-07-10King, Christopher A Esq PROPOSAL48Ivan Magalhaes
1008Jefferson N DarakjyBrazil2026-06-25Benton, John B Jr PROPOSAL81Xuxue Feng
1009Aditya B GauchoSpain2026-06-25Truhlar And Truhlar Attys PROPOSAL17Amy Elsner
1010Maisha Z GillianJapan2026-06-25Morlong Associates NEW19Xuxue Feng
1011Ricardo H ButtJapan2026-07-14Truhlar And Truhlar Attys PROPOSAL51Stephen Shaw
1012Emily D WaycottIndia2026-06-24Rangoni Of Florence UNQUALIFIED88Onyama Limba
1013Smith O AlbaresFrance2026-06-25Printing Dimensions PROPOSAL92Amy Elsner
1014Maisha U WaycottBrazil2026-07-20Benton, John B Jr PROPOSAL17Stephen Shaw
1015Jones T ShinkoIndia2026-06-24Feiner Bros PROPOSAL66Bernardo Dominic
1016Izzy R CaldareraFrance2026-07-12Chapman, Ross E Esq UNQUALIFIED6Onyama Limba
1017Francesco M RutaFrance2026-06-22Feltz Printing Service NEGOTIATION16Bernardo Dominic
1018Octavia T MaletIndia2026-07-03Benton, John B Jr NEW59Amy Elsner
1019Stacey F AlbaresBrazil2026-07-04Buckley Miller Wright PROPOSAL92Elwin Sharvill
1020Mujtaba L ChuiItaly2026-06-27Chemel, James L Cpa NEGOTIATION0Asiya Javayant
1021Jefferson Q MorascaJapan2026-07-11Buckley Miller Wright QUALIFIED52Bernardo Dominic
1022Faith F GarufiSpain2026-07-04Rangoni Of Florence RENEWAL21Onyama Limba
1023Adams A PaprockiGermany2026-06-25King, Christopher A Esq PROPOSAL2Asiya Javayant
1024Antonio Q BriddickGermany2026-07-04Chapman, Ross E Esq NEW19Amy Elsner
1025Misaki W BriddickIndia2026-07-14Commercial Press PROPOSAL68Xuxue Feng
1026Wickens E ShinkoJapan2026-06-21Feiner Bros PROPOSAL20Amy Elsner
1027Octavia B SaylorsBrazil2026-07-16Buckley Miller Wright NEGOTIATION75Stephen Shaw
1028Francesco A SergiSpain2026-07-10Dorl, James J Esq QUALIFIED1Ivan Magalhaes
1029Stacey W PoquetteRussia2026-07-04Commercial Press UNQUALIFIED67Xuxue Feng
1030Wickens J RimSpain2026-07-14Dorl, James J Esq RENEWAL50Elwin Sharvill
1031Alejandro E FlosiCanada2026-07-17Chemel, James L Cpa QUALIFIED19Stephen Shaw
1032Aika Q GillianRussia2026-07-20Printing Dimensions QUALIFIED35Amy Elsner
1033Clifford H BriddickFrance2026-07-01Chapman, Ross E Esq QUALIFIED90Amy Elsner
1034Deepesh C RulapaughItaly2026-06-29Buckley Miller Wright RENEWAL80Amy Elsner
1035Kaitlin B SergiJapan2026-07-04Printing Dimensions QUALIFIED18Stephen Shaw
1036Jennifer F MaletFrance2026-06-28Feiner Bros NEW72Stephen Shaw
1037Maisha M GauchoCanada2026-07-11Printing Dimensions NEW23Ioni Bowcher
1038Julie L MorascaArgentina2026-07-20Feiner Bros RENEWAL4Bernardo Dominic
1039Morrow O DilliardUnited Kingdom2026-06-25Feltz Printing Service QUALIFIED97Onyama Limba
1040Salvatore M SchemmerJapan2026-07-08Morlong Associates UNQUALIFIED57Asiya Javayant
1041Aruna U GarufiIndia2026-07-18Dorl, James J Esq UNQUALIFIED56Anna Fali
1042Juan K RutaIndia2026-07-08Buckley Miller Wright NEGOTIATION9Asiya Javayant
1043Salvatore C FollerRussia2026-07-11Buckley Miller Wright RENEWAL72Amy Elsner
1044Claire Z SergiArgentina2026-06-22Benton, John B Jr UNQUALIFIED15Anna Fali
1045Sinclair W PaprockiGermany2026-07-09Feltz Printing Service NEW60Onyama Limba
1046Isabel W FlosiArgentina2026-06-28Rousseaux, Michael Esq QUALIFIED99Anna Fali
1047James U DarakjyBrazil2026-07-05Feiner Bros PROPOSAL4Onyama Limba
1048Clifford S SlusarskiUnited Kingdom2026-07-04Chapman, Ross E Esq PROPOSAL62Xuxue Feng
1049Stacey O VenereIndia2026-06-21Chanay, Jeffrey A Esq RENEWAL88Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Murillo F BologniaFranceXuxue Feng PROPOSAL
Ricardo O AmigonItalyIvan Magalhaes QUALIFIED
Greenwood C TollnerRussiaXuxue Feng UNQUALIFIED
Antonio V InouyeGermanyElwin Sharvill RENEWAL
Isabel P FigeroaIndiaIoni Bowcher PROPOSAL
Wickens Z KolmetzAustraliaIvan Magalhaes QUALIFIED
Ashley A OstroskyAustraliaOnyama Limba PROPOSAL
Misaki V KolmetzArgentinaStephen Shaw NEGOTIATION
James P MacleadFranceBernardo Dominic QUALIFIED
Kadeem N GlickJapanAnna Fali NEW
Juan Q AmigonSpainElwin Sharvill PROPOSAL
Jeanfrancois A RutaIndiaAmy Elsner PROPOSAL
Darci N SergiGermanyStephen Shaw NEGOTIATION
Leon R WieserIndiaAnna Fali PROPOSAL
Munro S PerinGermanyIoni Bowcher QUALIFIED
Silvio R StockhamSpainIvan Magalhaes NEGOTIATION
Misaki J IturbideGermanyAmy Elsner QUALIFIED
Clifford E WieserUnited KingdomStephen Shaw UNQUALIFIED
Emily F StockhamJapanIoni Bowcher NEW
Emily X MarrierUnited KingdomStephen Shaw QUALIFIED
Maisha H MorascaAustraliaIvan Magalhaes PROPOSAL
Sinclair K DoeGermanyXuxue Feng UNQUALIFIED
Smith N AlbaresArgentinaStephen Shaw UNQUALIFIED
Costa C KuskoBrazilIoni Bowcher RENEWAL
Mujtaba T RoysterJapanIoni Bowcher NEGOTIATION
Leon B KolmetzRussiaElwin Sharvill PROPOSAL
Antonio N FerenczIndiaElwin Sharvill RENEWAL
Aruna K MarrierSpainXuxue Feng NEW
Jeanfrancois K SergiSpainOnyama Limba QUALIFIED
Julie Z CaudySpainIoni Bowcher UNQUALIFIED
Aditya Y RutaCanadaOnyama Limba QUALIFIED
Isabel E DoeItalyOnyama Limba NEGOTIATION
Jennifer O DarakjyFranceAmy Elsner UNQUALIFIED
Aditya F OldroydFranceXuxue Feng QUALIFIED
Maisha D GillianCanadaIvan Magalhaes NEGOTIATION
Greenwood V PoquetteBrazilOnyama Limba UNQUALIFIED
Deepesh E MarrierSpainElwin Sharvill QUALIFIED
Jeanfrancois U RimUnited KingdomBernardo Dominic NEW
Kaitlin I DoeIndiaStephen Shaw NEGOTIATION
Aditya C IturbideBrazilOnyama Limba NEW
Julie H OstroskyAustraliaOnyama Limba QUALIFIED
Octavia K PaprockiFranceXuxue Feng RENEWAL
Aika J RoysterIndiaElwin Sharvill NEW
Aruna W AmigonBrazilElwin Sharvill PROPOSAL
Deepesh I WieserAustraliaElwin Sharvill UNQUALIFIED
Stacey N DoeIndiaOnyama Limba NEGOTIATION
Aika X BowleyJapanStephen Shaw QUALIFIED
Izzy S MarrierSpainBernardo Dominic PROPOSAL
Adams P BriddickGermanyIoni Bowcher NEW
Mayumi G FerenczFranceAsiya Javayant NEW
Frozen Columns
Name
Mayumi Q Inouye
Kadeem Z Doe
Wickens S Stenseth
Costa D Marrier
James X Wieser
Jones Z Briddick
Jeanfrancois R Campain
Aika D Rulapaugh
Leon K Inouye
Darci V Glick
Kaitlin W Gaucho
Izzy R Ferencz
Cody A Shinko
Greenwood H Oldroyd
Mayumi L Maclead
Izzy U Albares
Costa Q Kolmetz
Darci B Ferencz
Munro Y Paprocki
Salvatore Q Flosi
Izzy J Rim
Emily U Stockham
Kadeem M Figeroa
Cody R Venere
Sinclair Z Briddick
Jefferson A Maclead
David W Kolmetz
Adams N Saylors
Leon J Kusko
Mujtaba I Rim
Maria W Doe
Leja K Shinko
Wickens S Nicka
Wickens T Foller
Maria Z Malet
Darci M Bowley
Maisha Y Rim
Jones O Perin
Stacey H Doe
Wickens P Sergi
Tony H Malet
Mayumi B Dilliard
Chavez M Venere
Maisha K Malet
Maisha G Briddick
Juan Z Glick
Johnson A Dilliard
Maria I Maclead
Smith O Kusko
Jeanfrancois W Kusko
IdCountryDate
1000Russia2026-07-14
1001Italy2026-07-01
1002Australia2026-06-21
1003Argentina2026-07-08
1004Germany2026-07-11
1005Germany2026-07-06
1006Italy2026-07-01
1007United Kingdom2026-07-06
1008Germany2026-07-12
1009Italy2026-06-29
1010Spain2026-07-18
1011Canada2026-07-04
1012Russia2026-07-10
1013Argentina2026-07-18
1014United Kingdom2026-07-18
1015Brazil2026-06-24
1016Italy2026-07-02
1017Australia2026-06-26
1018Russia2026-06-21
1019Russia2026-07-20
1020India2026-07-07
1021Russia2026-07-17
1022Argentina2026-07-10
1023India2026-07-14
1024Brazil2026-06-27
1025Germany2026-07-06
1026Canada2026-07-12
1027Italy2026-07-09
1028Italy2026-06-23
1029Germany2026-07-05
1030Germany2026-06-29
1031United Kingdom2026-07-17
1032Australia2026-07-10
1033Brazil2026-07-07
1034Argentina2026-07-16
1035Australia2026-07-01
1036Spain2026-06-30
1037Russia2026-07-16
1038Spain2026-06-28
1039Italy2026-07-19
1040Argentina2026-07-19
1041United Kingdom2026-06-29
1042India2026-07-20
1043India2026-07-09
1044India2026-07-11
1045Spain2026-07-13
1046Germany2026-07-05
1047India2026-07-08
1048Canada2026-07-10
1049Canada2026-07-11

On-Demand Data

NameIdCountryDate
Rodrigues Y Schemmer1000Canada2026-07-08
Aruna U Bolognia1001Italy2026-06-21
Costa D Tollner1002Italy2026-07-01
Munro T Darakjy1003India2026-06-26
Claire S Amigon1004United Kingdom2026-06-24
Francesco I Waycott1005Canada2026-07-14
Stacey J Sergi1006Brazil2026-07-20
Stacey F Poquette1007India2026-07-04
Silvio W Venere1008France2026-07-18
Rodrigues K Malet1009Argentina2026-06-27
Aika L Morasca1010France2026-07-07
Wickens W Maclead1011Italy2026-07-10
Morrow M Malet1012Brazil2026-07-18
Stacey V Gaucho1013India2026-06-29
David M Rim1014France2026-07-17
Kaitlin U Darakjy1015Argentina2026-06-21
Tony S Dilliard1016India2026-07-11
Jones X Figeroa1017Russia2026-06-21
Jefferson X Bolognia1018India2026-07-19
Aika G Venere1019Russia2026-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones D ShinkoFranceElwin Sharvill PROPOSAL
Aditya Q NickaSpainStephen Shaw NEW
Misaki X OstroskyJapanAnna Fali QUALIFIED
Francesco A ShinkoSpainXuxue Feng NEGOTIATION
Darci X SchemmerArgentinaAnna Fali UNQUALIFIED
Rodrigues K WieserArgentinaOnyama Limba PROPOSAL
Mayumi R MaletAustraliaBernardo Dominic UNQUALIFIED
Murillo V SaylorsJapanAsiya Javayant RENEWAL
Johnson F ChuiItalyAnna Fali PROPOSAL
Clifford O MorascaCanadaAsiya Javayant NEW
Greenwood L NickaSpainAmy Elsner RENEWAL
Claire A AlbaresJapanIoni Bowcher NEGOTIATION
Misaki P MarrierRussiaBernardo Dominic QUALIFIED
Francesco B StockhamArgentinaAnna Fali PROPOSAL
Tony T FlosiIndiaAnna Fali QUALIFIED
Rodrigues I FigeroaFranceXuxue Feng UNQUALIFIED
Faith S SchemmerAustraliaIoni Bowcher NEW
Jones K WhobreyJapanOnyama Limba RENEWAL
Jones P SergiGermanyAnna Fali QUALIFIED
Faith L BowleyItalyAsiya Javayant QUALIFIED
Francesco J SlusarskiAustraliaOnyama Limba RENEWAL
Leja Q FlosiCanadaIoni Bowcher QUALIFIED
Aika F WaycottCanadaIoni Bowcher RENEWAL
Jefferson I OldroydSpainIvan Magalhaes NEGOTIATION
Faith L VenereRussiaAsiya Javayant PROPOSAL
Cody O SchemmerItalyAnna Fali NEGOTIATION
Johnson P GarufiSpainIvan Magalhaes RENEWAL
Aruna E GillianItalyBernardo Dominic QUALIFIED
Johnson K SaylorsSpainElwin Sharvill UNQUALIFIED
Costa F IturbideItalyAmy Elsner RENEWAL
Jennifer S CampainFranceIvan Magalhaes QUALIFIED
Jefferson G DarakjyArgentinaIvan Magalhaes NEGOTIATION
Clifford R SchemmerCanadaStephen Shaw QUALIFIED
Murillo J MarrierArgentinaAsiya Javayant QUALIFIED
Wickens L IturbideAustraliaOnyama Limba RENEWAL
Johnson S PerinUnited KingdomXuxue Feng RENEWAL
Julie B SchemmerItalyAnna Fali RENEWAL
Smith R KuskoIndiaElwin Sharvill RENEWAL
Emily A RutaAustraliaAmy Elsner NEGOTIATION
Stacey K VocelkaJapanElwin Sharvill NEW

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