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
Jeanfrancois G SergiIndiaOnyama Limba UNQUALIFIED
Johnson U RoysterFranceOnyama Limba UNQUALIFIED
Costa Q ChuiSpainBernardo Dominic UNQUALIFIED
Tony H CaudyCanadaAsiya Javayant QUALIFIED
Aika H MarrierFranceBernardo Dominic NEGOTIATION
Costa D GarufiItalyElwin Sharvill RENEWAL
David H FlosiArgentinaStephen Shaw NEGOTIATION
Arvin D AlbaresUnited KingdomElwin Sharvill UNQUALIFIED
Salvatore N RulapaughFranceAmy Elsner NEGOTIATION
Octavia W StensethAustraliaAsiya Javayant QUALIFIED
Costa C AmigonUnited KingdomStephen Shaw PROPOSAL
Leja C ButtItalyXuxue Feng RENEWAL
Adams M FollerRussiaIvan Magalhaes NEGOTIATION
Stacey K FerenczJapanXuxue Feng PROPOSAL
Maria B SlusarskiCanadaIvan Magalhaes PROPOSAL
Emily K IturbideRussiaIoni Bowcher PROPOSAL
Leon O BriddickAustraliaIoni Bowcher RENEWAL
Nicolas D GauchoFranceAnna Fali PROPOSAL
Jones K StensethJapanAmy Elsner RENEWAL
Antonio W IturbideFranceAsiya Javayant PROPOSAL
Leja X BowleyAustraliaXuxue Feng RENEWAL
Ivar Q SaylorsBrazilAmy Elsner RENEWAL
Octavia D RoysterIndiaAsiya Javayant RENEWAL
David C NickaBrazilAnna Fali QUALIFIED
Ivar P GarufiBrazilStephen Shaw PROPOSAL
Jones O DilliardIndiaAsiya Javayant UNQUALIFIED
Misaki R CampainCanadaIvan Magalhaes QUALIFIED
Munro S BowleyAustraliaAmy Elsner UNQUALIFIED
Maisha V DilliardBrazilBernardo Dominic NEGOTIATION
Murillo E DarakjyItalyAnna Fali PROPOSAL
Nicolas F VocelkaCanadaAmy Elsner PROPOSAL
Kadeem K OldroydBrazilXuxue Feng NEW
Francesco P InouyeFranceBernardo Dominic QUALIFIED
David L FlosiJapanIvan Magalhaes RENEWAL
David Z SlusarskiItalyIoni Bowcher PROPOSAL
Smith C StockhamGermanyIvan Magalhaes UNQUALIFIED
Ashley O AlbaresFranceElwin Sharvill QUALIFIED
Ricardo M DarakjyUnited KingdomAmy Elsner PROPOSAL
Silvio H TollnerGermanyBernardo Dominic NEW
Greenwood L BowleyArgentinaElwin Sharvill RENEWAL
Jennifer R SaylorsRussiaElwin Sharvill PROPOSAL
Kaitlin E SchemmerArgentinaAsiya Javayant NEGOTIATION
Chavez I WaycottCanadaXuxue Feng NEW
Faith X GillianGermanyAsiya Javayant NEGOTIATION
Ricardo B SaylorsSpainIvan Magalhaes NEGOTIATION
Claire S StensethArgentinaXuxue Feng NEGOTIATION
Clifford U DoeItalyElwin Sharvill RENEWAL
Izzy G CaldareraAustraliaAmy Elsner NEGOTIATION
Clifford Z AmigonBrazilAmy Elsner QUALIFIED
Smith E SlusarskiJapanIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Chavez R StockhamIndiaStephen Shaw NEGOTIATION
Jefferson Q IturbideIndiaBernardo Dominic NEW
Aruna C FlosiArgentinaBernardo Dominic QUALIFIED
Tony H CaudyIndiaXuxue Feng QUALIFIED
Greenwood E KolmetzBrazilAsiya Javayant NEGOTIATION
Leon Z WieserItalyXuxue Feng PROPOSAL
Silvio F OldroydItalyAmy Elsner NEW
Francesco S WieserFranceAmy Elsner NEGOTIATION
Emily N SaylorsBrazilOnyama Limba NEGOTIATION
Claire M MarrierCanadaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro C WaycottAustralia2026-08-01Feiner Bros PROPOSAL46Stephen Shaw
1001Alejandro B ShinkoFrance2026-07-28Dorl, James J Esq QUALIFIED88Asiya Javayant
1002Julie N FollerFrance2026-07-30Feiner Bros RENEWAL4Xuxue Feng
1003Wickens Z ButtUnited Kingdom2026-08-02Commercial Press PROPOSAL41Stephen Shaw
1004Deepesh H ShinkoGermany2026-08-04Rousseaux, Michael Esq NEW69Ivan Magalhaes
1005Leon A MorascaBrazil2026-07-23Buckley Miller Wright RENEWAL43Ivan Magalhaes
1006Leja X BriddickFrance2026-07-26Chanay, Jeffrey A Esq UNQUALIFIED78Amy Elsner
1007Kaitlin F KuskoJapan2026-07-16Feiner Bros QUALIFIED76Onyama Limba
1008Antonio W MarrierRussia2026-07-28Buckley Miller Wright UNQUALIFIED10Stephen Shaw
1009Stacey S MaletFrance2026-07-12Rousseaux, Michael Esq UNQUALIFIED59Onyama Limba
1010Kadeem E MaletAustralia2026-07-31Morlong Associates RENEWAL32Anna Fali
1011Silvio L WieserIndia2026-07-08Feltz Printing Service NEGOTIATION74Xuxue Feng
1012Maisha B PoquetteAustralia2026-07-28King, Christopher A Esq RENEWAL34Ivan Magalhaes
1013Mujtaba J AlbaresBrazil2026-08-02Rousseaux, Michael Esq PROPOSAL0Xuxue Feng
1014Juan L OldroydGermany2026-07-13King, Christopher A Esq PROPOSAL30Stephen Shaw
1015Aika I SergiSpain2026-07-29Feltz Printing Service NEGOTIATION90Xuxue Feng
1016Mujtaba G IturbideSpain2026-08-01Chapman, Ross E Esq QUALIFIED13Bernardo Dominic
1017Stacey H RoysterFrance2026-08-02Printing Dimensions NEW32Ioni Bowcher
1018Jennifer X GillianSpain2026-07-31Commercial Press QUALIFIED11Ioni Bowcher
1019Adams L TollnerUnited Kingdom2026-07-08Rangoni Of Florence QUALIFIED55Ivan Magalhaes
1020Chavez E SchemmerItaly2026-08-05Rousseaux, Michael Esq NEW73Xuxue Feng
1021Murillo J OstroskyRussia2026-07-25Truhlar And Truhlar Attys NEW55Ioni Bowcher
1022Ashley T SergiItaly2026-07-23Feltz Printing Service UNQUALIFIED73Elwin Sharvill
1023Munro Q CampainSpain2026-07-18Chanay, Jeffrey A Esq NEW55Onyama Limba
1024Aruna E GlickSpain2026-07-11Feltz Printing Service QUALIFIED64Ioni Bowcher
1025Ricardo T RulapaughCanada2026-07-29King, Christopher A Esq RENEWAL88Onyama Limba
1026Greenwood Q CampainSpain2026-07-15Feiner Bros QUALIFIED35Xuxue Feng
1027Octavia Z CaudyAustralia2026-07-24Truhlar And Truhlar Attys UNQUALIFIED88Ivan Magalhaes
1028Isabel X NestleCanada2026-07-11King, Christopher A Esq PROPOSAL48Asiya Javayant
1029Greenwood Z ChuiFrance2026-07-09Feltz Printing Service NEW58Elwin Sharvill
1030Mayumi S OstroskyIndia2026-08-03Buckley Miller Wright PROPOSAL22Anna Fali
1031Arvin X OldroydAustralia2026-07-19Feiner Bros UNQUALIFIED32Bernardo Dominic
1032Antonio P PaprockiArgentina2026-07-10Rangoni Of Florence RENEWAL30Ivan Magalhaes
1033Johnson R SergiItaly2026-07-10Commercial Press PROPOSAL28Ioni Bowcher
1034Leon Z SaylorsItaly2026-07-22Printing Dimensions RENEWAL73Ivan Magalhaes
1035Francesco A BriddickAustralia2026-08-04Buckley Miller Wright UNQUALIFIED14Ioni Bowcher
1036Julie G KuskoFrance2026-07-18Chanay, Jeffrey A Esq NEW92Asiya Javayant
1037Clifford U RoysterIndia2026-07-19Commercial Press PROPOSAL97Asiya Javayant
1038Chavez A IturbideAustralia2026-07-17Rousseaux, Michael Esq NEW99Stephen Shaw
1039Jeanfrancois H GauchoAustralia2026-07-17Feltz Printing Service NEW35Ivan Magalhaes
1040Deepesh S RimAustralia2026-07-26Benton, John B Jr NEGOTIATION48Amy Elsner
1041Juan O OldroydArgentina2026-07-08Printing Dimensions PROPOSAL41Anna Fali
1042Johnson F DoeFrance2026-07-10Buckley Miller Wright NEGOTIATION64Asiya Javayant
1043Claire A DarakjyGermany2026-07-15Morlong Associates PROPOSAL91Bernardo Dominic
1044Stacey W BriddickUnited Kingdom2026-07-10Truhlar And Truhlar Attys QUALIFIED31Asiya Javayant
1045Silvio H GillianSpain2026-07-16Rousseaux, Michael Esq QUALIFIED97Ivan Magalhaes
1046Salvatore O FollerFrance2026-07-14Buckley Miller Wright QUALIFIED79Asiya Javayant
1047Tony X CampainBrazil2026-07-21Truhlar And Truhlar Attys NEGOTIATION58Stephen Shaw
1048Chavez J SaylorsSpain2026-07-22Chapman, Ross E Esq QUALIFIED58Ioni Bowcher
1049Misaki K MaletItaly2026-07-15Feltz Printing Service QUALIFIED47Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Julie D AmigonBrazilAnna Fali PROPOSAL
Johnson C VenereSpainElwin Sharvill RENEWAL
Costa J ShinkoJapanXuxue Feng NEGOTIATION
Silvio O DilliardIndiaIoni Bowcher QUALIFIED
Salvatore I FerenczGermanyAnna Fali NEW
Octavia V SergiCanadaAsiya Javayant NEGOTIATION
Ivar C KolmetzJapanAnna Fali NEGOTIATION
Ashley D ChuiCanadaIvan Magalhaes UNQUALIFIED
Kadeem L VenereIndiaIoni Bowcher RENEWAL
Antonio Y WhobreyArgentinaIoni Bowcher RENEWAL
Juan W VenereArgentinaStephen Shaw NEW
Maria M WaycottFranceAmy Elsner NEW
Aruna A ChuiAustraliaXuxue Feng RENEWAL
Juan W SergiIndiaBernardo Dominic NEW
Mujtaba U SaylorsCanadaAnna Fali NEGOTIATION
Mayumi B MaletArgentinaAmy Elsner RENEWAL
Tony O BologniaRussiaBernardo Dominic QUALIFIED
Sinclair I SlusarskiSpainAsiya Javayant PROPOSAL
Greenwood S VocelkaIndiaBernardo Dominic NEW
Aika N AmigonJapanAmy Elsner RENEWAL
Greenwood A KuskoUnited KingdomXuxue Feng RENEWAL
Tony M StensethItalyBernardo Dominic QUALIFIED
Chavez S IturbideBrazilElwin Sharvill RENEWAL
Cody I KolmetzItalyStephen Shaw QUALIFIED
Misaki N IturbideSpainXuxue Feng RENEWAL
Costa H KolmetzSpainAsiya Javayant NEW
Isabel E PoquetteSpainStephen Shaw UNQUALIFIED
Jeanfrancois U FollerBrazilIoni Bowcher UNQUALIFIED
Aika Q FlosiFranceBernardo Dominic PROPOSAL
Aditya G GauchoRussiaElwin Sharvill NEW
Wickens Q VenereSpainElwin Sharvill NEGOTIATION
Julie Q SlusarskiFranceElwin Sharvill RENEWAL
James J AlbaresArgentinaElwin Sharvill QUALIFIED
Alejandro L AlbaresAustraliaIvan Magalhaes NEW
Chavez V RoysterIndiaStephen Shaw PROPOSAL
Kaitlin M InouyeJapanIvan Magalhaes NEGOTIATION
Mayumi I ShinkoCanadaStephen Shaw UNQUALIFIED
Aika R ShinkoRussiaElwin Sharvill PROPOSAL
Silvio S CaldareraFranceElwin Sharvill UNQUALIFIED
Johnson N VenereItalyElwin Sharvill UNQUALIFIED
Greenwood Q MorascaJapanAnna Fali QUALIFIED
Jennifer E OldroydArgentinaOnyama Limba RENEWAL
Smith F SergiJapanStephen Shaw NEW
Costa V AlbaresUnited KingdomBernardo Dominic RENEWAL
Darci M FigeroaArgentinaAsiya Javayant NEW
Stacey J GillianCanadaXuxue Feng RENEWAL
Clifford O MaletFranceBernardo Dominic NEW
Greenwood I WaycottFranceAnna Fali NEGOTIATION
Salvatore I CaudyAustraliaXuxue Feng PROPOSAL
Nicolas D FerenczItalyElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Kaitlin A Paprocki
Darci A Albares
Cody G Slusarski
Greenwood M Slusarski
Emily L Figeroa
Isabel Q Tollner
Chavez B Rulapaugh
Deepesh C Gaucho
Francesco S Ferencz
Costa F Maclead
Octavia Q Garufi
Aika N Albares
Chavez N Darakjy
Francesco F Saylors
Deepesh I Sergi
Aruna Z Vocelka
Munro C Rim
Darci Q Ferencz
Kadeem S Wieser
Jeanfrancois N Malet
Izzy P Caldarera
Chavez Z Whobrey
Rodrigues R Rim
Octavia H Morasca
Maisha D Vocelka
Misaki R Darakjy
Adams I Marrier
Cody O Rulapaugh
Johnson J Ruta
Arvin C Whobrey
Jeanfrancois G Chui
Sinclair Y Inouye
Kadeem J Maclead
Octavia V Marrier
Costa D Ferencz
Kaitlin X Rulapaugh
Mayumi H Briddick
Cody X Perin
Sinclair N Campain
Alejandro O Iturbide
Isabel S Royster
Misaki I Ferencz
Antonio I Nicka
James Y Stenseth
Ricardo C Darakjy
Kaitlin B Malet
Clifford M Stockham
Aika G Perin
Emily I Bolognia
David M Chui
IdCountryDate
1000France2026-07-16
1001Russia2026-08-01
1002Japan2026-07-17
1003Italy2026-08-04
1004India2026-07-09
1005Germany2026-07-13
1006Argentina2026-07-25
1007France2026-08-06
1008United Kingdom2026-07-20
1009France2026-07-19
1010India2026-08-04
1011Argentina2026-07-27
1012Australia2026-07-17
1013Italy2026-08-02
1014Japan2026-07-26
1015Brazil2026-08-02
1016Brazil2026-07-27
1017Brazil2026-07-19
1018France2026-07-30
1019United Kingdom2026-07-10
1020Russia2026-07-26
1021Italy2026-07-12
1022Italy2026-07-24
1023Germany2026-07-28
1024Australia2026-07-17
1025India2026-07-18
1026Spain2026-07-14
1027Argentina2026-07-09
1028Brazil2026-07-16
1029Russia2026-08-04
1030Germany2026-07-15
1031Spain2026-07-23
1032Japan2026-07-16
1033Australia2026-07-20
1034Argentina2026-07-13
1035Germany2026-07-27
1036United Kingdom2026-07-28
1037Canada2026-07-26
1038Japan2026-07-23
1039Germany2026-08-01
1040Italy2026-07-24
1041United Kingdom2026-07-20
1042Brazil2026-07-30
1043Russia2026-07-08
1044Germany2026-08-01
1045India2026-07-31
1046Brazil2026-07-23
1047Canada2026-07-26
1048Canada2026-07-14
1049Germany2026-07-31

On-Demand Data

NameIdCountryDate
Greenwood S Morasca1000India2026-07-26
Greenwood V Whobrey1001Australia2026-08-02
Jefferson V Tollner1002United Kingdom2026-07-27
Arvin E Doe1003United Kingdom2026-07-08
Adams Q Gillian1004United Kingdom2026-08-03
James W Doe1005Australia2026-07-22
Julie Q Kusko1006Brazil2026-07-21
Johnson Z Nicka1007Argentina2026-08-03
Leon W Royster1008India2026-07-28
Morrow K Kusko1009Russia2026-07-18
Wickens X Morasca1010United Kingdom2026-07-19
Leon E Rim1011Japan2026-07-17
Greenwood D Gillian1012Russia2026-07-26
Johnson X Rim1013Russia2026-08-04
Johnson G Rim1014France2026-07-17
Silvio Y Garufi1015Spain2026-07-15
Kaitlin J Figeroa1016Brazil2026-07-23
Clifford M Campain1017France2026-07-22
Arvin O Kolmetz1018Canada2026-07-24
Maria Q Dilliard1019France2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith C RutaGermanyAnna Fali PROPOSAL
Ricardo V MaletCanadaStephen Shaw UNQUALIFIED
Costa V WhobreyIndiaIvan Magalhaes RENEWAL
Isabel X SchemmerSpainBernardo Dominic NEW
Salvatore C AlbaresItalyAnna Fali UNQUALIFIED
Jennifer T AlbaresItalyElwin Sharvill UNQUALIFIED
Leon F FigeroaArgentinaStephen Shaw RENEWAL
Aika A RutaBrazilXuxue Feng NEGOTIATION
Darci C BologniaItalyAnna Fali UNQUALIFIED
Arvin O AmigonItalyElwin Sharvill RENEWAL
Salvatore K AmigonUnited KingdomStephen Shaw NEGOTIATION
Alejandro C InouyeRussiaIvan Magalhaes NEGOTIATION
Sinclair H ShinkoSpainAnna Fali PROPOSAL
Stacey F DilliardUnited KingdomAsiya Javayant NEGOTIATION
Murillo X AlbaresArgentinaIoni Bowcher UNQUALIFIED
Leja S BologniaFranceXuxue Feng QUALIFIED
Claire V AlbaresAustraliaAmy Elsner QUALIFIED
Jones S GarufiUnited KingdomBernardo Dominic QUALIFIED
Alejandro S SaylorsBrazilBernardo Dominic NEW
Morrow T FlosiItalyBernardo Dominic RENEWAL
Sinclair S BowleyAustraliaStephen Shaw UNQUALIFIED
Sinclair T InouyeRussiaXuxue Feng PROPOSAL
Jefferson E RoysterUnited KingdomIvan Magalhaes UNQUALIFIED
Arvin X CaldareraItalyStephen Shaw UNQUALIFIED
Johnson X KolmetzUnited KingdomAsiya Javayant RENEWAL
Kadeem G FerenczIndiaAmy Elsner UNQUALIFIED
Leon Q CampainSpainElwin Sharvill NEW
Kadeem Q WaycottIndiaElwin Sharvill RENEWAL
Isabel I ShinkoFranceAnna Fali NEGOTIATION
Kaitlin R InouyeIndiaBernardo Dominic NEW
Alejandro R IturbideJapanStephen Shaw UNQUALIFIED
Leon Z SaylorsItalyIvan Magalhaes PROPOSAL
Stacey Y WieserJapanBernardo Dominic NEGOTIATION
Maria B MarrierSpainIvan Magalhaes NEW
Clifford U CampainBrazilIoni Bowcher PROPOSAL
Munro J KolmetzRussiaOnyama Limba NEW
Greenwood W AmigonGermanyBernardo Dominic NEW
Francesco X MacleadGermanyStephen Shaw UNQUALIFIED
Arvin X FigeroaFranceAsiya Javayant RENEWAL
Ivar M VenereIndiaXuxue Feng NEGOTIATION

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