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
Chavez I MorascaArgentinaStephen Shaw QUALIFIED
Mayumi Y DarakjyBrazilIvan Magalhaes UNQUALIFIED
Greenwood D InouyeUnited KingdomElwin Sharvill NEGOTIATION
Chavez H AlbaresJapanBernardo Dominic QUALIFIED
Smith R DarakjyUnited KingdomIoni Bowcher NEW
Costa S RimFranceXuxue Feng UNQUALIFIED
Ricardo Y BowleyAustraliaAmy Elsner QUALIFIED
Emily B KuskoIndiaAnna Fali QUALIFIED
Faith C StensethGermanyXuxue Feng QUALIFIED
Francesco H MaletFranceAnna Fali NEW
Aruna V AlbaresCanadaOnyama Limba QUALIFIED
Isabel Z KuskoFranceAsiya Javayant QUALIFIED
Kaitlin C MaletCanadaBernardo Dominic NEW
Faith B FlosiRussiaIvan Magalhaes RENEWAL
Deepesh I FerenczIndiaBernardo Dominic PROPOSAL
Adams B RulapaughIndiaXuxue Feng NEGOTIATION
Deepesh B CaudyCanadaOnyama Limba NEW
Jennifer A CaldareraUnited KingdomXuxue Feng QUALIFIED
Costa K SergiJapanBernardo Dominic UNQUALIFIED
Nicolas F KuskoCanadaBernardo Dominic NEW
Juan Y DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Antonio N GillianArgentinaIvan Magalhaes PROPOSAL
Aruna W AlbaresItalyXuxue Feng QUALIFIED
James A ButtJapanBernardo Dominic NEW
Arvin O MacleadSpainStephen Shaw PROPOSAL
Salvatore B OldroydBrazilXuxue Feng QUALIFIED
Smith S VenereCanadaXuxue Feng UNQUALIFIED
Francesco G WaycottJapanElwin Sharvill NEGOTIATION
Chavez D SlusarskiRussiaElwin Sharvill NEW
Wickens D SchemmerFranceElwin Sharvill UNQUALIFIED
Julie W RulapaughRussiaElwin Sharvill UNQUALIFIED
Leon O GarufiFranceBernardo Dominic NEW
Mujtaba L PerinGermanyAnna Fali QUALIFIED
Izzy W DarakjyArgentinaAsiya Javayant NEW
David J SergiGermanyXuxue Feng PROPOSAL
Salvatore X MorascaAustraliaAmy Elsner RENEWAL
Sinclair X DoeIndiaXuxue Feng NEGOTIATION
Clifford E ShinkoJapanIoni Bowcher NEW
Darci U FerenczSpainAmy Elsner PROPOSAL
Costa H KolmetzUnited KingdomStephen Shaw PROPOSAL
Alejandro Y MacleadBrazilIvan Magalhaes PROPOSAL
James M KolmetzSpainStephen Shaw UNQUALIFIED
Sinclair H RutaJapanIoni Bowcher QUALIFIED
Wickens W FerenczGermanyAsiya Javayant NEW
Sinclair Z VocelkaCanadaBernardo Dominic QUALIFIED
Francesco T CaldareraIndiaElwin Sharvill PROPOSAL
Kaitlin G PaprockiRussiaOnyama Limba RENEWAL
Jennifer V IturbideAustraliaIoni Bowcher NEW
Stacey X ButtJapanAmy Elsner RENEWAL
Maria X KuskoArgentinaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones I CampainUnited KingdomIvan Magalhaes RENEWAL
Octavia K BologniaFranceOnyama Limba RENEWAL
Francesco V WieserFranceStephen Shaw UNQUALIFIED
Julie V KolmetzFranceAnna Fali PROPOSAL
Greenwood Q BologniaBrazilBernardo Dominic RENEWAL
Mayumi F GarufiArgentinaOnyama Limba NEW
Adams H TollnerRussiaAsiya Javayant RENEWAL
Tony X BologniaAustraliaStephen Shaw PROPOSAL
Sinclair O ChuiRussiaAsiya Javayant QUALIFIED
James N WieserUnited KingdomXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki H RimCanada2026-08-01Morlong Associates QUALIFIED82Bernardo Dominic
1001Ashley N BriddickFrance2026-08-01Truhlar And Truhlar Attys QUALIFIED67Elwin Sharvill
1002Rodrigues L StensethRussia2026-08-02Morlong Associates UNQUALIFIED76Anna Fali
1003Jennifer Q OstroskySpain2026-08-01Chanay, Jeffrey A Esq QUALIFIED25Stephen Shaw
1004Adams M GlickItaly2026-07-22Feiner Bros RENEWAL11Anna Fali
1005Kadeem U CaudyBrazil2026-07-17Rousseaux, Michael Esq PROPOSAL97Elwin Sharvill
1006Greenwood J MacleadGermany2026-08-02Feiner Bros QUALIFIED62Xuxue Feng
1007Misaki Y RimFrance2026-08-05Truhlar And Truhlar Attys NEW78Onyama Limba
1008Wickens K OldroydFrance2026-07-22Feiner Bros UNQUALIFIED17Amy Elsner
1009Misaki U DoeItaly2026-08-10Feltz Printing Service RENEWAL63Amy Elsner
1010Alejandro M NickaJapan2026-08-02Rangoni Of Florence NEW32Amy Elsner
1011James W WaycottJapan2026-07-16Rousseaux, Michael Esq NEGOTIATION35Onyama Limba
1012Kaitlin N InouyeCanada2026-07-22Rangoni Of Florence QUALIFIED68Ivan Magalhaes
1013Alejandro W WieserItaly2026-08-05Chapman, Ross E Esq NEGOTIATION53Ivan Magalhaes
1014Jefferson P VocelkaItaly2026-08-09Feiner Bros UNQUALIFIED68Ioni Bowcher
1015Tony J GauchoArgentina2026-08-12Commercial Press NEW13Onyama Limba
1016Faith S NickaIndia2026-07-20Commercial Press PROPOSAL13Asiya Javayant
1017Izzy U MorascaAustralia2026-07-27Feiner Bros QUALIFIED14Stephen Shaw
1018Julie E RoysterUnited Kingdom2026-08-10Feltz Printing Service QUALIFIED60Xuxue Feng
1019Munro N MorascaAustralia2026-07-19Chapman, Ross E Esq PROPOSAL25Ioni Bowcher
1020Nicolas O CaudyBrazil2026-08-04King, Christopher A Esq PROPOSAL14Ivan Magalhaes
1021Munro X ButtAustralia2026-07-23Dorl, James J Esq NEGOTIATION82Onyama Limba
1022Maisha G KuskoCanada2026-07-20Dorl, James J Esq NEGOTIATION45Ioni Bowcher
1023Jennifer X PerinArgentina2026-07-14Buckley Miller Wright PROPOSAL49Onyama Limba
1024Jones L DarakjyArgentina2026-07-24Feiner Bros UNQUALIFIED71Amy Elsner
1025Ricardo T FerenczArgentina2026-08-04King, Christopher A Esq UNQUALIFIED10Asiya Javayant
1026Mujtaba C StockhamCanada2026-07-27Commercial Press NEGOTIATION51Xuxue Feng
1027Jefferson M KuskoJapan2026-07-28Printing Dimensions RENEWAL19Onyama Limba
1028Murillo C GauchoGermany2026-08-09Printing Dimensions NEW20Onyama Limba
1029Aika E NestleRussia2026-07-19Rousseaux, Michael Esq QUALIFIED36Asiya Javayant
1030Stacey B MaletIndia2026-07-17Feltz Printing Service NEGOTIATION44Bernardo Dominic
1031Morrow R MorascaCanada2026-07-28Morlong Associates PROPOSAL46Elwin Sharvill
1032Munro K AmigonUnited Kingdom2026-07-18Truhlar And Truhlar Attys PROPOSAL64Elwin Sharvill
1033Jones X StensethIndia2026-08-09Chemel, James L Cpa NEGOTIATION24Onyama Limba
1034Kaitlin G GarufiArgentina2026-08-07Printing Dimensions RENEWAL26Bernardo Dominic
1035Costa T MaletJapan2026-07-30Printing Dimensions QUALIFIED52Bernardo Dominic
1036Salvatore C NickaGermany2026-07-16Feltz Printing Service NEW99Onyama Limba
1037Alejandro X MacleadArgentina2026-08-02Chapman, Ross E Esq PROPOSAL32Elwin Sharvill
1038Mujtaba N BowleyArgentina2026-07-26Rangoni Of Florence NEGOTIATION58Stephen Shaw
1039Greenwood M BowleyRussia2026-08-11Benton, John B Jr NEW28Asiya Javayant
1040Adams F InouyeUnited Kingdom2026-07-26Rousseaux, Michael Esq RENEWAL46Stephen Shaw
1041Kadeem I DilliardJapan2026-07-18Commercial Press PROPOSAL14Elwin Sharvill
1042Ricardo W GauchoFrance2026-07-30King, Christopher A Esq NEW33Xuxue Feng
1043Juan S ButtUnited Kingdom2026-07-20Feltz Printing Service NEW88Stephen Shaw
1044Antonio C WaycottAustralia2026-07-30Buckley Miller Wright RENEWAL96Ioni Bowcher
1045Darci M DarakjySpain2026-08-05Morlong Associates QUALIFIED82Onyama Limba
1046Kaitlin Y GarufiSpain2026-08-04Chemel, James L Cpa PROPOSAL18Xuxue Feng
1047Mayumi Y AmigonGermany2026-07-29Feiner Bros UNQUALIFIED63Elwin Sharvill
1048Tony R StockhamAustralia2026-07-18King, Christopher A Esq RENEWAL11Anna Fali
1049Arvin M NickaArgentina2026-07-16Truhlar And Truhlar Attys NEGOTIATION74Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jones V MorascaCanadaXuxue Feng RENEWAL
Ashley N SaylorsItalyXuxue Feng PROPOSAL
Aika S VocelkaBrazilBernardo Dominic NEGOTIATION
Aika Q MaletFranceElwin Sharvill RENEWAL
Wickens M CaudyItalyAmy Elsner NEGOTIATION
Jefferson O GillianUnited KingdomStephen Shaw NEGOTIATION
Greenwood X FollerRussiaAmy Elsner NEGOTIATION
Darci L NickaGermanyStephen Shaw NEW
Smith Z PaprockiJapanAsiya Javayant QUALIFIED
Aruna P AlbaresCanadaOnyama Limba NEW
Kadeem D NickaItalyIvan Magalhaes NEW
Sinclair O RulapaughRussiaIvan Magalhaes UNQUALIFIED
Kadeem K NestleIndiaAmy Elsner RENEWAL
Leon C GlickRussiaAmy Elsner NEW
Kadeem T DarakjyAustraliaXuxue Feng NEW
Arvin A FlosiIndiaStephen Shaw RENEWAL
Clifford I ShinkoSpainAsiya Javayant RENEWAL
Smith E WaycottItalyIoni Bowcher UNQUALIFIED
Munro S StensethBrazilOnyama Limba PROPOSAL
Nicolas M ShinkoJapanIoni Bowcher PROPOSAL
Jennifer B PoquetteRussiaElwin Sharvill NEGOTIATION
Antonio E CampainIndiaAmy Elsner QUALIFIED
Costa K NestleItalyBernardo Dominic RENEWAL
Arvin O FigeroaBrazilAnna Fali PROPOSAL
James K AlbaresIndiaAsiya Javayant PROPOSAL
Ricardo H FlosiSpainStephen Shaw UNQUALIFIED
Julie M RulapaughItalyAsiya Javayant NEGOTIATION
Ricardo G GarufiJapanStephen Shaw QUALIFIED
David J FollerAustraliaElwin Sharvill PROPOSAL
Kaitlin S WaycottAustraliaAsiya Javayant NEGOTIATION
Aditya B SchemmerRussiaBernardo Dominic RENEWAL
Kadeem F FigeroaCanadaAmy Elsner UNQUALIFIED
Emily C GillianUnited KingdomIoni Bowcher NEW
Aruna Q TollnerUnited KingdomXuxue Feng QUALIFIED
Emily D CampainSpainIoni Bowcher QUALIFIED
Maisha J ButtArgentinaAmy Elsner QUALIFIED
Maria C WaycottJapanAnna Fali QUALIFIED
Francesco P ShinkoFranceAmy Elsner PROPOSAL
James K NickaGermanyOnyama Limba NEGOTIATION
James F OldroydItalyAsiya Javayant UNQUALIFIED
Maisha D CaudyAustraliaOnyama Limba PROPOSAL
Ricardo R AlbaresRussiaAmy Elsner RENEWAL
Jefferson V CampainArgentinaAmy Elsner NEW
Jones X DilliardFranceAmy Elsner UNQUALIFIED
Antonio D DilliardFranceElwin Sharvill NEGOTIATION
Smith M MarrierSpainIvan Magalhaes UNQUALIFIED
Mayumi G MorascaUnited KingdomBernardo Dominic PROPOSAL
Rodrigues C KolmetzIndiaOnyama Limba UNQUALIFIED
Cody I DoeIndiaIoni Bowcher RENEWAL
Izzy I MarrierBrazilAnna Fali NEGOTIATION
Frozen Columns
Name
Arvin U Rim
Greenwood S Nestle
Aditya G Nicka
Cody Q Bowley
Arvin J Ruta
Jefferson L Iturbide
Jefferson H Shinko
Darci B Briddick
Leja G Butt
Leon X Oldroyd
Ivar B Briddick
Clifford F Oldroyd
Julie G Vocelka
Ashley W Bolognia
Emily R Flosi
David T Whobrey
Isabel K Kusko
Jennifer K Rim
Ivar V Rulapaugh
Munro S Waycott
Juan T Dilliard
Morrow S Schemmer
Mayumi A Malet
Arvin S Doe
Morrow D Stockham
Johnson S Stockham
Kaitlin A Iturbide
Octavia M Morasca
Izzy A Perin
Salvatore W Waycott
Aditya T Maclead
Jefferson S Campain
Aditya K Figeroa
Maisha K Wieser
Julie A Ferencz
Emily F Morasca
Octavia K Bowley
Jefferson C Poquette
Claire B Albares
Mayumi I Whobrey
Isabel I Shinko
Johnson Z Slusarski
Johnson A Poquette
Cody I Royster
Jennifer E Amigon
Arvin V Amigon
Aditya K Nicka
Stacey U Bolognia
Silvio I Kolmetz
Ricardo N Ostrosky
IdCountryDate
1000Russia2026-07-23
1001Australia2026-08-06
1002Canada2026-07-24
1003Australia2026-08-05
1004Germany2026-07-15
1005India2026-07-27
1006Japan2026-07-19
1007Brazil2026-07-17
1008India2026-07-26
1009Spain2026-08-08
1010Brazil2026-07-16
1011Japan2026-07-28
1012Spain2026-07-27
1013France2026-07-16
1014Italy2026-08-06
1015United Kingdom2026-08-01
1016Argentina2026-08-04
1017France2026-07-20
1018Australia2026-07-18
1019India2026-08-06
1020Russia2026-07-24
1021India2026-07-28
1022Italy2026-07-25
1023Japan2026-08-07
1024Australia2026-07-27
1025Spain2026-08-01
1026Russia2026-07-24
1027Germany2026-07-26
1028Germany2026-07-29
1029Canada2026-08-06
1030United Kingdom2026-07-21
1031India2026-08-10
1032United Kingdom2026-08-05
1033Japan2026-07-28
1034India2026-07-22
1035Brazil2026-07-16
1036Australia2026-07-17
1037France2026-08-12
1038Russia2026-07-14
1039Japan2026-07-26
1040France2026-08-12
1041Canada2026-07-20
1042Japan2026-07-28
1043Australia2026-07-19
1044Japan2026-07-18
1045United Kingdom2026-07-24
1046Germany2026-08-10
1047Italy2026-07-28
1048United Kingdom2026-07-21
1049Brazil2026-08-07

On-Demand Data

NameIdCountryDate
Aruna X Flosi1000Argentina2026-07-29
Leja M Tollner1001Argentina2026-07-23
Deepesh G Kolmetz1002India2026-08-02
Julie U Vocelka1003France2026-07-27
Silvio I Campain1004Argentina2026-08-09
Aika X Ferencz1005Canada2026-07-22
Aruna O Chui1006France2026-08-09
Smith Y Slusarski1007Argentina2026-07-29
Adams K Rim1008Russia2026-07-19
Rodrigues A Oldroyd1009France2026-07-22
Octavia S Figeroa1010Italy2026-08-07
Emily W Sergi1011France2026-07-19
Tony Q Morasca1012Brazil2026-08-06
Julie M Stockham1013India2026-08-04
Deepesh K Oldroyd1014France2026-08-07
Cody C Gaucho1015Germany2026-07-25
Clifford D Butt1016France2026-08-10
Stacey J Malet1017Russia2026-08-06
Jeanfrancois Q Saylors1018India2026-07-27
Clifford U Gillian1019Canada2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin O WieserAustraliaAmy Elsner RENEWAL
Jennifer I TollnerItalyIvan Magalhaes UNQUALIFIED
Kadeem V CaldareraItalyXuxue Feng UNQUALIFIED
Wickens S IturbideArgentinaElwin Sharvill QUALIFIED
Jefferson K BowleySpainAmy Elsner UNQUALIFIED
Nicolas M FollerCanadaAsiya Javayant RENEWAL
Mujtaba D ButtArgentinaBernardo Dominic QUALIFIED
Cody G MarrierRussiaOnyama Limba RENEWAL
Salvatore K CaldareraGermanyOnyama Limba NEGOTIATION
Maria P WieserItalyAnna Fali NEGOTIATION
Murillo V PoquetteArgentinaIoni Bowcher UNQUALIFIED
Stacey R FerenczItalyElwin Sharvill RENEWAL
Murillo X SlusarskiFranceAmy Elsner NEGOTIATION
Adams U GlickAustraliaStephen Shaw RENEWAL
Darci T ButtGermanyStephen Shaw NEGOTIATION
Salvatore R ChuiIndiaBernardo Dominic NEW
Alejandro Z VenereUnited KingdomAnna Fali UNQUALIFIED
Mayumi D MarrierJapanElwin Sharvill UNQUALIFIED
Salvatore F RimFranceBernardo Dominic QUALIFIED
Arvin Z IturbideJapanAmy Elsner NEGOTIATION
Deepesh I RulapaughSpainXuxue Feng RENEWAL
Aditya H PaprockiArgentinaElwin Sharvill RENEWAL
Maisha H DoeBrazilIvan Magalhaes RENEWAL
Aditya N ButtUnited KingdomIvan Magalhaes RENEWAL
Nicolas C DilliardIndiaAmy Elsner UNQUALIFIED
Izzy F BriddickFranceBernardo Dominic PROPOSAL
Murillo L MorascaGermanyStephen Shaw PROPOSAL
Johnson Z FollerRussiaAmy Elsner UNQUALIFIED
Jeanfrancois A GarufiUnited KingdomElwin Sharvill QUALIFIED
Smith H GillianRussiaXuxue Feng QUALIFIED
Maisha M PoquetteRussiaOnyama Limba PROPOSAL
Cody C DarakjySpainAsiya Javayant PROPOSAL
Mujtaba R WaycottAustraliaOnyama Limba QUALIFIED
Munro K MaletUnited KingdomElwin Sharvill RENEWAL
Ivar F MaletGermanyAsiya Javayant NEGOTIATION
Emily K GauchoBrazilIoni Bowcher QUALIFIED
Maisha C KolmetzAustraliaStephen Shaw NEGOTIATION
Jones V WaycottFranceAnna Fali NEW
Antonio F StockhamFranceAsiya Javayant NEGOTIATION
Morrow C GlickAustraliaBernardo Dominic QUALIFIED

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