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
Antonio G GillianIndiaAsiya Javayant RENEWAL
David A DilliardAustraliaOnyama Limba PROPOSAL
Darci A PerinItalyElwin Sharvill UNQUALIFIED
Wickens E MorascaJapanAmy Elsner NEGOTIATION
Ivar Z AlbaresAustraliaAmy Elsner PROPOSAL
Adams S CaudyRussiaIvan Magalhaes UNQUALIFIED
Cody D MaletIndiaIvan Magalhaes RENEWAL
Leon J OldroydAustraliaAnna Fali RENEWAL
Rodrigues L MacleadAustraliaXuxue Feng NEGOTIATION
Jeanfrancois V KuskoArgentinaOnyama Limba NEGOTIATION
Adams M MorascaSpainBernardo Dominic QUALIFIED
Deepesh M OldroydBrazilElwin Sharvill RENEWAL
Jeanfrancois S WaycottJapanStephen Shaw QUALIFIED
Nicolas Z SchemmerArgentinaXuxue Feng NEGOTIATION
David X WaycottSpainElwin Sharvill QUALIFIED
Antonio S DoeGermanyAmy Elsner QUALIFIED
Johnson Q StensethGermanyIvan Magalhaes QUALIFIED
James B GlickCanadaAnna Fali NEGOTIATION
Mayumi O SlusarskiBrazilAmy Elsner UNQUALIFIED
Jones L MaletSpainIoni Bowcher PROPOSAL
Deepesh S AlbaresArgentinaElwin Sharvill RENEWAL
Jeanfrancois M CampainFranceAnna Fali PROPOSAL
Costa L BowleyIndiaOnyama Limba UNQUALIFIED
Claire D MaletBrazilIoni Bowcher PROPOSAL
Mujtaba K WhobreyAustraliaAsiya Javayant QUALIFIED
Smith D MaletSpainOnyama Limba UNQUALIFIED
Julie T StockhamAustraliaAmy Elsner QUALIFIED
Leon M MaletBrazilAmy Elsner UNQUALIFIED
Jeanfrancois P PerinGermanyBernardo Dominic QUALIFIED
Morrow Q VocelkaBrazilOnyama Limba UNQUALIFIED
Maria J ChuiBrazilStephen Shaw RENEWAL
Maria M ShinkoJapanIoni Bowcher RENEWAL
Octavia K FigeroaUnited KingdomElwin Sharvill UNQUALIFIED
Leon P BologniaJapanOnyama Limba UNQUALIFIED
Arvin U KolmetzGermanyAsiya Javayant RENEWAL
Aruna O PerinSpainStephen Shaw NEW
Faith M VocelkaBrazilElwin Sharvill NEW
Emily W InouyeRussiaXuxue Feng UNQUALIFIED
Clifford Y CaudyGermanyStephen Shaw PROPOSAL
Jones N BowleyRussiaIoni Bowcher NEGOTIATION
Jennifer S TollnerJapanElwin Sharvill UNQUALIFIED
Mayumi S SlusarskiBrazilStephen Shaw NEW
Alejandro U StensethJapanXuxue Feng PROPOSAL
Octavia P NickaArgentinaXuxue Feng UNQUALIFIED
Alejandro P MorascaIndiaElwin Sharvill PROPOSAL
Izzy T DilliardIndiaAnna Fali NEGOTIATION
Aruna Q FerenczItalyIvan Magalhaes NEW
Ashley V BologniaCanadaAsiya Javayant UNQUALIFIED
Ricardo B RutaBrazilBernardo Dominic NEGOTIATION
James G KuskoIndiaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Deepesh O OstroskyItalyAmy Elsner RENEWAL
Aruna W MacleadUnited KingdomElwin Sharvill NEGOTIATION
Smith Y WaycottAustraliaOnyama Limba QUALIFIED
Tony Z CampainCanadaStephen Shaw UNQUALIFIED
Rodrigues S MaletCanadaIvan Magalhaes NEW
Aruna T InouyeUnited KingdomIvan Magalhaes PROPOSAL
Julie C DarakjyArgentinaIvan Magalhaes RENEWAL
Izzy Z ButtAustraliaBernardo Dominic RENEWAL
Greenwood Q BriddickCanadaStephen Shaw NEGOTIATION
Jones D GillianGermanyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio P SchemmerUnited Kingdom2024-04-05Printing Dimensions NEGOTIATION50Bernardo Dominic
1001Wickens P PaprockiCanada2024-04-08Rousseaux, Michael Esq PROPOSAL70Amy Elsner
1002Aditya X CaldareraUnited Kingdom2024-03-29Chemel, James L Cpa QUALIFIED98Anna Fali
1003Leja B InouyeCanada2024-04-05Rousseaux, Michael Esq RENEWAL71Amy Elsner
1004Wickens W RutaUnited Kingdom2024-04-12Dorl, James J Esq RENEWAL27Bernardo Dominic
1005Chavez Y PoquetteJapan2024-04-12Feiner Bros QUALIFIED60Bernardo Dominic
1006Jones S WhobreyGermany2024-04-20Chapman, Ross E Esq NEGOTIATION47Ioni Bowcher
1007Deepesh Y MacleadItaly2024-04-21Feiner Bros NEW6Amy Elsner
1008Kadeem A AmigonRussia2024-04-10Feltz Printing Service RENEWAL66Anna Fali
1009Jeanfrancois U OstroskyFrance2024-04-22Chemel, James L Cpa RENEWAL59Bernardo Dominic
1010Salvatore G VenereGermany2024-04-12Feltz Printing Service NEGOTIATION31Xuxue Feng
1011Costa D CaudyJapan2024-04-16Rousseaux, Michael Esq QUALIFIED76Stephen Shaw
1012Kaitlin T FerenczArgentina2024-04-15Chemel, James L Cpa QUALIFIED89Anna Fali
1013Emily M MarrierAustralia2024-04-05Dorl, James J Esq NEW34Anna Fali
1014Mayumi E ButtGermany2024-04-18Commercial Press NEW2Ivan Magalhaes
1015Mayumi T SaylorsBrazil2024-04-24Dorl, James J Esq QUALIFIED9Onyama Limba
1016Arvin Y OldroydCanada2024-04-19Truhlar And Truhlar Attys NEW15Ioni Bowcher
1017Ivar N WaycottCanada2024-04-07Morlong Associates PROPOSAL80Ivan Magalhaes
1018Rodrigues S VocelkaSpain2024-04-06Chemel, James L Cpa RENEWAL47Stephen Shaw
1019Ashley M GlickIndia2024-04-26Truhlar And Truhlar Attys RENEWAL11Xuxue Feng
1020Cody G WieserJapan2024-04-03Dorl, James J Esq NEGOTIATION94Bernardo Dominic
1021Francesco E BologniaAustralia2024-04-11Chanay, Jeffrey A Esq NEGOTIATION25Onyama Limba
1022Murillo J RulapaughArgentina2024-03-30Chanay, Jeffrey A Esq RENEWAL90Stephen Shaw
1023Johnson E BowleyArgentina2024-04-06King, Christopher A Esq UNQUALIFIED89Ivan Magalhaes
1024Claire P CaudyJapan2024-03-28Chemel, James L Cpa NEW77Asiya Javayant
1025Aika A SlusarskiFrance2024-04-24Dorl, James J Esq NEW80Bernardo Dominic
1026Julie P BriddickGermany2024-04-21King, Christopher A Esq NEGOTIATION17Ivan Magalhaes
1027Murillo E ButtGermany2024-04-13King, Christopher A Esq QUALIFIED20Onyama Limba
1028David H BologniaFrance2024-03-28Chanay, Jeffrey A Esq RENEWAL66Asiya Javayant
1029Aditya J KolmetzCanada2024-04-14Chemel, James L Cpa UNQUALIFIED54Amy Elsner
1030Emily D StockhamAustralia2024-04-26King, Christopher A Esq UNQUALIFIED0Asiya Javayant
1031Juan E OldroydAustralia2024-04-17Feltz Printing Service QUALIFIED17Asiya Javayant
1032Mayumi O DarakjySpain2024-04-25Chanay, Jeffrey A Esq NEW5Anna Fali
1033Aditya U SlusarskiFrance2024-04-26Buckley Miller Wright NEGOTIATION25Asiya Javayant
1034Chavez C SaylorsItaly2024-04-13Feiner Bros NEW51Onyama Limba
1035Maisha I OstroskyItaly2024-03-28Printing Dimensions NEGOTIATION33Elwin Sharvill
1036Kadeem V NickaFrance2024-04-26Truhlar And Truhlar Attys UNQUALIFIED37Xuxue Feng
1037Clifford Q FollerSpain2024-04-12King, Christopher A Esq RENEWAL66Bernardo Dominic
1038Salvatore K GillianGermany2024-04-15Morlong Associates PROPOSAL2Amy Elsner
1039Claire X CaudyBrazil2024-04-04Morlong Associates PROPOSAL83Onyama Limba
1040Sinclair S BologniaAustralia2024-04-08King, Christopher A Esq UNQUALIFIED59Anna Fali
1041Arvin S RimIndia2024-03-29Rousseaux, Michael Esq RENEWAL2Ioni Bowcher
1042Juan E MacleadSpain2024-04-05Morlong Associates NEGOTIATION51Anna Fali
1043Kadeem S SchemmerArgentina2024-03-31Printing Dimensions NEW91Ioni Bowcher
1044Octavia Q MaletGermany2024-04-10Feltz Printing Service NEGOTIATION68Xuxue Feng
1045Tony B RulapaughUnited Kingdom2024-04-22Buckley Miller Wright UNQUALIFIED16Bernardo Dominic
1046Aruna W DarakjyAustralia2024-04-17Buckley Miller Wright PROPOSAL42Onyama Limba
1047Clifford S WaycottFrance2024-04-23Morlong Associates PROPOSAL73Stephen Shaw
1048Greenwood H StockhamItaly2024-04-09Benton, John B Jr RENEWAL26Bernardo Dominic
1049Octavia A AlbaresArgentina2024-04-05Truhlar And Truhlar Attys NEGOTIATION39Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Arvin D RutaRussiaXuxue Feng NEW
Isabel M AmigonIndiaAmy Elsner QUALIFIED
Maria Q RutaRussiaBernardo Dominic PROPOSAL
Stacey T BowleyIndiaAnna Fali QUALIFIED
Munro C OstroskyAustraliaIvan Magalhaes UNQUALIFIED
Faith Q VocelkaAustraliaAsiya Javayant NEGOTIATION
Ricardo R MarrierArgentinaAmy Elsner RENEWAL
Greenwood E MaletCanadaAmy Elsner PROPOSAL
Isabel E WaycottGermanyXuxue Feng UNQUALIFIED
Antonio R KuskoIndiaAsiya Javayant NEGOTIATION
Aika L BologniaArgentinaStephen Shaw PROPOSAL
Octavia F NickaFranceElwin Sharvill NEGOTIATION
Aruna Z AmigonRussiaOnyama Limba NEGOTIATION
Kadeem Y PoquetteArgentinaIvan Magalhaes NEW
Aika S DarakjyRussiaIoni Bowcher RENEWAL
Chavez P FerenczAustraliaElwin Sharvill UNQUALIFIED
Morrow L BriddickItalyIvan Magalhaes QUALIFIED
Chavez R NestleFranceIoni Bowcher QUALIFIED
Greenwood P MaletAustraliaElwin Sharvill QUALIFIED
Faith K SlusarskiJapanIvan Magalhaes NEGOTIATION
Morrow U ShinkoSpainIvan Magalhaes PROPOSAL
Stacey W TollnerJapanAsiya Javayant UNQUALIFIED
Aruna X RoysterJapanStephen Shaw NEGOTIATION
Jones Q WieserIndiaBernardo Dominic QUALIFIED
David H FlosiUnited KingdomBernardo Dominic RENEWAL
Leja J SaylorsSpainAsiya Javayant QUALIFIED
Ashley R KuskoArgentinaIvan Magalhaes RENEWAL
Sinclair Y FlosiJapanElwin Sharvill NEGOTIATION
Munro M GauchoCanadaAnna Fali RENEWAL
Francesco E FlosiAustraliaXuxue Feng NEGOTIATION
Juan O PoquetteSpainStephen Shaw NEW
Morrow B FigeroaJapanAsiya Javayant RENEWAL
Mujtaba L CampainFranceIvan Magalhaes UNQUALIFIED
Smith V CaudySpainAmy Elsner NEGOTIATION
Ivar Q SaylorsBrazilAmy Elsner NEW
Kaitlin G CaudyJapanAnna Fali NEW
Nicolas W PaprockiItalyElwin Sharvill QUALIFIED
Chavez Z StensethGermanyStephen Shaw UNQUALIFIED
Octavia T ShinkoRussiaIoni Bowcher NEGOTIATION
Ivar C DoeAustraliaAmy Elsner RENEWAL
Mujtaba E BowleyArgentinaXuxue Feng PROPOSAL
Nicolas G GarufiBrazilBernardo Dominic PROPOSAL
Leon K TollnerRussiaAsiya Javayant QUALIFIED
Octavia B AlbaresSpainStephen Shaw NEGOTIATION
Adams A MaletGermanyAsiya Javayant NEW
Kaitlin E FollerCanadaIoni Bowcher QUALIFIED
Cody M BologniaItalyAmy Elsner NEW
Kadeem Q TollnerUnited KingdomStephen Shaw NEW
Ivar H InouyeCanadaAsiya Javayant NEW
Smith Z SergiRussiaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Misaki L Whobrey
Maisha V Foller
Francesco M Campain
Jones I Garufi
Julie N Figeroa
Kadeem C Inouye
Juan O Foller
Jennifer L Chui
Julie E Foller
Octavia S Sergi
Cody C Figeroa
Aika G Caudy
Morrow H Glick
Julie C Chui
Jefferson A Ostrosky
Aruna P Inouye
Ivar Z Amigon
Ashley G Glick
Adams J Nicka
Mujtaba G Inouye
Izzy F Bolognia
Maria G Royster
Leja D Malet
Smith V Gillian
Isabel J Schemmer
Jennifer P Royster
Mayumi N Saylors
Juan J Shinko
Johnson C Briddick
Nicolas P Garufi
Johnson U Foller
Kadeem I Figeroa
Izzy I Ruta
Clifford S Shinko
Ricardo J Marrier
Adams I Chui
Wickens M Malet
Tony R Nicka
Jeanfrancois Q Kusko
Tony D Royster
Murillo Y Caudy
Kadeem I Briddick
Kadeem W Tollner
Arvin I Nicka
Clifford I Garufi
Smith U Slusarski
Maria B Oldroyd
Leja N Whobrey
Mujtaba S Stockham
David W Stockham
IdCountryDate
1000Italy2024-04-22
1001Canada2024-04-06
1002France2024-04-07
1003Russia2024-04-25
1004India2024-04-02
1005Argentina2024-04-12
1006France2024-04-06
1007Canada2024-03-30
1008India2024-04-06
1009India2024-04-07
1010Canada2024-04-02
1011India2024-04-16
1012India2024-04-26
1013Australia2024-03-28
1014United Kingdom2024-04-08
1015France2024-04-08
1016Russia2024-04-17
1017India2024-04-05
1018Australia2024-04-08
1019United Kingdom2024-04-18
1020India2024-04-11
1021Argentina2024-04-24
1022Brazil2024-04-25
1023Italy2024-04-07
1024Italy2024-04-09
1025Germany2024-04-26
1026Argentina2024-04-09
1027India2024-04-18
1028United Kingdom2024-04-15
1029United Kingdom2024-04-14
1030United Kingdom2024-04-23
1031Australia2024-04-18
1032Australia2024-04-24
1033Germany2024-04-20
1034Australia2024-04-25
1035Italy2024-03-29
1036Brazil2024-04-19
1037Italy2024-03-28
1038United Kingdom2024-04-22
1039Russia2024-03-29
1040Germany2024-04-13
1041United Kingdom2024-03-30
1042Spain2024-04-20
1043Italy2024-04-14
1044Germany2024-04-04
1045Germany2024-04-03
1046India2024-04-01
1047France2024-03-31
1048Canada2024-04-01
1049Italy2024-04-02

On-Demand Data

NameIdCountryDate
Mayumi K Rulapaugh1000United Kingdom2024-03-31
Leja Y Flosi1001Canada2024-04-07
Clifford G Shinko1002Japan2024-04-06
Alejandro Z Gillian1003Russia2024-04-25
Ashley D Caldarera1004Russia2024-04-22
Greenwood X Shinko1005Australia2024-04-23
Deepesh G Nicka1006Canada2024-04-12
Aruna M Nicka1007Brazil2024-04-11
Juan L Marrier1008India2024-03-28
Ricardo N Perin1009Russia2024-03-30
Greenwood Z Maclead1010Australia2024-04-16
Arvin T Morasca1011Japan2024-04-10
Munro J Nicka1012Italy2024-04-25
Sinclair P Nicka1013Japan2024-04-23
Aditya G Marrier1014India2024-04-11
Faith T Paprocki1015Spain2024-04-09
Mayumi D Sergi1016Canada2024-04-18
Mujtaba T Maclead1017United Kingdom2024-04-21
Izzy O Saylors1018India2024-04-22
Juan E Paprocki1019Russia2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo K SchemmerCanadaElwin Sharvill QUALIFIED
Johnson Q FerenczCanadaElwin Sharvill NEW
Jones D StensethAustraliaAmy Elsner NEW
Maria H OstroskyAustraliaBernardo Dominic RENEWAL
Ivar B SergiArgentinaIoni Bowcher UNQUALIFIED
David P WaycottRussiaElwin Sharvill RENEWAL
Rodrigues J CaldareraGermanyXuxue Feng NEW
Stacey U ShinkoUnited KingdomAnna Fali RENEWAL
Jefferson D SchemmerArgentinaStephen Shaw NEW
Johnson K FollerJapanBernardo Dominic UNQUALIFIED
Ricardo D ButtItalyAsiya Javayant PROPOSAL
Leon O FigeroaFranceElwin Sharvill PROPOSAL
Chavez L IturbideItalyAsiya Javayant NEGOTIATION
Mayumi F KuskoJapanAsiya Javayant QUALIFIED
Cody Y FollerIndiaElwin Sharvill NEGOTIATION
Tony L PaprockiAustraliaOnyama Limba UNQUALIFIED
Costa G SlusarskiBrazilAmy Elsner UNQUALIFIED
Aditya Y RutaBrazilElwin Sharvill PROPOSAL
Darci U RutaFranceAmy Elsner NEGOTIATION
Claire R BologniaUnited KingdomAmy Elsner UNQUALIFIED
Emily R DilliardGermanyStephen Shaw NEGOTIATION
Mujtaba X RutaCanadaAsiya Javayant UNQUALIFIED
Aika P KolmetzCanadaStephen Shaw PROPOSAL
Greenwood S SaylorsGermanyBernardo Dominic QUALIFIED
Chavez G WaycottSpainIvan Magalhaes NEW
Arvin Z FollerFranceAnna Fali PROPOSAL
Sinclair R NickaJapanOnyama Limba NEGOTIATION
Deepesh V SaylorsIndiaAnna Fali NEW
Costa H MaletJapanBernardo Dominic NEGOTIATION
Jeanfrancois M BriddickBrazilStephen Shaw QUALIFIED
Jeanfrancois Z OstroskySpainXuxue Feng RENEWAL
Misaki W BriddickBrazilAmy Elsner QUALIFIED
Cody P KolmetzRussiaAnna Fali NEGOTIATION
Claire E PaprockiRussiaBernardo Dominic NEGOTIATION
Faith E DarakjySpainIoni Bowcher NEGOTIATION
Deepesh T DoeBrazilElwin Sharvill NEW
Emily E AmigonBrazilIvan Magalhaes UNQUALIFIED
Chavez N RulapaughSpainBernardo Dominic UNQUALIFIED
Maisha A WaycottItalyIvan Magalhaes NEGOTIATION
Adams F SergiArgentinaElwin Sharvill NEW

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