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
Mujtaba J BriddickJapanIoni Bowcher QUALIFIED
Leja M MaletUnited KingdomXuxue Feng RENEWAL
Tony M SaylorsRussiaElwin Sharvill UNQUALIFIED
Claire E KuskoAustraliaIvan Magalhaes PROPOSAL
Claire A RimRussiaIvan Magalhaes NEGOTIATION
Munro L FlosiArgentinaStephen Shaw PROPOSAL
Misaki G StensethArgentinaBernardo Dominic PROPOSAL
Emily X NestleAustraliaXuxue Feng PROPOSAL
Isabel Q GarufiBrazilIoni Bowcher NEW
Stacey S PoquetteFranceXuxue Feng NEGOTIATION
Ricardo F MaletIndiaAmy Elsner NEGOTIATION
Alejandro Q WhobreyIndiaStephen Shaw UNQUALIFIED
Juan Y KuskoBrazilElwin Sharvill PROPOSAL
Sinclair H GillianSpainAsiya Javayant UNQUALIFIED
Alejandro X BowleyCanadaElwin Sharvill NEW
Kaitlin S PerinJapanXuxue Feng QUALIFIED
Antonio K ButtCanadaAmy Elsner NEW
Nicolas T InouyeUnited KingdomAnna Fali NEW
Faith D CampainArgentinaOnyama Limba NEGOTIATION
Izzy G OstroskySpainAsiya Javayant RENEWAL
Greenwood O RoysterCanadaAsiya Javayant NEW
Octavia A WaycottJapanStephen Shaw RENEWAL
Aditya X NickaIndiaBernardo Dominic RENEWAL
Kaitlin R RulapaughGermanyStephen Shaw PROPOSAL
Jefferson R BriddickIndiaBernardo Dominic UNQUALIFIED
Murillo Y PoquetteArgentinaOnyama Limba RENEWAL
Antonio L BologniaFranceAmy Elsner UNQUALIFIED
Stacey Y BologniaItalyOnyama Limba UNQUALIFIED
Misaki F BowleyJapanStephen Shaw UNQUALIFIED
Tony E DoeIndiaAmy Elsner PROPOSAL
Leja D ChuiItalyBernardo Dominic NEGOTIATION
Mujtaba E DilliardSpainXuxue Feng PROPOSAL
Murillo A BologniaJapanIvan Magalhaes NEW
Ricardo S CaudyGermanyAmy Elsner NEGOTIATION
Deepesh V BriddickAustraliaAsiya Javayant QUALIFIED
Maria H PoquetteJapanOnyama Limba UNQUALIFIED
Julie Y GarufiAustraliaAnna Fali RENEWAL
Chavez W CaldareraRussiaOnyama Limba RENEWAL
Leon K AlbaresJapanAnna Fali RENEWAL
Maisha Q FerenczBrazilStephen Shaw QUALIFIED
Julie K GlickRussiaAnna Fali NEW
Salvatore V StensethIndiaAsiya Javayant RENEWAL
Adams G CaldareraCanadaAmy Elsner QUALIFIED
Misaki E FigeroaBrazilAsiya Javayant RENEWAL
Johnson L ButtGermanyOnyama Limba QUALIFIED
Deepesh E VocelkaUnited KingdomIoni Bowcher UNQUALIFIED
Kaitlin M CaldareraRussiaIvan Magalhaes RENEWAL
Ashley S BologniaSpainIvan Magalhaes QUALIFIED
Murillo M MaletJapanElwin Sharvill RENEWAL
Rodrigues F MorascaIndiaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jones X DarakjyCanadaAnna Fali UNQUALIFIED
Jeanfrancois F GlickGermanyXuxue Feng PROPOSAL
Alejandro K AlbaresGermanyAmy Elsner NEGOTIATION
Maisha S RoysterSpainAnna Fali RENEWAL
Adams Z KuskoItalyAmy Elsner PROPOSAL
Morrow A GlickSpainStephen Shaw NEGOTIATION
Stacey J CaldareraJapanIoni Bowcher PROPOSAL
James R AlbaresCanadaAmy Elsner QUALIFIED
Misaki W KolmetzIndiaXuxue Feng UNQUALIFIED
Salvatore Q GarufiRussiaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin J RoysterArgentina2026-06-22Morlong Associates UNQUALIFIED96Asiya Javayant
1001Jeanfrancois L ChuiFrance2026-06-27Chemel, James L Cpa PROPOSAL44Ioni Bowcher
1002Leja G RulapaughAustralia2026-06-25Chapman, Ross E Esq NEW8Stephen Shaw
1003Maria X DoeUnited Kingdom2026-07-03Feiner Bros QUALIFIED22Xuxue Feng
1004Claire K MaletRussia2026-06-09Rangoni Of Florence PROPOSAL58Ivan Magalhaes
1005Clifford Q StockhamJapan2026-06-19Buckley Miller Wright PROPOSAL25Bernardo Dominic
1006Misaki P GarufiJapan2026-06-06King, Christopher A Esq NEW0Amy Elsner
1007Izzy K FollerAustralia2026-06-24Rousseaux, Michael Esq NEGOTIATION10Elwin Sharvill
1008Maisha A PoquetteUnited Kingdom2026-07-03Dorl, James J Esq RENEWAL71Amy Elsner
1009Johnson C NestleIndia2026-07-01Commercial Press PROPOSAL13Amy Elsner
1010Cody U IturbideUnited Kingdom2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED6Amy Elsner
1011Wickens D CaudySpain2026-07-03Chanay, Jeffrey A Esq NEGOTIATION55Bernardo Dominic
1012Alejandro T ShinkoGermany2026-06-28Chemel, James L Cpa NEW92Onyama Limba
1013Chavez V StockhamItaly2026-06-07Dorl, James J Esq NEW30Ioni Bowcher
1014Isabel B ButtRussia2026-06-17Dorl, James J Esq UNQUALIFIED75Ioni Bowcher
1015Chavez V GillianAustralia2026-06-07Benton, John B Jr PROPOSAL89Anna Fali
1016Juan D WhobreyArgentina2026-06-21Feltz Printing Service NEW70Ivan Magalhaes
1017Alejandro E CaudySpain2026-06-24Truhlar And Truhlar Attys NEW26Ioni Bowcher
1018Johnson S RoysterSpain2026-06-19Morlong Associates NEGOTIATION37Bernardo Dominic
1019Cody X FigeroaJapan2026-06-07Dorl, James J Esq NEW85Anna Fali
1020Salvatore V StockhamRussia2026-07-03Feltz Printing Service QUALIFIED66Elwin Sharvill
1021Leon L BowleyJapan2026-06-22Commercial Press PROPOSAL92Asiya Javayant
1022Jones G WaycottBrazil2026-07-01Buckley Miller Wright RENEWAL91Bernardo Dominic
1023Morrow K AlbaresFrance2026-06-11Buckley Miller Wright NEW66Onyama Limba
1024Leon H RutaArgentina2026-06-25Truhlar And Truhlar Attys UNQUALIFIED60Asiya Javayant
1025Ivar V SaylorsUnited Kingdom2026-06-30Chanay, Jeffrey A Esq RENEWAL12Bernardo Dominic
1026Aika Q CaudyAustralia2026-06-13Printing Dimensions PROPOSAL31Amy Elsner
1027Maria Q MaletSpain2026-06-11Chanay, Jeffrey A Esq UNQUALIFIED91Asiya Javayant
1028Costa F NickaRussia2026-06-22Chanay, Jeffrey A Esq PROPOSAL80Elwin Sharvill
1029Jeanfrancois Y NickaSpain2026-07-05Printing Dimensions UNQUALIFIED7Amy Elsner
1030Silvio B StensethSpain2026-06-11Chanay, Jeffrey A Esq RENEWAL57Onyama Limba
1031Munro H GauchoGermany2026-06-10Rousseaux, Michael Esq NEGOTIATION68Elwin Sharvill
1032Aditya M GillianRussia2026-06-17Chapman, Ross E Esq UNQUALIFIED90Stephen Shaw
1033Silvio J CaldareraSpain2026-07-03Chapman, Ross E Esq RENEWAL11Xuxue Feng
1034Mujtaba Z GauchoSpain2026-06-10Chemel, James L Cpa RENEWAL3Asiya Javayant
1035Faith A StensethUnited Kingdom2026-06-15Benton, John B Jr QUALIFIED66Stephen Shaw
1036Aditya N GauchoUnited Kingdom2026-06-09Benton, John B Jr QUALIFIED61Amy Elsner
1037Chavez D WhobreyUnited Kingdom2026-06-27Chapman, Ross E Esq QUALIFIED68Ivan Magalhaes
1038Salvatore L FigeroaGermany2026-06-16Feiner Bros RENEWAL74Ioni Bowcher
1039Greenwood L AlbaresGermany2026-06-18Dorl, James J Esq PROPOSAL80Ioni Bowcher
1040Johnson O MorascaAustralia2026-06-16Chapman, Ross E Esq RENEWAL97Anna Fali
1041Mujtaba F IturbideRussia2026-06-10Truhlar And Truhlar Attys RENEWAL20Ioni Bowcher
1042Chavez L GillianUnited Kingdom2026-06-16Buckley Miller Wright NEW79Ivan Magalhaes
1043Faith K ChuiCanada2026-06-28Truhlar And Truhlar Attys NEGOTIATION72Xuxue Feng
1044Sinclair V OstroskyItaly2026-07-02Commercial Press NEGOTIATION10Anna Fali
1045Salvatore Z GauchoSpain2026-06-26Commercial Press UNQUALIFIED79Ioni Bowcher
1046Rodrigues Y BowleyAustralia2026-07-03Feltz Printing Service UNQUALIFIED94Anna Fali
1047Mujtaba N OldroydRussia2026-07-04Printing Dimensions UNQUALIFIED16Onyama Limba
1048Alejandro O KolmetzSpain2026-06-13Printing Dimensions UNQUALIFIED95Elwin Sharvill
1049David F NickaBrazil2026-07-02Commercial Press UNQUALIFIED19Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Misaki J NestleFranceAmy Elsner RENEWAL
Deepesh W MaletBrazilElwin Sharvill NEW
Julie X AmigonAustraliaBernardo Dominic RENEWAL
Misaki Y MaletGermanyOnyama Limba PROPOSAL
Kadeem V MacleadBrazilBernardo Dominic RENEWAL
Misaki T AlbaresCanadaIoni Bowcher NEW
Mujtaba I FigeroaCanadaOnyama Limba RENEWAL
Nicolas S NickaRussiaIvan Magalhaes NEGOTIATION
Wickens A WhobreyBrazilBernardo Dominic NEGOTIATION
Leon N DoeBrazilOnyama Limba NEW
Clifford H VocelkaUnited KingdomElwin Sharvill UNQUALIFIED
David P RulapaughUnited KingdomAnna Fali RENEWAL
Chavez U GlickArgentinaStephen Shaw UNQUALIFIED
Costa I GillianAustraliaOnyama Limba NEW
Nicolas V BriddickBrazilStephen Shaw UNQUALIFIED
Aika V RoysterIndiaAmy Elsner RENEWAL
Mujtaba E SlusarskiBrazilIvan Magalhaes NEGOTIATION
Nicolas P CampainBrazilIoni Bowcher QUALIFIED
Ivar X CaudyFranceOnyama Limba NEW
Clifford L VocelkaFranceAsiya Javayant UNQUALIFIED
Isabel Z BowleyUnited KingdomIvan Magalhaes PROPOSAL
Ashley X WhobreyGermanyOnyama Limba RENEWAL
Aditya D SaylorsBrazilOnyama Limba PROPOSAL
Julie I FigeroaArgentinaIoni Bowcher RENEWAL
Murillo O GauchoSpainIoni Bowcher NEGOTIATION
Munro B GauchoGermanyOnyama Limba PROPOSAL
Deepesh E RoysterUnited KingdomStephen Shaw NEW
Maisha M InouyeUnited KingdomElwin Sharvill PROPOSAL
Salvatore E MarrierBrazilOnyama Limba UNQUALIFIED
Isabel U StockhamGermanyAnna Fali RENEWAL
Nicolas Y TollnerAustraliaIvan Magalhaes PROPOSAL
Claire N GlickFranceOnyama Limba RENEWAL
Aika A BowleyItalyAsiya Javayant NEGOTIATION
Claire A FerenczBrazilIvan Magalhaes PROPOSAL
Nicolas Y GarufiJapanXuxue Feng RENEWAL
Kadeem M GauchoBrazilElwin Sharvill NEGOTIATION
Izzy B OldroydIndiaElwin Sharvill RENEWAL
Kaitlin S BologniaSpainIoni Bowcher RENEWAL
Kadeem B DarakjyIndiaIvan Magalhaes NEGOTIATION
Leon Y CampainBrazilIvan Magalhaes RENEWAL
Clifford Y SaylorsIndiaXuxue Feng NEW
Costa J ChuiFranceBernardo Dominic QUALIFIED
Aruna Q RulapaughCanadaAmy Elsner QUALIFIED
Tony J FerenczCanadaIvan Magalhaes PROPOSAL
Ricardo M IturbideCanadaOnyama Limba RENEWAL
Izzy E FerenczUnited KingdomXuxue Feng NEGOTIATION
Rodrigues R PerinCanadaStephen Shaw NEGOTIATION
Maria W CaudyArgentinaIvan Magalhaes UNQUALIFIED
Kadeem V PoquetteGermanyIvan Magalhaes NEW
Aika M BologniaCanadaIoni Bowcher PROPOSAL
Frozen Columns
Name
Adams E Doe
Deepesh J Paprocki
Costa X Venere
Chavez O Briddick
Antonio Q Darakjy
Tony S Oldroyd
Isabel L Figeroa
Adams X Doe
Morrow G Saylors
Aditya N Kolmetz
Isabel C Ostrosky
Claire X Slusarski
David L Iturbide
Jefferson H Shinko
Izzy Z Bowley
Maisha F Iturbide
Kaitlin U Gillian
Maria V Dilliard
Jefferson R Butt
Jeanfrancois Z Whobrey
Morrow W Saylors
Silvio R Kolmetz
Arvin R Poquette
Adams E Saylors
Ricardo V Figeroa
Izzy C Poquette
Stacey E Saylors
Leja F Caldarera
Kadeem C Glick
Clifford Z Oldroyd
Maisha H Albares
Leon Q Nicka
Salvatore W Caldarera
Claire V Ruta
Rodrigues Y Campain
Faith P Amigon
Morrow L Rim
Antonio U Gaucho
Greenwood R Slusarski
Smith N Oldroyd
Stacey J Stockham
Emily S Caudy
Sinclair S Butt
Salvatore L Ruta
Sinclair P Briddick
Darci W Poquette
Johnson P Butt
Darci G Darakjy
Alejandro J Nestle
Greenwood T Caudy
IdCountryDate
1000Japan2026-07-04
1001France2026-06-20
1002Germany2026-06-15
1003Canada2026-06-09
1004Canada2026-06-28
1005India2026-07-04
1006Germany2026-07-01
1007Spain2026-06-08
1008France2026-07-04
1009Canada2026-06-23
1010Brazil2026-06-15
1011France2026-06-13
1012Germany2026-06-16
1013Germany2026-06-22
1014India2026-06-28
1015Brazil2026-06-22
1016France2026-06-26
1017Australia2026-06-25
1018Germany2026-06-08
1019United Kingdom2026-06-18
1020Brazil2026-06-08
1021Italy2026-06-07
1022Australia2026-06-21
1023Australia2026-06-27
1024Italy2026-07-03
1025Spain2026-07-04
1026France2026-06-09
1027India2026-06-28
1028Italy2026-06-13
1029Germany2026-06-20
1030Australia2026-06-21
1031Italy2026-06-29
1032Brazil2026-06-30
1033United Kingdom2026-06-26
1034Japan2026-07-02
1035France2026-06-11
1036Brazil2026-06-20
1037India2026-07-05
1038Japan2026-07-01
1039Russia2026-06-18
1040India2026-06-09
1041Russia2026-06-06
1042United Kingdom2026-06-10
1043Russia2026-06-16
1044Japan2026-06-29
1045Spain2026-06-25
1046Canada2026-06-30
1047Argentina2026-06-27
1048United Kingdom2026-07-05
1049United Kingdom2026-06-15

On-Demand Data

NameIdCountryDate
Nicolas N Tollner1000Argentina2026-06-09
Silvio P Stenseth1001Canada2026-07-01
Costa E Whobrey1002United Kingdom2026-06-21
Leon M Ferencz1003Japan2026-06-23
Wickens Y Perin1004India2026-06-30
Maisha P Figeroa1005Canada2026-06-28
Antonio Z Stockham1006Australia2026-06-18
Misaki K Stenseth1007United Kingdom2026-06-18
Wickens U Chui1008United Kingdom2026-06-19
Arvin S Glick1009France2026-06-25
Leja C Tollner1010Spain2026-07-01
Deepesh T Tollner1011Spain2026-06-18
Costa G Sergi1012Argentina2026-06-20
Johnson H Whobrey1013Japan2026-06-29
Aika B Briddick1014Argentina2026-06-21
Octavia P Dilliard1015Argentina2026-06-08
Maisha S Morasca1016Spain2026-06-27
Ashley G Waycott1017India2026-06-07
Francesco V Nestle1018Brazil2026-06-06
David H Flosi1019Canada2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens W VocelkaAustraliaElwin Sharvill NEW
Isabel Y SaylorsSpainIvan Magalhaes NEGOTIATION
Juan W MaletCanadaIvan Magalhaes NEGOTIATION
Leon P PoquetteRussiaStephen Shaw NEW
James D MaletCanadaOnyama Limba RENEWAL
Leon C KolmetzFranceElwin Sharvill NEW
Faith X GillianBrazilIoni Bowcher UNQUALIFIED
Murillo P IturbideSpainStephen Shaw NEW
Julie B StockhamIndiaAsiya Javayant PROPOSAL
Jeanfrancois K KolmetzCanadaBernardo Dominic NEW
Leon S OstroskyAustraliaElwin Sharvill PROPOSAL
Sinclair P CampainUnited KingdomAmy Elsner QUALIFIED
Rodrigues N InouyeRussiaBernardo Dominic PROPOSAL
Claire V RutaIndiaStephen Shaw NEW
Misaki D ButtJapanAmy Elsner QUALIFIED
Wickens R BologniaIndiaXuxue Feng NEW
Aruna M RutaIndiaAnna Fali UNQUALIFIED
Isabel O SaylorsFranceAnna Fali NEW
Adams M ButtSpainElwin Sharvill NEW
Faith G WhobreyAustraliaAsiya Javayant NEGOTIATION
Leja O AmigonFranceStephen Shaw QUALIFIED
Emily T MorascaItalyElwin Sharvill NEW
Costa H PerinSpainIvan Magalhaes UNQUALIFIED
Aditya B ShinkoJapanAnna Fali UNQUALIFIED
Jennifer A PerinUnited KingdomAsiya Javayant RENEWAL
Leon L PaprockiCanadaAsiya Javayant RENEWAL
Maria T SergiArgentinaIvan Magalhaes RENEWAL
Francesco A MarrierAustraliaBernardo Dominic NEW
Jeanfrancois O AmigonUnited KingdomAmy Elsner UNQUALIFIED
Mujtaba D PoquetteCanadaXuxue Feng UNQUALIFIED
Mujtaba K BriddickGermanyElwin Sharvill UNQUALIFIED
Aruna Y CaudyJapanAmy Elsner QUALIFIED
Claire B KolmetzItalyIvan Magalhaes QUALIFIED
Murillo K MaletSpainBernardo Dominic UNQUALIFIED
Wickens W MorascaFranceOnyama Limba QUALIFIED
Emily J MorascaArgentinaXuxue Feng NEW
Maisha N AlbaresRussiaXuxue Feng NEW
Cody B ButtUnited KingdomAnna Fali UNQUALIFIED
Nicolas E SchemmerIndiaStephen Shaw QUALIFIED
Maisha S KolmetzCanadaStephen Shaw 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>