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
Juan V RimSpainAsiya Javayant NEGOTIATION
Chavez F DarakjyGermanyOnyama Limba NEW
Clifford F MaletAustraliaAmy Elsner RENEWAL
Murillo T BowleyJapanOnyama Limba RENEWAL
Ivar Y PoquetteItalyAnna Fali NEW
Cody Z CaldareraArgentinaAsiya Javayant PROPOSAL
Munro C GauchoRussiaAnna Fali QUALIFIED
Tony X RutaJapanIvan Magalhaes NEGOTIATION
Wickens S WaycottCanadaAsiya Javayant NEGOTIATION
Ashley A TollnerFranceXuxue Feng PROPOSAL
James Q RutaArgentinaBernardo Dominic NEW
Adams R SlusarskiRussiaAmy Elsner UNQUALIFIED
Smith V WieserFranceAnna Fali QUALIFIED
Ashley N MacleadGermanyAmy Elsner NEGOTIATION
Sinclair F PerinGermanyAmy Elsner NEGOTIATION
Stacey P OstroskyFranceElwin Sharvill RENEWAL
Antonio O MaletGermanyIoni Bowcher NEGOTIATION
Emily A FerenczBrazilAsiya Javayant PROPOSAL
Jones U FerenczBrazilElwin Sharvill NEW
Smith O MaletAustraliaAnna Fali NEW
Arvin Q FlosiUnited KingdomBernardo Dominic UNQUALIFIED
Clifford L BowleyAustraliaBernardo Dominic RENEWAL
Mujtaba G AlbaresAustraliaStephen Shaw UNQUALIFIED
Jennifer I CampainJapanElwin Sharvill RENEWAL
Jefferson W BologniaGermanyBernardo Dominic PROPOSAL
Antonio C NestleIndiaElwin Sharvill PROPOSAL
Maisha N KolmetzSpainXuxue Feng UNQUALIFIED
Faith X StockhamAustraliaIvan Magalhaes QUALIFIED
Silvio K AmigonBrazilElwin Sharvill NEGOTIATION
Smith Z BowleyGermanyAsiya Javayant NEGOTIATION
Morrow H GauchoFranceAsiya Javayant QUALIFIED
Faith O PerinAustraliaAsiya Javayant PROPOSAL
Aditya C FerenczFranceAnna Fali RENEWAL
Isabel Q SlusarskiFranceStephen Shaw RENEWAL
David I RimAustraliaIvan Magalhaes QUALIFIED
Tony R BologniaItalyOnyama Limba RENEWAL
Clifford B FerenczIndiaOnyama Limba QUALIFIED
Alejandro P MacleadUnited KingdomXuxue Feng QUALIFIED
Silvio J BowleyAustraliaStephen Shaw QUALIFIED
Faith J StensethArgentinaAsiya Javayant PROPOSAL
Costa B OldroydRussiaStephen Shaw NEW
Izzy H RutaItalyAnna Fali UNQUALIFIED
Maria W TollnerArgentinaOnyama Limba NEGOTIATION
Alejandro K SchemmerAustraliaAsiya Javayant PROPOSAL
Julie V FollerAustraliaIvan Magalhaes RENEWAL
Rodrigues K DarakjyAustraliaOnyama Limba UNQUALIFIED
Izzy D SergiIndiaAnna Fali NEGOTIATION
Maria X AmigonSpainAsiya Javayant PROPOSAL
Munro Z MaletRussiaAsiya Javayant QUALIFIED
Jones B ButtUnited KingdomXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Maria T RimFranceOnyama Limba NEW
Aika R PerinUnited KingdomOnyama Limba PROPOSAL
Kadeem O CaldareraGermanyAnna Fali RENEWAL
Emily V InouyeAustraliaElwin Sharvill RENEWAL
Mayumi O BologniaIndiaIvan Magalhaes NEW
Octavia Y MaletArgentinaXuxue Feng RENEWAL
Jones E MorascaRussiaOnyama Limba PROPOSAL
Jones W SergiAustraliaIoni Bowcher QUALIFIED
Jefferson I SergiIndiaXuxue Feng RENEWAL
Deepesh G OstroskyArgentinaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair R FollerSpain2024-03-30Dorl, James J Esq NEW90Anna Fali
1001Chavez D WieserJapan2024-04-18Rousseaux, Michael Esq NEGOTIATION34Elwin Sharvill
1002Costa Q GarufiCanada2024-04-09Feiner Bros RENEWAL52Bernardo Dominic
1003Ricardo F OstroskyFrance2024-04-14Truhlar And Truhlar Attys UNQUALIFIED87Bernardo Dominic
1004Leon W GauchoItaly2024-04-07Chapman, Ross E Esq RENEWAL25Elwin Sharvill
1005Kaitlin U WaycottUnited Kingdom2024-03-31Dorl, James J Esq RENEWAL64Elwin Sharvill
1006Rodrigues J MaletIndia2024-03-21Chemel, James L Cpa RENEWAL76Bernardo Dominic
1007Octavia P ShinkoArgentina2024-03-24Commercial Press PROPOSAL85Asiya Javayant
1008Greenwood U OldroydCanada2024-04-15Chanay, Jeffrey A Esq QUALIFIED14Asiya Javayant
1009Rodrigues H CampainSpain2024-04-05Feltz Printing Service NEGOTIATION7Onyama Limba
1010Silvio A AmigonUnited Kingdom2024-04-06Chanay, Jeffrey A Esq QUALIFIED51Onyama Limba
1011Deepesh B ButtSpain2024-03-31Morlong Associates PROPOSAL66Ioni Bowcher
1012Wickens W VocelkaSpain2024-04-13Printing Dimensions NEW50Elwin Sharvill
1013Morrow H BologniaGermany2024-04-18Feltz Printing Service UNQUALIFIED87Stephen Shaw
1014Aika A PerinAustralia2024-03-29Chanay, Jeffrey A Esq RENEWAL27Asiya Javayant
1015Misaki A RulapaughItaly2024-03-20Commercial Press UNQUALIFIED83Ivan Magalhaes
1016Chavez E AmigonArgentina2024-04-01Rangoni Of Florence NEGOTIATION23Elwin Sharvill
1017Tony H MaletGermany2024-03-27Chemel, James L Cpa NEGOTIATION95Ioni Bowcher
1018Nicolas R WieserJapan2024-03-26Chemel, James L Cpa NEGOTIATION14Elwin Sharvill
1019Aruna X VocelkaCanada2024-03-27Feltz Printing Service QUALIFIED92Ivan Magalhaes
1020Aditya H InouyeArgentina2024-03-30Feltz Printing Service NEW28Stephen Shaw
1021Alejandro V CaldareraRussia2024-04-01Truhlar And Truhlar Attys QUALIFIED32Onyama Limba
1022Kadeem S WieserIndia2024-04-12Chapman, Ross E Esq QUALIFIED93Asiya Javayant
1023Munro J SlusarskiArgentina2024-04-15Dorl, James J Esq QUALIFIED36Asiya Javayant
1024Alejandro K AlbaresFrance2024-03-26Dorl, James J Esq NEW12Ivan Magalhaes
1025Ashley O WaycottItaly2024-03-22Rousseaux, Michael Esq NEW87Anna Fali
1026James J IturbideFrance2024-04-16Rousseaux, Michael Esq NEW9Xuxue Feng
1027Darci D RimUnited Kingdom2024-03-29Chanay, Jeffrey A Esq NEGOTIATION56Onyama Limba
1028Misaki S MacleadFrance2024-03-20Feiner Bros PROPOSAL22Bernardo Dominic
1029Johnson R DilliardSpain2024-04-05Benton, John B Jr RENEWAL97Asiya Javayant
1030Darci C GlickFrance2024-04-10Buckley Miller Wright QUALIFIED55Elwin Sharvill
1031Salvatore A BriddickCanada2024-03-28Chanay, Jeffrey A Esq NEW57Xuxue Feng
1032Aika T GillianRussia2024-03-26Rangoni Of Florence QUALIFIED40Elwin Sharvill
1033Cody U GlickArgentina2024-04-15Chemel, James L Cpa QUALIFIED51Asiya Javayant
1034Adams E DarakjyCanada2024-04-15Feltz Printing Service NEW99Onyama Limba
1035Francesco R SchemmerIndia2024-04-17Morlong Associates QUALIFIED34Asiya Javayant
1036Ricardo P FigeroaCanada2024-04-07Benton, John B Jr RENEWAL51Amy Elsner
1037Juan G StensethItaly2024-04-18Rousseaux, Michael Esq QUALIFIED87Xuxue Feng
1038Faith W PerinArgentina2024-04-11Chapman, Ross E Esq PROPOSAL59Asiya Javayant
1039Octavia Q VocelkaAustralia2024-04-05Feltz Printing Service QUALIFIED65Anna Fali
1040Deepesh T PaprockiRussia2024-03-24Rangoni Of Florence QUALIFIED44Xuxue Feng
1041Ivar X DoeCanada2024-03-29Chapman, Ross E Esq UNQUALIFIED42Anna Fali
1042Wickens V KolmetzBrazil2024-03-31Dorl, James J Esq QUALIFIED49Stephen Shaw
1043Nicolas L CampainArgentina2024-04-06Morlong Associates QUALIFIED78Stephen Shaw
1044Mayumi Y MaletFrance2024-03-23Rangoni Of Florence QUALIFIED96Ivan Magalhaes
1045Jones Q AmigonAustralia2024-03-25Chapman, Ross E Esq PROPOSAL13Ivan Magalhaes
1046Mayumi X FollerRussia2024-03-30Chanay, Jeffrey A Esq NEW61Stephen Shaw
1047Maria E VenereSpain2024-04-09Chemel, James L Cpa RENEWAL80Onyama Limba
1048Antonio V BowleyFrance2024-03-25Dorl, James J Esq PROPOSAL35Elwin Sharvill
1049Morrow C BowleyRussia2024-04-04Commercial Press UNQUALIFIED8Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin P StensethAustraliaAsiya Javayant RENEWAL
Leon Q ButtGermanyXuxue Feng RENEWAL
Leja Z IturbideGermanyOnyama Limba NEGOTIATION
Chavez R BriddickArgentinaElwin Sharvill RENEWAL
Silvio L RulapaughBrazilBernardo Dominic NEW
James Y KolmetzItalyAmy Elsner NEW
Jeanfrancois F FerenczUnited KingdomOnyama Limba QUALIFIED
David P TollnerJapanOnyama Limba PROPOSAL
Ashley Y RutaRussiaAmy Elsner QUALIFIED
Mujtaba O MarrierJapanAnna Fali RENEWAL
Silvio Q PoquetteBrazilOnyama Limba NEW
David L KolmetzJapanStephen Shaw QUALIFIED
Leja E TollnerAustraliaAnna Fali NEW
Misaki Q FollerGermanyAsiya Javayant UNQUALIFIED
Salvatore J DoeArgentinaAsiya Javayant NEW
Kaitlin A NestleIndiaAmy Elsner RENEWAL
Morrow K WieserFranceAnna Fali NEW
Jones A RimBrazilAmy Elsner RENEWAL
Izzy J GarufiSpainIvan Magalhaes UNQUALIFIED
Mayumi D DilliardBrazilIvan Magalhaes PROPOSAL
Alejandro K VocelkaAustraliaAnna Fali NEGOTIATION
Ivar Y GarufiBrazilXuxue Feng NEW
Misaki I PaprockiUnited KingdomAsiya Javayant UNQUALIFIED
Francesco A DilliardSpainAsiya Javayant PROPOSAL
Rodrigues S PaprockiUnited KingdomBernardo Dominic NEW
Ricardo Y PaprockiGermanyAnna Fali RENEWAL
Clifford K FigeroaCanadaAsiya Javayant PROPOSAL
Darci T WaycottJapanElwin Sharvill NEGOTIATION
Deepesh R KuskoJapanStephen Shaw RENEWAL
Aruna H AlbaresRussiaIvan Magalhaes QUALIFIED
Aruna N CaldareraUnited KingdomIvan Magalhaes PROPOSAL
Smith T FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Aruna L VenereItalyIoni Bowcher NEW
Chavez I ChuiCanadaAnna Fali RENEWAL
Ashley G DilliardJapanIoni Bowcher NEW
Leja C KuskoFranceElwin Sharvill RENEWAL
Aruna X RulapaughIndiaAmy Elsner NEGOTIATION
Maria W MacleadBrazilAsiya Javayant NEW
Nicolas Z IturbideGermanyIoni Bowcher QUALIFIED
Mujtaba U IturbideRussiaOnyama Limba QUALIFIED
Adams C BowleyItalyAnna Fali NEGOTIATION
Juan F OstroskyGermanyBernardo Dominic QUALIFIED
Cody T DilliardGermanyStephen Shaw PROPOSAL
Silvio F RulapaughIndiaOnyama Limba QUALIFIED
Faith M KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Costa S TollnerIndiaOnyama Limba NEGOTIATION
James B BologniaSpainElwin Sharvill NEGOTIATION
Deepesh Q SchemmerBrazilBernardo Dominic NEW
Stacey P FerenczUnited KingdomIoni Bowcher PROPOSAL
Faith Z MacleadRussiaBernardo Dominic QUALIFIED
Frozen Columns
Name
Ricardo V Stockham
Stacey R Whobrey
Isabel K Morasca
Ricardo R Vocelka
Kadeem H Glick
Chavez R Ostrosky
Silvio R Campain
Wickens F Inouye
Arvin B Briddick
Stacey E Schemmer
David L Kusko
Nicolas X Albares
Kadeem M Iturbide
Jefferson F Perin
Leja F Ruta
Leon G Malet
Ivar O Bowley
Octavia C Glick
Johnson E Saylors
Julie H Morasca
Tony K Morasca
Munro H Gaucho
Maisha D Inouye
Kaitlin H Ferencz
Emily A Rulapaugh
Leja Y Caldarera
Misaki D Perin
Kadeem R Bowley
Silvio R Stockham
Alejandro Z Stockham
Jeanfrancois R Maclead
Isabel C Inouye
Kadeem X Gillian
Jennifer O Oldroyd
Leon Q Albares
Misaki V Dilliard
Kaitlin R Caudy
Rodrigues J Morasca
Murillo Z Ostrosky
James I Sergi
Emily B Glick
James A Paprocki
Ashley O Wieser
Kaitlin R Tollner
Aditya N Morasca
Ashley S Darakjy
Francesco Y Inouye
Aika D Rulapaugh
Izzy O Marrier
Jennifer N Morasca
IdCountryDate
1000Italy2024-04-13
1001United Kingdom2024-03-20
1002Italy2024-03-20
1003Italy2024-04-14
1004India2024-04-09
1005Japan2024-03-26
1006Argentina2024-04-06
1007Argentina2024-04-14
1008Argentina2024-04-07
1009Germany2024-03-25
1010Russia2024-04-01
1011Japan2024-04-04
1012Spain2024-04-18
1013Brazil2024-04-16
1014India2024-03-30
1015Spain2024-04-07
1016Argentina2024-04-09
1017India2024-04-04
1018Brazil2024-04-06
1019Japan2024-04-04
1020Brazil2024-04-18
1021Japan2024-04-07
1022Australia2024-04-11
1023France2024-03-26
1024Italy2024-04-14
1025Spain2024-03-24
1026Brazil2024-03-30
1027Japan2024-03-26
1028Russia2024-04-02
1029India2024-04-09
1030Italy2024-04-13
1031India2024-04-05
1032Russia2024-04-07
1033Japan2024-04-18
1034United Kingdom2024-03-20
1035Japan2024-04-12
1036Germany2024-04-12
1037United Kingdom2024-04-07
1038Spain2024-04-17
1039Germany2024-04-04
1040Australia2024-04-10
1041Canada2024-03-21
1042Argentina2024-04-10
1043Canada2024-04-18
1044France2024-04-16
1045France2024-04-18
1046Spain2024-04-14
1047Argentina2024-03-28
1048Canada2024-04-08
1049Italy2024-04-12

On-Demand Data

NameIdCountryDate
Smith N Iturbide1000India2024-03-25
Wickens L Garufi1001Argentina2024-04-08
Claire B Poquette1002Russia2024-03-29
Nicolas N Garufi1003Russia2024-04-16
Juan L Paprocki1004United Kingdom2024-03-21
Deepesh Q Royster1005Japan2024-03-30
Kadeem X Ostrosky1006United Kingdom2024-03-22
Ashley X Albares1007Argentina2024-03-29
Ricardo A Maclead1008Canada2024-03-25
Stacey R Rim1009Australia2024-04-16
James F Figeroa1010France2024-04-12
Antonio J Ostrosky1011Russia2024-03-24
Morrow G Rulapaugh1012Germany2024-04-05
Tony D Albares1013Australia2024-04-08
Aika Y Perin1014United Kingdom2024-03-26
Ivar I Ostrosky1015Italy2024-04-08
Misaki W Nestle1016United Kingdom2024-03-26
Johnson G Ostrosky1017Australia2024-03-30
Johnson K Sergi1018Brazil2024-03-30
Alejandro C Venere1019Russia2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David H BologniaSpainElwin Sharvill UNQUALIFIED
Nicolas C SlusarskiFranceElwin Sharvill PROPOSAL
Ivar M DilliardIndiaOnyama Limba UNQUALIFIED
Antonio H OldroydIndiaAsiya Javayant QUALIFIED
Jeanfrancois U MarrierArgentinaOnyama Limba NEW
Nicolas U KolmetzItalyXuxue Feng NEGOTIATION
Antonio N GillianFranceIvan Magalhaes PROPOSAL
Costa Y VocelkaCanadaStephen Shaw RENEWAL
Cody J StockhamAustraliaAsiya Javayant NEW
Mayumi Z RutaArgentinaIvan Magalhaes PROPOSAL
Greenwood H RoysterItalyAnna Fali NEW
Chavez C FollerBrazilBernardo Dominic NEW
Leon B PoquetteRussiaAnna Fali UNQUALIFIED
Maisha Y ShinkoCanadaIoni Bowcher UNQUALIFIED
Ivar L DilliardRussiaAsiya Javayant PROPOSAL
Tony I KuskoFranceAnna Fali NEGOTIATION
Jones Q SlusarskiUnited KingdomAmy Elsner RENEWAL
Aditya Y DarakjyIndiaBernardo Dominic UNQUALIFIED
Clifford T RutaSpainIvan Magalhaes NEGOTIATION
Alejandro N FigeroaJapanAmy Elsner UNQUALIFIED
Arvin G BriddickRussiaBernardo Dominic NEGOTIATION
Clifford R BologniaIndiaIoni Bowcher RENEWAL
Octavia V CampainAustraliaAmy Elsner PROPOSAL
Isabel D PaprockiJapanBernardo Dominic UNQUALIFIED
Clifford Z AmigonJapanIvan Magalhaes QUALIFIED
Wickens F BriddickAustraliaAnna Fali NEGOTIATION
Leon V DoeGermanyIvan Magalhaes QUALIFIED
Octavia A GauchoRussiaAnna Fali RENEWAL
Izzy R MaletJapanIvan Magalhaes NEGOTIATION
Morrow E FerenczItalyElwin Sharvill NEW
Kadeem Z VenereItalyXuxue Feng PROPOSAL
Juan T BologniaIndiaIoni Bowcher NEW
Jeanfrancois Q RimCanadaIvan Magalhaes RENEWAL
Jennifer X AlbaresIndiaAnna Fali QUALIFIED
Costa C FerenczFranceIvan Magalhaes QUALIFIED
Morrow E FlosiArgentinaBernardo Dominic RENEWAL
Kaitlin Z MaletBrazilBernardo Dominic RENEWAL
Faith I MarrierAustraliaAmy Elsner PROPOSAL
Greenwood S SchemmerArgentinaXuxue Feng PROPOSAL
Juan D CampainCanadaAnna 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>