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
Murillo E TollnerFranceAsiya Javayant PROPOSAL
Maisha J CaudyArgentinaAnna Fali RENEWAL
Misaki G BowleyJapanAnna Fali PROPOSAL
Aditya K BologniaRussiaAmy Elsner PROPOSAL
Jones Z IturbideFranceOnyama Limba NEW
Antonio H RulapaughJapanStephen Shaw NEW
Faith Q IturbideIndiaAmy Elsner QUALIFIED
Silvio M MaletGermanyIvan Magalhaes NEGOTIATION
Adams N GlickItalyAsiya Javayant RENEWAL
Adams W ShinkoArgentinaAnna Fali UNQUALIFIED
Chavez Q ChuiArgentinaElwin Sharvill PROPOSAL
Antonio I ShinkoSpainAsiya Javayant NEW
Jennifer K ShinkoUnited KingdomIoni Bowcher NEW
Mayumi M DilliardUnited KingdomAsiya Javayant PROPOSAL
Ivar L MorascaIndiaAmy Elsner PROPOSAL
Wickens R BologniaFranceAmy Elsner PROPOSAL
Isabel Y RoysterJapanElwin Sharvill UNQUALIFIED
Stacey U IturbideItalyBernardo Dominic PROPOSAL
Johnson K SergiBrazilIoni Bowcher PROPOSAL
Aruna Y AmigonFranceStephen Shaw QUALIFIED
Tony W ButtItalyAnna Fali UNQUALIFIED
Kadeem B DilliardUnited KingdomAsiya Javayant RENEWAL
Ivar G NestleItalyIvan Magalhaes UNQUALIFIED
Octavia Q OstroskyIndiaElwin Sharvill UNQUALIFIED
Ricardo F IturbideArgentinaIvan Magalhaes QUALIFIED
Maisha I InouyeJapanElwin Sharvill RENEWAL
Aruna H FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Darci L FerenczArgentinaBernardo Dominic RENEWAL
Ashley L DilliardIndiaAnna Fali QUALIFIED
Cody V PaprockiSpainStephen Shaw NEW
Claire A MacleadFranceIoni Bowcher UNQUALIFIED
Misaki Z KuskoUnited KingdomOnyama Limba PROPOSAL
James D ShinkoSpainIvan Magalhaes UNQUALIFIED
Rodrigues F RutaGermanyBernardo Dominic NEW
Ivar K BriddickSpainAnna Fali NEW
Chavez U DoeGermanyIvan Magalhaes NEGOTIATION
Octavia U MaletIndiaStephen Shaw UNQUALIFIED
Emily W KuskoCanadaBernardo Dominic UNQUALIFIED
Isabel L VenereFranceIoni Bowcher NEW
Greenwood B GlickFranceOnyama Limba NEGOTIATION
Rodrigues K GillianRussiaStephen Shaw PROPOSAL
Misaki F PoquetteIndiaIoni Bowcher NEW
Francesco B InouyeJapanIoni Bowcher NEW
Faith Z BriddickUnited KingdomBernardo Dominic RENEWAL
Adams O SergiSpainBernardo Dominic PROPOSAL
Julie W RutaItalyAnna Fali PROPOSAL
Smith I KolmetzBrazilElwin Sharvill NEGOTIATION
Smith C FlosiRussiaIoni Bowcher NEGOTIATION
Misaki V DilliardCanadaStephen Shaw NEW
Salvatore E VenereAustraliaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody E CampainIndiaStephen Shaw NEW
Deepesh L RutaBrazilBernardo Dominic PROPOSAL
Darci L FerenczFranceAsiya Javayant NEGOTIATION
Adams E MacleadCanadaOnyama Limba UNQUALIFIED
Deepesh T MacleadRussiaStephen Shaw NEGOTIATION
Munro Z CaldareraCanadaAmy Elsner RENEWAL
Arvin Q OldroydItalyStephen Shaw UNQUALIFIED
Alejandro Q SchemmerUnited KingdomAnna Fali RENEWAL
Faith N StensethFranceOnyama Limba NEW
Arvin M PoquetteFranceIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya F MorascaFrance2024-04-25Chapman, Ross E Esq RENEWAL91Elwin Sharvill
1001Ashley V RulapaughJapan2024-04-07Commercial Press QUALIFIED66Xuxue Feng
1002Juan P SaylorsIndia2024-04-01Rangoni Of Florence PROPOSAL75Onyama Limba
1003Morrow S DarakjyBrazil2024-04-26Buckley Miller Wright UNQUALIFIED25Amy Elsner
1004Smith C DilliardRussia2024-04-06Feltz Printing Service PROPOSAL80Ivan Magalhaes
1005Clifford U PoquetteItaly2024-04-07Chemel, James L Cpa QUALIFIED24Onyama Limba
1006Chavez A FollerJapan2024-04-23Rangoni Of Florence RENEWAL3Ivan Magalhaes
1007Mujtaba M OstroskyCanada2024-04-13Morlong Associates NEW49Stephen Shaw
1008Deepesh Z OldroydItaly2024-04-06Buckley Miller Wright UNQUALIFIED51Bernardo Dominic
1009Nicolas P KolmetzUnited Kingdom2024-04-01Feltz Printing Service PROPOSAL15Ivan Magalhaes
1010Maria J VocelkaFrance2024-04-06King, Christopher A Esq UNQUALIFIED92Anna Fali
1011Maisha K CampainGermany2024-04-21Feiner Bros QUALIFIED46Asiya Javayant
1012Kadeem J VocelkaItaly2024-03-31King, Christopher A Esq RENEWAL83Onyama Limba
1013Kadeem G MarrierFrance2024-04-24Chemel, James L Cpa UNQUALIFIED67Anna Fali
1014Mujtaba U CaudyCanada2024-04-25Rousseaux, Michael Esq RENEWAL2Ivan Magalhaes
1015Cody N DarakjyBrazil2024-04-08Chanay, Jeffrey A Esq NEGOTIATION6Bernardo Dominic
1016Cody N GlickArgentina2024-04-10Buckley Miller Wright NEW59Ioni Bowcher
1017Antonio O BologniaSpain2024-04-16Feiner Bros NEW70Bernardo Dominic
1018Tony D ChuiJapan2024-04-08Chapman, Ross E Esq PROPOSAL16Elwin Sharvill
1019Misaki Y NestleUnited Kingdom2024-04-13Benton, John B Jr PROPOSAL83Asiya Javayant
1020Izzy D OldroydBrazil2024-04-02Truhlar And Truhlar Attys NEGOTIATION98Xuxue Feng
1021David D ChuiRussia2024-04-16Benton, John B Jr PROPOSAL42Stephen Shaw
1022Antonio I NickaItaly2024-03-29Dorl, James J Esq UNQUALIFIED66Anna Fali
1023Smith G WaycottJapan2024-04-20Feiner Bros RENEWAL37Anna Fali
1024Octavia C BriddickGermany2024-04-23Feiner Bros RENEWAL84Stephen Shaw
1025Jefferson K RoysterUnited Kingdom2024-04-01Benton, John B Jr PROPOSAL32Xuxue Feng
1026Munro S FollerUnited Kingdom2024-04-05Chemel, James L Cpa PROPOSAL65Bernardo Dominic
1027Silvio I WaycottJapan2024-04-24Morlong Associates RENEWAL19Anna Fali
1028Smith J PerinItaly2024-04-05Rangoni Of Florence RENEWAL44Asiya Javayant
1029David F WaycottGermany2024-04-26Dorl, James J Esq UNQUALIFIED98Stephen Shaw
1030Salvatore J FollerCanada2024-04-24Dorl, James J Esq NEGOTIATION27Ivan Magalhaes
1031Maisha Q WhobreyItaly2024-04-04Chanay, Jeffrey A Esq UNQUALIFIED79Elwin Sharvill
1032Isabel D NickaRussia2024-04-15Chemel, James L Cpa NEGOTIATION87Onyama Limba
1033Arvin C MaletGermany2024-04-12Benton, John B Jr PROPOSAL66Bernardo Dominic
1034Murillo P SchemmerItaly2024-03-29Commercial Press RENEWAL42Ioni Bowcher
1035Izzy Z RulapaughJapan2024-04-21Chemel, James L Cpa PROPOSAL72Xuxue Feng
1036Clifford S StockhamBrazil2024-04-17King, Christopher A Esq NEW11Elwin Sharvill
1037Nicolas N SchemmerCanada2024-04-24Chanay, Jeffrey A Esq RENEWAL10Stephen Shaw
1038Nicolas P InouyeIndia2024-03-29Chemel, James L Cpa PROPOSAL29Bernardo Dominic
1039Jefferson O AmigonSpain2024-04-19Feiner Bros PROPOSAL99Asiya Javayant
1040Francesco S IturbideGermany2024-04-03Morlong Associates QUALIFIED13Stephen Shaw
1041Claire U OldroydAustralia2024-04-19Truhlar And Truhlar Attys PROPOSAL8Bernardo Dominic
1042Mujtaba X ChuiJapan2024-03-31Chapman, Ross E Esq NEW73Bernardo Dominic
1043Johnson I IturbideAustralia2024-04-11King, Christopher A Esq QUALIFIED48Asiya Javayant
1044Faith Q KuskoCanada2024-04-04King, Christopher A Esq NEGOTIATION30Xuxue Feng
1045James L WaycottGermany2024-04-09Feltz Printing Service NEGOTIATION41Anna Fali
1046Salvatore O SergiJapan2024-04-25King, Christopher A Esq NEGOTIATION17Asiya Javayant
1047Darci G MorascaAustralia2024-04-01Commercial Press NEW6Ivan Magalhaes
1048Kadeem P NestleUnited Kingdom2024-04-23Chanay, Jeffrey A Esq PROPOSAL47Ioni Bowcher
1049Smith R AmigonItaly2024-04-03Buckley Miller Wright QUALIFIED92Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Deepesh N AlbaresBrazilStephen Shaw RENEWAL
Misaki A GlickRussiaElwin Sharvill NEGOTIATION
Emily R SaylorsCanadaBernardo Dominic NEGOTIATION
Jennifer U DoeIndiaBernardo Dominic NEGOTIATION
Salvatore C WaycottBrazilIvan Magalhaes UNQUALIFIED
Antonio C SlusarskiAustraliaAnna Fali UNQUALIFIED
Nicolas D FigeroaAustraliaIoni Bowcher NEGOTIATION
Greenwood H SlusarskiFranceXuxue Feng NEW
Faith F AlbaresArgentinaAsiya Javayant QUALIFIED
Julie L WhobreyAustraliaIoni Bowcher RENEWAL
Aruna V WaycottIndiaXuxue Feng RENEWAL
David Z FerenczUnited KingdomAmy Elsner NEW
Jefferson H MaletJapanElwin Sharvill NEGOTIATION
Nicolas F KolmetzIndiaElwin Sharvill QUALIFIED
Aditya J WhobreyArgentinaIoni Bowcher RENEWAL
Kadeem V StensethUnited KingdomAnna Fali RENEWAL
Alejandro R ChuiCanadaIvan Magalhaes QUALIFIED
Arvin L AlbaresRussiaIoni Bowcher NEGOTIATION
Cody K PerinJapanXuxue Feng NEGOTIATION
Ashley M DarakjyItalyOnyama Limba RENEWAL
Alejandro S DarakjyJapanStephen Shaw PROPOSAL
Ashley S GlickArgentinaAmy Elsner PROPOSAL
Jefferson M WieserArgentinaStephen Shaw PROPOSAL
Kaitlin U PerinUnited KingdomIoni Bowcher UNQUALIFIED
Juan M StensethFranceAmy Elsner UNQUALIFIED
Silvio G FlosiItalyAsiya Javayant RENEWAL
Faith A WhobreyAustraliaAmy Elsner NEW
Nicolas J BriddickFranceOnyama Limba RENEWAL
Cody D MorascaFranceBernardo Dominic PROPOSAL
Murillo B CaudyUnited KingdomElwin Sharvill PROPOSAL
Adams L GarufiAustraliaStephen Shaw QUALIFIED
Munro Z StockhamFranceBernardo Dominic NEW
Adams M StensethIndiaXuxue Feng PROPOSAL
Mujtaba T DilliardIndiaAsiya Javayant RENEWAL
Silvio R FlosiCanadaIvan Magalhaes PROPOSAL
Rodrigues E MacleadJapanIvan Magalhaes NEGOTIATION
Cody G NestleGermanyAnna Fali UNQUALIFIED
Jones E WieserIndiaAsiya Javayant QUALIFIED
Darci A RulapaughFranceAmy Elsner PROPOSAL
Alejandro C ChuiArgentinaElwin Sharvill PROPOSAL
Adams W SaylorsIndiaAsiya Javayant PROPOSAL
Clifford C FlosiJapanElwin Sharvill PROPOSAL
Kadeem E MaletAustraliaOnyama Limba UNQUALIFIED
Mayumi B RutaSpainAnna Fali RENEWAL
Faith Q ChuiGermanyAnna Fali QUALIFIED
Morrow X IturbideRussiaAmy Elsner RENEWAL
Mayumi R FollerJapanAsiya Javayant UNQUALIFIED
Stacey B OstroskyUnited KingdomAsiya Javayant QUALIFIED
Clifford K GlickSpainStephen Shaw NEW
Leon C OstroskyBrazilXuxue Feng RENEWAL
Frozen Columns
Name
Aditya U Oldroyd
David A Glick
Greenwood S Slusarski
Francesco W Garufi
Francesco E Marrier
Misaki Y Ruta
Jefferson H Vocelka
Ivar B Flosi
Tony E Iturbide
Isabel A Bowley
Jones K Caldarera
Jennifer V Morasca
Ricardo S Nestle
Tony J Garufi
Izzy O Inouye
Claire A Figeroa
Ashley A Campain
Jefferson G Caldarera
Mujtaba P Rulapaugh
Juan F Shinko
Salvatore Q Royster
Tony Y Ostrosky
Jennifer R Maclead
Greenwood P Nestle
Jennifer V Kolmetz
Claire D Sergi
Smith K Slusarski
Sinclair L Briddick
Octavia V Wieser
Adams W Stockham
Claire W Foller
Misaki O Briddick
Clifford I Ferencz
David Z Marrier
Jeanfrancois X Gillian
Francesco Q Bowley
Greenwood N Waycott
Morrow G Paprocki
Julie B Butt
Misaki P Shinko
Morrow F Campain
Misaki D Caudy
Aruna N Glick
Juan X Amigon
Emily J Wieser
Arvin Z Rim
Aruna C Gillian
Leja X Tollner
Maisha K Slusarski
Wickens W Doe
IdCountryDate
1000Argentina2024-04-03
1001France2024-03-29
1002Argentina2024-04-19
1003India2024-04-02
1004Japan2024-04-24
1005United Kingdom2024-04-07
1006India2024-04-01
1007Japan2024-04-10
1008Italy2024-04-26
1009France2024-04-15
1010Canada2024-04-04
1011Brazil2024-04-05
1012Japan2024-04-11
1013India2024-04-06
1014Germany2024-04-07
1015Australia2024-03-29
1016France2024-04-17
1017India2024-04-06
1018Spain2024-04-02
1019Australia2024-04-25
1020Argentina2024-04-03
1021Brazil2024-04-17
1022Germany2024-04-15
1023India2024-04-26
1024United Kingdom2024-04-20
1025Australia2024-03-31
1026United Kingdom2024-04-14
1027Brazil2024-03-28
1028Japan2024-04-15
1029Canada2024-04-17
1030Argentina2024-04-02
1031Brazil2024-03-29
1032Japan2024-04-01
1033France2024-03-30
1034Brazil2024-04-05
1035Germany2024-04-24
1036Germany2024-04-09
1037Germany2024-03-31
1038India2024-04-21
1039Russia2024-04-22
1040Spain2024-04-12
1041Canada2024-04-11
1042United Kingdom2024-04-15
1043Germany2024-04-01
1044Russia2024-04-11
1045Australia2024-04-02
1046Germany2024-04-13
1047United Kingdom2024-04-07
1048Australia2024-04-12
1049India2024-04-15

On-Demand Data

NameIdCountryDate
Francesco S Whobrey1000Japan2024-04-19
Rodrigues H Ferencz1001France2024-04-04
David U Rim1002Italy2024-04-10
Tony H Albares1003Canada2024-04-11
Antonio C Marrier1004France2024-04-20
Morrow R Marrier1005Japan2024-04-23
Nicolas B Bowley1006France2024-04-18
Arvin J Nestle1007India2024-04-22
Maria N Bolognia1008Spain2024-04-05
Jones L Caudy1009France2024-04-17
Faith V Caudy1010Spain2024-04-07
Kaitlin V Caldarera1011Japan2024-04-10
Nicolas U Nestle1012Brazil2024-04-20
Izzy G Ostrosky1013Brazil2024-04-15
Maisha P Ferencz1014Japan2024-04-26
Maisha I Paprocki1015France2024-04-23
Munro M Stenseth1016Australia2024-04-01
Leja T Flosi1017France2024-04-11
Claire T Rulapaugh1018India2024-03-29
Adams H Slusarski1019Japan2024-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson E VocelkaGermanyElwin Sharvill QUALIFIED
Deepesh Y FollerItalyAnna Fali PROPOSAL
Jones L IturbideItalyAmy Elsner NEW
Aditya Z DarakjyIndiaIoni Bowcher NEW
Deepesh W FollerGermanyAmy Elsner RENEWAL
Silvio W CampainJapanXuxue Feng UNQUALIFIED
Misaki I KuskoGermanyAmy Elsner UNQUALIFIED
Jennifer P PoquetteRussiaAnna Fali NEGOTIATION
Stacey S WhobreySpainStephen Shaw NEW
Jeanfrancois C VocelkaAustraliaElwin Sharvill RENEWAL
Rodrigues W BowleyIndiaAsiya Javayant UNQUALIFIED
Ricardo G GarufiSpainIvan Magalhaes UNQUALIFIED
Juan D IturbideAustraliaStephen Shaw QUALIFIED
Stacey X CampainAustraliaIvan Magalhaes RENEWAL
Jennifer W MorascaFranceStephen Shaw QUALIFIED
Jennifer W MaletJapanIvan Magalhaes RENEWAL
Antonio T WhobreyRussiaBernardo Dominic NEGOTIATION
Juan T OstroskyItalyElwin Sharvill RENEWAL
Rodrigues I DoeItalyAsiya Javayant PROPOSAL
Jefferson C SlusarskiRussiaAnna Fali PROPOSAL
Maria V GillianIndiaXuxue Feng NEGOTIATION
Costa F BowleyCanadaOnyama Limba QUALIFIED
Ivar T SergiIndiaStephen Shaw NEW
Claire A RimItalyAsiya Javayant QUALIFIED
Isabel O VocelkaFranceAmy Elsner NEGOTIATION
Leja J ChuiUnited KingdomIvan Magalhaes RENEWAL
Faith S CaldareraBrazilAmy Elsner UNQUALIFIED
Costa L InouyeFranceStephen Shaw NEW
Faith C GillianJapanXuxue Feng NEGOTIATION
Antonio W NickaSpainAnna Fali PROPOSAL
Ashley Y SlusarskiGermanyXuxue Feng RENEWAL
Costa W PoquetteBrazilBernardo Dominic NEGOTIATION
Octavia Y WaycottAustraliaStephen Shaw UNQUALIFIED
Mayumi M MaletUnited KingdomIvan Magalhaes NEW
Murillo B MarrierRussiaStephen Shaw RENEWAL
Kadeem V SchemmerIndiaAsiya Javayant QUALIFIED
Mayumi H RoysterItalyXuxue Feng NEGOTIATION
Ivar S StockhamBrazilIvan Magalhaes PROPOSAL
Costa E DarakjyItalyXuxue Feng UNQUALIFIED
Sinclair Z FigeroaFranceElwin Sharvill UNQUALIFIED

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