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
Juan Z FollerJapanElwin Sharvill QUALIFIED
Kadeem Z ButtCanadaOnyama Limba NEW
Izzy I GlickGermanyIvan Magalhaes NEW
Faith U RoysterRussiaElwin Sharvill NEW
Sinclair G MorascaIndiaAmy Elsner UNQUALIFIED
Jeanfrancois E ChuiCanadaIoni Bowcher PROPOSAL
Mayumi N MaletGermanyAmy Elsner PROPOSAL
Munro W ShinkoIndiaXuxue Feng NEGOTIATION
Jennifer T MorascaArgentinaOnyama Limba UNQUALIFIED
Jennifer F RoysterRussiaAsiya Javayant NEGOTIATION
Alejandro G VocelkaJapanAsiya Javayant NEW
Nicolas I CampainItalyAmy Elsner QUALIFIED
Mujtaba C RutaAustraliaAsiya Javayant UNQUALIFIED
Aika C StockhamRussiaElwin Sharvill PROPOSAL
Isabel S WieserJapanElwin Sharvill RENEWAL
Ricardo R ButtArgentinaBernardo Dominic NEW
Kadeem A MarrierUnited KingdomIvan Magalhaes NEGOTIATION
Nicolas E CaldareraItalyAsiya Javayant NEW
Maisha D DarakjyBrazilIvan Magalhaes PROPOSAL
Munro U GauchoFranceIoni Bowcher RENEWAL
Leon E NestleSpainElwin Sharvill NEGOTIATION
Chavez L ShinkoIndiaBernardo Dominic PROPOSAL
Leon H GlickGermanyIvan Magalhaes NEW
Cody S FigeroaArgentinaXuxue Feng UNQUALIFIED
Johnson O ButtSpainStephen Shaw NEW
Arvin R GlickIndiaAsiya Javayant UNQUALIFIED
Darci Q StensethIndiaIvan Magalhaes UNQUALIFIED
Antonio C KuskoBrazilAsiya Javayant NEGOTIATION
Alejandro D NestleCanadaIvan Magalhaes UNQUALIFIED
Aditya V MarrierJapanElwin Sharvill RENEWAL
Mayumi K PerinArgentinaAsiya Javayant RENEWAL
Mayumi Q CaldareraRussiaAmy Elsner RENEWAL
Octavia S RimGermanyElwin Sharvill NEGOTIATION
Isabel G MaletRussiaXuxue Feng QUALIFIED
David Y MaletUnited KingdomBernardo Dominic NEGOTIATION
Jeanfrancois Y WieserGermanyAsiya Javayant PROPOSAL
Maisha K IturbideArgentinaAmy Elsner QUALIFIED
Ivar B DilliardAustraliaAsiya Javayant NEGOTIATION
Cody X FollerIndiaOnyama Limba PROPOSAL
Johnson W AlbaresItalyXuxue Feng UNQUALIFIED
Darci E AlbaresBrazilStephen Shaw UNQUALIFIED
Jennifer I SaylorsCanadaXuxue Feng NEGOTIATION
Deepesh W StensethSpainXuxue Feng NEGOTIATION
Silvio I ShinkoGermanyXuxue Feng RENEWAL
Leon D BriddickIndiaXuxue Feng UNQUALIFIED
Darci A ButtAustraliaStephen Shaw UNQUALIFIED
Costa N RulapaughItalyAnna Fali RENEWAL
Murillo G MarrierCanadaBernardo Dominic NEGOTIATION
Maisha F VenereUnited KingdomOnyama Limba UNQUALIFIED
Aditya F WieserSpainStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Isabel V SergiArgentinaAmy Elsner PROPOSAL
Alejandro T ShinkoSpainXuxue Feng NEGOTIATION
Izzy S TollnerFranceIvan Magalhaes PROPOSAL
Octavia E SaylorsJapanAmy Elsner NEW
Clifford E BowleyAustraliaBernardo Dominic QUALIFIED
Aruna U PoquetteItalyXuxue Feng QUALIFIED
Deepesh H FollerArgentinaElwin Sharvill NEGOTIATION
Jennifer U CaudyArgentinaStephen Shaw PROPOSAL
Morrow V VocelkaJapanStephen Shaw PROPOSAL
Mayumi E SchemmerFranceOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie L VenereArgentina2026-06-12Rangoni Of Florence NEW48Ivan Magalhaes
1001David V VenereGermany2026-06-06King, Christopher A Esq PROPOSAL67Amy Elsner
1002Smith U CaudyBrazil2026-06-21Commercial Press NEW52Amy Elsner
1003David L SlusarskiArgentina2026-06-21Rangoni Of Florence UNQUALIFIED2Stephen Shaw
1004Costa P PaprockiSpain2026-06-15Dorl, James J Esq NEGOTIATION89Elwin Sharvill
1005Juan J DoeSpain2026-06-26Commercial Press RENEWAL33Anna Fali
1006Francesco K RimSpain2026-06-09Feltz Printing Service PROPOSAL13Amy Elsner
1007Sinclair D SchemmerArgentina2026-06-27Feiner Bros NEGOTIATION50Ivan Magalhaes
1008Murillo Y FollerGermany2026-06-21Buckley Miller Wright NEW13Asiya Javayant
1009Leja Q FigeroaAustralia2026-06-27Truhlar And Truhlar Attys QUALIFIED84Stephen Shaw
1010Jones T SchemmerArgentina2026-06-24Rousseaux, Michael Esq NEGOTIATION49Stephen Shaw
1011Greenwood E NickaGermany2026-06-07Benton, John B Jr PROPOSAL94Xuxue Feng
1012Maisha Z StensethAustralia2026-06-21Chanay, Jeffrey A Esq UNQUALIFIED83Onyama Limba
1013Cody Z WieserItaly2026-06-04Truhlar And Truhlar Attys PROPOSAL37Amy Elsner
1014Cody F FollerIndia2026-06-03Commercial Press NEW24Xuxue Feng
1015David W BriddickCanada2026-05-31Dorl, James J Esq PROPOSAL1Amy Elsner
1016Isabel E FlosiBrazil2026-06-16Dorl, James J Esq QUALIFIED77Ioni Bowcher
1017Tony F StockhamGermany2026-06-19Benton, John B Jr NEW26Onyama Limba
1018Kadeem G PoquetteAustralia2026-06-05Commercial Press PROPOSAL38Amy Elsner
1019Wickens K PerinCanada2026-06-09Chanay, Jeffrey A Esq NEW70Ivan Magalhaes
1020Maria J OldroydUnited Kingdom2026-06-02Rangoni Of Florence NEGOTIATION12Bernardo Dominic
1021Octavia O NestleRussia2026-06-08Chanay, Jeffrey A Esq RENEWAL82Bernardo Dominic
1022Morrow Y KolmetzCanada2026-06-08Commercial Press QUALIFIED87Amy Elsner
1023Costa C IturbideIndia2026-06-15Rangoni Of Florence PROPOSAL10Amy Elsner
1024Adams H GarufiFrance2026-06-14Printing Dimensions NEGOTIATION27Elwin Sharvill
1025Greenwood O MaletBrazil2026-06-16King, Christopher A Esq NEGOTIATION13Onyama Limba
1026Julie K RoysterCanada2026-06-12Chapman, Ross E Esq NEGOTIATION79Onyama Limba
1027Clifford U CaudyFrance2026-06-10Morlong Associates QUALIFIED11Elwin Sharvill
1028Costa W FlosiGermany2026-06-21Rangoni Of Florence PROPOSAL96Asiya Javayant
1029Octavia I GarufiJapan2026-05-31Dorl, James J Esq UNQUALIFIED26Amy Elsner
1030Kaitlin G IturbideFrance2026-06-12Chemel, James L Cpa NEW86Stephen Shaw
1031Emily U RoysterFrance2026-06-05Rangoni Of Florence NEW69Asiya Javayant
1032James J BowleyFrance2026-06-15Commercial Press PROPOSAL52Ivan Magalhaes
1033Silvio R TollnerUnited Kingdom2026-06-27Truhlar And Truhlar Attys NEW2Ioni Bowcher
1034Johnson L NickaArgentina2026-06-08Benton, John B Jr PROPOSAL21Elwin Sharvill
1035Octavia T PerinAustralia2026-06-08Chanay, Jeffrey A Esq QUALIFIED66Xuxue Feng
1036Leja L PerinRussia2026-06-22Rangoni Of Florence PROPOSAL99Ioni Bowcher
1037Kaitlin U StockhamItaly2026-06-10Truhlar And Truhlar Attys NEW35Bernardo Dominic
1038Morrow L RoysterAustralia2026-06-27Morlong Associates QUALIFIED15Ioni Bowcher
1039Wickens C MacleadGermany2026-06-05Chanay, Jeffrey A Esq PROPOSAL2Bernardo Dominic
1040Jones R VenereFrance2026-06-23Chemel, James L Cpa NEW49Elwin Sharvill
1041Nicolas D StockhamArgentina2026-06-17Commercial Press NEGOTIATION7Amy Elsner
1042Jefferson Y WaycottAustralia2026-06-26Commercial Press UNQUALIFIED28Stephen Shaw
1043Kadeem I OstroskyIndia2026-06-25Dorl, James J Esq QUALIFIED89Xuxue Feng
1044David A IturbideGermany2026-06-08Rousseaux, Michael Esq QUALIFIED13Xuxue Feng
1045David N DilliardBrazil2026-06-15Dorl, James J Esq NEW5Ioni Bowcher
1046Ashley J MacleadIndia2026-06-22Morlong Associates UNQUALIFIED83Amy Elsner
1047Smith Q NickaFrance2026-06-12Commercial Press NEW27Stephen Shaw
1048Silvio T MaletSpain2026-06-04Benton, John B Jr RENEWAL55Anna Fali
1049Sinclair Z SaylorsItaly2026-06-21Truhlar And Truhlar Attys RENEWAL28Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jefferson Z BologniaArgentinaIoni Bowcher NEW
Izzy S MaletIndiaAnna Fali QUALIFIED
Faith C OstroskyRussiaStephen Shaw QUALIFIED
Deepesh H SlusarskiCanadaIvan Magalhaes PROPOSAL
Wickens H ButtRussiaXuxue Feng RENEWAL
Salvatore R BologniaArgentinaAnna Fali QUALIFIED
Kaitlin N SlusarskiFranceIvan Magalhaes RENEWAL
Ricardo H NestleFranceAnna Fali PROPOSAL
Johnson M CaldareraSpainElwin Sharvill NEGOTIATION
Isabel V KolmetzItalyStephen Shaw NEW
Maria S AlbaresFranceXuxue Feng RENEWAL
Jones R MorascaFranceXuxue Feng UNQUALIFIED
Munro K AmigonIndiaStephen Shaw QUALIFIED
Jones I KolmetzBrazilAnna Fali PROPOSAL
Deepesh O StockhamUnited KingdomAnna Fali UNQUALIFIED
Ivar I StensethRussiaIoni Bowcher NEGOTIATION
Costa N FlosiFranceBernardo Dominic RENEWAL
Johnson X CaudyGermanyBernardo Dominic RENEWAL
Clifford B ShinkoBrazilElwin Sharvill QUALIFIED
Smith Y NestleUnited KingdomAmy Elsner NEGOTIATION
Greenwood O SaylorsIndiaAsiya Javayant UNQUALIFIED
Silvio F ShinkoRussiaStephen Shaw UNQUALIFIED
Jefferson F InouyeAustraliaBernardo Dominic UNQUALIFIED
Johnson K FlosiItalyAnna Fali NEGOTIATION
Sinclair D CaudySpainIoni Bowcher NEW
David D FigeroaRussiaStephen Shaw QUALIFIED
Greenwood F CampainFranceBernardo Dominic NEGOTIATION
Kaitlin D FigeroaItalyAnna Fali QUALIFIED
Deepesh H CampainAustraliaOnyama Limba PROPOSAL
Greenwood X KolmetzJapanOnyama Limba UNQUALIFIED
Emily R MaletFranceElwin Sharvill UNQUALIFIED
David B AmigonRussiaStephen Shaw NEGOTIATION
Salvatore N StensethUnited KingdomAnna Fali RENEWAL
Maisha H ButtJapanIvan Magalhaes QUALIFIED
Clifford T MaletCanadaAnna Fali QUALIFIED
Juan D ChuiJapanAsiya Javayant QUALIFIED
Octavia Q ShinkoJapanElwin Sharvill UNQUALIFIED
Jones D VenereUnited KingdomElwin Sharvill PROPOSAL
Octavia W SaylorsUnited KingdomAnna Fali PROPOSAL
Octavia H DoeUnited KingdomElwin Sharvill PROPOSAL
Clifford J FerenczCanadaOnyama Limba NEW
Deepesh B PerinItalyAnna Fali QUALIFIED
Faith W IturbideRussiaStephen Shaw NEW
Claire H GarufiArgentinaOnyama Limba NEGOTIATION
Aruna W OstroskyBrazilIoni Bowcher NEW
Chavez T StockhamArgentinaBernardo Dominic PROPOSAL
Stacey X MaletArgentinaBernardo Dominic NEW
Arvin L KolmetzRussiaOnyama Limba RENEWAL
James X CaudyUnited KingdomAsiya Javayant NEGOTIATION
Kadeem X GauchoIndiaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Maisha R Vocelka
James J Bolognia
Octavia L Malet
Francesco Z Waycott
Jefferson W Perin
Isabel V Figeroa
James E Saylors
Jennifer V Kusko
Ivar L Maclead
Kadeem E Ostrosky
Juan N Campain
Ivar U Stenseth
Ricardo A Foller
Aditya D Kusko
Smith I Malet
Aruna I Perin
Silvio K Caudy
Claire V Darakjy
Greenwood O Paprocki
Adams Q Waycott
Arvin U Ostrosky
Adams X Albares
Leja P Maclead
Maisha Z Sergi
Mayumi E Saylors
Rodrigues R Tollner
Cody L Amigon
Aika M Wieser
Clifford R Caldarera
Emily Z Briddick
Nicolas W Nestle
Julie P Glick
Rodrigues E Butt
Francesco V Inouye
Mayumi S Nicka
Maisha I Figeroa
Francesco T Bowley
Kaitlin B Tollner
David L Amigon
Leja R Foller
Adams C Sergi
Murillo O Waycott
Jefferson Q Gaucho
Ivar P Stockham
Antonio Q Caudy
Salvatore K Doe
Maria C Butt
Mayumi U Paprocki
Costa R Foller
Munro R Rulapaugh
IdCountryDate
1000Russia2026-06-11
1001Canada2026-06-24
1002Italy2026-06-18
1003Italy2026-06-21
1004Japan2026-06-11
1005Italy2026-06-25
1006Brazil2026-06-06
1007Brazil2026-06-23
1008United Kingdom2026-06-26
1009Brazil2026-06-25
1010Australia2026-06-22
1011Italy2026-06-02
1012Spain2026-06-14
1013Russia2026-06-15
1014Australia2026-06-27
1015Brazil2026-06-27
1016Australia2026-06-27
1017Russia2026-06-07
1018Argentina2026-05-31
1019Germany2026-06-01
1020India2026-06-14
1021Italy2026-06-11
1022Australia2026-06-19
1023Australia2026-06-12
1024India2026-06-18
1025Japan2026-06-19
1026Japan2026-05-31
1027Argentina2026-06-26
1028United Kingdom2026-06-26
1029Spain2026-06-06
1030United Kingdom2026-06-20
1031United Kingdom2026-06-05
1032Brazil2026-06-09
1033France2026-06-05
1034Russia2026-06-29
1035Brazil2026-06-24
1036Australia2026-06-24
1037Germany2026-06-18
1038Australia2026-05-31
1039Spain2026-06-05
1040United Kingdom2026-06-23
1041Japan2026-06-11
1042Italy2026-06-20
1043Brazil2026-06-24
1044Argentina2026-06-21
1045Australia2026-06-07
1046France2026-06-22
1047Japan2026-06-03
1048Argentina2026-06-25
1049Australia2026-06-28

On-Demand Data

NameIdCountryDate
Maria Q Waycott1000United Kingdom2026-06-18
Jefferson V Morasca1001Russia2026-06-08
Silvio N Iturbide1002India2026-06-04
Jeanfrancois Y Chui1003India2026-06-05
Jones D Saylors1004United Kingdom2026-06-20
Greenwood V Doe1005Japan2026-06-07
Darci J Ferencz1006Canada2026-06-04
Clifford C Rulapaugh1007France2026-06-20
Sinclair G Maclead1008Italy2026-06-20
Kadeem R Briddick1009India2026-06-24
Mujtaba Z Malet1010Italy2026-06-05
Aditya H Sergi1011Russia2026-06-09
Deepesh W Doe1012Australia2026-05-31
Rodrigues Y Sergi1013Russia2026-06-24
Clifford W Oldroyd1014Spain2026-06-19
Nicolas A Rulapaugh1015Japan2026-06-01
Adams O Darakjy1016France2026-06-12
Deepesh T Darakjy1017Canada2026-06-18
Deepesh Q Iturbide1018France2026-06-17
Maria G Stockham1019India2026-06-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria V WaycottItalyBernardo Dominic NEGOTIATION
Emily S WaycottArgentinaElwin Sharvill NEW
Salvatore F ShinkoCanadaIoni Bowcher RENEWAL
Deepesh W ButtBrazilElwin Sharvill UNQUALIFIED
Johnson R FigeroaSpainAnna Fali RENEWAL
Leja S FerenczBrazilStephen Shaw UNQUALIFIED
Wickens P CaudyItalyAsiya Javayant QUALIFIED
Costa V MacleadSpainIoni Bowcher PROPOSAL
Alejandro W OstroskyCanadaBernardo Dominic QUALIFIED
Greenwood L GlickRussiaElwin Sharvill PROPOSAL
Jennifer T DarakjySpainBernardo Dominic QUALIFIED
Octavia B FigeroaFranceXuxue Feng PROPOSAL
Aditya S FlosiBrazilElwin Sharvill UNQUALIFIED
Leja W KuskoFranceIvan Magalhaes PROPOSAL
Jefferson X BriddickFranceAsiya Javayant UNQUALIFIED
Faith A PaprockiIndiaXuxue Feng NEW
Arvin Y BologniaRussiaOnyama Limba PROPOSAL
Smith J NestleGermanyAnna Fali UNQUALIFIED
Ashley J BowleyArgentinaAnna Fali PROPOSAL
Faith I WaycottGermanyIvan Magalhaes PROPOSAL
Stacey I StensethRussiaElwin Sharvill NEW
Stacey G DilliardGermanyBernardo Dominic NEGOTIATION
Maria X WieserCanadaIvan Magalhaes UNQUALIFIED
Munro Y NickaAustraliaAmy Elsner PROPOSAL
Stacey Y RoysterUnited KingdomAnna Fali QUALIFIED
Kadeem J AlbaresJapanIvan Magalhaes QUALIFIED
Ashley O GauchoCanadaXuxue Feng NEGOTIATION
Jones S BriddickCanadaAsiya Javayant NEGOTIATION
Aruna S RulapaughArgentinaStephen Shaw NEW
Ivar U FlosiUnited KingdomOnyama Limba RENEWAL
Misaki X FollerSpainAmy Elsner PROPOSAL
Ashley L RimJapanBernardo Dominic PROPOSAL
Costa W NestleCanadaOnyama Limba NEGOTIATION
Murillo C CaudyBrazilAnna Fali UNQUALIFIED
Murillo X BowleyIndiaAnna Fali PROPOSAL
Rodrigues H AmigonFranceAnna Fali PROPOSAL
Isabel L ShinkoSpainOnyama Limba PROPOSAL
Wickens E FigeroaUnited KingdomOnyama Limba QUALIFIED
Murillo G CaldareraBrazilElwin Sharvill QUALIFIED
Rodrigues H StockhamJapanAmy 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>