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
Nicolas C VenereGermanyStephen Shaw QUALIFIED
Maisha U OstroskyAustraliaElwin Sharvill PROPOSAL
Jones B OstroskyGermanyElwin Sharvill NEW
Leon K DoeArgentinaIoni Bowcher NEGOTIATION
Julie X WieserItalyAmy Elsner RENEWAL
Maisha O WaycottUnited KingdomElwin Sharvill QUALIFIED
David H CaudyIndiaIoni Bowcher UNQUALIFIED
Sinclair Z DilliardItalyBernardo Dominic NEW
Ricardo M PoquetteFranceIoni Bowcher RENEWAL
Salvatore H WhobreyGermanyElwin Sharvill NEGOTIATION
Isabel R BologniaAustraliaAsiya Javayant QUALIFIED
Adams K ButtJapanOnyama Limba RENEWAL
Ashley P SchemmerArgentinaBernardo Dominic UNQUALIFIED
Emily A VocelkaJapanXuxue Feng UNQUALIFIED
Munro T GauchoUnited KingdomStephen Shaw UNQUALIFIED
Isabel D SergiArgentinaOnyama Limba PROPOSAL
Stacey N InouyeFranceOnyama Limba RENEWAL
Silvio I SlusarskiArgentinaIvan Magalhaes UNQUALIFIED
Nicolas I BowleyGermanyStephen Shaw RENEWAL
Aika C GarufiBrazilAsiya Javayant PROPOSAL
Jefferson Y StensethSpainOnyama Limba QUALIFIED
Murillo L MacleadRussiaXuxue Feng QUALIFIED
Costa H StensethJapanIvan Magalhaes RENEWAL
Adams O InouyeGermanyIvan Magalhaes NEGOTIATION
Arvin N OldroydUnited KingdomAnna Fali UNQUALIFIED
Clifford Y SergiFranceStephen Shaw UNQUALIFIED
Izzy I CampainCanadaIoni Bowcher NEGOTIATION
Murillo G BriddickFranceBernardo Dominic UNQUALIFIED
Arvin D ButtIndiaIvan Magalhaes UNQUALIFIED
Leja P KuskoUnited KingdomAsiya Javayant NEGOTIATION
Misaki H SergiJapanElwin Sharvill UNQUALIFIED
Claire K RoysterGermanyXuxue Feng UNQUALIFIED
Jeanfrancois Q GauchoIndiaAnna Fali RENEWAL
Adams P PerinJapanOnyama Limba UNQUALIFIED
Adams T SlusarskiCanadaAnna Fali NEW
Ashley S NickaUnited KingdomIvan Magalhaes QUALIFIED
Wickens G SchemmerItalyXuxue Feng NEW
Mayumi Z FigeroaRussiaOnyama Limba QUALIFIED
Morrow H GillianCanadaXuxue Feng PROPOSAL
Aditya F CaldareraGermanyXuxue Feng QUALIFIED
Chavez B ChuiFranceXuxue Feng NEW
Rodrigues O FerenczCanadaIvan Magalhaes RENEWAL
Aditya L GlickJapanAnna Fali NEW
Greenwood G GarufiUnited KingdomAsiya Javayant QUALIFIED
Clifford H SlusarskiSpainXuxue Feng NEW
Octavia X KuskoFranceAmy Elsner UNQUALIFIED
Aruna A OldroydGermanyIoni Bowcher PROPOSAL
Francesco Z CaldareraAustraliaAnna Fali NEGOTIATION
Leja F RoysterAustraliaAsiya Javayant PROPOSAL
Emily A TollnerItalyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Costa F AmigonSpainStephen Shaw NEGOTIATION
Kadeem L MarrierRussiaAnna Fali UNQUALIFIED
Rodrigues F VenereIndiaBernardo Dominic UNQUALIFIED
Maria Y FlosiIndiaAmy Elsner UNQUALIFIED
Ivar F WaycottUnited KingdomIvan Magalhaes PROPOSAL
Murillo K FlosiFranceXuxue Feng NEGOTIATION
Maisha K DilliardSpainElwin Sharvill QUALIFIED
Morrow N NickaGermanyStephen Shaw UNQUALIFIED
Misaki U VenereCanadaIoni Bowcher RENEWAL
Silvio S NickaBrazilAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya S NickaJapan2026-06-18Rangoni Of Florence UNQUALIFIED12Anna Fali
1001Faith A FlosiCanada2026-06-20Benton, John B Jr PROPOSAL78Anna Fali
1002Jones S BriddickIndia2026-07-05Truhlar And Truhlar Attys NEGOTIATION35Ioni Bowcher
1003Greenwood K BowleyFrance2026-06-09Printing Dimensions QUALIFIED29Asiya Javayant
1004Kaitlin W GarufiUnited Kingdom2026-06-20Feiner Bros RENEWAL76Ivan Magalhaes
1005Mujtaba Y GarufiJapan2026-06-09Chanay, Jeffrey A Esq RENEWAL30Xuxue Feng
1006Ricardo N GlickGermany2026-06-15Benton, John B Jr NEGOTIATION65Ivan Magalhaes
1007Morrow U ShinkoIndia2026-07-04Feltz Printing Service NEW97Xuxue Feng
1008Munro H RimAustralia2026-06-10Printing Dimensions NEW20Elwin Sharvill
1009Jones P PaprockiGermany2026-06-26Chemel, James L Cpa UNQUALIFIED86Elwin Sharvill
1010Juan E OldroydGermany2026-06-11Rangoni Of Florence RENEWAL67Stephen Shaw
1011Kaitlin F MarrierUnited Kingdom2026-06-17Rousseaux, Michael Esq RENEWAL64Amy Elsner
1012Aika X DarakjyJapan2026-07-02Morlong Associates NEW65Amy Elsner
1013Munro N OldroydRussia2026-07-03Rousseaux, Michael Esq NEGOTIATION60Bernardo Dominic
1014Jefferson F DilliardItaly2026-06-28Chapman, Ross E Esq PROPOSAL32Amy Elsner
1015Sinclair R FerenczUnited Kingdom2026-07-03Printing Dimensions NEW99Onyama Limba
1016Juan F WieserSpain2026-06-26Dorl, James J Esq NEW4Bernardo Dominic
1017Aditya L PaprockiGermany2026-06-12King, Christopher A Esq RENEWAL56Bernardo Dominic
1018Kaitlin T DoeJapan2026-06-30Buckley Miller Wright RENEWAL98Asiya Javayant
1019Francesco T WieserFrance2026-06-28Truhlar And Truhlar Attys QUALIFIED29Anna Fali
1020Antonio X FlosiGermany2026-07-02Feltz Printing Service QUALIFIED5Stephen Shaw
1021Murillo Y KolmetzGermany2026-06-24Chanay, Jeffrey A Esq NEGOTIATION70Anna Fali
1022Clifford T ShinkoSpain2026-06-17Printing Dimensions NEGOTIATION44Bernardo Dominic
1023Kadeem S DarakjyCanada2026-06-15Rangoni Of Florence NEW9Xuxue Feng
1024Johnson B CaldareraAustralia2026-06-26King, Christopher A Esq NEW51Ioni Bowcher
1025Aika E SaylorsGermany2026-06-12Commercial Press PROPOSAL63Onyama Limba
1026Ricardo C WieserJapan2026-06-30Rousseaux, Michael Esq PROPOSAL69Elwin Sharvill
1027Munro U KuskoSpain2026-06-28Feltz Printing Service NEGOTIATION69Ioni Bowcher
1028Clifford S RoysterJapan2026-06-22Rangoni Of Florence NEW18Stephen Shaw
1029Octavia W BriddickCanada2026-06-21Truhlar And Truhlar Attys PROPOSAL71Bernardo Dominic
1030Maria X PoquetteRussia2026-06-13Buckley Miller Wright PROPOSAL2Stephen Shaw
1031Jennifer H BologniaJapan2026-06-15Chemel, James L Cpa NEW8Asiya Javayant
1032Misaki J PaprockiCanada2026-06-30Rangoni Of Florence UNQUALIFIED17Bernardo Dominic
1033Antonio G FlosiUnited Kingdom2026-07-07Dorl, James J Esq NEGOTIATION13Ivan Magalhaes
1034Arvin I FollerFrance2026-07-05King, Christopher A Esq QUALIFIED87Asiya Javayant
1035Aruna B AlbaresItaly2026-06-12Dorl, James J Esq NEGOTIATION37Stephen Shaw
1036Clifford V VocelkaUnited Kingdom2026-06-26Chemel, James L Cpa RENEWAL59Amy Elsner
1037Faith Y GarufiFrance2026-07-07Commercial Press NEGOTIATION99Stephen Shaw
1038Tony O BowleySpain2026-07-02Commercial Press QUALIFIED49Asiya Javayant
1039David Y SergiCanada2026-06-28Feltz Printing Service NEGOTIATION99Xuxue Feng
1040Stacey D DoeIndia2026-06-22Rousseaux, Michael Esq RENEWAL2Ivan Magalhaes
1041Ashley Y MacleadUnited Kingdom2026-06-30Printing Dimensions NEW4Stephen Shaw
1042Tony X DarakjyGermany2026-06-21Buckley Miller Wright UNQUALIFIED55Ivan Magalhaes
1043Aditya R FigeroaJapan2026-07-02Chapman, Ross E Esq NEGOTIATION53Asiya Javayant
1044James Z ChuiFrance2026-07-06Feltz Printing Service NEGOTIATION90Ioni Bowcher
1045Adams U OstroskyJapan2026-07-07Feltz Printing Service NEGOTIATION89Onyama Limba
1046Kadeem R StensethRussia2026-06-16Dorl, James J Esq NEGOTIATION77Stephen Shaw
1047Darci E KuskoJapan2026-06-16Dorl, James J Esq NEW52Onyama Limba
1048Johnson U GlickBrazil2026-06-25Rangoni Of Florence NEW48Xuxue Feng
1049Nicolas C IturbideRussia2026-07-07Benton, John B Jr NEGOTIATION16Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Faith R RimJapanOnyama Limba UNQUALIFIED
Johnson F RutaItalyOnyama Limba UNQUALIFIED
Izzy S GarufiSpainBernardo Dominic PROPOSAL
Jeanfrancois A BowleyCanadaIoni Bowcher NEW
Francesco H OstroskySpainAnna Fali RENEWAL
Wickens P WhobreyArgentinaAnna Fali UNQUALIFIED
Jones Z ChuiItalyAnna Fali NEGOTIATION
Alejandro E ButtUnited KingdomXuxue Feng PROPOSAL
Mayumi H PaprockiGermanyElwin Sharvill UNQUALIFIED
Mujtaba T TollnerBrazilElwin Sharvill NEW
Isabel M CaudyFranceBernardo Dominic NEGOTIATION
David P BologniaAustraliaElwin Sharvill NEW
Aditya X VenereSpainOnyama Limba RENEWAL
Chavez N AlbaresIndiaOnyama Limba UNQUALIFIED
Tony X DoeCanadaElwin Sharvill QUALIFIED
Maisha M GarufiCanadaOnyama Limba PROPOSAL
Faith U SchemmerArgentinaOnyama Limba NEGOTIATION
Kadeem T CaudyItalyIoni Bowcher RENEWAL
Jones R RimItalyXuxue Feng PROPOSAL
Salvatore H FlosiIndiaOnyama Limba NEW
Nicolas A OldroydFranceOnyama Limba NEGOTIATION
Nicolas G SchemmerBrazilStephen Shaw UNQUALIFIED
Costa X GillianJapanIvan Magalhaes NEGOTIATION
James S DilliardSpainIoni Bowcher UNQUALIFIED
Mujtaba G NestleSpainIvan Magalhaes QUALIFIED
Ricardo W CaudyBrazilBernardo Dominic UNQUALIFIED
Clifford U FigeroaArgentinaAmy Elsner RENEWAL
Costa K SaylorsSpainBernardo Dominic QUALIFIED
Arvin S SaylorsCanadaBernardo Dominic RENEWAL
Deepesh M FerenczSpainAnna Fali NEW
Emily Y CaudyFranceAsiya Javayant RENEWAL
Maisha W SergiAustraliaElwin Sharvill NEW
Antonio Q RimAustraliaOnyama Limba NEGOTIATION
Kadeem C GillianArgentinaStephen Shaw QUALIFIED
Arvin P CaldareraIndiaElwin Sharvill QUALIFIED
Salvatore Q BowleyAustraliaStephen Shaw UNQUALIFIED
Arvin U VocelkaRussiaAnna Fali NEGOTIATION
Leon L CaldareraJapanBernardo Dominic QUALIFIED
Leja H StensethRussiaAnna Fali UNQUALIFIED
Deepesh G BowleyJapanStephen Shaw NEGOTIATION
Kaitlin G SergiCanadaIoni Bowcher QUALIFIED
Salvatore I KuskoBrazilXuxue Feng NEW
Clifford Z RulapaughJapanStephen Shaw NEGOTIATION
Alejandro O WhobreyBrazilOnyama Limba RENEWAL
Chavez Z KuskoSpainAnna Fali NEW
Mayumi T PoquetteGermanyAmy Elsner PROPOSAL
Aika C SergiBrazilStephen Shaw NEW
David P RoysterRussiaStephen Shaw NEW
Maisha Z MacleadFranceElwin Sharvill NEW
Isabel S OldroydJapanElwin Sharvill NEW
Frozen Columns
Name
Ricardo U Shinko
Ricardo U Flosi
Jennifer H Marrier
Leja B Shinko
Jennifer Z Bolognia
Maria F Glick
Morrow F Perin
Murillo M Chui
Maria S Malet
Mujtaba H Briddick
Arvin I Iturbide
Kaitlin N Caudy
Ivar Q Shinko
Julie D Chui
Ivar J Whobrey
Leja Z Kolmetz
Kaitlin L Malet
Izzy L Royster
Ivar F Paprocki
Ricardo T Albares
Kadeem W Flosi
Leon D Briddick
James V Albares
Murillo P Caldarera
Silvio S Ruta
Silvio U Oldroyd
Jefferson I Whobrey
Antonio O Stockham
Mayumi W Butt
Aruna S Morasca
Silvio H Ferencz
Jeanfrancois M Wieser
Silvio T Doe
Murillo N Iturbide
Cody F Kolmetz
Mayumi X Perin
Rodrigues P Butt
Stacey S Waycott
Octavia D Shinko
Maisha B Butt
Wickens V Ostrosky
Stacey W Malet
Jefferson Q Gillian
Munro B Bolognia
Rodrigues T Nicka
Aika V Oldroyd
Misaki Z Marrier
Misaki U Stockham
Ashley W Doe
Jones P Amigon
IdCountryDate
1000Spain2026-06-15
1001Canada2026-07-03
1002France2026-06-26
1003Italy2026-06-13
1004Argentina2026-07-06
1005Germany2026-06-17
1006Canada2026-06-15
1007Australia2026-06-19
1008Spain2026-06-22
1009Spain2026-07-03
1010Argentina2026-06-29
1011Argentina2026-06-29
1012Russia2026-06-20
1013Japan2026-07-05
1014Japan2026-06-21
1015Argentina2026-06-14
1016Brazil2026-06-25
1017Germany2026-06-18
1018Spain2026-06-30
1019France2026-06-25
1020Russia2026-07-05
1021Argentina2026-07-04
1022United Kingdom2026-06-10
1023Brazil2026-06-17
1024Italy2026-07-03
1025France2026-06-13
1026India2026-07-08
1027Australia2026-06-20
1028India2026-07-05
1029Brazil2026-06-18
1030Brazil2026-06-30
1031Australia2026-06-09
1032United Kingdom2026-07-01
1033Germany2026-06-30
1034Japan2026-06-17
1035Germany2026-06-21
1036Argentina2026-06-18
1037Germany2026-07-06
1038Italy2026-07-04
1039Australia2026-06-29
1040United Kingdom2026-06-25
1041India2026-06-24
1042United Kingdom2026-06-24
1043Japan2026-06-26
1044Germany2026-06-20
1045Italy2026-06-26
1046Russia2026-06-17
1047France2026-06-21
1048France2026-06-10
1049France2026-06-14

On-Demand Data

NameIdCountryDate
Isabel U Albares1000Japan2026-06-27
Ricardo I Bolognia1001Spain2026-07-06
Maria I Albares1002France2026-06-10
Izzy C Rim1003Russia2026-07-01
Smith V Venere1004Spain2026-06-26
Clifford W Ferencz1005Italy2026-06-20
Alejandro H Iturbide1006Russia2026-06-21
Murillo F Royster1007Russia2026-07-04
Darci B Ferencz1008Spain2026-07-04
Cody D Garufi1009Argentina2026-07-05
Smith U Shinko1010Australia2026-06-24
Costa T Slusarski1011Brazil2026-06-19
David K Amigon1012Germany2026-06-25
Stacey Y Maclead1013Russia2026-06-19
Francesco Y Rulapaugh1014Italy2026-07-02
Chavez T Oldroyd1015Brazil2026-07-02
Costa P Shinko1016Italy2026-06-29
Aruna N Doe1017Japan2026-06-27
Smith I Rim1018Spain2026-06-18
Costa G Ferencz1019India2026-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba N BowleyIndiaAmy Elsner QUALIFIED
Clifford L SergiGermanyIvan Magalhaes QUALIFIED
Deepesh T GauchoFranceElwin Sharvill RENEWAL
Mayumi N InouyeAustraliaIoni Bowcher UNQUALIFIED
Aditya C ButtSpainIvan Magalhaes RENEWAL
Izzy T VocelkaAustraliaAsiya Javayant PROPOSAL
Morrow S MarrierIndiaIoni Bowcher NEGOTIATION
Adams C NickaItalyIvan Magalhaes NEGOTIATION
Leon I FigeroaSpainAnna Fali NEW
Isabel X KuskoAustraliaAmy Elsner PROPOSAL
Murillo Z TollnerArgentinaXuxue Feng QUALIFIED
Greenwood P NickaCanadaAnna Fali NEW
Silvio H PoquetteRussiaIvan Magalhaes UNQUALIFIED
Munro F DilliardRussiaElwin Sharvill RENEWAL
Misaki U ShinkoIndiaElwin Sharvill PROPOSAL
Isabel U MaletAustraliaElwin Sharvill QUALIFIED
Leja L CaldareraSpainOnyama Limba NEW
Nicolas W ButtArgentinaAsiya Javayant PROPOSAL
Johnson B GlickSpainElwin Sharvill QUALIFIED
Emily C DilliardSpainAmy Elsner NEGOTIATION
Sinclair B VocelkaArgentinaAnna Fali NEGOTIATION
Costa U VenereBrazilAsiya Javayant NEW
Kaitlin X RoysterIndiaIvan Magalhaes QUALIFIED
Ricardo I OldroydCanadaAsiya Javayant UNQUALIFIED
Octavia N StensethAustraliaIvan Magalhaes NEW
Chavez L ShinkoCanadaOnyama Limba NEGOTIATION
Jefferson S DarakjyCanadaAmy Elsner PROPOSAL
Octavia A DilliardRussiaIoni Bowcher PROPOSAL
Nicolas A BologniaGermanyIoni Bowcher NEGOTIATION
Jefferson Q DoeGermanyAsiya Javayant RENEWAL
Julie D GauchoGermanyIoni Bowcher NEGOTIATION
Kadeem Y MaletArgentinaAmy Elsner NEGOTIATION
Chavez Z IturbideAustraliaIoni Bowcher UNQUALIFIED
Alejandro V PaprockiUnited KingdomStephen Shaw PROPOSAL
Silvio W ButtIndiaElwin Sharvill NEGOTIATION
Salvatore T RulapaughSpainIvan Magalhaes RENEWAL
Stacey O FlosiArgentinaIoni Bowcher RENEWAL
Jones Y GarufiArgentinaOnyama Limba RENEWAL
Chavez L BriddickSpainAmy Elsner NEW
Aditya W OstroskyItalyAmy Elsner QUALIFIED

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