Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
French
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Czech
Greek
Persian
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Lithuanian
Latvian
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

PrimeOne Design

Saga Saga
Vela Vela
Arya Arya

Premium Themes

Premium themes are only available exclusively for PrimeFaces Theme Designer subscribers and therefore not included in PrimeFaces core.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

PREMIUM TEMPLATES

Create awesome applications in no time using the premium templates and impress your users.

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Deepesh E MacleadIndiaOnyama Limba QUALIFIED
Leja K GillianCanadaOnyama Limba PROPOSAL
Jennifer J DarakjyAustraliaOnyama Limba NEW
Tony S OldroydAustraliaOnyama Limba PROPOSAL
Ashley H MaletItalyOnyama Limba NEW
Mujtaba D BowleyArgentinaStephen Shaw RENEWAL
Mayumi Y CampainIndiaAnna Fali QUALIFIED
Mujtaba G SergiFranceOnyama Limba QUALIFIED
Ashley R OstroskyJapanAmy Elsner NEW
Julie V NickaIndiaOnyama Limba RENEWAL
Jennifer T MaletBrazilXuxue Feng UNQUALIFIED
Adams P GauchoAustraliaXuxue Feng NEW
Nicolas M WhobreySpainBernardo Dominic PROPOSAL
Johnson J FlosiAustraliaAsiya Javayant PROPOSAL
Alejandro L StensethFranceAsiya Javayant PROPOSAL
Aika A NestleUnited KingdomAsiya Javayant NEW
Cody V FollerAustraliaAsiya Javayant PROPOSAL
Maria Q BologniaIndiaAmy Elsner RENEWAL
Sinclair P NickaUnited KingdomStephen Shaw RENEWAL
Rodrigues Y KuskoArgentinaAsiya Javayant QUALIFIED
Julie Q TollnerJapanBernardo Dominic RENEWAL
Munro X ShinkoItalyIoni Bowcher RENEWAL
Julie Q KuskoFranceAsiya Javayant QUALIFIED
Alejandro B DilliardArgentinaIoni Bowcher PROPOSAL
Ivar L NickaJapanAmy Elsner NEGOTIATION
Morrow Z MacleadUnited KingdomStephen Shaw NEW
Ashley T SergiCanadaXuxue Feng QUALIFIED
Costa C CampainAustraliaIvan Magalhaes NEGOTIATION
Silvio Q VocelkaFranceOnyama Limba NEW
David S NestleAustraliaOnyama Limba QUALIFIED
Isabel D ShinkoBrazilStephen Shaw RENEWAL
Smith V SaylorsCanadaAsiya Javayant RENEWAL
Misaki G VenereJapanBernardo Dominic NEW
Jeanfrancois I FerenczJapanStephen Shaw QUALIFIED
David L BowleyIndiaIvan Magalhaes PROPOSAL
Juan Q OldroydRussiaIvan Magalhaes QUALIFIED
Cody I PoquetteRussiaAmy Elsner NEGOTIATION
Juan K BologniaItalyElwin Sharvill PROPOSAL
Alejandro E WaycottRussiaBernardo Dominic NEW
Smith W AlbaresFranceStephen Shaw UNQUALIFIED
Kaitlin E GarufiArgentinaElwin Sharvill PROPOSAL
Aditya T FlosiFranceAsiya Javayant PROPOSAL
Claire O SaylorsIndiaStephen Shaw PROPOSAL
Aika U CaudyUnited KingdomOnyama Limba QUALIFIED
Faith E TollnerAustraliaStephen Shaw UNQUALIFIED
Jeanfrancois E VocelkaGermanyStephen Shaw QUALIFIED
Jennifer O OldroydAustraliaAsiya Javayant QUALIFIED
Faith Q BologniaArgentinaIvan Magalhaes RENEWAL
Munro B MorascaGermanyXuxue Feng NEGOTIATION
Misaki R WieserJapanIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Emily J BologniaItalyBernardo Dominic PROPOSAL
Isabel X BriddickArgentinaXuxue Feng QUALIFIED
Octavia B FollerSpainAsiya Javayant RENEWAL
Darci K NestleRussiaStephen Shaw PROPOSAL
Chavez V NestleSpainIoni Bowcher NEW
Aika V NickaArgentinaOnyama Limba PROPOSAL
Aditya Q GillianUnited KingdomIvan Magalhaes QUALIFIED
Wickens L BowleyBrazilElwin Sharvill NEGOTIATION
Deepesh R GarufiCanadaAnna Fali NEGOTIATION
Silvio N ButtGermanyIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro F RimItaly2024-04-28Feiner Bros QUALIFIED81Asiya Javayant
1001Aditya J CaldareraAustralia2024-04-14Chemel, James L Cpa RENEWAL63Bernardo Dominic
1002Jones Z IturbideRussia2024-04-12Buckley Miller Wright NEW13Ioni Bowcher
1003Costa W RutaCanada2024-04-05Feiner Bros QUALIFIED47Stephen Shaw
1004Izzy X WieserSpain2024-05-03Commercial Press NEW69Elwin Sharvill
1005Morrow R PerinJapan2024-04-14Chanay, Jeffrey A Esq UNQUALIFIED19Bernardo Dominic
1006Clifford P DoeJapan2024-04-05Chemel, James L Cpa PROPOSAL59Stephen Shaw
1007Emily S WieserArgentina2024-04-11King, Christopher A Esq RENEWAL85Ioni Bowcher
1008Julie B MaletRussia2024-04-07King, Christopher A Esq RENEWAL12Ioni Bowcher
1009Wickens A SchemmerBrazil2024-04-22Printing Dimensions QUALIFIED70Onyama Limba
1010Wickens S FlosiIndia2024-04-28Rangoni Of Florence NEGOTIATION20Stephen Shaw
1011Darci T CampainItaly2024-04-06Rousseaux, Michael Esq PROPOSAL36Xuxue Feng
1012Smith X OstroskyArgentina2024-04-15Benton, John B Jr NEGOTIATION19Asiya Javayant
1013Antonio A SchemmerCanada2024-04-10Printing Dimensions PROPOSAL14Ioni Bowcher
1014Ashley U DoeAustralia2024-04-22Chemel, James L Cpa RENEWAL97Amy Elsner
1015Stacey C OstroskyAustralia2024-04-18Feiner Bros QUALIFIED35Anna Fali
1016Adams L DarakjyIndia2024-05-02Commercial Press NEGOTIATION45Elwin Sharvill
1017Ashley W WaycottRussia2024-04-16Truhlar And Truhlar Attys NEGOTIATION26Onyama Limba
1018Antonio U CaudyIndia2024-05-02Chanay, Jeffrey A Esq PROPOSAL3Bernardo Dominic
1019Jefferson K MaletJapan2024-05-03Buckley Miller Wright RENEWAL76Amy Elsner
1020Murillo Z FigeroaRussia2024-04-17King, Christopher A Esq PROPOSAL5Bernardo Dominic
1021Maisha K VocelkaRussia2024-04-23Truhlar And Truhlar Attys NEGOTIATION79Stephen Shaw
1022Octavia E SchemmerIndia2024-04-30Rangoni Of Florence NEW64Ioni Bowcher
1023Aika R SlusarskiRussia2024-04-27Feiner Bros PROPOSAL38Bernardo Dominic
1024Misaki G ShinkoFrance2024-04-16Chemel, James L Cpa UNQUALIFIED77Xuxue Feng
1025Wickens K MaletArgentina2024-04-16Dorl, James J Esq PROPOSAL17Elwin Sharvill
1026Murillo J NickaCanada2024-04-10Benton, John B Jr NEW22Xuxue Feng
1027Morrow X RutaIndia2024-04-07Truhlar And Truhlar Attys RENEWAL90Stephen Shaw
1028Wickens P CaudyGermany2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED82Amy Elsner
1029Maisha J AmigonBrazil2024-04-23Commercial Press NEW40Ioni Bowcher
1030Deepesh T FollerSpain2024-04-29Feiner Bros RENEWAL70Asiya Javayant
1031Faith C GillianGermany2024-04-10Truhlar And Truhlar Attys PROPOSAL11Ioni Bowcher
1032Francesco R VenereCanada2024-05-02Morlong Associates QUALIFIED2Anna Fali
1033Salvatore B CampainItaly2024-04-29Buckley Miller Wright PROPOSAL22Asiya Javayant
1034David X WaycottArgentina2024-04-22Printing Dimensions RENEWAL44Bernardo Dominic
1035Salvatore I NestleAustralia2024-04-14Benton, John B Jr QUALIFIED37Xuxue Feng
1036Mujtaba E MacleadCanada2024-04-07King, Christopher A Esq PROPOSAL38Bernardo Dominic
1037Francesco N AmigonUnited Kingdom2024-04-17King, Christopher A Esq QUALIFIED67Ioni Bowcher
1038Antonio T WieserGermany2024-04-29Truhlar And Truhlar Attys NEGOTIATION31Onyama Limba
1039Leja Z MarrierRussia2024-04-09Rousseaux, Michael Esq NEW48Bernardo Dominic
1040Darci P MaletGermany2024-04-15Feiner Bros NEGOTIATION30Anna Fali
1041Cody Q DoeBrazil2024-04-30Chapman, Ross E Esq NEGOTIATION60Xuxue Feng
1042Murillo F FigeroaJapan2024-04-28Chapman, Ross E Esq PROPOSAL33Stephen Shaw
1043Murillo Z RoysterSpain2024-04-19Morlong Associates NEGOTIATION41Amy Elsner
1044Antonio I SlusarskiIndia2024-04-09Morlong Associates PROPOSAL38Amy Elsner
1045Maria R MaletIndia2024-04-15Morlong Associates UNQUALIFIED37Ivan Magalhaes
1046Adams B NickaArgentina2024-04-05Rousseaux, Michael Esq UNQUALIFIED53Bernardo Dominic
1047Jefferson R GlickUnited Kingdom2024-04-11Rousseaux, Michael Esq UNQUALIFIED1Xuxue Feng
1048Clifford W VocelkaJapan2024-04-08Morlong Associates UNQUALIFIED29Onyama Limba
1049Wickens R AlbaresGermany2024-04-24King, Christopher A Esq QUALIFIED34Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Izzy J StensethUnited KingdomIoni Bowcher RENEWAL
Ivar K ButtRussiaAmy Elsner NEGOTIATION
Juan L BologniaFranceAnna Fali UNQUALIFIED
Nicolas N OldroydAustraliaOnyama Limba UNQUALIFIED
Jones O SlusarskiBrazilElwin Sharvill PROPOSAL
Clifford C GillianIndiaXuxue Feng UNQUALIFIED
Alejandro K WaycottItalyBernardo Dominic NEW
Isabel D VocelkaBrazilBernardo Dominic RENEWAL
Julie O SchemmerSpainAmy Elsner NEGOTIATION
Aika X StensethFranceAnna Fali UNQUALIFIED
Aika A OldroydFranceAsiya Javayant PROPOSAL
Julie Q WieserItalyIoni Bowcher PROPOSAL
Silvio L VocelkaFranceAmy Elsner QUALIFIED
Octavia L MaletBrazilAnna Fali NEW
Wickens X MarrierItalyStephen Shaw NEW
Cody T StockhamAustraliaIoni Bowcher QUALIFIED
Ricardo F FigeroaUnited KingdomXuxue Feng NEW
Leon L ShinkoJapanAmy Elsner RENEWAL
Smith O WhobreyGermanyIvan Magalhaes QUALIFIED
Leja N VenereArgentinaBernardo Dominic QUALIFIED
Maria Y RoysterArgentinaBernardo Dominic UNQUALIFIED
James E GauchoSpainAnna Fali UNQUALIFIED
Arvin A InouyeSpainElwin Sharvill NEW
Costa Z OldroydCanadaOnyama Limba NEW
Sinclair I NickaSpainElwin Sharvill NEGOTIATION
Munro Y SlusarskiIndiaAsiya Javayant NEGOTIATION
Clifford J WhobreyFranceXuxue Feng NEW
Deepesh J OstroskyGermanyAmy Elsner NEW
Francesco R ButtAustraliaElwin Sharvill NEW
Leon A AlbaresAustraliaXuxue Feng UNQUALIFIED
Faith L CaudyCanadaElwin Sharvill PROPOSAL
Juan F PoquetteAustraliaIvan Magalhaes PROPOSAL
Ashley B WhobreyUnited KingdomIoni Bowcher NEGOTIATION
Claire L ButtAustraliaElwin Sharvill QUALIFIED
Clifford N VenereRussiaIvan Magalhaes PROPOSAL
Jeanfrancois Z VenereUnited KingdomOnyama Limba QUALIFIED
Kaitlin S StockhamArgentinaElwin Sharvill RENEWAL
Silvio E PaprockiItalyAmy Elsner NEW
Morrow L DarakjyBrazilAsiya Javayant UNQUALIFIED
Jeanfrancois P InouyeUnited KingdomAnna Fali QUALIFIED
David R InouyeSpainAsiya Javayant QUALIFIED
Greenwood G CaldareraFranceAsiya Javayant QUALIFIED
Darci E BologniaIndiaXuxue Feng NEGOTIATION
Murillo P RoysterIndiaAnna Fali PROPOSAL
Aika A WieserCanadaIoni Bowcher UNQUALIFIED
David H FollerGermanyIoni Bowcher RENEWAL
Silvio L RoysterSpainOnyama Limba QUALIFIED
Cody V DarakjyRussiaIoni Bowcher UNQUALIFIED
Munro Q MaletJapanIvan Magalhaes UNQUALIFIED
Cody G ShinkoItalyAmy Elsner UNQUALIFIED
Frozen Columns
Name
Arvin B Morasca
Leon G Inouye
David X Royster
Chavez N Inouye
Clifford T Paprocki
Cody T Whobrey
Faith O Oldroyd
Murillo Z Dilliard
Izzy O Briddick
James X Rulapaugh
Aruna X Venere
Greenwood D Ostrosky
Johnson S Kolmetz
Antonio B Sergi
James I Gillian
Emily K Amigon
Chavez M Butt
Ivar G Figeroa
Aika I Venere
Rodrigues O Shinko
Emily K Nicka
Greenwood O Royster
Maisha V Venere
Stacey A Nestle
Izzy N Royster
Stacey P Sergi
Stacey N Marrier
Ivar I Gillian
Tony F Wieser
Mayumi V Darakjy
Emily E Paprocki
Johnson O Gillian
Ivar P Saylors
Juan E Iturbide
Antonio H Saylors
Clifford K Oldroyd
David V Caudy
Maisha A Schemmer
James A Stenseth
Maria J Caudy
Mujtaba H Schemmer
Emily M Kolmetz
Cody H Malet
Adams A Kusko
Sinclair T Albares
Murillo E Ostrosky
Smith V Nestle
Leon I Campain
Kaitlin B Foller
Alejandro Z Flosi
IdCountryDate
1000Germany2024-05-04
1001Canada2024-04-18
1002India2024-04-24
1003United Kingdom2024-05-04
1004India2024-05-04
1005Brazil2024-04-21
1006Spain2024-04-11
1007Canada2024-04-12
1008Argentina2024-05-02
1009Canada2024-04-18
1010Spain2024-04-28
1011Australia2024-04-30
1012Japan2024-04-21
1013Japan2024-05-01
1014Germany2024-04-20
1015India2024-05-01
1016Australia2024-05-04
1017Japan2024-04-23
1018India2024-05-01
1019India2024-04-27
1020Italy2024-05-04
1021Germany2024-04-06
1022France2024-04-11
1023Italy2024-04-19
1024Argentina2024-04-16
1025France2024-04-10
1026United Kingdom2024-04-19
1027India2024-04-29
1028Brazil2024-04-16
1029Russia2024-04-17
1030Canada2024-04-18
1031France2024-05-03
1032Russia2024-04-14
1033Germany2024-04-24
1034United Kingdom2024-04-14
1035India2024-05-02
1036Italy2024-04-09
1037Russia2024-04-08
1038India2024-04-23
1039Australia2024-05-04
1040Argentina2024-04-13
1041Canada2024-05-02
1042France2024-04-21
1043Japan2024-04-29
1044Italy2024-04-26
1045Russia2024-04-06
1046Italy2024-04-26
1047Brazil2024-04-25
1048India2024-05-03
1049Argentina2024-05-04

On-Demand Data

NameIdCountryDate
Kadeem O Campain1000Russia2024-04-19
Aika E Garufi1001Brazil2024-04-15
Julie V Garufi1002Australia2024-04-16
David O Slusarski1003Italy2024-05-02
Ashley B Malet1004Russia2024-04-06
Faith G Maclead1005Russia2024-04-29
Salvatore D Schemmer1006Italy2024-04-14
Octavia V Tollner1007Japan2024-04-12
Faith L Bolognia1008India2024-05-02
Kaitlin K Nicka1009Japan2024-04-17
James O Wieser1010Italy2024-04-11
Morrow D Schemmer1011Japan2024-04-14
Stacey M Poquette1012Japan2024-04-22
Silvio J Briddick1013India2024-04-30
Kaitlin E Chui1014Spain2024-04-16
Deepesh F Ferencz1015Spain2024-05-01
Kadeem Y Inouye1016Spain2024-04-19
Stacey N Briddick1017Germany2024-04-15
Wickens T Maclead1018Italy2024-04-12
Alejandro V Wieser1019Spain2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford L DarakjyUnited KingdomIoni Bowcher PROPOSAL
Wickens I PaprockiBrazilAnna Fali UNQUALIFIED
Ashley Z VocelkaJapanOnyama Limba PROPOSAL
Julie B OstroskySpainAnna Fali NEW
Misaki S StockhamAustraliaAnna Fali PROPOSAL
Costa J FerenczAustraliaAnna Fali RENEWAL
Deepesh A RoysterFranceStephen Shaw UNQUALIFIED
Mujtaba M MorascaIndiaAmy Elsner UNQUALIFIED
Leon X CaldareraSpainBernardo Dominic NEGOTIATION
Alejandro D FerenczSpainBernardo Dominic NEW
Aruna W OldroydRussiaElwin Sharvill NEW
Ivar M DoeRussiaXuxue Feng NEW
Clifford J ButtJapanIvan Magalhaes UNQUALIFIED
Antonio H InouyeRussiaIoni Bowcher RENEWAL
Juan I PaprockiBrazilBernardo Dominic NEGOTIATION
Jones N RutaRussiaAsiya Javayant NEGOTIATION
Jeanfrancois A FigeroaArgentinaIvan Magalhaes NEW
Kaitlin S WhobreyAustraliaAsiya Javayant UNQUALIFIED
Cody W MacleadRussiaElwin Sharvill RENEWAL
Munro Y ChuiFranceXuxue Feng UNQUALIFIED
Sinclair H GarufiFranceAmy Elsner UNQUALIFIED
Stacey Y MaletGermanyAmy Elsner UNQUALIFIED
Aika K DarakjyArgentinaAsiya Javayant RENEWAL
Kadeem W KuskoArgentinaOnyama Limba UNQUALIFIED
Morrow T MarrierIndiaAnna Fali UNQUALIFIED
Mujtaba B BologniaIndiaIvan Magalhaes UNQUALIFIED
Maisha Q SaylorsGermanyAmy Elsner NEGOTIATION
Greenwood K StensethBrazilAmy Elsner UNQUALIFIED
Salvatore M RoysterAustraliaIoni Bowcher PROPOSAL
Aika N RoysterSpainOnyama Limba PROPOSAL
Aditya A WhobreyAustraliaAsiya Javayant QUALIFIED
Isabel J OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Mayumi K CampainArgentinaXuxue Feng QUALIFIED
Chavez W OstroskyItalyElwin Sharvill NEGOTIATION
Misaki B DoeAustraliaXuxue Feng UNQUALIFIED
Smith B CaudyArgentinaAnna Fali RENEWAL
Rodrigues B MorascaItalyAmy Elsner NEGOTIATION
Nicolas Z FlosiBrazilIvan Magalhaes RENEWAL
Sinclair P SchemmerItalyBernardo Dominic NEW
Murillo T VocelkaCanadaBernardo Dominic 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>