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
Johnson I IturbideBrazilBernardo Dominic UNQUALIFIED
Misaki Y ButtGermanyXuxue Feng PROPOSAL
Munro X GauchoSpainAmy Elsner QUALIFIED
Adams Z BologniaRussiaBernardo Dominic RENEWAL
Mayumi Q MorascaBrazilXuxue Feng RENEWAL
Chavez Z WaycottUnited KingdomElwin Sharvill QUALIFIED
Jones V TollnerItalyOnyama Limba NEGOTIATION
Ricardo Q WhobreyJapanXuxue Feng UNQUALIFIED
Emily J WieserJapanElwin Sharvill NEW
Jeanfrancois W VocelkaCanadaIvan Magalhaes UNQUALIFIED
Murillo M GauchoJapanIvan Magalhaes QUALIFIED
Costa E RulapaughIndiaOnyama Limba UNQUALIFIED
Mujtaba O SchemmerSpainElwin Sharvill QUALIFIED
Antonio C MaletJapanOnyama Limba PROPOSAL
Silvio U NickaAustraliaXuxue Feng NEGOTIATION
Silvio R RimFranceAnna Fali QUALIFIED
Jeanfrancois H MorascaItalyIoni Bowcher QUALIFIED
Darci P SergiBrazilBernardo Dominic PROPOSAL
Ricardo P GarufiSpainXuxue Feng NEW
Ricardo J TollnerRussiaOnyama Limba RENEWAL
Silvio W PaprockiGermanyIoni Bowcher PROPOSAL
Kadeem Z AmigonUnited KingdomBernardo Dominic PROPOSAL
Izzy O RutaSpainAnna Fali UNQUALIFIED
Murillo Q GarufiAustraliaIvan Magalhaes NEGOTIATION
Jones X MaletRussiaIoni Bowcher UNQUALIFIED
Aika E NickaAustraliaAsiya Javayant PROPOSAL
David N WieserArgentinaAmy Elsner PROPOSAL
Deepesh W CaudyBrazilAnna Fali NEGOTIATION
Salvatore U ButtArgentinaIoni Bowcher PROPOSAL
Munro Q FigeroaCanadaAnna Fali RENEWAL
Aditya U MaletCanadaElwin Sharvill PROPOSAL
Morrow H FlosiFranceBernardo Dominic NEW
Clifford P ButtFranceBernardo Dominic RENEWAL
Jennifer X GauchoJapanAnna Fali UNQUALIFIED
Cody B GarufiArgentinaIvan Magalhaes UNQUALIFIED
Jones F SchemmerAustraliaAsiya Javayant NEW
Ivar O MarrierBrazilStephen Shaw RENEWAL
Aruna Q MorascaJapanBernardo Dominic QUALIFIED
Maria B RulapaughItalyBernardo Dominic NEGOTIATION
Kaitlin A FollerItalyAmy Elsner UNQUALIFIED
Salvatore V BowleyAustraliaXuxue Feng PROPOSAL
Misaki G PaprockiUnited KingdomStephen Shaw NEGOTIATION
Jeanfrancois A InouyeGermanyAsiya Javayant QUALIFIED
Maria F DarakjyAustraliaAnna Fali NEGOTIATION
Juan X MacleadJapanXuxue Feng UNQUALIFIED
Aruna E SlusarskiIndiaStephen Shaw PROPOSAL
Octavia J IturbideIndiaAsiya Javayant NEW
Maria Y RutaIndiaIoni Bowcher RENEWAL
Wickens L InouyeIndiaIoni Bowcher NEGOTIATION
Costa C MorascaArgentinaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody W KolmetzJapanAmy Elsner PROPOSAL
Isabel E StockhamAustraliaStephen Shaw PROPOSAL
Kadeem I MaletAustraliaIvan Magalhaes PROPOSAL
Misaki J InouyeUnited KingdomStephen Shaw NEGOTIATION
Leon B ButtAustraliaIoni Bowcher NEW
Wickens Z IturbideFranceXuxue Feng UNQUALIFIED
David F WaycottJapanAnna Fali NEGOTIATION
Costa V FigeroaItalyStephen Shaw UNQUALIFIED
Claire Y OstroskyAustraliaIvan Magalhaes QUALIFIED
Munro B NestleAustraliaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio V BriddickAustralia2026-06-09Feltz Printing Service NEW32Anna Fali
1001Darci F ButtItaly2026-07-02Benton, John B Jr UNQUALIFIED62Onyama Limba
1002David C CaudyArgentina2026-06-21Benton, John B Jr PROPOSAL53Onyama Limba
1003Sinclair V CampainGermany2026-06-09Rangoni Of Florence NEGOTIATION91Amy Elsner
1004Antonio C VocelkaBrazil2026-06-21Morlong Associates NEGOTIATION82Asiya Javayant
1005Ivar Y SlusarskiCanada2026-06-30Feltz Printing Service NEW10Amy Elsner
1006Mujtaba C GlickCanada2026-07-02Printing Dimensions UNQUALIFIED29Xuxue Feng
1007Maisha W FlosiItaly2026-06-25Truhlar And Truhlar Attys QUALIFIED26Ioni Bowcher
1008Jeanfrancois B KolmetzUnited Kingdom2026-07-02Buckley Miller Wright NEW36Stephen Shaw
1009Leon X RutaRussia2026-06-09Benton, John B Jr PROPOSAL72Onyama Limba
1010Adams F WieserArgentina2026-06-23Chapman, Ross E Esq QUALIFIED76Bernardo Dominic
1011Johnson W CampainIndia2026-06-08King, Christopher A Esq PROPOSAL29Anna Fali
1012Aika I IturbideFrance2026-06-25Printing Dimensions PROPOSAL16Amy Elsner
1013Juan E IturbideFrance2026-06-08Benton, John B Jr NEW73Anna Fali
1014Cody E DarakjyRussia2026-06-21Feltz Printing Service NEW68Amy Elsner
1015Ashley Q AlbaresItaly2026-06-21Buckley Miller Wright PROPOSAL43Xuxue Feng
1016Misaki B RulapaughCanada2026-06-30Benton, John B Jr RENEWAL18Anna Fali
1017Morrow W PerinIndia2026-06-04King, Christopher A Esq UNQUALIFIED68Onyama Limba
1018Leja C RimGermany2026-06-04Feltz Printing Service NEGOTIATION59Onyama Limba
1019Aditya W VocelkaGermany2026-07-01Buckley Miller Wright NEW19Elwin Sharvill
1020Misaki B IturbideJapan2026-06-21Dorl, James J Esq UNQUALIFIED7Ivan Magalhaes
1021Cody X KuskoFrance2026-06-15Truhlar And Truhlar Attys NEGOTIATION24Asiya Javayant
1022Jefferson V FlosiJapan2026-07-03Chapman, Ross E Esq RENEWAL73Ioni Bowcher
1023Julie E BologniaBrazil2026-06-13Chapman, Ross E Esq RENEWAL94Elwin Sharvill
1024Aditya X MaletAustralia2026-06-09King, Christopher A Esq NEGOTIATION41Stephen Shaw
1025Julie V GillianItaly2026-06-29Chapman, Ross E Esq PROPOSAL72Anna Fali
1026Nicolas M StensethSpain2026-07-02Truhlar And Truhlar Attys QUALIFIED18Xuxue Feng
1027Wickens P OstroskyUnited Kingdom2026-06-27Printing Dimensions NEW33Asiya Javayant
1028Rodrigues E PoquetteItaly2026-06-22Benton, John B Jr PROPOSAL26Anna Fali
1029Aika D BriddickSpain2026-06-22Morlong Associates NEW91Xuxue Feng
1030Jeanfrancois F FlosiIndia2026-06-29Chemel, James L Cpa NEGOTIATION45Stephen Shaw
1031Greenwood L SaylorsAustralia2026-06-04Feltz Printing Service RENEWAL57Asiya Javayant
1032Leon A PoquetteSpain2026-06-27Truhlar And Truhlar Attys RENEWAL7Amy Elsner
1033Smith J RulapaughIndia2026-06-22Truhlar And Truhlar Attys RENEWAL47Elwin Sharvill
1034Francesco Y VenereUnited Kingdom2026-06-15Buckley Miller Wright PROPOSAL93Bernardo Dominic
1035Wickens V VenereIndia2026-06-05Chemel, James L Cpa QUALIFIED18Xuxue Feng
1036Alejandro M GlickSpain2026-06-27King, Christopher A Esq PROPOSAL1Asiya Javayant
1037Leja X GlickFrance2026-06-26Rousseaux, Michael Esq RENEWAL12Ioni Bowcher
1038Jeanfrancois E RutaCanada2026-06-25Commercial Press QUALIFIED84Asiya Javayant
1039Ricardo R PoquetteBrazil2026-06-26Chemel, James L Cpa QUALIFIED60Amy Elsner
1040David L NickaSpain2026-06-15Feltz Printing Service RENEWAL29Asiya Javayant
1041Tony U WieserGermany2026-06-23Benton, John B Jr QUALIFIED37Bernardo Dominic
1042Aika R NestleSpain2026-06-27Dorl, James J Esq RENEWAL92Ioni Bowcher
1043Claire A SchemmerAustralia2026-06-07Benton, John B Jr NEGOTIATION36Anna Fali
1044Greenwood I SchemmerAustralia2026-06-30Truhlar And Truhlar Attys NEGOTIATION11Ioni Bowcher
1045Ricardo E PaprockiCanada2026-06-07Rangoni Of Florence UNQUALIFIED49Ivan Magalhaes
1046Smith H MorascaItaly2026-06-20King, Christopher A Esq NEW52Ivan Magalhaes
1047Stacey N VenereSpain2026-06-24King, Christopher A Esq NEW68Asiya Javayant
1048Salvatore O ChuiIndia2026-06-16Rangoni Of Florence UNQUALIFIED81Elwin Sharvill
1049Aditya T RutaUnited Kingdom2026-06-16Printing Dimensions UNQUALIFIED19Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Faith O ShinkoItalyOnyama Limba QUALIFIED
Alejandro E KolmetzJapanAsiya Javayant NEGOTIATION
Aditya T WieserItalyBernardo Dominic NEW
Isabel W MacleadRussiaBernardo Dominic NEGOTIATION
Greenwood T WhobreyBrazilAmy Elsner NEW
Leja X FollerAustraliaAmy Elsner NEGOTIATION
Aika I IturbideGermanyAmy Elsner QUALIFIED
Darci U WaycottArgentinaAsiya Javayant PROPOSAL
Arvin T InouyeRussiaElwin Sharvill QUALIFIED
Maisha L BowleyBrazilElwin Sharvill NEW
Aika H BologniaAustraliaAnna Fali QUALIFIED
Greenwood V SlusarskiGermanyElwin Sharvill PROPOSAL
Munro N BowleyCanadaAmy Elsner UNQUALIFIED
Morrow J DilliardJapanIvan Magalhaes NEGOTIATION
Salvatore I CaudyFranceOnyama Limba RENEWAL
Mujtaba E NestleArgentinaBernardo Dominic UNQUALIFIED
Alejandro Q NickaCanadaOnyama Limba NEW
David P SaylorsSpainAsiya Javayant QUALIFIED
Nicolas X PaprockiAustraliaElwin Sharvill RENEWAL
Kaitlin A StensethGermanyIvan Magalhaes NEW
Octavia V PerinRussiaAmy Elsner PROPOSAL
Adams A RulapaughArgentinaOnyama Limba UNQUALIFIED
James H AmigonFranceStephen Shaw RENEWAL
Nicolas Y BowleyAustraliaOnyama Limba NEW
Isabel Z RimGermanyAsiya Javayant RENEWAL
Stacey V DilliardCanadaOnyama Limba NEGOTIATION
Costa O RutaBrazilIoni Bowcher QUALIFIED
Nicolas W GarufiCanadaAsiya Javayant PROPOSAL
Johnson X TollnerBrazilAnna Fali QUALIFIED
Maisha R GlickCanadaXuxue Feng QUALIFIED
Julie R PerinGermanyAsiya Javayant NEGOTIATION
Clifford P KolmetzArgentinaStephen Shaw QUALIFIED
Emily P AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Francesco G MaletItalyStephen Shaw NEGOTIATION
Ricardo G ButtJapanXuxue Feng NEGOTIATION
Alejandro E ButtArgentinaStephen Shaw PROPOSAL
Mayumi J VocelkaFranceAmy Elsner NEGOTIATION
Nicolas X ButtIndiaStephen Shaw NEGOTIATION
Darci L AlbaresSpainElwin Sharvill UNQUALIFIED
Nicolas K WhobreySpainIvan Magalhaes UNQUALIFIED
Misaki M GillianJapanAsiya Javayant RENEWAL
Maria T SchemmerUnited KingdomOnyama Limba RENEWAL
James O StensethFranceAsiya Javayant UNQUALIFIED
Wickens M WhobreyIndiaOnyama Limba UNQUALIFIED
Octavia A CaldareraRussiaStephen Shaw PROPOSAL
Munro G InouyeFranceBernardo Dominic NEGOTIATION
Murillo M BriddickUnited KingdomStephen Shaw NEGOTIATION
Smith J CaldareraIndiaIoni Bowcher UNQUALIFIED
Emily H DilliardItalyOnyama Limba PROPOSAL
Kaitlin E RulapaughIndiaElwin Sharvill NEW
Frozen Columns
Name
Ivar S Maclead
Adams W Rim
Jennifer A Amigon
Izzy Y Slusarski
Leja G Wieser
James U Darakjy
Antonio N Amigon
Aika H Nestle
Ricardo J Gaucho
Jones D Poquette
James L Venere
Mujtaba N Campain
Nicolas Q Maclead
Cody G Bolognia
Smith E Figeroa
Claire T Doe
Izzy K Paprocki
Ivar N Morasca
Emily U Albares
Juan O Doe
Izzy R Venere
Jefferson T Stockham
Jefferson I Darakjy
Francesco I Tollner
Juan Z Nicka
Arvin V Bowley
Tony U Poquette
James A Sergi
Jeanfrancois T Oldroyd
Sinclair L Inouye
Ivar F Briddick
Faith V Venere
Jefferson I Rulapaugh
Juan J Waycott
Claire B Inouye
Juan J Kusko
Aditya S Caldarera
Kaitlin J Rulapaugh
Faith G Foller
Rodrigues N Nicka
Jennifer Q Caudy
Kadeem N Poquette
Morrow F Figeroa
Izzy U Chui
Francesco M Inouye
Mayumi W Ferencz
Emily Y Saylors
Silvio P Marrier
Costa V Flosi
Izzy W Schemmer
IdCountryDate
1000Argentina2026-06-10
1001Australia2026-06-05
1002Russia2026-07-01
1003Spain2026-06-17
1004Spain2026-06-24
1005India2026-06-17
1006Germany2026-07-01
1007Italy2026-06-11
1008Brazil2026-06-19
1009Brazil2026-06-07
1010Spain2026-06-15
1011Brazil2026-06-09
1012Japan2026-07-02
1013United Kingdom2026-07-03
1014Russia2026-06-08
1015Germany2026-06-07
1016Brazil2026-06-06
1017Canada2026-06-15
1018Germany2026-06-17
1019Spain2026-06-27
1020United Kingdom2026-06-11
1021United Kingdom2026-06-06
1022Brazil2026-06-18
1023Spain2026-06-07
1024Canada2026-07-01
1025Italy2026-06-17
1026Japan2026-06-12
1027Russia2026-06-16
1028Australia2026-06-21
1029United Kingdom2026-06-06
1030Canada2026-06-26
1031France2026-06-12
1032United Kingdom2026-06-16
1033Japan2026-06-08
1034United Kingdom2026-07-01
1035Canada2026-06-11
1036United Kingdom2026-06-25
1037France2026-07-02
1038Spain2026-06-19
1039India2026-06-14
1040Italy2026-06-07
1041Brazil2026-07-02
1042Italy2026-06-16
1043Argentina2026-06-21
1044Brazil2026-06-16
1045United Kingdom2026-06-16
1046Japan2026-06-22
1047United Kingdom2026-06-08
1048Russia2026-06-14
1049United Kingdom2026-06-13

On-Demand Data

NameIdCountryDate
Octavia V Bolognia1000Russia2026-06-13
Misaki N Kolmetz1001Australia2026-06-15
Misaki S Malet1002Australia2026-06-19
Mayumi N Nicka1003Germany2026-06-24
Wickens I Slusarski1004Spain2026-06-09
David A Briddick1005Italy2026-06-18
Morrow Z Iturbide1006Canada2026-07-03
Smith B Shinko1007Australia2026-07-03
Chavez R Doe1008Russia2026-06-17
Ricardo K Paprocki1009Japan2026-06-22
Johnson E Slusarski1010Brazil2026-06-25
Aruna B Albares1011Germany2026-06-06
Kadeem C Albares1012Australia2026-06-18
Johnson R Maclead1013Canada2026-06-10
Cody E Chui1014Italy2026-06-24
Rodrigues V Wieser1015Spain2026-07-02
Leon L Malet1016Australia2026-07-03
Maisha Y Whobrey1017United Kingdom2026-06-20
Costa K Nicka1018France2026-06-07
James X Sergi1019Argentina2026-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith L MaletAustraliaXuxue Feng PROPOSAL
Maisha L DarakjyAustraliaStephen Shaw NEGOTIATION
Izzy Y AlbaresArgentinaBernardo Dominic RENEWAL
Faith C FigeroaIndiaOnyama Limba NEW
Chavez V GillianSpainAmy Elsner UNQUALIFIED
Johnson B CaldareraBrazilAnna Fali RENEWAL
Emily S MorascaSpainStephen Shaw NEW
Sinclair E PoquetteBrazilXuxue Feng RENEWAL
Kadeem Q SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Leja Z RulapaughUnited KingdomElwin Sharvill PROPOSAL
Maria F GauchoSpainBernardo Dominic PROPOSAL
Arvin G CampainAustraliaIvan Magalhaes NEW
Cody F SlusarskiAustraliaBernardo Dominic RENEWAL
Alejandro I CampainUnited KingdomAsiya Javayant QUALIFIED
Deepesh J MaletItalyIvan Magalhaes RENEWAL
Jeanfrancois X WaycottJapanElwin Sharvill UNQUALIFIED
Greenwood P VocelkaIndiaOnyama Limba QUALIFIED
Jones T GlickArgentinaIvan Magalhaes UNQUALIFIED
Munro R DilliardUnited KingdomXuxue Feng RENEWAL
Jones H ChuiSpainIvan Magalhaes NEGOTIATION
David C WaycottIndiaBernardo Dominic PROPOSAL
Deepesh F FerenczSpainBernardo Dominic NEGOTIATION
Maisha D InouyeCanadaIoni Bowcher RENEWAL
Tony Y RoysterRussiaAsiya Javayant QUALIFIED
Francesco B WaycottIndiaAsiya Javayant NEGOTIATION
Salvatore E VenereItalyAnna Fali QUALIFIED
Jones X NickaBrazilStephen Shaw NEW
Silvio P MaletAustraliaAmy Elsner PROPOSAL
Faith Z CaudyBrazilStephen Shaw PROPOSAL
Leja Y MaletAustraliaAmy Elsner PROPOSAL
Ivar L RulapaughArgentinaXuxue Feng UNQUALIFIED
Kadeem W PoquetteJapanIvan Magalhaes QUALIFIED
Juan W TollnerRussiaOnyama Limba QUALIFIED
Francesco W KuskoGermanyOnyama Limba UNQUALIFIED
Isabel E GillianItalyAnna Fali NEGOTIATION
Jefferson O VenereUnited KingdomXuxue Feng NEW
Sinclair Y GauchoSpainStephen Shaw NEW
Salvatore E StockhamGermanyOnyama Limba NEGOTIATION
Claire S OldroydGermanyStephen Shaw PROPOSAL
Aditya K ChuiGermanyIoni Bowcher RENEWAL

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