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 T RutaBrazilOnyama Limba UNQUALIFIED
Clifford N KuskoIndiaAsiya Javayant PROPOSAL
Deepesh E MaletGermanyOnyama Limba UNQUALIFIED
James U AlbaresUnited KingdomStephen Shaw RENEWAL
Murillo N PerinJapanAmy Elsner UNQUALIFIED
Maisha Q MacleadJapanIvan Magalhaes NEGOTIATION
James Z DoeGermanyElwin Sharvill NEGOTIATION
Jeanfrancois U MaletGermanyAsiya Javayant QUALIFIED
Munro H CaldareraRussiaBernardo Dominic UNQUALIFIED
Aika C DoeCanadaXuxue Feng PROPOSAL
Aruna K SlusarskiUnited KingdomBernardo Dominic NEW
Antonio D SchemmerBrazilStephen Shaw RENEWAL
Clifford Z PaprockiGermanyElwin Sharvill NEW
Nicolas N GauchoArgentinaIvan Magalhaes RENEWAL
Octavia P RutaFranceIvan Magalhaes QUALIFIED
Julie L FigeroaAustraliaXuxue Feng QUALIFIED
James W VenereRussiaAmy Elsner PROPOSAL
James E IturbideArgentinaStephen Shaw QUALIFIED
Julie Q CaldareraCanadaAmy Elsner PROPOSAL
Isabel X SchemmerBrazilIoni Bowcher UNQUALIFIED
Stacey E GlickBrazilAnna Fali NEGOTIATION
Salvatore D KuskoSpainAsiya Javayant QUALIFIED
Costa B GauchoJapanIoni Bowcher UNQUALIFIED
Costa Z CaldareraSpainOnyama Limba RENEWAL
Rodrigues V SlusarskiGermanyAnna Fali QUALIFIED
Deepesh X SergiCanadaOnyama Limba RENEWAL
Aditya D PaprockiRussiaIoni Bowcher QUALIFIED
Arvin S ButtCanadaAsiya Javayant UNQUALIFIED
Faith L GarufiAustraliaStephen Shaw NEGOTIATION
David L AmigonUnited KingdomStephen Shaw NEW
Costa T WaycottJapanAmy Elsner UNQUALIFIED
Johnson L ButtAustraliaOnyama Limba PROPOSAL
Octavia U RutaIndiaIoni Bowcher RENEWAL
Tony J PaprockiAustraliaBernardo Dominic UNQUALIFIED
Costa R SaylorsCanadaIoni Bowcher RENEWAL
Johnson R BriddickSpainOnyama Limba QUALIFIED
Mujtaba I FollerBrazilElwin Sharvill RENEWAL
Adams L BowleyBrazilBernardo Dominic RENEWAL
Rodrigues Y FerenczFranceAmy Elsner RENEWAL
Deepesh H AmigonItalyAmy Elsner PROPOSAL
Murillo H BologniaFranceAsiya Javayant QUALIFIED
Francesco L PoquetteCanadaStephen Shaw UNQUALIFIED
Aditya H MacleadCanadaAnna Fali RENEWAL
Leja Y VocelkaFranceIoni Bowcher RENEWAL
Deepesh I GlickSpainAsiya Javayant NEGOTIATION
Adams Y RoysterFranceStephen Shaw QUALIFIED
Julie E NickaCanadaAsiya Javayant UNQUALIFIED
Isabel T OldroydCanadaOnyama Limba RENEWAL
Aruna Z GlickUnited KingdomStephen Shaw NEW
Clifford F PerinFranceIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues E GarufiGermanyAnna Fali QUALIFIED
Munro A CaudyFranceAmy Elsner NEGOTIATION
Wickens L VocelkaArgentinaIvan Magalhaes QUALIFIED
Wickens R KuskoCanadaOnyama Limba UNQUALIFIED
Kadeem Z VenereRussiaIoni Bowcher PROPOSAL
Juan X CaudySpainXuxue Feng PROPOSAL
Mujtaba N GillianArgentinaElwin Sharvill QUALIFIED
Aika E FlosiAustraliaAnna Fali QUALIFIED
James N ButtItalyOnyama Limba PROPOSAL
Smith V RimBrazilXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha V ButtRussia2026-07-25King, Christopher A Esq RENEWAL75Stephen Shaw
1001Chavez W IturbideBrazil2026-07-20Rangoni Of Florence NEGOTIATION37Stephen Shaw
1002Jones X CampainSpain2026-07-06Rousseaux, Michael Esq QUALIFIED26Onyama Limba
1003Sinclair A OldroydBrazil2026-07-23Rousseaux, Michael Esq UNQUALIFIED32Anna Fali
1004Leon G VocelkaCanada2026-07-16Feltz Printing Service NEW55Anna Fali
1005Adams N MaletCanada2026-07-22Feltz Printing Service QUALIFIED70Ioni Bowcher
1006Julie Z ChuiGermany2026-07-08Chapman, Ross E Esq PROPOSAL27Ioni Bowcher
1007Aika O SaylorsGermany2026-07-18Benton, John B Jr PROPOSAL23Xuxue Feng
1008Stacey G ButtCanada2026-07-04Printing Dimensions UNQUALIFIED0Xuxue Feng
1009Jeanfrancois E CampainBrazil2026-07-05Rousseaux, Michael Esq RENEWAL53Asiya Javayant
1010James J AlbaresFrance2026-07-11Rangoni Of Florence UNQUALIFIED59Elwin Sharvill
1011Leon H PoquetteItaly2026-07-27Truhlar And Truhlar Attys QUALIFIED56Asiya Javayant
1012Morrow D OstroskyGermany2026-07-10Feltz Printing Service PROPOSAL58Xuxue Feng
1013Juan I RulapaughArgentina2026-07-10Rangoni Of Florence UNQUALIFIED28Stephen Shaw
1014Aditya M AmigonJapan2026-07-11Chanay, Jeffrey A Esq NEW5Bernardo Dominic
1015Arvin S MarrierSpain2026-07-23Feiner Bros NEW14Bernardo Dominic
1016Kadeem H NickaBrazil2026-07-21Chapman, Ross E Esq QUALIFIED82Xuxue Feng
1017Chavez R RimUnited Kingdom2026-07-12Rangoni Of Florence RENEWAL69Xuxue Feng
1018Jennifer H MacleadJapan2026-07-19Dorl, James J Esq NEW43Onyama Limba
1019Maisha I VocelkaItaly2026-07-21Morlong Associates QUALIFIED89Anna Fali
1020Leon Z StockhamItaly2026-07-23Benton, John B Jr PROPOSAL26Elwin Sharvill
1021Faith A WaycottAustralia2026-07-08Feltz Printing Service PROPOSAL73Ivan Magalhaes
1022Sinclair J OstroskyBrazil2026-07-15Morlong Associates QUALIFIED97Ivan Magalhaes
1023Jennifer A BriddickArgentina2026-07-04Dorl, James J Esq RENEWAL90Ioni Bowcher
1024Maisha S FollerGermany2026-07-05Chapman, Ross E Esq QUALIFIED63Asiya Javayant
1025Antonio I GillianSpain2026-07-11Chanay, Jeffrey A Esq RENEWAL23Xuxue Feng
1026Ivar A MorascaCanada2026-07-18Printing Dimensions QUALIFIED12Ioni Bowcher
1027Antonio S MarrierItaly2026-07-28Chapman, Ross E Esq NEW42Ivan Magalhaes
1028Jeanfrancois Z ButtGermany2026-07-14Commercial Press NEW7Xuxue Feng
1029Jefferson R PerinBrazil2026-07-22Dorl, James J Esq NEW7Amy Elsner
1030Emily A VocelkaCanada2026-07-04Rousseaux, Michael Esq NEW36Stephen Shaw
1031Aika I OstroskyAustralia2026-07-14King, Christopher A Esq QUALIFIED44Elwin Sharvill
1032Jones P WieserSpain2026-07-26Chemel, James L Cpa UNQUALIFIED27Ioni Bowcher
1033Juan W BologniaUnited Kingdom2026-07-17Feiner Bros UNQUALIFIED34Xuxue Feng
1034Morrow Z CaldareraCanada2026-07-16Feltz Printing Service UNQUALIFIED75Xuxue Feng
1035Julie W GillianCanada2026-07-01Chapman, Ross E Esq PROPOSAL88Amy Elsner
1036Kadeem S MorascaCanada2026-07-29Chemel, James L Cpa PROPOSAL29Bernardo Dominic
1037Smith K TollnerAustralia2026-07-05Buckley Miller Wright NEGOTIATION50Onyama Limba
1038Chavez I MacleadRussia2026-07-03Benton, John B Jr QUALIFIED96Onyama Limba
1039Jennifer W GarufiFrance2026-07-02Commercial Press UNQUALIFIED9Bernardo Dominic
1040Johnson D MacleadRussia2026-07-05King, Christopher A Esq NEGOTIATION63Asiya Javayant
1041Salvatore H AmigonSpain2026-07-17Printing Dimensions QUALIFIED63Ivan Magalhaes
1042Jefferson K DoeAustralia2026-07-28Feiner Bros RENEWAL67Ioni Bowcher
1043Leon Y DoeJapan2026-07-20Chanay, Jeffrey A Esq NEW28Ivan Magalhaes
1044Octavia T FlosiJapan2026-07-21Printing Dimensions PROPOSAL89Onyama Limba
1045Wickens X FigeroaUnited Kingdom2026-07-03Buckley Miller Wright QUALIFIED44Bernardo Dominic
1046Mayumi M MarrierAustralia2026-07-04Chanay, Jeffrey A Esq PROPOSAL20Onyama Limba
1047Francesco P VenereBrazil2026-07-12Rousseaux, Michael Esq RENEWAL14Stephen Shaw
1048Emily W CampainSpain2026-07-09Printing Dimensions NEGOTIATION67Anna Fali
1049Ivar M BriddickIndia2026-07-28Feiner Bros UNQUALIFIED21Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Smith I RimItalyBernardo Dominic UNQUALIFIED
Stacey P GillianIndiaElwin Sharvill NEW
Maisha F WaycottSpainAmy Elsner PROPOSAL
Sinclair U DoeUnited KingdomXuxue Feng PROPOSAL
Aruna S RutaBrazilIvan Magalhaes NEGOTIATION
Silvio L ButtSpainElwin Sharvill RENEWAL
Stacey R NestleBrazilBernardo Dominic NEW
Morrow S DoeSpainAsiya Javayant QUALIFIED
Kaitlin T RutaRussiaAmy Elsner NEGOTIATION
Leon O VenereBrazilElwin Sharvill UNQUALIFIED
Johnson N NestleCanadaBernardo Dominic QUALIFIED
Faith E MaletAustraliaXuxue Feng PROPOSAL
Aruna I NestleItalyAmy Elsner NEGOTIATION
James M DarakjyArgentinaAmy Elsner NEGOTIATION
Rodrigues G PoquetteJapanAnna Fali PROPOSAL
Jeanfrancois W SergiFranceIoni Bowcher PROPOSAL
Murillo X MacleadIndiaStephen Shaw PROPOSAL
Silvio W GarufiRussiaOnyama Limba NEW
Cody C VenereArgentinaElwin Sharvill RENEWAL
Munro X DilliardBrazilIvan Magalhaes NEW
Ivar S StockhamBrazilBernardo Dominic RENEWAL
Silvio X BriddickJapanIvan Magalhaes QUALIFIED
Munro V IturbideBrazilIvan Magalhaes NEW
Ricardo A CaldareraItalyXuxue Feng PROPOSAL
Ashley W MarrierJapanAmy Elsner UNQUALIFIED
Costa V PerinGermanyAsiya Javayant UNQUALIFIED
Leja B KolmetzIndiaAmy Elsner UNQUALIFIED
Kaitlin O CaudySpainBernardo Dominic RENEWAL
Leon S ShinkoArgentinaStephen Shaw NEW
Kadeem A SaylorsGermanyBernardo Dominic UNQUALIFIED
Claire P RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues O PaprockiRussiaAmy Elsner QUALIFIED
Nicolas A PoquetteItalyStephen Shaw NEW
Arvin J GarufiGermanyStephen Shaw RENEWAL
Chavez A RutaJapanBernardo Dominic QUALIFIED
Alejandro W BriddickJapanOnyama Limba QUALIFIED
Jefferson V KolmetzBrazilAmy Elsner RENEWAL
Wickens Q FollerCanadaIvan Magalhaes PROPOSAL
Jennifer L MaletFranceElwin Sharvill PROPOSAL
Alejandro N BriddickAustraliaBernardo Dominic RENEWAL
Aditya A MorascaJapanAmy Elsner NEGOTIATION
Jeanfrancois E BologniaIndiaIoni Bowcher UNQUALIFIED
Cody T MaletAustraliaXuxue Feng NEGOTIATION
Emily K MaletFranceOnyama Limba RENEWAL
Arvin R ChuiJapanXuxue Feng RENEWAL
Munro T AmigonFranceElwin Sharvill RENEWAL
Kaitlin F WieserArgentinaIoni Bowcher RENEWAL
Claire P RutaAustraliaAmy Elsner PROPOSAL
Isabel V WhobreyJapanIvan Magalhaes NEW
Misaki Z GillianRussiaElwin Sharvill RENEWAL
Frozen Columns
Name
Darci O Ostrosky
Claire T Gillian
Faith F Doe
Mayumi H Gillian
Leon Z Saylors
Nicolas Z Marrier
Morrow U Slusarski
Costa V Nicka
Costa A Waycott
Wickens V Malet
Jeanfrancois Q Waycott
Clifford L Caldarera
Smith T Briddick
Jeanfrancois R Waycott
Juan L Dilliard
Ricardo H Campain
Costa R Figeroa
Emily B Maclead
Costa Z Nestle
Munro P Paprocki
Greenwood P Kusko
Arvin J Gillian
Adams P Nestle
Johnson R Doe
Misaki G Paprocki
Isabel G Butt
Antonio F Kusko
Smith W Garufi
Izzy A Iturbide
Isabel Z Glick
Munro C Waycott
Aditya D Doe
Silvio C Bolognia
David Y Paprocki
Kadeem F Amigon
Isabel S Poquette
Aditya F Sergi
James F Schemmer
Tony A Figeroa
David X Albares
Mujtaba V Venere
Silvio F Kolmetz
Rodrigues J Inouye
Octavia T Rim
Jones J Campain
Misaki L Ferencz
Jefferson P Inouye
Kaitlin E Royster
Johnson P Caldarera
Clifford F Flosi
IdCountryDate
1000France2026-07-22
1001Canada2026-07-13
1002Russia2026-07-09
1003Brazil2026-07-11
1004Japan2026-07-27
1005Brazil2026-07-09
1006Canada2026-07-13
1007Italy2026-07-21
1008Canada2026-07-09
1009Argentina2026-07-24
1010Spain2026-07-10
1011Italy2026-07-07
1012France2026-07-15
1013Canada2026-07-12
1014France2026-07-27
1015Italy2026-07-05
1016Brazil2026-07-08
1017Argentina2026-07-03
1018Russia2026-07-02
1019Australia2026-07-25
1020Brazil2026-07-25
1021Japan2026-07-07
1022Germany2026-07-25
1023Italy2026-07-04
1024Germany2026-07-02
1025Japan2026-07-17
1026Italy2026-07-13
1027Germany2026-07-07
1028Australia2026-07-06
1029Italy2026-07-29
1030France2026-07-28
1031France2026-07-26
1032France2026-07-24
1033Germany2026-07-30
1034Japan2026-07-22
1035Australia2026-07-14
1036Argentina2026-07-10
1037United Kingdom2026-07-05
1038India2026-07-29
1039Australia2026-07-11
1040United Kingdom2026-07-17
1041Russia2026-07-30
1042Italy2026-07-23
1043India2026-07-09
1044Germany2026-07-27
1045Brazil2026-07-11
1046Brazil2026-07-19
1047Australia2026-07-23
1048Italy2026-07-18
1049Spain2026-07-01

On-Demand Data

NameIdCountryDate
Misaki B Stenseth1000Italy2026-07-01
Leja C Saylors1001United Kingdom2026-07-28
Emily L Maclead1002United Kingdom2026-07-17
Misaki B Caudy1003Spain2026-07-13
Costa T Gillian1004Germany2026-07-13
Greenwood B Stockham1005Japan2026-07-16
Munro K Ostrosky1006India2026-07-24
Ivar W Malet1007Argentina2026-07-15
Ashley Z Nestle1008Spain2026-07-23
Mayumi K Bolognia1009Italy2026-07-25
Izzy H Wieser1010Canada2026-07-17
Adams U Oldroyd1011Argentina2026-07-26
Johnson W Briddick1012Russia2026-07-25
Mujtaba U Rim1013Australia2026-07-20
Cody W Ferencz1014India2026-07-03
Arvin T Butt1015Russia2026-07-04
David U Ruta1016Australia2026-07-14
Emily P Venere1017Australia2026-07-14
Sinclair N Nestle1018France2026-07-20
Emily L Iturbide1019Canada2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo W AlbaresRussiaStephen Shaw PROPOSAL
Jeanfrancois G PerinJapanAmy Elsner UNQUALIFIED
Greenwood Z GauchoItalyElwin Sharvill RENEWAL
Aditya G BologniaUnited KingdomAnna Fali NEGOTIATION
Francesco V DilliardArgentinaXuxue Feng PROPOSAL
Mujtaba Z BriddickJapanStephen Shaw PROPOSAL
Maisha F SergiIndiaElwin Sharvill RENEWAL
Tony Y PaprockiCanadaOnyama Limba PROPOSAL
Misaki J FigeroaAustraliaOnyama Limba PROPOSAL
Clifford Y VocelkaAustraliaElwin Sharvill UNQUALIFIED
Munro O GlickItalyXuxue Feng RENEWAL
Wickens C RoysterArgentinaAsiya Javayant RENEWAL
Murillo C BriddickCanadaIoni Bowcher PROPOSAL
David B ChuiBrazilIvan Magalhaes NEW
Aruna I WaycottFranceIvan Magalhaes UNQUALIFIED
Kadeem A FollerItalyBernardo Dominic UNQUALIFIED
Mayumi L DarakjyUnited KingdomAsiya Javayant RENEWAL
Tony K DilliardCanadaElwin Sharvill PROPOSAL
Leon G OstroskyJapanAnna Fali UNQUALIFIED
Clifford Z ChuiIndiaIoni Bowcher NEW
Leja Q FigeroaGermanyOnyama Limba UNQUALIFIED
Ashley S MaletRussiaAsiya Javayant QUALIFIED
Mayumi W MorascaArgentinaIvan Magalhaes QUALIFIED
Salvatore P PoquetteUnited KingdomIvan Magalhaes PROPOSAL
Leja F VocelkaArgentinaStephen Shaw RENEWAL
Ashley Z WaycottIndiaIvan Magalhaes RENEWAL
Tony Z CaldareraItalyStephen Shaw NEGOTIATION
Jefferson T BriddickBrazilAnna Fali QUALIFIED
Jennifer C DilliardRussiaOnyama Limba NEW
Antonio T FlosiAustraliaAsiya Javayant RENEWAL
Chavez P OstroskySpainBernardo Dominic NEW
Darci I OldroydItalyAnna Fali PROPOSAL
Octavia H InouyeBrazilStephen Shaw PROPOSAL
Isabel J CaldareraRussiaAmy Elsner QUALIFIED
Kadeem T FigeroaCanadaIoni Bowcher RENEWAL
Costa G TollnerSpainAnna Fali NEGOTIATION
Ashley K IturbideArgentinaAmy Elsner PROPOSAL
James I NickaFranceAmy Elsner UNQUALIFIED
Munro K WhobreyJapanAmy Elsner NEW
Arvin K OldroydFranceAmy Elsner UNQUALIFIED

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