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
Ricardo G StockhamBrazilElwin Sharvill NEGOTIATION
Isabel A PaprockiArgentinaOnyama Limba RENEWAL
Octavia S FerenczJapanBernardo Dominic NEGOTIATION
Morrow U RulapaughBrazilAsiya Javayant UNQUALIFIED
Jeanfrancois B FerenczSpainBernardo Dominic NEW
Murillo E DoeFranceAsiya Javayant NEGOTIATION
Adams H ShinkoItalyIvan Magalhaes UNQUALIFIED
Misaki G KuskoFranceStephen Shaw NEGOTIATION
Nicolas J DarakjyFranceBernardo Dominic QUALIFIED
Claire V BriddickAustraliaAsiya Javayant PROPOSAL
Chavez H WhobreyAustraliaBernardo Dominic NEW
Rodrigues V ChuiIndiaElwin Sharvill QUALIFIED
Costa O GarufiRussiaIoni Bowcher NEGOTIATION
David C PaprockiRussiaXuxue Feng UNQUALIFIED
Aika N NestleGermanyBernardo Dominic NEW
Jennifer B NestleSpainOnyama Limba UNQUALIFIED
Aruna U MaletAustraliaStephen Shaw RENEWAL
Arvin M FollerSpainOnyama Limba RENEWAL
Claire Z DilliardSpainStephen Shaw NEGOTIATION
Arvin C FerenczBrazilOnyama Limba PROPOSAL
Morrow F RutaBrazilAnna Fali NEW
Aditya R VenereIndiaXuxue Feng NEGOTIATION
Kadeem R AmigonRussiaOnyama Limba PROPOSAL
Faith R ShinkoAustraliaAsiya Javayant NEW
Salvatore J OstroskyCanadaStephen Shaw NEGOTIATION
Salvatore U BowleyIndiaAnna Fali RENEWAL
Emily U KuskoIndiaBernardo Dominic UNQUALIFIED
Maisha K PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
Leja A TollnerFranceBernardo Dominic QUALIFIED
Maisha E ShinkoBrazilAmy Elsner NEW
Francesco N OldroydItalyIvan Magalhaes QUALIFIED
Kadeem X SergiFranceOnyama Limba RENEWAL
Jennifer W PaprockiItalyIoni Bowcher QUALIFIED
Jones T MacleadItalyOnyama Limba NEGOTIATION
Murillo N OldroydItalyBernardo Dominic RENEWAL
Ashley R AmigonArgentinaOnyama Limba NEGOTIATION
Nicolas L GauchoArgentinaAnna Fali PROPOSAL
Kaitlin S GillianArgentinaXuxue Feng NEGOTIATION
Mujtaba Y MarrierArgentinaAnna Fali NEGOTIATION
Costa S MaletAustraliaIvan Magalhaes PROPOSAL
Silvio J GillianJapanIvan Magalhaes RENEWAL
Jefferson K ChuiArgentinaIoni Bowcher PROPOSAL
Octavia R KolmetzSpainXuxue Feng NEW
Jennifer E NickaRussiaAnna Fali NEGOTIATION
Jeanfrancois U GauchoSpainStephen Shaw UNQUALIFIED
Francesco T CampainAustraliaAsiya Javayant RENEWAL
Francesco B PaprockiRussiaIoni Bowcher PROPOSAL
Johnson D GlickRussiaXuxue Feng UNQUALIFIED
Julie W InouyeCanadaAmy Elsner PROPOSAL
Kaitlin F MorascaIndiaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Clifford R MaletSpainAnna Fali NEW
Misaki Q RimSpainXuxue Feng RENEWAL
Francesco A RimSpainIoni Bowcher UNQUALIFIED
Misaki Z MaletSpainElwin Sharvill PROPOSAL
Ivar H WhobreyCanadaAmy Elsner PROPOSAL
Stacey Y PerinBrazilAnna Fali PROPOSAL
Deepesh U SergiCanadaElwin Sharvill RENEWAL
Mayumi F SergiGermanyStephen Shaw RENEWAL
Kadeem V GlickRussiaAnna Fali NEGOTIATION
Leon I StensethUnited KingdomOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi S DoeRussia2026-07-14Chapman, Ross E Esq NEW93Onyama Limba
1001Claire E OstroskyCanada2026-07-10Morlong Associates PROPOSAL72Bernardo Dominic
1002Isabel B CampainJapan2026-07-03Chemel, James L Cpa PROPOSAL55Amy Elsner
1003David G BologniaRussia2026-07-05Buckley Miller Wright QUALIFIED5Xuxue Feng
1004Adams U SchemmerArgentina2026-07-05Benton, John B Jr NEW9Onyama Limba
1005James S SaylorsCanada2026-07-08Rousseaux, Michael Esq PROPOSAL84Onyama Limba
1006Julie Q MaletRussia2026-07-13King, Christopher A Esq UNQUALIFIED58Asiya Javayant
1007Emily X WieserGermany2026-07-14Chapman, Ross E Esq NEW54Amy Elsner
1008Tony Z DarakjyCanada2026-07-16Feltz Printing Service NEGOTIATION23Asiya Javayant
1009Kadeem O RutaBrazil2026-07-12Morlong Associates NEGOTIATION15Amy Elsner
1010Jones N StensethAustralia2026-07-01Morlong Associates UNQUALIFIED8Onyama Limba
1011Leon T MaletJapan2026-07-14Printing Dimensions NEW17Amy Elsner
1012Murillo M StensethFrance2026-06-29Chapman, Ross E Esq UNQUALIFIED18Asiya Javayant
1013Morrow X FigeroaIndia2026-07-06Dorl, James J Esq RENEWAL74Elwin Sharvill
1014Claire Y CampainFrance2026-07-09Benton, John B Jr UNQUALIFIED82Xuxue Feng
1015Costa P DarakjyRussia2026-07-02Commercial Press UNQUALIFIED11Stephen Shaw
1016James P OstroskyCanada2026-07-01Benton, John B Jr PROPOSAL66Bernardo Dominic
1017Mujtaba K MaletRussia2026-07-11Rousseaux, Michael Esq QUALIFIED79Xuxue Feng
1018Murillo R DilliardRussia2026-07-17Rangoni Of Florence QUALIFIED89Anna Fali
1019Adams T RulapaughUnited Kingdom2026-07-01Morlong Associates UNQUALIFIED28Stephen Shaw
1020Wickens N BowleyAustralia2026-07-01Rousseaux, Michael Esq PROPOSAL22Elwin Sharvill
1021Greenwood C MaletItaly2026-07-14Rousseaux, Michael Esq UNQUALIFIED59Elwin Sharvill
1022Ricardo Y StensethItaly2026-07-07Chapman, Ross E Esq UNQUALIFIED34Xuxue Feng
1023Deepesh I AmigonItaly2026-07-12Morlong Associates QUALIFIED64Onyama Limba
1024Sinclair D VenereCanada2026-06-30Rangoni Of Florence NEW91Elwin Sharvill
1025Isabel C AlbaresJapan2026-07-01Chapman, Ross E Esq NEGOTIATION56Ivan Magalhaes
1026Alejandro F CaudyBrazil2026-07-13Truhlar And Truhlar Attys NEGOTIATION48Bernardo Dominic
1027Nicolas S VocelkaIndia2026-07-21Dorl, James J Esq QUALIFIED95Bernardo Dominic
1028Jefferson C SaylorsIndia2026-07-15Truhlar And Truhlar Attys UNQUALIFIED28Anna Fali
1029Greenwood E MaletAustralia2026-07-02Chapman, Ross E Esq NEW15Onyama Limba
1030Munro O AmigonAustralia2026-07-11Chemel, James L Cpa QUALIFIED26Stephen Shaw
1031Faith J SergiBrazil2026-07-23Dorl, James J Esq NEGOTIATION17Elwin Sharvill
1032Smith A MorascaSpain2026-07-14Chanay, Jeffrey A Esq RENEWAL34Amy Elsner
1033Kadeem R StensethSpain2026-07-11Chemel, James L Cpa UNQUALIFIED39Ivan Magalhaes
1034Cody L BriddickSpain2026-07-23Chemel, James L Cpa QUALIFIED15Ioni Bowcher
1035Johnson T OldroydSpain2026-07-13Buckley Miller Wright QUALIFIED66Onyama Limba
1036Faith Z GauchoRussia2026-07-25Benton, John B Jr PROPOSAL88Onyama Limba
1037Arvin J RoysterBrazil2026-07-06Buckley Miller Wright UNQUALIFIED75Asiya Javayant
1038Jeanfrancois I PerinSpain2026-07-04Commercial Press NEW94Bernardo Dominic
1039Kaitlin S CaudyAustralia2026-07-13Feiner Bros UNQUALIFIED26Amy Elsner
1040Aditya J SlusarskiRussia2026-07-22King, Christopher A Esq RENEWAL24Bernardo Dominic
1041Francesco M GillianCanada2026-07-09Printing Dimensions UNQUALIFIED44Stephen Shaw
1042Ricardo H BowleyBrazil2026-07-15Morlong Associates QUALIFIED59Bernardo Dominic
1043Aika S TollnerBrazil2026-07-03Truhlar And Truhlar Attys PROPOSAL74Elwin Sharvill
1044Isabel A BowleyArgentina2026-07-02Feltz Printing Service NEW13Xuxue Feng
1045Tony H AmigonSpain2026-07-23Chemel, James L Cpa UNQUALIFIED16Ioni Bowcher
1046Clifford O StockhamFrance2026-07-20Rousseaux, Michael Esq UNQUALIFIED47Onyama Limba
1047Jefferson Q MaletGermany2026-07-08Feltz Printing Service RENEWAL64Onyama Limba
1048Murillo W SaylorsUnited Kingdom2026-07-17Feiner Bros PROPOSAL54Onyama Limba
1049Deepesh G InouyeUnited Kingdom2026-07-08Commercial Press NEGOTIATION4Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Tony L StockhamUnited KingdomOnyama Limba RENEWAL
Kaitlin I CaudySpainIoni Bowcher UNQUALIFIED
Octavia Q FlosiRussiaStephen Shaw UNQUALIFIED
Murillo Y NestleBrazilElwin Sharvill RENEWAL
Kadeem H FlosiSpainIoni Bowcher NEGOTIATION
David Z MaletUnited KingdomElwin Sharvill UNQUALIFIED
Clifford A IturbideSpainStephen Shaw UNQUALIFIED
Smith U GarufiJapanAsiya Javayant PROPOSAL
Johnson T CaudyItalyAsiya Javayant RENEWAL
Claire P SaylorsItalyAsiya Javayant NEGOTIATION
Emily Z SlusarskiFranceIvan Magalhaes UNQUALIFIED
Salvatore E InouyeUnited KingdomElwin Sharvill NEW
Sinclair G SlusarskiItalyXuxue Feng RENEWAL
Jeanfrancois N PoquetteAustraliaOnyama Limba QUALIFIED
Jeanfrancois V SlusarskiJapanIvan Magalhaes PROPOSAL
Munro J GlickSpainBernardo Dominic NEGOTIATION
Silvio K CaudySpainIvan Magalhaes RENEWAL
Francesco W VenereBrazilIvan Magalhaes NEGOTIATION
Francesco E PoquetteFranceStephen Shaw PROPOSAL
Clifford I NickaAustraliaIvan Magalhaes NEW
Smith J SlusarskiCanadaElwin Sharvill NEGOTIATION
Misaki Z GillianSpainOnyama Limba RENEWAL
Tony F VenereUnited KingdomIvan Magalhaes RENEWAL
Emily G PoquetteAustraliaAnna Fali UNQUALIFIED
Greenwood X MaletArgentinaBernardo Dominic NEGOTIATION
Emily Y StensethRussiaAnna Fali UNQUALIFIED
Aditya E PerinRussiaAmy Elsner QUALIFIED
Izzy P OstroskyCanadaStephen Shaw NEGOTIATION
Jeanfrancois C MacleadCanadaOnyama Limba NEW
Emily S MaletRussiaAnna Fali PROPOSAL
Ashley X WaycottCanadaOnyama Limba RENEWAL
Leja R PoquetteArgentinaIvan Magalhaes RENEWAL
Octavia P MorascaSpainXuxue Feng PROPOSAL
Julie Y MorascaFranceElwin Sharvill RENEWAL
Rodrigues O WaycottSpainIoni Bowcher QUALIFIED
Aruna R MacleadAustraliaXuxue Feng NEGOTIATION
Jefferson P MaletJapanOnyama Limba NEGOTIATION
Tony S VocelkaAustraliaBernardo Dominic QUALIFIED
Alejandro A KuskoIndiaIvan Magalhaes UNQUALIFIED
Faith J SaylorsAustraliaElwin Sharvill QUALIFIED
Murillo T ShinkoJapanStephen Shaw UNQUALIFIED
Sinclair C SergiArgentinaIoni Bowcher QUALIFIED
Aditya M FerenczIndiaAmy Elsner QUALIFIED
Izzy S PaprockiAustraliaXuxue Feng QUALIFIED
Clifford F VocelkaFranceAnna Fali UNQUALIFIED
Ricardo B FigeroaSpainIoni Bowcher RENEWAL
Maisha L IturbideJapanXuxue Feng RENEWAL
Izzy B SaylorsIndiaXuxue Feng NEGOTIATION
Ivar L NickaArgentinaOnyama Limba RENEWAL
Francesco R SchemmerFranceAnna Fali QUALIFIED
Frozen Columns
Name
Jones T Albares
Claire J Rulapaugh
Tony X Nestle
Jefferson X Slusarski
Jones S Perin
Ricardo S Caldarera
Jefferson K Bolognia
Izzy T Sergi
Munro S Nestle
Salvatore J Whobrey
Misaki Z Darakjy
Darci O Nestle
Jennifer C Gillian
Mujtaba R Kolmetz
Antonio W Briddick
Jeanfrancois E Slusarski
Cody W Sergi
Jennifer V Gillian
Leon E Albares
David L Perin
Julie Z Malet
Kadeem V Caudy
Silvio L Oldroyd
Francesco N Ostrosky
Octavia J Dilliard
Mujtaba R Chui
Misaki E Stockham
Jennifer I Wieser
Murillo D Shinko
Francesco S Malet
Cody L Shinko
Mayumi B Ostrosky
Morrow V Campain
Arvin B Bolognia
Antonio K Perin
Deepesh N Oldroyd
James U Nestle
Octavia D Darakjy
Juan T Waycott
Aditya D Amigon
Johnson G Darakjy
Ashley C Iturbide
Maria X Maclead
Kadeem H Caldarera
Kaitlin B Amigon
Morrow M Whobrey
Aditya O Iturbide
Mayumi Y Malet
Claire T Whobrey
Wickens Z Figeroa
IdCountryDate
1000Canada2026-07-05
1001Canada2026-07-23
1002Germany2026-07-13
1003United Kingdom2026-07-05
1004Canada2026-07-21
1005France2026-07-08
1006United Kingdom2026-07-16
1007Brazil2026-07-01
1008Germany2026-07-13
1009Italy2026-07-05
1010Brazil2026-07-02
1011Argentina2026-06-30
1012United Kingdom2026-07-14
1013Spain2026-07-11
1014Germany2026-07-15
1015India2026-07-15
1016Russia2026-07-08
1017Italy2026-07-23
1018India2026-07-26
1019Canada2026-07-06
1020Italy2026-07-22
1021Japan2026-07-22
1022Brazil2026-07-05
1023Australia2026-07-14
1024France2026-07-15
1025Italy2026-07-06
1026Japan2026-07-17
1027United Kingdom2026-07-01
1028Spain2026-07-02
1029France2026-07-05
1030United Kingdom2026-07-16
1031Brazil2026-07-02
1032India2026-07-25
1033Canada2026-07-25
1034Argentina2026-07-16
1035Japan2026-07-19
1036Japan2026-07-10
1037India2026-07-03
1038Germany2026-07-10
1039Australia2026-06-29
1040France2026-07-02
1041India2026-07-27
1042Italy2026-07-01
1043Argentina2026-07-04
1044Germany2026-07-04
1045Italy2026-07-16
1046Italy2026-07-09
1047Canada2026-07-14
1048Brazil2026-07-11
1049Canada2026-07-14

On-Demand Data

NameIdCountryDate
Silvio N Poquette1000Canada2026-07-19
Faith J Gaucho1001Japan2026-07-03
Izzy C Paprocki1002Japan2026-07-11
Julie R Kusko1003France2026-07-20
Clifford W Gillian1004Argentina2026-07-17
Silvio S Dilliard1005Spain2026-07-07
Chavez T Paprocki1006Japan2026-06-28
Aditya O Iturbide1007Brazil2026-07-10
Morrow E Kusko1008Brazil2026-07-26
Maria X Dilliard1009France2026-07-05
Aditya W Nicka1010Canada2026-07-25
Faith N Chui1011Japan2026-07-27
Isabel D Dilliard1012Spain2026-06-29
Darci T Kusko1013Spain2026-07-25
Wickens S Foller1014Australia2026-07-01
Chavez S Ruta1015Canada2026-07-01
Silvio A Nicka1016Germany2026-07-01
Ivar B Rim1017Brazil2026-07-24
Kaitlin R Ruta1018Argentina2026-07-13
Wickens R Gillian1019Brazil2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika I RulapaughGermanyAnna Fali NEGOTIATION
Mujtaba V CaldareraAustraliaIvan Magalhaes PROPOSAL
Leon D GillianUnited KingdomElwin Sharvill UNQUALIFIED
Arvin E SergiBrazilXuxue Feng QUALIFIED
Rodrigues U RoysterAustraliaIoni Bowcher RENEWAL
Murillo L RoysterUnited KingdomXuxue Feng QUALIFIED
Deepesh B MarrierIndiaIvan Magalhaes NEGOTIATION
Munro F RimItalyIoni Bowcher QUALIFIED
Greenwood R NickaIndiaOnyama Limba UNQUALIFIED
Arvin W OldroydArgentinaBernardo Dominic NEGOTIATION
David J GarufiBrazilAnna Fali RENEWAL
Johnson L ChuiJapanIoni Bowcher UNQUALIFIED
Chavez F SlusarskiArgentinaBernardo Dominic PROPOSAL
Wickens D BowleyUnited KingdomIvan Magalhaes PROPOSAL
Kaitlin H ButtBrazilOnyama Limba RENEWAL
Clifford G AmigonCanadaStephen Shaw RENEWAL
Deepesh G GlickJapanAsiya Javayant PROPOSAL
Isabel E FollerSpainBernardo Dominic UNQUALIFIED
Greenwood G AlbaresGermanyAsiya Javayant QUALIFIED
Jones L FollerGermanyAnna Fali NEGOTIATION
Jennifer W FlosiAustraliaBernardo Dominic NEW
Aruna I RulapaughJapanIvan Magalhaes PROPOSAL
Faith E WieserUnited KingdomStephen Shaw PROPOSAL
Sinclair Z FlosiCanadaXuxue Feng QUALIFIED
Francesco A BowleyJapanOnyama Limba QUALIFIED
Mujtaba M NickaBrazilIoni Bowcher NEW
Claire R FerenczGermanyStephen Shaw NEW
Salvatore H InouyeJapanOnyama Limba NEW
Alejandro I PerinGermanyStephen Shaw PROPOSAL
Maria B MarrierCanadaAsiya Javayant RENEWAL
Morrow L RoysterUnited KingdomElwin Sharvill RENEWAL
Octavia B FollerFranceOnyama Limba RENEWAL
Tony B PaprockiFranceIvan Magalhaes NEGOTIATION
Deepesh G CampainJapanAnna Fali PROPOSAL
Faith O DilliardArgentinaAnna Fali NEW
Mujtaba G WieserBrazilStephen Shaw PROPOSAL
Jennifer X InouyeJapanXuxue Feng PROPOSAL
Tony L BologniaFranceBernardo Dominic NEGOTIATION
Emily J FigeroaGermanyXuxue Feng RENEWAL
Rodrigues Y IturbideBrazilAsiya Javayant NEGOTIATION

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