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
Maria A ChuiItalyIvan Magalhaes NEW
Francesco J SergiUnited KingdomAnna Fali NEW
Clifford Z AmigonRussiaXuxue Feng NEGOTIATION
Deepesh M BowleyItalyOnyama Limba RENEWAL
Izzy V FigeroaAustraliaIoni Bowcher QUALIFIED
Emily T MarrierSpainIvan Magalhaes RENEWAL
Ricardo V InouyeFranceAnna Fali QUALIFIED
Arvin X FerenczArgentinaOnyama Limba PROPOSAL
Antonio U GillianIndiaOnyama Limba NEW
Kadeem P ChuiFranceStephen Shaw NEW
Rodrigues X RulapaughItalyAsiya Javayant NEGOTIATION
Jeanfrancois V IturbideFranceStephen Shaw RENEWAL
Alejandro N CaudyIndiaBernardo Dominic UNQUALIFIED
Octavia P SergiBrazilAmy Elsner QUALIFIED
Costa I AlbaresIndiaStephen Shaw NEW
Tony R DoeUnited KingdomIvan Magalhaes RENEWAL
Darci N AmigonAustraliaElwin Sharvill NEW
Jeanfrancois M BowleyItalyAnna Fali QUALIFIED
Tony P WhobreyGermanyBernardo Dominic PROPOSAL
Aditya U KuskoRussiaBernardo Dominic QUALIFIED
Izzy X FigeroaArgentinaBernardo Dominic QUALIFIED
Kaitlin A VenereBrazilElwin Sharvill UNQUALIFIED
Ricardo W PoquetteItalyIoni Bowcher QUALIFIED
Chavez X OldroydFranceElwin Sharvill RENEWAL
Nicolas V KolmetzIndiaElwin Sharvill UNQUALIFIED
Antonio Q CaudyArgentinaAmy Elsner NEW
Faith D VenereJapanBernardo Dominic NEGOTIATION
Clifford O RutaCanadaElwin Sharvill QUALIFIED
Munro X KolmetzIndiaIvan Magalhaes NEW
Smith H ShinkoArgentinaStephen Shaw NEGOTIATION
Costa R MorascaCanadaStephen Shaw UNQUALIFIED
Stacey Y WaycottItalyBernardo Dominic NEGOTIATION
Octavia E KolmetzBrazilStephen Shaw PROPOSAL
Deepesh Q PaprockiBrazilStephen Shaw UNQUALIFIED
Mujtaba L WaycottFranceAmy Elsner RENEWAL
Francesco K MarrierFranceAmy Elsner NEW
Leja R MorascaArgentinaStephen Shaw NEW
Darci N MaletCanadaOnyama Limba RENEWAL
Ricardo G RoysterCanadaIvan Magalhaes PROPOSAL
Chavez R CampainCanadaElwin Sharvill RENEWAL
Octavia M WieserGermanyAsiya Javayant NEGOTIATION
Rodrigues V GauchoBrazilAnna Fali QUALIFIED
James F BowleyArgentinaBernardo Dominic QUALIFIED
Izzy S GarufiAustraliaAsiya Javayant NEGOTIATION
Deepesh L BriddickBrazilAsiya Javayant QUALIFIED
Ivar D FerenczRussiaAnna Fali NEW
Ivar S OldroydArgentinaStephen Shaw PROPOSAL
Faith I MorascaUnited KingdomXuxue Feng RENEWAL
James B AlbaresJapanIoni Bowcher QUALIFIED
Octavia O BowleyGermanyElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois B PoquetteRussiaBernardo Dominic PROPOSAL
Francesco F WaycottFranceBernardo Dominic PROPOSAL
Jennifer H VenereUnited KingdomElwin Sharvill NEGOTIATION
Smith T FollerArgentinaElwin Sharvill UNQUALIFIED
Nicolas K BologniaRussiaBernardo Dominic QUALIFIED
Jeanfrancois A MaletGermanyAmy Elsner RENEWAL
Juan V GauchoBrazilIvan Magalhaes UNQUALIFIED
Salvatore T StensethArgentinaAsiya Javayant QUALIFIED
Salvatore N GlickJapanAnna Fali UNQUALIFIED
Murillo D GarufiBrazilStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood X TollnerGermany2026-06-18Feltz Printing Service RENEWAL83Stephen Shaw
1001Adams W AmigonBrazil2026-07-09Feltz Printing Service NEW82Anna Fali
1002Salvatore G KolmetzCanada2026-07-03Buckley Miller Wright RENEWAL2Ioni Bowcher
1003Ivar I SlusarskiSpain2026-07-10Rangoni Of Florence RENEWAL48Amy Elsner
1004Salvatore D SlusarskiCanada2026-06-25King, Christopher A Esq RENEWAL50Ioni Bowcher
1005Maria U WhobreyBrazil2026-07-14King, Christopher A Esq QUALIFIED93Anna Fali
1006Izzy S AmigonUnited Kingdom2026-07-11Feltz Printing Service NEW65Amy Elsner
1007Maisha K OldroydJapan2026-06-19Rousseaux, Michael Esq PROPOSAL78Xuxue Feng
1008Morrow A MacleadArgentina2026-06-25Benton, John B Jr RENEWAL5Ivan Magalhaes
1009Isabel Q DarakjyAustralia2026-06-27Feiner Bros UNQUALIFIED98Amy Elsner
1010Izzy X TollnerAustralia2026-06-18Buckley Miller Wright PROPOSAL76Onyama Limba
1011Faith G KolmetzIndia2026-07-06Chemel, James L Cpa RENEWAL58Onyama Limba
1012Wickens K PoquetteArgentina2026-06-28Rangoni Of Florence RENEWAL51Bernardo Dominic
1013Tony N WaycottBrazil2026-06-19Buckley Miller Wright NEGOTIATION3Elwin Sharvill
1014Francesco T BowleyCanada2026-07-14Chemel, James L Cpa NEGOTIATION89Anna Fali
1015Mayumi C FollerGermany2026-06-30Morlong Associates NEGOTIATION82Amy Elsner
1016Kadeem Z AmigonSpain2026-06-29Printing Dimensions QUALIFIED53Anna Fali
1017Misaki S FlosiItaly2026-06-28Chemel, James L Cpa NEW78Ioni Bowcher
1018Jeanfrancois R DilliardCanada2026-07-03Chapman, Ross E Esq PROPOSAL33Amy Elsner
1019Mayumi Y NickaArgentina2026-06-20Morlong Associates NEGOTIATION0Stephen Shaw
1020Jennifer H StensethSpain2026-06-27Feltz Printing Service NEW84Amy Elsner
1021Sinclair O SchemmerUnited Kingdom2026-06-19Commercial Press UNQUALIFIED41Anna Fali
1022Misaki I NestleJapan2026-07-04Truhlar And Truhlar Attys RENEWAL9Ivan Magalhaes
1023Costa F PerinUnited Kingdom2026-07-10Printing Dimensions RENEWAL60Onyama Limba
1024Aruna P OldroydFrance2026-06-20Rangoni Of Florence UNQUALIFIED61Ivan Magalhaes
1025Clifford B ShinkoBrazil2026-07-01Chemel, James L Cpa NEGOTIATION61Ioni Bowcher
1026David N AlbaresAustralia2026-06-20Buckley Miller Wright UNQUALIFIED42Anna Fali
1027Mujtaba S NickaArgentina2026-06-23Truhlar And Truhlar Attys NEGOTIATION69Bernardo Dominic
1028Julie T MorascaAustralia2026-07-07Feiner Bros RENEWAL11Ivan Magalhaes
1029Ivar A WhobreyCanada2026-07-07Chapman, Ross E Esq NEGOTIATION83Elwin Sharvill
1030Maria F KuskoIndia2026-06-27Printing Dimensions PROPOSAL25Asiya Javayant
1031Julie K MarrierIndia2026-06-24Feiner Bros NEW25Anna Fali
1032Murillo B KuskoRussia2026-07-10Benton, John B Jr NEW54Xuxue Feng
1033Munro U FerenczBrazil2026-07-08Printing Dimensions NEGOTIATION57Onyama Limba
1034Maria F FlosiSpain2026-07-04Benton, John B Jr NEGOTIATION29Elwin Sharvill
1035Morrow A BologniaCanada2026-07-02Chapman, Ross E Esq QUALIFIED98Asiya Javayant
1036David I MorascaJapan2026-07-01Rousseaux, Michael Esq PROPOSAL68Xuxue Feng
1037Tony X ShinkoIndia2026-07-11Rangoni Of Florence NEW36Xuxue Feng
1038Deepesh O WhobreyGermany2026-07-16Buckley Miller Wright UNQUALIFIED36Ioni Bowcher
1039Leja X ButtAustralia2026-07-01Buckley Miller Wright PROPOSAL96Amy Elsner
1040Aruna A WhobreyFrance2026-07-13Benton, John B Jr RENEWAL21Stephen Shaw
1041James D StensethGermany2026-07-06Truhlar And Truhlar Attys QUALIFIED28Stephen Shaw
1042Darci N SchemmerIndia2026-07-05Morlong Associates NEGOTIATION35Onyama Limba
1043Darci A VenereArgentina2026-07-03Commercial Press PROPOSAL77Ioni Bowcher
1044Jefferson F AmigonRussia2026-06-23Feltz Printing Service NEGOTIATION79Ioni Bowcher
1045Mujtaba W CaudyUnited Kingdom2026-07-03Dorl, James J Esq RENEWAL37Xuxue Feng
1046David I MorascaFrance2026-07-17Chanay, Jeffrey A Esq PROPOSAL91Bernardo Dominic
1047Salvatore F PoquetteGermany2026-07-10Dorl, James J Esq NEW13Bernardo Dominic
1048Arvin T CampainAustralia2026-07-01Printing Dimensions QUALIFIED12Ivan Magalhaes
1049Wickens E BowleyGermany2026-06-21Rousseaux, Michael Esq PROPOSAL55Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Emily B SlusarskiBrazilXuxue Feng UNQUALIFIED
Tony L WhobreyFranceOnyama Limba UNQUALIFIED
Emily M WhobreyJapanAmy Elsner QUALIFIED
Aika M BriddickIndiaOnyama Limba QUALIFIED
Greenwood E MaletJapanIoni Bowcher PROPOSAL
Arvin W AmigonBrazilOnyama Limba PROPOSAL
Misaki N CampainArgentinaXuxue Feng NEW
Ricardo J FerenczJapanAmy Elsner NEW
Tony O PerinAustraliaAmy Elsner NEGOTIATION
James R BriddickCanadaAsiya Javayant RENEWAL
Mujtaba F GauchoArgentinaAmy Elsner RENEWAL
Mayumi F PaprockiJapanIoni Bowcher NEW
Leon N MarrierAustraliaIvan Magalhaes RENEWAL
Julie L DilliardJapanAsiya Javayant PROPOSAL
Kadeem Y WhobreyItalyAnna Fali QUALIFIED
Emily F VenereItalyIoni Bowcher NEGOTIATION
Julie F CampainCanadaOnyama Limba RENEWAL
Adams Y RulapaughArgentinaAmy Elsner UNQUALIFIED
Jennifer I MorascaSpainAsiya Javayant PROPOSAL
Jones Z IturbideBrazilIoni Bowcher NEW
Claire P StockhamIndiaIoni Bowcher UNQUALIFIED
Ricardo B AlbaresJapanOnyama Limba RENEWAL
James B DilliardUnited KingdomIvan Magalhaes QUALIFIED
Chavez I AmigonItalyIvan Magalhaes PROPOSAL
Chavez H VenereSpainStephen Shaw NEW
Sinclair N MacleadFranceAsiya Javayant PROPOSAL
Maria N GarufiFranceXuxue Feng UNQUALIFIED
Ashley B MacleadCanadaAmy Elsner UNQUALIFIED
Juan E StensethIndiaElwin Sharvill PROPOSAL
Mujtaba G KolmetzBrazilAsiya Javayant UNQUALIFIED
Faith J FigeroaAustraliaIoni Bowcher UNQUALIFIED
Misaki X ButtRussiaIoni Bowcher QUALIFIED
Munro E InouyeArgentinaStephen Shaw PROPOSAL
Munro R PaprockiAustraliaAmy Elsner RENEWAL
Cody G CaldareraAustraliaIvan Magalhaes NEGOTIATION
Kadeem G RutaAustraliaIvan Magalhaes QUALIFIED
Claire R OldroydRussiaElwin Sharvill NEW
Izzy K BriddickArgentinaStephen Shaw QUALIFIED
Aika O CampainRussiaOnyama Limba NEW
Jeanfrancois D GillianIndiaAmy Elsner NEGOTIATION
Jennifer A KuskoItalyAmy Elsner NEGOTIATION
Murillo T TollnerIndiaIvan Magalhaes PROPOSAL
Ashley B BologniaGermanyIoni Bowcher QUALIFIED
Misaki C KuskoFranceAmy Elsner UNQUALIFIED
Aruna F RutaUnited KingdomAnna Fali NEGOTIATION
Sinclair M TollnerBrazilXuxue Feng QUALIFIED
Maisha O KuskoItalyStephen Shaw QUALIFIED
David W FollerSpainIvan Magalhaes PROPOSAL
Isabel Y NestleSpainIoni Bowcher NEW
Silvio D NickaGermanyXuxue Feng NEGOTIATION
Frozen Columns
Name
Leja E Nestle
Antonio J Albares
Emily J Campain
Cody E Foller
Julie A Caudy
Wickens M Dilliard
David K Perin
Nicolas G Slusarski
James J Waycott
Aika D Poquette
Maria Q Amigon
Ricardo R Rulapaugh
Jennifer L Royster
Ivar F Stenseth
Antonio E Oldroyd
Jefferson N Butt
James T Poquette
Jennifer W Paprocki
Kadeem L Schemmer
Aruna P Marrier
Sinclair K Dilliard
Nicolas Z Caldarera
Tony X Ferencz
Claire S Caldarera
Nicolas P Morasca
Misaki U Morasca
Jennifer M Kusko
James S Figeroa
Juan G Venere
Maisha M Chui
Leon D Maclead
Arvin M Inouye
Maria A Vocelka
Johnson R Butt
Jefferson U Shinko
Munro U Slusarski
Wickens O Paprocki
Silvio N Poquette
Silvio Q Ostrosky
Mujtaba K Royster
Ashley G Perin
Rodrigues W Maclead
Misaki F Paprocki
Maria Q Rim
Greenwood K Gaucho
Adams S Rulapaugh
Cody V Doe
Mujtaba O Foller
Julie D Ostrosky
Misaki F Whobrey
IdCountryDate
1000Argentina2026-06-25
1001Japan2026-06-29
1002Canada2026-07-17
1003Germany2026-06-25
1004Canada2026-07-03
1005Australia2026-07-14
1006Australia2026-07-17
1007Brazil2026-07-09
1008India2026-06-23
1009Japan2026-07-06
1010France2026-07-06
1011Australia2026-06-20
1012Brazil2026-06-23
1013Italy2026-07-06
1014United Kingdom2026-07-14
1015Argentina2026-07-08
1016Italy2026-07-08
1017Italy2026-07-13
1018Japan2026-07-16
1019Russia2026-06-30
1020Italy2026-06-20
1021Spain2026-07-13
1022United Kingdom2026-06-26
1023Brazil2026-07-17
1024India2026-07-11
1025Canada2026-06-30
1026India2026-06-21
1027India2026-06-24
1028Spain2026-07-05
1029Italy2026-07-02
1030France2026-06-25
1031France2026-06-21
1032Argentina2026-06-20
1033Brazil2026-07-16
1034Brazil2026-06-19
1035Italy2026-07-07
1036France2026-06-24
1037Brazil2026-07-01
1038Russia2026-07-01
1039Canada2026-07-14
1040Canada2026-06-22
1041India2026-06-20
1042Australia2026-07-06
1043Spain2026-07-06
1044Russia2026-07-11
1045Brazil2026-07-04
1046France2026-07-15
1047United Kingdom2026-07-07
1048Brazil2026-07-05
1049France2026-07-07

On-Demand Data

NameIdCountryDate
Mayumi C Doe1000Brazil2026-07-14
Julie Q Shinko1001Japan2026-07-07
Emily V Briddick1002India2026-07-05
Kaitlin Q Slusarski1003Brazil2026-07-09
Maisha T Schemmer1004Brazil2026-06-24
Nicolas Y Dilliard1005Italy2026-06-30
Johnson J Dilliard1006France2026-06-26
Stacey L Garufi1007Germany2026-07-14
Faith A Waycott1008France2026-07-17
Clifford E Rulapaugh1009Germany2026-07-05
Jeanfrancois L Waycott1010Spain2026-06-22
Rodrigues Q Marrier1011France2026-06-21
Murillo Z Bolognia1012Italy2026-06-20
Morrow S Whobrey1013India2026-07-06
Nicolas U Wieser1014Canada2026-06-22
Leon O Saylors1015Italy2026-06-30
Kadeem P Rim1016France2026-06-22
Kaitlin T Stockham1017Australia2026-07-17
Faith Y Venere1018Australia2026-07-02
Sinclair W Perin1019Spain2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson Z NickaAustraliaAsiya Javayant NEGOTIATION
Julie V SergiAustraliaElwin Sharvill PROPOSAL
Leon S WieserArgentinaElwin Sharvill NEGOTIATION
Ashley X VocelkaArgentinaIoni Bowcher NEW
Tony K RulapaughUnited KingdomStephen Shaw NEGOTIATION
Ivar T VenereIndiaAmy Elsner NEW
Octavia Q OldroydUnited KingdomAmy Elsner NEW
Aika S RimRussiaAmy Elsner QUALIFIED
Morrow I GarufiItalyOnyama Limba NEW
Maisha R FerenczItalyElwin Sharvill NEW
Leon M CaldareraAustraliaIvan Magalhaes UNQUALIFIED
Leja Z FigeroaCanadaAmy Elsner NEGOTIATION
Morrow Q DoeIndiaAmy Elsner RENEWAL
Aditya S PaprockiCanadaElwin Sharvill QUALIFIED
Salvatore J CampainUnited KingdomOnyama Limba QUALIFIED
Darci M DoeSpainXuxue Feng QUALIFIED
Silvio B CaudyRussiaOnyama Limba NEGOTIATION
Emily Q AlbaresGermanyBernardo Dominic NEGOTIATION
Wickens Y WhobreyGermanyIvan Magalhaes UNQUALIFIED
Emily H IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Julie L TollnerGermanyOnyama Limba RENEWAL
Isabel N WaycottAustraliaElwin Sharvill UNQUALIFIED
Greenwood E InouyeRussiaElwin Sharvill RENEWAL
Rodrigues E OstroskySpainBernardo Dominic PROPOSAL
Arvin Y SergiBrazilElwin Sharvill NEW
Mujtaba P CaldareraUnited KingdomAmy Elsner QUALIFIED
Faith Q VenereBrazilXuxue Feng UNQUALIFIED
Juan O WieserArgentinaAnna Fali UNQUALIFIED
Jefferson Y StensethItalyAmy Elsner PROPOSAL
Antonio S DilliardRussiaStephen Shaw QUALIFIED
Adams D OstroskyIndiaStephen Shaw QUALIFIED
Nicolas G VocelkaCanadaAnna Fali NEW
Mujtaba Q RimBrazilStephen Shaw PROPOSAL
Julie M ButtArgentinaOnyama Limba UNQUALIFIED
Izzy N CaudyGermanyAnna Fali PROPOSAL
Costa Z MarrierUnited KingdomOnyama Limba NEGOTIATION
Francesco A PerinBrazilBernardo Dominic NEGOTIATION
Emily U CaudyItalyAnna Fali QUALIFIED
Costa F CampainFranceElwin Sharvill NEW
Kaitlin F CampainCanadaBernardo Dominic 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>