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
Jefferson B OstroskyRussiaIoni Bowcher PROPOSAL
Salvatore N StockhamFranceIvan Magalhaes RENEWAL
Greenwood S ShinkoRussiaElwin Sharvill RENEWAL
Antonio Q WaycottCanadaOnyama Limba UNQUALIFIED
Johnson I RutaGermanyElwin Sharvill RENEWAL
Claire Q InouyeIndiaStephen Shaw QUALIFIED
Faith W GillianRussiaAmy Elsner NEW
Adams F NickaItalyIoni Bowcher NEGOTIATION
Jennifer G SaylorsGermanyBernardo Dominic RENEWAL
Salvatore R IturbideItalyStephen Shaw RENEWAL
Antonio E RoysterSpainAsiya Javayant RENEWAL
Maisha K FlosiGermanyXuxue Feng NEGOTIATION
Clifford N GlickIndiaBernardo Dominic NEGOTIATION
David G PaprockiIndiaStephen Shaw PROPOSAL
Adams J AmigonJapanIoni Bowcher NEGOTIATION
Murillo N FerenczAustraliaIvan Magalhaes NEGOTIATION
Faith Q GauchoSpainBernardo Dominic NEW
Sinclair Y MaletBrazilOnyama Limba NEW
Salvatore Q DilliardArgentinaIvan Magalhaes NEGOTIATION
Aika E GlickUnited KingdomAnna Fali RENEWAL
Aditya W GillianSpainAmy Elsner UNQUALIFIED
Ashley Z WhobreyArgentinaBernardo Dominic UNQUALIFIED
Jefferson U VocelkaIndiaStephen Shaw UNQUALIFIED
Ashley E PaprockiFranceOnyama Limba NEGOTIATION
Mujtaba A DarakjyJapanIoni Bowcher PROPOSAL
Isabel T StensethArgentinaAsiya Javayant RENEWAL
Faith Q RoysterFranceAmy Elsner QUALIFIED
James Q RoysterItalyAsiya Javayant QUALIFIED
Ashley Y AmigonSpainAnna Fali NEGOTIATION
Julie V RulapaughGermanyXuxue Feng UNQUALIFIED
Johnson Y StockhamBrazilAmy Elsner UNQUALIFIED
Emily X StensethCanadaOnyama Limba PROPOSAL
Maria K PaprockiBrazilAsiya Javayant QUALIFIED
Emily Z MaletFranceBernardo Dominic RENEWAL
Jeanfrancois L MaletAustraliaElwin Sharvill RENEWAL
Kaitlin K AlbaresJapanAnna Fali NEGOTIATION
Maria G RoysterArgentinaXuxue Feng PROPOSAL
Chavez U KolmetzCanadaAmy Elsner RENEWAL
Costa O CampainJapanAnna Fali PROPOSAL
Murillo N StockhamJapanAnna Fali QUALIFIED
Francesco O SergiJapanAmy Elsner UNQUALIFIED
David N StockhamBrazilOnyama Limba PROPOSAL
Jeanfrancois Y DilliardSpainXuxue Feng NEW
James E GlickJapanAmy Elsner NEW
Mayumi W TollnerCanadaAmy Elsner RENEWAL
Isabel D RoysterUnited KingdomIoni Bowcher PROPOSAL
Sinclair F FlosiUnited KingdomXuxue Feng UNQUALIFIED
Clifford W MacleadAustraliaOnyama Limba PROPOSAL
Izzy Q GlickRussiaOnyama Limba UNQUALIFIED
Arvin K GauchoRussiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi U OstroskyItalyAmy Elsner PROPOSAL
Ivar H VenereBrazilIoni Bowcher UNQUALIFIED
Misaki E ChuiSpainAmy Elsner RENEWAL
Kadeem H FollerBrazilIoni Bowcher PROPOSAL
Julie Z ButtRussiaOnyama Limba UNQUALIFIED
Smith U FollerBrazilAnna Fali QUALIFIED
Aika Q PaprockiAustraliaIoni Bowcher RENEWAL
Ashley V FigeroaUnited KingdomXuxue Feng NEGOTIATION
Darci L NestleJapanElwin Sharvill NEGOTIATION
Munro S DilliardIndiaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer I GillianJapan2024-03-30Chapman, Ross E Esq RENEWAL87Elwin Sharvill
1001Maria F DarakjyIndia2024-04-08Benton, John B Jr RENEWAL27Bernardo Dominic
1002James K FigeroaFrance2024-04-11Feltz Printing Service NEGOTIATION34Asiya Javayant
1003James X KolmetzUnited Kingdom2024-04-16Rangoni Of Florence PROPOSAL65Xuxue Feng
1004Juan R DarakjySpain2024-04-05Rousseaux, Michael Esq RENEWAL52Ioni Bowcher
1005Murillo C PoquetteCanada2024-04-12Rangoni Of Florence RENEWAL33Bernardo Dominic
1006Aika P ButtJapan2024-04-16Truhlar And Truhlar Attys NEGOTIATION62Ioni Bowcher
1007Mayumi E CaudySpain2024-04-08Benton, John B Jr NEW64Elwin Sharvill
1008Nicolas K GauchoRussia2024-04-05Rousseaux, Michael Esq UNQUALIFIED57Ioni Bowcher
1009Rodrigues Y StensethGermany2024-04-16Rangoni Of Florence RENEWAL11Anna Fali
1010Ricardo N SlusarskiRussia2024-03-27Chanay, Jeffrey A Esq NEGOTIATION76Anna Fali
1011David M InouyeSpain2024-04-19Buckley Miller Wright NEW72Asiya Javayant
1012Octavia S MorascaFrance2024-04-21Rangoni Of Florence RENEWAL92Amy Elsner
1013Leja W MorascaUnited Kingdom2024-04-07Chapman, Ross E Esq QUALIFIED58Amy Elsner
1014Cody N MaletCanada2024-03-29Rangoni Of Florence NEW93Anna Fali
1015Nicolas N MaletIndia2024-04-01Rangoni Of Florence QUALIFIED15Onyama Limba
1016Chavez B DilliardAustralia2024-04-15Chapman, Ross E Esq NEGOTIATION32Amy Elsner
1017Greenwood L MacleadBrazil2024-04-18Rangoni Of Florence UNQUALIFIED23Elwin Sharvill
1018Maria O InouyeArgentina2024-04-04Commercial Press QUALIFIED89Anna Fali
1019Francesco W GauchoRussia2024-04-21Feiner Bros RENEWAL19Asiya Javayant
1020Chavez M GauchoFrance2024-04-09Commercial Press NEW71Xuxue Feng
1021Aruna A BologniaIndia2024-04-20Chapman, Ross E Esq UNQUALIFIED84Stephen Shaw
1022Kaitlin M OstroskyJapan2024-04-17Commercial Press RENEWAL46Xuxue Feng
1023Salvatore N RoysterItaly2024-03-27Dorl, James J Esq NEGOTIATION75Asiya Javayant
1024Smith J GlickBrazil2024-03-28Chapman, Ross E Esq NEW53Asiya Javayant
1025Jeanfrancois O WhobreyJapan2024-04-16Chapman, Ross E Esq QUALIFIED19Asiya Javayant
1026Claire U VocelkaFrance2024-04-01Benton, John B Jr QUALIFIED46Bernardo Dominic
1027Munro G PoquetteAustralia2024-04-10Commercial Press RENEWAL46Bernardo Dominic
1028Munro E OstroskyItaly2024-04-16Chemel, James L Cpa QUALIFIED7Onyama Limba
1029Sinclair G FigeroaSpain2024-04-19Rangoni Of Florence NEGOTIATION12Stephen Shaw
1030Antonio Q MorascaItaly2024-04-16Truhlar And Truhlar Attys NEGOTIATION5Elwin Sharvill
1031Wickens C MaletRussia2024-03-29Chemel, James L Cpa NEGOTIATION82Ioni Bowcher
1032Maisha Q MaletBrazil2024-03-30Feltz Printing Service UNQUALIFIED73Amy Elsner
1033Octavia B SaylorsRussia2024-04-02Chanay, Jeffrey A Esq UNQUALIFIED58Elwin Sharvill
1034Maisha U KolmetzAustralia2024-04-12Feltz Printing Service QUALIFIED16Elwin Sharvill
1035Julie B NickaAustralia2024-04-20Chanay, Jeffrey A Esq NEGOTIATION96Stephen Shaw
1036Maria B MacleadUnited Kingdom2024-04-12Printing Dimensions NEGOTIATION50Xuxue Feng
1037Octavia Q MaletRussia2024-04-06Benton, John B Jr PROPOSAL65Onyama Limba
1038Greenwood P DoeArgentina2024-04-02Benton, John B Jr QUALIFIED3Elwin Sharvill
1039Mayumi Z MarrierGermany2024-04-19Truhlar And Truhlar Attys RENEWAL99Elwin Sharvill
1040Costa N GillianGermany2024-04-03Chemel, James L Cpa RENEWAL77Ioni Bowcher
1041Octavia I BriddickIndia2024-04-25Chemel, James L Cpa NEW96Asiya Javayant
1042Emily Z MaletArgentina2024-04-12Rangoni Of Florence RENEWAL80Elwin Sharvill
1043Stacey B KolmetzCanada2024-04-24Rousseaux, Michael Esq PROPOSAL85Asiya Javayant
1044Octavia L OstroskyAustralia2024-03-30Feltz Printing Service RENEWAL81Elwin Sharvill
1045Morrow P NestleRussia2024-04-15Feiner Bros UNQUALIFIED35Elwin Sharvill
1046James S FigeroaArgentina2024-04-08Truhlar And Truhlar Attys NEGOTIATION21Amy Elsner
1047Emily Y MaletBrazil2024-03-31King, Christopher A Esq RENEWAL5Ivan Magalhaes
1048Smith Y WhobreyJapan2024-03-31Chemel, James L Cpa NEW85Xuxue Feng
1049Ivar X RutaIndia2024-03-29Morlong Associates QUALIFIED57Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Murillo P StockhamRussiaAnna Fali NEGOTIATION
Izzy R MacleadRussiaBernardo Dominic UNQUALIFIED
Ashley A IturbideUnited KingdomIvan Magalhaes NEW
Ricardo K ChuiFranceAsiya Javayant NEGOTIATION
Maisha J ButtRussiaAmy Elsner NEW
Maisha J SergiIndiaStephen Shaw RENEWAL
Arvin B RoysterBrazilAmy Elsner PROPOSAL
Deepesh S GarufiArgentinaElwin Sharvill PROPOSAL
Jennifer D AlbaresFranceIoni Bowcher UNQUALIFIED
Aika Q ButtGermanyIvan Magalhaes NEW
Jones O RoysterBrazilElwin Sharvill PROPOSAL
Julie M BriddickSpainIoni Bowcher NEW
Jones Q NickaFranceAnna Fali UNQUALIFIED
Morrow R IturbideUnited KingdomXuxue Feng PROPOSAL
Munro E BowleyIndiaAsiya Javayant NEW
Juan K BowleyUnited KingdomAnna Fali PROPOSAL
Leon G KuskoAustraliaXuxue Feng UNQUALIFIED
James V SlusarskiRussiaOnyama Limba RENEWAL
Jeanfrancois H CampainSpainAsiya Javayant PROPOSAL
David H SergiItalyXuxue Feng PROPOSAL
Jones P VocelkaCanadaAsiya Javayant PROPOSAL
Ricardo A ButtIndiaIvan Magalhaes QUALIFIED
Arvin Y SchemmerUnited KingdomOnyama Limba QUALIFIED
Tony Q MaletItalyIoni Bowcher PROPOSAL
Costa K FollerUnited KingdomXuxue Feng PROPOSAL
Greenwood D RimGermanyElwin Sharvill QUALIFIED
Antonio I ChuiUnited KingdomAnna Fali QUALIFIED
Murillo V PerinCanadaStephen Shaw QUALIFIED
Silvio C SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
Faith U DoeGermanyBernardo Dominic NEW
Aruna V ShinkoRussiaBernardo Dominic UNQUALIFIED
Rodrigues K CampainArgentinaBernardo Dominic UNQUALIFIED
Misaki A KuskoIndiaAmy Elsner UNQUALIFIED
Chavez Q DoeFranceElwin Sharvill NEGOTIATION
Jones K BologniaArgentinaAsiya Javayant QUALIFIED
Kaitlin C DoeItalyIoni Bowcher NEGOTIATION
Clifford G RutaAustraliaAmy Elsner NEW
Isabel C DoeArgentinaIoni Bowcher PROPOSAL
Jones F GillianSpainBernardo Dominic QUALIFIED
Clifford I MarrierRussiaAmy Elsner RENEWAL
Tony L WhobreyUnited KingdomIoni Bowcher RENEWAL
Ricardo A BriddickGermanyAsiya Javayant UNQUALIFIED
Leon Y KuskoBrazilAmy Elsner UNQUALIFIED
Misaki A NickaJapanStephen Shaw QUALIFIED
Misaki K RulapaughCanadaXuxue Feng UNQUALIFIED
Alejandro I BologniaUnited KingdomIoni Bowcher UNQUALIFIED
Darci S FlosiJapanAnna Fali NEW
Leon F GarufiIndiaIoni Bowcher NEGOTIATION
Murillo A DarakjyIndiaAsiya Javayant PROPOSAL
Johnson O MaletIndiaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Munro O Ruta
Aruna K Maclead
Cody Z Malet
Misaki V Foller
Stacey U Saylors
Jones C Bolognia
Francesco L Poquette
Deepesh W Schemmer
Kaitlin R Malet
Misaki W Malet
Emily W Maclead
Deepesh Z Figeroa
James F Caudy
Adams W Sergi
David X Maclead
Darci P Wieser
Aditya A Amigon
Aika T Butt
Smith F Amigon
Leja J Malet
Aruna N Stenseth
Stacey A Albares
Julie F Inouye
Izzy N Slusarski
Cody N Bolognia
Octavia C Morasca
Morrow N Venere
Izzy R Malet
David H Gillian
Tony O Caudy
Nicolas U Caldarera
Murillo O Chui
Wickens Y Tollner
Chavez Y Malet
Jeanfrancois M Tollner
Nicolas R Gaucho
Clifford Z Caudy
Julie N Rulapaugh
Deepesh C Royster
Kaitlin Z Gaucho
Johnson Y Garufi
Nicolas D Slusarski
Jeanfrancois P Oldroyd
Deepesh F Garufi
Jones P Vocelka
Maisha I Amigon
Murillo W Foller
Jones M Wieser
Alejandro Z Nestle
Stacey O Nestle
IdCountryDate
1000Brazil2024-03-28
1001Japan2024-04-20
1002Germany2024-03-28
1003Australia2024-03-27
1004Australia2024-04-25
1005Japan2024-04-19
1006Argentina2024-04-02
1007France2024-04-04
1008Brazil2024-04-04
1009Italy2024-04-17
1010Australia2024-04-07
1011India2024-04-21
1012Brazil2024-03-28
1013Italy2024-04-25
1014Australia2024-04-12
1015India2024-03-27
1016Argentina2024-04-12
1017United Kingdom2024-04-09
1018Russia2024-03-27
1019United Kingdom2024-04-13
1020Spain2024-04-19
1021Russia2024-03-31
1022India2024-03-28
1023France2024-03-27
1024Japan2024-04-17
1025Italy2024-04-22
1026Australia2024-04-22
1027Italy2024-03-30
1028Canada2024-04-06
1029Argentina2024-03-29
1030Canada2024-04-02
1031Russia2024-04-05
1032Australia2024-04-25
1033India2024-04-14
1034Brazil2024-04-01
1035India2024-04-07
1036Japan2024-04-11
1037India2024-03-28
1038Italy2024-03-31
1039Spain2024-04-08
1040Argentina2024-04-14
1041Italy2024-04-13
1042United Kingdom2024-04-18
1043Russia2024-04-24
1044Spain2024-04-13
1045Japan2024-04-21
1046Japan2024-04-01
1047Australia2024-04-05
1048Germany2024-04-12
1049Japan2024-04-15

On-Demand Data

NameIdCountryDate
Johnson X Briddick1000Argentina2024-04-03
Smith Q Malet1001Canada2024-04-12
Deepesh D Stenseth1002United Kingdom2024-04-11
Misaki H Sergi1003Germany2024-04-05
Francesco Y Figeroa1004Russia2024-04-09
Jennifer L Campain1005Germany2024-03-27
Munro E Chui1006Italy2024-03-29
Clifford M Kolmetz1007United Kingdom2024-03-29
Jefferson B Stenseth1008Canada2024-04-14
Jefferson Z Campain1009United Kingdom2024-04-25
Jennifer K Saylors1010Germany2024-04-12
Leon I Poquette1011Italy2024-04-13
Munro S Garufi1012Australia2024-04-04
Mayumi L Iturbide1013Brazil2024-03-28
Munro X Figeroa1014Germany2024-04-16
Adams M Marrier1015Australia2024-04-16
Ivar X Albares1016Japan2024-03-30
Clifford A Rulapaugh1017Australia2024-04-15
Sinclair P Iturbide1018Brazil2024-04-05
Stacey T Caldarera1019Brazil2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia C FollerRussiaAmy Elsner QUALIFIED
Aruna Z WieserRussiaIoni Bowcher QUALIFIED
Francesco S FerenczJapanElwin Sharvill NEGOTIATION
Salvatore E SlusarskiJapanStephen Shaw NEW
Antonio N WieserCanadaAmy Elsner PROPOSAL
Murillo S IturbideCanadaElwin Sharvill PROPOSAL
Izzy Z CaldareraSpainAsiya Javayant NEGOTIATION
Sinclair M BologniaRussiaStephen Shaw RENEWAL
Silvio A VenereItalyElwin Sharvill NEW
Emily T SchemmerArgentinaStephen Shaw NEW
Claire D PoquetteAustraliaStephen Shaw UNQUALIFIED
Ricardo N GarufiRussiaAsiya Javayant QUALIFIED
Faith B StensethCanadaElwin Sharvill PROPOSAL
Ricardo X RutaBrazilBernardo Dominic NEGOTIATION
Arvin G GarufiArgentinaIvan Magalhaes NEGOTIATION
Stacey K FollerRussiaBernardo Dominic QUALIFIED
Deepesh H CampainCanadaAmy Elsner UNQUALIFIED
Juan U PoquetteSpainOnyama Limba RENEWAL
Isabel N AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba J FollerCanadaBernardo Dominic PROPOSAL
Maisha R GauchoSpainAsiya Javayant PROPOSAL
Greenwood C FigeroaJapanAnna Fali RENEWAL
Deepesh X GlickGermanyAnna Fali PROPOSAL
James Y DoeAustraliaAsiya Javayant NEW
Ashley K FigeroaUnited KingdomOnyama Limba UNQUALIFIED
Octavia M CampainUnited KingdomIoni Bowcher PROPOSAL
Ashley G MarrierCanadaOnyama Limba QUALIFIED
Maisha Y FollerGermanyXuxue Feng RENEWAL
Aditya H IturbideAustraliaElwin Sharvill NEW
Clifford U GlickCanadaAsiya Javayant QUALIFIED
Claire E IturbideFranceElwin Sharvill UNQUALIFIED
Izzy D WhobreyIndiaAmy Elsner NEW
Mayumi B KuskoItalyAmy Elsner PROPOSAL
Mayumi O GarufiItalyAmy Elsner RENEWAL
Costa K MorascaIndiaStephen Shaw PROPOSAL
Claire N KolmetzBrazilXuxue Feng QUALIFIED
Leon H MaletGermanyIvan Magalhaes RENEWAL
Izzy V IturbideArgentinaOnyama Limba NEW
Stacey B NestleRussiaAmy Elsner QUALIFIED
Tony H ShinkoSpainOnyama Limba RENEWAL

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