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 I KolmetzBrazilStephen Shaw UNQUALIFIED
Ricardo T RoysterUnited KingdomStephen Shaw PROPOSAL
James M SchemmerJapanStephen Shaw NEW
Faith U GlickGermanyBernardo Dominic NEGOTIATION
Faith G SlusarskiFranceAnna Fali QUALIFIED
Antonio L FollerRussiaAmy Elsner PROPOSAL
James O MaletRussiaAsiya Javayant PROPOSAL
Jeanfrancois R FlosiItalyAsiya Javayant NEW
Costa F GarufiFranceAsiya Javayant NEW
Deepesh P VocelkaSpainAsiya Javayant QUALIFIED
Clifford E StensethIndiaAsiya Javayant QUALIFIED
Ricardo G IturbideFranceAsiya Javayant QUALIFIED
Salvatore Y PoquetteAustraliaAsiya Javayant QUALIFIED
Mayumi X FigeroaGermanyXuxue Feng NEGOTIATION
Aditya X SaylorsGermanyStephen Shaw QUALIFIED
Tony E WaycottUnited KingdomXuxue Feng RENEWAL
Wickens Z BowleyGermanyAnna Fali UNQUALIFIED
Mujtaba T ButtJapanOnyama Limba NEGOTIATION
Ivar F RutaAustraliaAnna Fali UNQUALIFIED
Maria K StensethUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood W RutaFranceStephen Shaw NEW
Adams U ChuiGermanyAmy Elsner QUALIFIED
Francesco Z OstroskyBrazilOnyama Limba PROPOSAL
Sinclair V IturbideCanadaAnna Fali PROPOSAL
Julie L KuskoUnited KingdomAmy Elsner NEW
Misaki B DoeSpainXuxue Feng RENEWAL
Cody E DilliardRussiaOnyama Limba NEW
Johnson E BriddickArgentinaElwin Sharvill NEGOTIATION
Darci U GarufiFranceStephen Shaw PROPOSAL
Munro Z WhobreyAustraliaXuxue Feng RENEWAL
Leja D SchemmerIndiaBernardo Dominic RENEWAL
Mujtaba Y GauchoArgentinaAsiya Javayant RENEWAL
Costa Z CaudyItalyXuxue Feng PROPOSAL
Wickens S CaldareraRussiaIvan Magalhaes QUALIFIED
Morrow P SaylorsJapanAnna Fali QUALIFIED
Izzy H GillianSpainIvan Magalhaes UNQUALIFIED
Francesco O ButtItalyAsiya Javayant NEGOTIATION
Aruna L MaletSpainBernardo Dominic QUALIFIED
Mujtaba U ShinkoFranceElwin Sharvill PROPOSAL
Izzy P WieserJapanElwin Sharvill RENEWAL
Morrow S MaletBrazilStephen Shaw NEGOTIATION
Faith G DarakjyArgentinaAmy Elsner NEGOTIATION
Juan G GauchoUnited KingdomAsiya Javayant UNQUALIFIED
Leon M RoysterAustraliaAnna Fali QUALIFIED
Darci Q PoquetteSpainXuxue Feng PROPOSAL
Stacey T DoeCanadaIvan Magalhaes NEW
Greenwood Y DarakjyBrazilStephen Shaw QUALIFIED
Julie D TollnerAustraliaAsiya Javayant UNQUALIFIED
Alejandro P WhobreyCanadaOnyama Limba RENEWAL
Greenwood H KolmetzGermanyIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Aditya U BologniaItalyBernardo Dominic RENEWAL
Ashley C FigeroaItalyIoni Bowcher PROPOSAL
Smith B MaletSpainIoni Bowcher RENEWAL
Wickens K IturbideUnited KingdomAnna Fali NEGOTIATION
Darci M OstroskyBrazilOnyama Limba RENEWAL
Aditya X RutaSpainStephen Shaw RENEWAL
Johnson B ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Julie U MaletAustraliaOnyama Limba RENEWAL
Wickens F CaudyBrazilBernardo Dominic RENEWAL
Jones W BowleyRussiaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin L OldroydBrazil2026-07-24Rousseaux, Michael Esq RENEWAL85Elwin Sharvill
1001Izzy Z StockhamArgentina2026-07-21Chemel, James L Cpa NEGOTIATION0Ioni Bowcher
1002Rodrigues C NestleAustralia2026-07-07King, Christopher A Esq NEGOTIATION51Xuxue Feng
1003Ricardo K GlickUnited Kingdom2026-07-15Printing Dimensions NEGOTIATION9Stephen Shaw
1004Morrow G WaycottArgentina2026-07-01Buckley Miller Wright RENEWAL20Onyama Limba
1005Izzy C BowleyFrance2026-07-19Morlong Associates NEGOTIATION92Stephen Shaw
1006Faith A GauchoFrance2026-07-05Chemel, James L Cpa PROPOSAL63Stephen Shaw
1007Johnson C RulapaughArgentina2026-07-13Truhlar And Truhlar Attys PROPOSAL24Anna Fali
1008Sinclair M AmigonCanada2026-07-08Rangoni Of Florence RENEWAL26Elwin Sharvill
1009Salvatore T ButtIndia2026-07-09King, Christopher A Esq UNQUALIFIED86Amy Elsner
1010Aditya N FlosiGermany2026-07-24Chapman, Ross E Esq NEGOTIATION36Onyama Limba
1011Rodrigues S OldroydSpain2026-07-28Buckley Miller Wright NEW49Amy Elsner
1012Rodrigues U MaletGermany2026-07-04Morlong Associates NEW77Ivan Magalhaes
1013Julie G GlickJapan2026-07-12Rangoni Of Florence RENEWAL19Stephen Shaw
1014Mujtaba Y TollnerAustralia2026-07-25Chanay, Jeffrey A Esq UNQUALIFIED95Amy Elsner
1015Chavez L VocelkaRussia2026-07-21Benton, John B Jr NEW25Ioni Bowcher
1016Francesco O ChuiItaly2026-07-16Morlong Associates UNQUALIFIED60Ioni Bowcher
1017Maisha A GarufiBrazil2026-07-08Chapman, Ross E Esq RENEWAL48Ioni Bowcher
1018Deepesh C ChuiArgentina2026-07-06Chapman, Ross E Esq QUALIFIED92Bernardo Dominic
1019Sinclair L KolmetzCanada2026-07-09Feltz Printing Service PROPOSAL1Anna Fali
1020Alejandro S CaudyJapan2026-06-29Feltz Printing Service RENEWAL6Stephen Shaw
1021Munro J DarakjyIndia2026-07-09Feltz Printing Service UNQUALIFIED46Asiya Javayant
1022Maria U InouyeSpain2026-07-08King, Christopher A Esq NEW49Stephen Shaw
1023Chavez L CaudyItaly2026-07-21Chapman, Ross E Esq PROPOSAL78Bernardo Dominic
1024Leon G KuskoGermany2026-07-26Printing Dimensions QUALIFIED3Stephen Shaw
1025Clifford C SlusarskiAustralia2026-07-21Morlong Associates NEW69Onyama Limba
1026Octavia B MaletCanada2026-06-29Commercial Press RENEWAL83Stephen Shaw
1027Rodrigues T BowleyFrance2026-07-05Chapman, Ross E Esq NEW15Xuxue Feng
1028Chavez G VocelkaCanada2026-06-29Truhlar And Truhlar Attys PROPOSAL49Xuxue Feng
1029Jefferson P StockhamGermany2026-07-16Morlong Associates UNQUALIFIED78Bernardo Dominic
1030Rodrigues Q CaudyGermany2026-07-18Feiner Bros NEGOTIATION98Amy Elsner
1031Adams O WieserItaly2026-07-06Chapman, Ross E Esq NEW76Asiya Javayant
1032Ashley L MaletCanada2026-07-02Chemel, James L Cpa QUALIFIED90Xuxue Feng
1033Aruna U WaycottFrance2026-07-20Printing Dimensions NEGOTIATION64Onyama Limba
1034Juan W GarufiCanada2026-07-22Morlong Associates NEGOTIATION15Onyama Limba
1035Octavia Z CaldareraIndia2026-07-03Feltz Printing Service UNQUALIFIED7Xuxue Feng
1036Aditya T TollnerBrazil2026-06-29Chemel, James L Cpa UNQUALIFIED87Anna Fali
1037Arvin H KolmetzUnited Kingdom2026-07-07Chapman, Ross E Esq QUALIFIED63Anna Fali
1038Chavez J FollerItaly2026-07-10Commercial Press QUALIFIED48Xuxue Feng
1039Maisha E PaprockiCanada2026-07-06Benton, John B Jr QUALIFIED40Anna Fali
1040Isabel E ChuiRussia2026-07-21Feiner Bros RENEWAL88Ivan Magalhaes
1041Silvio H AmigonBrazil2026-07-14Rangoni Of Florence RENEWAL57Ioni Bowcher
1042Leja Q MorascaItaly2026-06-30Benton, John B Jr NEW78Ivan Magalhaes
1043Izzy S InouyeIndia2026-07-18Chapman, Ross E Esq QUALIFIED29Xuxue Feng
1044Mayumi W CampainIndia2026-07-02Chanay, Jeffrey A Esq UNQUALIFIED11Ioni Bowcher
1045Sinclair Y BowleyArgentina2026-07-18Truhlar And Truhlar Attys PROPOSAL48Stephen Shaw
1046Julie B DilliardUnited Kingdom2026-07-08Rangoni Of Florence RENEWAL34Asiya Javayant
1047Adams G BriddickRussia2026-07-08Dorl, James J Esq NEW29Anna Fali
1048Leja Q BologniaAustralia2026-07-09Rousseaux, Michael Esq PROPOSAL41Asiya Javayant
1049Jones W StockhamRussia2026-07-11Buckley Miller Wright RENEWAL62Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Johnson Y MarrierItalyIoni Bowcher NEW
Ivar K FigeroaArgentinaAnna Fali UNQUALIFIED
Claire S WaycottCanadaIvan Magalhaes UNQUALIFIED
Wickens Z AlbaresJapanXuxue Feng QUALIFIED
Maisha W ChuiItalyIvan Magalhaes PROPOSAL
James F MacleadAustraliaIoni Bowcher UNQUALIFIED
Jones G SchemmerSpainAsiya Javayant RENEWAL
Leon C VenereAustraliaAsiya Javayant QUALIFIED
Jefferson V NickaJapanOnyama Limba UNQUALIFIED
Mayumi A CaldareraAustraliaIvan Magalhaes QUALIFIED
Aditya U OstroskyFranceAmy Elsner PROPOSAL
Emily Q MaletAustraliaOnyama Limba NEW
Leja Y FigeroaSpainIoni Bowcher NEGOTIATION
Silvio P CaudyBrazilElwin Sharvill UNQUALIFIED
Murillo Y GlickUnited KingdomBernardo Dominic QUALIFIED
Ivar R CampainAustraliaOnyama Limba UNQUALIFIED
Maria U ButtAustraliaIvan Magalhaes QUALIFIED
Darci H NestleAustraliaAmy Elsner NEW
Aika E CaudyAustraliaAnna Fali RENEWAL
Isabel F SchemmerIndiaAsiya Javayant RENEWAL
Francesco D MorascaBrazilStephen Shaw UNQUALIFIED
Jennifer X OstroskyAustraliaIvan Magalhaes NEGOTIATION
Juan R TollnerGermanyAsiya Javayant NEGOTIATION
Jeanfrancois K WhobreyArgentinaIvan Magalhaes RENEWAL
Jennifer G BologniaGermanyAnna Fali QUALIFIED
James H WhobreyRussiaAmy Elsner QUALIFIED
Emily K IturbideCanadaAnna Fali QUALIFIED
Murillo Z CampainBrazilStephen Shaw PROPOSAL
Stacey R KuskoJapanAmy Elsner RENEWAL
Greenwood C DoeIndiaBernardo Dominic NEW
Octavia P OstroskyCanadaAsiya Javayant RENEWAL
Silvio D KuskoArgentinaAmy Elsner UNQUALIFIED
Kadeem P MarrierUnited KingdomBernardo Dominic RENEWAL
Silvio U StockhamCanadaAsiya Javayant QUALIFIED
Jones B KolmetzUnited KingdomXuxue Feng RENEWAL
Kaitlin W StensethJapanAmy Elsner QUALIFIED
Misaki M MacleadRussiaAnna Fali UNQUALIFIED
Kadeem V RimRussiaAnna Fali PROPOSAL
Kaitlin A BowleyJapanAsiya Javayant PROPOSAL
Johnson H CaudyItalyIoni Bowcher UNQUALIFIED
Izzy C MaletFranceOnyama Limba RENEWAL
Ivar F IturbideGermanyAmy Elsner UNQUALIFIED
Ricardo M KolmetzJapanAnna Fali NEGOTIATION
Aditya U RoysterFranceAsiya Javayant QUALIFIED
Adams P PoquetteUnited KingdomStephen Shaw RENEWAL
Jennifer K GauchoBrazilIoni Bowcher UNQUALIFIED
Antonio G ShinkoCanadaAmy Elsner UNQUALIFIED
Jeanfrancois R FerenczItalyXuxue Feng NEGOTIATION
Emily Z AmigonAustraliaIvan Magalhaes PROPOSAL
Alejandro E NickaGermanyAsiya Javayant RENEWAL
Frozen Columns
Name
Rodrigues F Inouye
Kadeem K Ruta
Octavia P Figeroa
Wickens C Kolmetz
Aruna H Perin
Deepesh Z Saylors
Deepesh I Schemmer
Kadeem H Kolmetz
Izzy T Tollner
Jefferson I Flosi
Stacey M Tollner
Emily K Amigon
Misaki H Malet
Nicolas Q Ferencz
Nicolas D Chui
Jennifer A Bowley
Maisha W Perin
Ashley L Briddick
Darci Q Butt
Johnson Q Maclead
Munro O Schemmer
Maisha J Gillian
Mujtaba E Nestle
Antonio X Caldarera
Kadeem K Ostrosky
Chavez X Dilliard
Munro Q Shinko
Rodrigues I Maclead
Jones I Vocelka
Stacey X Royster
Sinclair D Gillian
Morrow N Briddick
Sinclair T Dilliard
Mayumi J Sergi
Maria X Sergi
Silvio N Darakjy
Ashley P Garufi
Aika U Dilliard
Maria B Campain
Murillo R Butt
Salvatore D Glick
Faith U Doe
Kaitlin V Slusarski
David R Campain
Mujtaba V Wieser
Sinclair X Darakjy
Mujtaba H Perin
Jones A Ruta
Jeanfrancois Y Sergi
Darci S Sergi
IdCountryDate
1000Australia2026-07-13
1001Russia2026-07-04
1002India2026-07-03
1003Brazil2026-07-10
1004Brazil2026-06-30
1005Japan2026-07-12
1006Australia2026-07-18
1007Canada2026-06-30
1008Spain2026-07-16
1009Russia2026-07-05
1010Russia2026-07-03
1011Spain2026-07-12
1012Russia2026-07-10
1013India2026-07-04
1014Brazil2026-07-16
1015Australia2026-07-15
1016Spain2026-07-23
1017France2026-06-30
1018India2026-07-20
1019India2026-07-03
1020Italy2026-07-24
1021Argentina2026-07-26
1022France2026-07-08
1023United Kingdom2026-07-17
1024Japan2026-07-17
1025Brazil2026-07-19
1026France2026-07-15
1027Spain2026-07-23
1028Germany2026-07-10
1029Japan2026-06-30
1030Brazil2026-07-23
1031Canada2026-07-26
1032Brazil2026-07-03
1033Japan2026-07-07
1034Argentina2026-07-16
1035Japan2026-07-10
1036Italy2026-07-20
1037Russia2026-07-23
1038Brazil2026-07-24
1039Australia2026-07-17
1040Italy2026-06-30
1041United Kingdom2026-07-08
1042Germany2026-06-29
1043Italy2026-07-13
1044India2026-06-29
1045United Kingdom2026-07-20
1046India2026-07-26
1047Brazil2026-07-22
1048United Kingdom2026-07-07
1049France2026-07-09

On-Demand Data

NameIdCountryDate
Julie W Garufi1000Italy2026-07-19
Salvatore G Venere1001Canada2026-07-14
James E Ruta1002Russia2026-07-16
Kadeem K Wieser1003Argentina2026-06-30
Kaitlin J Chui1004United Kingdom2026-07-13
Mayumi Z Albares1005Canada2026-06-30
Jones C Caldarera1006Canada2026-07-09
Jones X Perin1007Italy2026-07-06
Stacey N Ruta1008Japan2026-07-28
Chavez M Tollner1009Argentina2026-07-11
Smith S Paprocki1010Australia2026-07-04
Stacey S Perin1011Spain2026-07-27
Costa N Tollner1012Canada2026-07-21
Maria X Gaucho1013Argentina2026-07-10
Smith O Venere1014Russia2026-07-10
Darci B Bowley1015France2026-07-22
Juan E Bowley1016Japan2026-07-25
Sinclair Z Doe1017Germany2026-07-03
Mujtaba N Dilliard1018Japan2026-07-28
Johnson C Butt1019Argentina2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco Q WhobreyRussiaXuxue Feng NEW
Tony L WieserBrazilAnna Fali NEGOTIATION
Jefferson T PoquetteRussiaBernardo Dominic UNQUALIFIED
Maisha J IturbideSpainIvan Magalhaes NEGOTIATION
Munro O RutaRussiaAsiya Javayant RENEWAL
Jefferson F VocelkaItalyIoni Bowcher UNQUALIFIED
Salvatore B IturbideRussiaIvan Magalhaes PROPOSAL
Darci F WhobreyJapanAnna Fali NEGOTIATION
Faith K RimSpainElwin Sharvill NEGOTIATION
Julie G GauchoUnited KingdomIoni Bowcher NEGOTIATION
Cody W KolmetzItalyAmy Elsner PROPOSAL
Alejandro P NestleFranceIoni Bowcher QUALIFIED
Tony O TollnerIndiaXuxue Feng RENEWAL
Murillo S MarrierSpainIoni Bowcher PROPOSAL
Salvatore J BriddickItalyXuxue Feng RENEWAL
Antonio P StockhamBrazilBernardo Dominic QUALIFIED
Clifford B SergiItalyBernardo Dominic NEW
Rodrigues H OstroskyArgentinaIoni Bowcher NEW
Alejandro D CampainJapanElwin Sharvill QUALIFIED
Costa O NickaJapanOnyama Limba NEGOTIATION
Juan D WaycottAustraliaStephen Shaw UNQUALIFIED
Chavez L SaylorsArgentinaOnyama Limba PROPOSAL
Nicolas C ChuiRussiaElwin Sharvill QUALIFIED
Isabel V MarrierSpainBernardo Dominic QUALIFIED
David Q DilliardUnited KingdomIoni Bowcher RENEWAL
Maria Q KolmetzRussiaStephen Shaw NEW
Misaki X ChuiIndiaXuxue Feng PROPOSAL
Isabel H AmigonRussiaIvan Magalhaes QUALIFIED
Johnson Q MaletFranceOnyama Limba NEW
Francesco D SchemmerItalyElwin Sharvill UNQUALIFIED
Leja O FlosiArgentinaIoni Bowcher NEGOTIATION
Jeanfrancois M RulapaughIndiaStephen Shaw UNQUALIFIED
Francesco U StensethArgentinaAnna Fali NEGOTIATION
Faith S OldroydItalyIoni Bowcher RENEWAL
Claire Q MaletCanadaElwin Sharvill PROPOSAL
Kaitlin F GlickFranceBernardo Dominic PROPOSAL
Maria U StockhamArgentinaStephen Shaw PROPOSAL
Maisha P WaycottArgentinaXuxue Feng UNQUALIFIED
Julie U KuskoRussiaXuxue Feng QUALIFIED
Faith E AlbaresGermanyAnna Fali RENEWAL

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