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
Isabel X InouyeUnited KingdomBernardo Dominic PROPOSAL
Tony P RimUnited KingdomAsiya Javayant UNQUALIFIED
Nicolas A DoeCanadaIoni Bowcher QUALIFIED
Aika U BriddickIndiaElwin Sharvill RENEWAL
James V FerenczJapanElwin Sharvill RENEWAL
Rodrigues V ButtArgentinaAmy Elsner UNQUALIFIED
Leon L StensethFranceStephen Shaw NEW
Arvin N AmigonFranceBernardo Dominic UNQUALIFIED
Rodrigues X NestleItalyAsiya Javayant RENEWAL
Darci V ShinkoRussiaIoni Bowcher QUALIFIED
Ashley I RoysterRussiaBernardo Dominic RENEWAL
Leja L AmigonIndiaStephen Shaw RENEWAL
Wickens T SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Ricardo L PerinItalyStephen Shaw NEW
Leon R GillianJapanIvan Magalhaes NEGOTIATION
Chavez H DilliardUnited KingdomOnyama Limba NEW
Ricardo J NestleRussiaStephen Shaw NEGOTIATION
Clifford M SaylorsCanadaAnna Fali PROPOSAL
Emily H BriddickUnited KingdomXuxue Feng RENEWAL
Tony P AmigonIndiaBernardo Dominic NEW
Aruna P IturbideJapanOnyama Limba RENEWAL
Jennifer S FigeroaBrazilAnna Fali RENEWAL
James L PerinAustraliaAsiya Javayant RENEWAL
Aika M WieserSpainIoni Bowcher QUALIFIED
Izzy Z RimAustraliaOnyama Limba NEW
Leja R SlusarskiArgentinaAmy Elsner QUALIFIED
Isabel B FerenczArgentinaAsiya Javayant PROPOSAL
Maria X ButtFranceAsiya Javayant UNQUALIFIED
Morrow M MaletSpainStephen Shaw NEW
Adams K FollerIndiaAnna Fali RENEWAL
Greenwood Y RutaBrazilIoni Bowcher NEW
Morrow E ChuiIndiaOnyama Limba QUALIFIED
David G SlusarskiGermanyAmy Elsner NEGOTIATION
Octavia B FigeroaCanadaAnna Fali NEW
Silvio M CaudyFranceAmy Elsner NEW
Smith G GillianIndiaOnyama Limba NEW
Silvio U SchemmerRussiaAnna Fali UNQUALIFIED
Jefferson D PoquetteIndiaBernardo Dominic RENEWAL
Greenwood U WaycottItalyOnyama Limba RENEWAL
Octavia N BologniaIndiaIvan Magalhaes QUALIFIED
Cody R RimIndiaAmy Elsner RENEWAL
Aditya B OldroydCanadaIvan Magalhaes RENEWAL
Aditya H FigeroaItalyXuxue Feng UNQUALIFIED
Juan I NickaUnited KingdomOnyama Limba RENEWAL
Claire U PoquetteBrazilAsiya Javayant RENEWAL
Greenwood E SergiSpainAmy Elsner RENEWAL
Mujtaba W NickaGermanyOnyama Limba NEGOTIATION
Munro Z MorascaIndiaIoni Bowcher RENEWAL
Claire G MorascaGermanyXuxue Feng NEW
Alejandro U BowleyGermanyElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Sinclair S MaletAustraliaAmy Elsner NEGOTIATION
Sinclair Y GarufiItalyBernardo Dominic QUALIFIED
Jennifer Q WieserJapanStephen Shaw RENEWAL
Smith G WieserBrazilIvan Magalhaes RENEWAL
Juan D GauchoFranceIvan Magalhaes PROPOSAL
Aruna Y AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro B GarufiSpainAsiya Javayant QUALIFIED
Stacey F TollnerGermanyBernardo Dominic UNQUALIFIED
Juan H RutaSpainBernardo Dominic QUALIFIED
Morrow S ChuiBrazilAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody E RimSpain2024-04-16Feltz Printing Service NEGOTIATION21Stephen Shaw
1001Ashley E VocelkaSpain2024-04-13Rousseaux, Michael Esq UNQUALIFIED75Stephen Shaw
1002Ricardo Q SlusarskiAustralia2024-04-21King, Christopher A Esq NEW49Ivan Magalhaes
1003Kaitlin C ButtRussia2024-04-17Commercial Press QUALIFIED20Asiya Javayant
1004Chavez M AlbaresBrazil2024-04-08Chemel, James L Cpa NEGOTIATION57Xuxue Feng
1005Antonio B KuskoJapan2024-04-25Buckley Miller Wright NEW11Amy Elsner
1006Emily M WhobreyRussia2024-03-30Printing Dimensions NEGOTIATION42Ioni Bowcher
1007Misaki F StockhamBrazil2024-04-05Rousseaux, Michael Esq NEW94Elwin Sharvill
1008Mujtaba I IturbideCanada2024-03-30Morlong Associates NEGOTIATION90Elwin Sharvill
1009Chavez V MacleadJapan2024-04-13Morlong Associates UNQUALIFIED57Xuxue Feng
1010Misaki A StockhamRussia2024-04-24King, Christopher A Esq NEW44Ivan Magalhaes
1011Leja B SlusarskiBrazil2024-04-13Chanay, Jeffrey A Esq PROPOSAL27Xuxue Feng
1012Leja V FlosiUnited Kingdom2024-04-16Buckley Miller Wright UNQUALIFIED24Onyama Limba
1013Jeanfrancois D ShinkoAustralia2024-04-19Chapman, Ross E Esq UNQUALIFIED60Asiya Javayant
1014Wickens F BologniaGermany2024-04-24Rousseaux, Michael Esq QUALIFIED10Amy Elsner
1015Antonio F DarakjyItaly2024-04-23Morlong Associates NEGOTIATION10Asiya Javayant
1016Jefferson G OldroydBrazil2024-04-03Morlong Associates UNQUALIFIED99Ioni Bowcher
1017Mujtaba U WaycottBrazil2024-04-24Feltz Printing Service NEGOTIATION17Ioni Bowcher
1018Leon N ShinkoJapan2024-04-23Feltz Printing Service RENEWAL95Onyama Limba
1019Izzy X SaylorsAustralia2024-04-23Chapman, Ross E Esq NEW93Amy Elsner
1020Alejandro G RoysterAustralia2024-04-13Truhlar And Truhlar Attys NEGOTIATION60Amy Elsner
1021James C ButtCanada2024-04-21King, Christopher A Esq QUALIFIED57Elwin Sharvill
1022Clifford A BriddickUnited Kingdom2024-04-05Feiner Bros NEW28Anna Fali
1023Costa F RutaAustralia2024-04-04King, Christopher A Esq NEW22Ioni Bowcher
1024Adams U GauchoJapan2024-04-08Chanay, Jeffrey A Esq NEGOTIATION54Stephen Shaw
1025Mayumi Y RoysterBrazil2024-04-04Commercial Press RENEWAL51Stephen Shaw
1026Mujtaba K DoeRussia2024-04-05Benton, John B Jr NEW3Ivan Magalhaes
1027Mayumi H StockhamBrazil2024-04-10Morlong Associates PROPOSAL53Onyama Limba
1028Jefferson U CampainAustralia2024-04-10Rangoni Of Florence NEW95Ioni Bowcher
1029Salvatore H KolmetzIndia2024-04-12Printing Dimensions UNQUALIFIED73Xuxue Feng
1030Chavez O KolmetzUnited Kingdom2024-04-26Benton, John B Jr NEGOTIATION55Stephen Shaw
1031Faith H StensethGermany2024-04-11Rousseaux, Michael Esq PROPOSAL94Ivan Magalhaes
1032Murillo X MaletIndia2024-04-27King, Christopher A Esq RENEWAL34Ioni Bowcher
1033Cody N GauchoItaly2024-04-14Morlong Associates RENEWAL59Ivan Magalhaes
1034Kaitlin I WieserUnited Kingdom2024-04-18Benton, John B Jr NEGOTIATION72Elwin Sharvill
1035Leon C RoysterSpain2024-04-08Morlong Associates QUALIFIED8Anna Fali
1036Ricardo I MacleadIndia2024-04-08Chapman, Ross E Esq UNQUALIFIED47Stephen Shaw
1037Silvio T TollnerCanada2024-04-26Buckley Miller Wright NEW12Stephen Shaw
1038Nicolas S FollerRussia2024-04-22Dorl, James J Esq PROPOSAL79Elwin Sharvill
1039Maisha R ShinkoGermany2024-04-07Chemel, James L Cpa QUALIFIED42Anna Fali
1040Greenwood O IturbideAustralia2024-04-27Truhlar And Truhlar Attys PROPOSAL55Anna Fali
1041Wickens A PaprockiJapan2024-04-27Chapman, Ross E Esq PROPOSAL9Ioni Bowcher
1042Claire V DoeArgentina2024-04-27Feltz Printing Service RENEWAL9Stephen Shaw
1043Cody X KolmetzUnited Kingdom2024-04-21Printing Dimensions NEGOTIATION98Amy Elsner
1044Morrow M SchemmerBrazil2024-04-22Rousseaux, Michael Esq UNQUALIFIED16Elwin Sharvill
1045David U KolmetzAustralia2024-04-01Chanay, Jeffrey A Esq NEGOTIATION38Asiya Javayant
1046Antonio I SergiUnited Kingdom2024-04-19Chemel, James L Cpa UNQUALIFIED47Elwin Sharvill
1047Maria O OstroskyCanada2024-03-29Printing Dimensions PROPOSAL74Stephen Shaw
1048Tony U PerinCanada2024-04-15Morlong Associates NEGOTIATION48Bernardo Dominic
1049Aditya R RutaAustralia2024-04-06Morlong Associates NEGOTIATION75Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jefferson Q MarrierBrazilStephen Shaw UNQUALIFIED
Leon H MaletGermanyAnna Fali QUALIFIED
Kadeem S ButtUnited KingdomXuxue Feng RENEWAL
Cody P GauchoGermanyXuxue Feng UNQUALIFIED
Alejandro M OldroydCanadaXuxue Feng RENEWAL
David D FerenczJapanStephen Shaw QUALIFIED
Murillo Z InouyeCanadaOnyama Limba RENEWAL
Murillo O ButtJapanAnna Fali QUALIFIED
Tony B StockhamSpainXuxue Feng NEGOTIATION
Clifford K RoysterCanadaAnna Fali PROPOSAL
Tony T KolmetzBrazilIvan Magalhaes RENEWAL
Julie Z PaprockiCanadaStephen Shaw PROPOSAL
Octavia N StensethJapanAmy Elsner RENEWAL
Tony Z WaycottBrazilIvan Magalhaes NEW
Aruna T StensethRussiaIvan Magalhaes UNQUALIFIED
Kadeem J RimCanadaXuxue Feng RENEWAL
Maisha C CaudyCanadaElwin Sharvill NEW
Jefferson P DarakjyBrazilXuxue Feng QUALIFIED
Misaki W OstroskyBrazilAnna Fali RENEWAL
Misaki X SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Munro I GlickFranceOnyama Limba NEGOTIATION
Ricardo B SlusarskiArgentinaAnna Fali UNQUALIFIED
Costa T DilliardItalyBernardo Dominic QUALIFIED
Adams R CaldareraBrazilBernardo Dominic RENEWAL
Smith V CaldareraRussiaIvan Magalhaes QUALIFIED
Munro L InouyeCanadaIoni Bowcher NEGOTIATION
Stacey Q RulapaughGermanyElwin Sharvill NEGOTIATION
Jefferson Q OstroskyRussiaStephen Shaw NEGOTIATION
Misaki V PerinItalyXuxue Feng RENEWAL
Jones Z DarakjyAustraliaIoni Bowcher NEGOTIATION
Aditya P InouyeAustraliaIoni Bowcher QUALIFIED
Clifford I DoeJapanBernardo Dominic PROPOSAL
Mujtaba Z BologniaBrazilAnna Fali RENEWAL
Mujtaba B GauchoGermanyAnna Fali NEGOTIATION
Kaitlin T VocelkaArgentinaOnyama Limba PROPOSAL
Antonio Y RulapaughSpainAmy Elsner UNQUALIFIED
Deepesh W SlusarskiAustraliaAmy Elsner NEW
Jeanfrancois F OstroskySpainElwin Sharvill NEGOTIATION
Juan A KuskoArgentinaAnna Fali PROPOSAL
Julie M RutaGermanyIvan Magalhaes PROPOSAL
Adams M CampainBrazilIvan Magalhaes UNQUALIFIED
Jennifer Y WieserJapanIoni Bowcher RENEWAL
Johnson P ChuiItalyIvan Magalhaes NEW
Tony B RulapaughBrazilOnyama Limba QUALIFIED
Morrow R FollerUnited KingdomAnna Fali NEGOTIATION
Smith P KolmetzAustraliaStephen Shaw QUALIFIED
Julie P BriddickFranceXuxue Feng PROPOSAL
Salvatore T RulapaughRussiaAmy Elsner NEW
Murillo J GauchoSpainElwin Sharvill PROPOSAL
Sinclair E GauchoGermanyIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Isabel Q Schemmer
Leja H Vocelka
Kaitlin D Stenseth
Leja E Rulapaugh
Mujtaba H Slusarski
Smith K Malet
Leja Q Darakjy
Alejandro V Gillian
Leja W Morasca
Leon D Rim
Antonio F Nestle
Leja F Waycott
Darci D Chui
Kadeem J Perin
Sinclair L Foller
Ivar O Ostrosky
Munro Q Caldarera
Greenwood W Slusarski
Rodrigues Z Flosi
Emily L Garufi
Antonio O Rim
Wickens A Butt
Emily I Stockham
Stacey B Figeroa
Jefferson D Malet
Chavez A Waycott
Greenwood D Stockham
Izzy C Butt
Claire D Whobrey
Maisha K Royster
Maria I Bolognia
Jones G Rulapaugh
Rodrigues M Whobrey
Chavez Z Chui
Isabel H Gillian
Claire G Garufi
Stacey G Bowley
Adams Y Poquette
Stacey U Vocelka
Morrow I Venere
Francesco U Maclead
Sinclair E Perin
Alejandro Z Saylors
Chavez A Ostrosky
James I Amigon
Leon P Whobrey
Smith S Malet
Antonio V Poquette
Nicolas U Rim
Ricardo A Nestle
IdCountryDate
1000Japan2024-04-24
1001Brazil2024-04-26
1002Russia2024-04-23
1003United Kingdom2024-04-26
1004France2024-04-06
1005Brazil2024-04-15
1006Brazil2024-04-10
1007Italy2024-04-08
1008Russia2024-04-02
1009Russia2024-04-27
1010Germany2024-04-19
1011Argentina2024-04-23
1012Japan2024-04-15
1013Italy2024-04-01
1014Australia2024-04-12
1015Australia2024-03-30
1016Russia2024-04-01
1017India2024-03-30
1018Australia2024-04-11
1019Italy2024-04-03
1020United Kingdom2024-04-10
1021Germany2024-04-02
1022Australia2024-04-25
1023Russia2024-04-01
1024Germany2024-04-10
1025Italy2024-03-29
1026India2024-04-11
1027Australia2024-03-31
1028Brazil2024-04-25
1029Australia2024-04-18
1030Canada2024-04-06
1031Spain2024-04-15
1032Australia2024-04-24
1033Russia2024-04-01
1034United Kingdom2024-04-03
1035Spain2024-04-07
1036Brazil2024-04-20
1037Australia2024-04-18
1038Germany2024-04-16
1039United Kingdom2024-04-08
1040Argentina2024-04-25
1041India2024-04-24
1042Brazil2024-04-03
1043United Kingdom2024-04-17
1044Spain2024-04-05
1045Spain2024-04-08
1046Russia2024-04-17
1047Japan2024-04-04
1048Japan2024-04-16
1049France2024-04-23

On-Demand Data

NameIdCountryDate
Mayumi F Saylors1000Japan2024-04-25
Morrow Q Poquette1001France2024-03-31
James M Rim1002Japan2024-04-10
Isabel P Rulapaugh1003India2024-04-10
Jeanfrancois T Doe1004Canada2024-04-18
Jefferson E Bolognia1005Germany2024-04-22
Rodrigues Y Schemmer1006Canada2024-04-09
Antonio K Campain1007India2024-04-22
Kaitlin Q Oldroyd1008Canada2024-04-25
Tony O Ferencz1009India2024-04-24
Isabel V Whobrey1010Argentina2024-04-25
Leja G Wieser1011Argentina2024-04-12
Francesco L Stockham1012Italy2024-04-08
Jennifer D Kusko1013Japan2024-04-24
Octavia I Campain1014Germany2024-03-29
Mayumi T Nestle1015Russia2024-04-26
Tony N Ferencz1016Germany2024-04-05
Julie P Perin1017Russia2024-04-22
Aika X Butt1018Russia2024-04-26
Johnson E Iturbide1019France2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith E BriddickSpainOnyama Limba RENEWAL
Cody E GlickRussiaAmy Elsner UNQUALIFIED
Darci L SchemmerGermanyElwin Sharvill RENEWAL
Jefferson Q MorascaFranceAsiya Javayant UNQUALIFIED
Greenwood U MaletRussiaAmy Elsner UNQUALIFIED
Stacey D SergiSpainAnna Fali QUALIFIED
Emily G RutaSpainIvan Magalhaes NEGOTIATION
Maria L MorascaFranceIvan Magalhaes NEW
Mayumi M FlosiRussiaOnyama Limba PROPOSAL
Alejandro P BriddickIndiaStephen Shaw NEGOTIATION
Faith O NickaSpainIoni Bowcher RENEWAL
Costa A FollerRussiaElwin Sharvill QUALIFIED
Arvin D DoeFranceIvan Magalhaes PROPOSAL
David W DoeFranceIoni Bowcher PROPOSAL
Deepesh X SlusarskiRussiaElwin Sharvill NEW
Ivar Z NestleCanadaBernardo Dominic NEGOTIATION
Wickens O CampainArgentinaAsiya Javayant UNQUALIFIED
Stacey K AlbaresArgentinaStephen Shaw PROPOSAL
Costa F AmigonUnited KingdomIoni Bowcher UNQUALIFIED
James Z NickaUnited KingdomStephen Shaw RENEWAL
Emily G KuskoUnited KingdomAnna Fali UNQUALIFIED
Costa U KolmetzIndiaIoni Bowcher RENEWAL
Aruna A GarufiBrazilStephen Shaw UNQUALIFIED
Emily K WhobreyRussiaIvan Magalhaes NEW
David C KolmetzIndiaAsiya Javayant PROPOSAL
Adams N BologniaFranceBernardo Dominic UNQUALIFIED
Stacey R RutaFranceAsiya Javayant NEW
Tony J MaletGermanyIoni Bowcher QUALIFIED
Kadeem I PaprockiItalyIoni Bowcher PROPOSAL
Tony H InouyeBrazilIvan Magalhaes RENEWAL
Morrow X RutaUnited KingdomAmy Elsner QUALIFIED
Morrow R FerenczArgentinaAnna Fali PROPOSAL
Deepesh W VocelkaAustraliaAmy Elsner RENEWAL
Silvio D DarakjySpainIoni Bowcher UNQUALIFIED
Arvin G WhobreyBrazilIvan Magalhaes RENEWAL
Arvin L BowleyAustraliaElwin Sharvill PROPOSAL
Deepesh S PerinItalyIoni Bowcher UNQUALIFIED
Aditya O GauchoJapanIvan Magalhaes NEGOTIATION
Smith D ShinkoIndiaOnyama Limba UNQUALIFIED
Stacey X SchemmerSpainIvan Magalhaes 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>