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
Stacey J MarrierGermanyBernardo Dominic NEW
Clifford I TollnerUnited KingdomIvan Magalhaes PROPOSAL
Aditya Y IturbideIndiaAsiya Javayant UNQUALIFIED
Darci G BriddickItalyElwin Sharvill PROPOSAL
Aruna D GlickFranceElwin Sharvill PROPOSAL
Munro S KuskoItalyAsiya Javayant UNQUALIFIED
Clifford L PerinItalyBernardo Dominic PROPOSAL
Francesco U PerinBrazilAnna Fali NEGOTIATION
Ashley X DoeItalyIvan Magalhaes NEGOTIATION
Johnson K PaprockiBrazilIoni Bowcher UNQUALIFIED
Salvatore N KolmetzGermanyIvan Magalhaes NEW
Smith R BowleyArgentinaIoni Bowcher PROPOSAL
Ivar I AmigonIndiaElwin Sharvill RENEWAL
Smith P MaletAustraliaOnyama Limba PROPOSAL
Morrow F InouyeArgentinaStephen Shaw QUALIFIED
Maria O WhobreyBrazilAsiya Javayant QUALIFIED
Ricardo M WieserGermanyAmy Elsner UNQUALIFIED
Ashley R FerenczAustraliaElwin Sharvill QUALIFIED
Faith S GillianUnited KingdomBernardo Dominic PROPOSAL
Deepesh Q ShinkoAustraliaOnyama Limba RENEWAL
Johnson E RutaUnited KingdomAmy Elsner NEW
Munro P MarrierAustraliaOnyama Limba NEGOTIATION
Morrow N MarrierUnited KingdomAsiya Javayant NEGOTIATION
David F RulapaughItalyIoni Bowcher NEGOTIATION
Octavia R PoquetteBrazilStephen Shaw UNQUALIFIED
Leja B MaletGermanyStephen Shaw UNQUALIFIED
Juan A FerenczFranceIvan Magalhaes PROPOSAL
Salvatore S StockhamAustraliaXuxue Feng RENEWAL
James Z VocelkaBrazilStephen Shaw NEW
Deepesh N ShinkoFranceIvan Magalhaes QUALIFIED
Leja W BowleyAustraliaAnna Fali RENEWAL
Greenwood J RulapaughFranceAsiya Javayant RENEWAL
Alejandro C PerinCanadaOnyama Limba NEGOTIATION
Chavez V StockhamFranceOnyama Limba RENEWAL
Morrow H BriddickRussiaIvan Magalhaes NEGOTIATION
Ivar X PerinCanadaElwin Sharvill RENEWAL
Faith W TollnerGermanyElwin Sharvill QUALIFIED
Clifford R FlosiAustraliaIoni Bowcher NEGOTIATION
Salvatore B RimArgentinaAmy Elsner NEW
Leon D MarrierCanadaAnna Fali NEW
Juan V WaycottUnited KingdomIoni Bowcher RENEWAL
Nicolas J RulapaughCanadaIoni Bowcher UNQUALIFIED
Leon Y GauchoAustraliaBernardo Dominic NEGOTIATION
David J BowleyIndiaAsiya Javayant NEW
Claire Z IturbideGermanyBernardo Dominic RENEWAL
Kadeem U PerinJapanOnyama Limba NEW
Francesco N FigeroaItalyXuxue Feng NEGOTIATION
Silvio I BowleyFranceBernardo Dominic PROPOSAL
Johnson V ShinkoCanadaAmy Elsner RENEWAL
Stacey T ButtAustraliaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues W WhobreyRussiaElwin Sharvill UNQUALIFIED
Faith H BowleyJapanAsiya Javayant QUALIFIED
Clifford W MacleadRussiaAmy Elsner NEGOTIATION
Jones Y KolmetzFranceXuxue Feng NEGOTIATION
Kadeem F MaletFranceIoni Bowcher PROPOSAL
Francesco K MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Cody J NickaAustraliaStephen Shaw UNQUALIFIED
Ashley C GlickItalyStephen Shaw RENEWAL
Smith E FlosiGermanyAnna Fali NEGOTIATION
Jeanfrancois T DilliardUnited KingdomAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues Y BologniaArgentina2026-07-18Chanay, Jeffrey A Esq PROPOSAL46Ioni Bowcher
1001Morrow Z RulapaughUnited Kingdom2026-07-25Feiner Bros QUALIFIED8Onyama Limba
1002James V StensethAustralia2026-07-21Commercial Press NEW78Amy Elsner
1003Adams C WaycottIndia2026-07-09Feiner Bros UNQUALIFIED75Asiya Javayant
1004Stacey A IturbideItaly2026-07-27Commercial Press RENEWAL71Amy Elsner
1005Clifford W PerinGermany2026-07-26Rangoni Of Florence NEGOTIATION92Amy Elsner
1006Munro K PoquetteCanada2026-07-29Truhlar And Truhlar Attys NEW50Ioni Bowcher
1007Rodrigues S WhobreyUnited Kingdom2026-07-09Printing Dimensions PROPOSAL80Ivan Magalhaes
1008Jones D MaletAustralia2026-07-15Benton, John B Jr RENEWAL23Ioni Bowcher
1009Misaki X WaycottArgentina2026-07-29Printing Dimensions UNQUALIFIED43Asiya Javayant
1010Francesco X KolmetzRussia2026-08-05Buckley Miller Wright NEGOTIATION35Ivan Magalhaes
1011Juan R StensethAustralia2026-07-21Chemel, James L Cpa NEW15Xuxue Feng
1012Smith D GauchoArgentina2026-07-20Printing Dimensions UNQUALIFIED41Anna Fali
1013Kaitlin B DilliardRussia2026-07-12Chanay, Jeffrey A Esq NEW61Ioni Bowcher
1014Mayumi H WieserFrance2026-07-14Truhlar And Truhlar Attys PROPOSAL69Elwin Sharvill
1015Chavez G BologniaGermany2026-07-11Buckley Miller Wright UNQUALIFIED15Amy Elsner
1016Cody T WhobreyJapan2026-07-14Truhlar And Truhlar Attys QUALIFIED22Stephen Shaw
1017Juan M DarakjyIndia2026-08-05Feltz Printing Service QUALIFIED79Ivan Magalhaes
1018James L GauchoUnited Kingdom2026-08-06Buckley Miller Wright PROPOSAL56Anna Fali
1019Clifford K MacleadArgentina2026-07-10Buckley Miller Wright RENEWAL18Anna Fali
1020Arvin E OldroydFrance2026-07-22Feiner Bros UNQUALIFIED51Stephen Shaw
1021Murillo H ShinkoRussia2026-08-06Commercial Press QUALIFIED40Ivan Magalhaes
1022Kadeem O MacleadIndia2026-07-27Printing Dimensions UNQUALIFIED7Amy Elsner
1023Jeanfrancois M KolmetzAustralia2026-07-14Chapman, Ross E Esq NEGOTIATION6Amy Elsner
1024Emily V AmigonRussia2026-08-01Buckley Miller Wright NEGOTIATION61Xuxue Feng
1025Costa Z DarakjyIndia2026-07-29Chemel, James L Cpa PROPOSAL26Ioni Bowcher
1026Greenwood U PaprockiUnited Kingdom2026-07-21Dorl, James J Esq NEW6Ivan Magalhaes
1027Ivar Q ChuiCanada2026-07-25Rangoni Of Florence NEGOTIATION61Amy Elsner
1028Cody D KuskoBrazil2026-07-22King, Christopher A Esq RENEWAL24Amy Elsner
1029Jeanfrancois T NestleIndia2026-07-19Commercial Press RENEWAL30Ioni Bowcher
1030James N IturbideRussia2026-07-13Dorl, James J Esq RENEWAL39Bernardo Dominic
1031Claire S CaldareraSpain2026-07-11Buckley Miller Wright UNQUALIFIED70Anna Fali
1032Arvin G MacleadBrazil2026-07-09Chemel, James L Cpa PROPOSAL39Amy Elsner
1033Claire J OldroydArgentina2026-08-02Buckley Miller Wright QUALIFIED26Bernardo Dominic
1034Smith V BowleyAustralia2026-07-28Commercial Press RENEWAL13Onyama Limba
1035Ashley S FollerAustralia2026-07-23Rousseaux, Michael Esq NEW49Bernardo Dominic
1036Jeanfrancois V FerenczJapan2026-07-10Printing Dimensions NEW79Amy Elsner
1037Deepesh L OstroskyGermany2026-07-18Chapman, Ross E Esq RENEWAL85Stephen Shaw
1038Aditya E StockhamBrazil2026-07-23Truhlar And Truhlar Attys RENEWAL59Bernardo Dominic
1039Mujtaba Z PoquetteFrance2026-07-28Feiner Bros UNQUALIFIED22Amy Elsner
1040Faith I SchemmerFrance2026-07-23Dorl, James J Esq NEW20Xuxue Feng
1041Sinclair L FollerSpain2026-08-01Chemel, James L Cpa PROPOSAL45Xuxue Feng
1042Jeanfrancois K OstroskyFrance2026-08-07Feltz Printing Service UNQUALIFIED80Stephen Shaw
1043Claire S CampainArgentina2026-07-31King, Christopher A Esq NEGOTIATION36Ioni Bowcher
1044Jeanfrancois A GarufiAustralia2026-08-04Feltz Printing Service RENEWAL81Anna Fali
1045Wickens Z WhobreyFrance2026-07-29Benton, John B Jr RENEWAL22Ioni Bowcher
1046Rodrigues E OldroydSpain2026-08-06Feltz Printing Service NEGOTIATION42Bernardo Dominic
1047Leon X RutaUnited Kingdom2026-07-11Printing Dimensions UNQUALIFIED14Anna Fali
1048Johnson G MaletSpain2026-07-12Benton, John B Jr NEW48Xuxue Feng
1049David C GarufiRussia2026-08-02Feiner Bros NEW77Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Faith R DarakjySpainBernardo Dominic UNQUALIFIED
Rodrigues T TollnerFranceAsiya Javayant QUALIFIED
Francesco A FerenczJapanBernardo Dominic UNQUALIFIED
Emily V PerinArgentinaBernardo Dominic QUALIFIED
Francesco E VocelkaFranceIvan Magalhaes RENEWAL
Leon P SaylorsAustraliaIoni Bowcher PROPOSAL
Antonio Q FlosiJapanElwin Sharvill PROPOSAL
Jefferson Y BriddickArgentinaElwin Sharvill NEW
Ricardo Y GlickGermanyXuxue Feng QUALIFIED
Izzy M ChuiItalyXuxue Feng NEGOTIATION
Juan Q NickaJapanIoni Bowcher NEW
Leja W DilliardBrazilIoni Bowcher PROPOSAL
Isabel F FollerJapanXuxue Feng PROPOSAL
Aruna O DoeArgentinaStephen Shaw RENEWAL
Izzy I PoquetteRussiaBernardo Dominic UNQUALIFIED
Jefferson H SlusarskiFranceElwin Sharvill QUALIFIED
Jennifer H GarufiAustraliaOnyama Limba NEW
Misaki Q OstroskyFranceOnyama Limba UNQUALIFIED
Sinclair L RutaSpainAmy Elsner RENEWAL
Maria H NickaCanadaAmy Elsner PROPOSAL
Leon G PoquetteSpainBernardo Dominic PROPOSAL
Kadeem A KuskoArgentinaIvan Magalhaes RENEWAL
Mayumi O KuskoGermanyXuxue Feng QUALIFIED
Aruna O FollerItalyBernardo Dominic QUALIFIED
Jefferson X DoeArgentinaOnyama Limba NEW
Ivar L RulapaughJapanStephen Shaw RENEWAL
Jennifer W StensethJapanOnyama Limba UNQUALIFIED
Leja L SlusarskiJapanAsiya Javayant NEGOTIATION
Tony B WhobreyIndiaIoni Bowcher QUALIFIED
Stacey X KolmetzItalyIvan Magalhaes NEW
Misaki R VenereCanadaAsiya Javayant UNQUALIFIED
Murillo J MacleadItalyAmy Elsner UNQUALIFIED
Leja R RoysterAustraliaStephen Shaw NEW
Ashley G RulapaughAustraliaStephen Shaw QUALIFIED
Jones V FigeroaCanadaAsiya Javayant NEW
Ivar R SergiArgentinaAmy Elsner QUALIFIED
Aika E GauchoRussiaAnna Fali UNQUALIFIED
Julie U AmigonGermanyStephen Shaw RENEWAL
Wickens H FlosiArgentinaOnyama Limba PROPOSAL
Maisha A RulapaughSpainIvan Magalhaes QUALIFIED
Faith Q FlosiJapanIoni Bowcher NEW
Arvin I OldroydIndiaAmy Elsner RENEWAL
Stacey J StockhamFranceElwin Sharvill RENEWAL
Arvin B SergiRussiaOnyama Limba PROPOSAL
Francesco D DilliardArgentinaAnna Fali NEW
Nicolas B BologniaFranceXuxue Feng NEGOTIATION
James A AlbaresGermanyStephen Shaw NEW
Isabel T SchemmerCanadaIvan Magalhaes UNQUALIFIED
Tony U ButtFranceIoni Bowcher UNQUALIFIED
Ricardo X PerinSpainXuxue Feng PROPOSAL
Frozen Columns
Name
Greenwood V Inouye
Rodrigues J Poquette
Julie Q Butt
Adams I Ostrosky
Cody T Darakjy
Jennifer Y Morasca
Maisha U Waycott
Leon R Caldarera
Deepesh I Darakjy
Costa R Rim
Cody Q Rulapaugh
Clifford K Amigon
Cody U Garufi
Isabel H Paprocki
Aditya S Darakjy
Maria W Briddick
Johnson M Rulapaugh
Rodrigues I Inouye
Alejandro H Stockham
Julie B Bowley
Jennifer U Stenseth
Juan E Briddick
Ivar N Dilliard
Jennifer K Amigon
Greenwood K Albares
Ivar J Gaucho
Francesco K Iturbide
Octavia Q Gillian
Ricardo H Paprocki
Johnson O Iturbide
Clifford U Dilliard
Faith L Darakjy
Morrow Z Amigon
Nicolas V Ruta
Cody R Slusarski
Aruna G Dilliard
Salvatore W Caldarera
Ricardo O Vocelka
Tony X Malet
Misaki X Shinko
Octavia D Campain
Francesco M Kusko
Nicolas X Caudy
Ricardo X Inouye
Isabel V Nestle
Leja M Venere
Ivar A Maclead
Cody R Kolmetz
Wickens N Stockham
Adams D Paprocki
IdCountryDate
1000Spain2026-07-14
1001Italy2026-07-25
1002Germany2026-07-24
1003France2026-07-20
1004India2026-07-13
1005Australia2026-07-16
1006Brazil2026-07-11
1007Italy2026-07-18
1008Russia2026-07-26
1009Japan2026-07-21
1010Spain2026-07-20
1011Canada2026-07-22
1012Japan2026-08-01
1013Germany2026-08-06
1014United Kingdom2026-08-06
1015Germany2026-07-09
1016Brazil2026-07-29
1017Canada2026-08-04
1018Italy2026-07-13
1019Italy2026-07-23
1020Italy2026-07-13
1021United Kingdom2026-08-04
1022Brazil2026-08-07
1023Germany2026-07-31
1024France2026-08-02
1025Australia2026-08-07
1026France2026-08-07
1027India2026-08-02
1028United Kingdom2026-07-30
1029Japan2026-07-18
1030Australia2026-07-29
1031Canada2026-07-14
1032Italy2026-07-14
1033Italy2026-07-31
1034Italy2026-08-04
1035India2026-07-25
1036Italy2026-08-05
1037Spain2026-07-26
1038Italy2026-07-25
1039Germany2026-07-22
1040Canada2026-08-03
1041Canada2026-08-01
1042Italy2026-08-07
1043Australia2026-07-17
1044Brazil2026-07-28
1045Australia2026-07-10
1046Argentina2026-07-10
1047Canada2026-07-21
1048Canada2026-07-10
1049United Kingdom2026-07-15

On-Demand Data

NameIdCountryDate
Murillo X Iturbide1000Germany2026-08-07
Nicolas E Iturbide1001Japan2026-08-03
Mujtaba M Tollner1002Canada2026-08-06
Leon K Ostrosky1003Argentina2026-07-17
Silvio E Nicka1004Italy2026-07-25
Morrow X Oldroyd1005Italy2026-07-21
Deepesh S Wieser1006Argentina2026-07-16
Aditya C Albares1007Australia2026-07-29
Morrow P Ferencz1008Japan2026-07-20
Aika G Garufi1009France2026-07-16
Aika M Ruta1010Germany2026-08-02
Kadeem Q Vocelka1011India2026-07-22
Aruna R Morasca1012France2026-07-26
Kaitlin D Morasca1013Argentina2026-08-04
Ricardo N Figeroa1014Canada2026-07-29
Alejandro X Bowley1015Argentina2026-08-03
Sinclair U Slusarski1016Germany2026-08-02
Antonio Z Kolmetz1017France2026-08-06
Antonio P Gillian1018Italy2026-07-16
Arvin F Royster1019Australia2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki R IturbideItalyElwin Sharvill PROPOSAL
Aika X SergiCanadaBernardo Dominic QUALIFIED
Maria R ButtRussiaElwin Sharvill PROPOSAL
Smith L RulapaughArgentinaXuxue Feng NEGOTIATION
Leja L WaycottIndiaElwin Sharvill QUALIFIED
Clifford P BologniaFranceAnna Fali NEGOTIATION
Antonio W NickaIndiaAmy Elsner PROPOSAL
Antonio Z OldroydSpainAnna Fali PROPOSAL
Aika R RimCanadaAmy Elsner NEW
Adams Y RoysterGermanyElwin Sharvill RENEWAL
Claire L OldroydIndiaXuxue Feng NEW
Mayumi E CaldareraFranceOnyama Limba UNQUALIFIED
Munro E OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Costa E OldroydBrazilElwin Sharvill RENEWAL
Chavez Y VocelkaAustraliaIoni Bowcher NEGOTIATION
Jefferson U SlusarskiCanadaIoni Bowcher UNQUALIFIED
David Q GarufiItalyBernardo Dominic PROPOSAL
Aditya O WaycottIndiaXuxue Feng NEGOTIATION
Jeanfrancois N MacleadSpainOnyama Limba PROPOSAL
Aika U WhobreyRussiaIvan Magalhaes UNQUALIFIED
Maisha Y BriddickArgentinaXuxue Feng NEGOTIATION
Jones Y GlickItalyIoni Bowcher RENEWAL
Maisha K FigeroaSpainAmy Elsner UNQUALIFIED
Chavez Y MorascaFranceIvan Magalhaes RENEWAL
Deepesh T WhobreyAustraliaAnna Fali QUALIFIED
James Q DilliardRussiaBernardo Dominic NEW
Salvatore T RutaGermanyOnyama Limba NEGOTIATION
Alejandro L BowleyCanadaBernardo Dominic UNQUALIFIED
Adams E CaudyIndiaOnyama Limba NEW
Maria I BologniaRussiaAsiya Javayant NEW
Francesco Q RutaJapanAsiya Javayant NEW
Stacey B WhobreyGermanyAnna Fali RENEWAL
Isabel M RimAustraliaElwin Sharvill QUALIFIED
Smith N GillianFranceElwin Sharvill PROPOSAL
Leon B MaletGermanyXuxue Feng RENEWAL
Alejandro F GarufiSpainOnyama Limba UNQUALIFIED
Jeanfrancois F DoeGermanyIoni Bowcher RENEWAL
Jones T GillianUnited KingdomIvan Magalhaes NEGOTIATION
Arvin Z PaprockiSpainStephen Shaw RENEWAL
Greenwood T WhobreyJapanAnna Fali 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>