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
Darci O WaycottBrazilIvan Magalhaes PROPOSAL
Salvatore D DarakjyAustraliaElwin Sharvill PROPOSAL
Rodrigues B DilliardCanadaStephen Shaw PROPOSAL
Jefferson E GarufiFranceIoni Bowcher UNQUALIFIED
Aditya T KolmetzBrazilAsiya Javayant NEW
Munro V TollnerJapanIoni Bowcher RENEWAL
Munro W ButtUnited KingdomIoni Bowcher NEW
Octavia O ShinkoJapanAsiya Javayant UNQUALIFIED
Costa U OstroskyBrazilOnyama Limba UNQUALIFIED
Antonio B CaudyRussiaAmy Elsner RENEWAL
Julie P AlbaresSpainIoni Bowcher NEGOTIATION
Chavez Z PaprockiUnited KingdomIoni Bowcher RENEWAL
Octavia Z NestleIndiaBernardo Dominic NEW
Maria Y AlbaresArgentinaStephen Shaw UNQUALIFIED
Deepesh D AmigonItalyAmy Elsner UNQUALIFIED
Mayumi G SergiSpainAsiya Javayant PROPOSAL
Murillo O PaprockiItalyAnna Fali QUALIFIED
Aditya M WhobreyIndiaElwin Sharvill PROPOSAL
Smith B CampainAustraliaElwin Sharvill QUALIFIED
Jones X GillianAustraliaXuxue Feng NEW
Aruna W WhobreyUnited KingdomXuxue Feng NEGOTIATION
Maria E BologniaGermanyAmy Elsner NEGOTIATION
Juan C InouyeRussiaIvan Magalhaes UNQUALIFIED
Cody I OldroydFranceIoni Bowcher PROPOSAL
Alejandro G FlosiIndiaIvan Magalhaes PROPOSAL
Adams J PaprockiArgentinaAsiya Javayant PROPOSAL
Salvatore O KolmetzCanadaAmy Elsner UNQUALIFIED
Murillo K WieserFranceBernardo Dominic NEW
Isabel N TollnerUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer F ButtRussiaAmy Elsner NEW
Jones A GarufiIndiaXuxue Feng QUALIFIED
Maisha N BologniaRussiaBernardo Dominic PROPOSAL
Aika V RutaAustraliaXuxue Feng PROPOSAL
Kadeem V VocelkaItalyStephen Shaw RENEWAL
Juan R RulapaughSpainBernardo Dominic NEGOTIATION
Aruna X CaldareraJapanIvan Magalhaes UNQUALIFIED
Jefferson T StensethUnited KingdomOnyama Limba NEW
Darci M MarrierSpainAnna Fali NEW
James R MarrierGermanyIvan Magalhaes NEW
Juan F CaudyIndiaAnna Fali RENEWAL
Maria D PaprockiSpainIoni Bowcher NEGOTIATION
Arvin K VenereArgentinaStephen Shaw QUALIFIED
Jeanfrancois J VocelkaAustraliaAnna Fali QUALIFIED
Jennifer U MaletGermanyStephen Shaw NEW
Silvio F ShinkoItalyElwin Sharvill QUALIFIED
Ivar O SergiCanadaAmy Elsner UNQUALIFIED
Nicolas G MaletGermanyOnyama Limba RENEWAL
Antonio W ButtRussiaAmy Elsner NEGOTIATION
Kaitlin Y StockhamIndiaIvan Magalhaes PROPOSAL
Clifford R AlbaresGermanyBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Antonio Q NickaJapanAmy Elsner UNQUALIFIED
Leja L ShinkoArgentinaElwin Sharvill NEW
Ricardo T PerinIndiaIoni Bowcher QUALIFIED
Jennifer D MorascaCanadaStephen Shaw RENEWAL
Mayumi G TollnerAustraliaElwin Sharvill RENEWAL
Jeanfrancois K ButtIndiaElwin Sharvill UNQUALIFIED
Deepesh L MaletIndiaAnna Fali PROPOSAL
Silvio W BriddickArgentinaStephen Shaw UNQUALIFIED
Silvio R GlickSpainAmy Elsner NEW
Izzy L RutaGermanyBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin B SaylorsRussia2026-06-18Rangoni Of Florence UNQUALIFIED35Ivan Magalhaes
1001Sinclair C DoeUnited Kingdom2026-06-21Dorl, James J Esq RENEWAL62Anna Fali
1002Jefferson X VenereJapan2026-07-03Printing Dimensions UNQUALIFIED66Asiya Javayant
1003Juan S ButtUnited Kingdom2026-06-25Chanay, Jeffrey A Esq NEW54Onyama Limba
1004Octavia X FerenczJapan2026-07-06Commercial Press UNQUALIFIED48Ivan Magalhaes
1005Nicolas N PoquetteCanada2026-06-27Chemel, James L Cpa NEGOTIATION46Asiya Javayant
1006Kaitlin E GarufiGermany2026-06-18Rousseaux, Michael Esq NEGOTIATION70Ioni Bowcher
1007Rodrigues P BriddickIndia2026-06-25Benton, John B Jr QUALIFIED53Anna Fali
1008Jeanfrancois X VocelkaItaly2026-06-27Buckley Miller Wright QUALIFIED2Stephen Shaw
1009Jefferson D BowleyJapan2026-07-06Chanay, Jeffrey A Esq QUALIFIED62Amy Elsner
1010Clifford B RutaArgentina2026-06-21Printing Dimensions PROPOSAL48Stephen Shaw
1011Aruna E FlosiRussia2026-07-07Rangoni Of Florence RENEWAL39Amy Elsner
1012Munro J RoysterItaly2026-06-30Dorl, James J Esq QUALIFIED22Anna Fali
1013Rodrigues F StockhamFrance2026-06-19Commercial Press NEGOTIATION40Bernardo Dominic
1014Aruna G PaprockiItaly2026-07-04Dorl, James J Esq NEGOTIATION53Ivan Magalhaes
1015Munro Q RutaIndia2026-07-07Rangoni Of Florence NEW52Amy Elsner
1016Emily V MaletBrazil2026-06-26Chanay, Jeffrey A Esq RENEWAL43Elwin Sharvill
1017Ivar G GillianArgentina2026-07-09Feiner Bros QUALIFIED58Xuxue Feng
1018Adams L RulapaughBrazil2026-06-20Feiner Bros QUALIFIED55Bernardo Dominic
1019Ashley V NickaFrance2026-07-03Buckley Miller Wright UNQUALIFIED92Amy Elsner
1020Kaitlin F DarakjyCanada2026-07-12Chemel, James L Cpa RENEWAL14Stephen Shaw
1021Kadeem D CaldareraCanada2026-07-13Feltz Printing Service UNQUALIFIED34Ioni Bowcher
1022Antonio L ButtJapan2026-07-02Rangoni Of Florence QUALIFIED9Bernardo Dominic
1023Juan I OstroskyJapan2026-06-29King, Christopher A Esq PROPOSAL17Ioni Bowcher
1024James O ChuiFrance2026-07-10Commercial Press UNQUALIFIED98Asiya Javayant
1025Emily R AlbaresAustralia2026-07-14Benton, John B Jr NEGOTIATION6Amy Elsner
1026Jeanfrancois E ShinkoGermany2026-07-15Printing Dimensions QUALIFIED46Anna Fali
1027Mayumi Z PoquetteIndia2026-07-05Rangoni Of Florence PROPOSAL2Anna Fali
1028Munro F FerenczRussia2026-07-01Benton, John B Jr NEW54Onyama Limba
1029Misaki R SaylorsIndia2026-07-14Feltz Printing Service QUALIFIED67Amy Elsner
1030Claire H VocelkaIndia2026-07-10Chemel, James L Cpa NEGOTIATION33Xuxue Feng
1031Octavia N CaudyAustralia2026-07-07Feiner Bros QUALIFIED40Ivan Magalhaes
1032Julie T GlickJapan2026-06-22Rangoni Of Florence UNQUALIFIED90Asiya Javayant
1033Isabel H ButtItaly2026-07-03Chapman, Ross E Esq NEGOTIATION40Asiya Javayant
1034Stacey O MarrierArgentina2026-07-05Buckley Miller Wright NEW23Bernardo Dominic
1035Murillo V MaletRussia2026-07-02Truhlar And Truhlar Attys PROPOSAL13Bernardo Dominic
1036Jeanfrancois Q PaprockiItaly2026-06-29Commercial Press NEW76Anna Fali
1037Johnson Y CaudyRussia2026-07-15Chapman, Ross E Esq RENEWAL2Xuxue Feng
1038Murillo I MaletGermany2026-06-25Printing Dimensions NEGOTIATION86Anna Fali
1039Ivar K AmigonArgentina2026-06-26Chemel, James L Cpa UNQUALIFIED98Elwin Sharvill
1040Faith B VenereArgentina2026-07-02Rousseaux, Michael Esq NEW60Elwin Sharvill
1041Leon U MacleadAustralia2026-07-01King, Christopher A Esq QUALIFIED47Elwin Sharvill
1042Jefferson Y FlosiJapan2026-06-30Truhlar And Truhlar Attys NEW35Bernardo Dominic
1043Jones O NestleSpain2026-07-15Feiner Bros RENEWAL17Onyama Limba
1044Misaki K RoysterSpain2026-06-29Chanay, Jeffrey A Esq NEW21Elwin Sharvill
1045Darci G FerenczArgentina2026-07-15Commercial Press NEGOTIATION23Onyama Limba
1046Jeanfrancois T IturbideIndia2026-06-30Benton, John B Jr PROPOSAL29Ioni Bowcher
1047Julie C InouyeCanada2026-06-30Dorl, James J Esq NEW11Amy Elsner
1048Emily O RoysterRussia2026-07-01Morlong Associates UNQUALIFIED9Ioni Bowcher
1049Ashley Y InouyeCanada2026-07-04Chemel, James L Cpa NEGOTIATION5Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Stacey X PoquetteCanadaXuxue Feng NEW
Chavez Y BowleyArgentinaAsiya Javayant RENEWAL
Greenwood C RimCanadaAnna Fali QUALIFIED
Isabel B RoysterIndiaIoni Bowcher NEGOTIATION
Jennifer E GarufiFranceOnyama Limba UNQUALIFIED
Mayumi N WhobreyIndiaStephen Shaw QUALIFIED
Nicolas H RutaCanadaOnyama Limba QUALIFIED
James Z VenereArgentinaAsiya Javayant PROPOSAL
Stacey K BologniaFranceStephen Shaw UNQUALIFIED
Munro R VenereItalyXuxue Feng NEW
Silvio A DarakjyIndiaAsiya Javayant RENEWAL
Chavez F GlickIndiaAsiya Javayant PROPOSAL
Deepesh Z SergiCanadaIvan Magalhaes RENEWAL
Faith Y SaylorsCanadaOnyama Limba NEGOTIATION
Aruna O BologniaBrazilElwin Sharvill PROPOSAL
Cody W ChuiItalyAsiya Javayant QUALIFIED
Antonio G ShinkoSpainIoni Bowcher RENEWAL
Francesco D MaletAustraliaElwin Sharvill NEGOTIATION
Leon M ShinkoCanadaElwin Sharvill UNQUALIFIED
Adams P FerenczGermanyXuxue Feng QUALIFIED
Faith O DarakjyCanadaIvan Magalhaes NEW
Alejandro H BriddickBrazilOnyama Limba QUALIFIED
Munro D RimRussiaStephen Shaw UNQUALIFIED
Arvin K NestleBrazilElwin Sharvill NEW
Murillo C NickaFranceBernardo Dominic PROPOSAL
Kadeem U MacleadCanadaIvan Magalhaes NEGOTIATION
Aditya K RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Chavez L BologniaGermanyIoni Bowcher UNQUALIFIED
Ricardo A BriddickGermanyElwin Sharvill UNQUALIFIED
Aika B PerinArgentinaXuxue Feng NEGOTIATION
Francesco O GauchoCanadaStephen Shaw QUALIFIED
Emily V IturbideCanadaAsiya Javayant QUALIFIED
Kadeem D VenereRussiaAsiya Javayant RENEWAL
Ivar Z SergiBrazilAsiya Javayant QUALIFIED
Nicolas D OldroydJapanXuxue Feng NEW
Aika X WhobreyCanadaIvan Magalhaes QUALIFIED
Alejandro B AmigonJapanXuxue Feng NEW
Juan X SergiRussiaElwin Sharvill NEGOTIATION
Stacey W AmigonIndiaAmy Elsner QUALIFIED
Nicolas S CampainAustraliaAsiya Javayant PROPOSAL
James G VenereSpainAsiya Javayant NEGOTIATION
Chavez S DilliardCanadaStephen Shaw RENEWAL
David Y GarufiItalyElwin Sharvill UNQUALIFIED
Claire W CaudyCanadaStephen Shaw PROPOSAL
Rodrigues A WaycottSpainAnna Fali NEGOTIATION
Murillo L OldroydIndiaStephen Shaw NEGOTIATION
Julie J DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Misaki D MorascaBrazilAmy Elsner NEW
Clifford T InouyeItalyIvan Magalhaes UNQUALIFIED
Octavia W PaprockiItalyXuxue Feng QUALIFIED
Frozen Columns
Name
Mayumi T Shinko
Octavia Z Foller
Cody F Rulapaugh
Stacey I Caldarera
Johnson Z Figeroa
Leja O Waycott
Arvin L Figeroa
Cody Z Inouye
Darci P Briddick
Rodrigues E Shinko
Clifford R Maclead
Jeanfrancois B Stenseth
Arvin Z Waycott
Silvio J Vocelka
Antonio Q Amigon
Wickens M Iturbide
Kadeem Y Bolognia
Chavez D Ostrosky
Wickens Y Flosi
Emily F Waycott
David U Waycott
Aika K Stockham
Julie R Caudy
Silvio X Shinko
Octavia S Ruta
Aditya K Saylors
Aruna U Butt
Deepesh S Iturbide
Smith D Nestle
Juan P Glick
Kadeem D Wieser
Greenwood A Ruta
Mayumi Z Schemmer
Ashley H Ostrosky
James X Morasca
Mayumi Z Caudy
Chavez V Butt
Octavia G Doe
Kadeem F Ferencz
Greenwood H Butt
Morrow W Rim
Ricardo K Gaucho
Murillo R Ferencz
Darci R Nicka
Leon W Caudy
Mayumi C Gillian
Sinclair H Tollner
Tony W Bowley
Stacey F Doe
Arvin J Royster
IdCountryDate
1000Japan2026-06-19
1001United Kingdom2026-07-12
1002United Kingdom2026-06-23
1003Canada2026-06-19
1004Argentina2026-06-22
1005Spain2026-06-25
1006France2026-07-15
1007France2026-07-07
1008United Kingdom2026-06-24
1009Spain2026-06-25
1010United Kingdom2026-07-06
1011Brazil2026-07-06
1012Argentina2026-07-07
1013Brazil2026-07-08
1014France2026-07-04
1015Argentina2026-07-08
1016India2026-06-26
1017Canada2026-06-21
1018Italy2026-07-08
1019Spain2026-07-09
1020United Kingdom2026-06-24
1021Germany2026-07-16
1022Italy2026-07-12
1023France2026-06-18
1024France2026-06-26
1025Italy2026-06-28
1026Canada2026-06-27
1027Argentina2026-07-02
1028Italy2026-07-05
1029Canada2026-06-26
1030Russia2026-07-08
1031France2026-06-27
1032France2026-06-24
1033Australia2026-06-20
1034Argentina2026-06-23
1035Argentina2026-06-25
1036Brazil2026-07-14
1037India2026-06-20
1038United Kingdom2026-07-17
1039India2026-07-08
1040Brazil2026-07-15
1041Argentina2026-07-04
1042Japan2026-06-22
1043France2026-07-10
1044Spain2026-06-28
1045Japan2026-07-16
1046Spain2026-07-13
1047Italy2026-07-14
1048Spain2026-06-24
1049Brazil2026-06-19

On-Demand Data

NameIdCountryDate
Misaki T Figeroa1000United Kingdom2026-06-25
Claire U Schemmer1001Italy2026-06-29
Mayumi N Foller1002Italy2026-07-13
Juan C Rim1003United Kingdom2026-07-13
Aditya T Vocelka1004Italy2026-07-10
Chavez D Malet1005Argentina2026-07-02
Nicolas D Figeroa1006Russia2026-07-01
Cody G Morasca1007Spain2026-06-27
Chavez I Butt1008Australia2026-06-20
Nicolas Y Amigon1009Japan2026-06-25
Isabel S Briddick1010Brazil2026-06-21
Maisha U Waycott1011Germany2026-06-26
Emily Q Rim1012Spain2026-07-17
Clifford T Inouye1013Argentina2026-07-08
Leon O Foller1014Italy2026-07-07
Greenwood A Vocelka1015Brazil2026-07-16
Emily Q Bolognia1016Germany2026-07-06
Ashley H Caudy1017Japan2026-07-17
Ivar H Nestle1018France2026-07-17
Maria W Foller1019India2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika W PerinBrazilAnna Fali NEW
Emily M WieserRussiaIoni Bowcher RENEWAL
Chavez I AlbaresRussiaXuxue Feng PROPOSAL
Wickens B ChuiFranceAmy Elsner NEGOTIATION
Sinclair O DarakjyRussiaAnna Fali QUALIFIED
Wickens Z PaprockiArgentinaAnna Fali NEW
Johnson N MaletUnited KingdomAnna Fali QUALIFIED
Ivar O WaycottRussiaBernardo Dominic NEGOTIATION
Jefferson Y IturbideAustraliaAsiya Javayant RENEWAL
Ivar F WaycottIndiaStephen Shaw RENEWAL
Stacey X MorascaUnited KingdomXuxue Feng UNQUALIFIED
Salvatore C VocelkaItalyElwin Sharvill RENEWAL
Smith R GauchoArgentinaOnyama Limba RENEWAL
Leja D OstroskyGermanyAmy Elsner NEGOTIATION
Munro M ButtSpainXuxue Feng UNQUALIFIED
Kadeem I FigeroaBrazilAmy Elsner NEW
Alejandro A CaldareraGermanyOnyama Limba UNQUALIFIED
Smith R OstroskyBrazilOnyama Limba NEGOTIATION
Isabel U SchemmerSpainStephen Shaw QUALIFIED
Jennifer X BriddickBrazilXuxue Feng PROPOSAL
Tony Z InouyeFranceIoni Bowcher NEW
Morrow X CampainItalyOnyama Limba PROPOSAL
Leon E NickaIndiaIoni Bowcher NEGOTIATION
Maisha I KuskoAustraliaXuxue Feng UNQUALIFIED
Deepesh X RutaBrazilStephen Shaw NEW
Isabel M KolmetzArgentinaAsiya Javayant RENEWAL
Emily T StensethSpainAnna Fali QUALIFIED
Leon W GarufiFranceBernardo Dominic PROPOSAL
Misaki Z WhobreyCanadaStephen Shaw QUALIFIED
Jeanfrancois B VenereRussiaAnna Fali RENEWAL
Costa W GlickJapanXuxue Feng NEGOTIATION
Wickens P OldroydAustraliaBernardo Dominic RENEWAL
Mayumi B FigeroaIndiaIvan Magalhaes UNQUALIFIED
Jennifer P BowleyAustraliaIoni Bowcher UNQUALIFIED
Alejandro J SlusarskiAustraliaStephen Shaw QUALIFIED
Emily X InouyeAustraliaXuxue Feng RENEWAL
Jennifer N SergiGermanyOnyama Limba NEW
Mujtaba Z GlickCanadaElwin Sharvill RENEWAL
Salvatore M FigeroaFranceAnna Fali QUALIFIED
Misaki K PerinSpainAmy Elsner 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>