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 B SaylorsGermanyBernardo Dominic QUALIFIED
Izzy S KolmetzAustraliaIvan Magalhaes NEGOTIATION
Emily N GauchoSpainAnna Fali RENEWAL
Aruna V WaycottUnited KingdomAsiya Javayant RENEWAL
Mujtaba O FigeroaIndiaBernardo Dominic NEW
Rodrigues I NickaItalyElwin Sharvill RENEWAL
Maisha P KuskoArgentinaXuxue Feng UNQUALIFIED
Mujtaba U VocelkaRussiaIoni Bowcher QUALIFIED
Clifford O KuskoFranceIoni Bowcher QUALIFIED
Mujtaba I MaletItalyIvan Magalhaes QUALIFIED
Claire N GarufiRussiaAmy Elsner QUALIFIED
Maria V SlusarskiIndiaAsiya Javayant PROPOSAL
Ashley D MacleadUnited KingdomIoni Bowcher RENEWAL
Arvin Y SchemmerSpainStephen Shaw QUALIFIED
Wickens Y BologniaBrazilAmy Elsner UNQUALIFIED
Smith T NickaJapanXuxue Feng UNQUALIFIED
Deepesh B TollnerFranceIoni Bowcher PROPOSAL
Antonio L VenereIndiaElwin Sharvill PROPOSAL
Francesco K AlbaresAustraliaBernardo Dominic QUALIFIED
Ashley V GauchoJapanAsiya Javayant NEGOTIATION
Jefferson C ChuiJapanStephen Shaw PROPOSAL
Nicolas U FollerSpainAsiya Javayant UNQUALIFIED
David O InouyeFranceAmy Elsner QUALIFIED
Antonio F MaletItalyAmy Elsner UNQUALIFIED
Mayumi P NestleFranceStephen Shaw PROPOSAL
Ivar U VocelkaAustraliaAmy Elsner PROPOSAL
Costa N DilliardArgentinaBernardo Dominic UNQUALIFIED
Kadeem Y VocelkaItalyBernardo Dominic NEGOTIATION
Smith B MaletJapanAmy Elsner QUALIFIED
David J InouyeBrazilStephen Shaw NEW
Jefferson U CaudyGermanyStephen Shaw NEW
Claire Y RimRussiaAmy Elsner RENEWAL
Rodrigues E ShinkoUnited KingdomStephen Shaw RENEWAL
Nicolas K MorascaJapanAnna Fali PROPOSAL
Aditya N GauchoUnited KingdomIoni Bowcher QUALIFIED
Sinclair O GillianFranceStephen Shaw NEW
Ivar D DilliardBrazilAmy Elsner UNQUALIFIED
Leon P GlickRussiaElwin Sharvill UNQUALIFIED
Faith S InouyeCanadaStephen Shaw PROPOSAL
James P WhobreySpainBernardo Dominic NEW
Aika Q DoeUnited KingdomIvan Magalhaes QUALIFIED
James U WieserIndiaBernardo Dominic UNQUALIFIED
Salvatore E FigeroaCanadaIoni Bowcher NEW
Clifford N DarakjyUnited KingdomOnyama Limba NEW
Maisha F PerinBrazilElwin Sharvill NEGOTIATION
Nicolas O DilliardIndiaIoni Bowcher PROPOSAL
James D CaudyItalyAmy Elsner UNQUALIFIED
Tony N SchemmerCanadaStephen Shaw QUALIFIED
Faith N CaldareraUnited KingdomAsiya Javayant QUALIFIED
Rodrigues T TollnerBrazilStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Kadeem P MarrierUnited KingdomOnyama Limba QUALIFIED
Leja Y SaylorsUnited KingdomAnna Fali PROPOSAL
Stacey T MaletGermanyIvan Magalhaes NEGOTIATION
David S OstroskyCanadaXuxue Feng QUALIFIED
Aruna R WhobreyArgentinaIoni Bowcher NEGOTIATION
Ashley X CampainFranceIoni Bowcher NEGOTIATION
Smith Z NickaSpainIvan Magalhaes NEGOTIATION
Izzy S DoeArgentinaIoni Bowcher NEGOTIATION
Costa H MacleadFranceStephen Shaw NEW
Emily O RutaSpainXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois W CaudyRussia2026-07-28Truhlar And Truhlar Attys UNQUALIFIED8Ioni Bowcher
1001Mujtaba E GlickFrance2026-08-03Dorl, James J Esq NEGOTIATION54Asiya Javayant
1002Emily U CampainSpain2026-08-10Chanay, Jeffrey A Esq NEW61Elwin Sharvill
1003David B CampainFrance2026-08-06Rousseaux, Michael Esq UNQUALIFIED46Xuxue Feng
1004Maisha H WhobreyRussia2026-08-11Feltz Printing Service UNQUALIFIED82Ivan Magalhaes
1005Darci N InouyeCanada2026-07-31Chapman, Ross E Esq RENEWAL5Bernardo Dominic
1006Salvatore Q ButtCanada2026-07-24Printing Dimensions NEW31Anna Fali
1007Chavez O GauchoItaly2026-08-12Rousseaux, Michael Esq RENEWAL21Anna Fali
1008Ashley R BriddickRussia2026-08-16Dorl, James J Esq UNQUALIFIED97Ivan Magalhaes
1009Alejandro Q NickaCanada2026-08-03Printing Dimensions QUALIFIED75Amy Elsner
1010Isabel W RutaUnited Kingdom2026-08-08Chanay, Jeffrey A Esq PROPOSAL59Elwin Sharvill
1011Alejandro Z ShinkoRussia2026-08-15King, Christopher A Esq PROPOSAL56Stephen Shaw
1012Mujtaba V AlbaresArgentina2026-07-25Feltz Printing Service NEW89Ivan Magalhaes
1013Misaki C MaletAustralia2026-08-17Chemel, James L Cpa NEGOTIATION54Ivan Magalhaes
1014Johnson Q GillianRussia2026-07-31Rousseaux, Michael Esq NEGOTIATION37Ivan Magalhaes
1015Munro R StensethJapan2026-08-17Benton, John B Jr NEGOTIATION77Xuxue Feng
1016Antonio V WhobreyItaly2026-08-18Feiner Bros QUALIFIED94Amy Elsner
1017Jeanfrancois Z GauchoGermany2026-08-06Dorl, James J Esq NEGOTIATION83Elwin Sharvill
1018Wickens K ShinkoItaly2026-07-22Dorl, James J Esq PROPOSAL47Bernardo Dominic
1019Deepesh I RimCanada2026-07-24Printing Dimensions UNQUALIFIED91Xuxue Feng
1020David N StockhamJapan2026-07-24Chanay, Jeffrey A Esq RENEWAL7Stephen Shaw
1021Alejandro V RutaIndia2026-08-02Benton, John B Jr NEW44Asiya Javayant
1022Murillo W FollerItaly2026-08-13Dorl, James J Esq RENEWAL91Ioni Bowcher
1023Clifford G BriddickItaly2026-07-31Chapman, Ross E Esq QUALIFIED9Stephen Shaw
1024Smith W CaudyJapan2026-08-13Benton, John B Jr UNQUALIFIED31Elwin Sharvill
1025Jeanfrancois B BologniaUnited Kingdom2026-08-18Commercial Press RENEWAL29Anna Fali
1026Morrow O WieserItaly2026-08-04Rousseaux, Michael Esq NEW37Onyama Limba
1027Francesco X PaprockiJapan2026-08-06Truhlar And Truhlar Attys NEGOTIATION60Elwin Sharvill
1028Aruna W CampainFrance2026-08-12Printing Dimensions QUALIFIED57Stephen Shaw
1029Ricardo G SchemmerJapan2026-08-09Feltz Printing Service RENEWAL28Onyama Limba
1030Leon B KolmetzJapan2026-08-03Feltz Printing Service NEW67Anna Fali
1031Jeanfrancois B RulapaughUnited Kingdom2026-08-03Feiner Bros NEGOTIATION70Bernardo Dominic
1032Alejandro D OldroydSpain2026-08-18Commercial Press RENEWAL83Ivan Magalhaes
1033Mujtaba D DilliardItaly2026-07-21Chanay, Jeffrey A Esq QUALIFIED24Stephen Shaw
1034Antonio C StockhamArgentina2026-07-24Truhlar And Truhlar Attys RENEWAL92Onyama Limba
1035Salvatore Z FerenczSpain2026-07-31Feltz Printing Service NEW12Elwin Sharvill
1036Morrow D GlickFrance2026-08-19Chanay, Jeffrey A Esq PROPOSAL14Xuxue Feng
1037Octavia Q RimGermany2026-08-01Rousseaux, Michael Esq NEW80Ivan Magalhaes
1038Arvin L ShinkoAustralia2026-08-09Dorl, James J Esq RENEWAL57Elwin Sharvill
1039Jefferson O StockhamFrance2026-08-17Morlong Associates PROPOSAL43Amy Elsner
1040Wickens K AmigonRussia2026-07-30Benton, John B Jr NEGOTIATION15Onyama Limba
1041Morrow W ButtCanada2026-07-27Chanay, Jeffrey A Esq RENEWAL23Onyama Limba
1042Wickens H ChuiIndia2026-07-22Chapman, Ross E Esq QUALIFIED48Bernardo Dominic
1043Stacey F FollerItaly2026-08-13Benton, John B Jr QUALIFIED28Asiya Javayant
1044Ricardo R BologniaCanada2026-07-28Chemel, James L Cpa RENEWAL68Amy Elsner
1045Nicolas N PoquetteSpain2026-08-10Truhlar And Truhlar Attys QUALIFIED79Onyama Limba
1046Jones I BologniaBrazil2026-08-10Rousseaux, Michael Esq NEW45Amy Elsner
1047Aditya G ShinkoItaly2026-07-21Feiner Bros NEW36Asiya Javayant
1048Alejandro X OstroskyCanada2026-08-17Printing Dimensions NEGOTIATION64Ioni Bowcher
1049Darci L RulapaughUnited Kingdom2026-07-25Chapman, Ross E Esq RENEWAL91Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Darci D DilliardBrazilStephen Shaw RENEWAL
Alejandro K ChuiJapanBernardo Dominic QUALIFIED
Darci Z RulapaughAustraliaAmy Elsner RENEWAL
Salvatore Q BriddickCanadaOnyama Limba NEW
Alejandro H DarakjyRussiaXuxue Feng RENEWAL
Nicolas J BriddickUnited KingdomStephen Shaw NEGOTIATION
Juan P WhobreyAustraliaAmy Elsner NEGOTIATION
Isabel K OldroydItalyBernardo Dominic PROPOSAL
Kadeem G ChuiRussiaAnna Fali PROPOSAL
Deepesh W BriddickIndiaIvan Magalhaes NEW
Jennifer B ButtIndiaAsiya Javayant NEW
Smith S PoquetteBrazilAnna Fali PROPOSAL
Kadeem R ChuiIndiaBernardo Dominic RENEWAL
Smith C SchemmerItalyElwin Sharvill NEW
Izzy S VocelkaFranceAnna Fali NEW
Deepesh D FollerArgentinaIvan Magalhaes PROPOSAL
Ashley O MarrierFranceStephen Shaw RENEWAL
Aruna G NestleBrazilAmy Elsner NEGOTIATION
Alejandro Q MorascaJapanOnyama Limba PROPOSAL
Isabel K FollerSpainBernardo Dominic PROPOSAL
Smith C CaldareraBrazilOnyama Limba RENEWAL
Chavez R RoysterFranceElwin Sharvill NEGOTIATION
Nicolas A CaudyRussiaAsiya Javayant UNQUALIFIED
Misaki K DoeRussiaAsiya Javayant RENEWAL
Juan W AmigonIndiaOnyama Limba NEGOTIATION
Mayumi W ChuiFranceStephen Shaw NEW
Nicolas W MacleadCanadaOnyama Limba QUALIFIED
Silvio Y VenereArgentinaIoni Bowcher PROPOSAL
Maria T SlusarskiBrazilIvan Magalhaes NEGOTIATION
Juan O RimArgentinaAsiya Javayant RENEWAL
Izzy Y GillianArgentinaOnyama Limba QUALIFIED
Adams J RutaBrazilXuxue Feng NEGOTIATION
Izzy X BriddickUnited KingdomBernardo Dominic PROPOSAL
Kadeem K RutaBrazilAsiya Javayant NEGOTIATION
Francesco N CaudyGermanyAmy Elsner QUALIFIED
Emily P OstroskyGermanyAmy Elsner QUALIFIED
Deepesh Q VenereCanadaElwin Sharvill QUALIFIED
Francesco W GauchoSpainAnna Fali QUALIFIED
Leja M CaudyUnited KingdomXuxue Feng NEGOTIATION
Kaitlin A StockhamArgentinaXuxue Feng UNQUALIFIED
Aika P OstroskyFranceAnna Fali RENEWAL
Johnson X SergiGermanyAnna Fali RENEWAL
Wickens S ShinkoBrazilOnyama Limba QUALIFIED
Rodrigues G AmigonIndiaBernardo Dominic QUALIFIED
Jennifer L MarrierJapanAnna Fali NEW
Maisha O NickaSpainIoni Bowcher UNQUALIFIED
Tony R OstroskyIndiaAsiya Javayant QUALIFIED
Chavez P OstroskyFranceOnyama Limba NEW
Clifford E GauchoCanadaAsiya Javayant NEW
Rodrigues S FollerAustraliaXuxue Feng RENEWAL
Frozen Columns
Name
Greenwood M Slusarski
Jennifer A Figeroa
Costa K Saylors
Rodrigues B Chui
Leon A Nicka
Rodrigues S Venere
Antonio Q Rulapaugh
Smith I Rulapaugh
Deepesh J Gaucho
Juan Q Bowley
Mujtaba Z Bowley
Aditya E Iturbide
Aika O Caudy
Tony F Ferencz
Rodrigues R Malet
Maria N Dilliard
Clifford U Nestle
Nicolas I Schemmer
Aika L Ruta
Leja X Campain
Jeanfrancois B Rim
Aruna V Bolognia
Mayumi X Inouye
Morrow U Poquette
Smith R Nestle
Aika Q Kusko
Maisha O Bowley
Maria P Bolognia
Leon D Waycott
Costa N Whobrey
Johnson T Briddick
Sinclair E Figeroa
Isabel O Amigon
Jeanfrancois O Ferencz
Jeanfrancois P Doe
Morrow N Morasca
Ashley U Kolmetz
Leon N Albares
Mujtaba F Flosi
Julie J Flosi
Leja O Amigon
Ricardo I Butt
Leon Q Ferencz
Jones X Figeroa
James I Inouye
Aruna C Gillian
Adams D Nestle
Maisha C Nestle
Leja Z Shinko
Cody N Maclead
IdCountryDate
1000Australia2026-08-01
1001Australia2026-07-31
1002Brazil2026-08-02
1003Argentina2026-08-16
1004Spain2026-07-24
1005Japan2026-08-11
1006Russia2026-07-30
1007Canada2026-08-11
1008United Kingdom2026-08-14
1009Canada2026-07-22
1010Russia2026-07-27
1011Germany2026-07-27
1012Argentina2026-08-16
1013Russia2026-08-14
1014Argentina2026-08-02
1015India2026-08-09
1016United Kingdom2026-08-19
1017Italy2026-08-17
1018Spain2026-08-16
1019United Kingdom2026-08-16
1020Italy2026-08-06
1021Spain2026-07-31
1022Italy2026-08-16
1023United Kingdom2026-07-27
1024Japan2026-08-19
1025France2026-08-09
1026Italy2026-08-14
1027United Kingdom2026-07-28
1028Australia2026-08-11
1029Argentina2026-08-12
1030Russia2026-08-13
1031United Kingdom2026-07-22
1032Russia2026-08-05
1033United Kingdom2026-08-01
1034France2026-08-09
1035Japan2026-07-24
1036Canada2026-07-25
1037Canada2026-07-26
1038Spain2026-08-02
1039Germany2026-08-11
1040Canada2026-08-08
1041Argentina2026-08-01
1042India2026-08-09
1043Japan2026-08-14
1044France2026-08-14
1045United Kingdom2026-08-01
1046Germany2026-08-13
1047France2026-08-17
1048Russia2026-08-06
1049Spain2026-07-25

On-Demand Data

NameIdCountryDate
Tony M Rulapaugh1000United Kingdom2026-07-31
Faith U Briddick1001Germany2026-07-23
Clifford A Campain1002Spain2026-07-22
Stacey K Gillian1003Australia2026-07-21
Aika L Perin1004India2026-07-27
James K Sergi1005Spain2026-08-18
Nicolas M Rim1006Argentina2026-08-16
Ricardo L Iturbide1007India2026-08-10
Clifford R Glick1008Japan2026-08-07
Aruna R Glick1009Canada2026-08-19
Arvin J Albares1010France2026-08-15
Alejandro Z Malet1011Brazil2026-08-17
Leja W Rim1012Italy2026-08-16
Johnson V Kusko1013France2026-08-07
Mujtaba M Ostrosky1014Italy2026-07-22
Alejandro A Stenseth1015Germany2026-08-19
Arvin A Dilliard1016Italy2026-08-12
Costa O Campain1017France2026-08-10
Darci A Perin1018Brazil2026-07-23
Greenwood V Gaucho1019Argentina2026-07-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez G NickaRussiaAnna Fali RENEWAL
Sinclair I SaylorsSpainElwin Sharvill NEGOTIATION
Cody N PoquetteUnited KingdomBernardo Dominic QUALIFIED
Stacey M SaylorsJapanAmy Elsner NEGOTIATION
Kaitlin F SergiSpainAnna Fali NEGOTIATION
Adams M RimSpainOnyama Limba NEW
Leja F PoquetteFranceBernardo Dominic NEW
Clifford N DilliardJapanElwin Sharvill PROPOSAL
Isabel C VocelkaArgentinaBernardo Dominic QUALIFIED
Maria R NickaJapanXuxue Feng QUALIFIED
Silvio J SchemmerArgentinaXuxue Feng PROPOSAL
Leon U SaylorsJapanStephen Shaw PROPOSAL
Francesco V SergiArgentinaOnyama Limba NEW
Mujtaba N GillianAustraliaStephen Shaw NEW
Aruna K AlbaresArgentinaXuxue Feng RENEWAL
Ashley A FollerIndiaIoni Bowcher PROPOSAL
Leon J MaletItalyBernardo Dominic UNQUALIFIED
Silvio M CaldareraUnited KingdomOnyama Limba NEW
Mujtaba X WhobreyBrazilAnna Fali UNQUALIFIED
Arvin H RutaBrazilAmy Elsner RENEWAL
Wickens D FerenczSpainStephen Shaw QUALIFIED
Aditya L DarakjyFranceOnyama Limba PROPOSAL
Jeanfrancois Z AlbaresIndiaElwin Sharvill PROPOSAL
Johnson B ButtFranceElwin Sharvill NEGOTIATION
Aditya P GillianFranceOnyama Limba PROPOSAL
Munro L OldroydRussiaAnna Fali RENEWAL
Emily F RutaGermanyStephen Shaw RENEWAL
Jones X MacleadRussiaStephen Shaw RENEWAL
Smith D VocelkaIndiaIoni Bowcher UNQUALIFIED
Emily L KuskoCanadaAmy Elsner QUALIFIED
Claire O AlbaresBrazilAsiya Javayant QUALIFIED
Greenwood E VenereAustraliaAsiya Javayant RENEWAL
Octavia C GillianFranceAsiya Javayant NEGOTIATION
Deepesh F StockhamRussiaAmy Elsner NEGOTIATION
Izzy E OstroskyItalyOnyama Limba UNQUALIFIED
Arvin O FerenczItalyAsiya Javayant QUALIFIED
Mujtaba J OldroydIndiaAsiya Javayant NEGOTIATION
Mujtaba X RimFranceOnyama Limba QUALIFIED
Julie L WhobreyFranceAmy Elsner QUALIFIED
Kadeem H GlickAustraliaBernardo Dominic PROPOSAL

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