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
Juan X MacleadJapanIvan Magalhaes NEW
Ashley G OldroydJapanXuxue Feng PROPOSAL
Antonio N CaldareraAustraliaIvan Magalhaes PROPOSAL
Adams S KolmetzIndiaAmy Elsner PROPOSAL
Rodrigues A MorascaSpainBernardo Dominic QUALIFIED
Morrow H AmigonAustraliaAsiya Javayant QUALIFIED
Aika J GarufiUnited KingdomXuxue Feng NEW
Johnson F GillianFranceIoni Bowcher UNQUALIFIED
Mayumi W AlbaresItalyOnyama Limba QUALIFIED
Misaki V FlosiCanadaElwin Sharvill NEW
Greenwood S BowleyAustraliaOnyama Limba UNQUALIFIED
Juan F FerenczIndiaStephen Shaw UNQUALIFIED
Darci P PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Smith O ShinkoIndiaAsiya Javayant RENEWAL
Clifford Q RutaRussiaOnyama Limba UNQUALIFIED
Murillo L NickaJapanXuxue Feng RENEWAL
Leja X GlickAustraliaAmy Elsner QUALIFIED
Leon E GlickIndiaXuxue Feng NEW
Julie V WieserUnited KingdomOnyama Limba PROPOSAL
Wickens I VenereArgentinaAsiya Javayant NEW
Nicolas H ButtCanadaXuxue Feng QUALIFIED
Clifford S FlosiBrazilIvan Magalhaes UNQUALIFIED
Stacey M TollnerFranceOnyama Limba QUALIFIED
Jefferson X SaylorsSpainXuxue Feng NEGOTIATION
Johnson U PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Johnson G AlbaresGermanyIoni Bowcher QUALIFIED
Darci R PerinJapanElwin Sharvill QUALIFIED
Mujtaba B StockhamAustraliaElwin Sharvill NEW
Antonio I WieserJapanOnyama Limba QUALIFIED
Johnson Z CampainJapanStephen Shaw QUALIFIED
Chavez E GillianBrazilStephen Shaw NEW
Claire W DarakjyAustraliaXuxue Feng UNQUALIFIED
Faith F IturbideAustraliaAmy Elsner NEW
Wickens K RutaItalyAnna Fali NEW
Jeanfrancois W MaletIndiaIvan Magalhaes UNQUALIFIED
Antonio R BriddickSpainIoni Bowcher RENEWAL
Aika Z FlosiItalyAsiya Javayant UNQUALIFIED
Claire A CampainSpainElwin Sharvill UNQUALIFIED
Costa Q SchemmerUnited KingdomIvan Magalhaes NEW
Morrow S GarufiBrazilElwin Sharvill UNQUALIFIED
Leja L KuskoIndiaAmy Elsner UNQUALIFIED
Munro Y GarufiCanadaXuxue Feng PROPOSAL
Rodrigues J DarakjyUnited KingdomIvan Magalhaes UNQUALIFIED
Jeanfrancois R VocelkaIndiaAmy Elsner QUALIFIED
Ivar I IturbideAustraliaOnyama Limba QUALIFIED
Chavez G MaletUnited KingdomOnyama Limba QUALIFIED
Julie Q ButtBrazilAnna Fali UNQUALIFIED
Sinclair I TollnerCanadaIoni Bowcher RENEWAL
Misaki T MaletRussiaIvan Magalhaes UNQUALIFIED
Claire A KuskoGermanyAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Chavez B BowleyUnited KingdomStephen Shaw UNQUALIFIED
Francesco N RulapaughArgentinaStephen Shaw NEGOTIATION
Silvio G TollnerArgentinaIoni Bowcher UNQUALIFIED
Kadeem C NestleAustraliaAsiya Javayant RENEWAL
Chavez R RutaGermanyBernardo Dominic PROPOSAL
Maisha I BologniaBrazilOnyama Limba QUALIFIED
Maria B OstroskyJapanElwin Sharvill NEGOTIATION
Costa B StockhamSpainAnna Fali NEGOTIATION
Morrow I DarakjyGermanyElwin Sharvill PROPOSAL
Aika Z SergiItalyStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki K SchemmerIndia2024-05-30Feltz Printing Service NEGOTIATION91Xuxue Feng
1001Kaitlin M GarufiIndia2024-06-08Commercial Press NEGOTIATION34Elwin Sharvill
1002Julie Y FerenczSpain2024-05-29Rousseaux, Michael Esq NEGOTIATION37Ivan Magalhaes
1003Murillo L TollnerUnited Kingdom2024-06-06Morlong Associates RENEWAL40Asiya Javayant
1004Ivar K NestleUnited Kingdom2024-06-02Chapman, Ross E Esq NEW68Bernardo Dominic
1005Francesco V MacleadItaly2024-05-27Commercial Press PROPOSAL22Anna Fali
1006Johnson G CaudyItaly2024-05-27Chemel, James L Cpa UNQUALIFIED92Stephen Shaw
1007Leon V GarufiCanada2024-06-04Rangoni Of Florence UNQUALIFIED70Onyama Limba
1008Cody J DilliardAustralia2024-06-11King, Christopher A Esq PROPOSAL53Anna Fali
1009Claire B WhobreyIndia2024-06-13Benton, John B Jr RENEWAL26Bernardo Dominic
1010Emily V StensethItaly2024-06-02King, Christopher A Esq QUALIFIED44Asiya Javayant
1011Jennifer K GlickUnited Kingdom2024-05-31Chanay, Jeffrey A Esq NEGOTIATION93Anna Fali
1012Kadeem H NestleSpain2024-06-09Feltz Printing Service NEGOTIATION31Asiya Javayant
1013Maisha H WaycottSpain2024-06-10Rangoni Of Florence NEW76Amy Elsner
1014Ivar O FollerItaly2024-06-11Feiner Bros PROPOSAL20Onyama Limba
1015Murillo T MorascaCanada2024-06-07Printing Dimensions UNQUALIFIED50Xuxue Feng
1016Francesco Q VenereUnited Kingdom2024-06-08Printing Dimensions NEW19Bernardo Dominic
1017Murillo V WhobreyBrazil2024-06-03Chemel, James L Cpa UNQUALIFIED19Amy Elsner
1018Murillo K KolmetzRussia2024-06-15King, Christopher A Esq NEW29Asiya Javayant
1019Faith S GauchoIndia2024-06-23Commercial Press PROPOSAL1Elwin Sharvill
1020Antonio Z SaylorsRussia2024-06-15Dorl, James J Esq NEGOTIATION45Ivan Magalhaes
1021Antonio K SchemmerGermany2024-06-19Commercial Press UNQUALIFIED28Onyama Limba
1022Ricardo H DoeRussia2024-05-31Feiner Bros RENEWAL39Ioni Bowcher
1023Jefferson R RoysterFrance2024-06-09King, Christopher A Esq PROPOSAL65Xuxue Feng
1024Adams X CaudySpain2024-06-09Morlong Associates NEGOTIATION82Stephen Shaw
1025Antonio S TollnerSpain2024-05-31Dorl, James J Esq UNQUALIFIED8Ivan Magalhaes
1026Faith D ButtUnited Kingdom2024-05-28Morlong Associates NEW81Xuxue Feng
1027Mayumi Y MorascaIndia2024-06-24Chapman, Ross E Esq RENEWAL17Ioni Bowcher
1028Murillo R WaycottSpain2024-05-26Chapman, Ross E Esq PROPOSAL17Asiya Javayant
1029Salvatore U ShinkoGermany2024-05-29King, Christopher A Esq RENEWAL39Anna Fali
1030Darci U StockhamItaly2024-06-08Chemel, James L Cpa NEGOTIATION10Ivan Magalhaes
1031Kadeem R SlusarskiUnited Kingdom2024-05-26Truhlar And Truhlar Attys UNQUALIFIED74Onyama Limba
1032Julie L GarufiArgentina2024-06-08Rangoni Of Florence NEGOTIATION51Stephen Shaw
1033Jeanfrancois W BowleyGermany2024-06-15Printing Dimensions QUALIFIED2Stephen Shaw
1034Izzy Z PerinUnited Kingdom2024-06-24King, Christopher A Esq RENEWAL5Xuxue Feng
1035Isabel X ButtUnited Kingdom2024-06-11Feltz Printing Service RENEWAL40Asiya Javayant
1036Leja M OldroydUnited Kingdom2024-05-28Chanay, Jeffrey A Esq NEGOTIATION90Elwin Sharvill
1037Kaitlin Y InouyeRussia2024-06-16Chanay, Jeffrey A Esq NEGOTIATION68Amy Elsner
1038Octavia R BowleyAustralia2024-06-01Truhlar And Truhlar Attys QUALIFIED60Xuxue Feng
1039Greenwood G DoeFrance2024-06-16Rangoni Of Florence UNQUALIFIED17Xuxue Feng
1040Kaitlin H GillianUnited Kingdom2024-06-09Morlong Associates QUALIFIED81Ivan Magalhaes
1041Rodrigues M OldroydJapan2024-05-29Printing Dimensions PROPOSAL47Onyama Limba
1042Murillo O WaycottAustralia2024-06-15Commercial Press RENEWAL51Bernardo Dominic
1043Wickens K PerinCanada2024-06-23Chapman, Ross E Esq QUALIFIED42Amy Elsner
1044Antonio V GlickFrance2024-06-18Dorl, James J Esq PROPOSAL42Ioni Bowcher
1045Smith E BowleyAustralia2024-06-14Chemel, James L Cpa PROPOSAL68Ivan Magalhaes
1046Arvin K OstroskyBrazil2024-06-04Morlong Associates QUALIFIED79Stephen Shaw
1047Ivar S SlusarskiArgentina2024-06-16King, Christopher A Esq NEGOTIATION17Amy Elsner
1048Silvio G ChuiGermany2024-05-30Rousseaux, Michael Esq PROPOSAL32Bernardo Dominic
1049Octavia R RoysterJapan2024-06-08Rangoni Of Florence UNQUALIFIED63Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Johnson B IturbideFranceAsiya Javayant QUALIFIED
Aruna L SchemmerArgentinaIoni Bowcher NEGOTIATION
Misaki Z IturbideAustraliaIvan Magalhaes NEGOTIATION
Morrow O IturbideArgentinaAsiya Javayant PROPOSAL
Morrow S MaletGermanyAmy Elsner RENEWAL
Johnson M VenereAustraliaBernardo Dominic RENEWAL
Ashley W KuskoRussiaXuxue Feng NEGOTIATION
Sinclair X MacleadAustraliaAmy Elsner PROPOSAL
Kaitlin P FollerFranceOnyama Limba NEGOTIATION
Misaki M GarufiFranceAmy Elsner PROPOSAL
Emily N MarrierAustraliaAsiya Javayant NEGOTIATION
Maria X FollerArgentinaAmy Elsner QUALIFIED
Cody G FigeroaItalyBernardo Dominic PROPOSAL
Jeanfrancois G PoquetteItalyStephen Shaw QUALIFIED
Adams T FigeroaJapanStephen Shaw UNQUALIFIED
Wickens N TollnerFranceIoni Bowcher UNQUALIFIED
Jones M StensethIndiaXuxue Feng RENEWAL
Alejandro Z KuskoAustraliaAmy Elsner QUALIFIED
Antonio O FollerUnited KingdomAmy Elsner UNQUALIFIED
Rodrigues Q VenereIndiaElwin Sharvill RENEWAL
Tony C RoysterArgentinaBernardo Dominic RENEWAL
Sinclair U BriddickFranceAsiya Javayant NEGOTIATION
James O AmigonIndiaStephen Shaw NEGOTIATION
Alejandro A FollerFranceStephen Shaw UNQUALIFIED
Jefferson N StensethUnited KingdomAsiya Javayant RENEWAL
Jefferson S FerenczSpainOnyama Limba NEGOTIATION
Faith A DarakjyJapanBernardo Dominic PROPOSAL
Aika N ChuiAustraliaAnna Fali UNQUALIFIED
Greenwood D RulapaughUnited KingdomXuxue Feng NEW
Darci Y MacleadGermanyIvan Magalhaes QUALIFIED
Jennifer S CaldareraArgentinaIoni Bowcher UNQUALIFIED
Darci A IturbideSpainOnyama Limba NEW
Maria N BowleySpainIvan Magalhaes NEW
Wickens H RutaItalyBernardo Dominic NEGOTIATION
Misaki M NestleRussiaBernardo Dominic RENEWAL
Leja R FigeroaUnited KingdomXuxue Feng QUALIFIED
Octavia A DoeItalyStephen Shaw PROPOSAL
Cody L ButtItalyAnna Fali RENEWAL
Darci X MarrierGermanyOnyama Limba NEW
Murillo B MarrierUnited KingdomElwin Sharvill NEW
Murillo M WhobreyIndiaAmy Elsner QUALIFIED
Stacey C ShinkoGermanyStephen Shaw UNQUALIFIED
Mujtaba L SlusarskiUnited KingdomAnna Fali PROPOSAL
Claire J IturbideGermanyAnna Fali RENEWAL
Ricardo T GarufiSpainXuxue Feng PROPOSAL
Greenwood Q VocelkaRussiaAnna Fali QUALIFIED
Ashley A MorascaArgentinaIoni Bowcher UNQUALIFIED
Leja J CaudyFranceStephen Shaw UNQUALIFIED
Francesco K PoquetteSpainElwin Sharvill QUALIFIED
David B BologniaRussiaBernardo Dominic NEGOTIATION
Frozen Columns
Name
James V Stockham
Misaki Y Morasca
Deepesh F Glick
Murillo G Stenseth
Maria N Caldarera
Stacey R Wieser
Jeanfrancois W Kolmetz
Aditya F Shinko
Emily L Ferencz
Sinclair D Malet
Jeanfrancois K Morasca
Rodrigues A Nestle
Aruna H Rulapaugh
Ricardo W Glick
Juan U Shinko
Costa B Ruta
Costa C Paprocki
Maisha R Flosi
James Q Royster
Tony V Bowley
Emily V Flosi
Chavez A Doe
Adams H Doe
Maria Z Whobrey
Arvin I Kusko
Ivar E Garufi
Kadeem R Gaucho
Isabel T Poquette
Misaki Y Glick
Jones C Foller
Misaki I Whobrey
Ivar A Doe
Jeanfrancois A Sergi
Johnson E Stockham
Stacey B Wieser
Aditya L Venere
Wickens U Campain
Julie J Glick
Tony W Iturbide
Adams F Stockham
Smith E Stenseth
Kadeem U Paprocki
Greenwood L Inouye
Kadeem Q Gillian
Johnson J Campain
Kaitlin H Saylors
Maisha E Rulapaugh
Jeanfrancois I Marrier
Jones G Saylors
Kadeem O Flosi
IdCountryDate
1000Spain2024-06-13
1001Canada2024-06-08
1002Canada2024-06-03
1003Germany2024-06-23
1004Russia2024-06-11
1005United Kingdom2024-06-19
1006Canada2024-06-21
1007Italy2024-05-30
1008France2024-06-20
1009United Kingdom2024-06-09
1010France2024-06-11
1011France2024-06-20
1012Germany2024-06-17
1013India2024-05-28
1014United Kingdom2024-06-19
1015Italy2024-06-04
1016Spain2024-06-17
1017Russia2024-06-08
1018India2024-06-12
1019United Kingdom2024-06-18
1020United Kingdom2024-06-07
1021Australia2024-05-29
1022France2024-06-03
1023France2024-05-31
1024Brazil2024-06-16
1025Russia2024-06-05
1026India2024-06-15
1027Russia2024-06-06
1028Canada2024-06-08
1029Japan2024-06-08
1030Russia2024-06-24
1031Brazil2024-06-23
1032Australia2024-05-29
1033France2024-06-15
1034Germany2024-06-14
1035Spain2024-06-24
1036Canada2024-06-23
1037Italy2024-06-05
1038Germany2024-05-27
1039Japan2024-06-09
1040Canada2024-06-03
1041Russia2024-06-15
1042Germany2024-06-02
1043Canada2024-06-15
1044Italy2024-06-18
1045Italy2024-06-10
1046Argentina2024-05-30
1047United Kingdom2024-06-22
1048France2024-06-01
1049Brazil2024-06-02

On-Demand Data

NameIdCountryDate
Costa A Vocelka1000Russia2024-06-22
Darci W Butt1001Brazil2024-06-02
Darci Q Butt1002France2024-06-14
Tony O Garufi1003Russia2024-06-17
Leja J Kolmetz1004Spain2024-06-16
Kadeem O Paprocki1005Brazil2024-06-08
Chavez Q Malet1006Italy2024-06-20
Nicolas T Ostrosky1007Brazil2024-05-26
Claire Z Sergi1008Canada2024-06-23
Rodrigues M Stenseth1009Canada2024-06-05
Jeanfrancois O Oldroyd1010Italy2024-06-09
Isabel B Malet1011Canada2024-06-19
Faith A Foller1012Spain2024-06-01
Nicolas C Inouye1013Japan2024-06-07
Morrow W Ruta1014United Kingdom2024-06-15
Wickens A Gaucho1015Russia2024-06-16
Sinclair V Vocelka1016India2024-05-31
Jefferson G Kolmetz1017Japan2024-06-24
Maria K Ruta1018Brazil2024-06-21
Sinclair K Bolognia1019Germany2024-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci K MacleadFranceAmy Elsner QUALIFIED
Nicolas E SchemmerFranceAmy Elsner NEW
Munro X VenereBrazilXuxue Feng PROPOSAL
Morrow B CampainSpainStephen Shaw UNQUALIFIED
Stacey N OldroydJapanOnyama Limba QUALIFIED
Arvin Z WhobreyArgentinaAsiya Javayant UNQUALIFIED
Johnson F WaycottBrazilIvan Magalhaes RENEWAL
Kaitlin Q BriddickArgentinaAnna Fali NEGOTIATION
Murillo I NickaUnited KingdomXuxue Feng PROPOSAL
Silvio C RoysterIndiaAnna Fali QUALIFIED
Arvin S CaldareraAustraliaIoni Bowcher QUALIFIED
Alejandro O GillianUnited KingdomBernardo Dominic RENEWAL
Chavez P GauchoJapanOnyama Limba NEW
Sinclair J SergiUnited KingdomIoni Bowcher NEW
Nicolas X DarakjyBrazilBernardo Dominic NEGOTIATION
Aruna M StensethRussiaOnyama Limba NEGOTIATION
Clifford X GillianSpainBernardo Dominic NEGOTIATION
Wickens Y TollnerGermanyElwin Sharvill RENEWAL
Silvio Q DilliardSpainIoni Bowcher NEGOTIATION
Rodrigues X StockhamGermanyOnyama Limba NEGOTIATION
Emily O InouyeUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood A GlickGermanyXuxue Feng RENEWAL
Clifford S KuskoCanadaIvan Magalhaes NEGOTIATION
Stacey R NestleJapanAsiya Javayant QUALIFIED
Tony X StensethUnited KingdomAnna Fali UNQUALIFIED
Clifford Y MacleadCanadaElwin Sharvill QUALIFIED
Francesco J WieserSpainBernardo Dominic PROPOSAL
Kaitlin C MarrierBrazilXuxue Feng PROPOSAL
Arvin N NickaGermanyIvan Magalhaes RENEWAL
Chavez Y FigeroaIndiaIoni Bowcher PROPOSAL
Wickens L MarrierGermanyIoni Bowcher NEW
James N RimSpainAsiya Javayant RENEWAL
Munro A RoysterJapanOnyama Limba RENEWAL
Clifford Z MarrierUnited KingdomAsiya Javayant RENEWAL
Darci I NestleRussiaAsiya Javayant NEW
Mayumi D ShinkoBrazilAsiya Javayant PROPOSAL
Mayumi C NestleCanadaAsiya Javayant UNQUALIFIED
Wickens M WaycottArgentinaAmy Elsner QUALIFIED
Munro I FigeroaUnited KingdomStephen Shaw NEGOTIATION
Wickens A BologniaItalyOnyama Limba RENEWAL

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