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
Cody M GillianSpainOnyama Limba NEGOTIATION
Morrow T NickaIndiaAmy Elsner UNQUALIFIED
Greenwood S WieserAustraliaIvan Magalhaes NEW
Kadeem S MacleadJapanStephen Shaw PROPOSAL
Stacey K RulapaughSpainIoni Bowcher QUALIFIED
Stacey F CaudyUnited KingdomBernardo Dominic NEW
Adams T ChuiIndiaIvan Magalhaes RENEWAL
Salvatore C KolmetzUnited KingdomStephen Shaw NEGOTIATION
Jones C ShinkoSpainBernardo Dominic NEW
Kaitlin I RulapaughFranceIoni Bowcher RENEWAL
Octavia Q OldroydUnited KingdomIvan Magalhaes NEW
Maisha H NickaFranceIvan Magalhaes NEW
Darci J StockhamGermanyAsiya Javayant NEGOTIATION
Isabel Y SlusarskiJapanOnyama Limba NEGOTIATION
Morrow G DoeSpainAsiya Javayant NEW
Nicolas G StensethGermanyAmy Elsner PROPOSAL
Smith G DoeGermanyAsiya Javayant QUALIFIED
Mujtaba V DilliardFranceAsiya Javayant UNQUALIFIED
Francesco M MaletUnited KingdomAmy Elsner RENEWAL
Jennifer W MorascaRussiaOnyama Limba NEW
Chavez Y OldroydBrazilAsiya Javayant PROPOSAL
Emily H NickaJapanXuxue Feng PROPOSAL
Clifford E CampainBrazilXuxue Feng NEGOTIATION
Emily K DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Ivar D CampainItalyAsiya Javayant UNQUALIFIED
Jefferson S RutaBrazilXuxue Feng PROPOSAL
Clifford T TollnerIndiaBernardo Dominic NEGOTIATION
Francesco W MorascaUnited KingdomAnna Fali NEGOTIATION
Arvin W DoeItalyAsiya Javayant NEW
Cody R DilliardJapanAsiya Javayant UNQUALIFIED
Aruna L NickaAustraliaAmy Elsner PROPOSAL
Silvio Q GauchoItalyStephen Shaw UNQUALIFIED
Alejandro A NickaCanadaAnna Fali NEW
Leja D DilliardGermanyIoni Bowcher UNQUALIFIED
Leja L GlickBrazilBernardo Dominic PROPOSAL
Adams W DilliardArgentinaBernardo Dominic NEW
Ricardo F ShinkoJapanAmy Elsner PROPOSAL
Izzy C ChuiArgentinaAnna Fali QUALIFIED
Costa H WaycottUnited KingdomBernardo Dominic PROPOSAL
Mayumi C OstroskyAustraliaIvan Magalhaes NEGOTIATION
Aruna X NickaItalyAnna Fali RENEWAL
Smith C RutaSpainOnyama Limba NEW
Adams S IturbideFranceIvan Magalhaes QUALIFIED
Silvio Q CaldareraAustraliaXuxue Feng RENEWAL
Adams D FerenczUnited KingdomAnna Fali NEGOTIATION
Johnson L CaldareraGermanyAnna Fali PROPOSAL
Octavia M CaldareraSpainAmy Elsner NEGOTIATION
Munro A PoquetteFranceIvan Magalhaes NEGOTIATION
Aruna O CaudyGermanyAsiya Javayant UNQUALIFIED
Alejandro F KolmetzSpainXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ivar P RimUnited KingdomIvan Magalhaes QUALIFIED
Munro H DarakjyIndiaXuxue Feng NEW
Maisha G CaudyItalyAsiya Javayant UNQUALIFIED
Salvatore X ButtJapanStephen Shaw NEW
Cody M TollnerRussiaElwin Sharvill UNQUALIFIED
Smith W RulapaughJapanOnyama Limba QUALIFIED
Antonio R BriddickRussiaBernardo Dominic RENEWAL
Isabel G MaletGermanyStephen Shaw UNQUALIFIED
James Z WieserGermanyAmy Elsner QUALIFIED
Aditya J IturbideJapanAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie U WieserItaly2026-07-25Feltz Printing Service NEW13Xuxue Feng
1001Claire K SlusarskiItaly2026-08-02Printing Dimensions UNQUALIFIED28Stephen Shaw
1002Jefferson T MacleadItaly2026-07-29Truhlar And Truhlar Attys QUALIFIED77Xuxue Feng
1003Aika S DarakjyBrazil2026-07-14Chapman, Ross E Esq UNQUALIFIED57Stephen Shaw
1004Chavez I RutaCanada2026-08-10Morlong Associates NEW30Ivan Magalhaes
1005Tony K FlosiFrance2026-08-03Printing Dimensions NEGOTIATION24Xuxue Feng
1006Sinclair X TollnerIndia2026-07-15Chapman, Ross E Esq RENEWAL7Asiya Javayant
1007Johnson X InouyeItaly2026-07-18Dorl, James J Esq RENEWAL56Asiya Javayant
1008Salvatore G MorascaGermany2026-07-22Benton, John B Jr QUALIFIED58Ioni Bowcher
1009James G RulapaughUnited Kingdom2026-08-02Dorl, James J Esq UNQUALIFIED31Elwin Sharvill
1010Munro J NestleUnited Kingdom2026-07-24Feiner Bros RENEWAL45Amy Elsner
1011Kadeem B FerenczArgentina2026-08-04King, Christopher A Esq RENEWAL67Asiya Javayant
1012Clifford R KuskoGermany2026-08-07Feltz Printing Service RENEWAL90Xuxue Feng
1013Octavia G VenereBrazil2026-07-30Commercial Press QUALIFIED72Elwin Sharvill
1014Misaki Z DoeFrance2026-07-14Commercial Press QUALIFIED73Xuxue Feng
1015Faith F FerenczAustralia2026-08-06Chapman, Ross E Esq RENEWAL31Asiya Javayant
1016Tony L ShinkoItaly2026-07-14Feiner Bros NEW21Amy Elsner
1017Morrow E InouyeGermany2026-07-15Feltz Printing Service UNQUALIFIED40Elwin Sharvill
1018Silvio A GlickBrazil2026-07-26Commercial Press RENEWAL61Stephen Shaw
1019Juan H BologniaFrance2026-07-30Morlong Associates UNQUALIFIED9Xuxue Feng
1020Izzy S NestleJapan2026-07-26Feltz Printing Service UNQUALIFIED93Amy Elsner
1021Aditya Z PoquetteAustralia2026-07-16Benton, John B Jr NEGOTIATION24Bernardo Dominic
1022Ashley I BowleyBrazil2026-07-30Dorl, James J Esq NEW52Asiya Javayant
1023Maria L ShinkoArgentina2026-07-24King, Christopher A Esq NEGOTIATION99Elwin Sharvill
1024Claire D NestleBrazil2026-08-09Feltz Printing Service QUALIFIED83Asiya Javayant
1025Misaki X AmigonGermany2026-08-09Chemel, James L Cpa QUALIFIED73Ivan Magalhaes
1026David P MaletRussia2026-08-07Rangoni Of Florence NEGOTIATION60Xuxue Feng
1027Alejandro O StensethGermany2026-07-27Chanay, Jeffrey A Esq QUALIFIED13Amy Elsner
1028Jeanfrancois X TollnerFrance2026-07-19Truhlar And Truhlar Attys NEW89Ioni Bowcher
1029Cody N IturbideFrance2026-07-22Commercial Press RENEWAL90Ivan Magalhaes
1030Darci C KuskoAustralia2026-07-17King, Christopher A Esq NEW42Amy Elsner
1031Jennifer M WieserArgentina2026-07-20Morlong Associates NEGOTIATION17Stephen Shaw
1032Mujtaba D FerenczArgentina2026-07-29Dorl, James J Esq NEW26Xuxue Feng
1033Silvio W SergiFrance2026-07-18Dorl, James J Esq UNQUALIFIED88Onyama Limba
1034Arvin E FigeroaAustralia2026-07-31Commercial Press NEW50Bernardo Dominic
1035Nicolas S RulapaughUnited Kingdom2026-08-04Feiner Bros PROPOSAL83Ivan Magalhaes
1036Izzy Z WhobreyCanada2026-08-06Rangoni Of Florence NEGOTIATION11Amy Elsner
1037Stacey E PaprockiFrance2026-07-20Chemel, James L Cpa NEGOTIATION65Ioni Bowcher
1038Wickens B GarufiFrance2026-07-13Chemel, James L Cpa NEW95Elwin Sharvill
1039Alejandro Y GlickSpain2026-07-22Commercial Press NEGOTIATION30Bernardo Dominic
1040Ivar V DarakjyIndia2026-08-05Printing Dimensions PROPOSAL9Amy Elsner
1041Deepesh V BriddickIndia2026-07-22Chanay, Jeffrey A Esq PROPOSAL23Elwin Sharvill
1042Darci G NestleRussia2026-08-05Morlong Associates QUALIFIED85Elwin Sharvill
1043Maria M ShinkoAustralia2026-07-26Chapman, Ross E Esq PROPOSAL65Anna Fali
1044Johnson G DoeFrance2026-07-30Buckley Miller Wright NEGOTIATION10Ioni Bowcher
1045Aditya P WieserAustralia2026-07-15Chanay, Jeffrey A Esq QUALIFIED6Xuxue Feng
1046Mujtaba I SlusarskiUnited Kingdom2026-07-21Printing Dimensions NEGOTIATION4Anna Fali
1047Sinclair U FlosiCanada2026-07-18Commercial Press NEGOTIATION31Ioni Bowcher
1048Maisha X MorascaSpain2026-07-15Buckley Miller Wright RENEWAL97Anna Fali
1049Jennifer H ButtBrazil2026-08-07Dorl, James J Esq NEGOTIATION56Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Darci K MaletIndiaOnyama Limba UNQUALIFIED
Maisha H DarakjySpainStephen Shaw QUALIFIED
Izzy R PoquetteJapanAnna Fali PROPOSAL
Emily F GauchoSpainIoni Bowcher QUALIFIED
Mujtaba R ShinkoRussiaAsiya Javayant RENEWAL
Emily A OstroskyUnited KingdomElwin Sharvill UNQUALIFIED
Juan D MorascaGermanyAsiya Javayant NEW
Rodrigues I MorascaIndiaAmy Elsner QUALIFIED
Stacey M AmigonSpainElwin Sharvill NEGOTIATION
Faith K RoysterJapanElwin Sharvill PROPOSAL
Mayumi G AlbaresRussiaIoni Bowcher RENEWAL
Maisha C WaycottAustraliaXuxue Feng QUALIFIED
Alejandro U RutaSpainElwin Sharvill UNQUALIFIED
Silvio E MacleadItalyOnyama Limba UNQUALIFIED
Aika K FlosiArgentinaOnyama Limba RENEWAL
Alejandro K ChuiFranceStephen Shaw NEW
Murillo D DilliardFranceOnyama Limba QUALIFIED
Johnson K WaycottSpainElwin Sharvill UNQUALIFIED
Kadeem P SergiAustraliaElwin Sharvill NEGOTIATION
Morrow S WaycottItalyAnna Fali RENEWAL
Kaitlin V AmigonUnited KingdomAnna Fali UNQUALIFIED
Stacey S ButtIndiaBernardo Dominic RENEWAL
Chavez F ButtFranceAsiya Javayant NEW
Morrow F FlosiBrazilAmy Elsner RENEWAL
Sinclair K ShinkoRussiaOnyama Limba NEGOTIATION
Deepesh P RulapaughCanadaStephen Shaw PROPOSAL
Leja P CaudySpainElwin Sharvill PROPOSAL
Mayumi K FerenczAustraliaBernardo Dominic NEW
Salvatore B ShinkoArgentinaAmy Elsner NEW
Smith N ShinkoGermanyIoni Bowcher UNQUALIFIED
Alejandro I PoquetteJapanOnyama Limba NEGOTIATION
Ivar T CaudyIndiaAsiya Javayant PROPOSAL
Leja Q WhobreyRussiaXuxue Feng QUALIFIED
Johnson Q FollerBrazilXuxue Feng UNQUALIFIED
Octavia P WieserGermanyAsiya Javayant RENEWAL
Aruna W DilliardItalyXuxue Feng NEGOTIATION
Antonio J TollnerArgentinaElwin Sharvill NEW
Johnson R BologniaBrazilXuxue Feng NEW
Mujtaba X SaylorsRussiaXuxue Feng UNQUALIFIED
Leja Q CaudyItalyAsiya Javayant PROPOSAL
Tony T GlickFranceIoni Bowcher NEGOTIATION
Maisha I WhobreyRussiaAsiya Javayant UNQUALIFIED
Greenwood Q MarrierArgentinaBernardo Dominic PROPOSAL
Chavez C SchemmerFranceBernardo Dominic RENEWAL
Maisha N MarrierIndiaAsiya Javayant UNQUALIFIED
Johnson K WaycottAustraliaAnna Fali NEW
Silvio F FigeroaRussiaAmy Elsner PROPOSAL
Misaki W ButtRussiaAmy Elsner UNQUALIFIED
Maria C CampainJapanAsiya Javayant NEW
Leon I InouyeSpainStephen Shaw PROPOSAL
Frozen Columns
Name
Kaitlin C Tollner
Ivar U Bolognia
Isabel K Nicka
Murillo E Whobrey
Rodrigues S Venere
Chavez L Malet
Deepesh L Saylors
Cody S Iturbide
Antonio I Doe
Sinclair T Caldarera
Rodrigues S Butt
Ivar D Perin
Leon Q Whobrey
Wickens T Gaucho
Ivar K Stockham
Deepesh A Ruta
Mujtaba A Saylors
Mujtaba M Amigon
Wickens Q Inouye
David N Ostrosky
Chavez P Malet
Francesco A Glick
Francesco Z Figeroa
Octavia J Nicka
Rodrigues O Vocelka
Octavia M Chui
Leon G Briddick
Octavia M Poquette
Mayumi P Amigon
Isabel D Albares
Jennifer N Stenseth
Clifford G Doe
Munro D Figeroa
Stacey L Perin
Johnson C Kolmetz
Alejandro M Kolmetz
Wickens Q Royster
David Y Nestle
Murillo G Vocelka
Emily X Figeroa
Stacey Z Butt
Aruna O Ferencz
Deepesh E Tollner
Misaki Z Rim
Emily C Royster
Nicolas M Slusarski
Alejandro H Doe
Alejandro I Butt
Aruna X Vocelka
Kaitlin F Vocelka
IdCountryDate
1000Canada2026-07-28
1001Spain2026-07-19
1002Germany2026-08-02
1003Australia2026-08-08
1004Australia2026-07-17
1005Germany2026-07-27
1006Japan2026-07-24
1007Brazil2026-08-09
1008Japan2026-07-26
1009United Kingdom2026-07-31
1010Spain2026-07-14
1011India2026-07-31
1012Italy2026-07-30
1013Brazil2026-07-23
1014France2026-08-10
1015France2026-07-21
1016Australia2026-07-17
1017Canada2026-07-16
1018Australia2026-07-20
1019Russia2026-08-09
1020Germany2026-07-19
1021Japan2026-07-28
1022Spain2026-07-16
1023Russia2026-07-15
1024Japan2026-07-14
1025Canada2026-07-22
1026United Kingdom2026-07-18
1027India2026-07-24
1028Italy2026-08-03
1029Japan2026-07-25
1030Argentina2026-07-18
1031Spain2026-07-17
1032Argentina2026-08-01
1033Japan2026-08-01
1034Australia2026-08-04
1035Spain2026-07-22
1036Japan2026-07-18
1037Argentina2026-07-27
1038Brazil2026-07-27
1039Argentina2026-07-13
1040Australia2026-07-23
1041Australia2026-07-16
1042Spain2026-07-20
1043United Kingdom2026-08-09
1044India2026-08-05
1045Brazil2026-07-15
1046Argentina2026-07-20
1047Japan2026-07-21
1048Argentina2026-07-20
1049Italy2026-08-03

On-Demand Data

NameIdCountryDate
Jennifer M Iturbide1000Russia2026-07-27
Darci A Ferencz1001India2026-07-30
Julie B Venere1002Brazil2026-07-28
Jefferson V Kolmetz1003Argentina2026-08-06
Antonio E Glick1004Germany2026-08-09
Johnson N Perin1005Japan2026-08-09
Jennifer Z Vocelka1006Spain2026-07-21
Wickens V Chui1007United Kingdom2026-07-20
Antonio K Chui1008United Kingdom2026-08-11
Silvio I Schemmer1009Spain2026-07-18
Juan V Glick1010Australia2026-07-31
Johnson W Rim1011Canada2026-07-18
Arvin Q Rulapaugh1012United Kingdom2026-07-18
Kaitlin N Figeroa1013United Kingdom2026-07-31
Smith V Chui1014Italy2026-07-23
Stacey F Glick1015India2026-07-15
Leja E Iturbide1016Japan2026-07-26
Chavez B Waycott1017Canada2026-07-19
Aruna A Ferencz1018Brazil2026-07-14
Leja M Nestle1019Australia2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues P BologniaIndiaElwin Sharvill RENEWAL
Tony D AmigonCanadaOnyama Limba QUALIFIED
Ivar F NestleUnited KingdomAnna Fali QUALIFIED
Ashley J SchemmerFranceAmy Elsner RENEWAL
Izzy M MaletSpainAsiya Javayant UNQUALIFIED
Stacey N AlbaresJapanOnyama Limba RENEWAL
Wickens A StensethAustraliaXuxue Feng PROPOSAL
Silvio H PaprockiIndiaElwin Sharvill UNQUALIFIED
Sinclair G DarakjyFranceAsiya Javayant QUALIFIED
Wickens H GlickItalyAmy Elsner RENEWAL
Francesco J IturbideArgentinaAmy Elsner RENEWAL
Emily O FollerBrazilAnna Fali UNQUALIFIED
Mujtaba X PoquetteAustraliaBernardo Dominic UNQUALIFIED
Juan S GauchoIndiaIvan Magalhaes UNQUALIFIED
Chavez G CaudyRussiaIoni Bowcher UNQUALIFIED
Antonio L NestleJapanElwin Sharvill RENEWAL
Jones L NestleArgentinaAnna Fali QUALIFIED
Maria F WhobreyBrazilAsiya Javayant PROPOSAL
Rodrigues O PaprockiRussiaElwin Sharvill NEGOTIATION
Chavez O MaletUnited KingdomXuxue Feng NEGOTIATION
Nicolas S MacleadFranceAnna Fali NEGOTIATION
Salvatore D NestleBrazilIoni Bowcher RENEWAL
Mayumi M FlosiSpainOnyama Limba PROPOSAL
Ricardo Z DoeSpainBernardo Dominic NEGOTIATION
James U MacleadItalyXuxue Feng RENEWAL
Johnson G StockhamCanadaElwin Sharvill UNQUALIFIED
Sinclair V WhobreyFranceIoni Bowcher PROPOSAL
Jones H MorascaCanadaBernardo Dominic PROPOSAL
Salvatore A SchemmerRussiaAnna Fali PROPOSAL
Murillo Y AlbaresGermanyAmy Elsner NEW
Julie D BriddickAustraliaIoni Bowcher PROPOSAL
Mujtaba Q OstroskyFranceXuxue Feng PROPOSAL
Chavez J OstroskyFranceBernardo Dominic UNQUALIFIED
Leon K MarrierFranceAmy Elsner RENEWAL
Mujtaba R FlosiItalyStephen Shaw NEW
Adams Z WhobreyAustraliaIvan Magalhaes NEGOTIATION
Aditya B NickaUnited KingdomElwin Sharvill NEGOTIATION
Wickens N BologniaArgentinaAmy Elsner NEW
Claire N BriddickCanadaStephen Shaw NEW
Salvatore X RoysterBrazilStephen Shaw 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>