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
Salvatore C AmigonRussiaAnna Fali QUALIFIED
Claire X MarrierRussiaBernardo Dominic PROPOSAL
Jefferson W StensethIndiaIoni Bowcher UNQUALIFIED
Juan O TollnerUnited KingdomElwin Sharvill NEGOTIATION
Jones Y GarufiArgentinaStephen Shaw PROPOSAL
Ashley T DoeSpainAmy Elsner QUALIFIED
Aruna O FigeroaArgentinaOnyama Limba PROPOSAL
Kaitlin X FigeroaArgentinaOnyama Limba NEW
Johnson X NestleGermanyIvan Magalhaes UNQUALIFIED
Kadeem O PerinBrazilAnna Fali NEW
Murillo X GarufiSpainBernardo Dominic NEGOTIATION
Jeanfrancois S FollerUnited KingdomOnyama Limba UNQUALIFIED
Mayumi I StensethGermanyIoni Bowcher UNQUALIFIED
Jennifer S CampainFranceXuxue Feng RENEWAL
Sinclair Q DarakjySpainElwin Sharvill RENEWAL
Salvatore X CaldareraJapanAsiya Javayant UNQUALIFIED
Johnson G NickaUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues M PoquetteFranceIoni Bowcher QUALIFIED
Greenwood A RimSpainXuxue Feng RENEWAL
Murillo G FerenczCanadaIvan Magalhaes PROPOSAL
Silvio R SaylorsAustraliaBernardo Dominic RENEWAL
Silvio O SlusarskiSpainAnna Fali QUALIFIED
Rodrigues U SaylorsGermanyBernardo Dominic RENEWAL
Aditya Y MarrierFranceIoni Bowcher NEW
Isabel P PerinRussiaStephen Shaw NEGOTIATION
Isabel W NestleGermanyAnna Fali RENEWAL
Leon B SaylorsBrazilBernardo Dominic NEW
Sinclair G VocelkaIndiaIvan Magalhaes PROPOSAL
Deepesh L ChuiBrazilAmy Elsner RENEWAL
Jeanfrancois Y DoeUnited KingdomIoni Bowcher PROPOSAL
Maria X CaldareraSpainXuxue Feng PROPOSAL
Aruna K MarrierCanadaBernardo Dominic RENEWAL
Arvin T OstroskyFranceBernardo Dominic RENEWAL
Alejandro R RutaIndiaElwin Sharvill RENEWAL
Aditya T RoysterIndiaAnna Fali QUALIFIED
Antonio E FollerBrazilIoni Bowcher NEGOTIATION
Kaitlin R WaycottSpainElwin Sharvill QUALIFIED
Faith C AmigonItalyAmy Elsner QUALIFIED
Maisha W RimGermanyAnna Fali QUALIFIED
Darci D MorascaIndiaIoni Bowcher RENEWAL
Clifford A SlusarskiGermanyElwin Sharvill RENEWAL
Emily L OstroskyItalyXuxue Feng UNQUALIFIED
Costa G CampainFranceAnna Fali NEW
Emily B SchemmerAustraliaAmy Elsner RENEWAL
Costa L FollerFranceIvan Magalhaes PROPOSAL
Silvio S RulapaughRussiaIvan Magalhaes UNQUALIFIED
Kadeem M InouyeCanadaBernardo Dominic UNQUALIFIED
Clifford X NestleJapanAmy Elsner NEGOTIATION
Morrow K NestleArgentinaStephen Shaw UNQUALIFIED
Ricardo O GlickFranceIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa E ChuiCanadaXuxue Feng PROPOSAL
Mayumi G SaylorsArgentinaStephen Shaw PROPOSAL
Ricardo E RimAustraliaElwin Sharvill NEGOTIATION
Munro Q AlbaresSpainIvan Magalhaes UNQUALIFIED
Arvin V OldroydCanadaOnyama Limba UNQUALIFIED
Aruna N WhobreyIndiaOnyama Limba QUALIFIED
Jeanfrancois G IturbideArgentinaIvan Magalhaes QUALIFIED
Kadeem N GlickIndiaBernardo Dominic RENEWAL
Nicolas W TollnerBrazilStephen Shaw QUALIFIED
Misaki N VenereUnited KingdomOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio X MacleadAustralia2026-08-13Printing Dimensions NEGOTIATION73Ioni Bowcher
1001Arvin Q VocelkaIndia2026-08-10Rousseaux, Michael Esq QUALIFIED82Bernardo Dominic
1002Mujtaba V MaletRussia2026-08-03King, Christopher A Esq NEW7Bernardo Dominic
1003David M SergiRussia2026-07-31Morlong Associates RENEWAL73Elwin Sharvill
1004Clifford J GauchoBrazil2026-07-29Commercial Press UNQUALIFIED9Amy Elsner
1005Maisha C RulapaughBrazil2026-08-04Rangoni Of Florence NEGOTIATION71Ivan Magalhaes
1006Isabel Z TollnerItaly2026-08-15Benton, John B Jr UNQUALIFIED76Elwin Sharvill
1007Izzy O WieserUnited Kingdom2026-07-19Chapman, Ross E Esq PROPOSAL37Bernardo Dominic
1008Ivar Q MacleadFrance2026-08-07Feltz Printing Service UNQUALIFIED19Anna Fali
1009Octavia S DoeItaly2026-07-31Rousseaux, Michael Esq QUALIFIED52Stephen Shaw
1010Arvin V VocelkaAustralia2026-07-25Printing Dimensions UNQUALIFIED13Asiya Javayant
1011Ricardo R CaldareraArgentina2026-08-05Chanay, Jeffrey A Esq UNQUALIFIED74Stephen Shaw
1012Greenwood J NestleUnited Kingdom2026-08-13Chanay, Jeffrey A Esq NEW99Amy Elsner
1013David D StensethCanada2026-08-14Feiner Bros RENEWAL81Onyama Limba
1014Kadeem X WhobreyCanada2026-08-02Commercial Press PROPOSAL1Asiya Javayant
1015Stacey E VenereUnited Kingdom2026-08-16Rangoni Of Florence NEW31Bernardo Dominic
1016Claire C GlickFrance2026-08-04Printing Dimensions NEW74Xuxue Feng
1017Stacey X AlbaresArgentina2026-08-09Feiner Bros PROPOSAL66Stephen Shaw
1018Faith F OstroskyUnited Kingdom2026-07-26Chanay, Jeffrey A Esq UNQUALIFIED7Amy Elsner
1019Juan W DoeCanada2026-07-29Dorl, James J Esq QUALIFIED70Asiya Javayant
1020Rodrigues N OstroskyArgentina2026-08-07Rousseaux, Michael Esq QUALIFIED47Asiya Javayant
1021Maisha U RoysterUnited Kingdom2026-07-20Rousseaux, Michael Esq NEGOTIATION62Onyama Limba
1022Wickens K VocelkaArgentina2026-08-01Feltz Printing Service RENEWAL81Amy Elsner
1023Stacey O VocelkaArgentina2026-08-02Dorl, James J Esq NEW26Onyama Limba
1024Munro Q DarakjySpain2026-08-12Feltz Printing Service PROPOSAL21Amy Elsner
1025Antonio Y ButtItaly2026-08-14King, Christopher A Esq NEW34Amy Elsner
1026Kaitlin X VenereBrazil2026-07-30Printing Dimensions UNQUALIFIED17Anna Fali
1027Kaitlin Q TollnerItaly2026-07-19Rangoni Of Florence QUALIFIED30Anna Fali
1028Alejandro S CaudySpain2026-08-13Morlong Associates QUALIFIED6Xuxue Feng
1029Greenwood M MaletItaly2026-08-06Benton, John B Jr NEW64Elwin Sharvill
1030Salvatore R ShinkoBrazil2026-08-15Buckley Miller Wright NEGOTIATION90Bernardo Dominic
1031Claire P SergiSpain2026-08-08King, Christopher A Esq PROPOSAL38Xuxue Feng
1032Ivar W BologniaBrazil2026-07-26Printing Dimensions PROPOSAL78Anna Fali
1033Ricardo U VenereUnited Kingdom2026-07-19Chemel, James L Cpa NEW19Asiya Javayant
1034Clifford B NickaFrance2026-07-20Feiner Bros UNQUALIFIED27Ioni Bowcher
1035Munro Z DarakjyGermany2026-08-11Chanay, Jeffrey A Esq PROPOSAL71Anna Fali
1036Maria B ButtRussia2026-07-25Chemel, James L Cpa PROPOSAL14Ioni Bowcher
1037Emily B MacleadAustralia2026-07-27Truhlar And Truhlar Attys RENEWAL28Anna Fali
1038Faith R SergiCanada2026-08-12Rangoni Of Florence RENEWAL61Amy Elsner
1039Kadeem K RulapaughArgentina2026-08-10Rousseaux, Michael Esq RENEWAL24Bernardo Dominic
1040Ashley I FollerCanada2026-08-09Printing Dimensions NEGOTIATION21Ivan Magalhaes
1041Jennifer O FerenczAustralia2026-07-21Chanay, Jeffrey A Esq QUALIFIED58Asiya Javayant
1042Francesco Z GauchoJapan2026-08-07Truhlar And Truhlar Attys PROPOSAL79Elwin Sharvill
1043Costa E VocelkaFrance2026-08-04Feltz Printing Service NEGOTIATION18Onyama Limba
1044Aruna A CampainIndia2026-07-27Chanay, Jeffrey A Esq UNQUALIFIED76Onyama Limba
1045Arvin E VocelkaRussia2026-07-22Rangoni Of Florence RENEWAL16Bernardo Dominic
1046Leja B FollerRussia2026-08-01Chapman, Ross E Esq UNQUALIFIED27Anna Fali
1047Aditya F MacleadJapan2026-08-13Chapman, Ross E Esq PROPOSAL11Elwin Sharvill
1048Leon G MacleadUnited Kingdom2026-08-15Feltz Printing Service RENEWAL5Ioni Bowcher
1049Munro B WhobreyUnited Kingdom2026-07-31Feiner Bros UNQUALIFIED39Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Mayumi M ShinkoGermanyElwin Sharvill RENEWAL
Stacey P MaletUnited KingdomAsiya Javayant NEGOTIATION
Deepesh N PaprockiJapanBernardo Dominic NEW
Sinclair V NickaArgentinaOnyama Limba UNQUALIFIED
Costa U ShinkoRussiaXuxue Feng RENEWAL
Jennifer K CaudySpainIvan Magalhaes PROPOSAL
Mayumi M NestleIndiaElwin Sharvill UNQUALIFIED
Jeanfrancois N KuskoFranceElwin Sharvill QUALIFIED
Greenwood V FlosiIndiaAmy Elsner QUALIFIED
Aruna G OstroskyRussiaAmy Elsner NEW
Costa Q CampainBrazilAnna Fali RENEWAL
Darci M AlbaresAustraliaIoni Bowcher NEGOTIATION
Wickens O FigeroaSpainBernardo Dominic QUALIFIED
Jefferson N GillianJapanAsiya Javayant RENEWAL
Julie V MarrierJapanAnna Fali NEW
Darci R GauchoJapanIoni Bowcher NEW
Stacey N OldroydJapanStephen Shaw NEGOTIATION
Salvatore X WieserItalyAmy Elsner NEW
Isabel N RulapaughIndiaXuxue Feng PROPOSAL
Morrow S CaldareraCanadaIoni Bowcher QUALIFIED
Nicolas C PaprockiArgentinaIvan Magalhaes NEGOTIATION
Claire S PaprockiBrazilAnna Fali NEGOTIATION
Juan B WieserGermanyOnyama Limba RENEWAL
James B NickaFranceStephen Shaw NEW
Costa K RutaSpainOnyama Limba UNQUALIFIED
Jennifer B WieserUnited KingdomAmy Elsner NEGOTIATION
Rodrigues A MaletSpainIoni Bowcher NEGOTIATION
Nicolas Q AlbaresJapanStephen Shaw UNQUALIFIED
Francesco W FollerJapanOnyama Limba RENEWAL
Smith Z SergiFranceOnyama Limba NEW
Aika T WieserCanadaXuxue Feng UNQUALIFIED
Misaki U VocelkaGermanyStephen Shaw NEGOTIATION
Murillo K BriddickJapanBernardo Dominic NEW
Deepesh M WieserAustraliaBernardo Dominic NEW
Julie F SaylorsGermanyAnna Fali NEGOTIATION
Smith Y RulapaughRussiaBernardo Dominic NEW
Antonio R IturbideCanadaBernardo Dominic NEGOTIATION
Francesco L DoeAustraliaStephen Shaw PROPOSAL
Ivar F MorascaSpainBernardo Dominic UNQUALIFIED
James M AmigonRussiaAmy Elsner PROPOSAL
Leon Q AlbaresGermanyIvan Magalhaes PROPOSAL
Greenwood Q FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Smith C AlbaresIndiaAmy Elsner UNQUALIFIED
Adams R PerinCanadaAmy Elsner RENEWAL
Claire X AlbaresUnited KingdomXuxue Feng NEGOTIATION
Maisha W CaudyFranceAmy Elsner UNQUALIFIED
Wickens R SergiRussiaOnyama Limba NEGOTIATION
Johnson T FerenczJapanAsiya Javayant QUALIFIED
Johnson M RulapaughUnited KingdomIvan Magalhaes RENEWAL
Izzy Q GillianAustraliaIoni Bowcher RENEWAL
Frozen Columns
Name
Aika K Dilliard
Isabel Z Sergi
Jones N Royster
Julie W Kusko
Jeanfrancois A Figeroa
Jones G Schemmer
Aruna C Saylors
Tony R Stenseth
Murillo A Kusko
Murillo B Stenseth
Izzy X Venere
Leon W Ferencz
Mujtaba K Whobrey
Emily L Ferencz
Ivar Z Caldarera
Mayumi Y Flosi
Isabel E Perin
Chavez K Kusko
Claire U Royster
Morrow W Butt
Jones A Schemmer
Juan J Malet
Aruna E Perin
James M Nicka
Greenwood V Campain
Maisha M Shinko
Leja P Dilliard
Arvin L Maclead
Leja M Darakjy
James L Shinko
Kaitlin A Butt
Ivar U Glick
James W Figeroa
Chavez U Royster
Ricardo J Slusarski
Adams Z Malet
Emily G Caldarera
Kaitlin S Kolmetz
Jones T Nicka
Arvin Z Sergi
Costa H Iturbide
Leja C Caldarera
Chavez P Wieser
Wickens R Ruta
Munro W Darakjy
Morrow T Morasca
Faith V Saylors
Johnson R Bowley
Cody G Poquette
Leon W Glick
IdCountryDate
1000Spain2026-07-26
1001France2026-07-29
1002United Kingdom2026-08-04
1003Italy2026-08-13
1004India2026-07-29
1005France2026-08-11
1006France2026-08-14
1007Germany2026-07-25
1008Brazil2026-07-26
1009Italy2026-08-04
1010Spain2026-07-21
1011Argentina2026-08-01
1012Germany2026-08-08
1013Japan2026-07-23
1014Germany2026-08-09
1015Russia2026-08-08
1016Canada2026-07-19
1017France2026-07-24
1018Argentina2026-08-08
1019India2026-07-25
1020Italy2026-08-11
1021United Kingdom2026-07-24
1022Japan2026-07-27
1023Japan2026-07-29
1024United Kingdom2026-07-28
1025Canada2026-07-29
1026Canada2026-08-02
1027Brazil2026-08-06
1028Spain2026-07-28
1029France2026-07-19
1030Spain2026-08-10
1031Spain2026-07-26
1032Brazil2026-07-24
1033Germany2026-07-26
1034Italy2026-07-21
1035India2026-08-17
1036Argentina2026-08-06
1037Germany2026-08-07
1038Spain2026-08-01
1039Australia2026-07-30
1040France2026-08-14
1041India2026-08-16
1042Russia2026-08-17
1043Spain2026-08-09
1044Brazil2026-07-28
1045Japan2026-07-25
1046France2026-08-09
1047Spain2026-08-05
1048France2026-08-11
1049Japan2026-08-07

On-Demand Data

NameIdCountryDate
Adams N Venere1000Argentina2026-08-16
Aika S Vocelka1001Japan2026-08-09
Silvio K Venere1002Germany2026-07-25
Greenwood W Stockham1003Canada2026-08-11
Claire Z Briddick1004Brazil2026-07-30
Adams K Malet1005Australia2026-08-01
Munro P Darakjy1006India2026-08-04
Mujtaba Z Stockham1007Germany2026-08-13
Chavez A Nicka1008Brazil2026-08-11
Aruna G Vocelka1009Germany2026-07-22
Chavez B Caudy1010Spain2026-08-17
Nicolas R Ostrosky1011Argentina2026-07-19
Claire B Shinko1012India2026-08-13
Antonio N Bowley1013India2026-07-25
Mujtaba P Shinko1014Brazil2026-08-14
Tony T Marrier1015Argentina2026-08-16
Clifford T Waycott1016Spain2026-08-11
Chavez J Darakjy1017Japan2026-08-15
Nicolas C Campain1018Australia2026-08-16
Adams Y Waycott1019France2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan I FollerBrazilIvan Magalhaes RENEWAL
Deepesh T GauchoCanadaStephen Shaw NEGOTIATION
Isabel L FollerCanadaAsiya Javayant PROPOSAL
Ashley D InouyeCanadaXuxue Feng QUALIFIED
Deepesh I ChuiCanadaIoni Bowcher NEW
Antonio E StockhamSpainIoni Bowcher RENEWAL
Julie F OldroydUnited KingdomOnyama Limba NEW
Julie O OldroydItalyXuxue Feng UNQUALIFIED
Julie T InouyeSpainIoni Bowcher QUALIFIED
Leon K MorascaSpainAmy Elsner NEW
Jeanfrancois L PoquetteFranceAnna Fali NEGOTIATION
Jeanfrancois I FerenczAustraliaStephen Shaw PROPOSAL
Stacey O BowleyFranceIoni Bowcher PROPOSAL
Misaki U MaletGermanyStephen Shaw NEW
Jefferson F FollerBrazilIvan Magalhaes NEW
Leon R SergiGermanyIvan Magalhaes QUALIFIED
Izzy B FollerBrazilElwin Sharvill QUALIFIED
Faith A CampainFranceStephen Shaw UNQUALIFIED
Leon O AlbaresUnited KingdomElwin Sharvill NEW
Maria M GillianGermanyAnna Fali QUALIFIED
Greenwood G KuskoBrazilOnyama Limba RENEWAL
Greenwood O RimArgentinaIoni Bowcher RENEWAL
Cody Y OldroydArgentinaIvan Magalhaes PROPOSAL
Tony S DilliardGermanyOnyama Limba NEW
Aika D GlickAustraliaIoni Bowcher UNQUALIFIED
Kaitlin Y OstroskyRussiaIoni Bowcher RENEWAL
Jones D CaudySpainXuxue Feng NEW
Mujtaba O FollerSpainAmy Elsner NEGOTIATION
Ivar P IturbideFranceXuxue Feng RENEWAL
Silvio V RoysterAustraliaAmy Elsner QUALIFIED
Ivar E RulapaughFranceIoni Bowcher UNQUALIFIED
Deepesh D WieserIndiaIvan Magalhaes QUALIFIED
Ivar S GauchoJapanAnna Fali RENEWAL
Octavia U FlosiSpainBernardo Dominic RENEWAL
Chavez I ShinkoIndiaIvan Magalhaes PROPOSAL
Mujtaba T IturbideFranceXuxue Feng QUALIFIED
Claire Z BriddickGermanyElwin Sharvill PROPOSAL
Sinclair R MaletCanadaAnna Fali RENEWAL
Maria D IturbideBrazilElwin Sharvill QUALIFIED
Claire D StockhamBrazilAnna Fali PROPOSAL

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