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 G AmigonFranceIvan Magalhaes UNQUALIFIED
Ivar L WieserFranceAmy Elsner PROPOSAL
Costa J MaletArgentinaXuxue Feng NEW
Wickens A GarufiGermanyIvan Magalhaes NEW
Adams R AlbaresGermanyBernardo Dominic PROPOSAL
Faith Z KuskoArgentinaAnna Fali UNQUALIFIED
Kaitlin P OldroydArgentinaOnyama Limba QUALIFIED
Rodrigues E PerinRussiaBernardo Dominic UNQUALIFIED
Costa O ChuiAustraliaIvan Magalhaes NEGOTIATION
Antonio W WhobreyJapanBernardo Dominic UNQUALIFIED
Sinclair W MaletGermanyBernardo Dominic RENEWAL
James W DarakjyUnited KingdomXuxue Feng NEGOTIATION
Munro G FollerAustraliaIoni Bowcher UNQUALIFIED
David U MaletArgentinaOnyama Limba RENEWAL
Arvin J PaprockiRussiaAnna Fali QUALIFIED
Emily O SaylorsSpainElwin Sharvill QUALIFIED
Jennifer F RoysterFranceIvan Magalhaes RENEWAL
Greenwood G NestleRussiaAsiya Javayant NEGOTIATION
Adams K GlickArgentinaAsiya Javayant NEGOTIATION
Aika K VocelkaBrazilAnna Fali UNQUALIFIED
Jeanfrancois K SergiCanadaAnna Fali QUALIFIED
Jeanfrancois N RimJapanIvan Magalhaes PROPOSAL
Aruna T CaldareraItalyAmy Elsner NEGOTIATION
Ashley L OstroskySpainAsiya Javayant RENEWAL
Tony S CampainGermanyAnna Fali PROPOSAL
Rodrigues W NestleFranceAnna Fali NEGOTIATION
Darci X InouyeAustraliaXuxue Feng RENEWAL
Stacey T RulapaughSpainIoni Bowcher QUALIFIED
Murillo R OldroydRussiaElwin Sharvill UNQUALIFIED
Morrow T TollnerItalyAmy Elsner QUALIFIED
Johnson L GlickBrazilElwin Sharvill RENEWAL
David N VenereCanadaStephen Shaw NEGOTIATION
Clifford M ShinkoCanadaXuxue Feng PROPOSAL
Aditya G PoquetteBrazilIvan Magalhaes UNQUALIFIED
Greenwood O OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Emily H SchemmerArgentinaStephen Shaw QUALIFIED
Maisha L BologniaGermanyIoni Bowcher PROPOSAL
James Y CaudyBrazilAsiya Javayant NEW
Emily O NestleFranceStephen Shaw PROPOSAL
Adams C FlosiUnited KingdomAnna Fali RENEWAL
Aika H AlbaresArgentinaXuxue Feng QUALIFIED
Leja K CaudyCanadaAsiya Javayant RENEWAL
Morrow Q SlusarskiFranceStephen Shaw NEGOTIATION
Izzy T PoquetteBrazilStephen Shaw RENEWAL
Maisha A PaprockiCanadaOnyama Limba RENEWAL
Ivar D ButtGermanyBernardo Dominic NEGOTIATION
Ivar R RutaItalyIoni Bowcher RENEWAL
Smith D GauchoFranceAmy Elsner UNQUALIFIED
Darci R AmigonRussiaAmy Elsner PROPOSAL
Jennifer L SlusarskiAustraliaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson U RutaJapanOnyama Limba RENEWAL
Smith E NickaSpainIoni Bowcher RENEWAL
James V RimSpainElwin Sharvill UNQUALIFIED
Faith P VenereUnited KingdomOnyama Limba NEW
Mujtaba G KuskoSpainAnna Fali PROPOSAL
Chavez H TollnerIndiaStephen Shaw PROPOSAL
Silvio G FollerSpainBernardo Dominic UNQUALIFIED
Arvin C GlickUnited KingdomAsiya Javayant NEW
Darci M FerenczGermanyStephen Shaw RENEWAL
Morrow F RutaItalyBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki C RimAustralia2026-07-30Chanay, Jeffrey A Esq QUALIFIED42Amy Elsner
1001Ricardo Z GillianJapan2026-08-09Chanay, Jeffrey A Esq QUALIFIED36Ivan Magalhaes
1002Greenwood K PaprockiBrazil2026-07-31Rangoni Of Florence QUALIFIED67Onyama Limba
1003Sinclair S FigeroaIndia2026-07-24Chemel, James L Cpa QUALIFIED24Stephen Shaw
1004Tony H WhobreyFrance2026-08-02Feltz Printing Service NEW40Asiya Javayant
1005Aika O SlusarskiSpain2026-08-08Morlong Associates NEW57Anna Fali
1006Leon V FerenczBrazil2026-07-31Feltz Printing Service QUALIFIED93Stephen Shaw
1007Kaitlin H GarufiAustralia2026-07-25Rangoni Of Florence QUALIFIED73Bernardo Dominic
1008Izzy K StensethIndia2026-07-19Chemel, James L Cpa QUALIFIED84Amy Elsner
1009Julie R WieserCanada2026-07-21Dorl, James J Esq NEW5Onyama Limba
1010Tony M BologniaArgentina2026-08-10Dorl, James J Esq RENEWAL37Ivan Magalhaes
1011Maria Y CaudyCanada2026-08-02Feltz Printing Service PROPOSAL87Ioni Bowcher
1012Aruna R VenereRussia2026-08-02Chapman, Ross E Esq NEGOTIATION72Ioni Bowcher
1013Smith L StensethFrance2026-07-27Truhlar And Truhlar Attys PROPOSAL89Xuxue Feng
1014Deepesh D DoeJapan2026-08-08Rousseaux, Michael Esq RENEWAL17Ioni Bowcher
1015Isabel F MarrierGermany2026-08-07Chapman, Ross E Esq PROPOSAL17Ioni Bowcher
1016Morrow N GarufiJapan2026-07-20Chanay, Jeffrey A Esq RENEWAL5Bernardo Dominic
1017Rodrigues C SaylorsAustralia2026-07-16Feltz Printing Service UNQUALIFIED27Onyama Limba
1018Mayumi Z IturbideCanada2026-07-22Benton, John B Jr QUALIFIED1Asiya Javayant
1019Mujtaba M KolmetzIndia2026-08-05Feltz Printing Service NEGOTIATION62Stephen Shaw
1020Kaitlin X MorascaItaly2026-08-10Truhlar And Truhlar Attys RENEWAL88Elwin Sharvill
1021Maisha O SchemmerUnited Kingdom2026-07-20Benton, John B Jr PROPOSAL1Bernardo Dominic
1022Leja P KuskoSpain2026-07-27Feltz Printing Service PROPOSAL70Elwin Sharvill
1023Alejandro W CaldareraIndia2026-07-31Rangoni Of Florence NEW58Ivan Magalhaes
1024Darci K MaletItaly2026-07-23Dorl, James J Esq NEW39Xuxue Feng
1025Emily I VocelkaSpain2026-08-01Rousseaux, Michael Esq UNQUALIFIED21Anna Fali
1026Mayumi D KolmetzJapan2026-07-22King, Christopher A Esq UNQUALIFIED41Xuxue Feng
1027Claire E SlusarskiIndia2026-08-05Feltz Printing Service PROPOSAL40Ioni Bowcher
1028Rodrigues A MorascaGermany2026-08-08Benton, John B Jr RENEWAL91Onyama Limba
1029Octavia N FigeroaArgentina2026-07-18Feltz Printing Service NEGOTIATION95Stephen Shaw
1030Jeanfrancois C FerenczRussia2026-08-05Chapman, Ross E Esq RENEWAL40Bernardo Dominic
1031Morrow D RimBrazil2026-07-23Rousseaux, Michael Esq NEW30Ioni Bowcher
1032Maria K GauchoItaly2026-07-21Chemel, James L Cpa UNQUALIFIED82Asiya Javayant
1033Leon W GillianGermany2026-08-01Commercial Press QUALIFIED97Ivan Magalhaes
1034Cody U FigeroaJapan2026-08-04Chapman, Ross E Esq RENEWAL7Ioni Bowcher
1035Kadeem L FollerIndia2026-07-31Morlong Associates RENEWAL84Anna Fali
1036Maria C FigeroaCanada2026-08-11Buckley Miller Wright UNQUALIFIED30Onyama Limba
1037Emily B FerenczJapan2026-07-29King, Christopher A Esq NEW4Xuxue Feng
1038Francesco D OstroskyAustralia2026-07-27Rousseaux, Michael Esq PROPOSAL44Anna Fali
1039Leja A NestleIndia2026-07-14Chemel, James L Cpa NEW52Anna Fali
1040Claire M NickaAustralia2026-07-19Benton, John B Jr RENEWAL53Ioni Bowcher
1041Costa Q MarrierArgentina2026-07-18Dorl, James J Esq RENEWAL42Ioni Bowcher
1042Adams D OstroskyAustralia2026-07-26King, Christopher A Esq PROPOSAL46Asiya Javayant
1043Greenwood X DarakjyRussia2026-08-07Rangoni Of Florence NEW81Anna Fali
1044Jennifer J PaprockiJapan2026-07-13Benton, John B Jr QUALIFIED6Ivan Magalhaes
1045Jefferson U VocelkaAustralia2026-07-18Feiner Bros PROPOSAL40Ivan Magalhaes
1046Leon Y NestleIndia2026-07-20Rousseaux, Michael Esq RENEWAL87Stephen Shaw
1047Ricardo U PerinJapan2026-08-03King, Christopher A Esq RENEWAL67Bernardo Dominic
1048Emily C IturbideSpain2026-07-19Commercial Press NEW92Bernardo Dominic
1049Octavia C PaprockiJapan2026-07-24Rangoni Of Florence RENEWAL11Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Murillo E TollnerJapanAmy Elsner RENEWAL
Leja M MarrierItalyOnyama Limba UNQUALIFIED
Ricardo S MacleadBrazilOnyama Limba NEGOTIATION
Aruna H ShinkoAustraliaOnyama Limba RENEWAL
Misaki O RimUnited KingdomElwin Sharvill PROPOSAL
Salvatore G NickaCanadaAmy Elsner NEW
Jefferson M RutaArgentinaIoni Bowcher UNQUALIFIED
Julie Q KuskoItalyAmy Elsner QUALIFIED
Jones K RulapaughUnited KingdomAnna Fali NEGOTIATION
Izzy F WhobreyJapanIoni Bowcher NEGOTIATION
Wickens D FlosiJapanStephen Shaw QUALIFIED
Leja U KolmetzGermanyIvan Magalhaes RENEWAL
Izzy R GillianBrazilAsiya Javayant NEW
Aditya E FigeroaFranceStephen Shaw RENEWAL
James S RulapaughArgentinaStephen Shaw UNQUALIFIED
Faith A DarakjyIndiaElwin Sharvill NEGOTIATION
Arvin T WhobreyGermanyIoni Bowcher NEGOTIATION
Octavia C SlusarskiIndiaBernardo Dominic QUALIFIED
Greenwood N GarufiIndiaIvan Magalhaes RENEWAL
Ashley P CaldareraCanadaAnna Fali PROPOSAL
Stacey X CaldareraIndiaAnna Fali UNQUALIFIED
Munro D MaletBrazilBernardo Dominic NEW
Julie Z SlusarskiItalyStephen Shaw NEGOTIATION
Ashley K SergiItalyOnyama Limba NEW
Tony E SchemmerRussiaXuxue Feng RENEWAL
Ashley L AlbaresSpainXuxue Feng NEGOTIATION
Aditya E RutaArgentinaBernardo Dominic PROPOSAL
Antonio U TollnerJapanXuxue Feng NEW
Mujtaba J BologniaFranceIoni Bowcher QUALIFIED
Jefferson H MacleadBrazilElwin Sharvill QUALIFIED
James R ShinkoUnited KingdomAmy Elsner QUALIFIED
Leja R OldroydJapanOnyama Limba UNQUALIFIED
Rodrigues Z SchemmerJapanAnna Fali QUALIFIED
Kaitlin L SlusarskiSpainStephen Shaw QUALIFIED
David O FollerArgentinaBernardo Dominic PROPOSAL
Leja Q FerenczSpainElwin Sharvill UNQUALIFIED
Jefferson E BologniaJapanIoni Bowcher RENEWAL
Alejandro R SaylorsUnited KingdomBernardo Dominic PROPOSAL
Greenwood X DarakjyCanadaIoni Bowcher QUALIFIED
Ricardo R SaylorsCanadaXuxue Feng UNQUALIFIED
Jennifer P IturbideJapanAsiya Javayant NEW
Costa Q StockhamSpainStephen Shaw NEW
Wickens P ShinkoItalyAsiya Javayant UNQUALIFIED
Sinclair G CaldareraRussiaAsiya Javayant NEW
Wickens K CaudyAustraliaAnna Fali PROPOSAL
Rodrigues O DarakjyBrazilBernardo Dominic NEW
James I WaycottGermanyAsiya Javayant NEW
Izzy Q MorascaAustraliaAsiya Javayant RENEWAL
Ashley M GarufiBrazilAsiya Javayant NEW
David O KuskoSpainBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Stacey B Foller
Aditya Z Doe
Murillo N Rulapaugh
Isabel E Malet
Kadeem O Perin
Faith Y Slusarski
Emily C Iturbide
Sinclair Z Ferencz
Kadeem L Malet
Deepesh P Caldarera
Aika Z Darakjy
Aditya H Stenseth
Smith W Ferencz
Mujtaba D Ferencz
Murillo E Ostrosky
Munro Z Poquette
Maisha G Rim
Nicolas E Amigon
Alejandro U Doe
Wickens O Stenseth
Deepesh K Briddick
Arvin L Vocelka
Murillo Z Glick
Julie Q Butt
Izzy X Bolognia
Jefferson A Maclead
Nicolas F Malet
Leon X Wieser
Faith P Stenseth
Juan T Nicka
Munro R Rim
Misaki K Sergi
Tony M Malet
Ricardo P Flosi
Francesco S Schemmer
Tony I Waycott
Ivar P Malet
Tony T Morasca
Johnson M Albares
Jones X Whobrey
Morrow L Inouye
Izzy W Malet
Silvio Z Iturbide
Misaki H Campain
Silvio X Gillian
Jefferson F Kusko
Ashley W Maclead
James M Saylors
Munro K Slusarski
Maisha O Oldroyd
IdCountryDate
1000United Kingdom2026-07-24
1001Australia2026-07-29
1002Australia2026-07-27
1003France2026-08-04
1004Russia2026-07-31
1005Russia2026-07-20
1006Germany2026-07-31
1007Japan2026-07-16
1008Australia2026-08-10
1009France2026-08-01
1010Spain2026-07-17
1011Russia2026-07-20
1012Argentina2026-08-07
1013United Kingdom2026-07-17
1014France2026-07-23
1015Russia2026-07-29
1016France2026-07-17
1017Germany2026-07-18
1018United Kingdom2026-07-28
1019Russia2026-07-17
1020Australia2026-07-24
1021Spain2026-08-06
1022France2026-08-02
1023Italy2026-07-19
1024United Kingdom2026-08-02
1025United Kingdom2026-07-13
1026Italy2026-07-21
1027Germany2026-08-02
1028Brazil2026-07-21
1029United Kingdom2026-07-22
1030Spain2026-07-17
1031Japan2026-07-22
1032Russia2026-08-04
1033Spain2026-07-22
1034France2026-08-07
1035United Kingdom2026-07-18
1036Australia2026-08-10
1037Germany2026-07-20
1038France2026-07-16
1039Argentina2026-07-25
1040United Kingdom2026-07-22
1041India2026-07-28
1042France2026-07-24
1043Canada2026-07-25
1044Japan2026-07-28
1045Germany2026-08-11
1046Spain2026-07-16
1047Italy2026-07-16
1048Italy2026-07-13
1049Argentina2026-08-11

On-Demand Data

NameIdCountryDate
Emily B Venere1000Italy2026-08-11
Maria P Albares1001Canada2026-07-25
Izzy K Iturbide1002France2026-07-15
Mayumi G Ostrosky1003Spain2026-08-03
Rodrigues M Shinko1004Japan2026-08-08
Clifford Y Caudy1005India2026-07-26
Deepesh R Oldroyd1006Brazil2026-07-20
Silvio Z Rulapaugh1007United Kingdom2026-08-11
Isabel C Rim1008Germany2026-07-21
Leon L Garufi1009Brazil2026-07-24
Leon Y Inouye1010France2026-07-13
Mayumi C Campain1011United Kingdom2026-08-02
Faith A Whobrey1012Japan2026-08-11
Deepesh B Vocelka1013India2026-07-22
Salvatore T Butt1014Italy2026-08-04
Deepesh W Inouye1015Italy2026-08-01
Chavez S Flosi1016United Kingdom2026-07-19
Salvatore C Figeroa1017France2026-07-22
Maisha W Amigon1018Argentina2026-07-27
Maisha F Albares1019United Kingdom2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams G PaprockiIndiaAsiya Javayant UNQUALIFIED
Silvio V PerinUnited KingdomXuxue Feng NEW
Isabel X DoeRussiaElwin Sharvill QUALIFIED
Costa V CaldareraUnited KingdomXuxue Feng QUALIFIED
Tony X StensethArgentinaElwin Sharvill NEGOTIATION
Smith A CaldareraSpainAsiya Javayant UNQUALIFIED
Ashley L GillianAustraliaIvan Magalhaes QUALIFIED
Aruna L MaletCanadaXuxue Feng PROPOSAL
Leon Q StockhamBrazilStephen Shaw NEGOTIATION
Ivar E StensethIndiaIvan Magalhaes PROPOSAL
Mayumi F AlbaresIndiaAnna Fali PROPOSAL
Ashley P WaycottGermanyBernardo Dominic QUALIFIED
Cody B CaudyUnited KingdomAnna Fali NEGOTIATION
Emily K PoquetteUnited KingdomAsiya Javayant RENEWAL
Aditya E TollnerUnited KingdomAmy Elsner QUALIFIED
Ivar N RutaUnited KingdomIvan Magalhaes UNQUALIFIED
Aruna G VenereRussiaAnna Fali NEW
Faith W WieserArgentinaStephen Shaw NEW
Salvatore J InouyeBrazilBernardo Dominic QUALIFIED
Maisha C IturbideUnited KingdomElwin Sharvill NEGOTIATION
Murillo X NestleSpainElwin Sharvill UNQUALIFIED
Jeanfrancois E WaycottSpainStephen Shaw QUALIFIED
Leon Z MacleadArgentinaAnna Fali QUALIFIED
Deepesh V MacleadRussiaOnyama Limba NEGOTIATION
Mayumi O PoquetteFranceElwin Sharvill RENEWAL
Leon N StensethItalyAnna Fali PROPOSAL
Jennifer G MarrierGermanyIoni Bowcher NEGOTIATION
Silvio C FerenczArgentinaAnna Fali RENEWAL
Ivar R WaycottCanadaAnna Fali UNQUALIFIED
Smith Z MarrierUnited KingdomAsiya Javayant QUALIFIED
Sinclair Y MorascaAustraliaIvan Magalhaes NEW
Francesco P FlosiUnited KingdomStephen Shaw PROPOSAL
Morrow T RoysterRussiaIvan Magalhaes UNQUALIFIED
Emily K BologniaSpainIoni Bowcher UNQUALIFIED
Izzy K MaletFranceOnyama Limba RENEWAL
Mayumi Z FlosiAustraliaOnyama Limba QUALIFIED
Mujtaba I CaudyFranceBernardo Dominic NEGOTIATION
Costa Y FlosiCanadaIoni Bowcher NEW
Tony D VocelkaBrazilBernardo Dominic NEGOTIATION
Munro G FigeroaRussiaXuxue Feng 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>