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
Sinclair J GillianSpainStephen Shaw RENEWAL
Jones Q GarufiFranceAsiya Javayant QUALIFIED
Leon J OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Aditya J FollerBrazilAnna Fali NEGOTIATION
Cody O MarrierGermanyIvan Magalhaes PROPOSAL
Leja Q GlickGermanyIvan Magalhaes PROPOSAL
Leon Y ButtSpainStephen Shaw QUALIFIED
Stacey N FollerBrazilAsiya Javayant QUALIFIED
Chavez C CampainBrazilElwin Sharvill QUALIFIED
Juan E CaudyAustraliaStephen Shaw PROPOSAL
Mujtaba Z RutaFranceStephen Shaw NEW
Misaki S InouyeItalyOnyama Limba PROPOSAL
Tony G ButtJapanAmy Elsner UNQUALIFIED
Mayumi T MarrierArgentinaElwin Sharvill RENEWAL
Rodrigues Y WieserFranceIvan Magalhaes NEW
Rodrigues N ShinkoRussiaBernardo Dominic NEGOTIATION
Jefferson O CaudyUnited KingdomXuxue Feng NEGOTIATION
Faith N StockhamFranceBernardo Dominic PROPOSAL
Faith T AmigonUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer A FollerAustraliaStephen Shaw RENEWAL
Antonio O MaletFranceIvan Magalhaes UNQUALIFIED
Mujtaba A SergiGermanyOnyama Limba RENEWAL
David A VocelkaGermanyBernardo Dominic UNQUALIFIED
Deepesh U RimCanadaIoni Bowcher NEGOTIATION
Ivar X SergiRussiaOnyama Limba UNQUALIFIED
Maria T MorascaCanadaIoni Bowcher UNQUALIFIED
Nicolas D GauchoBrazilIoni Bowcher NEW
Adams V KuskoArgentinaIoni Bowcher QUALIFIED
Salvatore H RimIndiaAsiya Javayant RENEWAL
Misaki T SaylorsAustraliaBernardo Dominic QUALIFIED
Deepesh L TollnerSpainXuxue Feng RENEWAL
Greenwood S MarrierAustraliaAmy Elsner QUALIFIED
Julie B RutaArgentinaAsiya Javayant QUALIFIED
Francesco F FerenczFranceStephen Shaw NEW
Jennifer V StensethJapanBernardo Dominic QUALIFIED
Munro L RoysterCanadaIvan Magalhaes UNQUALIFIED
Costa N SergiUnited KingdomBernardo Dominic NEGOTIATION
Alejandro L WhobreyItalyBernardo Dominic PROPOSAL
Sinclair H IturbideJapanOnyama Limba RENEWAL
Jeanfrancois T StockhamUnited KingdomStephen Shaw NEGOTIATION
Izzy H IturbideItalyAsiya Javayant NEW
Clifford P TollnerIndiaAnna Fali RENEWAL
Wickens Y KolmetzRussiaElwin Sharvill NEW
Emily N KolmetzRussiaOnyama Limba NEW
Maria C GauchoItalyAmy Elsner UNQUALIFIED
Clifford O VenereRussiaBernardo Dominic NEW
Leon S VocelkaRussiaIvan Magalhaes NEW
Sinclair R MaletItalyElwin Sharvill NEGOTIATION
Murillo T FigeroaJapanIoni Bowcher QUALIFIED
Johnson Y WhobreyJapanIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Leon E GlickGermanyAsiya Javayant RENEWAL
Deepesh D RimRussiaXuxue Feng QUALIFIED
David M VocelkaUnited KingdomAmy Elsner QUALIFIED
Munro S FerenczItalyIvan Magalhaes NEGOTIATION
Octavia E ChuiCanadaBernardo Dominic NEGOTIATION
Maisha V VocelkaJapanIoni Bowcher NEGOTIATION
Ricardo H VenereItalyOnyama Limba PROPOSAL
David U PaprockiUnited KingdomAnna Fali RENEWAL
Isabel E AmigonArgentinaIvan Magalhaes UNQUALIFIED
Maria U MorascaIndiaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley O SaylorsItaly2026-07-07Feltz Printing Service NEGOTIATION55Ivan Magalhaes
1001Alejandro D BriddickUnited Kingdom2026-07-27Morlong Associates UNQUALIFIED68Stephen Shaw
1002Juan C MacleadBrazil2026-07-18Truhlar And Truhlar Attys NEGOTIATION0Elwin Sharvill
1003Octavia F MaletAustralia2026-07-22Chapman, Ross E Esq RENEWAL69Ivan Magalhaes
1004Cody E OldroydSpain2026-07-25Chanay, Jeffrey A Esq NEGOTIATION81Onyama Limba
1005Mujtaba N FlosiArgentina2026-07-20Buckley Miller Wright QUALIFIED65Xuxue Feng
1006Clifford O SaylorsBrazil2026-07-20Chemel, James L Cpa NEGOTIATION59Amy Elsner
1007Tony D OstroskyJapan2026-07-02King, Christopher A Esq NEGOTIATION58Stephen Shaw
1008Greenwood K MarrierFrance2026-07-02Rousseaux, Michael Esq PROPOSAL25Onyama Limba
1009Arvin U WaycottJapan2026-07-22Dorl, James J Esq QUALIFIED71Anna Fali
1010Rodrigues R RimItaly2026-07-24Benton, John B Jr QUALIFIED95Ivan Magalhaes
1011Kaitlin K BriddickBrazil2026-07-17Printing Dimensions PROPOSAL19Ivan Magalhaes
1012Chavez I OldroydFrance2026-07-21Chemel, James L Cpa PROPOSAL5Xuxue Feng
1013Kadeem I AlbaresCanada2026-07-03Benton, John B Jr NEGOTIATION72Anna Fali
1014Jefferson H FlosiCanada2026-07-09Buckley Miller Wright PROPOSAL48Amy Elsner
1015Murillo L PerinItaly2026-07-17King, Christopher A Esq QUALIFIED7Stephen Shaw
1016Jefferson O FerenczGermany2026-07-28Printing Dimensions QUALIFIED22Asiya Javayant
1017Misaki U PaprockiSpain2026-07-21Chapman, Ross E Esq NEW45Stephen Shaw
1018Emily K AmigonJapan2026-07-03Chapman, Ross E Esq QUALIFIED1Xuxue Feng
1019Stacey E SlusarskiFrance2026-07-12Rousseaux, Michael Esq NEGOTIATION8Onyama Limba
1020Cody L DilliardSpain2026-07-05Rousseaux, Michael Esq NEGOTIATION30Amy Elsner
1021Morrow I KolmetzJapan2026-07-07Rousseaux, Michael Esq NEGOTIATION71Asiya Javayant
1022Smith P GauchoGermany2026-07-12Rousseaux, Michael Esq QUALIFIED75Ivan Magalhaes
1023Costa H DoeAustralia2026-07-08Chemel, James L Cpa PROPOSAL76Onyama Limba
1024Emily I BologniaGermany2026-07-11Benton, John B Jr UNQUALIFIED40Xuxue Feng
1025Aditya C DilliardGermany2026-07-20King, Christopher A Esq UNQUALIFIED83Amy Elsner
1026Ricardo Z VocelkaJapan2026-07-23Truhlar And Truhlar Attys UNQUALIFIED54Bernardo Dominic
1027Johnson D StockhamIndia2026-07-16Morlong Associates RENEWAL33Xuxue Feng
1028Jones X MorascaArgentina2026-07-22Commercial Press UNQUALIFIED60Asiya Javayant
1029Munro O PerinSpain2026-07-24King, Christopher A Esq RENEWAL8Anna Fali
1030Antonio L PoquetteItaly2026-07-28Benton, John B Jr UNQUALIFIED54Elwin Sharvill
1031Jennifer Z TollnerIndia2026-07-04Chanay, Jeffrey A Esq NEGOTIATION2Stephen Shaw
1032Adams O FerenczRussia2026-07-28Chemel, James L Cpa PROPOSAL65Asiya Javayant
1033Misaki H PaprockiCanada2026-07-03Chapman, Ross E Esq PROPOSAL25Xuxue Feng
1034David T NestleItaly2026-07-29King, Christopher A Esq RENEWAL57Xuxue Feng
1035Maria C RoysterRussia2026-07-09Benton, John B Jr RENEWAL47Xuxue Feng
1036Stacey X FigeroaArgentina2026-07-29Rangoni Of Florence QUALIFIED80Asiya Javayant
1037Sinclair Y DarakjyAustralia2026-07-25Truhlar And Truhlar Attys UNQUALIFIED20Onyama Limba
1038Rodrigues G NickaJapan2026-07-13Rousseaux, Michael Esq NEW77Stephen Shaw
1039Aditya J PerinGermany2026-07-25Commercial Press NEW50Elwin Sharvill
1040Aruna J PerinRussia2026-07-21Chemel, James L Cpa QUALIFIED90Anna Fali
1041Kadeem D FlosiUnited Kingdom2026-07-02Printing Dimensions PROPOSAL78Amy Elsner
1042Emily P MarrierAustralia2026-07-12Truhlar And Truhlar Attys NEGOTIATION4Xuxue Feng
1043Silvio G IturbideJapan2026-07-30Rousseaux, Michael Esq UNQUALIFIED89Ioni Bowcher
1044Jennifer Y OldroydGermany2026-07-07Chanay, Jeffrey A Esq NEGOTIATION40Onyama Limba
1045Maria D VocelkaCanada2026-07-30Benton, John B Jr RENEWAL17Anna Fali
1046Nicolas T StensethUnited Kingdom2026-07-22King, Christopher A Esq QUALIFIED38Anna Fali
1047Juan X PaprockiArgentina2026-07-15Chemel, James L Cpa NEW19Ivan Magalhaes
1048Mayumi P GlickIndia2026-07-07Chapman, Ross E Esq PROPOSAL82Anna Fali
1049Clifford K VocelkaSpain2026-07-23Chapman, Ross E Esq NEW11Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
James S KuskoRussiaIoni Bowcher UNQUALIFIED
Isabel Q BowleyIndiaIoni Bowcher RENEWAL
Alejandro B StockhamFranceXuxue Feng NEW
Cody J CaldareraIndiaOnyama Limba NEGOTIATION
James A OldroydIndiaIoni Bowcher NEGOTIATION
Nicolas Y DilliardSpainStephen Shaw QUALIFIED
Octavia E NestleRussiaAsiya Javayant QUALIFIED
Aditya V NickaIndiaXuxue Feng QUALIFIED
Mujtaba T OstroskyFranceIvan Magalhaes UNQUALIFIED
Costa W CaudyGermanyAmy Elsner NEGOTIATION
Misaki D BologniaAustraliaOnyama Limba NEGOTIATION
Leon D InouyeGermanyStephen Shaw NEGOTIATION
Mayumi Z PoquetteAustraliaAmy Elsner QUALIFIED
Aruna T VocelkaAustraliaAmy Elsner NEW
Ivar Y OldroydJapanStephen Shaw QUALIFIED
Arvin I SaylorsIndiaXuxue Feng NEW
Faith F SlusarskiGermanyBernardo Dominic NEGOTIATION
Salvatore S VocelkaJapanIvan Magalhaes PROPOSAL
Maria Q KolmetzSpainAnna Fali PROPOSAL
Cody E PerinGermanyBernardo Dominic NEW
Murillo D RoysterCanadaStephen Shaw RENEWAL
Alejandro D WieserCanadaStephen Shaw NEW
Deepesh E PaprockiCanadaAnna Fali PROPOSAL
Jones Y RutaSpainOnyama Limba RENEWAL
Isabel R RoysterArgentinaAnna Fali PROPOSAL
Claire E FigeroaRussiaBernardo Dominic RENEWAL
Salvatore K CampainAustraliaAsiya Javayant PROPOSAL
Clifford E WieserAustraliaXuxue Feng QUALIFIED
Emily P NickaFranceOnyama Limba NEW
Misaki V DilliardAustraliaAnna Fali NEGOTIATION
Ricardo M MacleadGermanyAnna Fali NEW
Maisha Y KuskoJapanXuxue Feng PROPOSAL
Mujtaba K ChuiJapanElwin Sharvill NEW
Juan V PaprockiRussiaElwin Sharvill RENEWAL
Sinclair Z DoeJapanOnyama Limba NEGOTIATION
Misaki P KuskoCanadaOnyama Limba PROPOSAL
Nicolas R ButtRussiaAmy Elsner NEW
Morrow B TollnerCanadaAnna Fali PROPOSAL
Leja Z NestleIndiaIoni Bowcher NEGOTIATION
Kaitlin C ButtBrazilXuxue Feng RENEWAL
Silvio K StockhamFranceIvan Magalhaes QUALIFIED
Aruna I CaudyGermanyAsiya Javayant QUALIFIED
Antonio T GillianItalyAmy Elsner PROPOSAL
Silvio N OstroskyBrazilElwin Sharvill RENEWAL
Mujtaba L GlickArgentinaElwin Sharvill RENEWAL
Aika Z OstroskyJapanOnyama Limba UNQUALIFIED
Clifford C MarrierFranceIoni Bowcher RENEWAL
Jones T WieserFranceAsiya Javayant NEW
Izzy U FlosiJapanIoni Bowcher UNQUALIFIED
Clifford C FlosiSpainXuxue Feng QUALIFIED
Frozen Columns
Name
Maisha G Albares
James V Flosi
Alejandro D Wieser
Johnson F Sergi
Leja Q Tollner
Jeanfrancois S Ruta
Jeanfrancois R Chui
Adams Q Tollner
Isabel H Flosi
Jones N Iturbide
Aika B Paprocki
Rodrigues G Ostrosky
Maisha R Darakjy
David R Ferencz
Aruna T Malet
Cody U Glick
Ricardo E Amigon
Alejandro U Gaucho
Wickens S Foller
Octavia I Caldarera
Mayumi N Rulapaugh
Aditya Q Venere
Antonio V Ostrosky
Claire L Garufi
Alejandro S Gaucho
Jennifer G Perin
Faith C Campain
Isabel S Iturbide
Morrow P Gaucho
Murillo E Glick
Johnson M Shinko
Jennifer I Oldroyd
Misaki X Nicka
Ivar M Morasca
Cody I Wieser
Misaki M Paprocki
Faith S Paprocki
Antonio R Inouye
Ricardo S Wieser
Chavez W Flosi
Maria G Ruta
Claire X Royster
Mayumi D Sergi
Deepesh W Inouye
Julie X Venere
Costa F Wieser
Munro J Kolmetz
Salvatore U Bolognia
Claire K Royster
Aditya F Campain
IdCountryDate
1000Brazil2026-07-28
1001Brazil2026-07-08
1002Spain2026-07-26
1003Japan2026-07-25
1004Brazil2026-07-17
1005India2026-07-27
1006Germany2026-07-18
1007Japan2026-07-24
1008India2026-07-29
1009Russia2026-07-21
1010Canada2026-07-25
1011Russia2026-07-14
1012India2026-07-24
1013Germany2026-07-21
1014Japan2026-07-18
1015Japan2026-07-21
1016Italy2026-07-28
1017Canada2026-07-16
1018Brazil2026-07-20
1019Australia2026-07-24
1020Australia2026-07-05
1021Canada2026-07-29
1022Brazil2026-07-26
1023Germany2026-07-03
1024Germany2026-07-26
1025France2026-07-15
1026Russia2026-07-31
1027Canada2026-07-29
1028India2026-07-09
1029Argentina2026-07-25
1030Italy2026-07-14
1031Japan2026-07-17
1032Brazil2026-07-11
1033Argentina2026-07-20
1034Brazil2026-07-10
1035Canada2026-07-25
1036United Kingdom2026-07-09
1037Brazil2026-07-04
1038Argentina2026-07-25
1039Russia2026-07-21
1040Germany2026-07-12
1041Italy2026-07-09
1042India2026-07-02
1043Argentina2026-07-31
1044Russia2026-07-24
1045Spain2026-07-16
1046Japan2026-07-27
1047Canada2026-07-09
1048Australia2026-07-17
1049Brazil2026-07-25

On-Demand Data

NameIdCountryDate
Maisha N Royster1000Brazil2026-07-25
Mujtaba R Figeroa1001India2026-07-25
Ivar W Foller1002United Kingdom2026-07-08
Munro B Figeroa1003Germany2026-07-18
Costa S Ostrosky1004Germany2026-07-22
Juan L Butt1005France2026-07-18
Salvatore W Morasca1006Brazil2026-07-19
Maria H Bolognia1007United Kingdom2026-07-10
Leja V Morasca1008Russia2026-07-13
Johnson D Tollner1009France2026-07-16
Rodrigues S Ferencz1010India2026-07-21
Jefferson T Bowley1011France2026-07-17
Costa L Bowley1012United Kingdom2026-07-07
Jones S Morasca1013Germany2026-07-12
Tony H Poquette1014Russia2026-07-07
Leon O Figeroa1015Japan2026-07-10
Wickens K Paprocki1016Australia2026-07-02
Maisha T Morasca1017Japan2026-07-28
Stacey L Bowley1018Russia2026-07-24
Sinclair B Tollner1019Germany2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson Y OstroskySpainAsiya Javayant NEGOTIATION
Alejandro W TollnerArgentinaOnyama Limba QUALIFIED
Smith Z MorascaArgentinaIoni Bowcher NEW
Antonio K BologniaGermanyBernardo Dominic NEW
Claire D GillianGermanyOnyama Limba NEW
Francesco I PaprockiArgentinaAmy Elsner QUALIFIED
Ivar D CaldareraSpainBernardo Dominic UNQUALIFIED
Maisha J BriddickSpainAmy Elsner RENEWAL
Ivar M RutaFranceAmy Elsner RENEWAL
Nicolas Y MacleadUnited KingdomStephen Shaw PROPOSAL
Deepesh Z WieserGermanyOnyama Limba UNQUALIFIED
Wickens I SergiCanadaIvan Magalhaes UNQUALIFIED
Julie T PoquetteCanadaStephen Shaw RENEWAL
Isabel C VocelkaCanadaIoni Bowcher NEGOTIATION
Salvatore H GarufiAustraliaAmy Elsner PROPOSAL
Alejandro H StensethIndiaIoni Bowcher QUALIFIED
Morrow W CaldareraUnited KingdomIvan Magalhaes NEGOTIATION
Arvin P SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Tony O RimSpainIvan Magalhaes PROPOSAL
Mujtaba O WieserCanadaBernardo Dominic PROPOSAL
Julie M CampainIndiaIoni Bowcher RENEWAL
Emily Y RoysterArgentinaIoni Bowcher PROPOSAL
Munro V SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Darci D BriddickAustraliaBernardo Dominic QUALIFIED
Faith Z CaudyIndiaAsiya Javayant RENEWAL
Adams G KuskoGermanyBernardo Dominic NEGOTIATION
Aruna P AmigonGermanyBernardo Dominic RENEWAL
Murillo O MaletAustraliaStephen Shaw UNQUALIFIED
Tony O CaudyJapanAmy Elsner NEW
Leja E VenereRussiaStephen Shaw PROPOSAL
Johnson Y StensethUnited KingdomBernardo Dominic PROPOSAL
Tony S GauchoItalyStephen Shaw RENEWAL
Chavez H IturbideRussiaIvan Magalhaes UNQUALIFIED
Adams B ChuiIndiaAmy Elsner PROPOSAL
Jefferson J BriddickGermanyAnna Fali PROPOSAL
Sinclair E CaldareraIndiaStephen Shaw NEGOTIATION
Adams K IturbideSpainIoni Bowcher RENEWAL
Darci W SergiFranceStephen Shaw NEGOTIATION
Ivar D AlbaresFranceXuxue Feng UNQUALIFIED
Jeanfrancois I MarrierIndiaElwin Sharvill RENEWAL

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