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
Darci Y GarufiItalyBernardo Dominic NEGOTIATION
Francesco M WaycottIndiaAnna Fali PROPOSAL
Julie M ChuiBrazilAnna Fali NEW
Salvatore J NickaSpainIoni Bowcher PROPOSAL
Rodrigues J WhobreyCanadaElwin Sharvill QUALIFIED
Salvatore X MacleadGermanyStephen Shaw NEGOTIATION
Ashley Q SchemmerUnited KingdomElwin Sharvill NEW
Isabel H GlickSpainIvan Magalhaes QUALIFIED
Wickens M OldroydCanadaAmy Elsner RENEWAL
Sinclair L ChuiBrazilElwin Sharvill NEGOTIATION
Stacey V AlbaresJapanElwin Sharvill RENEWAL
Jennifer Q RimUnited KingdomAsiya Javayant NEW
Sinclair M BologniaBrazilStephen Shaw RENEWAL
Juan G MorascaJapanIvan Magalhaes RENEWAL
Greenwood V DoeSpainIvan Magalhaes NEW
Mujtaba M VenereFranceElwin Sharvill NEW
Leja H PoquetteAustraliaElwin Sharvill NEW
Munro Q GillianArgentinaXuxue Feng RENEWAL
Maria N KuskoGermanyStephen Shaw NEGOTIATION
Sinclair A SaylorsUnited KingdomBernardo Dominic RENEWAL
James H AlbaresBrazilBernardo Dominic QUALIFIED
Aditya E ButtFranceOnyama Limba PROPOSAL
Octavia B SchemmerAustraliaAsiya Javayant UNQUALIFIED
Salvatore P FollerArgentinaAmy Elsner QUALIFIED
Juan B GarufiRussiaAmy Elsner UNQUALIFIED
Leja F MacleadRussiaAsiya Javayant RENEWAL
Chavez M WieserAustraliaElwin Sharvill RENEWAL
Silvio G VocelkaJapanAnna Fali NEGOTIATION
Emily C WaycottCanadaIvan Magalhaes NEGOTIATION
Deepesh I ShinkoFranceAnna Fali RENEWAL
Ashley V VenereBrazilBernardo Dominic NEGOTIATION
Maisha Z MaletCanadaIoni Bowcher PROPOSAL
Octavia Z SaylorsArgentinaAnna Fali QUALIFIED
Jennifer A GlickBrazilAnna Fali PROPOSAL
Sinclair A WhobreyFranceStephen Shaw NEGOTIATION
Smith G WhobreyFranceAnna Fali QUALIFIED
Leon T StockhamGermanyIoni Bowcher PROPOSAL
David Q FigeroaRussiaAnna Fali QUALIFIED
Mujtaba A WaycottBrazilAmy Elsner UNQUALIFIED
Leon W MorascaUnited KingdomIoni Bowcher QUALIFIED
Ricardo H OstroskyCanadaIoni Bowcher RENEWAL
Jefferson G MarrierGermanyXuxue Feng UNQUALIFIED
Greenwood F FlosiAustraliaOnyama Limba NEW
Francesco U WieserArgentinaOnyama Limba RENEWAL
Stacey A WhobreyItalyAmy Elsner QUALIFIED
Aruna J TollnerItalyIvan Magalhaes QUALIFIED
James I AlbaresArgentinaStephen Shaw NEW
Aika U VenereArgentinaBernardo Dominic QUALIFIED
Arvin S RutaSpainAmy Elsner QUALIFIED
Jeanfrancois S WieserCanadaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro D WieserArgentinaIoni Bowcher NEW
Jeanfrancois Z GarufiFranceBernardo Dominic QUALIFIED
Maria K StockhamBrazilIvan Magalhaes NEW
Clifford P AmigonItalyBernardo Dominic QUALIFIED
Arvin I FigeroaAustraliaXuxue Feng PROPOSAL
Faith I IturbideBrazilAsiya Javayant QUALIFIED
Jones V SchemmerFranceAsiya Javayant NEW
Maisha I AmigonIndiaOnyama Limba UNQUALIFIED
Nicolas T PoquetteIndiaXuxue Feng UNQUALIFIED
Octavia A OstroskyRussiaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro B AlbaresGermany2026-07-31Commercial Press QUALIFIED45Stephen Shaw
1001Juan L BologniaJapan2026-08-25Commercial Press PROPOSAL91Elwin Sharvill
1002Claire R RulapaughBrazil2026-08-04Commercial Press NEGOTIATION71Elwin Sharvill
1003Antonio D DarakjyArgentina2026-07-29Printing Dimensions QUALIFIED48Amy Elsner
1004Jeanfrancois U AlbaresRussia2026-08-24Printing Dimensions NEW0Bernardo Dominic
1005Leja D StensethUnited Kingdom2026-08-16Chanay, Jeffrey A Esq NEW77Bernardo Dominic
1006Cody V FigeroaSpain2026-08-20Rangoni Of Florence NEGOTIATION5Amy Elsner
1007Octavia Q ShinkoFrance2026-08-22Rangoni Of Florence PROPOSAL84Amy Elsner
1008Maisha H WieserSpain2026-08-04Printing Dimensions NEW37Ivan Magalhaes
1009Leja N MacleadBrazil2026-08-23Commercial Press NEW36Bernardo Dominic
1010Ivar Q SchemmerItaly2026-08-16King, Christopher A Esq QUALIFIED82Xuxue Feng
1011Ricardo Z MarrierIndia2026-08-07Truhlar And Truhlar Attys UNQUALIFIED72Elwin Sharvill
1012Kadeem A AmigonBrazil2026-08-09Rousseaux, Michael Esq NEGOTIATION68Ivan Magalhaes
1013Emily U WieserFrance2026-07-29Dorl, James J Esq UNQUALIFIED98Bernardo Dominic
1014Ricardo P DarakjyCanada2026-08-08Morlong Associates RENEWAL35Anna Fali
1015Salvatore R ChuiIndia2026-08-14Morlong Associates NEW75Xuxue Feng
1016Isabel X WhobreyJapan2026-08-04Feltz Printing Service NEGOTIATION95Ioni Bowcher
1017Murillo P SaylorsArgentina2026-08-05Buckley Miller Wright QUALIFIED21Asiya Javayant
1018Jones P FollerJapan2026-08-23Dorl, James J Esq NEGOTIATION85Elwin Sharvill
1019Smith V MaletCanada2026-08-12Printing Dimensions NEW53Stephen Shaw
1020Arvin C SergiArgentina2026-08-08Rangoni Of Florence NEGOTIATION80Amy Elsner
1021Maisha V ShinkoBrazil2026-08-26King, Christopher A Esq NEGOTIATION74Elwin Sharvill
1022Adams T BologniaJapan2026-08-25Rangoni Of Florence NEGOTIATION21Elwin Sharvill
1023Chavez J VocelkaSpain2026-08-16Chemel, James L Cpa PROPOSAL59Ioni Bowcher
1024Arvin V RimRussia2026-08-17Chapman, Ross E Esq NEW79Ioni Bowcher
1025Clifford P IturbideGermany2026-08-02Printing Dimensions QUALIFIED19Xuxue Feng
1026Ivar C DoeUnited Kingdom2026-08-19Dorl, James J Esq QUALIFIED22Ivan Magalhaes
1027Wickens O NickaItaly2026-08-01Morlong Associates NEW11Ivan Magalhaes
1028Ivar L RimJapan2026-08-18Truhlar And Truhlar Attys RENEWAL49Asiya Javayant
1029Clifford X CaldareraRussia2026-08-12Rousseaux, Michael Esq QUALIFIED69Ioni Bowcher
1030Sinclair L GillianAustralia2026-08-14Buckley Miller Wright UNQUALIFIED7Stephen Shaw
1031Francesco Z KuskoIndia2026-08-14Rousseaux, Michael Esq NEW38Ioni Bowcher
1032Aruna V RimCanada2026-08-18King, Christopher A Esq NEW37Elwin Sharvill
1033Antonio O FollerItaly2026-08-08Rousseaux, Michael Esq RENEWAL59Asiya Javayant
1034Adams H ButtCanada2026-08-16Rangoni Of Florence NEW93Stephen Shaw
1035Alejandro K DilliardAustralia2026-08-10Truhlar And Truhlar Attys UNQUALIFIED34Asiya Javayant
1036Misaki M TollnerRussia2026-08-23Commercial Press NEW55Xuxue Feng
1037Arvin F SchemmerAustralia2026-08-26King, Christopher A Esq RENEWAL93Ioni Bowcher
1038Greenwood X MaletAustralia2026-08-05Chapman, Ross E Esq NEGOTIATION32Xuxue Feng
1039Murillo V FigeroaFrance2026-08-16Feltz Printing Service QUALIFIED44Amy Elsner
1040Munro J NestleJapan2026-08-04Commercial Press QUALIFIED27Amy Elsner
1041Morrow W PaprockiUnited Kingdom2026-08-25Commercial Press UNQUALIFIED91Asiya Javayant
1042Tony O CaldareraGermany2026-08-17Chemel, James L Cpa NEW33Stephen Shaw
1043Maisha Z KuskoArgentina2026-07-31Buckley Miller Wright NEGOTIATION1Elwin Sharvill
1044Greenwood P DoeFrance2026-08-01Chapman, Ross E Esq NEGOTIATION28Elwin Sharvill
1045Izzy U CaldareraArgentina2026-08-03Rangoni Of Florence QUALIFIED77Anna Fali
1046Leon H OldroydRussia2026-08-04King, Christopher A Esq NEGOTIATION71Anna Fali
1047Maisha G RoysterAustralia2026-08-09Feiner Bros NEGOTIATION83Anna Fali
1048Francesco Q IturbideArgentina2026-08-07Buckley Miller Wright UNQUALIFIED94Anna Fali
1049Claire S WhobreyBrazil2026-08-06Rousseaux, Michael Esq QUALIFIED38Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kadeem L NickaItalyIvan Magalhaes NEW
Deepesh K ShinkoRussiaAsiya Javayant UNQUALIFIED
Deepesh V RulapaughSpainAsiya Javayant PROPOSAL
Misaki D DarakjyIndiaStephen Shaw RENEWAL
Munro H RutaUnited KingdomIoni Bowcher PROPOSAL
Chavez D RutaGermanyElwin Sharvill NEGOTIATION
Mayumi Z GlickSpainAsiya Javayant NEW
Smith N GauchoAustraliaOnyama Limba NEGOTIATION
Antonio O CampainGermanyStephen Shaw UNQUALIFIED
Mayumi V MaletGermanyElwin Sharvill RENEWAL
Antonio K DilliardBrazilOnyama Limba QUALIFIED
Clifford I DarakjyArgentinaIvan Magalhaes RENEWAL
Kaitlin B VocelkaGermanyOnyama Limba NEW
Nicolas P SergiBrazilIvan Magalhaes NEGOTIATION
Leja M CampainArgentinaOnyama Limba UNQUALIFIED
Mayumi I FlosiCanadaIoni Bowcher NEGOTIATION
Juan V TollnerBrazilOnyama Limba PROPOSAL
Isabel C BologniaItalyAmy Elsner NEGOTIATION
Jeanfrancois R WaycottSpainIvan Magalhaes QUALIFIED
Sinclair A WaycottJapanIvan Magalhaes UNQUALIFIED
Ashley F SaylorsBrazilAnna Fali QUALIFIED
Isabel D ShinkoBrazilXuxue Feng UNQUALIFIED
Antonio F FollerRussiaBernardo Dominic NEW
David Y SaylorsRussiaStephen Shaw UNQUALIFIED
Greenwood L GlickItalyXuxue Feng UNQUALIFIED
Leja N DarakjyRussiaXuxue Feng PROPOSAL
Silvio G MarrierCanadaStephen Shaw NEGOTIATION
Sinclair P TollnerRussiaBernardo Dominic PROPOSAL
David F TollnerBrazilOnyama Limba NEGOTIATION
Tony W SchemmerGermanyAsiya Javayant RENEWAL
Sinclair W MaletSpainStephen Shaw RENEWAL
Leon H FollerItalyElwin Sharvill RENEWAL
Francesco C FollerGermanyXuxue Feng NEW
Maria W IturbideSpainStephen Shaw UNQUALIFIED
Clifford B StensethJapanBernardo Dominic PROPOSAL
Chavez C OstroskyUnited KingdomAmy Elsner RENEWAL
Salvatore W MaletAustraliaOnyama Limba RENEWAL
Chavez G NestleItalyIvan Magalhaes PROPOSAL
Tony L GarufiBrazilAnna Fali RENEWAL
James B MarrierSpainElwin Sharvill NEGOTIATION
Morrow Q CampainItalyOnyama Limba QUALIFIED
Jones O MaletSpainStephen Shaw RENEWAL
David N FigeroaJapanIvan Magalhaes QUALIFIED
Darci E WieserRussiaOnyama Limba NEW
James W MorascaSpainAmy Elsner UNQUALIFIED
Stacey A WieserGermanyIvan Magalhaes QUALIFIED
Jennifer B WieserUnited KingdomBernardo Dominic NEGOTIATION
Faith W MacleadItalyIoni Bowcher NEW
Emily X RoysterSpainAsiya Javayant NEW
Johnson R BriddickJapanBernardo Dominic RENEWAL
Frozen Columns
Name
Faith Y Rim
Wickens S Amigon
Jones O Tollner
Antonio U Dilliard
Isabel W Figeroa
Octavia C Poquette
Isabel J Shinko
Cody I Waycott
Silvio D Doe
Mayumi D Royster
Maisha J Campain
Adams K Oldroyd
Faith H Paprocki
Aditya X Bolognia
Octavia Y Foller
Ashley A Briddick
Aruna N Campain
Munro Q Amigon
Darci W Caudy
Mujtaba B Butt
Izzy I Sergi
David J Inouye
Jeanfrancois G Nestle
Emily G Kusko
Alejandro Y Schemmer
Alejandro W Iturbide
Murillo R Bowley
Smith W Chui
Rodrigues Y Stenseth
Maisha P Bolognia
Clifford X Garufi
Nicolas M Vocelka
Johnson A Kusko
Darci E Darakjy
Julie A Tollner
Aditya D Malet
Aika T Ferencz
Darci D Doe
Aruna X Glick
Munro H Briddick
Costa X Rulapaugh
Morrow G Vocelka
Maria N Inouye
Morrow L Paprocki
Mujtaba F Poquette
Arvin Z Slusarski
Jeanfrancois H Slusarski
Julie C Foller
James C Butt
Murillo Q Stenseth
IdCountryDate
1000Japan2026-08-02
1001India2026-08-21
1002United Kingdom2026-08-04
1003Brazil2026-08-21
1004France2026-08-12
1005Australia2026-08-19
1006Argentina2026-08-05
1007Italy2026-08-19
1008Brazil2026-08-16
1009Brazil2026-08-15
1010Australia2026-08-06
1011Russia2026-08-19
1012Argentina2026-08-23
1013Spain2026-08-26
1014Italy2026-08-24
1015France2026-07-31
1016Russia2026-08-13
1017United Kingdom2026-08-21
1018Canada2026-08-03
1019Spain2026-08-04
1020Japan2026-08-18
1021India2026-08-14
1022Spain2026-08-13
1023Russia2026-08-19
1024Australia2026-07-30
1025Argentina2026-08-26
1026Brazil2026-08-19
1027Canada2026-08-25
1028Italy2026-08-11
1029Spain2026-08-22
1030Russia2026-08-05
1031United Kingdom2026-08-01
1032Russia2026-08-16
1033France2026-08-12
1034France2026-08-11
1035Japan2026-08-22
1036Australia2026-08-01
1037Russia2026-08-01
1038Canada2026-08-16
1039Brazil2026-08-27
1040Italy2026-08-03
1041Brazil2026-08-22
1042Italy2026-07-31
1043Australia2026-07-29
1044Argentina2026-08-11
1045Russia2026-07-31
1046France2026-08-17
1047United Kingdom2026-08-11
1048Italy2026-08-06
1049Brazil2026-07-31

On-Demand Data

NameIdCountryDate
Faith B Gaucho1000Argentina2026-08-20
Isabel A Malet1001Germany2026-08-08
Juan L Waycott1002Germany2026-08-06
Jennifer F Poquette1003Italy2026-08-10
Jennifer G Gillian1004Germany2026-08-23
Greenwood A Foller1005Brazil2026-08-25
Jennifer P Wieser1006Brazil2026-08-26
Octavia C Kusko1007United Kingdom2026-08-15
Isabel P Ferencz1008Russia2026-08-04
Rodrigues X Sergi1009Japan2026-08-16
Silvio G Sergi1010Canada2026-08-09
Smith P Paprocki1011India2026-08-24
Aruna F Gillian1012France2026-08-23
Jennifer T Nicka1013Australia2026-08-08
Ricardo J Iturbide1014Italy2026-08-16
Maisha C Bolognia1015Brazil2026-08-07
Julie Z Rulapaugh1016Germany2026-08-11
Aika L Figeroa1017Argentina2026-08-11
Sinclair L Kusko1018Argentina2026-08-02
Smith Y Rulapaugh1019Canada2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith C BologniaItalyElwin Sharvill NEGOTIATION
Leja G TollnerCanadaAnna Fali NEW
Clifford I MacleadGermanyOnyama Limba UNQUALIFIED
Ricardo S ChuiItalyElwin Sharvill QUALIFIED
Ricardo B KuskoIndiaElwin Sharvill RENEWAL
Jennifer S CaudyJapanBernardo Dominic UNQUALIFIED
Mujtaba L KuskoItalyBernardo Dominic UNQUALIFIED
Costa R VenereJapanStephen Shaw RENEWAL
Deepesh L CaldareraUnited KingdomBernardo Dominic NEW
Costa T RoysterAustraliaXuxue Feng NEGOTIATION
Antonio Z MaletGermanyBernardo Dominic RENEWAL
Octavia Y RoysterCanadaStephen Shaw NEW
Juan Z AmigonUnited KingdomElwin Sharvill QUALIFIED
Leon J AlbaresUnited KingdomIoni Bowcher QUALIFIED
Alejandro I DarakjyUnited KingdomAmy Elsner PROPOSAL
Maisha M PaprockiCanadaElwin Sharvill NEW
Claire Y GauchoJapanStephen Shaw QUALIFIED
Maisha X BowleyArgentinaOnyama Limba NEW
Claire R SergiIndiaIoni Bowcher UNQUALIFIED
James X RimRussiaBernardo Dominic NEW
Munro Z WaycottArgentinaBernardo Dominic PROPOSAL
Clifford V CaudyJapanIvan Magalhaes PROPOSAL
Johnson D SergiBrazilAsiya Javayant UNQUALIFIED
Aika B VocelkaSpainAmy Elsner PROPOSAL
Maria R FerenczGermanyAsiya Javayant UNQUALIFIED
Arvin I CaudyUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba X SlusarskiItalyAsiya Javayant NEW
Mujtaba A VocelkaJapanElwin Sharvill RENEWAL
Clifford T InouyeAustraliaIvan Magalhaes RENEWAL
Smith O CaudyBrazilXuxue Feng UNQUALIFIED
Tony S SlusarskiArgentinaBernardo Dominic NEW
Stacey X WieserItalyBernardo Dominic QUALIFIED
Silvio C CampainSpainElwin Sharvill NEGOTIATION
Jeanfrancois A DoeArgentinaAmy Elsner RENEWAL
Faith N RulapaughItalyOnyama Limba QUALIFIED
Alejandro S DarakjyArgentinaXuxue Feng NEW
Deepesh L WieserFranceAmy Elsner NEGOTIATION
Ricardo V WieserGermanyIvan Magalhaes NEW
Octavia W CampainJapanOnyama Limba NEGOTIATION
Silvio Y BologniaItalyAnna Fali 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>