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
Salvatore B SchemmerBrazilAnna Fali NEGOTIATION
Morrow D DoeFranceAsiya Javayant NEW
Claire A AlbaresJapanStephen Shaw PROPOSAL
Antonio H GlickFranceAsiya Javayant PROPOSAL
Darci J CaudyRussiaXuxue Feng QUALIFIED
Deepesh V SaylorsUnited KingdomStephen Shaw NEW
Deepesh V NestleRussiaStephen Shaw PROPOSAL
Misaki Z AlbaresJapanXuxue Feng PROPOSAL
Ricardo Q WieserGermanyAmy Elsner NEGOTIATION
Francesco F MarrierAustraliaIoni Bowcher UNQUALIFIED
Chavez C CaldareraJapanIoni Bowcher RENEWAL
David C CampainArgentinaAmy Elsner NEW
Chavez B GarufiJapanElwin Sharvill PROPOSAL
Emily M InouyeFranceElwin Sharvill QUALIFIED
James K RutaSpainAnna Fali NEW
Aika J KuskoAustraliaAmy Elsner PROPOSAL
Smith Z SergiFranceOnyama Limba NEGOTIATION
Wickens V ShinkoFranceIoni Bowcher RENEWAL
Maria Y OldroydJapanAnna Fali NEGOTIATION
Aika P GauchoRussiaXuxue Feng PROPOSAL
Wickens T SchemmerBrazilAmy Elsner UNQUALIFIED
Maisha O BowleyArgentinaElwin Sharvill UNQUALIFIED
Claire S OldroydUnited KingdomIoni Bowcher UNQUALIFIED
David M ChuiSpainAmy Elsner NEGOTIATION
Leon T OstroskyGermanyBernardo Dominic NEGOTIATION
Jeanfrancois G KuskoJapanElwin Sharvill RENEWAL
Smith U VenereBrazilBernardo Dominic RENEWAL
Munro B OldroydArgentinaBernardo Dominic QUALIFIED
Izzy K RulapaughGermanyAnna Fali RENEWAL
Stacey I AmigonJapanBernardo Dominic UNQUALIFIED
Aditya O VocelkaIndiaIvan Magalhaes RENEWAL
Sinclair I MorascaSpainElwin Sharvill PROPOSAL
Jeanfrancois P VocelkaAustraliaAnna Fali UNQUALIFIED
Munro R FerenczUnited KingdomXuxue Feng RENEWAL
David W RimRussiaXuxue Feng NEW
Juan M PaprockiItalyIvan Magalhaes UNQUALIFIED
Sinclair X GlickFranceIvan Magalhaes PROPOSAL
Aditya X PerinIndiaStephen Shaw NEW
Stacey N PaprockiCanadaElwin Sharvill UNQUALIFIED
Nicolas P RutaFranceStephen Shaw NEW
Deepesh V AlbaresBrazilAmy Elsner UNQUALIFIED
Rodrigues K MorascaUnited KingdomXuxue Feng RENEWAL
Julie Z PaprockiJapanElwin Sharvill RENEWAL
Misaki N SergiItalyIvan Magalhaes UNQUALIFIED
Johnson N StockhamAustraliaIoni Bowcher QUALIFIED
Emily E KuskoItalyIoni Bowcher NEGOTIATION
David N VenereItalyBernardo Dominic QUALIFIED
Leon M WieserIndiaOnyama Limba RENEWAL
Ashley W SergiSpainAsiya Javayant PROPOSAL
Cody O TollnerArgentinaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja Q DoeIndiaOnyama Limba PROPOSAL
Clifford V BriddickJapanIvan Magalhaes NEW
Morrow I GlickUnited KingdomBernardo Dominic NEW
Aruna N StensethRussiaAnna Fali PROPOSAL
Chavez K CaldareraAustraliaXuxue Feng RENEWAL
Tony R OstroskyArgentinaBernardo Dominic NEW
Misaki T PaprockiSpainElwin Sharvill NEW
Kaitlin W SaylorsItalyXuxue Feng PROPOSAL
Leja O GlickGermanyStephen Shaw QUALIFIED
Morrow E FigeroaGermanyBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony S FerenczIndia2024-03-23Chemel, James L Cpa PROPOSAL16Asiya Javayant
1001Claire Y IturbideSpain2024-02-29Printing Dimensions PROPOSAL66Onyama Limba
1002Chavez C SlusarskiCanada2024-02-28Morlong Associates PROPOSAL21Anna Fali
1003Cody M OstroskyFrance2024-03-05Dorl, James J Esq NEGOTIATION7Elwin Sharvill
1004Johnson K IturbideUnited Kingdom2024-02-29Chemel, James L Cpa QUALIFIED3Anna Fali
1005Costa G StockhamJapan2024-02-27Buckley Miller Wright PROPOSAL6Bernardo Dominic
1006Stacey M AlbaresFrance2024-03-10Chapman, Ross E Esq QUALIFIED27Amy Elsner
1007Aditya V FlosiArgentina2024-02-27Rousseaux, Michael Esq RENEWAL78Anna Fali
1008David L InouyeJapan2024-03-16Truhlar And Truhlar Attys RENEWAL3Amy Elsner
1009Claire R WaycottRussia2024-03-05Feltz Printing Service RENEWAL90Ioni Bowcher
1010Isabel J GarufiFrance2024-03-04Printing Dimensions RENEWAL70Onyama Limba
1011Munro T MaletCanada2024-03-12Chanay, Jeffrey A Esq NEGOTIATION70Bernardo Dominic
1012Kaitlin A PoquetteJapan2024-02-28Rangoni Of Florence RENEWAL33Stephen Shaw
1013Jennifer Q BologniaItaly2024-03-05Chapman, Ross E Esq PROPOSAL83Ivan Magalhaes
1014Maisha T CaudyGermany2024-03-16Dorl, James J Esq PROPOSAL20Bernardo Dominic
1015Ricardo U WaycottGermany2024-03-09Chemel, James L Cpa QUALIFIED28Amy Elsner
1016Sinclair M AlbaresIndia2024-03-22Feiner Bros QUALIFIED81Bernardo Dominic
1017Tony F NickaItaly2024-03-17Chapman, Ross E Esq NEW47Ioni Bowcher
1018Kadeem N MarrierRussia2024-03-08Rangoni Of Florence NEGOTIATION48Asiya Javayant
1019Aika M SlusarskiItaly2024-03-06Morlong Associates PROPOSAL7Ioni Bowcher
1020Isabel G StockhamBrazil2024-03-22King, Christopher A Esq NEW78Stephen Shaw
1021David L CaldareraCanada2024-03-26Commercial Press PROPOSAL81Anna Fali
1022Rodrigues G SergiUnited Kingdom2024-03-07Morlong Associates QUALIFIED32Onyama Limba
1023Darci L MarrierBrazil2024-03-21Benton, John B Jr NEGOTIATION85Anna Fali
1024Antonio B ButtGermany2024-03-13Printing Dimensions QUALIFIED7Stephen Shaw
1025Greenwood T OstroskyUnited Kingdom2024-03-17Benton, John B Jr NEW51Amy Elsner
1026Leja R VocelkaIndia2024-03-03Feiner Bros QUALIFIED37Elwin Sharvill
1027Aruna I KolmetzJapan2024-03-01Buckley Miller Wright QUALIFIED50Xuxue Feng
1028Chavez T OstroskyIndia2024-03-22Feiner Bros NEGOTIATION21Ioni Bowcher
1029Alejandro Y InouyeCanada2024-03-02Printing Dimensions QUALIFIED6Amy Elsner
1030Jeanfrancois N RimArgentina2024-03-10Buckley Miller Wright NEGOTIATION27Ivan Magalhaes
1031Arvin W ShinkoArgentina2024-03-12Morlong Associates NEGOTIATION94Ivan Magalhaes
1032Ricardo P MaletItaly2024-03-11Chanay, Jeffrey A Esq NEW56Ioni Bowcher
1033Jones I CaudyUnited Kingdom2024-03-16Rousseaux, Michael Esq NEGOTIATION40Anna Fali
1034Leon C SlusarskiItaly2024-02-28Feiner Bros NEGOTIATION81Xuxue Feng
1035Francesco P GauchoCanada2024-02-28Truhlar And Truhlar Attys PROPOSAL25Amy Elsner
1036Alejandro G GlickUnited Kingdom2024-03-13Morlong Associates RENEWAL81Bernardo Dominic
1037Tony G GlickArgentina2024-03-14Feltz Printing Service NEGOTIATION61Asiya Javayant
1038Claire J WieserBrazil2024-03-15Benton, John B Jr PROPOSAL43Ivan Magalhaes
1039Tony Z AmigonAustralia2024-03-21Chemel, James L Cpa PROPOSAL69Stephen Shaw
1040Munro B AlbaresBrazil2024-03-19Benton, John B Jr NEGOTIATION97Elwin Sharvill
1041Darci V DilliardAustralia2024-03-09Rousseaux, Michael Esq NEW89Bernardo Dominic
1042Mayumi O AmigonBrazil2024-03-20Truhlar And Truhlar Attys RENEWAL70Xuxue Feng
1043Deepesh X MaletSpain2024-03-12Commercial Press UNQUALIFIED90Anna Fali
1044Juan X FigeroaGermany2024-03-03Printing Dimensions NEW62Xuxue Feng
1045Nicolas P MarrierBrazil2024-03-15Chapman, Ross E Esq QUALIFIED1Ioni Bowcher
1046Adams W GlickFrance2024-03-06Rousseaux, Michael Esq PROPOSAL20Onyama Limba
1047Isabel P MaletFrance2024-03-07Truhlar And Truhlar Attys PROPOSAL65Asiya Javayant
1048Maria L RimAustralia2024-03-13Chanay, Jeffrey A Esq NEW60Ioni Bowcher
1049Greenwood B VenereJapan2024-03-01Chapman, Ross E Esq QUALIFIED70Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois Z MaletJapanIoni Bowcher NEW
Nicolas O RimArgentinaElwin Sharvill PROPOSAL
Adams D RoysterArgentinaElwin Sharvill NEW
Alejandro G RoysterItalyAsiya Javayant NEGOTIATION
Munro K GarufiArgentinaStephen Shaw NEW
Leja C MaletFranceAmy Elsner QUALIFIED
Greenwood D GlickSpainBernardo Dominic RENEWAL
Julie Q KuskoRussiaStephen Shaw NEGOTIATION
Johnson Q DilliardCanadaAsiya Javayant QUALIFIED
James R CaldareraFranceIoni Bowcher PROPOSAL
Ashley S KuskoJapanStephen Shaw PROPOSAL
Kaitlin U MarrierSpainStephen Shaw RENEWAL
Faith B RoysterUnited KingdomXuxue Feng NEGOTIATION
Kadeem F BriddickGermanyStephen Shaw QUALIFIED
Johnson K VenereCanadaXuxue Feng UNQUALIFIED
Faith O VenereGermanyAsiya Javayant UNQUALIFIED
David A MorascaUnited KingdomIoni Bowcher NEGOTIATION
Octavia Q GillianAustraliaBernardo Dominic QUALIFIED
Leon X MarrierBrazilElwin Sharvill QUALIFIED
Jefferson D DarakjyFranceElwin Sharvill NEGOTIATION
Juan D OldroydItalyAnna Fali UNQUALIFIED
David Y MaletRussiaAsiya Javayant NEW
Greenwood N SergiJapanAmy Elsner RENEWAL
Clifford T VenereFranceBernardo Dominic PROPOSAL
Ricardo D NestleJapanIoni Bowcher QUALIFIED
Octavia G MacleadRussiaIoni Bowcher PROPOSAL
Faith M MarrierArgentinaAmy Elsner NEW
Cody B GlickArgentinaAnna Fali UNQUALIFIED
Costa D SchemmerGermanyIoni Bowcher UNQUALIFIED
Costa K RimCanadaElwin Sharvill UNQUALIFIED
Nicolas R MaletItalyAnna Fali NEGOTIATION
Silvio P RutaCanadaStephen Shaw UNQUALIFIED
Jeanfrancois U SergiArgentinaAmy Elsner UNQUALIFIED
Aruna G GillianUnited KingdomAnna Fali NEW
Tony R VenereIndiaElwin Sharvill NEW
Misaki F InouyeIndiaIoni Bowcher QUALIFIED
Chavez L ShinkoItalyXuxue Feng PROPOSAL
Kadeem F RulapaughAustraliaBernardo Dominic QUALIFIED
Jeanfrancois J InouyeCanadaOnyama Limba NEGOTIATION
Leon U OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Kadeem E MaletGermanyIvan Magalhaes NEGOTIATION
Murillo Y AmigonRussiaIoni Bowcher UNQUALIFIED
Salvatore B GarufiBrazilXuxue Feng QUALIFIED
Morrow E FlosiArgentinaAnna Fali RENEWAL
Leja X SchemmerItalyAnna Fali NEW
Ashley X SaylorsJapanIoni Bowcher NEGOTIATION
Juan O GlickAustraliaAmy Elsner RENEWAL
Leon A SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Jones A IturbideCanadaAnna Fali RENEWAL
Silvio M DarakjyIndiaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Izzy L Briddick
Misaki N Malet
Costa A Ferencz
Wickens Q Bolognia
Silvio N Gaucho
Octavia R Malet
Clifford S Darakjy
Francesco S Glick
Emily M Glick
Jennifer S Gaucho
Claire I Venere
Deepesh W Schemmer
Salvatore O Schemmer
Juan X Dilliard
Salvatore C Poquette
Munro D Flosi
Leon M Shinko
Costa J Kusko
Murillo F Rim
Kaitlin S Rulapaugh
Isabel S Ferencz
Cody R Nicka
Francesco H Chui
Misaki J Kolmetz
Jennifer C Dilliard
Deepesh Q Tollner
Wickens N Wieser
Costa P Nicka
Alejandro I Inouye
Tony P Darakjy
Smith H Butt
Alejandro M Perin
Greenwood P Gillian
Salvatore M Ferencz
Francesco J Caudy
Claire B Rulapaugh
Nicolas N Rim
Tony R Vocelka
Johnson K Albares
Claire S Rulapaugh
David H Caudy
Julie S Caudy
Morrow L Iturbide
Costa D Schemmer
Tony R Waycott
Costa M Schemmer
Wickens E Marrier
Mujtaba W Tollner
Munro X Wieser
Kaitlin R Amigon
IdCountryDate
1000India2024-03-12
1001Japan2024-03-27
1002Japan2024-03-12
1003Japan2024-03-07
1004India2024-03-01
1005Italy2024-02-27
1006Italy2024-03-07
1007Brazil2024-03-05
1008Japan2024-03-24
1009Canada2024-03-22
1010Argentina2024-03-01
1011Spain2024-03-15
1012Argentina2024-03-23
1013France2024-03-11
1014India2024-03-23
1015Australia2024-03-20
1016Japan2024-02-28
1017India2024-03-27
1018Italy2024-02-27
1019Spain2024-03-25
1020Brazil2024-03-10
1021India2024-03-24
1022Japan2024-03-17
1023India2024-03-06
1024Australia2024-03-08
1025Russia2024-03-20
1026Canada2024-03-06
1027Argentina2024-03-16
1028Germany2024-03-12
1029Canada2024-03-20
1030Canada2024-03-26
1031Australia2024-03-13
1032Germany2024-03-16
1033Japan2024-03-02
1034United Kingdom2024-02-27
1035Australia2024-03-14
1036United Kingdom2024-03-17
1037Japan2024-03-03
1038India2024-03-16
1039Japan2024-03-23
1040Argentina2024-03-17
1041Germany2024-03-13
1042India2024-02-27
1043United Kingdom2024-03-27
1044United Kingdom2024-03-23
1045France2024-03-15
1046France2024-03-26
1047Italy2024-03-06
1048Brazil2024-03-16
1049Spain2024-03-08

On-Demand Data

NameIdCountryDate
Darci X Schemmer1000India2024-03-19
Juan T Campain1001Australia2024-03-26
Clifford F Nicka1002Russia2024-03-14
Octavia A Oldroyd1003Spain2024-03-07
Emily V Morasca1004France2024-03-06
Greenwood O Maclead1005Brazil2024-03-05
Murillo A Malet1006Japan2024-03-06
Ricardo U Albares1007Germany2024-03-06
Aditya F Shinko1008India2024-02-28
Julie J Chui1009Spain2024-03-05
Johnson J Schemmer1010Russia2024-03-22
Silvio Y Bowley1011Germany2024-02-27
Kadeem P Whobrey1012Spain2024-03-10
Kadeem H Schemmer1013Argentina2024-03-05
Murillo H Kolmetz1014Australia2024-03-20
Jeanfrancois J Chui1015Germany2024-03-01
Julie N Saylors1016Canada2024-03-23
Kadeem E Gillian1017United Kingdom2024-03-03
Arvin T Butt1018Canada2024-03-03
Izzy O Venere1019India2024-03-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin J RimAustraliaStephen Shaw UNQUALIFIED
Darci R DarakjyArgentinaIoni Bowcher NEGOTIATION
James P GarufiIndiaAnna Fali NEW
Maisha Q DoeFranceBernardo Dominic NEGOTIATION
Misaki E GlickRussiaBernardo Dominic NEGOTIATION
Arvin T RimBrazilIvan Magalhaes UNQUALIFIED
Claire G OldroydAustraliaAmy Elsner QUALIFIED
Cody L BriddickArgentinaIoni Bowcher UNQUALIFIED
Mujtaba L NickaJapanIoni Bowcher PROPOSAL
Emily F PoquetteBrazilIvan Magalhaes QUALIFIED
Salvatore S InouyeArgentinaElwin Sharvill RENEWAL
Mayumi A FlosiArgentinaStephen Shaw QUALIFIED
Jennifer H TollnerFranceOnyama Limba NEW
Jones I RutaJapanOnyama Limba NEW
Rodrigues X TollnerGermanyElwin Sharvill QUALIFIED
Misaki G RoysterGermanyXuxue Feng UNQUALIFIED
James P InouyeSpainAnna Fali QUALIFIED
Leja Z StensethSpainIvan Magalhaes NEGOTIATION
Murillo B AlbaresRussiaAmy Elsner RENEWAL
Salvatore K OstroskyArgentinaXuxue Feng QUALIFIED
Claire G MorascaFranceElwin Sharvill RENEWAL
Jones E NickaItalyIoni Bowcher UNQUALIFIED
Izzy O TollnerCanadaAmy Elsner NEGOTIATION
Greenwood K IturbideIndiaElwin Sharvill NEW
Ivar A MarrierSpainXuxue Feng PROPOSAL
Johnson C VocelkaCanadaIoni Bowcher NEW
Deepesh N CampainGermanyBernardo Dominic UNQUALIFIED
Antonio V KolmetzSpainStephen Shaw QUALIFIED
Cody N ButtBrazilStephen Shaw QUALIFIED
Izzy O OldroydJapanElwin Sharvill RENEWAL
Maisha N SaylorsGermanyIoni Bowcher QUALIFIED
Nicolas E CaldareraUnited KingdomAmy Elsner QUALIFIED
Mujtaba L NickaFranceXuxue Feng UNQUALIFIED
Maria L MacleadSpainAsiya Javayant RENEWAL
Faith X RoysterRussiaBernardo Dominic PROPOSAL
Jeanfrancois X FerenczAustraliaIoni Bowcher NEW
David U ButtCanadaBernardo Dominic QUALIFIED
Stacey A MaletAustraliaOnyama Limba QUALIFIED
Stacey K RutaSpainStephen Shaw UNQUALIFIED
Murillo U AlbaresUnited KingdomOnyama Limba NEGOTIATION

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