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
Silvio Q InouyeSpainAnna Fali RENEWAL
Costa U BriddickItalyIvan Magalhaes RENEWAL
Izzy C NickaCanadaStephen Shaw NEW
Francesco E FigeroaUnited KingdomStephen Shaw QUALIFIED
David M RutaIndiaIoni Bowcher NEW
Jefferson I SchemmerAustraliaIoni Bowcher PROPOSAL
Jennifer O FlosiSpainAmy Elsner NEGOTIATION
Faith U FerenczItalyAsiya Javayant QUALIFIED
Leon P NestleJapanAsiya Javayant NEGOTIATION
Jefferson F ChuiJapanBernardo Dominic UNQUALIFIED
Nicolas G OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Chavez J KuskoUnited KingdomXuxue Feng PROPOSAL
Salvatore B RutaBrazilElwin Sharvill NEGOTIATION
Antonio C FlosiJapanAmy Elsner NEGOTIATION
Morrow G ShinkoSpainBernardo Dominic QUALIFIED
Kadeem Z KolmetzItalyXuxue Feng UNQUALIFIED
Claire Q StensethUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood C IturbideUnited KingdomIvan Magalhaes PROPOSAL
Costa M BologniaGermanyOnyama Limba RENEWAL
Johnson Z BowleyJapanXuxue Feng NEGOTIATION
Stacey V PerinAustraliaXuxue Feng UNQUALIFIED
Maisha C NickaCanadaAmy Elsner NEGOTIATION
Smith P MorascaItalyElwin Sharvill RENEWAL
Misaki P CaldareraBrazilXuxue Feng NEW
Ivar J WaycottCanadaAsiya Javayant PROPOSAL
Greenwood M OldroydGermanyBernardo Dominic PROPOSAL
Smith X BowleyArgentinaElwin Sharvill NEGOTIATION
Silvio Y BowleyBrazilXuxue Feng RENEWAL
Smith A BowleyFranceAsiya Javayant PROPOSAL
Julie W MarrierJapanAnna Fali PROPOSAL
Rodrigues Q AlbaresBrazilOnyama Limba UNQUALIFIED
Maria Q SaylorsCanadaOnyama Limba PROPOSAL
Tony D SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
Greenwood U SaylorsIndiaBernardo Dominic QUALIFIED
Morrow O GillianUnited KingdomStephen Shaw NEW
Wickens S VenereGermanyXuxue Feng RENEWAL
Murillo I SaylorsFranceAsiya Javayant RENEWAL
Julie W StensethItalyIoni Bowcher NEW
Jones I PoquetteFranceStephen Shaw UNQUALIFIED
Arvin U FerenczJapanAmy Elsner NEW
Salvatore C BriddickSpainBernardo Dominic NEW
Julie X WieserAustraliaIoni Bowcher RENEWAL
Aruna H VenereCanadaElwin Sharvill NEGOTIATION
Octavia K KolmetzBrazilAmy Elsner NEW
Leja U InouyeBrazilAmy Elsner NEW
Juan T FerenczArgentinaIoni Bowcher UNQUALIFIED
Stacey P WaycottJapanOnyama Limba UNQUALIFIED
Nicolas H SchemmerAustraliaIvan Magalhaes NEGOTIATION
Misaki W DilliardAustraliaIvan Magalhaes NEW
Leja I FollerAustraliaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Maria H OstroskyIndiaAsiya Javayant NEGOTIATION
Aruna P DoeGermanyIvan Magalhaes UNQUALIFIED
Claire O StockhamSpainAnna Fali NEGOTIATION
Antonio L FigeroaCanadaAsiya Javayant QUALIFIED
Murillo P SaylorsAustraliaAmy Elsner QUALIFIED
Leja U StockhamBrazilBernardo Dominic UNQUALIFIED
Isabel L DarakjyIndiaAnna Fali RENEWAL
Octavia G PaprockiBrazilAsiya Javayant NEW
Nicolas K MaletRussiaIoni Bowcher RENEWAL
James I PoquetteCanadaIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia V PoquetteJapan2026-06-24Printing Dimensions UNQUALIFIED81Stephen Shaw
1001Francesco U SergiRussia2026-06-26Chapman, Ross E Esq QUALIFIED85Stephen Shaw
1002Murillo F RulapaughArgentina2026-06-18Printing Dimensions UNQUALIFIED23Onyama Limba
1003Wickens O VocelkaBrazil2026-07-03Truhlar And Truhlar Attys NEW38Xuxue Feng
1004Aditya F MacleadIndia2026-06-27Dorl, James J Esq UNQUALIFIED22Stephen Shaw
1005Leon S GillianAustralia2026-06-28Morlong Associates NEW95Anna Fali
1006Ivar X NickaArgentina2026-06-19Printing Dimensions QUALIFIED31Bernardo Dominic
1007Faith R WieserIndia2026-06-19Rousseaux, Michael Esq NEGOTIATION64Asiya Javayant
1008Rodrigues Z AmigonUnited Kingdom2026-06-19Morlong Associates NEW48Amy Elsner
1009Tony F PerinIndia2026-06-26King, Christopher A Esq RENEWAL7Stephen Shaw
1010Juan W PerinJapan2026-06-21Chemel, James L Cpa NEGOTIATION84Ivan Magalhaes
1011Ivar J WhobreySpain2026-07-04Dorl, James J Esq QUALIFIED58Stephen Shaw
1012Octavia L RoysterCanada2026-06-23Commercial Press RENEWAL18Anna Fali
1013Morrow J CaudyCanada2026-06-21Printing Dimensions NEGOTIATION16Anna Fali
1014Costa X SergiJapan2026-06-13Chemel, James L Cpa NEW68Anna Fali
1015Francesco Y GarufiFrance2026-07-01Feltz Printing Service UNQUALIFIED50Stephen Shaw
1016Salvatore R RulapaughItaly2026-06-20Feltz Printing Service NEGOTIATION45Amy Elsner
1017Darci V CampainRussia2026-07-08Feltz Printing Service QUALIFIED66Elwin Sharvill
1018Kadeem E KolmetzArgentina2026-06-12Dorl, James J Esq UNQUALIFIED57Amy Elsner
1019Jeanfrancois B SchemmerCanada2026-06-29Chapman, Ross E Esq UNQUALIFIED64Ivan Magalhaes
1020Misaki T DoeIndia2026-06-20Dorl, James J Esq NEW9Bernardo Dominic
1021Cody I KuskoArgentina2026-07-04Chapman, Ross E Esq QUALIFIED8Ivan Magalhaes
1022Kaitlin P AlbaresItaly2026-06-25Printing Dimensions PROPOSAL41Onyama Limba
1023Clifford U RulapaughGermany2026-06-21Dorl, James J Esq QUALIFIED2Anna Fali
1024Jones L RulapaughFrance2026-07-06Morlong Associates PROPOSAL97Asiya Javayant
1025Salvatore P CaudyItaly2026-06-19Chanay, Jeffrey A Esq NEGOTIATION40Onyama Limba
1026Mujtaba R NestleGermany2026-06-10Morlong Associates PROPOSAL18Ioni Bowcher
1027Johnson Z FollerBrazil2026-07-08Feltz Printing Service RENEWAL26Stephen Shaw
1028Aruna M BologniaAustralia2026-07-08Commercial Press QUALIFIED13Amy Elsner
1029Mayumi V SchemmerUnited Kingdom2026-06-29Printing Dimensions PROPOSAL63Stephen Shaw
1030Julie V SaylorsArgentina2026-06-17Buckley Miller Wright RENEWAL87Ivan Magalhaes
1031Stacey X MorascaFrance2026-06-10King, Christopher A Esq RENEWAL49Asiya Javayant
1032Adams M MarrierJapan2026-06-14King, Christopher A Esq NEW28Onyama Limba
1033Aruna G GarufiJapan2026-06-18Rangoni Of Florence PROPOSAL48Asiya Javayant
1034Maria W NickaJapan2026-07-07Truhlar And Truhlar Attys NEGOTIATION43Amy Elsner
1035Tony Y PoquetteArgentina2026-06-13Benton, John B Jr PROPOSAL74Xuxue Feng
1036Juan Z BowleyGermany2026-06-24Rangoni Of Florence NEGOTIATION13Onyama Limba
1037Darci M StockhamJapan2026-06-14King, Christopher A Esq UNQUALIFIED50Elwin Sharvill
1038Darci L PoquetteSpain2026-06-17Printing Dimensions PROPOSAL99Elwin Sharvill
1039Misaki Q RulapaughRussia2026-06-30Chanay, Jeffrey A Esq QUALIFIED25Asiya Javayant
1040Jones O VocelkaAustralia2026-06-26Rousseaux, Michael Esq RENEWAL13Amy Elsner
1041Leja R AmigonIndia2026-07-09Rangoni Of Florence NEGOTIATION77Bernardo Dominic
1042Ivar Q FerenczCanada2026-06-24Dorl, James J Esq UNQUALIFIED94Ioni Bowcher
1043Johnson F MaletGermany2026-07-07Chemel, James L Cpa NEGOTIATION70Ivan Magalhaes
1044Ricardo G ShinkoIndia2026-06-27Buckley Miller Wright UNQUALIFIED91Amy Elsner
1045Chavez J GlickAustralia2026-06-28Morlong Associates QUALIFIED20Xuxue Feng
1046Jeanfrancois P SlusarskiFrance2026-07-01King, Christopher A Esq NEW67Onyama Limba
1047Ivar N RoysterRussia2026-07-01Rangoni Of Florence RENEWAL49Ioni Bowcher
1048Deepesh K MaletItaly2026-07-03Chemel, James L Cpa NEGOTIATION65Amy Elsner
1049Leja U AmigonAustralia2026-07-04Rousseaux, Michael Esq NEGOTIATION48Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Octavia R FerenczIndiaStephen Shaw RENEWAL
Julie F BologniaCanadaIvan Magalhaes RENEWAL
Deepesh J FigeroaArgentinaAsiya Javayant NEW
David N ChuiJapanOnyama Limba QUALIFIED
Silvio E FollerRussiaIvan Magalhaes RENEWAL
Munro C WieserItalyAsiya Javayant NEGOTIATION
Adams W GauchoJapanStephen Shaw UNQUALIFIED
Munro O RutaAustraliaAmy Elsner RENEWAL
Johnson G PerinCanadaBernardo Dominic PROPOSAL
Adams O FigeroaSpainAmy Elsner RENEWAL
Jennifer L SaylorsJapanXuxue Feng NEW
Jones N MaletIndiaXuxue Feng NEGOTIATION
Ivar S RulapaughGermanyAsiya Javayant PROPOSAL
Julie F CaudyBrazilOnyama Limba NEW
Ricardo D WieserJapanAmy Elsner QUALIFIED
Aika N KolmetzCanadaXuxue Feng NEGOTIATION
James T DarakjyJapanOnyama Limba RENEWAL
Cody Y MorascaGermanyIvan Magalhaes PROPOSAL
Arvin G ButtJapanStephen Shaw RENEWAL
Rodrigues C WhobreyArgentinaAsiya Javayant PROPOSAL
Ivar W NickaBrazilIvan Magalhaes RENEWAL
Alejandro S CaldareraAustraliaBernardo Dominic QUALIFIED
Izzy S FerenczIndiaAnna Fali NEW
Stacey M GillianArgentinaOnyama Limba PROPOSAL
Tony S BowleyArgentinaIoni Bowcher RENEWAL
Maria P GillianGermanyXuxue Feng PROPOSAL
Adams V FlosiUnited KingdomIoni Bowcher RENEWAL
Chavez Y OstroskyAustraliaXuxue Feng UNQUALIFIED
Ivar P MaletGermanyOnyama Limba PROPOSAL
Costa Q MacleadUnited KingdomAsiya Javayant RENEWAL
Emily M InouyeGermanyStephen Shaw RENEWAL
Rodrigues V WieserCanadaXuxue Feng UNQUALIFIED
Octavia I FerenczBrazilAnna Fali NEGOTIATION
Ricardo M FlosiGermanyAsiya Javayant NEGOTIATION
Aika F StensethCanadaIvan Magalhaes NEGOTIATION
Nicolas B ChuiIndiaXuxue Feng UNQUALIFIED
Costa T MarrierSpainOnyama Limba QUALIFIED
Murillo J RutaUnited KingdomOnyama Limba RENEWAL
Octavia L MaletItalyBernardo Dominic PROPOSAL
Greenwood D MaletAustraliaElwin Sharvill PROPOSAL
Faith F MorascaSpainOnyama Limba PROPOSAL
Deepesh M DilliardFranceBernardo Dominic UNQUALIFIED
Cody T RimUnited KingdomOnyama Limba QUALIFIED
Ivar M DilliardGermanyElwin Sharvill UNQUALIFIED
Cody H MarrierArgentinaIvan Magalhaes PROPOSAL
Jefferson T GlickJapanIoni Bowcher NEW
Octavia U AlbaresSpainIoni Bowcher QUALIFIED
Maisha P OstroskyGermanyAsiya Javayant UNQUALIFIED
Leon P RulapaughCanadaAsiya Javayant RENEWAL
Leja T DoeItalyAnna Fali NEGOTIATION
Frozen Columns
Name
Sinclair Q Caudy
Jeanfrancois U Whobrey
David W Iturbide
Kaitlin K Schemmer
Darci T Kusko
James X Dilliard
Wickens H Malet
Kaitlin H Briddick
Kaitlin L Stockham
Ashley A Ferencz
Kaitlin Q Chui
Nicolas I Kusko
Jones V Dilliard
Cody K Foller
Cody X Doe
Aika G Paprocki
Misaki A Slusarski
Chavez P Kusko
Maria T Saylors
Julie S Perin
Leon D Caldarera
Kaitlin Y Tollner
Morrow A Poquette
Morrow K Briddick
Greenwood H Rulapaugh
Jennifer A Inouye
Morrow O Ruta
Munro N Inouye
Misaki M Bolognia
Leon O Tollner
Salvatore M Vocelka
Sinclair G Perin
Ashley Y Flosi
Maria O Poquette
Alejandro S Briddick
Chavez U Sergi
Jeanfrancois K Saylors
Claire E Caudy
Adams B Vocelka
Faith V Maclead
Munro W Caldarera
Jennifer F Butt
Jeanfrancois A Inouye
Ashley Z Stenseth
Isabel C Stockham
Juan S Stockham
Ricardo E Inouye
Costa D Tollner
Wickens W Bowley
James D Stockham
IdCountryDate
1000Germany2026-07-09
1001Australia2026-06-20
1002Spain2026-06-19
1003France2026-06-13
1004India2026-06-13
1005Germany2026-06-13
1006Italy2026-06-11
1007Brazil2026-07-05
1008Brazil2026-06-30
1009Spain2026-07-05
1010India2026-07-02
1011Brazil2026-06-21
1012United Kingdom2026-07-07
1013Canada2026-06-18
1014Canada2026-06-20
1015Russia2026-06-30
1016Australia2026-06-15
1017Italy2026-06-29
1018India2026-06-26
1019Canada2026-07-02
1020Italy2026-07-08
1021Italy2026-06-15
1022United Kingdom2026-06-23
1023United Kingdom2026-07-09
1024Australia2026-06-19
1025Russia2026-06-29
1026United Kingdom2026-07-07
1027Germany2026-07-01
1028France2026-06-13
1029Spain2026-06-20
1030Italy2026-06-24
1031Brazil2026-06-21
1032Argentina2026-07-03
1033Russia2026-06-24
1034Brazil2026-07-01
1035Australia2026-06-17
1036France2026-07-02
1037Spain2026-06-19
1038Japan2026-07-06
1039India2026-07-05
1040Spain2026-06-14
1041Canada2026-06-11
1042Japan2026-06-12
1043Argentina2026-06-30
1044France2026-07-04
1045Argentina2026-07-08
1046Japan2026-06-29
1047Spain2026-07-04
1048United Kingdom2026-07-01
1049Japan2026-07-05

On-Demand Data

NameIdCountryDate
Kaitlin B Oldroyd1000France2026-06-16
Misaki A Shinko1001Australia2026-07-02
Claire L Perin1002Spain2026-06-18
Cody X Nestle1003United Kingdom2026-06-23
Maisha G Campain1004Italy2026-06-10
Greenwood K Marrier1005Australia2026-06-24
Jeanfrancois L Nicka1006Italy2026-07-06
Jennifer I Stenseth1007Canada2026-07-03
Claire C Morasca1008Russia2026-07-05
Octavia Q Ostrosky1009Argentina2026-06-23
Wickens Y Bolognia1010Argentina2026-06-29
Smith P Bolognia1011Italy2026-07-04
Emily L Rim1012India2026-06-26
Francesco H Morasca1013France2026-06-11
Arvin U Schemmer1014India2026-06-20
Faith H Rulapaugh1015Spain2026-06-14
Silvio Q Stockham1016Argentina2026-06-15
Murillo P Caudy1017Italy2026-06-29
Stacey E Inouye1018Australia2026-06-12
Jones U Dilliard1019India2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams F ShinkoCanadaAnna Fali NEW
Leon A PoquetteAustraliaBernardo Dominic NEW
Misaki J NickaCanadaAmy Elsner NEGOTIATION
Juan M GlickJapanStephen Shaw QUALIFIED
Maria L FigeroaIndiaStephen Shaw QUALIFIED
Wickens F BologniaIndiaIvan Magalhaes RENEWAL
Nicolas H FigeroaItalyOnyama Limba QUALIFIED
Maria G OstroskyBrazilXuxue Feng NEGOTIATION
Kaitlin U FigeroaUnited KingdomBernardo Dominic QUALIFIED
Silvio F OstroskyGermanyAmy Elsner RENEWAL
Deepesh Y KuskoItalyStephen Shaw RENEWAL
Wickens Y PerinAustraliaXuxue Feng PROPOSAL
Ashley C DoeBrazilAnna Fali RENEWAL
Leja O BowleyAustraliaXuxue Feng RENEWAL
Alejandro H BologniaArgentinaAmy Elsner UNQUALIFIED
Smith E BologniaAustraliaOnyama Limba NEGOTIATION
Wickens E WaycottFranceIoni Bowcher NEGOTIATION
Munro Q SlusarskiRussiaStephen Shaw RENEWAL
Tony Y PoquetteAustraliaAmy Elsner NEGOTIATION
Leja T FerenczArgentinaOnyama Limba RENEWAL
Tony M OldroydRussiaOnyama Limba UNQUALIFIED
Munro T TollnerCanadaElwin Sharvill PROPOSAL
Darci T WhobreyIndiaAmy Elsner NEW
Maria L FlosiFranceAsiya Javayant UNQUALIFIED
Kadeem A FerenczFranceElwin Sharvill QUALIFIED
James O AlbaresItalyIoni Bowcher NEGOTIATION
Octavia P WieserJapanXuxue Feng UNQUALIFIED
Sinclair B SaylorsRussiaOnyama Limba UNQUALIFIED
Murillo K GauchoArgentinaXuxue Feng NEGOTIATION
Smith Y RutaRussiaElwin Sharvill RENEWAL
Morrow S PerinFranceXuxue Feng UNQUALIFIED
Jennifer O FerenczJapanXuxue Feng NEGOTIATION
Maisha L VocelkaCanadaIvan Magalhaes NEGOTIATION
Ashley N SaylorsUnited KingdomElwin Sharvill NEGOTIATION
Arvin A KuskoFranceIvan Magalhaes UNQUALIFIED
Kaitlin I MaletUnited KingdomStephen Shaw NEW
Maria D GillianSpainAsiya Javayant NEGOTIATION
Juan S IturbideFranceAmy Elsner PROPOSAL
Ashley S NestleSpainAmy Elsner UNQUALIFIED
Morrow L GillianArgentinaElwin Sharvill 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>