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
Maria V MarrierRussiaAmy Elsner QUALIFIED
Alejandro Q SlusarskiSpainStephen Shaw UNQUALIFIED
Chavez L RutaIndiaAnna Fali NEGOTIATION
Izzy E NestleUnited KingdomAmy Elsner UNQUALIFIED
Misaki B WaycottSpainIoni Bowcher UNQUALIFIED
Smith R MarrierFranceStephen Shaw RENEWAL
Aika A GarufiItalyIvan Magalhaes NEGOTIATION
David F AmigonSpainBernardo Dominic RENEWAL
Sinclair O GillianSpainElwin Sharvill RENEWAL
Darci X MorascaFranceElwin Sharvill NEGOTIATION
Clifford N SlusarskiRussiaBernardo Dominic UNQUALIFIED
Ivar R ButtFranceAmy Elsner NEW
Antonio L TollnerAustraliaIvan Magalhaes NEW
Aika D CaudyBrazilElwin Sharvill QUALIFIED
Cody E DarakjySpainAnna Fali NEGOTIATION
Jeanfrancois K WhobreyRussiaIvan Magalhaes NEW
Alejandro T DarakjyAustraliaXuxue Feng QUALIFIED
Mujtaba H GauchoUnited KingdomIvan Magalhaes UNQUALIFIED
Salvatore R CaldareraArgentinaXuxue Feng UNQUALIFIED
Ricardo J GauchoAustraliaElwin Sharvill QUALIFIED
Izzy Y AlbaresJapanOnyama Limba UNQUALIFIED
Mujtaba D BologniaItalyIoni Bowcher PROPOSAL
Jennifer X RimUnited KingdomIoni Bowcher NEW
Claire Q PoquetteItalyAmy Elsner PROPOSAL
Arvin T GauchoArgentinaElwin Sharvill QUALIFIED
Tony E ChuiArgentinaAmy Elsner NEGOTIATION
Deepesh I GauchoSpainIoni Bowcher UNQUALIFIED
Kaitlin D OldroydCanadaIoni Bowcher UNQUALIFIED
Jennifer E CaldareraJapanElwin Sharvill PROPOSAL
Leja W PaprockiIndiaBernardo Dominic UNQUALIFIED
Tony C DoeIndiaAsiya Javayant NEGOTIATION
James S GillianJapanAmy Elsner RENEWAL
Clifford Q MaletIndiaAsiya Javayant RENEWAL
Costa U WhobreyJapanStephen Shaw NEW
Salvatore W CampainBrazilAnna Fali RENEWAL
Arvin Q RutaAustraliaStephen Shaw UNQUALIFIED
Johnson C InouyeUnited KingdomAmy Elsner NEW
Munro W GarufiCanadaElwin Sharvill QUALIFIED
Jeanfrancois H FerenczFranceAsiya Javayant UNQUALIFIED
Claire P MaletRussiaStephen Shaw NEW
Nicolas G RoysterIndiaIoni Bowcher RENEWAL
Cody Q AmigonJapanIvan Magalhaes UNQUALIFIED
Juan K GauchoSpainXuxue Feng PROPOSAL
Rodrigues G RutaBrazilIvan Magalhaes NEW
Deepesh U MacleadBrazilBernardo Dominic UNQUALIFIED
Octavia Y MarrierRussiaAsiya Javayant NEW
Mujtaba U MacleadJapanXuxue Feng UNQUALIFIED
Jennifer K DilliardArgentinaIvan Magalhaes NEGOTIATION
Maisha D BriddickUnited KingdomIvan Magalhaes RENEWAL
Maria E AlbaresItalyAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Clifford N BowleyBrazilIoni Bowcher PROPOSAL
Darci Y PoquetteGermanyAmy Elsner NEW
Alejandro W CaudySpainAmy Elsner NEGOTIATION
Johnson V OstroskyAustraliaIoni Bowcher QUALIFIED
Octavia X MorascaCanadaXuxue Feng NEW
David D TollnerFranceXuxue Feng PROPOSAL
Maisha W SchemmerCanadaIoni Bowcher UNQUALIFIED
Leja M RutaItalyIoni Bowcher UNQUALIFIED
Misaki U RimFranceOnyama Limba UNQUALIFIED
Jeanfrancois N TollnerArgentinaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio G SchemmerGermany2026-08-05Feiner Bros QUALIFIED98Bernardo Dominic
1001Izzy J CaudyRussia2026-07-26Truhlar And Truhlar Attys UNQUALIFIED34Stephen Shaw
1002Aruna F MarrierCanada2026-07-09Rousseaux, Michael Esq PROPOSAL23Onyama Limba
1003Wickens S GarufiCanada2026-07-13Benton, John B Jr RENEWAL5Amy Elsner
1004Kadeem H MorascaJapan2026-07-09Chanay, Jeffrey A Esq NEGOTIATION26Stephen Shaw
1005Chavez L CaudyArgentina2026-07-09Commercial Press RENEWAL63Elwin Sharvill
1006Morrow L RimJapan2026-08-03Chanay, Jeffrey A Esq NEW44Asiya Javayant
1007Maisha S RulapaughJapan2026-08-01Dorl, James J Esq NEW2Anna Fali
1008Kadeem T VenereAustralia2026-08-06Truhlar And Truhlar Attys QUALIFIED82Onyama Limba
1009Leja A FlosiItaly2026-07-13Rangoni Of Florence UNQUALIFIED98Onyama Limba
1010Cody Y ShinkoUnited Kingdom2026-08-03Benton, John B Jr PROPOSAL47Ioni Bowcher
1011Ashley J RulapaughUnited Kingdom2026-07-29Chapman, Ross E Esq UNQUALIFIED65Ioni Bowcher
1012Clifford A BowleyUnited Kingdom2026-07-12Morlong Associates UNQUALIFIED49Asiya Javayant
1013David T StockhamSpain2026-07-09Chapman, Ross E Esq PROPOSAL31Anna Fali
1014Sinclair T SaylorsSpain2026-07-12Commercial Press NEW77Ivan Magalhaes
1015Wickens H FlosiFrance2026-07-29Dorl, James J Esq NEW29Stephen Shaw
1016Kadeem Q NickaFrance2026-07-26Truhlar And Truhlar Attys NEW58Asiya Javayant
1017Juan Q StensethItaly2026-08-02Truhlar And Truhlar Attys NEGOTIATION44Ioni Bowcher
1018Nicolas H DoeSpain2026-07-15Feiner Bros PROPOSAL23Elwin Sharvill
1019Rodrigues H OldroydAustralia2026-07-27Benton, John B Jr QUALIFIED59Ioni Bowcher
1020Leja D InouyeJapan2026-07-13Truhlar And Truhlar Attys QUALIFIED27Ivan Magalhaes
1021Deepesh L CaudyFrance2026-07-21King, Christopher A Esq RENEWAL4Elwin Sharvill
1022Izzy G InouyeFrance2026-07-19Buckley Miller Wright RENEWAL97Bernardo Dominic
1023Cody K SaylorsSpain2026-08-07Feiner Bros NEGOTIATION2Bernardo Dominic
1024Claire S RimFrance2026-07-12Chemel, James L Cpa RENEWAL34Elwin Sharvill
1025Izzy S RutaIndia2026-07-11Rangoni Of Florence RENEWAL52Stephen Shaw
1026Darci D FollerFrance2026-07-13Benton, John B Jr QUALIFIED56Amy Elsner
1027Isabel Q GillianFrance2026-08-03Feltz Printing Service NEGOTIATION37Elwin Sharvill
1028Aika M DarakjyArgentina2026-07-16Rousseaux, Michael Esq RENEWAL47Bernardo Dominic
1029Morrow X MacleadJapan2026-07-14Morlong Associates NEGOTIATION33Bernardo Dominic
1030Tony F WhobreyBrazil2026-07-15Chanay, Jeffrey A Esq PROPOSAL44Onyama Limba
1031Morrow I GlickArgentina2026-07-09Morlong Associates RENEWAL7Anna Fali
1032Claire F TollnerFrance2026-07-28Feltz Printing Service RENEWAL14Onyama Limba
1033Deepesh E BologniaGermany2026-07-11Feltz Printing Service NEW9Bernardo Dominic
1034Izzy Q SchemmerJapan2026-07-13Rousseaux, Michael Esq UNQUALIFIED21Ivan Magalhaes
1035Alejandro E SergiSpain2026-07-24Chapman, Ross E Esq NEGOTIATION17Bernardo Dominic
1036Maria O DoeSpain2026-07-28Chemel, James L Cpa PROPOSAL76Anna Fali
1037Johnson H CaldareraCanada2026-07-23Feltz Printing Service PROPOSAL32Onyama Limba
1038Leja M MaletUnited Kingdom2026-07-27Buckley Miller Wright QUALIFIED75Xuxue Feng
1039Misaki Z PerinItaly2026-07-18Commercial Press PROPOSAL57Stephen Shaw
1040Jones J IturbideUnited Kingdom2026-07-28Rangoni Of Florence PROPOSAL98Ivan Magalhaes
1041Kaitlin Y MaletJapan2026-07-12Buckley Miller Wright QUALIFIED20Asiya Javayant
1042Kaitlin D OldroydSpain2026-08-06Printing Dimensions RENEWAL27Onyama Limba
1043Arvin A MorascaIndia2026-07-27Rangoni Of Florence PROPOSAL45Asiya Javayant
1044Costa K FerenczIndia2026-07-12Chanay, Jeffrey A Esq NEW31Ivan Magalhaes
1045Kadeem J FigeroaBrazil2026-08-03Chapman, Ross E Esq PROPOSAL1Stephen Shaw
1046Aika W GarufiRussia2026-08-01Feiner Bros PROPOSAL99Ivan Magalhaes
1047Sinclair D GillianGermany2026-07-13Rangoni Of Florence PROPOSAL27Bernardo Dominic
1048Darci S MaletRussia2026-07-30Chapman, Ross E Esq NEGOTIATION42Xuxue Feng
1049Izzy N DoeSpain2026-07-26Buckley Miller Wright RENEWAL92Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ashley V WhobreyItalyAmy Elsner RENEWAL
Nicolas R VocelkaBrazilOnyama Limba QUALIFIED
Rodrigues H MaletUnited KingdomOnyama Limba PROPOSAL
Costa T GauchoAustraliaAsiya Javayant NEGOTIATION
Leon E InouyeBrazilStephen Shaw PROPOSAL
Murillo M AmigonFranceBernardo Dominic PROPOSAL
Smith H ChuiCanadaAnna Fali PROPOSAL
Rodrigues U WhobreyRussiaAnna Fali UNQUALIFIED
Costa F CampainAustraliaIoni Bowcher NEW
James R AmigonIndiaStephen Shaw QUALIFIED
Costa U DoeGermanyIoni Bowcher UNQUALIFIED
David Y FlosiCanadaElwin Sharvill UNQUALIFIED
Octavia X MacleadFranceIvan Magalhaes PROPOSAL
Cody S KuskoIndiaIvan Magalhaes QUALIFIED
Clifford E SaylorsIndiaIvan Magalhaes NEW
Deepesh R MaletBrazilAmy Elsner NEW
Ashley J SchemmerBrazilBernardo Dominic RENEWAL
Octavia D SchemmerIndiaIoni Bowcher RENEWAL
Murillo V RoysterFranceBernardo Dominic PROPOSAL
Ivar P PerinFranceOnyama Limba NEW
Darci Q MaletJapanAmy Elsner QUALIFIED
Alejandro P MorascaCanadaAnna Fali RENEWAL
Jeanfrancois L SergiGermanyIoni Bowcher RENEWAL
Antonio W DarakjyCanadaIoni Bowcher NEW
Darci Y ChuiAustraliaAmy Elsner RENEWAL
Jones L DarakjyItalyBernardo Dominic RENEWAL
Rodrigues D RimRussiaStephen Shaw UNQUALIFIED
Emily N PoquetteFranceIoni Bowcher NEGOTIATION
Greenwood F MarrierAustraliaAsiya Javayant PROPOSAL
Mayumi J TollnerItalyXuxue Feng PROPOSAL
Emily T ChuiBrazilAsiya Javayant NEGOTIATION
Kadeem H PaprockiGermanyAnna Fali RENEWAL
Costa T CaudyBrazilAsiya Javayant UNQUALIFIED
Costa O RulapaughJapanAmy Elsner NEW
Maisha T FigeroaGermanyAmy Elsner PROPOSAL
James X WieserCanadaStephen Shaw NEW
Emily B WieserAustraliaIvan Magalhaes QUALIFIED
Octavia O RimArgentinaIvan Magalhaes PROPOSAL
Salvatore X CaldareraJapanAsiya Javayant NEW
Silvio C GarufiAustraliaXuxue Feng NEW
Octavia Z ShinkoJapanElwin Sharvill QUALIFIED
Murillo E ShinkoBrazilBernardo Dominic QUALIFIED
Arvin O SchemmerFranceIoni Bowcher UNQUALIFIED
Aika E CaudySpainOnyama Limba PROPOSAL
Costa V GauchoJapanElwin Sharvill NEW
Deepesh C FigeroaFranceAnna Fali NEW
Arvin D FigeroaJapanStephen Shaw NEW
Aditya M FollerJapanAmy Elsner UNQUALIFIED
Faith E MaletCanadaAnna Fali RENEWAL
Johnson O BologniaSpainElwin Sharvill RENEWAL
Frozen Columns
Name
Julie E Shinko
Deepesh V Chui
Alejandro B Oldroyd
Nicolas N Briddick
David I Figeroa
Darci K Garufi
Jennifer N Gaucho
Mayumi A Oldroyd
Nicolas E Poquette
Mujtaba R Malet
Francesco D Dilliard
Mujtaba W Paprocki
Julie D Vocelka
Salvatore J Tollner
Smith P Poquette
Mujtaba X Malet
Jefferson F Rulapaugh
James G Schemmer
Izzy E Tollner
Wickens U Dilliard
Isabel A Saylors
Mujtaba V Chui
Ricardo D Campain
Antonio Y Iturbide
Stacey F Rulapaugh
Deepesh M Caldarera
Antonio O Darakjy
Salvatore U Nicka
Darci P Malet
Kadeem M Caudy
Wickens V Dilliard
Jeanfrancois H Foller
Rodrigues D Royster
James M Doe
Maria J Butt
Murillo J Poquette
Smith J Stenseth
Wickens W Marrier
Munro V Inouye
Maria E Nestle
Johnson W Schemmer
Mujtaba X Albares
Nicolas E Stockham
Jefferson Q Marrier
Salvatore H Poquette
Clifford U Paprocki
Francesco D Albares
David U Vocelka
Antonio B Dilliard
Alejandro P Stockham
IdCountryDate
1000Brazil2026-07-25
1001United Kingdom2026-07-31
1002France2026-07-23
1003Japan2026-07-22
1004United Kingdom2026-07-22
1005Canada2026-07-30
1006Germany2026-07-12
1007Australia2026-07-15
1008France2026-08-04
1009Brazil2026-07-10
1010France2026-08-04
1011Argentina2026-07-21
1012Italy2026-07-21
1013Argentina2026-07-25
1014United Kingdom2026-07-28
1015Brazil2026-07-23
1016United Kingdom2026-08-04
1017Argentina2026-07-29
1018United Kingdom2026-07-16
1019Russia2026-07-23
1020Italy2026-07-25
1021Italy2026-08-04
1022Argentina2026-07-18
1023Japan2026-07-29
1024Italy2026-08-02
1025Australia2026-07-27
1026Argentina2026-07-30
1027Brazil2026-07-24
1028Brazil2026-08-01
1029Italy2026-08-04
1030Germany2026-07-14
1031Italy2026-07-14
1032Germany2026-07-22
1033Spain2026-07-26
1034France2026-07-26
1035Germany2026-07-17
1036Italy2026-07-12
1037United Kingdom2026-08-06
1038Japan2026-07-21
1039Canada2026-07-11
1040Russia2026-08-02
1041Australia2026-07-18
1042Argentina2026-07-13
1043France2026-07-28
1044Spain2026-07-13
1045Germany2026-08-01
1046Japan2026-08-07
1047Russia2026-07-19
1048Spain2026-07-12
1049Canada2026-07-23

On-Demand Data

NameIdCountryDate
Arvin O Perin1000Russia2026-08-03
Clifford E Garufi1001Argentina2026-07-12
Mayumi I Malet1002Spain2026-07-30
Johnson F Shinko1003Japan2026-07-20
Juan D Venere1004Spain2026-07-20
Tony G Iturbide1005India2026-07-31
Clifford G Flosi1006Argentina2026-07-20
Julie U Kusko1007Spain2026-08-06
Nicolas F Stenseth1008United Kingdom2026-08-05
Misaki Z Wieser1009United Kingdom2026-07-15
Smith G Rim1010Australia2026-07-28
Nicolas M Venere1011Australia2026-07-29
Octavia G Ruta1012India2026-07-09
Costa S Marrier1013United Kingdom2026-08-02
Rodrigues E Figeroa1014Australia2026-07-17
Isabel N Maclead1015United Kingdom2026-07-14
Leon P Glick1016Brazil2026-07-29
Mayumi X Gaucho1017Italy2026-07-24
Maisha E Marrier1018France2026-08-05
Alejandro U Wieser1019Argentina2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh W ChuiBrazilAnna Fali UNQUALIFIED
Munro L WieserGermanyIvan Magalhaes UNQUALIFIED
Deepesh W WhobreyJapanAnna Fali NEW
Murillo Z IturbideFranceElwin Sharvill RENEWAL
Juan H BriddickFranceAsiya Javayant RENEWAL
Jeanfrancois F AlbaresFranceElwin Sharvill NEGOTIATION
Maria U SergiJapanAnna Fali UNQUALIFIED
Juan Z MaletGermanyAmy Elsner NEW
David T InouyeFranceIvan Magalhaes RENEWAL
Leja Z MaletItalyOnyama Limba RENEWAL
David Q MarrierCanadaAsiya Javayant NEGOTIATION
Smith F RulapaughItalyAnna Fali RENEWAL
Ivar N DoeItalyStephen Shaw PROPOSAL
Cody G CampainBrazilAsiya Javayant QUALIFIED
Silvio V FerenczGermanyStephen Shaw NEGOTIATION
James R MaletArgentinaIoni Bowcher UNQUALIFIED
Stacey M StensethIndiaIoni Bowcher QUALIFIED
Misaki J BriddickJapanIvan Magalhaes NEW
Octavia S PaprockiBrazilOnyama Limba NEGOTIATION
Aruna S BowleyItalyAsiya Javayant NEGOTIATION
Isabel A MaletJapanElwin Sharvill PROPOSAL
Greenwood B SaylorsIndiaElwin Sharvill RENEWAL
Aika F SchemmerCanadaElwin Sharvill QUALIFIED
Munro U KuskoJapanStephen Shaw NEGOTIATION
Darci G RutaCanadaAnna Fali NEGOTIATION
Claire K FollerSpainIvan Magalhaes QUALIFIED
David G FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Francesco C WaycottItalyIoni Bowcher UNQUALIFIED
Munro S SchemmerItalyOnyama Limba NEW
Costa C FlosiIndiaOnyama Limba NEW
Ricardo K DoeFranceIvan Magalhaes PROPOSAL
Costa G BriddickAustraliaAmy Elsner NEGOTIATION
Leja M CaldareraItalyXuxue Feng NEGOTIATION
Juan G SlusarskiArgentinaAmy Elsner RENEWAL
Leon W GillianUnited KingdomXuxue Feng QUALIFIED
Adams U OstroskyJapanXuxue Feng PROPOSAL
Maisha Q NestleJapanStephen Shaw NEGOTIATION
Deepesh L CaudyAustraliaStephen Shaw QUALIFIED
Smith T AmigonUnited KingdomXuxue Feng PROPOSAL
Smith Q PaprockiAustraliaAsiya Javayant 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>