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
Adams P MacleadCanadaIoni Bowcher QUALIFIED
Sinclair D RulapaughArgentinaAsiya Javayant RENEWAL
Costa S ShinkoArgentinaAsiya Javayant UNQUALIFIED
Leon W GlickRussiaStephen Shaw PROPOSAL
James H GauchoJapanAmy Elsner RENEWAL
Murillo X AlbaresFranceElwin Sharvill RENEWAL
Tony H SlusarskiJapanBernardo Dominic UNQUALIFIED
Misaki F SaylorsFranceStephen Shaw QUALIFIED
Octavia Y VenereItalyIvan Magalhaes UNQUALIFIED
Nicolas K DoeRussiaAnna Fali RENEWAL
Darci A WaycottRussiaOnyama Limba QUALIFIED
Munro M GlickAustraliaAsiya Javayant PROPOSAL
Wickens Q FigeroaRussiaAnna Fali NEGOTIATION
Julie D FerenczSpainBernardo Dominic UNQUALIFIED
Darci O StockhamFranceXuxue Feng RENEWAL
Aditya L RutaJapanAsiya Javayant RENEWAL
Murillo X ButtRussiaAsiya Javayant RENEWAL
Aditya N VocelkaRussiaElwin Sharvill UNQUALIFIED
Nicolas C TollnerIndiaElwin Sharvill NEGOTIATION
Clifford V FerenczArgentinaXuxue Feng UNQUALIFIED
Alejandro B GauchoIndiaAmy Elsner RENEWAL
Sinclair J BowleyIndiaIoni Bowcher PROPOSAL
Maisha O FlosiItalyIoni Bowcher QUALIFIED
Faith N VocelkaItalyIvan Magalhaes NEGOTIATION
Juan D StensethSpainElwin Sharvill NEGOTIATION
Chavez X DarakjyUnited KingdomOnyama Limba NEGOTIATION
Mujtaba Z CaudyRussiaOnyama Limba PROPOSAL
Leja F BowleyAustraliaOnyama Limba NEW
Johnson F MarrierSpainXuxue Feng QUALIFIED
Ivar A AmigonSpainAsiya Javayant NEW
Johnson O OldroydCanadaAnna Fali UNQUALIFIED
Greenwood V RoysterAustraliaOnyama Limba QUALIFIED
Emily K OldroydFranceElwin Sharvill QUALIFIED
Clifford R FlosiItalyElwin Sharvill QUALIFIED
Arvin G KolmetzItalyAnna Fali PROPOSAL
Arvin W MaletUnited KingdomStephen Shaw RENEWAL
Aruna U WieserFranceAmy Elsner RENEWAL
Antonio L FigeroaIndiaBernardo Dominic PROPOSAL
Smith R ChuiArgentinaIvan Magalhaes PROPOSAL
Misaki P ButtCanadaIvan Magalhaes QUALIFIED
Nicolas K ChuiSpainIvan Magalhaes PROPOSAL
Greenwood I FigeroaRussiaIoni Bowcher NEGOTIATION
Costa O WaycottUnited KingdomAmy Elsner RENEWAL
Isabel U TollnerJapanAnna Fali UNQUALIFIED
Izzy Y KolmetzSpainXuxue Feng PROPOSAL
Ashley G KolmetzArgentinaAnna Fali PROPOSAL
Julie B BowleyItalyOnyama Limba NEW
Juan J FollerArgentinaElwin Sharvill RENEWAL
Mayumi I RulapaughCanadaElwin Sharvill PROPOSAL
Greenwood Q WieserGermanyAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Alejandro W MacleadItalyIoni Bowcher QUALIFIED
Greenwood K FerenczFranceAsiya Javayant UNQUALIFIED
Emily N FollerGermanyOnyama Limba QUALIFIED
Morrow I DilliardItalyXuxue Feng UNQUALIFIED
Nicolas X GlickJapanAsiya Javayant QUALIFIED
Wickens D CampainJapanAnna Fali QUALIFIED
Faith M FigeroaUnited KingdomXuxue Feng NEW
Darci O ShinkoJapanXuxue Feng QUALIFIED
Maisha W RulapaughIndiaIoni Bowcher UNQUALIFIED
Aika M CaldareraIndiaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues S GauchoFrance2024-04-09Rangoni Of Florence RENEWAL15Anna Fali
1001Faith I RoysterCanada2024-04-26Chemel, James L Cpa NEGOTIATION23Anna Fali
1002Jefferson U DilliardUnited Kingdom2024-04-22Buckley Miller Wright NEW32Stephen Shaw
1003Adams X SergiSpain2024-04-08Morlong Associates UNQUALIFIED0Stephen Shaw
1004Clifford Q KuskoGermany2024-04-14Feiner Bros QUALIFIED54Anna Fali
1005Mujtaba W DarakjyIndia2024-03-30Chanay, Jeffrey A Esq NEGOTIATION31Stephen Shaw
1006Julie T SlusarskiAustralia2024-04-14Morlong Associates QUALIFIED58Asiya Javayant
1007Silvio V InouyeItaly2024-03-29Benton, John B Jr QUALIFIED34Amy Elsner
1008Misaki J WaycottUnited Kingdom2024-03-29Printing Dimensions UNQUALIFIED52Elwin Sharvill
1009Kadeem I KuskoArgentina2024-04-23Rangoni Of Florence NEW98Stephen Shaw
1010Maisha A SaylorsItaly2024-04-22Rousseaux, Michael Esq RENEWAL60Stephen Shaw
1011Nicolas N StensethItaly2024-04-17Printing Dimensions NEW47Ivan Magalhaes
1012Jones X WaycottArgentina2024-04-27Morlong Associates UNQUALIFIED65Elwin Sharvill
1013Izzy N ShinkoUnited Kingdom2024-04-14Printing Dimensions RENEWAL49Ivan Magalhaes
1014Octavia G TollnerSpain2024-04-24Feltz Printing Service NEW28Bernardo Dominic
1015Leja L OstroskyRussia2024-04-12Feiner Bros UNQUALIFIED8Onyama Limba
1016David C VocelkaAustralia2024-04-17Chapman, Ross E Esq UNQUALIFIED53Bernardo Dominic
1017Mayumi N FigeroaAustralia2024-04-17Chanay, Jeffrey A Esq QUALIFIED28Bernardo Dominic
1018Aditya H KuskoArgentina2024-03-29Feiner Bros NEW63Elwin Sharvill
1019Greenwood Q StensethSpain2024-04-09Truhlar And Truhlar Attys QUALIFIED78Onyama Limba
1020Aika Q ShinkoJapan2024-04-25Printing Dimensions QUALIFIED84Stephen Shaw
1021Octavia X AlbaresUnited Kingdom2024-04-17Rousseaux, Michael Esq UNQUALIFIED21Xuxue Feng
1022Alejandro G NickaItaly2024-04-10Truhlar And Truhlar Attys NEGOTIATION6Xuxue Feng
1023Juan V PerinGermany2024-04-24Commercial Press UNQUALIFIED94Onyama Limba
1024Faith X AmigonAustralia2024-04-08Chanay, Jeffrey A Esq NEGOTIATION26Asiya Javayant
1025Jennifer F GauchoFrance2024-04-27Commercial Press QUALIFIED21Anna Fali
1026Aika S OstroskyFrance2024-04-26King, Christopher A Esq QUALIFIED79Ioni Bowcher
1027Stacey Z NestleArgentina2024-04-18Morlong Associates PROPOSAL86Ivan Magalhaes
1028Jennifer L AlbaresRussia2024-03-31Dorl, James J Esq PROPOSAL72Xuxue Feng
1029Juan J MaletItaly2024-04-22Chapman, Ross E Esq NEGOTIATION6Xuxue Feng
1030Tony L MaletArgentina2024-04-12Morlong Associates UNQUALIFIED97Onyama Limba
1031Wickens W RimRussia2024-04-12Rangoni Of Florence QUALIFIED44Ivan Magalhaes
1032Izzy F InouyeCanada2024-04-08Buckley Miller Wright PROPOSAL5Xuxue Feng
1033Rodrigues W SaylorsJapan2024-04-25Feiner Bros NEGOTIATION62Bernardo Dominic
1034Antonio N MacleadRussia2024-04-01Buckley Miller Wright PROPOSAL66Anna Fali
1035Rodrigues F OldroydArgentina2024-04-02Chanay, Jeffrey A Esq NEW50Ivan Magalhaes
1036Munro S VenereItaly2024-03-30Feiner Bros NEW73Elwin Sharvill
1037James M ChuiCanada2024-04-27Truhlar And Truhlar Attys UNQUALIFIED48Anna Fali
1038Leja G DilliardSpain2024-04-24Commercial Press RENEWAL2Onyama Limba
1039Smith W OstroskyBrazil2024-04-20King, Christopher A Esq QUALIFIED20Bernardo Dominic
1040Stacey Y InouyeBrazil2024-04-22Feltz Printing Service NEW21Ioni Bowcher
1041Claire W WhobreyGermany2024-04-14Feltz Printing Service UNQUALIFIED2Elwin Sharvill
1042Nicolas R VenereBrazil2024-04-24Chapman, Ross E Esq RENEWAL77Onyama Limba
1043Rodrigues D BologniaJapan2024-04-05Morlong Associates UNQUALIFIED37Anna Fali
1044Salvatore D RutaAustralia2024-04-20Feltz Printing Service QUALIFIED17Anna Fali
1045Ivar P PaprockiSpain2024-04-16Benton, John B Jr PROPOSAL10Ivan Magalhaes
1046Smith T MaletIndia2024-04-18Printing Dimensions QUALIFIED58Amy Elsner
1047Julie G FerenczRussia2024-04-14Benton, John B Jr NEW67Ivan Magalhaes
1048Izzy N BriddickRussia2024-04-20Chemel, James L Cpa RENEWAL21Ioni Bowcher
1049Arvin P FigeroaBrazil2024-04-09Chemel, James L Cpa UNQUALIFIED86Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ricardo X BowleyArgentinaStephen Shaw RENEWAL
Deepesh T CampainIndiaAmy Elsner RENEWAL
Claire E CaudyFranceIvan Magalhaes RENEWAL
Jefferson S RoysterRussiaIoni Bowcher PROPOSAL
Clifford D GauchoSpainAmy Elsner NEW
Jennifer X InouyeJapanIvan Magalhaes NEW
Alejandro I CaldareraIndiaStephen Shaw PROPOSAL
Antonio Z DarakjyRussiaAmy Elsner NEGOTIATION
Francesco W TollnerGermanyAmy Elsner RENEWAL
Antonio X IturbideBrazilIvan Magalhaes UNQUALIFIED
Tony E FlosiItalyAmy Elsner PROPOSAL
Emily V GillianRussiaBernardo Dominic NEGOTIATION
Chavez Q TollnerItalyAnna Fali UNQUALIFIED
Cody D RoysterItalyOnyama Limba UNQUALIFIED
Chavez L GlickCanadaAsiya Javayant QUALIFIED
Alejandro E NickaAustraliaAsiya Javayant PROPOSAL
Jones O CaudySpainXuxue Feng QUALIFIED
Arvin H WaycottUnited KingdomAnna Fali RENEWAL
Misaki R SaylorsUnited KingdomIvan Magalhaes NEW
Kadeem A GillianFranceIvan Magalhaes NEW
Deepesh C BriddickUnited KingdomXuxue Feng RENEWAL
Cody S CaldareraAustraliaXuxue Feng NEW
Emily S MaletUnited KingdomAsiya Javayant UNQUALIFIED
Misaki W AlbaresGermanyOnyama Limba RENEWAL
Arvin I AlbaresUnited KingdomXuxue Feng NEW
Murillo N TollnerItalyIoni Bowcher NEW
Juan Y RutaCanadaAmy Elsner PROPOSAL
Greenwood M VenereArgentinaOnyama Limba UNQUALIFIED
Leja O VenereCanadaXuxue Feng QUALIFIED
Ricardo W GauchoIndiaOnyama Limba NEGOTIATION
Faith O TollnerArgentinaIoni Bowcher NEGOTIATION
Jennifer Z MorascaJapanBernardo Dominic UNQUALIFIED
Jones U BowleySpainStephen Shaw NEGOTIATION
Deepesh P KolmetzCanadaAmy Elsner NEW
Jennifer P BriddickSpainBernardo Dominic QUALIFIED
Maisha W NickaSpainAmy Elsner QUALIFIED
Smith K RimCanadaIvan Magalhaes UNQUALIFIED
Morrow D BriddickFranceXuxue Feng PROPOSAL
Faith L InouyeRussiaAnna Fali QUALIFIED
Murillo D BologniaSpainAnna Fali PROPOSAL
Morrow M PaprockiRussiaIvan Magalhaes QUALIFIED
Jones E ChuiFranceXuxue Feng RENEWAL
Darci W SlusarskiRussiaAsiya Javayant PROPOSAL
Leon E MaletSpainStephen Shaw NEGOTIATION
Julie W VenereAustraliaBernardo Dominic RENEWAL
Emily T DilliardJapanAmy Elsner QUALIFIED
Antonio A RimArgentinaAnna Fali QUALIFIED
Stacey S CaudyFranceBernardo Dominic UNQUALIFIED
Aika F IturbideBrazilOnyama Limba NEGOTIATION
Octavia B MacleadIndiaStephen Shaw QUALIFIED
Frozen Columns
Name
James J Sergi
Mujtaba Z Whobrey
Mayumi X Kolmetz
Francesco F Bolognia
Aika B Marrier
Salvatore J Ruta
Clifford S Tollner
Costa E Slusarski
Francesco W Maclead
Ivar K Figeroa
Emily N Royster
Nicolas A Vocelka
Maisha P Ostrosky
Alejandro H Inouye
Johnson I Rulapaugh
Johnson J Ostrosky
Ashley T Perin
Clifford M Gillian
Izzy S Waycott
Claire E Gaucho
Silvio P Schemmer
Ivar B Campain
Salvatore K Morasca
Morrow N Flosi
Costa C Vocelka
Francesco Y Perin
Darci O Perin
Aika I Bolognia
Kaitlin U Flosi
Mujtaba O Rulapaugh
Cody Q Bowley
Adams Q Rim
Adams X Royster
Jeanfrancois F Stockham
Izzy E Rulapaugh
Clifford P Albares
Aruna V Malet
Deepesh R Oldroyd
Darci R Perin
Jones Y Royster
Julie J Stenseth
Leja Y Stockham
Octavia F Ferencz
David P Venere
Munro W Nestle
Juan N Malet
Kadeem F Whobrey
Octavia E Ruta
Stacey X Gillian
Clifford R Sergi
IdCountryDate
1000India2024-03-30
1001Spain2024-04-11
1002India2024-04-07
1003Spain2024-03-30
1004United Kingdom2024-04-03
1005Russia2024-04-27
1006Brazil2024-04-15
1007Spain2024-04-01
1008France2024-04-08
1009India2024-04-22
1010Argentina2024-03-31
1011France2024-04-17
1012Russia2024-04-17
1013Japan2024-04-22
1014United Kingdom2024-04-12
1015Canada2024-04-09
1016United Kingdom2024-03-31
1017Japan2024-04-04
1018Japan2024-04-15
1019India2024-04-01
1020France2024-04-13
1021Spain2024-03-30
1022Canada2024-04-23
1023Canada2024-03-29
1024Italy2024-04-19
1025Russia2024-04-04
1026Italy2024-04-19
1027India2024-04-26
1028France2024-03-30
1029Spain2024-04-07
1030Germany2024-04-23
1031Germany2024-04-24
1032France2024-04-09
1033United Kingdom2024-04-15
1034Russia2024-04-01
1035Argentina2024-04-04
1036United Kingdom2024-04-22
1037United Kingdom2024-04-01
1038India2024-04-06
1039United Kingdom2024-04-26
1040Brazil2024-04-26
1041France2024-04-18
1042Canada2024-04-04
1043India2024-04-18
1044Spain2024-04-03
1045Japan2024-03-29
1046United Kingdom2024-04-26
1047Russia2024-04-22
1048India2024-04-17
1049Argentina2024-04-25

On-Demand Data

NameIdCountryDate
Johnson R Nicka1000Brazil2024-04-03
Jones R Ostrosky1001Australia2024-04-25
Octavia V Doe1002France2024-04-18
Julie R Kusko1003Australia2024-04-26
Claire H Wieser1004Japan2024-03-31
Stacey V Maclead1005Japan2024-04-14
Adams W Glick1006Germany2024-03-30
Isabel H Tollner1007Italy2024-04-02
Mayumi Y Whobrey1008India2024-04-07
Rodrigues F Venere1009Italy2024-04-26
Clifford Z Malet1010Canada2024-04-03
Leja I Amigon1011Brazil2024-04-10
Murillo U Vocelka1012Japan2024-04-01
Mujtaba B Ruta1013Germany2024-04-12
Morrow T Saylors1014France2024-04-22
Jeanfrancois P Caldarera1015United Kingdom2024-04-23
Adams O Paprocki1016United Kingdom2024-04-02
Greenwood R Bowley1017Brazil2024-03-31
Clifford M Marrier1018Germany2024-04-02
Misaki H Kolmetz1019Brazil2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo U GillianBrazilStephen Shaw PROPOSAL
Faith A IturbideUnited KingdomStephen Shaw RENEWAL
Julie V GillianFranceAsiya Javayant NEW
Julie Z MaletItalyIoni Bowcher UNQUALIFIED
Stacey F MorascaAustraliaIoni Bowcher QUALIFIED
Julie L ButtFranceAsiya Javayant RENEWAL
Darci P FigeroaFranceElwin Sharvill NEGOTIATION
Mujtaba K RutaJapanAmy Elsner NEW
Ricardo S RutaFranceAsiya Javayant UNQUALIFIED
Silvio Z WaycottAustraliaAnna Fali NEGOTIATION
Adams J DoeJapanAsiya Javayant UNQUALIFIED
Aruna U MacleadSpainIvan Magalhaes RENEWAL
Jones A InouyeCanadaXuxue Feng QUALIFIED
Mayumi E PoquetteFranceBernardo Dominic QUALIFIED
Isabel R VocelkaGermanyStephen Shaw PROPOSAL
Silvio S CaldareraArgentinaOnyama Limba NEW
Greenwood E WhobreyGermanyIoni Bowcher PROPOSAL
Octavia K PaprockiFranceStephen Shaw UNQUALIFIED
Ashley U FlosiJapanIvan Magalhaes QUALIFIED
Octavia H PaprockiGermanyStephen Shaw UNQUALIFIED
Jennifer D PerinArgentinaAmy Elsner RENEWAL
Ivar B MacleadUnited KingdomAmy Elsner NEGOTIATION
Deepesh A WhobreyFranceXuxue Feng NEGOTIATION
Arvin D BowleyGermanyAmy Elsner NEGOTIATION
Mayumi J OstroskyFranceBernardo Dominic UNQUALIFIED
Arvin D CaudyUnited KingdomAnna Fali NEGOTIATION
Clifford Z BriddickFranceOnyama Limba NEGOTIATION
Chavez R GillianSpainElwin Sharvill NEW
Leja B KolmetzSpainIoni Bowcher UNQUALIFIED
Aruna S KuskoItalyElwin Sharvill RENEWAL
Cody M FigeroaItalyIvan Magalhaes NEGOTIATION
Rodrigues C MacleadRussiaBernardo Dominic NEW
James W PoquetteArgentinaAsiya Javayant UNQUALIFIED
Smith G MaletFranceAnna Fali UNQUALIFIED
Adams Y SaylorsArgentinaIoni Bowcher NEW
Faith S CaldareraAustraliaAmy Elsner RENEWAL
Greenwood J AmigonUnited KingdomOnyama Limba PROPOSAL
Ricardo G GlickAustraliaAmy Elsner QUALIFIED
Isabel Y SchemmerIndiaIvan Magalhaes RENEWAL
Misaki X RulapaughRussiaElwin Sharvill QUALIFIED

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