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
Jefferson T CampainCanadaStephen Shaw PROPOSAL
Chavez S MaletArgentinaAnna Fali QUALIFIED
Jennifer F RulapaughUnited KingdomAmy Elsner NEGOTIATION
Mujtaba K NestleCanadaXuxue Feng PROPOSAL
Arvin C MaletAustraliaAnna Fali RENEWAL
Julie C AlbaresAustraliaXuxue Feng QUALIFIED
Salvatore H FollerFranceElwin Sharvill NEGOTIATION
Stacey D ButtFranceAmy Elsner PROPOSAL
Darci K GarufiAustraliaXuxue Feng PROPOSAL
Aruna B OstroskyGermanyIoni Bowcher UNQUALIFIED
Costa K MaletBrazilXuxue Feng NEGOTIATION
Maria F FollerArgentinaAmy Elsner QUALIFIED
Ashley T PoquetteCanadaAsiya Javayant RENEWAL
Kadeem J VocelkaBrazilOnyama Limba QUALIFIED
Octavia P RutaRussiaElwin Sharvill RENEWAL
Jennifer I KuskoFranceIoni Bowcher RENEWAL
Darci E NickaItalyOnyama Limba NEW
Jennifer J FigeroaSpainAnna Fali PROPOSAL
Johnson I BriddickSpainElwin Sharvill NEGOTIATION
Costa B DarakjyUnited KingdomElwin Sharvill NEW
Jefferson H IturbideGermanyBernardo Dominic PROPOSAL
Deepesh E KuskoFranceIvan Magalhaes QUALIFIED
Cody S AlbaresIndiaOnyama Limba PROPOSAL
Clifford Z SchemmerCanadaAmy Elsner RENEWAL
Nicolas V BologniaSpainBernardo Dominic QUALIFIED
Jeanfrancois E VocelkaRussiaAnna Fali QUALIFIED
Sinclair S OldroydCanadaAnna Fali RENEWAL
Kadeem S StensethItalyIvan Magalhaes UNQUALIFIED
Mujtaba B ChuiUnited KingdomXuxue Feng QUALIFIED
Rodrigues S StensethBrazilElwin Sharvill UNQUALIFIED
Nicolas S FigeroaFranceAnna Fali PROPOSAL
Aika N RutaJapanStephen Shaw NEGOTIATION
Jones F CaldareraSpainIvan Magalhaes UNQUALIFIED
Mayumi J MacleadRussiaOnyama Limba RENEWAL
Emily T NestleCanadaXuxue Feng RENEWAL
Chavez Q GauchoAustraliaAmy Elsner QUALIFIED
Cody B SchemmerItalyAsiya Javayant NEGOTIATION
Munro O AmigonSpainBernardo Dominic RENEWAL
Greenwood S GauchoItalyIvan Magalhaes RENEWAL
Ashley R FerenczIndiaElwin Sharvill UNQUALIFIED
Octavia Y SchemmerFranceIoni Bowcher PROPOSAL
Jones T RutaFranceIvan Magalhaes PROPOSAL
Claire E RulapaughFranceAnna Fali UNQUALIFIED
Jones L CampainCanadaIvan Magalhaes RENEWAL
Rodrigues T FerenczAustraliaAnna Fali NEW
Alejandro I PoquetteSpainIoni Bowcher PROPOSAL
Adams Q ShinkoIndiaXuxue Feng RENEWAL
Maisha V CampainItalyXuxue Feng UNQUALIFIED
Ricardo S StensethArgentinaAnna Fali PROPOSAL
Mayumi G FerenczCanadaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin H KuskoIndiaIoni Bowcher RENEWAL
Wickens O MaletItalyBernardo Dominic UNQUALIFIED
Juan J RimFranceAmy Elsner PROPOSAL
Leon F GauchoGermanyAnna Fali QUALIFIED
Chavez V FollerFranceAsiya Javayant QUALIFIED
Maria C BowleyIndiaIoni Bowcher NEGOTIATION
Francesco M DarakjyGermanyAnna Fali NEW
Ivar R BologniaJapanElwin Sharvill RENEWAL
Kadeem M FigeroaAustraliaStephen Shaw UNQUALIFIED
Isabel D FerenczBrazilOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David X ButtFrance2026-07-28Feiner Bros PROPOSAL43Anna Fali
1001Kaitlin P NestleFrance2026-08-01Dorl, James J Esq NEGOTIATION6Stephen Shaw
1002Juan I OstroskyItaly2026-08-20Commercial Press NEW3Stephen Shaw
1003Alejandro A SlusarskiIndia2026-08-18Feiner Bros PROPOSAL87Bernardo Dominic
1004James Q FerenczIndia2026-07-30Chapman, Ross E Esq NEGOTIATION38Ioni Bowcher
1005Aika H CaldareraAustralia2026-08-22Feiner Bros QUALIFIED30Ioni Bowcher
1006Aika N MarrierIndia2026-08-12Chemel, James L Cpa PROPOSAL74Bernardo Dominic
1007Faith Y GillianIndia2026-08-21Rousseaux, Michael Esq NEW95Amy Elsner
1008Maisha U WieserArgentina2026-08-15Morlong Associates UNQUALIFIED76Amy Elsner
1009Aruna H ButtIndia2026-07-29Commercial Press UNQUALIFIED65Ioni Bowcher
1010Aika J WhobreyCanada2026-08-07Feiner Bros RENEWAL59Ioni Bowcher
1011Jeanfrancois X ShinkoBrazil2026-08-14Chapman, Ross E Esq UNQUALIFIED14Bernardo Dominic
1012Clifford R RutaIndia2026-08-04Dorl, James J Esq NEW65Xuxue Feng
1013Mayumi B MaletCanada2026-08-15Feltz Printing Service NEGOTIATION26Elwin Sharvill
1014Leja F MacleadBrazil2026-08-01Feltz Printing Service NEGOTIATION33Anna Fali
1015Emily O GauchoUnited Kingdom2026-08-05Chapman, Ross E Esq NEGOTIATION65Stephen Shaw
1016Aruna F DoeIndia2026-07-30King, Christopher A Esq RENEWAL50Onyama Limba
1017Leja Y SaylorsFrance2026-08-11Rangoni Of Florence QUALIFIED44Elwin Sharvill
1018Jones S MaletArgentina2026-08-06Truhlar And Truhlar Attys QUALIFIED8Amy Elsner
1019Wickens V MacleadUnited Kingdom2026-08-17Buckley Miller Wright QUALIFIED0Elwin Sharvill
1020Johnson T CaldareraIndia2026-08-13Printing Dimensions NEGOTIATION32Stephen Shaw
1021Misaki A OstroskyBrazil2026-08-02Chanay, Jeffrey A Esq QUALIFIED50Stephen Shaw
1022Arvin H BologniaBrazil2026-08-23Chanay, Jeffrey A Esq QUALIFIED4Ioni Bowcher
1023Julie N VocelkaArgentina2026-08-20Chapman, Ross E Esq NEGOTIATION94Elwin Sharvill
1024Claire Z RimIndia2026-08-06King, Christopher A Esq NEW32Onyama Limba
1025Greenwood W RutaBrazil2026-08-26Chemel, James L Cpa NEGOTIATION57Bernardo Dominic
1026Chavez M CaldareraSpain2026-08-15Feiner Bros QUALIFIED41Anna Fali
1027Jefferson P RimBrazil2026-08-16Feltz Printing Service QUALIFIED94Xuxue Feng
1028David B InouyeAustralia2026-08-14Truhlar And Truhlar Attys NEGOTIATION28Ioni Bowcher
1029Nicolas D CampainCanada2026-08-04Rangoni Of Florence RENEWAL63Amy Elsner
1030Jones A AlbaresAustralia2026-08-18Feiner Bros PROPOSAL19Asiya Javayant
1031Nicolas B BologniaUnited Kingdom2026-08-11Printing Dimensions RENEWAL81Ivan Magalhaes
1032Morrow B ShinkoCanada2026-08-25Buckley Miller Wright UNQUALIFIED18Onyama Limba
1033Juan S CampainBrazil2026-08-18Feiner Bros NEW74Stephen Shaw
1034Claire C GlickBrazil2026-08-25King, Christopher A Esq NEGOTIATION72Asiya Javayant
1035Ivar D SlusarskiBrazil2026-08-03Chemel, James L Cpa PROPOSAL20Bernardo Dominic
1036Munro F VocelkaArgentina2026-08-21Feiner Bros NEGOTIATION33Amy Elsner
1037David T ChuiCanada2026-08-21Chanay, Jeffrey A Esq PROPOSAL77Onyama Limba
1038Mayumi R NickaSpain2026-08-25Buckley Miller Wright RENEWAL12Xuxue Feng
1039Salvatore V BriddickArgentina2026-08-11Morlong Associates QUALIFIED25Xuxue Feng
1040Smith H RimGermany2026-07-31Chapman, Ross E Esq PROPOSAL13Stephen Shaw
1041Claire L PoquetteItaly2026-08-13King, Christopher A Esq PROPOSAL89Ioni Bowcher
1042Cody N StensethJapan2026-08-18Rangoni Of Florence QUALIFIED16Stephen Shaw
1043James I CaldareraSpain2026-08-18Morlong Associates UNQUALIFIED82Xuxue Feng
1044Nicolas G DilliardAustralia2026-08-14Feltz Printing Service PROPOSAL89Asiya Javayant
1045Jennifer W GlickCanada2026-08-17Chemel, James L Cpa UNQUALIFIED97Ivan Magalhaes
1046Deepesh I StensethUnited Kingdom2026-08-24Dorl, James J Esq RENEWAL13Ioni Bowcher
1047Nicolas U FerenczCanada2026-08-11Feiner Bros RENEWAL62Amy Elsner
1048Jefferson Q MarrierArgentina2026-08-25Chemel, James L Cpa QUALIFIED39Asiya Javayant
1049Silvio I MarrierSpain2026-08-24Feltz Printing Service UNQUALIFIED89Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Costa V ChuiItalyXuxue Feng NEW
Nicolas A BowleyItalyOnyama Limba NEW
Emily I IturbideGermanyIoni Bowcher PROPOSAL
Salvatore X FlosiAustraliaBernardo Dominic PROPOSAL
Darci H SaylorsFranceAmy Elsner NEGOTIATION
Murillo L RimRussiaIvan Magalhaes UNQUALIFIED
Wickens T GauchoGermanyAnna Fali NEW
Chavez Z SlusarskiRussiaIvan Magalhaes QUALIFIED
Greenwood T IturbideArgentinaStephen Shaw NEW
Smith N ChuiRussiaIoni Bowcher PROPOSAL
Francesco T InouyeFranceIoni Bowcher RENEWAL
Jefferson P TollnerUnited KingdomAnna Fali RENEWAL
Murillo U FollerFranceAnna Fali PROPOSAL
Jeanfrancois O KolmetzSpainStephen Shaw QUALIFIED
Sinclair I MacleadJapanElwin Sharvill NEGOTIATION
Costa A GlickJapanAnna Fali PROPOSAL
Aika I FigeroaBrazilAsiya Javayant UNQUALIFIED
Silvio U FerenczRussiaIvan Magalhaes QUALIFIED
Rodrigues C CaudyRussiaAnna Fali NEW
Jefferson L WieserIndiaIoni Bowcher PROPOSAL
Ricardo C OstroskyAustraliaXuxue Feng NEGOTIATION
Nicolas N NickaCanadaBernardo Dominic PROPOSAL
Julie U WieserRussiaBernardo Dominic PROPOSAL
Leon T BowleyGermanyBernardo Dominic NEW
Mujtaba H CaldareraGermanyAsiya Javayant RENEWAL
Johnson O MaletIndiaIoni Bowcher RENEWAL
Salvatore O PaprockiItalyStephen Shaw NEGOTIATION
Munro R RimCanadaElwin Sharvill NEW
Kadeem B InouyeBrazilIoni Bowcher NEW
Aditya D OstroskyFranceElwin Sharvill RENEWAL
Jeanfrancois L RulapaughUnited KingdomAnna Fali UNQUALIFIED
Adams U CaldareraArgentinaAnna Fali NEW
David I CaldareraSpainIvan Magalhaes NEW
Octavia L OstroskyGermanyXuxue Feng PROPOSAL
Mujtaba L SaylorsBrazilOnyama Limba QUALIFIED
Jefferson Z VenereIndiaBernardo Dominic UNQUALIFIED
Greenwood G ChuiAustraliaXuxue Feng QUALIFIED
Jones Y PaprockiJapanBernardo Dominic RENEWAL
Aika X CaldareraFranceXuxue Feng UNQUALIFIED
Silvio V PaprockiBrazilIoni Bowcher NEGOTIATION
Chavez O SlusarskiAustraliaAnna Fali QUALIFIED
Jennifer B MorascaUnited KingdomAnna Fali NEGOTIATION
Tony E RutaRussiaAnna Fali PROPOSAL
Greenwood Y MarrierFranceOnyama Limba RENEWAL
Kadeem W SchemmerAustraliaXuxue Feng NEGOTIATION
Alejandro H VenereUnited KingdomBernardo Dominic PROPOSAL
Ashley N CaudyUnited KingdomAmy Elsner UNQUALIFIED
Aruna A GillianGermanyIoni Bowcher RENEWAL
Nicolas V InouyeCanadaOnyama Limba PROPOSAL
Jeanfrancois L GauchoCanadaXuxue Feng NEGOTIATION
Frozen Columns
Name
Isabel X Albares
Silvio M Foller
Deepesh G Dilliard
Wickens Q Inouye
Jennifer I Whobrey
Jeanfrancois I Maclead
Clifford Y Vocelka
Morrow M Tollner
Murillo B Whobrey
Antonio M Vocelka
Morrow D Garufi
Alejandro Q Paprocki
Smith T Oldroyd
Deepesh E Rim
Salvatore O Figeroa
Ricardo X Ostrosky
Ivar Q Rim
Julie J Wieser
Izzy E Amigon
Emily S Doe
Wickens X Doe
Faith B Foller
Faith G Stockham
Emily Q Sergi
Ashley I Briddick
Isabel G Ruta
Jennifer X Waycott
Maisha X Nestle
Julie G Rulapaugh
Johnson R Sergi
Alejandro O Gillian
Johnson K Schemmer
Adams X Campain
Arvin I Stenseth
Stacey K Gillian
Smith V Royster
Jones S Gillian
Misaki J Amigon
Jones H Waycott
Julie J Rim
Clifford U Nestle
Juan B Kusko
Faith B Foller
Cody V Figeroa
Aditya I Bolognia
Izzy T Dilliard
Emily P Bowley
Francesco Q Iturbide
Salvatore C Bolognia
James L Bolognia
IdCountryDate
1000Japan2026-07-31
1001Australia2026-08-07
1002Italy2026-08-01
1003Australia2026-08-20
1004France2026-08-24
1005Argentina2026-08-10
1006Russia2026-08-07
1007Argentina2026-08-17
1008Australia2026-08-22
1009Argentina2026-08-21
1010Spain2026-08-24
1011Russia2026-08-02
1012Canada2026-08-04
1013Germany2026-07-29
1014Australia2026-07-29
1015Italy2026-08-09
1016Japan2026-08-11
1017India2026-07-28
1018Germany2026-08-07
1019France2026-08-17
1020Brazil2026-08-15
1021Russia2026-08-23
1022Germany2026-08-11
1023Italy2026-08-24
1024Russia2026-08-25
1025Australia2026-08-21
1026United Kingdom2026-08-05
1027France2026-08-03
1028Russia2026-07-31
1029Canada2026-08-13
1030Australia2026-08-10
1031Spain2026-08-23
1032Germany2026-08-16
1033Australia2026-07-31
1034Spain2026-08-15
1035Canada2026-08-05
1036France2026-08-12
1037Argentina2026-08-22
1038Russia2026-07-28
1039Argentina2026-08-18
1040India2026-08-19
1041United Kingdom2026-08-02
1042Italy2026-08-20
1043France2026-08-02
1044Germany2026-08-14
1045Canada2026-08-25
1046Brazil2026-07-29
1047France2026-08-06
1048India2026-08-21
1049United Kingdom2026-08-19

On-Demand Data

NameIdCountryDate
Rodrigues U Amigon1000United Kingdom2026-08-19
Arvin A Caldarera1001Italy2026-08-12
Adams Y Flosi1002Germany2026-08-02
Mayumi M Perin1003India2026-07-28
Ivar W Chui1004Russia2026-08-11
Octavia R Ruta1005India2026-08-15
Maria R Darakjy1006Russia2026-08-06
Maisha W Ferencz1007India2026-08-04
Julie G Inouye1008Germany2026-08-26
Salvatore X Tollner1009Canada2026-08-02
Claire U Maclead1010Argentina2026-08-08
Izzy H Stenseth1011Canada2026-08-16
Aika C Bowley1012India2026-08-16
Salvatore U Tollner1013Germany2026-07-29
Greenwood P Royster1014Russia2026-08-01
Antonio L Amigon1015Russia2026-08-19
Smith M Caudy1016Canada2026-08-10
Maisha D Poquette1017Japan2026-08-25
Julie N Ostrosky1018Spain2026-07-31
Munro S Paprocki1019Argentina2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody I BowleyIndiaOnyama Limba PROPOSAL
Aika F WieserBrazilIoni Bowcher PROPOSAL
Tony G CaudyAustraliaAmy Elsner NEGOTIATION
Emily P OstroskyRussiaBernardo Dominic UNQUALIFIED
Juan S MarrierArgentinaStephen Shaw NEGOTIATION
Nicolas T KuskoSpainBernardo Dominic QUALIFIED
Jeanfrancois K GlickGermanyIvan Magalhaes PROPOSAL
Jeanfrancois A InouyeItalyXuxue Feng QUALIFIED
Clifford I SaylorsAustraliaXuxue Feng UNQUALIFIED
Aditya F PaprockiGermanyBernardo Dominic NEW
Maria C PerinUnited KingdomAnna Fali PROPOSAL
Morrow H SaylorsGermanyXuxue Feng NEW
Mujtaba F DarakjyRussiaAnna Fali PROPOSAL
Nicolas C SlusarskiUnited KingdomAsiya Javayant UNQUALIFIED
Costa Y RimFranceStephen Shaw QUALIFIED
Deepesh X MacleadAustraliaAmy Elsner RENEWAL
Juan T BologniaAustraliaXuxue Feng QUALIFIED
Tony J KolmetzGermanyIvan Magalhaes NEW
Murillo G KolmetzGermanyAmy Elsner QUALIFIED
Morrow Y NestleJapanIvan Magalhaes QUALIFIED
Maria Q PaprockiGermanyBernardo Dominic NEW
Jennifer Z SlusarskiCanadaOnyama Limba NEGOTIATION
James C RoysterIndiaOnyama Limba NEGOTIATION
Clifford W MaletItalyAnna Fali RENEWAL
Antonio X StensethUnited KingdomOnyama Limba PROPOSAL
Morrow A MarrierAustraliaAnna Fali NEGOTIATION
Ivar Z RutaBrazilIoni Bowcher NEW
Mayumi U MaletBrazilIvan Magalhaes UNQUALIFIED
Isabel N SchemmerArgentinaAsiya Javayant RENEWAL
Juan O GlickItalyAnna Fali PROPOSAL
James S StensethCanadaIoni Bowcher NEGOTIATION
Arvin N RoysterUnited KingdomAmy Elsner NEW
Aika J BowleyUnited KingdomIvan Magalhaes RENEWAL
Wickens Z GarufiSpainStephen Shaw NEW
Wickens G InouyeIndiaAsiya Javayant NEW
Cody X OstroskyGermanyElwin Sharvill QUALIFIED
Morrow U CampainJapanOnyama Limba NEGOTIATION
James A FigeroaUnited KingdomAnna Fali RENEWAL
Mujtaba E RulapaughJapanAsiya Javayant PROPOSAL
Francesco L ChuiGermanyAmy Elsner NEW

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