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
Murillo U CaldareraRussiaElwin Sharvill PROPOSAL
Aika F RulapaughCanadaIvan Magalhaes NEW
Kadeem Y OstroskyCanadaBernardo Dominic NEW
Julie C DarakjyUnited KingdomOnyama Limba PROPOSAL
Adams R OldroydJapanElwin Sharvill PROPOSAL
Jennifer L RoysterIndiaAmy Elsner UNQUALIFIED
Jeanfrancois F ChuiFranceIoni Bowcher NEW
Jefferson I IturbideSpainIvan Magalhaes UNQUALIFIED
Juan E CaudyItalyXuxue Feng NEGOTIATION
James G RimBrazilStephen Shaw QUALIFIED
Jones L RimCanadaIvan Magalhaes NEGOTIATION
Morrow R NestleFranceAsiya Javayant RENEWAL
Arvin B MorascaAustraliaStephen Shaw QUALIFIED
Jefferson Z RutaFranceIvan Magalhaes QUALIFIED
Johnson C ChuiRussiaAmy Elsner NEW
Kaitlin T FollerRussiaStephen Shaw QUALIFIED
Mayumi B PoquetteArgentinaXuxue Feng NEW
Claire L IturbideAustraliaStephen Shaw UNQUALIFIED
Munro I MaletAustraliaXuxue Feng NEGOTIATION
Maria E TollnerBrazilAsiya Javayant UNQUALIFIED
Adams P PoquetteBrazilBernardo Dominic NEW
Nicolas E KuskoIndiaXuxue Feng UNQUALIFIED
Kaitlin Y StockhamFranceElwin Sharvill UNQUALIFIED
Smith I BriddickRussiaOnyama Limba NEW
Wickens Z FlosiGermanyAsiya Javayant QUALIFIED
Deepesh G FollerJapanOnyama Limba PROPOSAL
James C MaletCanadaBernardo Dominic NEW
Johnson J WaycottCanadaOnyama Limba NEW
Misaki I GillianIndiaBernardo Dominic UNQUALIFIED
Wickens H FollerFranceStephen Shaw PROPOSAL
Aditya S MaletBrazilAmy Elsner QUALIFIED
Maisha S FigeroaGermanyXuxue Feng PROPOSAL
Kadeem Z GillianGermanyOnyama Limba NEGOTIATION
Kaitlin Z SchemmerBrazilAnna Fali PROPOSAL
Aruna I GlickSpainOnyama Limba NEW
Maria O DilliardAustraliaIvan Magalhaes PROPOSAL
Ricardo X DilliardUnited KingdomAsiya Javayant QUALIFIED
Kadeem B SlusarskiUnited KingdomOnyama Limba QUALIFIED
Izzy O WaycottGermanyAnna Fali PROPOSAL
Jennifer N MacleadJapanOnyama Limba NEGOTIATION
Smith P SchemmerGermanyIoni Bowcher PROPOSAL
Julie Y VocelkaUnited KingdomXuxue Feng UNQUALIFIED
Murillo Z GauchoUnited KingdomElwin Sharvill QUALIFIED
Smith W BriddickIndiaBernardo Dominic RENEWAL
James U NickaSpainOnyama Limba QUALIFIED
Clifford R StensethArgentinaXuxue Feng PROPOSAL
Sinclair I IturbideAustraliaIoni Bowcher RENEWAL
Cody E MarrierAustraliaAnna Fali NEW
Faith G GauchoRussiaAnna Fali NEGOTIATION
Tony W CaudyArgentinaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Sinclair X CaudyItalyAmy Elsner RENEWAL
Munro Y FigeroaRussiaIvan Magalhaes NEGOTIATION
Clifford T DilliardJapanBernardo Dominic UNQUALIFIED
Jones L GarufiItalyIoni Bowcher RENEWAL
Costa B KolmetzCanadaIvan Magalhaes NEW
Kaitlin I IturbideIndiaIvan Magalhaes PROPOSAL
Juan B MaletArgentinaOnyama Limba NEW
Smith R AmigonIndiaIoni Bowcher UNQUALIFIED
Wickens Z GarufiIndiaAnna Fali NEGOTIATION
Jennifer X FigeroaAustraliaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair E MaletItaly2026-08-11Feiner Bros NEGOTIATION42Ioni Bowcher
1001Darci U DarakjyRussia2026-07-19Truhlar And Truhlar Attys QUALIFIED10Asiya Javayant
1002Misaki M StockhamRussia2026-07-29Feiner Bros QUALIFIED24Anna Fali
1003David B PaprockiArgentina2026-07-22Feltz Printing Service NEGOTIATION93Ivan Magalhaes
1004Sinclair I GillianItaly2026-07-15Feiner Bros NEGOTIATION97Ivan Magalhaes
1005Munro D MacleadCanada2026-08-10Printing Dimensions PROPOSAL78Ivan Magalhaes
1006Aika V FollerBrazil2026-07-19Buckley Miller Wright NEW11Asiya Javayant
1007Ricardo C GillianRussia2026-08-05Printing Dimensions QUALIFIED66Stephen Shaw
1008Greenwood A SlusarskiRussia2026-07-27Truhlar And Truhlar Attys RENEWAL33Bernardo Dominic
1009Darci P DilliardItaly2026-07-22Morlong Associates NEGOTIATION70Bernardo Dominic
1010Costa W RoysterArgentina2026-07-19Dorl, James J Esq RENEWAL89Asiya Javayant
1011Aruna W BriddickGermany2026-08-12Chapman, Ross E Esq NEW83Xuxue Feng
1012David F ChuiArgentina2026-08-04Buckley Miller Wright NEW81Bernardo Dominic
1013James K StensethBrazil2026-07-17Benton, John B Jr NEGOTIATION34Bernardo Dominic
1014Ivar P SaylorsAustralia2026-08-09Feiner Bros NEGOTIATION55Asiya Javayant
1015Ashley I MacleadRussia2026-07-24Rangoni Of Florence NEGOTIATION49Anna Fali
1016Jones Z VenereFrance2026-08-07Rangoni Of Florence UNQUALIFIED63Onyama Limba
1017Rodrigues R ShinkoCanada2026-07-31Morlong Associates NEGOTIATION29Amy Elsner
1018Arvin K MarrierItaly2026-07-20Rousseaux, Michael Esq NEW60Ivan Magalhaes
1019Alejandro H MorascaIndia2026-07-26Morlong Associates NEW2Anna Fali
1020Maisha G GauchoItaly2026-08-08Benton, John B Jr NEGOTIATION68Ivan Magalhaes
1021Julie F InouyeUnited Kingdom2026-08-11Benton, John B Jr RENEWAL6Ioni Bowcher
1022Octavia S AmigonJapan2026-07-28Truhlar And Truhlar Attys PROPOSAL88Amy Elsner
1023Clifford N BowleyArgentina2026-07-30King, Christopher A Esq RENEWAL3Anna Fali
1024Alejandro V GlickFrance2026-08-09Chapman, Ross E Esq PROPOSAL53Xuxue Feng
1025Aika N AlbaresItaly2026-08-09Morlong Associates NEW84Ioni Bowcher
1026Johnson Q MacleadArgentina2026-08-13Feltz Printing Service NEGOTIATION25Anna Fali
1027Tony E MaletJapan2026-08-01Feltz Printing Service NEGOTIATION85Bernardo Dominic
1028Arvin B BologniaArgentina2026-07-29Truhlar And Truhlar Attys NEGOTIATION4Asiya Javayant
1029Antonio I KolmetzBrazil2026-08-04Printing Dimensions PROPOSAL65Ivan Magalhaes
1030Ricardo J SlusarskiRussia2026-08-13King, Christopher A Esq NEW91Xuxue Feng
1031Arvin C GauchoFrance2026-07-28Benton, John B Jr QUALIFIED22Ivan Magalhaes
1032Octavia B PoquetteUnited Kingdom2026-07-20Chanay, Jeffrey A Esq NEGOTIATION89Asiya Javayant
1033Costa I KuskoIndia2026-08-07Chanay, Jeffrey A Esq NEW11Amy Elsner
1034Jones I BriddickJapan2026-08-05Benton, John B Jr UNQUALIFIED26Elwin Sharvill
1035Antonio R SchemmerJapan2026-07-31Printing Dimensions UNQUALIFIED52Elwin Sharvill
1036Nicolas J VenereItaly2026-08-06Chanay, Jeffrey A Esq PROPOSAL54Ioni Bowcher
1037Morrow K FigeroaAustralia2026-07-21Chemel, James L Cpa PROPOSAL49Ioni Bowcher
1038Darci X OstroskyBrazil2026-08-09Feltz Printing Service NEGOTIATION63Bernardo Dominic
1039Emily W RulapaughItaly2026-08-12Morlong Associates NEGOTIATION73Onyama Limba
1040Juan Y StockhamSpain2026-07-23Rangoni Of Florence UNQUALIFIED90Ivan Magalhaes
1041Sinclair T StensethArgentina2026-07-26Feltz Printing Service NEW26Amy Elsner
1042Adams P GarufiSpain2026-08-02Benton, John B Jr PROPOSAL29Elwin Sharvill
1043Mayumi F OstroskyItaly2026-07-24Truhlar And Truhlar Attys NEGOTIATION23Ioni Bowcher
1044Octavia K NestleBrazil2026-07-17Chanay, Jeffrey A Esq UNQUALIFIED58Xuxue Feng
1045Leja K ChuiUnited Kingdom2026-07-26Benton, John B Jr RENEWAL76Xuxue Feng
1046Smith H RulapaughFrance2026-07-30Morlong Associates RENEWAL9Xuxue Feng
1047Wickens A PoquetteItaly2026-08-04Chemel, James L Cpa UNQUALIFIED98Ivan Magalhaes
1048Kaitlin Y WaycottUnited Kingdom2026-07-22Chanay, Jeffrey A Esq UNQUALIFIED41Stephen Shaw
1049Francesco X FigeroaBrazil2026-07-27Buckley Miller Wright PROPOSAL49Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Wickens V InouyeCanadaOnyama Limba NEGOTIATION
David V ButtArgentinaAsiya Javayant NEGOTIATION
Costa R MaletAustraliaIvan Magalhaes NEGOTIATION
Aruna Y RoysterSpainAnna Fali PROPOSAL
Deepesh J PoquetteSpainOnyama Limba UNQUALIFIED
David A MorascaAustraliaXuxue Feng QUALIFIED
David G StockhamSpainIvan Magalhaes QUALIFIED
Wickens M RulapaughSpainAnna Fali QUALIFIED
Faith Q KolmetzSpainIvan Magalhaes QUALIFIED
Rodrigues P InouyeGermanyOnyama Limba NEGOTIATION
Ashley E MorascaAustraliaAnna Fali PROPOSAL
Antonio M CampainAustraliaAsiya Javayant UNQUALIFIED
Jones Q OstroskyItalyAnna Fali NEW
Ivar S FigeroaIndiaOnyama Limba RENEWAL
Clifford D CaldareraRussiaAsiya Javayant RENEWAL
Antonio H IturbideCanadaAmy Elsner RENEWAL
Stacey P ChuiItalyIoni Bowcher QUALIFIED
Maisha D SergiFranceAmy Elsner QUALIFIED
Alejandro D GlickItalyIoni Bowcher UNQUALIFIED
Kaitlin I BologniaFranceXuxue Feng QUALIFIED
Ivar I OstroskyIndiaXuxue Feng NEW
Isabel Z OstroskyRussiaStephen Shaw UNQUALIFIED
Mujtaba H MacleadJapanElwin Sharvill NEGOTIATION
Ricardo N SaylorsFranceAmy Elsner NEGOTIATION
Aika U OldroydAustraliaElwin Sharvill NEGOTIATION
Juan T SergiJapanIvan Magalhaes NEW
Clifford Y MaletJapanIvan Magalhaes PROPOSAL
Chavez T FollerIndiaAsiya Javayant UNQUALIFIED
Mujtaba J BriddickAustraliaAsiya Javayant PROPOSAL
Mujtaba S WaycottArgentinaBernardo Dominic PROPOSAL
Ashley G RimJapanAnna Fali UNQUALIFIED
Rodrigues Z DarakjyUnited KingdomAmy Elsner QUALIFIED
Nicolas K VenereItalyIvan Magalhaes UNQUALIFIED
Munro D WhobreyJapanXuxue Feng RENEWAL
Izzy B SchemmerCanadaElwin Sharvill RENEWAL
Juan Y MacleadJapanAmy Elsner NEGOTIATION
Faith H RimUnited KingdomStephen Shaw QUALIFIED
Murillo Y GarufiIndiaElwin Sharvill QUALIFIED
Smith F RutaUnited KingdomOnyama Limba RENEWAL
Aika O PoquetteGermanyAnna Fali PROPOSAL
Arvin D KolmetzUnited KingdomOnyama Limba RENEWAL
Francesco Q ChuiAustraliaIoni Bowcher UNQUALIFIED
Clifford F DoeCanadaStephen Shaw QUALIFIED
Juan S RulapaughFranceIoni Bowcher PROPOSAL
Leon R MaletItalyAmy Elsner PROPOSAL
Izzy F WieserGermanyAnna Fali PROPOSAL
Jeanfrancois R PoquetteAustraliaAmy Elsner PROPOSAL
Emily J CampainJapanAnna Fali QUALIFIED
Darci Z GillianUnited KingdomElwin Sharvill RENEWAL
Jefferson S WaycottIndiaStephen Shaw QUALIFIED
Frozen Columns
Name
Antonio R Glick
Claire A Poquette
Juan P Gillian
Ricardo F Whobrey
Arvin N Chui
Arvin M Figeroa
Ivar H Inouye
Ricardo P Sergi
Emily A Briddick
Sinclair M Perin
Mayumi J Malet
Maria Q Poquette
Morrow J Inouye
Maisha U Bowley
Emily Y Malet
Jones D Ostrosky
Sinclair Y Nicka
Isabel A Sergi
Antonio S Slusarski
Kadeem H Tollner
Maisha G Ostrosky
Maisha A Tollner
Wickens C Kusko
Misaki Z Butt
Adams W Butt
Greenwood G Darakjy
Costa G Gaucho
Costa O Malet
Maisha F Perin
Juan O Kusko
Darci X Amigon
Octavia E Morasca
Silvio B Saylors
Jones D Campain
Aika M Morasca
Leja Z Chui
Mayumi E Kolmetz
Ashley J Marrier
James S Kusko
Stacey V Garufi
Darci P Glick
Arvin G Shinko
Jefferson G Doe
Ricardo P Darakjy
Munro W Darakjy
Darci R Flosi
Ashley I Malet
Mayumi W Caldarera
Julie N Wieser
Rodrigues E Caldarera
IdCountryDate
1000Argentina2026-08-04
1001Brazil2026-07-22
1002Australia2026-07-29
1003Australia2026-08-07
1004Russia2026-08-03
1005Italy2026-07-21
1006United Kingdom2026-07-17
1007India2026-07-31
1008Canada2026-07-16
1009India2026-07-15
1010India2026-08-03
1011Spain2026-07-15
1012France2026-07-23
1013Canada2026-07-17
1014Argentina2026-07-27
1015Brazil2026-08-13
1016Japan2026-08-12
1017Germany2026-08-03
1018Germany2026-08-08
1019France2026-07-31
1020Australia2026-08-11
1021Italy2026-07-22
1022Germany2026-08-09
1023Italy2026-07-25
1024Brazil2026-07-19
1025Russia2026-07-16
1026Germany2026-08-09
1027Italy2026-07-22
1028Canada2026-08-05
1029Australia2026-07-20
1030Canada2026-08-09
1031Spain2026-07-25
1032Japan2026-08-13
1033Canada2026-07-31
1034Australia2026-07-27
1035Italy2026-08-07
1036Argentina2026-08-04
1037Brazil2026-08-06
1038Italy2026-07-25
1039Russia2026-08-01
1040France2026-07-18
1041Germany2026-08-10
1042Italy2026-08-07
1043France2026-07-28
1044Spain2026-07-25
1045Russia2026-08-01
1046Italy2026-07-29
1047Spain2026-08-04
1048United Kingdom2026-08-02
1049France2026-07-21

On-Demand Data

NameIdCountryDate
Leja F Royster1000France2026-07-22
Misaki T Nestle1001Italy2026-08-12
Jones F Ostrosky1002Germany2026-08-09
Julie K Chui1003Canada2026-07-28
Alejandro R Rim1004Japan2026-08-04
Smith L Dilliard1005Italy2026-08-12
Izzy B Campain1006Germany2026-08-04
Salvatore B Dilliard1007India2026-08-11
Johnson V Venere1008Brazil2026-07-23
Sinclair X Schemmer1009Russia2026-07-31
Tony D Ruta1010India2026-07-26
Kadeem E Iturbide1011Japan2026-07-19
Greenwood A Gaucho1012Brazil2026-08-10
Francesco K Schemmer1013Australia2026-08-07
Izzy D Rulapaugh1014Brazil2026-07-15
Jennifer W Darakjy1015Russia2026-08-01
Johnson A Oldroyd1016India2026-07-19
Johnson L Caldarera1017France2026-07-30
Nicolas F Venere1018Japan2026-08-11
David V Wieser1019Germany2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson I WhobreyRussiaAmy Elsner NEGOTIATION
Ivar X VocelkaIndiaXuxue Feng QUALIFIED
Julie F CampainAustraliaIoni Bowcher RENEWAL
Nicolas S AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Costa U WaycottCanadaBernardo Dominic RENEWAL
Ashley S CaldareraAustraliaOnyama Limba NEGOTIATION
Munro S RutaSpainStephen Shaw QUALIFIED
Smith C VenereAustraliaAsiya Javayant UNQUALIFIED
Ricardo A GarufiItalyAmy Elsner NEGOTIATION
Leja I OstroskyBrazilAnna Fali QUALIFIED
Murillo Y InouyeAustraliaAmy Elsner UNQUALIFIED
Adams D PaprockiAustraliaXuxue Feng NEGOTIATION
Aruna P WaycottAustraliaElwin Sharvill UNQUALIFIED
Ashley Q AlbaresFranceElwin Sharvill PROPOSAL
Darci D CampainSpainIvan Magalhaes NEGOTIATION
Kaitlin Y FigeroaSpainBernardo Dominic RENEWAL
Chavez D MarrierGermanyBernardo Dominic NEGOTIATION
Ricardo F MorascaBrazilIoni Bowcher QUALIFIED
Octavia J MaletGermanyAsiya Javayant QUALIFIED
Emily G GauchoItalyIoni Bowcher NEGOTIATION
Johnson I CaldareraSpainIoni Bowcher NEGOTIATION
Darci A NickaIndiaAsiya Javayant NEGOTIATION
Octavia D MorascaAustraliaAmy Elsner UNQUALIFIED
Misaki U FigeroaGermanyStephen Shaw UNQUALIFIED
Clifford J OldroydAustraliaStephen Shaw PROPOSAL
Sinclair B OstroskyCanadaAsiya Javayant QUALIFIED
Octavia V RoysterAustraliaStephen Shaw NEGOTIATION
Mujtaba L GlickBrazilAnna Fali NEGOTIATION
Clifford V MarrierArgentinaXuxue Feng NEW
Adams D BriddickRussiaIvan Magalhaes RENEWAL
Adams V PaprockiSpainXuxue Feng RENEWAL
Johnson B WieserSpainXuxue Feng RENEWAL
Wickens R DilliardBrazilXuxue Feng RENEWAL
Aika H IturbideRussiaAsiya Javayant NEW
Izzy G InouyeGermanyIoni Bowcher NEGOTIATION
Aditya I GlickSpainBernardo Dominic QUALIFIED
Izzy O NestleItalyBernardo Dominic RENEWAL
Francesco M MaletCanadaOnyama Limba PROPOSAL
Octavia G GlickGermanyBernardo Dominic QUALIFIED
Aruna S GarufiUnited KingdomStephen Shaw NEGOTIATION

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