Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

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 D RutaIndiaStephen Shaw NEW
Rodrigues L SchemmerSpainIoni Bowcher RENEWAL
Rodrigues X GillianJapanAmy Elsner NEW
Jefferson F ButtJapanIvan Magalhaes QUALIFIED
Jennifer Y CaldareraAustraliaStephen Shaw NEGOTIATION
Kadeem V AlbaresItalyXuxue Feng QUALIFIED
Cody J FerenczGermanyAnna Fali NEW
Wickens C RutaSpainAnna Fali RENEWAL
Smith Q NestleAustraliaIoni Bowcher PROPOSAL
Ricardo H GarufiIndiaStephen Shaw RENEWAL
Silvio D DarakjyItalyIvan Magalhaes PROPOSAL
Silvio K FerenczGermanyOnyama Limba UNQUALIFIED
Smith B DarakjyJapanOnyama Limba NEGOTIATION
Greenwood T TollnerBrazilIvan Magalhaes PROPOSAL
Adams L RulapaughGermanyXuxue Feng NEGOTIATION
Cody X RoysterIndiaElwin Sharvill PROPOSAL
Wickens T RoysterSpainAmy Elsner QUALIFIED
Morrow Q DoeAustraliaXuxue Feng UNQUALIFIED
Misaki Y DoeSpainAnna Fali NEW
Kaitlin K SaylorsBrazilAmy Elsner NEW
Arvin E PaprockiFranceElwin Sharvill UNQUALIFIED
Kadeem A OstroskyArgentinaOnyama Limba UNQUALIFIED
Clifford M SaylorsBrazilElwin Sharvill RENEWAL
Aika R PoquetteIndiaBernardo Dominic NEW
Izzy O NickaFranceAmy Elsner NEGOTIATION
Aruna G OstroskyArgentinaAnna Fali QUALIFIED
Ricardo S AmigonCanadaAmy Elsner PROPOSAL
Maisha R DarakjyItalyIoni Bowcher NEGOTIATION
Greenwood Y MorascaGermanyElwin Sharvill PROPOSAL
Salvatore Q PoquetteIndiaAmy Elsner UNQUALIFIED
James S FigeroaFranceStephen Shaw QUALIFIED
Nicolas L SaylorsFranceOnyama Limba QUALIFIED
Kaitlin F SergiRussiaAsiya Javayant QUALIFIED
Deepesh K ShinkoJapanElwin Sharvill PROPOSAL
Claire X KuskoItalyElwin Sharvill UNQUALIFIED
Mujtaba P IturbideRussiaStephen Shaw NEGOTIATION
Kaitlin R FlosiCanadaElwin Sharvill NEW
Jefferson S VocelkaUnited KingdomBernardo Dominic UNQUALIFIED
Arvin W ChuiJapanElwin Sharvill PROPOSAL
Morrow M CaudySpainOnyama Limba QUALIFIED
Costa U GlickItalyAmy Elsner UNQUALIFIED
Leja E SergiUnited KingdomAnna Fali NEW
Ivar E MarrierItalyOnyama Limba NEGOTIATION
Mujtaba V IturbideGermanyElwin Sharvill QUALIFIED
Izzy F TollnerGermanyOnyama Limba UNQUALIFIED
Wickens H PaprockiJapanIoni Bowcher UNQUALIFIED
Aika H RutaRussiaOnyama Limba PROPOSAL
James B GillianBrazilOnyama Limba RENEWAL
Julie N CaldareraJapanAnna Fali QUALIFIED
Mujtaba F MorascaAustraliaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Smith U MorascaJapanElwin Sharvill PROPOSAL
Smith U InouyeJapanIoni Bowcher PROPOSAL
Maria N StensethBrazilAsiya Javayant NEW
Clifford X PaprockiJapanStephen Shaw NEW
Johnson I MaletAustraliaXuxue Feng RENEWAL
Smith J MaletItalyAmy Elsner NEW
Maisha E DoeUnited KingdomStephen Shaw PROPOSAL
Deepesh T TollnerGermanyAmy Elsner RENEWAL
Antonio A FigeroaAustraliaStephen Shaw NEGOTIATION
Darci A PerinCanadaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem Z WaycottCanada2026-07-31Rousseaux, Michael Esq RENEWAL25Elwin Sharvill
1001Ivar G WaycottGermany2026-08-02Rangoni Of Florence QUALIFIED99Asiya Javayant
1002Jeanfrancois O SchemmerAustralia2026-08-09Feiner Bros UNQUALIFIED63Bernardo Dominic
1003Juan H WhobreyArgentina2026-07-24Feltz Printing Service NEW37Amy Elsner
1004Cody K GlickUnited Kingdom2026-08-03Benton, John B Jr NEGOTIATION0Ioni Bowcher
1005Greenwood P MaletArgentina2026-08-11Morlong Associates RENEWAL81Amy Elsner
1006Sinclair M FollerSpain2026-07-27Rangoni Of Florence NEW12Onyama Limba
1007Salvatore M KolmetzAustralia2026-08-07Rangoni Of Florence NEGOTIATION98Stephen Shaw
1008Clifford I RutaItaly2026-07-23Buckley Miller Wright NEW0Bernardo Dominic
1009Nicolas M FigeroaUnited Kingdom2026-08-15Feltz Printing Service NEGOTIATION13Onyama Limba
1010Rodrigues V OstroskyItaly2026-08-12Printing Dimensions NEW25Ivan Magalhaes
1011Ashley P NestleJapan2026-07-24Chanay, Jeffrey A Esq QUALIFIED48Stephen Shaw
1012Leon A OldroydGermany2026-08-13Commercial Press UNQUALIFIED35Onyama Limba
1013Greenwood E NestleBrazil2026-07-20Chapman, Ross E Esq RENEWAL16Bernardo Dominic
1014Adams I OstroskyRussia2026-08-13King, Christopher A Esq NEGOTIATION71Ioni Bowcher
1015Aika Y VocelkaGermany2026-08-05Benton, John B Jr PROPOSAL82Ivan Magalhaes
1016Murillo A FerenczUnited Kingdom2026-08-12Truhlar And Truhlar Attys RENEWAL86Stephen Shaw
1017Izzy E ButtBrazil2026-07-21Printing Dimensions NEW52Ivan Magalhaes
1018Morrow F MarrierRussia2026-08-14Rousseaux, Michael Esq NEGOTIATION55Stephen Shaw
1019Julie M WieserJapan2026-07-31Rousseaux, Michael Esq NEW28Anna Fali
1020Jeanfrancois E AlbaresAustralia2026-08-01King, Christopher A Esq UNQUALIFIED48Asiya Javayant
1021Stacey U KuskoGermany2026-07-28Feiner Bros UNQUALIFIED71Ioni Bowcher
1022Tony B ShinkoJapan2026-08-08Commercial Press UNQUALIFIED39Bernardo Dominic
1023Antonio I OstroskyRussia2026-07-31Morlong Associates NEGOTIATION73Bernardo Dominic
1024Octavia Z ButtAustralia2026-07-28Benton, John B Jr NEGOTIATION76Xuxue Feng
1025Adams Y StensethCanada2026-07-31Commercial Press NEW69Bernardo Dominic
1026Jennifer T CampainFrance2026-08-04Printing Dimensions UNQUALIFIED84Ivan Magalhaes
1027Johnson F BowleyFrance2026-08-11Truhlar And Truhlar Attys NEGOTIATION82Bernardo Dominic
1028Munro R RoysterGermany2026-08-06Rangoni Of Florence UNQUALIFIED82Onyama Limba
1029Silvio T NestleBrazil2026-08-02Feltz Printing Service UNQUALIFIED93Ioni Bowcher
1030Stacey F SaylorsUnited Kingdom2026-07-26King, Christopher A Esq NEW0Xuxue Feng
1031Misaki R NickaJapan2026-07-29Feltz Printing Service NEGOTIATION26Amy Elsner
1032Leon U GillianFrance2026-07-19Benton, John B Jr RENEWAL44Stephen Shaw
1033Maisha I GauchoSpain2026-08-11Dorl, James J Esq QUALIFIED16Xuxue Feng
1034Mujtaba M DoeUnited Kingdom2026-08-04Rangoni Of Florence UNQUALIFIED52Amy Elsner
1035Johnson A DarakjyFrance2026-07-27Commercial Press UNQUALIFIED2Elwin Sharvill
1036Adams F StockhamAustralia2026-08-07King, Christopher A Esq PROPOSAL8Elwin Sharvill
1037Claire V CaudyBrazil2026-08-03Printing Dimensions NEGOTIATION97Ioni Bowcher
1038Izzy L GlickCanada2026-08-05Dorl, James J Esq RENEWAL1Ivan Magalhaes
1039Misaki D CaudyItaly2026-07-23Truhlar And Truhlar Attys RENEWAL33Ivan Magalhaes
1040Munro Y FerenczSpain2026-08-03Truhlar And Truhlar Attys NEGOTIATION66Ivan Magalhaes
1041Wickens X OstroskyItaly2026-08-16Chapman, Ross E Esq NEW35Onyama Limba
1042Tony S RulapaughRussia2026-08-12Truhlar And Truhlar Attys RENEWAL22Ioni Bowcher
1043Murillo C MarrierArgentina2026-08-09Dorl, James J Esq UNQUALIFIED49Ivan Magalhaes
1044Johnson U IturbideIndia2026-07-23Rousseaux, Michael Esq NEW89Ivan Magalhaes
1045Juan P FollerCanada2026-07-19Morlong Associates NEW79Xuxue Feng
1046Faith E FlosiFrance2026-08-01Morlong Associates NEGOTIATION84Bernardo Dominic
1047Ricardo Q DilliardItaly2026-08-01King, Christopher A Esq NEW99Xuxue Feng
1048Faith U CaldareraGermany2026-08-06Feiner Bros RENEWAL13Onyama Limba
1049Isabel T WaycottBrazil2026-07-25Dorl, James J Esq PROPOSAL81Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Misaki Z FigeroaUnited KingdomElwin Sharvill NEGOTIATION
Juan Z PoquetteAustraliaElwin Sharvill NEGOTIATION
Aruna P GauchoFranceAsiya Javayant NEGOTIATION
Silvio J DarakjyCanadaAmy Elsner NEW
Tony H SaylorsIndiaOnyama Limba QUALIFIED
Aika G DarakjyCanadaElwin Sharvill NEGOTIATION
James F GillianSpainXuxue Feng NEGOTIATION
Emily D DoeArgentinaBernardo Dominic NEGOTIATION
Mayumi I KolmetzJapanBernardo Dominic NEGOTIATION
Wickens W FlosiSpainIoni Bowcher NEW
Leja K RoysterItalyIoni Bowcher QUALIFIED
Darci Y ShinkoFranceIvan Magalhaes NEW
Aruna Z PerinSpainOnyama Limba QUALIFIED
Adams T FerenczSpainElwin Sharvill NEGOTIATION
Juan U FerenczIndiaXuxue Feng QUALIFIED
Aditya X CampainCanadaOnyama Limba NEW
Adams L FerenczSpainElwin Sharvill RENEWAL
Leon R NickaArgentinaElwin Sharvill NEW
Jeanfrancois U GillianIndiaIvan Magalhaes QUALIFIED
Mayumi E GillianBrazilBernardo Dominic RENEWAL
Maisha G CaudyGermanyAnna Fali PROPOSAL
Izzy C MacleadFranceXuxue Feng PROPOSAL
Kadeem Q BologniaGermanyAmy Elsner NEGOTIATION
Stacey P PoquetteIndiaXuxue Feng UNQUALIFIED
Darci N DoeGermanyStephen Shaw RENEWAL
Sinclair R PaprockiGermanyIvan Magalhaes PROPOSAL
Octavia P AmigonArgentinaIoni Bowcher NEGOTIATION
Izzy S PoquetteAustraliaBernardo Dominic QUALIFIED
Mayumi G PoquetteRussiaAnna Fali NEGOTIATION
Jennifer Q VenereFranceXuxue Feng PROPOSAL
Sinclair G StensethSpainElwin Sharvill PROPOSAL
Francesco A OldroydRussiaBernardo Dominic NEW
Cody P MorascaGermanyElwin Sharvill QUALIFIED
Isabel X CampainJapanXuxue Feng PROPOSAL
Wickens O RulapaughJapanXuxue Feng NEW
Faith P RulapaughRussiaAmy Elsner PROPOSAL
Jones K FerenczBrazilIvan Magalhaes RENEWAL
Alejandro P ButtFranceOnyama Limba NEGOTIATION
Misaki D MarrierJapanAmy Elsner NEGOTIATION
David N CaudyArgentinaAmy Elsner PROPOSAL
Leon X SaylorsGermanyAsiya Javayant NEW
Aruna J MarrierJapanStephen Shaw RENEWAL
Misaki T SchemmerJapanOnyama Limba NEGOTIATION
Darci B WieserItalyStephen Shaw UNQUALIFIED
Alejandro I FlosiRussiaOnyama Limba UNQUALIFIED
Jones C ButtAustraliaAnna Fali NEW
Chavez Z NickaAustraliaBernardo Dominic QUALIFIED
Maria T SaylorsCanadaBernardo Dominic RENEWAL
Johnson R SergiSpainIvan Magalhaes UNQUALIFIED
Izzy P FerenczJapanAnna Fali RENEWAL
Frozen Columns
Name
Maria U Butt
Chavez R Stockham
Stacey N Slusarski
Jennifer I Glick
Emily T Tollner
Claire D Schemmer
Adams K Morasca
Alejandro Y Tollner
Ashley D Butt
Alejandro B Inouye
Leja X Flosi
Johnson E Sergi
Leon I Morasca
Mujtaba A Stockham
Stacey G Rim
James E Malet
Julie R Bolognia
Mayumi T Ruta
Mujtaba W Foller
Clifford A Nestle
Jennifer E Garufi
Murillo V Poquette
Costa U Nestle
Claire R Gaucho
Nicolas N Poquette
Cody U Morasca
Ivar V Figeroa
Alejandro A Shinko
Juan H Schemmer
Clifford A Bowley
Misaki H Dilliard
Wickens S Ferencz
Aika U Bolognia
Juan K Bolognia
Ricardo U Nestle
Darci Y Morasca
Octavia P Inouye
Greenwood C Garufi
Jones M Darakjy
Murillo E Stockham
Silvio G Ruta
Morrow B Oldroyd
Wickens Z Gaucho
Adams F Maclead
Salvatore G Inouye
Mujtaba N Rulapaugh
Jones W Flosi
Faith V Doe
Nicolas V Butt
Sinclair T Campain
IdCountryDate
1000India2026-07-29
1001Canada2026-07-29
1002Spain2026-07-22
1003Canada2026-08-01
1004Italy2026-07-21
1005Germany2026-07-27
1006United Kingdom2026-08-17
1007Russia2026-08-08
1008Canada2026-08-02
1009France2026-07-26
1010Brazil2026-08-06
1011Brazil2026-08-03
1012France2026-07-30
1013Japan2026-08-06
1014Australia2026-07-26
1015Brazil2026-08-04
1016Russia2026-07-26
1017Argentina2026-08-14
1018Italy2026-08-07
1019Spain2026-07-20
1020Brazil2026-08-14
1021Spain2026-07-24
1022Italy2026-07-31
1023Italy2026-08-11
1024Italy2026-08-08
1025Argentina2026-08-13
1026France2026-07-28
1027France2026-08-05
1028Australia2026-08-08
1029Spain2026-07-21
1030Japan2026-08-01
1031Canada2026-08-01
1032Argentina2026-08-02
1033Spain2026-07-30
1034Spain2026-07-19
1035Japan2026-08-08
1036Italy2026-07-24
1037Italy2026-08-01
1038Russia2026-08-10
1039Italy2026-07-29
1040Spain2026-07-21
1041France2026-08-13
1042United Kingdom2026-08-12
1043Spain2026-08-12
1044Australia2026-07-25
1045Japan2026-07-23
1046France2026-07-23
1047Canada2026-08-15
1048Argentina2026-07-31
1049Brazil2026-08-02

On-Demand Data

NameIdCountryDate
Kadeem N Figeroa1000India2026-07-31
Maria E Nestle1001India2026-08-14
Ashley F Campain1002Spain2026-08-11
Kaitlin P Rim1003Spain2026-07-31
Kadeem P Whobrey1004France2026-08-07
Mujtaba S Sergi1005Brazil2026-07-22
Wickens B Chui1006Spain2026-08-15
Kadeem F Waycott1007Spain2026-08-07
Chavez X Sergi1008Japan2026-08-16
Faith X Morasca1009United Kingdom2026-08-13
Emily B Bolognia1010United Kingdom2026-08-05
Adams Y Chui1011Italy2026-08-07
Mayumi Y Malet1012Germany2026-08-01
David L Wieser1013Brazil2026-08-02
Ashley E Wieser1014Italy2026-08-05
Silvio X Nicka1015Brazil2026-08-08
Leja X Rulapaugh1016Spain2026-07-19
Costa Y Glick1017Brazil2026-08-17
Alejandro L Gillian1018India2026-07-29
Tony V Saylors1019Australia2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar P IturbideIndiaAsiya Javayant QUALIFIED
Mayumi H GlickUnited KingdomAnna Fali QUALIFIED
Jones N BologniaCanadaAmy Elsner NEW
Maisha X WaycottUnited KingdomElwin Sharvill PROPOSAL
Jennifer V DilliardGermanyStephen Shaw RENEWAL
Rodrigues L BologniaIndiaAsiya Javayant RENEWAL
Alejandro J ShinkoAustraliaBernardo Dominic NEGOTIATION
Emily A StockhamSpainStephen Shaw RENEWAL
Francesco R OstroskyAustraliaIoni Bowcher NEGOTIATION
Sinclair G CaldareraGermanyAnna Fali NEW
Misaki M FollerUnited KingdomIvan Magalhaes QUALIFIED
Clifford P CampainIndiaIoni Bowcher QUALIFIED
Misaki S FigeroaRussiaAmy Elsner QUALIFIED
Juan C WaycottIndiaXuxue Feng UNQUALIFIED
Ivar C CaldareraUnited KingdomBernardo Dominic NEGOTIATION
Silvio X FollerRussiaIoni Bowcher QUALIFIED
Misaki I CaudyIndiaXuxue Feng QUALIFIED
Rodrigues N GauchoRussiaAsiya Javayant UNQUALIFIED
Kadeem E PaprockiGermanyIoni Bowcher PROPOSAL
Cody K KolmetzBrazilOnyama Limba QUALIFIED
Smith P ChuiGermanyAnna Fali UNQUALIFIED
Tony Z CampainGermanyAnna Fali PROPOSAL
Adams F KuskoAustraliaAmy Elsner RENEWAL
Leja O VocelkaJapanIoni Bowcher RENEWAL
Kadeem M WaycottIndiaBernardo Dominic RENEWAL
Misaki Y OstroskyAustraliaIoni Bowcher NEW
David J MaletItalyAsiya Javayant UNQUALIFIED
Costa V BologniaGermanyAsiya Javayant NEGOTIATION
Kadeem Y SergiIndiaIvan Magalhaes PROPOSAL
Jennifer I ChuiUnited KingdomIoni Bowcher NEGOTIATION
Claire E RutaFranceXuxue Feng UNQUALIFIED
Salvatore Q FollerUnited KingdomAsiya Javayant NEW
Costa J MorascaGermanyIoni Bowcher PROPOSAL
James N ButtIndiaXuxue Feng PROPOSAL
Alejandro J PaprockiGermanyAsiya Javayant UNQUALIFIED
Claire V GauchoBrazilIvan Magalhaes NEW
Nicolas K GlickRussiaIoni Bowcher PROPOSAL
Arvin R PaprockiAustraliaAmy Elsner NEW
Aika Q GlickGermanyBernardo Dominic QUALIFIED
Adams Y KolmetzRussiaBernardo Dominic 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>