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
Smith N CaudyRussiaAsiya Javayant QUALIFIED
Wickens N RulapaughUnited KingdomXuxue Feng QUALIFIED
Darci F VenereJapanStephen Shaw NEGOTIATION
Jennifer E KuskoCanadaXuxue Feng UNQUALIFIED
Munro P VocelkaCanadaStephen Shaw PROPOSAL
Alejandro O GauchoAustraliaIoni Bowcher QUALIFIED
Ricardo P StensethUnited KingdomIvan Magalhaes NEGOTIATION
Cody U DilliardJapanXuxue Feng QUALIFIED
Tony R RutaAustraliaIvan Magalhaes NEGOTIATION
Nicolas B InouyeGermanyIoni Bowcher QUALIFIED
Greenwood R StensethCanadaBernardo Dominic NEW
Claire P FerenczCanadaAnna Fali PROPOSAL
Nicolas N GlickItalyIvan Magalhaes NEGOTIATION
Faith H RutaGermanyOnyama Limba NEGOTIATION
Smith Q KuskoBrazilAsiya Javayant UNQUALIFIED
Murillo M PoquetteJapanAsiya Javayant RENEWAL
James K MacleadCanadaOnyama Limba QUALIFIED
Maisha C MacleadBrazilIvan Magalhaes NEGOTIATION
Juan O RimArgentinaAmy Elsner PROPOSAL
Adams A PaprockiAustraliaAsiya Javayant NEGOTIATION
Darci S DarakjySpainAmy Elsner RENEWAL
James X PoquetteRussiaStephen Shaw PROPOSAL
Emily M SaylorsFranceAsiya Javayant QUALIFIED
Kadeem S PaprockiFranceAnna Fali NEW
Emily M RoysterUnited KingdomBernardo Dominic PROPOSAL
Darci U WaycottFranceIoni Bowcher UNQUALIFIED
Ricardo C CampainFranceIvan Magalhaes PROPOSAL
Mayumi S OstroskyItalyElwin Sharvill NEGOTIATION
Adams V GlickCanadaXuxue Feng PROPOSAL
Wickens N ButtJapanAmy Elsner QUALIFIED
Faith A WhobreyAustraliaElwin Sharvill NEW
Faith V BowleyGermanyXuxue Feng NEGOTIATION
David D ButtUnited KingdomAmy Elsner QUALIFIED
Mayumi X SchemmerUnited KingdomAnna Fali QUALIFIED
Faith H StensethAustraliaAmy Elsner NEW
Murillo U NestleUnited KingdomBernardo Dominic UNQUALIFIED
Isabel O TollnerJapanOnyama Limba UNQUALIFIED
Kadeem C GauchoArgentinaElwin Sharvill NEW
Chavez Z AlbaresGermanyBernardo Dominic NEGOTIATION
Johnson C SaylorsJapanBernardo Dominic NEGOTIATION
Wickens G WaycottGermanyStephen Shaw RENEWAL
Murillo R RulapaughBrazilIoni Bowcher NEW
Jeanfrancois E GlickIndiaXuxue Feng NEW
Jones A IturbideCanadaOnyama Limba NEW
Jeanfrancois W NestleIndiaIoni Bowcher UNQUALIFIED
Aditya G AmigonArgentinaBernardo Dominic UNQUALIFIED
Costa X FerenczUnited KingdomXuxue Feng PROPOSAL
Juan V GlickAustraliaAnna Fali RENEWAL
Faith O IturbideJapanAsiya Javayant QUALIFIED
Maria G MacleadUnited KingdomIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi G GlickArgentinaAsiya Javayant NEGOTIATION
Greenwood C KuskoArgentinaBernardo Dominic RENEWAL
Aika K DilliardJapanIvan Magalhaes NEGOTIATION
Darci E FollerAustraliaIvan Magalhaes NEGOTIATION
Mujtaba Z FlosiIndiaAsiya Javayant NEW
Faith X StensethCanadaIvan Magalhaes NEW
Octavia T AlbaresFranceIoni Bowcher UNQUALIFIED
Kadeem A MarrierJapanOnyama Limba UNQUALIFIED
Kadeem I RoysterFranceStephen Shaw RENEWAL
Jones P MaletAustraliaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford V ButtItaly2024-04-09Buckley Miller Wright NEGOTIATION86Onyama Limba
1001Maria G CaudyItaly2024-04-18Benton, John B Jr RENEWAL61Asiya Javayant
1002Munro V MaletItaly2024-04-21Feiner Bros NEGOTIATION91Asiya Javayant
1003Jefferson A FigeroaRussia2024-04-13Feiner Bros UNQUALIFIED75Amy Elsner
1004Isabel I VocelkaJapan2024-04-20Rousseaux, Michael Esq NEGOTIATION53Anna Fali
1005Jeanfrancois F NestleUnited Kingdom2024-04-13Benton, John B Jr RENEWAL34Xuxue Feng
1006Tony J FollerSpain2024-04-19Rangoni Of Florence RENEWAL2Anna Fali
1007Morrow Z PaprockiBrazil2024-04-12King, Christopher A Esq NEW6Bernardo Dominic
1008Isabel A DoeUnited Kingdom2024-04-01Buckley Miller Wright UNQUALIFIED25Anna Fali
1009Greenwood K GarufiGermany2024-04-07Commercial Press NEGOTIATION73Asiya Javayant
1010Kadeem E OstroskyGermany2024-04-20Commercial Press RENEWAL37Ivan Magalhaes
1011Chavez X RoysterGermany2024-04-27Printing Dimensions NEW56Elwin Sharvill
1012Mujtaba Z PerinAustralia2024-04-27Dorl, James J Esq NEGOTIATION48Bernardo Dominic
1013Silvio X GillianAustralia2024-04-28Chanay, Jeffrey A Esq PROPOSAL63Xuxue Feng
1014Misaki Y MacleadIndia2024-04-12Rangoni Of Florence UNQUALIFIED25Xuxue Feng
1015Leon K BriddickFrance2024-04-23Printing Dimensions QUALIFIED91Ioni Bowcher
1016Aika E BriddickCanada2024-04-02King, Christopher A Esq UNQUALIFIED16Anna Fali
1017Izzy G AlbaresFrance2024-04-21King, Christopher A Esq PROPOSAL35Ivan Magalhaes
1018Antonio Y InouyeUnited Kingdom2024-04-25Feltz Printing Service UNQUALIFIED22Stephen Shaw
1019Adams O BologniaGermany2024-04-11Printing Dimensions NEW33Stephen Shaw
1020Jones U GlickIndia2024-04-17Commercial Press RENEWAL20Ioni Bowcher
1021Aditya Z PaprockiIndia2024-04-25Rangoni Of Florence RENEWAL93Xuxue Feng
1022James M WaycottCanada2024-04-04King, Christopher A Esq NEGOTIATION5Ioni Bowcher
1023Juan Z FlosiUnited Kingdom2024-04-18Commercial Press NEW58Bernardo Dominic
1024Adams W RimGermany2024-04-23Benton, John B Jr NEGOTIATION19Amy Elsner
1025Maria S WaycottArgentina2024-04-09Rousseaux, Michael Esq PROPOSAL42Ivan Magalhaes
1026Aditya O MaletBrazil2024-04-07King, Christopher A Esq QUALIFIED17Ivan Magalhaes
1027Kaitlin G FlosiAustralia2024-04-20Printing Dimensions NEW68Elwin Sharvill
1028Costa G WieserUnited Kingdom2024-04-01Rangoni Of Florence QUALIFIED58Anna Fali
1029Aika T DilliardJapan2024-04-20Benton, John B Jr QUALIFIED56Xuxue Feng
1030Rodrigues J MarrierIndia2024-04-18Buckley Miller Wright QUALIFIED72Bernardo Dominic
1031Julie O AmigonSpain2024-04-29Rousseaux, Michael Esq QUALIFIED9Amy Elsner
1032Stacey Q NickaIndia2024-04-12Chanay, Jeffrey A Esq PROPOSAL34Amy Elsner
1033Murillo H StensethFrance2024-04-10King, Christopher A Esq QUALIFIED50Bernardo Dominic
1034Salvatore K GlickIndia2024-04-19King, Christopher A Esq QUALIFIED52Bernardo Dominic
1035Isabel K GarufiBrazil2024-04-03Chemel, James L Cpa NEW1Elwin Sharvill
1036Ricardo R MaletRussia2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED92Xuxue Feng
1037Jennifer M BowleyBrazil2024-04-15Truhlar And Truhlar Attys RENEWAL29Ivan Magalhaes
1038Leja G BologniaIndia2024-04-08Chemel, James L Cpa QUALIFIED91Anna Fali
1039Jennifer Q FollerRussia2024-04-03Chanay, Jeffrey A Esq UNQUALIFIED52Onyama Limba
1040Ivar T AlbaresIndia2024-04-02Benton, John B Jr UNQUALIFIED47Amy Elsner
1041Arvin C BowleyFrance2024-04-05King, Christopher A Esq UNQUALIFIED33Asiya Javayant
1042Maria C StensethItaly2024-04-05Feltz Printing Service RENEWAL46Amy Elsner
1043Chavez F WhobreyIndia2024-04-11Dorl, James J Esq PROPOSAL38Asiya Javayant
1044Adams T RoysterUnited Kingdom2024-04-08Buckley Miller Wright UNQUALIFIED51Asiya Javayant
1045Wickens H RulapaughIndia2024-04-05Truhlar And Truhlar Attys NEGOTIATION57Elwin Sharvill
1046Faith M RimIndia2024-04-03King, Christopher A Esq RENEWAL30Stephen Shaw
1047David J BologniaSpain2024-04-27Benton, John B Jr UNQUALIFIED36Elwin Sharvill
1048Darci J VocelkaSpain2024-04-20Chemel, James L Cpa UNQUALIFIED25Elwin Sharvill
1049Darci M BriddickJapan2024-04-11King, Christopher A Esq PROPOSAL1Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Arvin F InouyeFranceElwin Sharvill NEGOTIATION
Izzy R VocelkaIndiaAsiya Javayant NEW
Ivar X FollerGermanyAsiya Javayant QUALIFIED
Costa K GauchoItalyAsiya Javayant PROPOSAL
Octavia Q FlosiAustraliaAmy Elsner RENEWAL
Sinclair P PaprockiRussiaIoni Bowcher RENEWAL
Darci P BologniaRussiaXuxue Feng UNQUALIFIED
Leon U CaldareraIndiaElwin Sharvill RENEWAL
Maria F CaldareraBrazilIvan Magalhaes RENEWAL
Claire I OstroskyJapanIoni Bowcher PROPOSAL
Faith Q SaylorsGermanyAnna Fali NEGOTIATION
Izzy P OstroskyFranceIoni Bowcher QUALIFIED
Leon I BriddickArgentinaIoni Bowcher NEW
Morrow V DarakjyRussiaOnyama Limba PROPOSAL
Jennifer U KolmetzGermanyOnyama Limba PROPOSAL
Sinclair I MorascaRussiaOnyama Limba UNQUALIFIED
Rodrigues S ShinkoCanadaOnyama Limba RENEWAL
Greenwood Z RutaAustraliaOnyama Limba UNQUALIFIED
Maria G CaudyCanadaIoni Bowcher QUALIFIED
Aruna N PoquetteArgentinaIoni Bowcher NEW
Aditya B KuskoGermanyAsiya Javayant NEW
Jones B InouyeCanadaXuxue Feng RENEWAL
Leon E InouyeArgentinaXuxue Feng NEW
Aditya G ButtItalyElwin Sharvill UNQUALIFIED
Murillo U GillianItalyIvan Magalhaes NEGOTIATION
Murillo Y GauchoGermanyXuxue Feng PROPOSAL
Cody K CaudyAustraliaAsiya Javayant RENEWAL
Mayumi C GarufiFranceAsiya Javayant NEGOTIATION
Leon F FerenczFranceAmy Elsner NEGOTIATION
Aditya R OldroydUnited KingdomAnna Fali NEW
Maria I ShinkoBrazilIoni Bowcher UNQUALIFIED
Chavez Q MaletUnited KingdomIoni Bowcher NEGOTIATION
Tony Z WieserIndiaAsiya Javayant PROPOSAL
Ivar C CaudySpainOnyama Limba UNQUALIFIED
Maria F RimItalyXuxue Feng NEGOTIATION
Chavez I StockhamItalyAmy Elsner UNQUALIFIED
Costa Q RutaFranceAmy Elsner RENEWAL
Izzy O InouyeItalyAsiya Javayant PROPOSAL
Tony G StensethSpainElwin Sharvill NEGOTIATION
Wickens H CampainSpainIvan Magalhaes RENEWAL
Octavia E WaycottRussiaElwin Sharvill UNQUALIFIED
Jennifer Q SlusarskiArgentinaIvan Magalhaes NEGOTIATION
James O AlbaresCanadaAmy Elsner UNQUALIFIED
Rodrigues R KolmetzGermanyAnna Fali QUALIFIED
Kadeem W OldroydIndiaAsiya Javayant RENEWAL
Faith J RulapaughRussiaAnna Fali PROPOSAL
James Q CampainIndiaAmy Elsner UNQUALIFIED
Kadeem E FerenczAustraliaStephen Shaw NEW
Clifford B CaudyCanadaAnna Fali QUALIFIED
Antonio R MacleadRussiaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Aruna J Garufi
Leja R Paprocki
Salvatore D Tollner
Costa E Ostrosky
James X Glick
Chavez R Iturbide
James D Waycott
Ashley R Caudy
Rodrigues L Malet
Francesco G Garufi
Octavia X Bowley
Nicolas X Oldroyd
Stacey Z Briddick
Alejandro Y Inouye
Juan D Maclead
Aika G Iturbide
Darci Z Poquette
Kadeem C Ostrosky
Antonio K Royster
Jones N Royster
Nicolas Q Saylors
Francesco F Maclead
Ashley P Saylors
Claire N Oldroyd
Misaki K Caudy
Ricardo A Ruta
Jones Y Schemmer
Stacey O Tollner
Ashley J Garufi
Leon D Stockham
Smith M Flosi
Jeanfrancois V Morasca
Ivar Z Paprocki
Chavez C Tollner
Octavia Y Albares
Stacey W Wieser
Jones P Malet
Faith I Caudy
Mujtaba V Chui
Sinclair Y Kusko
Jones Y Royster
Silvio T Malet
Salvatore H Ostrosky
Ashley O Tollner
Morrow E Albares
Stacey X Rulapaugh
Ivar D Chui
Leon A Venere
Munro K Inouye
Francesco X Albares
IdCountryDate
1000Brazil2024-04-19
1001Spain2024-04-12
1002France2024-04-02
1003Italy2024-04-19
1004Spain2024-04-11
1005Brazil2024-04-01
1006Australia2024-04-08
1007United Kingdom2024-04-05
1008Argentina2024-04-24
1009France2024-04-24
1010France2024-04-06
1011Italy2024-04-17
1012United Kingdom2024-04-27
1013Japan2024-04-13
1014Japan2024-04-12
1015Spain2024-04-14
1016Italy2024-04-19
1017Australia2024-04-27
1018Russia2024-04-13
1019Germany2024-04-22
1020United Kingdom2024-04-01
1021France2024-04-03
1022Russia2024-04-11
1023India2024-04-27
1024Australia2024-04-28
1025Spain2024-04-29
1026India2024-04-16
1027United Kingdom2024-04-23
1028Germany2024-04-02
1029India2024-04-14
1030France2024-04-23
1031Russia2024-04-10
1032Australia2024-04-11
1033Italy2024-04-08
1034Italy2024-04-07
1035Argentina2024-04-27
1036Argentina2024-04-29
1037Argentina2024-03-31
1038Canada2024-04-08
1039Canada2024-04-05
1040Spain2024-04-12
1041Italy2024-04-10
1042Argentina2024-04-06
1043Brazil2024-04-17
1044India2024-04-22
1045Spain2024-04-23
1046Canada2024-04-09
1047Argentina2024-04-05
1048India2024-04-01
1049Japan2024-04-29

On-Demand Data

NameIdCountryDate
Ivar Q Kolmetz1000France2024-04-19
Kaitlin S Shinko1001Australia2024-04-12
Chavez V Bowley1002Brazil2024-04-22
Jones S Iturbide1003Russia2024-04-27
Francesco U Paprocki1004Russia2024-04-04
Jones U Ostrosky1005Russia2024-04-17
Ivar H Waycott1006Italy2024-04-07
Leja N Malet1007Australia2024-04-06
Chavez U Oldroyd1008France2024-04-27
Salvatore B Caldarera1009United Kingdom2024-04-15
Isabel Z Wieser1010Italy2024-04-13
Salvatore X Glick1011Germany2024-04-14
Jennifer G Caldarera1012United Kingdom2024-04-16
Antonio N Malet1013India2024-04-17
Jeanfrancois A Briddick1014Canada2024-04-27
Aruna C Nestle1015India2024-04-23
Faith B Royster1016Italy2024-04-27
Kadeem S Chui1017Spain2024-04-01
Jefferson D Whobrey1018Russia2024-04-19
Costa E Garufi1019Spain2024-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy Q CaldareraJapanIoni Bowcher QUALIFIED
Aditya G ShinkoArgentinaXuxue Feng RENEWAL
Leon H CampainRussiaOnyama Limba QUALIFIED
Sinclair I DilliardJapanIoni Bowcher PROPOSAL
Greenwood O FollerAustraliaXuxue Feng RENEWAL
Silvio D SaylorsAustraliaAnna Fali PROPOSAL
Deepesh L SaylorsGermanyAnna Fali RENEWAL
Nicolas A MacleadRussiaAnna Fali RENEWAL
Adams G VenereAustraliaStephen Shaw NEGOTIATION
Maria L GlickJapanIvan Magalhaes QUALIFIED
Faith M BowleyRussiaStephen Shaw RENEWAL
Stacey M IturbideGermanyAmy Elsner NEW
Mujtaba L CampainRussiaAnna Fali NEGOTIATION
Nicolas I IturbideRussiaIvan Magalhaes NEW
Ashley N MacleadGermanyIoni Bowcher UNQUALIFIED
Cody B CampainFranceStephen Shaw RENEWAL
Octavia N WhobreyItalyXuxue Feng RENEWAL
Jones J KuskoCanadaStephen Shaw PROPOSAL
James Q MaletJapanElwin Sharvill QUALIFIED
Munro C FlosiFranceAnna Fali QUALIFIED
Jones W RimItalyStephen Shaw QUALIFIED
Morrow W IturbideCanadaAmy Elsner PROPOSAL
Isabel I MacleadJapanAsiya Javayant PROPOSAL
Jeanfrancois O RimSpainElwin Sharvill NEGOTIATION
Jones M NickaUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer Z ChuiIndiaElwin Sharvill QUALIFIED
Kaitlin C TollnerJapanXuxue Feng NEGOTIATION
Mayumi X FerenczArgentinaAnna Fali RENEWAL
Rodrigues F FlosiItalyElwin Sharvill NEW
Silvio C SergiArgentinaElwin Sharvill PROPOSAL
Chavez W RoysterSpainStephen Shaw NEW
Darci U SlusarskiArgentinaBernardo Dominic PROPOSAL
Jefferson D SaylorsCanadaIoni Bowcher NEW
Antonio M MaletRussiaElwin Sharvill QUALIFIED
Clifford Q SergiSpainOnyama Limba RENEWAL
Murillo S AmigonSpainXuxue Feng NEW
Isabel Q ChuiRussiaIoni Bowcher UNQUALIFIED
Mayumi W DarakjyFranceOnyama Limba PROPOSAL
James X SchemmerIndiaAsiya Javayant QUALIFIED
Adams E SergiAustraliaAmy Elsner UNQUALIFIED

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