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
Clifford Z KuskoSpainIvan Magalhaes PROPOSAL
Juan D ShinkoRussiaIoni Bowcher NEGOTIATION
Morrow O AmigonSpainBernardo Dominic NEW
Wickens S IturbideItalyStephen Shaw UNQUALIFIED
Alejandro P VenereFranceIvan Magalhaes UNQUALIFIED
Greenwood J IturbideItalyAnna Fali QUALIFIED
Leja T BologniaCanadaBernardo Dominic RENEWAL
Tony D NestleUnited KingdomAmy Elsner RENEWAL
Julie A BriddickArgentinaIvan Magalhaes QUALIFIED
Smith F OldroydItalyAnna Fali QUALIFIED
Izzy L RutaJapanAsiya Javayant QUALIFIED
Salvatore H PerinRussiaOnyama Limba NEW
Silvio O SergiArgentinaStephen Shaw PROPOSAL
Jefferson F BowleyGermanyBernardo Dominic QUALIFIED
Johnson I CaudyJapanStephen Shaw NEGOTIATION
Isabel B CaldareraItalyIvan Magalhaes PROPOSAL
Nicolas X StockhamBrazilXuxue Feng UNQUALIFIED
Octavia S ChuiBrazilStephen Shaw PROPOSAL
Munro G MarrierFranceAmy Elsner QUALIFIED
Greenwood C VenereRussiaAmy Elsner UNQUALIFIED
Munro H OldroydFranceBernardo Dominic UNQUALIFIED
Leon Z VocelkaAustraliaAnna Fali UNQUALIFIED
Kaitlin J ChuiGermanyIvan Magalhaes NEW
Ricardo J MorascaItalyIvan Magalhaes PROPOSAL
Sinclair J KuskoAustraliaOnyama Limba UNQUALIFIED
Adams V MarrierFranceAmy Elsner UNQUALIFIED
Maisha A InouyeCanadaAsiya Javayant QUALIFIED
Ivar O MaletCanadaOnyama Limba PROPOSAL
Morrow Z MarrierArgentinaXuxue Feng PROPOSAL
Maisha P ButtSpainStephen Shaw NEW
Julie E SlusarskiSpainIoni Bowcher UNQUALIFIED
Julie W BriddickFranceBernardo Dominic UNQUALIFIED
Ashley X BowleyCanadaBernardo Dominic PROPOSAL
Jennifer K IturbideJapanAmy Elsner PROPOSAL
Faith T WieserItalyOnyama Limba PROPOSAL
David B VenereRussiaOnyama Limba PROPOSAL
Ivar H KolmetzFranceBernardo Dominic NEW
Johnson Z BowleyArgentinaIoni Bowcher NEGOTIATION
Sinclair E OstroskyArgentinaIvan Magalhaes RENEWAL
Maisha K IturbideItalyIvan Magalhaes QUALIFIED
Aika L KuskoIndiaXuxue Feng PROPOSAL
Ashley Z FollerUnited KingdomElwin Sharvill QUALIFIED
Chavez S StensethIndiaElwin Sharvill RENEWAL
Alejandro M RutaUnited KingdomXuxue Feng RENEWAL
Alejandro G CaudyFranceAmy Elsner RENEWAL
Julie G OldroydItalyXuxue Feng NEW
Ashley S CaudyItalyIoni Bowcher RENEWAL
Johnson E FollerAustraliaStephen Shaw RENEWAL
Maria D BriddickUnited KingdomAsiya Javayant RENEWAL
Nicolas N SaylorsRussiaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez I GlickBrazilAnna Fali QUALIFIED
Jennifer D WieserRussiaOnyama Limba NEGOTIATION
Costa J KuskoAustraliaOnyama Limba QUALIFIED
Julie D SergiRussiaAsiya Javayant RENEWAL
Mujtaba J TollnerUnited KingdomOnyama Limba PROPOSAL
Kaitlin O PerinAustraliaBernardo Dominic PROPOSAL
Antonio G RulapaughAustraliaAnna Fali UNQUALIFIED
Kadeem K KuskoUnited KingdomBernardo Dominic NEGOTIATION
Izzy M GillianGermanyIvan Magalhaes NEGOTIATION
Aruna A CaldareraArgentinaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James N FlosiRussia2026-07-22Rangoni Of Florence NEGOTIATION15Ioni Bowcher
1001Rodrigues C GillianJapan2026-08-05Morlong Associates RENEWAL15Elwin Sharvill
1002Emily C CampainUnited Kingdom2026-07-26Buckley Miller Wright NEGOTIATION47Ivan Magalhaes
1003Sinclair A SaylorsFrance2026-08-06Rousseaux, Michael Esq NEGOTIATION32Anna Fali
1004Murillo C BriddickFrance2026-08-12Chapman, Ross E Esq QUALIFIED23Onyama Limba
1005Silvio U ButtJapan2026-07-30Benton, John B Jr QUALIFIED41Xuxue Feng
1006Isabel Q OstroskyGermany2026-08-08Rangoni Of Florence QUALIFIED75Asiya Javayant
1007Ricardo M RulapaughRussia2026-08-04Printing Dimensions NEGOTIATION72Ivan Magalhaes
1008Jefferson P FlosiCanada2026-08-05Chanay, Jeffrey A Esq UNQUALIFIED41Elwin Sharvill
1009Aditya V PoquetteCanada2026-07-20Feltz Printing Service RENEWAL98Ioni Bowcher
1010James G TollnerAustralia2026-07-31Chapman, Ross E Esq NEGOTIATION33Stephen Shaw
1011Octavia Y VocelkaJapan2026-08-08Printing Dimensions PROPOSAL71Onyama Limba
1012Jones N IturbideAustralia2026-08-16Commercial Press PROPOSAL60Bernardo Dominic
1013Jeanfrancois L PerinFrance2026-07-26Chanay, Jeffrey A Esq RENEWAL97Xuxue Feng
1014Misaki P SchemmerRussia2026-08-01Morlong Associates NEGOTIATION62Ivan Magalhaes
1015Cody B BologniaCanada2026-07-23Dorl, James J Esq PROPOSAL37Ioni Bowcher
1016Chavez Y CampainArgentina2026-08-03Feltz Printing Service RENEWAL38Anna Fali
1017Munro U VocelkaJapan2026-07-18Chemel, James L Cpa RENEWAL91Ivan Magalhaes
1018Stacey R TollnerJapan2026-08-08Chemel, James L Cpa NEW48Ioni Bowcher
1019Ricardo U RulapaughArgentina2026-08-15Rangoni Of Florence UNQUALIFIED70Asiya Javayant
1020Jones C MorascaCanada2026-08-15Buckley Miller Wright UNQUALIFIED85Elwin Sharvill
1021Claire V DarakjyArgentina2026-07-28Chapman, Ross E Esq PROPOSAL55Xuxue Feng
1022Nicolas D PoquetteItaly2026-07-19Rousseaux, Michael Esq NEW64Ivan Magalhaes
1023Munro E BologniaBrazil2026-07-24Feiner Bros PROPOSAL67Ioni Bowcher
1024Izzy R FlosiIndia2026-08-13Benton, John B Jr NEGOTIATION12Bernardo Dominic
1025Rodrigues C FlosiRussia2026-07-24Feltz Printing Service NEGOTIATION13Bernardo Dominic
1026Munro L InouyeItaly2026-08-10Morlong Associates PROPOSAL46Elwin Sharvill
1027Sinclair G GillianAustralia2026-07-29King, Christopher A Esq NEGOTIATION75Amy Elsner
1028Nicolas E DoeUnited Kingdom2026-08-03Dorl, James J Esq PROPOSAL9Ioni Bowcher
1029Silvio V GarufiIndia2026-07-25Morlong Associates PROPOSAL31Elwin Sharvill
1030James Z WaycottGermany2026-08-02Morlong Associates UNQUALIFIED53Ioni Bowcher
1031Aruna X WieserCanada2026-08-10Feltz Printing Service RENEWAL90Bernardo Dominic
1032Clifford C KolmetzUnited Kingdom2026-07-21Rousseaux, Michael Esq NEW67Bernardo Dominic
1033Mujtaba B BriddickRussia2026-07-31King, Christopher A Esq RENEWAL4Ivan Magalhaes
1034Alejandro C MorascaUnited Kingdom2026-08-14Morlong Associates NEW94Elwin Sharvill
1035Morrow U SlusarskiArgentina2026-08-09Dorl, James J Esq QUALIFIED88Ivan Magalhaes
1036Antonio S SchemmerJapan2026-07-20Buckley Miller Wright NEGOTIATION26Asiya Javayant
1037Mujtaba W DarakjyUnited Kingdom2026-07-27Dorl, James J Esq NEGOTIATION7Amy Elsner
1038Jefferson N CaldareraJapan2026-08-03Chanay, Jeffrey A Esq NEW62Ivan Magalhaes
1039Smith B SaylorsGermany2026-08-06Dorl, James J Esq NEW4Xuxue Feng
1040Julie D NickaBrazil2026-08-04Rangoni Of Florence RENEWAL28Stephen Shaw
1041Aruna B ShinkoJapan2026-08-14Feltz Printing Service PROPOSAL31Stephen Shaw
1042Deepesh J MorascaArgentina2026-07-19Printing Dimensions QUALIFIED18Xuxue Feng
1043James J KuskoIndia2026-08-15Feiner Bros NEW63Bernardo Dominic
1044Clifford R FlosiUnited Kingdom2026-08-05Benton, John B Jr NEGOTIATION64Anna Fali
1045Stacey F FlosiArgentina2026-08-07Feiner Bros NEW66Anna Fali
1046Costa E MacleadArgentina2026-08-04King, Christopher A Esq QUALIFIED2Ioni Bowcher
1047Leja J TollnerAustralia2026-07-28Feltz Printing Service NEGOTIATION21Elwin Sharvill
1048Clifford H BowleyBrazil2026-08-01Chemel, James L Cpa NEGOTIATION63Asiya Javayant
1049Leon Z PoquetteIndia2026-07-18Benton, John B Jr UNQUALIFIED94Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jennifer W TollnerBrazilAnna Fali NEGOTIATION
Emily Z TollnerItalyAmy Elsner RENEWAL
Deepesh R DoeUnited KingdomXuxue Feng RENEWAL
Rodrigues J BowleyRussiaAmy Elsner QUALIFIED
Antonio S TollnerUnited KingdomAsiya Javayant QUALIFIED
Aditya E DarakjyItalyElwin Sharvill UNQUALIFIED
Juan Z SergiCanadaIvan Magalhaes QUALIFIED
Adams E WaycottRussiaIvan Magalhaes RENEWAL
Ricardo C GlickIndiaAsiya Javayant NEW
Chavez H PaprockiRussiaBernardo Dominic UNQUALIFIED
Aika Q ButtGermanyOnyama Limba PROPOSAL
Smith X MaletIndiaElwin Sharvill NEW
Silvio M PaprockiBrazilOnyama Limba QUALIFIED
Izzy R ShinkoUnited KingdomBernardo Dominic UNQUALIFIED
Leon H BologniaArgentinaOnyama Limba NEW
Greenwood J FollerCanadaXuxue Feng UNQUALIFIED
Greenwood M PerinJapanOnyama Limba UNQUALIFIED
Tony Z SaylorsBrazilOnyama Limba UNQUALIFIED
Faith R PaprockiSpainStephen Shaw NEW
Izzy F TollnerFranceOnyama Limba NEW
Julie E SergiAustraliaAmy Elsner PROPOSAL
Aditya T SergiUnited KingdomIvan Magalhaes NEGOTIATION
Munro N WaycottFranceOnyama Limba PROPOSAL
Maria S MarrierSpainXuxue Feng NEW
Silvio O RutaIndiaIvan Magalhaes RENEWAL
Aika R GarufiSpainOnyama Limba UNQUALIFIED
Jefferson B CaldareraUnited KingdomAnna Fali QUALIFIED
Ivar F CaldareraGermanyIoni Bowcher RENEWAL
Nicolas F AmigonAustraliaAsiya Javayant UNQUALIFIED
Mujtaba E BowleyRussiaXuxue Feng NEGOTIATION
Mujtaba O AlbaresBrazilIvan Magalhaes QUALIFIED
Leja Y DilliardRussiaStephen Shaw NEW
Arvin C StensethRussiaIvan Magalhaes PROPOSAL
Jefferson T IturbideItalyBernardo Dominic PROPOSAL
Maria L AmigonAustraliaStephen Shaw UNQUALIFIED
Jennifer I MorascaRussiaAnna Fali RENEWAL
Clifford H GlickJapanXuxue Feng RENEWAL
Salvatore U SlusarskiGermanyAnna Fali NEGOTIATION
Sinclair U GauchoJapanAsiya Javayant QUALIFIED
Johnson C GauchoIndiaElwin Sharvill UNQUALIFIED
Cody U CaldareraIndiaIvan Magalhaes NEW
Aruna W RutaJapanAsiya Javayant QUALIFIED
Murillo D StensethFranceAnna Fali UNQUALIFIED
Mujtaba F CaudyIndiaElwin Sharvill NEGOTIATION
Leja V AmigonGermanyAmy Elsner PROPOSAL
Silvio X SlusarskiItalyAmy Elsner RENEWAL
Claire T PaprockiCanadaIoni Bowcher UNQUALIFIED
Faith B SergiFranceIvan Magalhaes PROPOSAL
Nicolas X RulapaughGermanyElwin Sharvill PROPOSAL
Salvatore C AlbaresSpainStephen Shaw QUALIFIED
Frozen Columns
Name
Claire P Gaucho
Juan A Inouye
Wickens L Morasca
Adams M Waycott
Johnson X Nicka
Greenwood A Whobrey
Tony V Amigon
Deepesh N Flosi
Faith C Venere
Stacey X Garufi
Arvin K Schemmer
Salvatore K Albares
Deepesh B Schemmer
Arvin C Morasca
Clifford S Malet
Jones N Shinko
Misaki M Bolognia
Smith U Whobrey
Greenwood C Glick
Leon N Perin
Octavia J Doe
Smith M Albares
Ricardo E Bolognia
Smith A Maclead
Emily S Whobrey
Aika P Malet
Cody A Glick
Arvin Q Caudy
Faith W Paprocki
Mujtaba O Venere
Jennifer E Bolognia
Aika O Nestle
Cody F Gaucho
Deepesh E Bowley
Izzy S Dilliard
Claire R Ruta
Arvin Z Flosi
Jeanfrancois V Ferencz
Faith B Garufi
Alejandro P Stenseth
Juan U Wieser
Nicolas Y Venere
Claire L Campain
Munro W Rim
Tony O Royster
Adams F Saylors
Emily Q Perin
Arvin D Waycott
Smith T Amigon
Maria O Kusko
IdCountryDate
1000France2026-08-11
1001Japan2026-08-07
1002India2026-08-04
1003United Kingdom2026-08-16
1004United Kingdom2026-08-07
1005Germany2026-08-01
1006Australia2026-08-05
1007India2026-08-02
1008Germany2026-08-08
1009Canada2026-07-24
1010Spain2026-08-11
1011Brazil2026-08-03
1012Japan2026-07-23
1013India2026-07-22
1014Japan2026-08-09
1015Germany2026-07-20
1016Brazil2026-08-11
1017Russia2026-07-22
1018United Kingdom2026-08-10
1019Australia2026-08-05
1020Italy2026-08-06
1021Brazil2026-08-05
1022Spain2026-08-08
1023France2026-07-27
1024Germany2026-07-27
1025France2026-07-21
1026France2026-08-12
1027Italy2026-07-30
1028Russia2026-07-27
1029India2026-07-19
1030Japan2026-07-31
1031Brazil2026-08-11
1032Germany2026-08-03
1033Japan2026-07-26
1034Brazil2026-07-27
1035Spain2026-08-03
1036Canada2026-07-19
1037Canada2026-07-30
1038France2026-08-13
1039United Kingdom2026-07-31
1040India2026-07-21
1041Spain2026-08-03
1042Argentina2026-08-07
1043India2026-07-22
1044United Kingdom2026-07-27
1045Japan2026-08-09
1046Canada2026-08-07
1047Brazil2026-07-30
1048France2026-07-21
1049Russia2026-07-18

On-Demand Data

NameIdCountryDate
Tony H Chui1000Germany2026-07-18
Jennifer S Rim1001Italy2026-08-03
Kadeem P Schemmer1002Spain2026-08-16
Cody V Bolognia1003Australia2026-08-09
Wickens H Dilliard1004Russia2026-08-01
Izzy I Iturbide1005Germany2026-08-15
Jeanfrancois D Caudy1006Brazil2026-08-15
Juan E Nicka1007Canada2026-07-24
Cody J Bolognia1008Germany2026-08-15
Clifford X Kusko1009Brazil2026-07-23
Emily K Ferencz1010Japan2026-07-22
Darci E Garufi1011Russia2026-08-03
Johnson S Albares1012Japan2026-07-22
Julie B Saylors1013Germany2026-08-03
Julie U Whobrey1014Brazil2026-08-08
Mujtaba S Vocelka1015Canada2026-07-29
Salvatore R Flosi1016Canada2026-08-16
Maisha L Perin1017Canada2026-08-02
Kaitlin Y Ostrosky1018Russia2026-08-01
Maria P Inouye1019France2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow J RutaIndiaBernardo Dominic PROPOSAL
Leon B KolmetzBrazilIvan Magalhaes RENEWAL
Leon C WaycottIndiaIoni Bowcher RENEWAL
Smith F WaycottFranceOnyama Limba NEGOTIATION
Izzy Y PerinUnited KingdomAnna Fali RENEWAL
Stacey H TollnerItalyElwin Sharvill QUALIFIED
Ashley V AlbaresFranceAmy Elsner UNQUALIFIED
Costa N BologniaAustraliaAsiya Javayant NEW
Claire U FlosiRussiaAsiya Javayant PROPOSAL
Isabel D AmigonIndiaStephen Shaw NEW
Jefferson S RimGermanyAsiya Javayant QUALIFIED
Ricardo O BologniaFranceBernardo Dominic PROPOSAL
Costa J WhobreyFranceAnna Fali NEGOTIATION
Clifford J DilliardFranceAmy Elsner NEGOTIATION
Jones V RutaFranceBernardo Dominic QUALIFIED
Misaki M DilliardItalyOnyama Limba NEGOTIATION
Jones Z MacleadItalyXuxue Feng NEW
Munro H SlusarskiCanadaIvan Magalhaes RENEWAL
Greenwood R DarakjyBrazilElwin Sharvill PROPOSAL
Cody V MorascaArgentinaElwin Sharvill NEGOTIATION
Emily I StockhamSpainXuxue Feng NEW
Mayumi Y CampainUnited KingdomBernardo Dominic QUALIFIED
Darci S MacleadSpainAsiya Javayant UNQUALIFIED
Emily U RutaAustraliaAmy Elsner QUALIFIED
Smith M KolmetzIndiaStephen Shaw QUALIFIED
Munro Z IturbideSpainAmy Elsner NEW
Deepesh H ButtArgentinaAnna Fali NEGOTIATION
Jefferson C BologniaRussiaIoni Bowcher NEGOTIATION
Misaki Q DarakjyRussiaOnyama Limba PROPOSAL
Aditya C InouyeArgentinaAmy Elsner QUALIFIED
Greenwood K MorascaCanadaBernardo Dominic RENEWAL
Darci G SergiItalyAmy Elsner UNQUALIFIED
Cody W SaylorsJapanIvan Magalhaes NEGOTIATION
Silvio Q ShinkoRussiaIoni Bowcher RENEWAL
Darci C ShinkoItalyXuxue Feng UNQUALIFIED
Rodrigues N GauchoIndiaOnyama Limba PROPOSAL
Salvatore J ChuiGermanyOnyama Limba UNQUALIFIED
Kaitlin D MorascaJapanOnyama Limba NEGOTIATION
Isabel R KolmetzAustraliaAsiya Javayant UNQUALIFIED
Morrow L KolmetzFranceIvan Magalhaes 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>