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
Izzy M SchemmerAustraliaIoni Bowcher RENEWAL
Mayumi H RutaJapanIvan Magalhaes UNQUALIFIED
Adams D StensethIndiaAmy Elsner RENEWAL
Jeanfrancois I AmigonSpainAsiya Javayant NEW
Smith O StensethAustraliaBernardo Dominic UNQUALIFIED
Francesco H TollnerSpainIvan Magalhaes QUALIFIED
Greenwood T ChuiAustraliaBernardo Dominic QUALIFIED
Emily V OldroydUnited KingdomBernardo Dominic NEW
Jefferson G ShinkoFranceBernardo Dominic PROPOSAL
Leon W StensethItalyXuxue Feng QUALIFIED
Julie B CaldareraArgentinaIoni Bowcher PROPOSAL
Clifford U SlusarskiSpainOnyama Limba UNQUALIFIED
Aruna L OldroydJapanElwin Sharvill UNQUALIFIED
Johnson M ButtSpainStephen Shaw QUALIFIED
Johnson I MacleadItalyOnyama Limba PROPOSAL
Jefferson X PerinSpainAsiya Javayant QUALIFIED
Jefferson Y CaudyFranceIvan Magalhaes PROPOSAL
Nicolas I GlickRussiaOnyama Limba UNQUALIFIED
Izzy L WieserBrazilBernardo Dominic RENEWAL
Faith B MaletItalyElwin Sharvill NEGOTIATION
Aruna Z FollerUnited KingdomIoni Bowcher RENEWAL
James E StensethAustraliaIoni Bowcher NEW
James V GauchoCanadaAsiya Javayant NEGOTIATION
Octavia T VocelkaArgentinaAmy Elsner NEW
Faith B OldroydFranceElwin Sharvill NEW
Greenwood F VocelkaCanadaAmy Elsner RENEWAL
Mayumi Y MorascaArgentinaAsiya Javayant NEGOTIATION
Morrow X CaldareraRussiaAsiya Javayant RENEWAL
Deepesh R FerenczGermanyBernardo Dominic RENEWAL
Kadeem P RutaCanadaOnyama Limba RENEWAL
Emily M NickaArgentinaXuxue Feng RENEWAL
David O StockhamCanadaIvan Magalhaes RENEWAL
Maria J KuskoCanadaElwin Sharvill QUALIFIED
Jeanfrancois T RulapaughAustraliaAmy Elsner QUALIFIED
Wickens P GlickCanadaXuxue Feng QUALIFIED
Maisha G AmigonCanadaAnna Fali NEGOTIATION
Leon X CaudyFranceStephen Shaw NEW
Morrow F RutaRussiaIvan Magalhaes QUALIFIED
Wickens Q GlickCanadaAmy Elsner QUALIFIED
Rodrigues N CaudyItalyStephen Shaw PROPOSAL
Ashley P KolmetzAustraliaXuxue Feng NEGOTIATION
Chavez X CaldareraRussiaBernardo Dominic NEGOTIATION
Ashley B CaldareraUnited KingdomXuxue Feng NEW
Munro K NestleAustraliaXuxue Feng RENEWAL
Tony R DoeGermanyXuxue Feng NEGOTIATION
Cody C GauchoRussiaOnyama Limba UNQUALIFIED
Faith W WhobreyFranceBernardo Dominic NEGOTIATION
Octavia I ShinkoJapanElwin Sharvill NEGOTIATION
Julie S SlusarskiJapanIoni Bowcher UNQUALIFIED
Adams G FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore U MaletJapanXuxue Feng NEGOTIATION
Costa H MaletUnited KingdomAsiya Javayant QUALIFIED
Rodrigues S MacleadSpainStephen Shaw PROPOSAL
Kadeem D TollnerItalyElwin Sharvill QUALIFIED
Rodrigues U SlusarskiRussiaAsiya Javayant QUALIFIED
Ashley U SaylorsIndiaElwin Sharvill UNQUALIFIED
Maria T FlosiBrazilStephen Shaw PROPOSAL
Stacey L WieserAustraliaIoni Bowcher NEGOTIATION
Maisha B GlickGermanyAmy Elsner NEW
Julie X VocelkaFranceStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro J NestleSpain2026-06-27Chanay, Jeffrey A Esq RENEWAL98Xuxue Feng
1001Aditya C FigeroaRussia2026-06-11Rousseaux, Michael Esq RENEWAL78Stephen Shaw
1002Deepesh D DilliardGermany2026-06-18Chanay, Jeffrey A Esq RENEWAL91Elwin Sharvill
1003Kaitlin Q RutaBrazil2026-06-13Chanay, Jeffrey A Esq QUALIFIED75Asiya Javayant
1004Morrow M OstroskySpain2026-06-19Truhlar And Truhlar Attys RENEWAL89Bernardo Dominic
1005Maisha B DilliardJapan2026-07-08Truhlar And Truhlar Attys NEW96Ivan Magalhaes
1006Tony M DarakjyItaly2026-06-21Printing Dimensions RENEWAL74Onyama Limba
1007Johnson Y KuskoFrance2026-06-14Commercial Press RENEWAL23Stephen Shaw
1008Antonio K RutaGermany2026-06-29Rangoni Of Florence NEW32Elwin Sharvill
1009Misaki D KolmetzIndia2026-06-19Commercial Press NEGOTIATION40Onyama Limba
1010Kaitlin T BologniaCanada2026-06-28King, Christopher A Esq PROPOSAL67Onyama Limba
1011Maisha T MaletSpain2026-07-10Commercial Press NEGOTIATION11Ioni Bowcher
1012Maria C SergiItaly2026-07-02Morlong Associates RENEWAL28Onyama Limba
1013Kadeem F NestleSpain2026-07-02Dorl, James J Esq QUALIFIED28Stephen Shaw
1014Smith T AlbaresAustralia2026-07-07Buckley Miller Wright NEGOTIATION82Stephen Shaw
1015Leon Z WhobreyFrance2026-07-03Commercial Press NEGOTIATION26Ivan Magalhaes
1016Leja L FollerSpain2026-07-08Buckley Miller Wright UNQUALIFIED84Stephen Shaw
1017Salvatore C FigeroaRussia2026-06-26Benton, John B Jr NEW93Bernardo Dominic
1018Juan U GauchoRussia2026-06-12Truhlar And Truhlar Attys RENEWAL8Ivan Magalhaes
1019Clifford N TollnerSpain2026-06-16Chemel, James L Cpa UNQUALIFIED32Ivan Magalhaes
1020Morrow A AmigonArgentina2026-06-15Benton, John B Jr NEGOTIATION88Stephen Shaw
1021Jeanfrancois Y DoeItaly2026-07-06Truhlar And Truhlar Attys PROPOSAL67Onyama Limba
1022Leon F WhobreyBrazil2026-06-16Commercial Press RENEWAL63Stephen Shaw
1023Greenwood T NickaRussia2026-06-22Benton, John B Jr NEW45Asiya Javayant
1024Faith P GillianSpain2026-06-11Chemel, James L Cpa PROPOSAL24Onyama Limba
1025Kaitlin X RimItaly2026-07-10Rousseaux, Michael Esq NEW37Amy Elsner
1026Misaki V GillianUnited Kingdom2026-06-29Printing Dimensions NEW92Ioni Bowcher
1027Greenwood R WhobreyBrazil2026-06-30Rangoni Of Florence NEW77Bernardo Dominic
1028Greenwood P GauchoAustralia2026-06-24Chemel, James L Cpa RENEWAL7Ivan Magalhaes
1029Chavez B DilliardBrazil2026-06-19Rousseaux, Michael Esq NEGOTIATION25Asiya Javayant
1030Nicolas U WieserGermany2026-06-12Commercial Press UNQUALIFIED28Ioni Bowcher
1031Ashley L OstroskyJapan2026-06-14Chanay, Jeffrey A Esq RENEWAL59Bernardo Dominic
1032Maria V ButtFrance2026-06-23Feiner Bros UNQUALIFIED60Ivan Magalhaes
1033Antonio E StockhamItaly2026-07-05Feiner Bros UNQUALIFIED68Stephen Shaw
1034Claire K ChuiCanada2026-06-11Printing Dimensions NEW35Bernardo Dominic
1035Ivar Z PaprockiIndia2026-06-25Dorl, James J Esq NEGOTIATION59Elwin Sharvill
1036Jeanfrancois B KuskoCanada2026-06-23Chanay, Jeffrey A Esq PROPOSAL17Ioni Bowcher
1037Ricardo H NickaCanada2026-07-05Morlong Associates PROPOSAL17Amy Elsner
1038Claire A IturbideAustralia2026-06-27Truhlar And Truhlar Attys QUALIFIED58Stephen Shaw
1039Tony Q DoeSpain2026-06-23Morlong Associates NEW63Ioni Bowcher
1040Antonio Q PerinAustralia2026-06-27Benton, John B Jr NEW27Ivan Magalhaes
1041Jefferson D InouyeUnited Kingdom2026-06-27Truhlar And Truhlar Attys RENEWAL8Ivan Magalhaes
1042Wickens E SchemmerGermany2026-06-15Feiner Bros RENEWAL24Stephen Shaw
1043Johnson W BologniaUnited Kingdom2026-07-06Truhlar And Truhlar Attys PROPOSAL10Elwin Sharvill
1044Mayumi R PerinRussia2026-06-22Chemel, James L Cpa QUALIFIED55Stephen Shaw
1045Leon W MaletSpain2026-07-06Rangoni Of Florence UNQUALIFIED64Bernardo Dominic
1046Arvin T SchemmerIndia2026-07-02Rousseaux, Michael Esq NEW45Onyama Limba
1047Ashley S CaldareraArgentina2026-06-29King, Christopher A Esq PROPOSAL2Bernardo Dominic
1048Tony Q AmigonCanada2026-06-27Chapman, Ross E Esq NEGOTIATION60Anna Fali
1049Ricardo S DarakjyRussia2026-06-14Morlong Associates UNQUALIFIED12Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aika P FerenczSpainXuxue Feng UNQUALIFIED
Kadeem L StensethItalyIvan Magalhaes PROPOSAL
Alejandro R AlbaresAustraliaIoni Bowcher RENEWAL
Antonio M GlickBrazilOnyama Limba NEW
Silvio T StockhamIndiaStephen Shaw UNQUALIFIED
Claire W GlickBrazilOnyama Limba PROPOSAL
Leon S MacleadFranceStephen Shaw NEW
Salvatore R MarrierGermanyBernardo Dominic QUALIFIED
Silvio Z DilliardIndiaAsiya Javayant QUALIFIED
Deepesh T GillianJapanAmy Elsner RENEWAL
Deepesh W PerinCanadaIoni Bowcher RENEWAL
Leon G DoeFranceXuxue Feng UNQUALIFIED
Rodrigues J WaycottUnited KingdomAsiya Javayant QUALIFIED
Izzy A MaletBrazilBernardo Dominic NEGOTIATION
Ivar H WieserCanadaOnyama Limba NEW
Ashley N KolmetzArgentinaXuxue Feng UNQUALIFIED
Aruna A RoysterGermanyElwin Sharvill NEGOTIATION
Deepesh V WieserJapanAsiya Javayant QUALIFIED
Arvin Z VocelkaFranceElwin Sharvill UNQUALIFIED
Izzy G IturbideJapanAnna Fali PROPOSAL
Antonio G MaletUnited KingdomOnyama Limba RENEWAL
David Q TollnerSpainAnna Fali UNQUALIFIED
Faith B IturbideAustraliaOnyama Limba UNQUALIFIED
Maria J KolmetzIndiaIoni Bowcher NEGOTIATION
Costa Q MorascaGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois H BowleyRussiaIvan Magalhaes UNQUALIFIED
Mayumi P MacleadCanadaAmy Elsner NEW
Tony E GauchoRussiaAmy Elsner QUALIFIED
Aditya P StensethSpainXuxue Feng UNQUALIFIED
David Q CampainCanadaElwin Sharvill RENEWAL
Misaki P VenereArgentinaXuxue Feng PROPOSAL
Maisha F AlbaresCanadaBernardo Dominic QUALIFIED
Octavia U MacleadCanadaBernardo Dominic NEGOTIATION
Maria D StockhamJapanAmy Elsner QUALIFIED
Salvatore B SchemmerCanadaAmy Elsner NEW
Ricardo H KuskoArgentinaIvan Magalhaes PROPOSAL
Clifford D GauchoAustraliaIvan Magalhaes QUALIFIED
James B CaldareraAustraliaAnna Fali PROPOSAL
Maisha V InouyeItalyAnna Fali NEGOTIATION
Francesco S StockhamSpainStephen Shaw QUALIFIED
Faith L BowleyBrazilAmy Elsner NEW
Cody M GlickCanadaElwin Sharvill UNQUALIFIED
Alejandro N GillianGermanyBernardo Dominic QUALIFIED
Greenwood Q KuskoRussiaXuxue Feng QUALIFIED
Kaitlin H RimFranceBernardo Dominic RENEWAL
Antonio M MaletSpainStephen Shaw UNQUALIFIED
Sinclair V BriddickGermanyOnyama Limba RENEWAL
Isabel M KolmetzItalyAmy Elsner RENEWAL
Costa Q DarakjyJapanElwin Sharvill NEW
Munro A WaycottBrazilIoni Bowcher PROPOSAL
Frozen Columns
Name
Ricardo P Maclead
Jennifer A Morasca
Stacey F Caldarera
David C Malet
Smith W Garufi
Maisha E Albares
Maisha S Gaucho
Leon N Foller
Adams Z Chui
Tony S Albares
Adams T Venere
Francesco B Albares
Salvatore U Waycott
Izzy K Tollner
Nicolas Q Poquette
Tony E Bowley
Nicolas A Royster
Cody G Slusarski
Juan S Ferencz
Wickens I Morasca
Murillo Z Gillian
Arvin G Royster
Juan F Dilliard
Silvio U Dilliard
Munro X Garufi
Francesco T Tollner
Mujtaba T Rulapaugh
Kadeem H Rim
Julie O Rulapaugh
Claire C Poquette
Kaitlin J Paprocki
Sinclair X Venere
Ivar X Kusko
Cody V Ruta
Antonio Y Vocelka
Octavia T Iturbide
Rodrigues X Oldroyd
Aruna C Bowley
Clifford L Gillian
Leon Z Nicka
Juan P Tollner
Alejandro O Maclead
Jones W Stenseth
Deepesh M Butt
Ivar A Wieser
Nicolas N Chui
Sinclair R Flosi
Jones H Malet
Leja K Venere
Nicolas V Chui
IdCountryDate
1000Brazil2026-06-15
1001Spain2026-07-05
1002Australia2026-06-19
1003United Kingdom2026-07-02
1004Russia2026-07-08
1005Australia2026-07-04
1006France2026-07-03
1007Russia2026-07-06
1008Canada2026-06-27
1009Spain2026-07-10
1010United Kingdom2026-06-19
1011Brazil2026-06-30
1012Canada2026-06-30
1013Germany2026-06-23
1014Brazil2026-06-21
1015Australia2026-07-07
1016India2026-06-22
1017Germany2026-07-09
1018Japan2026-06-28
1019Brazil2026-06-13
1020Canada2026-06-20
1021Germany2026-07-01
1022Italy2026-06-13
1023Japan2026-06-15
1024Canada2026-06-26
1025Germany2026-06-22
1026Spain2026-06-30
1027Spain2026-06-28
1028France2026-07-06
1029Russia2026-07-01
1030Russia2026-07-07
1031Russia2026-06-29
1032Russia2026-06-28
1033Russia2026-07-06
1034Argentina2026-06-20
1035Italy2026-06-25
1036Spain2026-06-22
1037Spain2026-06-24
1038Canada2026-07-03
1039India2026-06-27
1040United Kingdom2026-07-08
1041India2026-07-03
1042Brazil2026-07-03
1043Australia2026-06-20
1044Germany2026-06-30
1045Argentina2026-07-01
1046India2026-07-10
1047Spain2026-07-10
1048Argentina2026-06-13
1049Canada2026-07-08

On-Demand Data

NameIdCountryDate
Ivar Y Nicka1000Australia2026-07-05
David A Darakjy1001Germany2026-07-06
Aditya E Poquette1002Canada2026-07-05
Maisha J Ostrosky1003Canada2026-07-08
Misaki E Bowley1004Brazil2026-07-06
Isabel X Stenseth1005Canada2026-07-07
Julie N Wieser1006Australia2026-06-27
Ivar Y Kolmetz1007Russia2026-06-13
Juan Q Garufi1008Italy2026-07-03
David J Maclead1009Argentina2026-07-07
Stacey P Figeroa1010Italy2026-07-05
Morrow R Slusarski1011Russia2026-06-12
Antonio P Chui1012Italy2026-07-02
Jennifer H Figeroa1013United Kingdom2026-07-10
Mayumi B Iturbide1014Russia2026-06-14
Jeanfrancois F Malet1015Canada2026-06-21
Stacey G Foller1016Brazil2026-07-09
Isabel M Campain1017Canada2026-06-25
Tony D Glick1018Spain2026-06-28
David B Flosi1019Japan2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo E WhobreyBrazilIvan Magalhaes RENEWAL
Jefferson C NickaItalyIvan Magalhaes PROPOSAL
Mayumi X NestleCanadaXuxue Feng NEGOTIATION
Ashley Q NestleBrazilAmy Elsner PROPOSAL
Costa G RutaBrazilAmy Elsner PROPOSAL
Jennifer K BriddickBrazilAnna Fali RENEWAL
Darci R BologniaJapanElwin Sharvill QUALIFIED
Faith T BologniaRussiaAsiya Javayant NEW
Kadeem O FerenczFranceXuxue Feng NEW
Francesco P BriddickSpainAmy Elsner NEGOTIATION
Aika R TollnerRussiaElwin Sharvill NEGOTIATION
Ivar A CaldareraJapanIvan Magalhaes NEW
Costa B AlbaresFranceStephen Shaw QUALIFIED
Alejandro Q InouyeIndiaStephen Shaw PROPOSAL
Isabel Y WieserUnited KingdomBernardo Dominic RENEWAL
Clifford J MaletSpainAnna Fali UNQUALIFIED
Adams H PerinGermanyBernardo Dominic NEGOTIATION
Rodrigues A PoquetteGermanyAnna Fali UNQUALIFIED
Mayumi O MaletBrazilIoni Bowcher PROPOSAL
Deepesh M GauchoBrazilOnyama Limba UNQUALIFIED
Jefferson A CaudyJapanIvan Magalhaes RENEWAL
Izzy Q WaycottIndiaBernardo Dominic RENEWAL
Costa K OldroydBrazilBernardo Dominic UNQUALIFIED
Faith K PaprockiBrazilXuxue Feng UNQUALIFIED
Silvio K RulapaughItalyIoni Bowcher PROPOSAL
Claire V RoysterBrazilStephen Shaw NEW
Salvatore Q BologniaBrazilAsiya Javayant QUALIFIED
Julie R KolmetzSpainAnna Fali RENEWAL
Murillo P FlosiItalyOnyama Limba NEW
Ricardo G VenereSpainAmy Elsner NEW
Jefferson L MaletGermanyIoni Bowcher NEW
Morrow U NestleIndiaStephen Shaw PROPOSAL
Kaitlin V ButtCanadaStephen Shaw NEGOTIATION
Antonio F AmigonIndiaBernardo Dominic UNQUALIFIED
Cody L VocelkaArgentinaElwin Sharvill QUALIFIED
Misaki N AmigonBrazilXuxue Feng PROPOSAL
Mayumi W RimBrazilIvan Magalhaes PROPOSAL
Ivar O PaprockiBrazilIoni Bowcher QUALIFIED
Morrow Q SaylorsBrazilAnna Fali UNQUALIFIED
Murillo F VenereBrazilOnyama Limba NEW

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