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
Kadeem M MaletCanadaBernardo Dominic PROPOSAL
Smith J AlbaresJapanElwin Sharvill UNQUALIFIED
Emily T CaudyJapanElwin Sharvill PROPOSAL
Kadeem K WieserBrazilAnna Fali RENEWAL
Nicolas Q FlosiFranceOnyama Limba UNQUALIFIED
Misaki B KuskoFranceXuxue Feng QUALIFIED
Aruna E WaycottJapanBernardo Dominic RENEWAL
Kadeem F CaldareraUnited KingdomIoni Bowcher NEW
Ricardo N KolmetzArgentinaBernardo Dominic RENEWAL
Tony X FollerBrazilAsiya Javayant QUALIFIED
Alejandro C VocelkaArgentinaAmy Elsner RENEWAL
Rodrigues N ShinkoSpainAsiya Javayant NEW
Jeanfrancois K DarakjyItalyElwin Sharvill NEGOTIATION
Mujtaba T DilliardIndiaIvan Magalhaes NEW
Kadeem S BologniaIndiaAnna Fali NEW
Johnson H CaldareraRussiaIoni Bowcher PROPOSAL
Mayumi U GillianRussiaAnna Fali UNQUALIFIED
Nicolas K PoquetteBrazilStephen Shaw RENEWAL
Aika I PaprockiCanadaElwin Sharvill NEGOTIATION
Arvin O MaletArgentinaIoni Bowcher RENEWAL
Julie G OstroskyBrazilBernardo Dominic RENEWAL
Maria L DoeIndiaStephen Shaw QUALIFIED
Izzy U BowleyItalyBernardo Dominic UNQUALIFIED
Silvio S FerenczJapanOnyama Limba PROPOSAL
Leon Z MarrierRussiaStephen Shaw PROPOSAL
Aditya E DoeGermanyAmy Elsner QUALIFIED
Greenwood T MarrierJapanIvan Magalhaes UNQUALIFIED
Aruna X RoysterItalyAmy Elsner NEW
Greenwood U CaldareraBrazilOnyama Limba RENEWAL
Sinclair T RimJapanBernardo Dominic UNQUALIFIED
Aika X OldroydArgentinaAsiya Javayant NEGOTIATION
Izzy L SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Izzy W GauchoIndiaStephen Shaw NEGOTIATION
Mayumi S PoquetteItalyAnna Fali PROPOSAL
Leja J SaylorsAustraliaBernardo Dominic UNQUALIFIED
Silvio X RimAustraliaIvan Magalhaes UNQUALIFIED
Jennifer G FollerAustraliaStephen Shaw RENEWAL
Ashley L DoeSpainStephen Shaw UNQUALIFIED
Aika V RutaSpainElwin Sharvill UNQUALIFIED
Octavia P DoeAustraliaAmy Elsner NEW
Aika Y PerinItalyIvan Magalhaes PROPOSAL
Maria Y AmigonArgentinaOnyama Limba PROPOSAL
James H GauchoCanadaOnyama Limba QUALIFIED
Antonio Z ChuiItalyOnyama Limba RENEWAL
Aditya O FerenczFranceIvan Magalhaes QUALIFIED
Octavia O BologniaSpainBernardo Dominic QUALIFIED
Emily F NickaIndiaOnyama Limba RENEWAL
Faith D ChuiBrazilAsiya Javayant PROPOSAL
Alejandro E DoeAustraliaAnna Fali QUALIFIED
Maisha C NestleArgentinaStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Wickens Y ChuiRussiaBernardo Dominic UNQUALIFIED
Ricardo G NickaBrazilAmy Elsner NEW
Kadeem W ButtGermanyBernardo Dominic NEGOTIATION
Morrow I PaprockiJapanAnna Fali RENEWAL
Octavia Y FollerBrazilAsiya Javayant PROPOSAL
Aditya N ButtGermanyAmy Elsner RENEWAL
Salvatore X PerinUnited KingdomIoni Bowcher QUALIFIED
Octavia X MarrierCanadaBernardo Dominic NEW
Mayumi B VenereCanadaElwin Sharvill NEW
Maisha B IturbideUnited KingdomXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford L MorascaUnited Kingdom2026-06-26Feltz Printing Service PROPOSAL5Onyama Limba
1001Jones M MaletJapan2026-06-08Chemel, James L Cpa UNQUALIFIED80Onyama Limba
1002Munro Z PaprockiArgentina2026-06-09Rousseaux, Michael Esq UNQUALIFIED26Onyama Limba
1003Rodrigues S KolmetzBrazil2026-06-29Benton, John B Jr RENEWAL45Asiya Javayant
1004Claire W KuskoAustralia2026-06-06Benton, John B Jr PROPOSAL96Bernardo Dominic
1005Emily V MacleadIndia2026-06-06Commercial Press QUALIFIED80Stephen Shaw
1006Johnson O FollerJapan2026-06-29Chemel, James L Cpa QUALIFIED76Elwin Sharvill
1007Maisha R DarakjyUnited Kingdom2026-06-04Dorl, James J Esq PROPOSAL81Amy Elsner
1008Chavez R BriddickUnited Kingdom2026-06-26Benton, John B Jr NEGOTIATION93Bernardo Dominic
1009Antonio X MaletFrance2026-06-27Printing Dimensions NEGOTIATION71Xuxue Feng
1010Emily Q WhobreyArgentina2026-06-08Rangoni Of Florence UNQUALIFIED38Elwin Sharvill
1011Cody R CaudyFrance2026-06-17Chapman, Ross E Esq PROPOSAL93Ioni Bowcher
1012Rodrigues K FlosiJapan2026-06-06Rousseaux, Michael Esq UNQUALIFIED26Bernardo Dominic
1013Costa B ShinkoCanada2026-06-30Commercial Press UNQUALIFIED88Amy Elsner
1014Maisha L SergiJapan2026-06-10Rangoni Of Florence PROPOSAL64Ioni Bowcher
1015Tony M ShinkoAustralia2026-06-18Dorl, James J Esq RENEWAL43Onyama Limba
1016Octavia V CaldareraCanada2026-06-15Morlong Associates RENEWAL93Anna Fali
1017Mayumi F FlosiGermany2026-06-24Chanay, Jeffrey A Esq RENEWAL38Onyama Limba
1018Costa I TollnerFrance2026-06-13Feiner Bros NEGOTIATION64Xuxue Feng
1019Mayumi R WaycottCanada2026-06-21Dorl, James J Esq UNQUALIFIED35Asiya Javayant
1020Chavez B TollnerArgentina2026-06-30Benton, John B Jr RENEWAL56Ioni Bowcher
1021Jones G GlickJapan2026-06-13Truhlar And Truhlar Attys NEGOTIATION27Stephen Shaw
1022Chavez O StensethAustralia2026-06-15Feltz Printing Service QUALIFIED27Onyama Limba
1023Antonio J ButtCanada2026-06-12Feiner Bros NEGOTIATION56Ivan Magalhaes
1024Alejandro V FerenczCanada2026-06-22Truhlar And Truhlar Attys NEGOTIATION82Amy Elsner
1025Jones G AlbaresItaly2026-06-06Buckley Miller Wright PROPOSAL39Asiya Javayant
1026Tony U OldroydUnited Kingdom2026-06-09Chemel, James L Cpa NEGOTIATION55Ioni Bowcher
1027Deepesh E GauchoGermany2026-06-18Chanay, Jeffrey A Esq RENEWAL43Stephen Shaw
1028Stacey W BriddickAustralia2026-06-22Feltz Printing Service RENEWAL65Onyama Limba
1029Alejandro M CaldareraUnited Kingdom2026-06-22Benton, John B Jr QUALIFIED93Onyama Limba
1030Leon Y PoquetteFrance2026-06-18Feltz Printing Service PROPOSAL14Xuxue Feng
1031Francesco Q KuskoRussia2026-06-29Truhlar And Truhlar Attys PROPOSAL27Ioni Bowcher
1032Sinclair N OldroydSpain2026-06-25Morlong Associates NEW73Ioni Bowcher
1033Kadeem T NestleIndia2026-06-22Truhlar And Truhlar Attys QUALIFIED46Anna Fali
1034Silvio Q CaldareraItaly2026-06-24Chanay, Jeffrey A Esq NEW19Ivan Magalhaes
1035Izzy W MorascaJapan2026-06-29Benton, John B Jr UNQUALIFIED89Stephen Shaw
1036Antonio I NickaJapan2026-06-04Feiner Bros QUALIFIED60Asiya Javayant
1037Deepesh V WaycottAustralia2026-06-28Chapman, Ross E Esq PROPOSAL94Ivan Magalhaes
1038Claire I MorascaItaly2026-06-18Feltz Printing Service NEW3Amy Elsner
1039Tony B SaylorsRussia2026-06-18King, Christopher A Esq NEGOTIATION45Xuxue Feng
1040Mayumi A RutaSpain2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED55Ioni Bowcher
1041Alejandro O MacleadJapan2026-06-15King, Christopher A Esq RENEWAL85Anna Fali
1042Faith T ChuiBrazil2026-06-08King, Christopher A Esq QUALIFIED42Ioni Bowcher
1043Mayumi F FlosiCanada2026-06-18Commercial Press UNQUALIFIED44Anna Fali
1044Smith M BologniaCanada2026-06-16Feiner Bros QUALIFIED22Asiya Javayant
1045Juan F WhobreyItaly2026-06-28Printing Dimensions NEGOTIATION86Stephen Shaw
1046Alejandro B DoeSpain2026-06-22Chemel, James L Cpa RENEWAL23Onyama Limba
1047Jennifer W SchemmerAustralia2026-06-20Rousseaux, Michael Esq UNQUALIFIED89Onyama Limba
1048Clifford Z FerenczFrance2026-07-02Printing Dimensions UNQUALIFIED98Anna Fali
1049Claire L IturbideJapan2026-06-28King, Christopher A Esq NEGOTIATION79Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Johnson B StockhamSpainElwin Sharvill NEGOTIATION
Deepesh Z RoysterBrazilAmy Elsner RENEWAL
Izzy Q AlbaresItalyBernardo Dominic QUALIFIED
Antonio G GlickAustraliaOnyama Limba UNQUALIFIED
Juan O SchemmerArgentinaXuxue Feng UNQUALIFIED
Smith J PerinArgentinaBernardo Dominic RENEWAL
Silvio G CaudyArgentinaElwin Sharvill RENEWAL
Tony L TollnerGermanyAmy Elsner RENEWAL
Adams M MarrierJapanElwin Sharvill RENEWAL
Jefferson R FigeroaIndiaAnna Fali UNQUALIFIED
Leja M TollnerItalyAmy Elsner PROPOSAL
Costa S KolmetzArgentinaIvan Magalhaes NEGOTIATION
Leon U RimUnited KingdomIvan Magalhaes RENEWAL
Misaki A NickaBrazilBernardo Dominic UNQUALIFIED
Faith Y PoquetteCanadaXuxue Feng UNQUALIFIED
Johnson C KuskoArgentinaAmy Elsner UNQUALIFIED
Stacey S AmigonSpainStephen Shaw UNQUALIFIED
Costa I RulapaughCanadaAnna Fali QUALIFIED
Deepesh Y RutaSpainAmy Elsner NEGOTIATION
Kadeem H DoeArgentinaXuxue Feng NEGOTIATION
Isabel Q OldroydSpainStephen Shaw QUALIFIED
Adams J RutaItalyOnyama Limba NEGOTIATION
Juan Q MarrierArgentinaAsiya Javayant PROPOSAL
Clifford S RulapaughArgentinaAmy Elsner NEW
Ashley R SlusarskiJapanBernardo Dominic UNQUALIFIED
Morrow E TollnerArgentinaIoni Bowcher QUALIFIED
Octavia L RoysterItalyElwin Sharvill RENEWAL
Misaki D TollnerGermanyOnyama Limba QUALIFIED
David P PoquetteFranceXuxue Feng NEGOTIATION
Ricardo H ShinkoFranceBernardo Dominic PROPOSAL
Aruna K AlbaresCanadaAmy Elsner PROPOSAL
Jones P KolmetzBrazilAnna Fali NEW
Cody P StockhamUnited KingdomXuxue Feng NEGOTIATION
Jennifer B PaprockiItalyAsiya Javayant NEGOTIATION
Jeanfrancois A BriddickSpainOnyama Limba RENEWAL
David X ChuiFranceStephen Shaw NEW
Maisha D PoquetteBrazilOnyama Limba RENEWAL
Kadeem M MaletUnited KingdomXuxue Feng UNQUALIFIED
Morrow D DarakjyUnited KingdomIvan Magalhaes QUALIFIED
Mujtaba I PoquetteBrazilXuxue Feng NEGOTIATION
Octavia A GlickBrazilXuxue Feng NEGOTIATION
Francesco J PoquetteBrazilAsiya Javayant QUALIFIED
Darci Z NickaJapanAnna Fali NEW
Sinclair B OstroskyAustraliaIoni Bowcher NEGOTIATION
Julie T StensethAustraliaXuxue Feng RENEWAL
Nicolas S FerenczItalyXuxue Feng UNQUALIFIED
Isabel H AmigonIndiaAsiya Javayant RENEWAL
Murillo V InouyeIndiaAsiya Javayant NEGOTIATION
Emily E StockhamGermanyAmy Elsner NEGOTIATION
David D CampainArgentinaIvan Magalhaes NEW
Frozen Columns
Name
Silvio J Iturbide
Emily W Schemmer
Octavia J Darakjy
Jefferson X Ostrosky
Sinclair Y Maclead
Jeanfrancois E Malet
Cody C Rim
Francesco D Malet
Chavez M Kusko
Darci Z Morasca
Jefferson R Inouye
James Q Darakjy
Greenwood U Morasca
Stacey E Ruta
Greenwood X Shinko
Mujtaba N Malet
Costa P Wieser
Morrow Z Oldroyd
Claire E Inouye
Kadeem C Glick
James K Tollner
Morrow G Albares
Ricardo Q Poquette
Faith E Foller
Kadeem T Oldroyd
Tony K Paprocki
Cody X Figeroa
Maisha Z Ruta
Silvio A Nestle
Greenwood S Briddick
Maria D Bolognia
Leon W Maclead
Julie L Saylors
Smith S Foller
Jones O Slusarski
Mujtaba K Kusko
James R Ostrosky
Misaki I Amigon
Smith N Darakjy
Faith X Tollner
Juan F Nestle
James C Marrier
Ashley R Morasca
Clifford V Royster
Sinclair Q Marrier
Faith G Ruta
Claire E Bowley
Kadeem Z Caudy
Leja B Amigon
Cody S Schemmer
IdCountryDate
1000Russia2026-06-30
1001Spain2026-06-05
1002Argentina2026-07-03
1003India2026-06-11
1004Australia2026-06-11
1005Germany2026-06-05
1006United Kingdom2026-06-25
1007India2026-06-12
1008Japan2026-06-11
1009Canada2026-06-23
1010Italy2026-06-08
1011Argentina2026-06-21
1012Italy2026-06-14
1013Brazil2026-06-09
1014Canada2026-06-12
1015France2026-06-05
1016Italy2026-06-08
1017Argentina2026-06-12
1018Germany2026-06-15
1019Japan2026-06-21
1020Brazil2026-06-24
1021United Kingdom2026-06-20
1022Russia2026-06-15
1023Argentina2026-06-20
1024Canada2026-06-25
1025Canada2026-06-24
1026France2026-06-05
1027Canada2026-06-21
1028Italy2026-06-08
1029United Kingdom2026-06-05
1030Japan2026-06-24
1031Italy2026-06-25
1032France2026-06-15
1033United Kingdom2026-06-22
1034Brazil2026-06-13
1035Russia2026-06-17
1036India2026-06-28
1037Brazil2026-06-29
1038Canada2026-06-08
1039Germany2026-06-19
1040United Kingdom2026-06-10
1041Italy2026-06-16
1042Argentina2026-06-08
1043Australia2026-06-16
1044Australia2026-06-24
1045Japan2026-06-22
1046Argentina2026-06-17
1047Japan2026-06-29
1048United Kingdom2026-06-12
1049Brazil2026-06-13

On-Demand Data

NameIdCountryDate
Clifford Z Briddick1000France2026-06-12
Chavez G Inouye1001Germany2026-06-22
Julie H Maclead1002Spain2026-06-12
Wickens U Ferencz1003Germany2026-06-20
Jennifer K Royster1004Spain2026-07-02
Nicolas F Doe1005France2026-06-17
Octavia F Paprocki1006Italy2026-06-28
Deepesh Z Inouye1007Russia2026-06-10
Izzy D Oldroyd1008Spain2026-06-10
David I Bowley1009Argentina2026-06-27
Ashley U Kusko1010Brazil2026-06-10
Costa W Glick1011United Kingdom2026-06-09
Salvatore R Amigon1012Canada2026-06-18
Rodrigues H Sergi1013United Kingdom2026-06-08
Costa L Nestle1014Spain2026-06-13
Murillo O Tollner1015Australia2026-06-24
Stacey V Figeroa1016Canada2026-06-13
Octavia G Albares1017Brazil2026-06-07
Deepesh Q Nicka1018India2026-06-24
Isabel X Tollner1019Brazil2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens Y ButtUnited KingdomAsiya Javayant UNQUALIFIED
Mayumi T NickaCanadaBernardo Dominic UNQUALIFIED
Wickens C MacleadCanadaStephen Shaw RENEWAL
Aruna D MorascaIndiaAmy Elsner QUALIFIED
Kadeem T OldroydCanadaAmy Elsner RENEWAL
Smith S RoysterIndiaIoni Bowcher PROPOSAL
Emily L BologniaGermanyStephen Shaw QUALIFIED
Octavia Y DoeAustraliaAnna Fali RENEWAL
Jennifer J MarrierFranceOnyama Limba NEGOTIATION
Smith L PoquetteJapanIvan Magalhaes UNQUALIFIED
Juan Z PerinItalyBernardo Dominic QUALIFIED
Salvatore M FigeroaItalyIvan Magalhaes QUALIFIED
Johnson H ChuiRussiaBernardo Dominic NEW
Mayumi P RoysterSpainIoni Bowcher RENEWAL
Faith Q CaldareraGermanyElwin Sharvill NEW
Tony U IturbideBrazilBernardo Dominic PROPOSAL
Darci X RulapaughArgentinaIvan Magalhaes RENEWAL
Aruna M SchemmerIndiaElwin Sharvill QUALIFIED
Emily V SlusarskiSpainBernardo Dominic NEW
Ricardo C BowleyAustraliaAmy Elsner RENEWAL
Jefferson B MarrierFranceAmy Elsner QUALIFIED
Clifford G FigeroaAustraliaOnyama Limba NEW
Ivar X VenereSpainOnyama Limba UNQUALIFIED
Leon A SlusarskiFranceAsiya Javayant QUALIFIED
Aditya Z VocelkaSpainXuxue Feng PROPOSAL
Octavia A SergiIndiaOnyama Limba NEW
Alejandro T AmigonArgentinaIvan Magalhaes PROPOSAL
Smith T GauchoFranceStephen Shaw PROPOSAL
Mujtaba B RimBrazilAnna Fali NEW
Mayumi K GillianJapanOnyama Limba NEGOTIATION
Aditya C RoysterSpainBernardo Dominic NEW
Francesco N WieserItalyStephen Shaw NEW
Isabel J CaldareraCanadaOnyama Limba RENEWAL
Izzy C CampainArgentinaAsiya Javayant RENEWAL
Isabel W CaldareraCanadaIoni Bowcher PROPOSAL
Cody J RulapaughCanadaIvan Magalhaes UNQUALIFIED
Rodrigues T VenereRussiaXuxue Feng NEW
Octavia O WaycottFranceAsiya Javayant NEGOTIATION
Rodrigues Z WaycottFranceIoni Bowcher RENEWAL
Francesco Y BowleyGermanyAmy Elsner 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>