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
Clifford P RoysterIndiaAnna Fali NEGOTIATION
Munro R BriddickCanadaOnyama Limba PROPOSAL
Rodrigues X DoeGermanyXuxue Feng UNQUALIFIED
David J DilliardJapanAnna Fali PROPOSAL
Ashley N VenereAustraliaXuxue Feng RENEWAL
Stacey X MaletUnited KingdomStephen Shaw NEW
Clifford N NickaIndiaIoni Bowcher NEGOTIATION
Johnson C ButtJapanAsiya Javayant RENEWAL
Wickens C MaletArgentinaAnna Fali RENEWAL
Nicolas S ButtBrazilAnna Fali NEW
Octavia X KolmetzIndiaIoni Bowcher RENEWAL
Deepesh T MarrierUnited KingdomElwin Sharvill QUALIFIED
Clifford D VenereBrazilIvan Magalhaes QUALIFIED
Kaitlin B MorascaGermanyAmy Elsner NEW
Francesco V ShinkoArgentinaAnna Fali UNQUALIFIED
Ivar J SlusarskiIndiaAnna Fali PROPOSAL
Ricardo T BologniaCanadaIvan Magalhaes NEGOTIATION
Adams V KolmetzFranceAmy Elsner QUALIFIED
Leon U AmigonJapanBernardo Dominic NEW
Antonio I StockhamGermanyAnna Fali QUALIFIED
Sinclair O FigeroaItalyAsiya Javayant PROPOSAL
Silvio Z SlusarskiFranceIvan Magalhaes UNQUALIFIED
Wickens C AmigonSpainIoni Bowcher UNQUALIFIED
Mayumi V KuskoSpainBernardo Dominic QUALIFIED
Costa B MaletRussiaBernardo Dominic PROPOSAL
Tony S WieserAustraliaBernardo Dominic PROPOSAL
Johnson L KolmetzFranceStephen Shaw RENEWAL
Kadeem N KuskoRussiaAmy Elsner RENEWAL
Murillo K SaylorsIndiaIvan Magalhaes QUALIFIED
Faith X IturbideAustraliaIvan Magalhaes PROPOSAL
Antonio T CaudyCanadaAmy Elsner NEGOTIATION
Isabel U SaylorsSpainAsiya Javayant QUALIFIED
Kadeem I CaudyFranceOnyama Limba UNQUALIFIED
Adams L WhobreyAustraliaElwin Sharvill NEGOTIATION
Izzy J NestleCanadaAsiya Javayant RENEWAL
Salvatore A StockhamCanadaAnna Fali PROPOSAL
Ashley H StockhamGermanyXuxue Feng QUALIFIED
Nicolas G BriddickJapanStephen Shaw UNQUALIFIED
Ricardo E ShinkoSpainAmy Elsner PROPOSAL
Salvatore J ButtRussiaElwin Sharvill PROPOSAL
Claire X CaldareraBrazilXuxue Feng NEGOTIATION
Kadeem B DoeUnited KingdomIoni Bowcher QUALIFIED
Francesco Z AlbaresAustraliaOnyama Limba UNQUALIFIED
Aruna K RutaItalyXuxue Feng QUALIFIED
Jennifer H VocelkaArgentinaBernardo Dominic PROPOSAL
Maisha O SchemmerJapanAnna Fali NEGOTIATION
Jeanfrancois T WieserIndiaStephen Shaw RENEWAL
Isabel S ButtUnited KingdomXuxue Feng NEW
Maisha A KuskoSpainIvan Magalhaes QUALIFIED
Darci R StensethUnited KingdomIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Chavez O RoysterFranceAnna Fali NEW
Jefferson T AlbaresFranceBernardo Dominic QUALIFIED
Murillo D SchemmerUnited KingdomXuxue Feng PROPOSAL
Clifford U FigeroaAustraliaIvan Magalhaes UNQUALIFIED
Leon K GlickItalyIoni Bowcher RENEWAL
Deepesh Y CaldareraFranceAsiya Javayant NEGOTIATION
Izzy U OstroskyCanadaIvan Magalhaes PROPOSAL
Leon U MaletArgentinaStephen Shaw PROPOSAL
James G SlusarskiIndiaAmy Elsner QUALIFIED
Adams R WaycottUnited KingdomElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja G SergiUnited Kingdom2026-06-17Rousseaux, Michael Esq RENEWAL3Stephen Shaw
1001Julie D ChuiIndia2026-07-07Commercial Press QUALIFIED80Onyama Limba
1002Aditya E PerinIndia2026-06-20Buckley Miller Wright QUALIFIED2Ioni Bowcher
1003Emily O GillianAustralia2026-07-06King, Christopher A Esq UNQUALIFIED26Anna Fali
1004Tony S NestleAustralia2026-06-21Rangoni Of Florence PROPOSAL9Bernardo Dominic
1005Aika P SaylorsIndia2026-06-13Feltz Printing Service PROPOSAL48Ioni Bowcher
1006Silvio M MacleadGermany2026-07-09Buckley Miller Wright QUALIFIED48Xuxue Feng
1007Leon I AmigonArgentina2026-06-22Commercial Press QUALIFIED23Anna Fali
1008Ivar M MacleadBrazil2026-06-18Chapman, Ross E Esq NEW53Onyama Limba
1009Leon I RutaArgentina2026-06-22Feltz Printing Service UNQUALIFIED69Bernardo Dominic
1010Stacey P GillianFrance2026-07-09Dorl, James J Esq QUALIFIED10Elwin Sharvill
1011Darci A InouyeAustralia2026-07-06Rousseaux, Michael Esq RENEWAL3Bernardo Dominic
1012David L BriddickAustralia2026-06-21Truhlar And Truhlar Attys NEGOTIATION53Ivan Magalhaes
1013Izzy U PaprockiBrazil2026-06-16Dorl, James J Esq RENEWAL72Amy Elsner
1014Mujtaba W GarufiUnited Kingdom2026-07-03Truhlar And Truhlar Attys QUALIFIED50Elwin Sharvill
1015Alejandro W FerenczAustralia2026-06-15Commercial Press RENEWAL30Asiya Javayant
1016Wickens W MarrierArgentina2026-06-18Printing Dimensions UNQUALIFIED39Xuxue Feng
1017Ricardo F CampainItaly2026-06-16Chemel, James L Cpa RENEWAL24Elwin Sharvill
1018Francesco V NestleCanada2026-06-21Chapman, Ross E Esq NEW29Amy Elsner
1019Juan E SergiBrazil2026-06-26Benton, John B Jr NEW30Stephen Shaw
1020Mayumi O StockhamSpain2026-06-29Commercial Press NEGOTIATION52Elwin Sharvill
1021Maria J InouyeIndia2026-06-28Truhlar And Truhlar Attys PROPOSAL85Elwin Sharvill
1022Maria J MaletCanada2026-06-17Benton, John B Jr QUALIFIED99Ioni Bowcher
1023Sinclair Z AmigonRussia2026-06-13Chanay, Jeffrey A Esq PROPOSAL23Ivan Magalhaes
1024Arvin W WaycottCanada2026-07-05Buckley Miller Wright PROPOSAL30Stephen Shaw
1025Darci U BologniaArgentina2026-06-26Feltz Printing Service QUALIFIED17Amy Elsner
1026Munro E SchemmerItaly2026-07-08Chanay, Jeffrey A Esq PROPOSAL42Onyama Limba
1027Ricardo C PerinJapan2026-06-18Truhlar And Truhlar Attys RENEWAL15Xuxue Feng
1028Ricardo E DoeJapan2026-07-05Chemel, James L Cpa QUALIFIED23Ivan Magalhaes
1029Darci S CampainAustralia2026-06-23Chemel, James L Cpa QUALIFIED25Xuxue Feng
1030Clifford V KolmetzSpain2026-07-09King, Christopher A Esq NEW46Bernardo Dominic
1031Ricardo W SlusarskiCanada2026-07-03Chapman, Ross E Esq QUALIFIED84Elwin Sharvill
1032Claire I FerenczUnited Kingdom2026-06-14Chanay, Jeffrey A Esq QUALIFIED80Stephen Shaw
1033Aditya M KolmetzBrazil2026-06-26Printing Dimensions QUALIFIED45Onyama Limba
1034Sinclair F DarakjyUnited Kingdom2026-06-22Dorl, James J Esq UNQUALIFIED2Ivan Magalhaes
1035Munro Y WaycottIndia2026-07-10King, Christopher A Esq UNQUALIFIED82Xuxue Feng
1036Jones E FollerItaly2026-06-22Morlong Associates NEGOTIATION71Onyama Limba
1037Murillo Q MacleadUnited Kingdom2026-06-22Dorl, James J Esq UNQUALIFIED76Elwin Sharvill
1038Darci Z MaletIndia2026-07-02Feltz Printing Service RENEWAL61Stephen Shaw
1039David T GarufiCanada2026-06-28Rousseaux, Michael Esq NEW98Anna Fali
1040Octavia S WhobreyArgentina2026-06-19Rangoni Of Florence RENEWAL68Xuxue Feng
1041Misaki H GlickUnited Kingdom2026-06-27King, Christopher A Esq UNQUALIFIED68Elwin Sharvill
1042Izzy A SergiAustralia2026-06-25Chanay, Jeffrey A Esq UNQUALIFIED54Xuxue Feng
1043Juan G IturbideSpain2026-06-25Benton, John B Jr UNQUALIFIED81Xuxue Feng
1044Cody Y RutaJapan2026-06-15Chemel, James L Cpa NEW36Onyama Limba
1045Cody J NestleAustralia2026-06-24Chanay, Jeffrey A Esq UNQUALIFIED22Amy Elsner
1046Deepesh T PerinAustralia2026-06-18Rousseaux, Michael Esq NEW9Onyama Limba
1047Aruna L PaprockiRussia2026-07-04Chapman, Ross E Esq RENEWAL19Anna Fali
1048Adams M RimAustralia2026-06-15Chapman, Ross E Esq NEGOTIATION94Elwin Sharvill
1049Claire G DoeJapan2026-07-03Chanay, Jeffrey A Esq NEGOTIATION24Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues W BowleyAustraliaBernardo Dominic QUALIFIED
Nicolas V FollerRussiaIoni Bowcher NEGOTIATION
Leon I GillianSpainXuxue Feng QUALIFIED
Leon D PaprockiUnited KingdomXuxue Feng QUALIFIED
Faith A MaletItalyAmy Elsner UNQUALIFIED
Tony X RulapaughArgentinaAnna Fali QUALIFIED
Chavez Q InouyeItalyIvan Magalhaes NEGOTIATION
Jeanfrancois M StensethFranceOnyama Limba PROPOSAL
Clifford T IturbideJapanElwin Sharvill PROPOSAL
Wickens W KuskoGermanyElwin Sharvill QUALIFIED
Aditya W NestleArgentinaAmy Elsner RENEWAL
Murillo G PoquetteSpainStephen Shaw QUALIFIED
Ashley A MorascaCanadaAmy Elsner RENEWAL
James G GauchoCanadaBernardo Dominic QUALIFIED
Nicolas L KolmetzBrazilBernardo Dominic UNQUALIFIED
Aika H MarrierGermanyIoni Bowcher UNQUALIFIED
Ricardo O SchemmerCanadaAmy Elsner RENEWAL
Darci W FerenczCanadaAnna Fali NEW
Costa W WhobreyRussiaStephen Shaw NEGOTIATION
Leon W FerenczFranceAmy Elsner QUALIFIED
Munro A KolmetzGermanyIvan Magalhaes NEW
Adams U GlickGermanyStephen Shaw NEW
James S DilliardCanadaAsiya Javayant QUALIFIED
Juan K CampainItalyOnyama Limba PROPOSAL
Stacey V ShinkoJapanOnyama Limba PROPOSAL
Aika W PerinBrazilStephen Shaw QUALIFIED
Ricardo A BowleySpainElwin Sharvill PROPOSAL
Octavia N GlickItalyBernardo Dominic PROPOSAL
Morrow F InouyeGermanyIvan Magalhaes UNQUALIFIED
Kadeem O BriddickBrazilIvan Magalhaes NEW
Morrow L AlbaresJapanAsiya Javayant RENEWAL
Darci W CaudyUnited KingdomOnyama Limba UNQUALIFIED
Costa P BologniaIndiaXuxue Feng RENEWAL
Wickens I MarrierGermanyElwin Sharvill UNQUALIFIED
Maria A BowleyJapanIoni Bowcher UNQUALIFIED
Tony Q BologniaSpainElwin Sharvill PROPOSAL
Aditya N StensethAustraliaAnna Fali PROPOSAL
Silvio F InouyeSpainOnyama Limba UNQUALIFIED
Maisha B MacleadUnited KingdomXuxue Feng RENEWAL
Nicolas Z MarrierArgentinaAsiya Javayant RENEWAL
Maisha Q BologniaBrazilIoni Bowcher QUALIFIED
Mujtaba K BologniaJapanAmy Elsner NEW
David S DoeSpainOnyama Limba NEW
Nicolas N OstroskyFranceIoni Bowcher UNQUALIFIED
Maisha C VocelkaGermanyIoni Bowcher UNQUALIFIED
Aika M OldroydGermanyOnyama Limba NEGOTIATION
Julie L SchemmerJapanAsiya Javayant RENEWAL
Deepesh A GauchoFranceAnna Fali NEW
Jones O ChuiRussiaAsiya Javayant QUALIFIED
Rodrigues Q VenereItalyElwin Sharvill NEW
Frozen Columns
Name
Cody Z Chui
Claire Z Paprocki
Mujtaba S Nicka
Wickens I Flosi
Darci W Perin
Nicolas O Perin
Jefferson L Nestle
Kaitlin D Venere
Mujtaba I Bolognia
Murillo C Tollner
Rodrigues P Rulapaugh
Maria T Whobrey
Octavia E Maclead
Ricardo F Doe
Alejandro Z Briddick
Emily V Malet
Juan Q Perin
Mujtaba L Kusko
Salvatore U Sergi
Nicolas K Garufi
Izzy A Rulapaugh
Morrow U Sergi
Johnson I Kolmetz
Aditya W Malet
Francesco Y Rim
Stacey S Schemmer
Deepesh O Morasca
Aika W Campain
Sinclair X Stockham
Smith B Stenseth
Claire P Saylors
Jefferson J Malet
Nicolas C Malet
Chavez L Stockham
David D Oldroyd
Morrow B Kolmetz
Rodrigues L Paprocki
Nicolas D Oldroyd
David E Briddick
Isabel E Amigon
Kadeem W Waycott
Aruna F Briddick
Leja P Butt
Smith B Wieser
Darci F Nicka
Ivar D Vocelka
Tony Q Rulapaugh
Jefferson J Saylors
Chavez U Rulapaugh
James P Amigon
IdCountryDate
1000Argentina2026-07-08
1001Italy2026-06-27
1002Spain2026-07-01
1003Italy2026-06-17
1004Italy2026-06-30
1005Australia2026-06-24
1006Australia2026-06-18
1007Italy2026-07-06
1008India2026-06-28
1009Spain2026-06-24
1010Germany2026-06-13
1011Brazil2026-06-15
1012Brazil2026-06-30
1013Argentina2026-06-29
1014Italy2026-07-03
1015Germany2026-07-07
1016Australia2026-06-15
1017Australia2026-07-02
1018Russia2026-06-26
1019France2026-07-08
1020Brazil2026-07-02
1021Spain2026-06-16
1022Argentina2026-06-14
1023Australia2026-07-10
1024France2026-07-05
1025Australia2026-06-27
1026Brazil2026-06-13
1027India2026-06-23
1028Australia2026-06-29
1029Australia2026-06-29
1030Brazil2026-07-03
1031Australia2026-07-01
1032India2026-07-02
1033Italy2026-06-19
1034Japan2026-06-18
1035Japan2026-07-07
1036Russia2026-07-12
1037Argentina2026-07-06
1038Italy2026-06-21
1039India2026-06-20
1040India2026-07-04
1041France2026-06-21
1042Russia2026-06-16
1043India2026-07-10
1044Germany2026-06-20
1045Argentina2026-06-24
1046Germany2026-06-21
1047Russia2026-07-03
1048Italy2026-07-12
1049Brazil2026-07-11

On-Demand Data

NameIdCountryDate
Silvio F Venere1000Germany2026-06-15
Izzy E Figeroa1001Spain2026-06-25
Jeanfrancois T Ostrosky1002Argentina2026-06-22
Ricardo F Darakjy1003India2026-07-06
Emily I Amigon1004India2026-06-13
Isabel D Marrier1005Canada2026-06-25
Jennifer B Royster1006Spain2026-06-15
Smith X Foller1007Italy2026-06-16
Nicolas F Waycott1008Italy2026-06-19
Aika I Glick1009United Kingdom2026-07-12
Cody Z Ruta1010Canada2026-07-02
Kadeem G Ferencz1011Australia2026-06-21
Kadeem W Albares1012France2026-06-21
Wickens R Nestle1013India2026-07-06
Aika L Gillian1014Spain2026-06-15
Mayumi L Venere1015Germany2026-07-03
Aditya G Morasca1016Japan2026-06-16
Faith N Nestle1017Japan2026-06-17
Maisha Y Albares1018Germany2026-06-16
Leja N Nestle1019Japan2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo B CaudyGermanyIvan Magalhaes NEGOTIATION
Alejandro N WhobreyAustraliaStephen Shaw RENEWAL
Sinclair I SchemmerArgentinaOnyama Limba RENEWAL
Smith I MorascaRussiaXuxue Feng RENEWAL
Stacey N WhobreyAustraliaBernardo Dominic NEGOTIATION
Wickens H MaletRussiaElwin Sharvill QUALIFIED
Juan C PaprockiGermanyAnna Fali NEW
Ivar X DoeUnited KingdomOnyama Limba UNQUALIFIED
Aruna D InouyeFranceAnna Fali PROPOSAL
Emily S BologniaFranceIvan Magalhaes UNQUALIFIED
Sinclair B DoeCanadaStephen Shaw PROPOSAL
Adams Z GauchoFranceOnyama Limba PROPOSAL
Francesco P CaldareraRussiaXuxue Feng NEGOTIATION
Mayumi K WieserUnited KingdomAmy Elsner NEW
Sinclair E ShinkoCanadaAmy Elsner PROPOSAL
Julie D AmigonArgentinaXuxue Feng PROPOSAL
Faith G WhobreyItalyBernardo Dominic PROPOSAL
Maisha P TollnerItalyStephen Shaw RENEWAL
Aruna D OldroydItalyAnna Fali QUALIFIED
Stacey S KolmetzFranceIvan Magalhaes UNQUALIFIED
Nicolas X KolmetzBrazilStephen Shaw UNQUALIFIED
Costa O ShinkoFranceBernardo Dominic RENEWAL
Isabel W PoquetteItalyIoni Bowcher NEW
Antonio J WaycottArgentinaOnyama Limba PROPOSAL
Kaitlin B StockhamArgentinaXuxue Feng NEW
Claire D MaletRussiaIoni Bowcher NEGOTIATION
Kaitlin T BowleyCanadaAmy Elsner NEW
Antonio C MaletAustraliaBernardo Dominic NEW
Silvio W IturbideCanadaOnyama Limba UNQUALIFIED
Salvatore Z WhobreyUnited KingdomAnna Fali NEW
Deepesh Z ShinkoAustraliaBernardo Dominic PROPOSAL
Juan K SergiItalyAsiya Javayant NEGOTIATION
Maria C PoquetteAustraliaElwin Sharvill PROPOSAL
Murillo M DilliardRussiaAmy Elsner NEGOTIATION
Ivar P CampainFranceXuxue Feng NEW
Mayumi T MacleadArgentinaOnyama Limba NEGOTIATION
Alejandro X DarakjyArgentinaAmy Elsner NEW
Faith X WhobreyJapanAmy Elsner RENEWAL
Greenwood K CaldareraBrazilIvan Magalhaes QUALIFIED
Costa N IturbideGermanyElwin Sharvill 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>