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
Francesco D CaudyBrazilOnyama Limba RENEWAL
Salvatore V SchemmerSpainAsiya Javayant QUALIFIED
Aditya D VocelkaRussiaAmy Elsner RENEWAL
Costa K FollerCanadaAmy Elsner RENEWAL
Morrow W WhobreyArgentinaBernardo Dominic NEW
Mayumi G MacleadRussiaIvan Magalhaes RENEWAL
Mujtaba I MarrierItalyStephen Shaw NEW
Wickens A ButtFranceOnyama Limba RENEWAL
Johnson K RulapaughBrazilIvan Magalhaes NEGOTIATION
Leja T WieserJapanElwin Sharvill UNQUALIFIED
Jeanfrancois T GauchoRussiaAmy Elsner NEGOTIATION
Clifford Y VocelkaBrazilElwin Sharvill RENEWAL
Aditya Q MaletGermanyStephen Shaw NEW
Claire D MaletGermanyAnna Fali QUALIFIED
David U ButtGermanyElwin Sharvill QUALIFIED
Juan Q PaprockiJapanIvan Magalhaes RENEWAL
Rodrigues T FerenczRussiaIoni Bowcher UNQUALIFIED
Silvio C DarakjyUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois X MaletUnited KingdomAnna Fali QUALIFIED
Octavia Q VenereAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba E RutaAustraliaIvan Magalhaes NEW
Aruna U PoquetteSpainIvan Magalhaes NEW
Aika R ChuiArgentinaAmy Elsner QUALIFIED
Greenwood R VocelkaItalyBernardo Dominic UNQUALIFIED
Jeanfrancois Q StensethJapanBernardo Dominic NEGOTIATION
Ricardo D WhobreyGermanyIoni Bowcher NEGOTIATION
Julie O NestleCanadaOnyama Limba QUALIFIED
Jeanfrancois N BologniaCanadaIoni Bowcher NEW
Leja D GillianCanadaOnyama Limba NEW
Jefferson M CaudyFranceAmy Elsner QUALIFIED
Arvin P SergiJapanAsiya Javayant NEGOTIATION
Munro X BowleySpainStephen Shaw PROPOSAL
Julie U WhobreyArgentinaIvan Magalhaes QUALIFIED
Morrow C FlosiItalyOnyama Limba QUALIFIED
Darci L IturbideJapanIvan Magalhaes PROPOSAL
Greenwood T MacleadFranceStephen Shaw RENEWAL
Aruna T WieserAustraliaOnyama Limba NEW
Antonio S DarakjyGermanyElwin Sharvill PROPOSAL
Antonio E KolmetzArgentinaAsiya Javayant RENEWAL
Nicolas U DarakjyGermanyBernardo Dominic UNQUALIFIED
Silvio C MaletAustraliaAsiya Javayant RENEWAL
Costa C SchemmerFranceIoni Bowcher PROPOSAL
Johnson P VenereRussiaOnyama Limba NEGOTIATION
Arvin X GillianRussiaStephen Shaw UNQUALIFIED
Silvio O MarrierFranceBernardo Dominic QUALIFIED
Claire V GarufiIndiaAmy Elsner NEW
Faith V MaletRussiaIoni Bowcher PROPOSAL
Sinclair N IturbideUnited KingdomXuxue Feng NEGOTIATION
Smith Y SergiBrazilXuxue Feng PROPOSAL
Aika L WhobreySpainIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Sinclair S KuskoRussiaXuxue Feng QUALIFIED
Kadeem B BowleyBrazilBernardo Dominic RENEWAL
Faith A WieserSpainElwin Sharvill NEGOTIATION
Stacey V ShinkoJapanStephen Shaw PROPOSAL
Antonio W SlusarskiUnited KingdomElwin Sharvill QUALIFIED
Deepesh Z CampainGermanyAsiya Javayant UNQUALIFIED
Sinclair Q ShinkoJapanBernardo Dominic UNQUALIFIED
Misaki E RutaItalyAsiya Javayant NEW
Silvio K StensethBrazilElwin Sharvill RENEWAL
Emily Z DarakjyCanadaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco R CampainGermany2026-07-17Rousseaux, Michael Esq QUALIFIED32Bernardo Dominic
1001Murillo A VenereCanada2026-07-03Chemel, James L Cpa UNQUALIFIED7Onyama Limba
1002Jones A PaprockiBrazil2026-07-20Morlong Associates RENEWAL63Ivan Magalhaes
1003David Z MorascaBrazil2026-07-30Morlong Associates QUALIFIED6Ivan Magalhaes
1004Darci C KolmetzAustralia2026-07-28Printing Dimensions RENEWAL90Anna Fali
1005Julie W BowleyFrance2026-07-31Benton, John B Jr UNQUALIFIED35Elwin Sharvill
1006Octavia R CampainItaly2026-08-01Chapman, Ross E Esq UNQUALIFIED74Xuxue Feng
1007Tony K IturbideGermany2026-07-18Buckley Miller Wright NEGOTIATION39Anna Fali
1008Morrow E WaycottAustralia2026-07-24Truhlar And Truhlar Attys RENEWAL90Asiya Javayant
1009David E RulapaughRussia2026-07-06Commercial Press PROPOSAL87Ivan Magalhaes
1010Greenwood H PaprockiJapan2026-07-06Chemel, James L Cpa NEGOTIATION45Stephen Shaw
1011Adams C VocelkaBrazil2026-07-10Dorl, James J Esq NEGOTIATION8Ioni Bowcher
1012Rodrigues K ButtArgentina2026-07-13Benton, John B Jr RENEWAL82Onyama Limba
1013Kadeem V GillianUnited Kingdom2026-07-15Buckley Miller Wright RENEWAL72Asiya Javayant
1014Leon P PoquetteUnited Kingdom2026-07-16Benton, John B Jr QUALIFIED54Ioni Bowcher
1015Julie X ChuiArgentina2026-07-19King, Christopher A Esq PROPOSAL10Xuxue Feng
1016Nicolas W WaycottGermany2026-08-01Feltz Printing Service NEW91Amy Elsner
1017Munro R ButtJapan2026-07-28Printing Dimensions RENEWAL96Onyama Limba
1018Mujtaba V MaletJapan2026-07-07Truhlar And Truhlar Attys RENEWAL46Ivan Magalhaes
1019David S PerinBrazil2026-07-27Feltz Printing Service QUALIFIED43Bernardo Dominic
1020Octavia R TollnerItaly2026-07-21Feiner Bros NEW47Anna Fali
1021Antonio G KolmetzSpain2026-08-01Printing Dimensions NEW30Stephen Shaw
1022Jones A WaycottIndia2026-07-31Rangoni Of Florence NEW35Stephen Shaw
1023Ivar T StensethIndia2026-07-20Dorl, James J Esq QUALIFIED52Stephen Shaw
1024Mujtaba T FollerGermany2026-07-28Dorl, James J Esq NEW65Elwin Sharvill
1025Wickens B CampainCanada2026-07-07Chemel, James L Cpa PROPOSAL19Stephen Shaw
1026Claire V SchemmerAustralia2026-07-30Benton, John B Jr RENEWAL0Stephen Shaw
1027Emily Y ChuiRussia2026-07-19Commercial Press PROPOSAL18Elwin Sharvill
1028Aditya S FerenczGermany2026-07-03Feiner Bros QUALIFIED43Asiya Javayant
1029Ricardo Y SchemmerCanada2026-07-14Feiner Bros NEW99Amy Elsner
1030Salvatore J OldroydItaly2026-07-18Printing Dimensions NEW88Stephen Shaw
1031Misaki S GauchoIndia2026-07-20Morlong Associates PROPOSAL43Xuxue Feng
1032Stacey S FlosiSpain2026-07-24Buckley Miller Wright UNQUALIFIED47Stephen Shaw
1033Maria Q AlbaresIndia2026-07-16Buckley Miller Wright UNQUALIFIED95Elwin Sharvill
1034Misaki M RutaArgentina2026-07-12Buckley Miller Wright QUALIFIED57Xuxue Feng
1035Munro T StockhamGermany2026-07-10Rangoni Of Florence RENEWAL14Amy Elsner
1036Kadeem X OldroydJapan2026-07-06King, Christopher A Esq UNQUALIFIED22Amy Elsner
1037Cody Z WhobreyItaly2026-07-27Buckley Miller Wright NEGOTIATION51Anna Fali
1038Jones F SchemmerUnited Kingdom2026-07-05Benton, John B Jr QUALIFIED34Ioni Bowcher
1039Stacey O VenereBrazil2026-07-05Buckley Miller Wright UNQUALIFIED83Xuxue Feng
1040Adams F ButtSpain2026-07-18Buckley Miller Wright NEW52Elwin Sharvill
1041Tony Y SlusarskiItaly2026-07-12Rousseaux, Michael Esq PROPOSAL2Asiya Javayant
1042Arvin B WaycottGermany2026-07-18Buckley Miller Wright RENEWAL98Ioni Bowcher
1043Clifford F SergiBrazil2026-07-06Rangoni Of Florence NEGOTIATION12Xuxue Feng
1044Jones A FerenczArgentina2026-07-16Feltz Printing Service RENEWAL85Ivan Magalhaes
1045Costa U NestleUnited Kingdom2026-07-17Buckley Miller Wright RENEWAL35Anna Fali
1046Maria H StensethBrazil2026-07-07Chanay, Jeffrey A Esq UNQUALIFIED5Ioni Bowcher
1047Emily P DilliardItaly2026-07-13Chapman, Ross E Esq PROPOSAL56Ioni Bowcher
1048Maisha V PoquetteIndia2026-07-10Rangoni Of Florence UNQUALIFIED38Asiya Javayant
1049Ivar G PaprockiArgentina2026-08-01Benton, John B Jr PROPOSAL20Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ricardo D DoeCanadaIoni Bowcher NEW
Greenwood A StockhamRussiaIvan Magalhaes RENEWAL
Leja H InouyeAustraliaIvan Magalhaes UNQUALIFIED
Misaki R NickaRussiaIvan Magalhaes RENEWAL
Adams K MacleadGermanyIoni Bowcher UNQUALIFIED
Johnson T MorascaRussiaAsiya Javayant QUALIFIED
Arvin X MacleadAustraliaElwin Sharvill QUALIFIED
Sinclair C OldroydAustraliaAmy Elsner RENEWAL
Claire G OldroydIndiaIoni Bowcher PROPOSAL
Cody G GlickArgentinaAsiya Javayant PROPOSAL
Octavia X DarakjyIndiaBernardo Dominic NEGOTIATION
Izzy H AmigonFranceAnna Fali QUALIFIED
Costa V SlusarskiFranceIvan Magalhaes NEW
Morrow L InouyeSpainOnyama Limba RENEWAL
Jones V VenereUnited KingdomIvan Magalhaes QUALIFIED
Jefferson I FigeroaUnited KingdomOnyama Limba PROPOSAL
Adams V NestleItalyOnyama Limba NEGOTIATION
Aruna M WhobreyArgentinaOnyama Limba RENEWAL
Ivar Y PaprockiRussiaStephen Shaw PROPOSAL
Faith Q PaprockiItalyXuxue Feng PROPOSAL
David C OldroydArgentinaBernardo Dominic UNQUALIFIED
Cody Y ChuiBrazilAmy Elsner PROPOSAL
Jefferson R MacleadCanadaOnyama Limba NEW
Salvatore C OldroydArgentinaAsiya Javayant PROPOSAL
Mujtaba S RimArgentinaIvan Magalhaes QUALIFIED
Rodrigues C GauchoBrazilOnyama Limba NEGOTIATION
Sinclair V PoquetteBrazilAsiya Javayant QUALIFIED
Clifford X PerinCanadaAsiya Javayant RENEWAL
Jeanfrancois J AmigonAustraliaOnyama Limba QUALIFIED
Julie H BowleySpainAmy Elsner NEW
Adams E SergiAustraliaOnyama Limba PROPOSAL
David F WaycottGermanyElwin Sharvill UNQUALIFIED
Kaitlin W ShinkoItalyAmy Elsner NEGOTIATION
Jones R StockhamItalyAsiya Javayant QUALIFIED
Francesco M StensethArgentinaBernardo Dominic UNQUALIFIED
Jeanfrancois X GlickFranceElwin Sharvill RENEWAL
Francesco O GarufiCanadaBernardo Dominic RENEWAL
Francesco R KuskoFranceStephen Shaw PROPOSAL
Jennifer L CampainBrazilBernardo Dominic NEGOTIATION
Kadeem N GarufiFranceBernardo Dominic QUALIFIED
Mujtaba I MorascaRussiaOnyama Limba RENEWAL
Julie J RoysterRussiaOnyama Limba QUALIFIED
Faith Z KuskoCanadaOnyama Limba QUALIFIED
Silvio V AmigonFranceElwin Sharvill UNQUALIFIED
Murillo F WieserItalyElwin Sharvill NEW
Mujtaba G PerinUnited KingdomAsiya Javayant RENEWAL
Octavia C CaudyJapanElwin Sharvill QUALIFIED
Isabel C PoquetteArgentinaAsiya Javayant UNQUALIFIED
Smith E FollerAustraliaAsiya Javayant RENEWAL
Jeanfrancois T MarrierFranceXuxue Feng UNQUALIFIED
Frozen Columns
Name
Arvin R Inouye
Clifford C Vocelka
Misaki O Schemmer
Ashley M Caudy
Wickens X Campain
Costa T Tollner
Ivar H Nestle
Kadeem K Oldroyd
Greenwood G Paprocki
Arvin X Chui
Adams H Amigon
Silvio H Ferencz
Izzy L Morasca
Antonio C Briddick
Rodrigues M Kusko
Jennifer K Inouye
Arvin L Stockham
Darci D Stockham
Leon O Poquette
Ricardo G Doe
Morrow H Malet
Mayumi T Figeroa
Jones X Butt
Aruna A Shinko
Nicolas I Figeroa
Ivar E Kolmetz
Jefferson Q Flosi
Juan U Schemmer
Aditya Q Briddick
Francesco F Garufi
Sinclair B Amigon
Ashley H Gaucho
Clifford K Inouye
Kaitlin B Garufi
Jones C Glick
Jeanfrancois B Venere
Stacey T Doe
Jeanfrancois E Rim
Kaitlin B Vocelka
Francesco E Campain
Stacey Y Chui
Sinclair L Poquette
Clifford G Dilliard
Murillo L Sergi
Faith W Gillian
Aika J Tollner
Clifford M Albares
Murillo J Foller
Jones B Rim
Ricardo V Doe
IdCountryDate
1000India2026-07-21
1001Italy2026-08-01
1002France2026-07-23
1003Canada2026-07-03
1004India2026-07-24
1005Australia2026-07-04
1006Italy2026-07-03
1007India2026-07-11
1008Brazil2026-07-16
1009United Kingdom2026-07-26
1010India2026-07-17
1011Argentina2026-07-23
1012Australia2026-07-08
1013Canada2026-07-18
1014United Kingdom2026-07-15
1015United Kingdom2026-07-09
1016Australia2026-07-24
1017Australia2026-07-29
1018Argentina2026-07-31
1019Germany2026-07-19
1020Australia2026-07-30
1021Spain2026-07-24
1022India2026-07-09
1023Spain2026-07-05
1024Canada2026-07-28
1025Italy2026-07-09
1026United Kingdom2026-07-15
1027Spain2026-07-16
1028Russia2026-07-10
1029India2026-07-28
1030Brazil2026-07-04
1031Spain2026-07-06
1032India2026-07-22
1033United Kingdom2026-07-10
1034India2026-07-07
1035Australia2026-07-05
1036Brazil2026-07-07
1037Japan2026-07-28
1038Australia2026-07-30
1039Brazil2026-07-28
1040Italy2026-07-20
1041Canada2026-07-13
1042Spain2026-07-15
1043Russia2026-07-31
1044Australia2026-07-13
1045Italy2026-07-07
1046Russia2026-07-19
1047Brazil2026-07-12
1048India2026-07-22
1049France2026-07-17

On-Demand Data

NameIdCountryDate
Stacey R Morasca1000Japan2026-07-31
Nicolas X Shinko1001United Kingdom2026-07-28
Jeanfrancois J Flosi1002India2026-07-30
Silvio Z Rim1003Canada2026-07-18
Jeanfrancois I Ostrosky1004Australia2026-07-18
Adams R Ostrosky1005France2026-07-27
Jeanfrancois U Paprocki1006United Kingdom2026-07-09
Nicolas W Butt1007Italy2026-07-29
Stacey B Nestle1008United Kingdom2026-07-20
Misaki S Chui1009Japan2026-07-28
Tony C Glick1010Canada2026-07-10
Faith M Venere1011India2026-07-19
Kaitlin Y Ostrosky1012France2026-07-15
Clifford L Marrier1013Australia2026-07-22
Adams I Campain1014Japan2026-07-18
Faith D Gaucho1015United Kingdom2026-07-29
Alejandro H Stenseth1016Spain2026-07-23
Sinclair Q Morasca1017Italy2026-07-07
Mujtaba L Marrier1018Germany2026-07-20
Jennifer N Glick1019Japan2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha X FollerItalyIoni Bowcher PROPOSAL
Adams G SergiGermanyBernardo Dominic NEW
Adams X KolmetzIndiaIvan Magalhaes RENEWAL
Francesco M MarrierBrazilElwin Sharvill NEW
Costa N SaylorsJapanStephen Shaw NEGOTIATION
Juan K RimGermanyOnyama Limba NEGOTIATION
Aika J AlbaresSpainAsiya Javayant RENEWAL
Jeanfrancois Y DilliardItalyAmy Elsner PROPOSAL
Greenwood Y DilliardFranceIvan Magalhaes QUALIFIED
Deepesh H KolmetzRussiaIoni Bowcher NEGOTIATION
Faith M BriddickGermanyXuxue Feng UNQUALIFIED
Antonio M MarrierItalyAnna Fali NEW
Greenwood J PoquetteIndiaAmy Elsner UNQUALIFIED
Aika P CaldareraRussiaBernardo Dominic QUALIFIED
Antonio T PerinIndiaAsiya Javayant NEW
Cody E FigeroaCanadaBernardo Dominic UNQUALIFIED
Chavez F FollerGermanyXuxue Feng UNQUALIFIED
Darci R AmigonCanadaAsiya Javayant NEW
Adams X ButtRussiaXuxue Feng QUALIFIED
Arvin I SergiGermanyXuxue Feng QUALIFIED
Wickens O KolmetzArgentinaStephen Shaw NEGOTIATION
Faith K SchemmerCanadaIvan Magalhaes RENEWAL
Salvatore T MaletFranceAmy Elsner PROPOSAL
Sinclair P RoysterRussiaBernardo Dominic UNQUALIFIED
Clifford N VocelkaAustraliaAmy Elsner NEGOTIATION
David Q MaletItalyAsiya Javayant RENEWAL
Salvatore G AmigonItalyOnyama Limba UNQUALIFIED
David M VocelkaUnited KingdomAmy Elsner RENEWAL
Alejandro O IturbideRussiaAsiya Javayant NEW
Mujtaba U WieserBrazilOnyama Limba NEW
Adams C PoquetteArgentinaBernardo Dominic RENEWAL
Adams O StensethCanadaElwin Sharvill NEGOTIATION
Juan D BologniaUnited KingdomIoni Bowcher RENEWAL
Julie F SaylorsRussiaAnna Fali NEGOTIATION
Arvin D GarufiFranceAsiya Javayant RENEWAL
Silvio W ButtCanadaIoni Bowcher QUALIFIED
Aditya B ChuiArgentinaIoni Bowcher QUALIFIED
Aika G InouyeArgentinaAnna Fali UNQUALIFIED
Deepesh U KuskoSpainOnyama Limba RENEWAL
Maria W GillianItalyBernardo Dominic UNQUALIFIED

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