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
Nicolas X MacleadUnited KingdomOnyama Limba UNQUALIFIED
Clifford B ChuiArgentinaElwin Sharvill RENEWAL
Antonio J GauchoUnited KingdomIoni Bowcher QUALIFIED
Adams S RoysterJapanOnyama Limba NEGOTIATION
Greenwood Z TollnerIndiaIvan Magalhaes RENEWAL
Maria W BriddickJapanAnna Fali NEW
Cody S OstroskyFranceBernardo Dominic NEW
Smith J KuskoArgentinaStephen Shaw NEW
Maria C IturbideArgentinaStephen Shaw NEGOTIATION
David B InouyeFranceElwin Sharvill QUALIFIED
Izzy O RutaAustraliaElwin Sharvill QUALIFIED
Claire P StockhamRussiaStephen Shaw UNQUALIFIED
Kadeem J GauchoCanadaElwin Sharvill PROPOSAL
Clifford G FollerIndiaOnyama Limba RENEWAL
Ricardo B BologniaJapanBernardo Dominic QUALIFIED
Adams H StensethItalyIvan Magalhaes UNQUALIFIED
Silvio N MacleadArgentinaIvan Magalhaes NEGOTIATION
Morrow K VenereUnited KingdomAsiya Javayant NEGOTIATION
Aditya H NestleCanadaElwin Sharvill RENEWAL
Aika B StockhamSpainBernardo Dominic QUALIFIED
Leja D InouyeAustraliaElwin Sharvill RENEWAL
Antonio F FollerArgentinaIoni Bowcher NEW
Leja C DoeIndiaIoni Bowcher UNQUALIFIED
Kadeem J TollnerRussiaOnyama Limba QUALIFIED
Adams T SchemmerCanadaBernardo Dominic RENEWAL
Antonio G SergiIndiaXuxue Feng UNQUALIFIED
Wickens K KuskoJapanStephen Shaw RENEWAL
Jefferson Y SchemmerRussiaXuxue Feng NEGOTIATION
Maisha C WieserUnited KingdomBernardo Dominic UNQUALIFIED
Faith X InouyeAustraliaOnyama Limba UNQUALIFIED
Aruna E SaylorsRussiaElwin Sharvill NEW
Kadeem L PaprockiCanadaOnyama Limba PROPOSAL
Ricardo B BologniaSpainAmy Elsner PROPOSAL
Jennifer H MorascaIndiaIoni Bowcher QUALIFIED
Claire D AmigonBrazilAsiya Javayant QUALIFIED
Sinclair M GauchoArgentinaAmy Elsner NEW
Julie N InouyeJapanXuxue Feng QUALIFIED
Leja F DilliardAustraliaOnyama Limba QUALIFIED
Johnson R BologniaUnited KingdomIoni Bowcher NEW
Aruna S CaudyGermanyBernardo Dominic UNQUALIFIED
Adams V CaldareraFranceIvan Magalhaes NEW
Jones P SchemmerItalyAsiya Javayant QUALIFIED
Clifford P KuskoIndiaBernardo Dominic UNQUALIFIED
Munro R GarufiBrazilOnyama Limba RENEWAL
Leon Y ShinkoAustraliaAmy Elsner QUALIFIED
Silvio B NestleArgentinaStephen Shaw QUALIFIED
Smith E MorascaAustraliaStephen Shaw NEGOTIATION
Aruna P RimJapanXuxue Feng RENEWAL
Arvin V SaylorsUnited KingdomAmy Elsner NEW
Ashley O CaudyFranceIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Antonio W BologniaJapanIoni Bowcher NEGOTIATION
Mayumi C RulapaughIndiaIoni Bowcher QUALIFIED
Faith A PaprockiRussiaOnyama Limba NEGOTIATION
Deepesh O MarrierCanadaBernardo Dominic NEW
Kadeem X InouyeCanadaAmy Elsner QUALIFIED
Jones M ButtJapanAsiya Javayant QUALIFIED
Jeanfrancois I VocelkaIndiaAsiya Javayant UNQUALIFIED
David V ChuiAustraliaIoni Bowcher NEGOTIATION
Francesco B BowleyAustraliaOnyama Limba PROPOSAL
Murillo W AmigonJapanAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens Q GauchoBrazil2026-07-09Feltz Printing Service QUALIFIED46Elwin Sharvill
1001Isabel Y DilliardIndia2026-07-02Feiner Bros QUALIFIED11Ivan Magalhaes
1002Chavez A FigeroaArgentina2026-07-10Chanay, Jeffrey A Esq RENEWAL98Amy Elsner
1003Jefferson Z KuskoArgentina2026-07-20Buckley Miller Wright NEGOTIATION10Elwin Sharvill
1004Francesco C WieserArgentina2026-07-14Chapman, Ross E Esq UNQUALIFIED27Elwin Sharvill
1005James M ChuiIndia2026-07-04Chapman, Ross E Esq RENEWAL60Bernardo Dominic
1006Murillo G TollnerCanada2026-06-29Chapman, Ross E Esq PROPOSAL50Xuxue Feng
1007Salvatore H SchemmerCanada2026-07-19Buckley Miller Wright PROPOSAL15Amy Elsner
1008Aruna D FollerGermany2026-07-20Buckley Miller Wright QUALIFIED86Ivan Magalhaes
1009Julie K SchemmerItaly2026-07-02Buckley Miller Wright PROPOSAL34Amy Elsner
1010Emily U MaletSpain2026-07-15Dorl, James J Esq NEGOTIATION90Stephen Shaw
1011Octavia L DoeAustralia2026-07-12Buckley Miller Wright NEW39Bernardo Dominic
1012Adams U WieserBrazil2026-06-27Rousseaux, Michael Esq UNQUALIFIED54Asiya Javayant
1013Jefferson R DarakjyRussia2026-07-15Chanay, Jeffrey A Esq UNQUALIFIED77Bernardo Dominic
1014Ivar M MaletAustralia2026-07-19Chapman, Ross E Esq NEW93Xuxue Feng
1015Clifford X StockhamAustralia2026-07-07Truhlar And Truhlar Attys UNQUALIFIED34Anna Fali
1016Silvio Y FerenczRussia2026-06-24Chapman, Ross E Esq QUALIFIED40Ioni Bowcher
1017Aruna O CampainItaly2026-06-25Feltz Printing Service QUALIFIED91Amy Elsner
1018Octavia C KuskoGermany2026-07-02King, Christopher A Esq RENEWAL94Stephen Shaw
1019Mujtaba M WieserRussia2026-06-27Chemel, James L Cpa PROPOSAL87Onyama Limba
1020Chavez Z DilliardGermany2026-07-04Dorl, James J Esq RENEWAL90Xuxue Feng
1021Mayumi L RulapaughRussia2026-07-23Printing Dimensions RENEWAL6Anna Fali
1022Silvio P StockhamUnited Kingdom2026-07-17Chanay, Jeffrey A Esq NEW89Onyama Limba
1023Jennifer I MarrierArgentina2026-07-08Truhlar And Truhlar Attys PROPOSAL96Onyama Limba
1024Aika V ShinkoGermany2026-06-25Feltz Printing Service UNQUALIFIED49Ioni Bowcher
1025Ricardo G DarakjyItaly2026-07-17Morlong Associates UNQUALIFIED34Bernardo Dominic
1026Kadeem D CampainAustralia2026-07-05Truhlar And Truhlar Attys PROPOSAL40Bernardo Dominic
1027Kaitlin K StensethRussia2026-07-14Buckley Miller Wright RENEWAL90Bernardo Dominic
1028Maisha R FigeroaCanada2026-07-03Chanay, Jeffrey A Esq RENEWAL81Ioni Bowcher
1029Francesco H ShinkoRussia2026-07-01Benton, John B Jr QUALIFIED75Anna Fali
1030Alejandro C AlbaresFrance2026-07-11Feiner Bros PROPOSAL75Onyama Limba
1031Deepesh P StensethJapan2026-06-27Chapman, Ross E Esq PROPOSAL28Asiya Javayant
1032Morrow A TollnerRussia2026-07-04Benton, John B Jr PROPOSAL94Xuxue Feng
1033Chavez L WhobreyBrazil2026-07-12Chemel, James L Cpa NEW27Asiya Javayant
1034Francesco G DilliardItaly2026-07-14Buckley Miller Wright NEGOTIATION97Elwin Sharvill
1035Deepesh R MacleadIndia2026-06-29Dorl, James J Esq UNQUALIFIED30Onyama Limba
1036Darci E IturbideIndia2026-06-26Printing Dimensions RENEWAL28Asiya Javayant
1037Maisha S DoeGermany2026-07-05Feiner Bros NEGOTIATION17Amy Elsner
1038David G AlbaresAustralia2026-07-08Feiner Bros QUALIFIED95Xuxue Feng
1039Sinclair H VenereAustralia2026-07-16Feiner Bros UNQUALIFIED26Ioni Bowcher
1040Silvio J PerinUnited Kingdom2026-07-15Rousseaux, Michael Esq QUALIFIED22Xuxue Feng
1041Francesco N NickaIndia2026-07-02Buckley Miller Wright UNQUALIFIED9Amy Elsner
1042Jeanfrancois R RoysterJapan2026-07-21Chemel, James L Cpa UNQUALIFIED24Xuxue Feng
1043Jones V GauchoFrance2026-07-08Chanay, Jeffrey A Esq PROPOSAL99Amy Elsner
1044Wickens G KuskoJapan2026-06-24Rousseaux, Michael Esq UNQUALIFIED71Ioni Bowcher
1045Izzy Y MorascaJapan2026-07-04Morlong Associates NEGOTIATION61Anna Fali
1046Juan R PoquetteItaly2026-07-02Benton, John B Jr UNQUALIFIED23Ivan Magalhaes
1047Jennifer E DoeFrance2026-07-18Truhlar And Truhlar Attys PROPOSAL48Bernardo Dominic
1048Cody G DarakjyRussia2026-07-02Morlong Associates NEGOTIATION27Asiya Javayant
1049James A RimBrazil2026-07-08Benton, John B Jr QUALIFIED34Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Salvatore S TollnerAustraliaBernardo Dominic PROPOSAL
Kadeem I FigeroaSpainBernardo Dominic RENEWAL
Salvatore B KuskoItalyAmy Elsner QUALIFIED
Silvio M SchemmerGermanyStephen Shaw PROPOSAL
Leon I GauchoSpainXuxue Feng NEGOTIATION
Julie V GlickJapanOnyama Limba PROPOSAL
Maisha V BologniaBrazilXuxue Feng PROPOSAL
Claire Z AlbaresItalyBernardo Dominic RENEWAL
Nicolas X WhobreyRussiaIvan Magalhaes NEW
Sinclair O FigeroaSpainIvan Magalhaes RENEWAL
Leon I DoeArgentinaElwin Sharvill UNQUALIFIED
Ivar D StockhamJapanAmy Elsner QUALIFIED
Mujtaba M InouyeBrazilIvan Magalhaes NEGOTIATION
Ashley S NestleArgentinaElwin Sharvill NEW
David P MarrierJapanAsiya Javayant PROPOSAL
Kadeem N PerinArgentinaIoni Bowcher RENEWAL
Murillo Z ChuiArgentinaAnna Fali RENEWAL
Ricardo W AmigonGermanyAnna Fali NEW
Munro N OstroskyBrazilIvan Magalhaes PROPOSAL
Ricardo P OstroskyArgentinaAnna Fali PROPOSAL
Juan V FollerCanadaAnna Fali NEW
Ivar V FlosiGermanyOnyama Limba UNQUALIFIED
Greenwood B GlickArgentinaIoni Bowcher NEGOTIATION
Maisha P SchemmerItalyAsiya Javayant NEGOTIATION
Jones C MorascaSpainOnyama Limba NEW
Johnson I MaletJapanXuxue Feng QUALIFIED
Darci I WhobreyArgentinaOnyama Limba RENEWAL
Jennifer Q StockhamSpainOnyama Limba PROPOSAL
James Q PerinCanadaElwin Sharvill RENEWAL
Jefferson Z RutaArgentinaAnna Fali UNQUALIFIED
Chavez N InouyeFranceXuxue Feng NEGOTIATION
Costa B PaprockiItalyIoni Bowcher UNQUALIFIED
Chavez D AlbaresRussiaIoni Bowcher PROPOSAL
Alejandro M GauchoArgentinaXuxue Feng PROPOSAL
Jeanfrancois D BowleyBrazilAnna Fali RENEWAL
Isabel O FollerGermanyElwin Sharvill NEGOTIATION
Nicolas B StensethSpainAnna Fali PROPOSAL
Adams G MorascaBrazilIoni Bowcher RENEWAL
Emily E ChuiCanadaIoni Bowcher NEGOTIATION
Silvio T DarakjyIndiaOnyama Limba NEGOTIATION
Leja R AlbaresFranceElwin Sharvill RENEWAL
James K IturbideRussiaElwin Sharvill UNQUALIFIED
Aika T ButtRussiaOnyama Limba UNQUALIFIED
Greenwood P SlusarskiItalyOnyama Limba RENEWAL
Ivar I ChuiAustraliaIoni Bowcher PROPOSAL
Octavia I PoquetteFranceStephen Shaw QUALIFIED
Ivar D BowleyUnited KingdomIvan Magalhaes QUALIFIED
Tony F RutaSpainBernardo Dominic PROPOSAL
Aruna T MacleadSpainOnyama Limba NEGOTIATION
Jones U KolmetzAustraliaIoni Bowcher PROPOSAL
Frozen Columns
Name
Silvio M Marrier
Mujtaba V Saylors
Mujtaba O Venere
Jones E Poquette
Kaitlin G Saylors
Arvin W Stockham
Juan L Dilliard
Alejandro C Ferencz
Maisha T Ruta
Sinclair Z Tollner
Leja V Tollner
Kadeem P Slusarski
Costa I Malet
Smith G Foller
Nicolas X Kolmetz
Isabel J Foller
Julie S Caldarera
Jefferson B Tollner
Sinclair Z Garufi
Clifford C Whobrey
Jefferson R Malet
Aditya T Amigon
Claire E Waycott
Rodrigues J Venere
Ricardo T Iturbide
Smith V Albares
Rodrigues B Rulapaugh
Mayumi H Figeroa
Ashley S Gaucho
Kadeem D Butt
Izzy Q Vocelka
Tony Z Gaucho
Juan K Darakjy
Aruna Q Ostrosky
Tony R Bolognia
Misaki N Marrier
Stacey H Rim
Ivar Q Bolognia
Mujtaba K Malet
Smith L Tollner
Arvin J Ruta
Smith G Saylors
Julie J Rim
Arvin Z Darakjy
Clifford M Bowley
Smith L Butt
Octavia W Kolmetz
Kaitlin Q Vocelka
Smith L Slusarski
Ivar K Slusarski
IdCountryDate
1000Russia2026-07-19
1001Canada2026-07-08
1002India2026-06-26
1003Japan2026-07-20
1004Japan2026-07-08
1005Russia2026-07-16
1006India2026-07-16
1007Canada2026-07-21
1008Argentina2026-07-03
1009United Kingdom2026-07-06
1010Russia2026-07-14
1011Spain2026-07-17
1012Australia2026-06-28
1013United Kingdom2026-07-08
1014India2026-07-19
1015United Kingdom2026-07-22
1016Germany2026-07-16
1017Argentina2026-07-07
1018France2026-07-10
1019Argentina2026-06-29
1020Russia2026-06-30
1021Japan2026-06-30
1022India2026-07-19
1023Germany2026-07-17
1024United Kingdom2026-07-20
1025Canada2026-07-22
1026France2026-07-13
1027Brazil2026-07-20
1028Germany2026-07-18
1029Argentina2026-07-21
1030Australia2026-06-28
1031United Kingdom2026-06-29
1032Spain2026-07-15
1033India2026-06-29
1034Germany2026-06-29
1035Australia2026-06-30
1036Australia2026-07-03
1037India2026-07-22
1038Italy2026-07-02
1039India2026-07-01
1040Spain2026-07-13
1041Australia2026-07-05
1042Japan2026-07-11
1043Australia2026-06-27
1044France2026-07-15
1045Russia2026-07-10
1046Spain2026-06-25
1047Canada2026-07-09
1048Australia2026-07-02
1049Spain2026-07-03

On-Demand Data

NameIdCountryDate
Maria K Wieser1000United Kingdom2026-07-19
Isabel A Foller1001France2026-07-09
Deepesh P Chui1002Argentina2026-07-21
Jefferson W Inouye1003Spain2026-07-18
Sinclair S Whobrey1004Argentina2026-07-02
Octavia C Venere1005United Kingdom2026-07-15
Aika Z Figeroa1006Russia2026-07-16
Octavia E Perin1007Brazil2026-06-24
Murillo K Albares1008Spain2026-06-27
Aika R Paprocki1009India2026-06-28
Jones F Garufi1010Russia2026-07-15
Isabel D Kolmetz1011Australia2026-07-08
Alejandro E Figeroa1012Japan2026-06-25
Greenwood O Campain1013Russia2026-07-12
James H Stenseth1014Brazil2026-07-15
Maisha P Whobrey1015Spain2026-07-14
Deepesh X Garufi1016United Kingdom2026-07-05
Ivar V Garufi1017Japan2026-06-27
James H Briddick1018Argentina2026-07-15
Nicolas W Malet1019United Kingdom2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan Q BologniaAustraliaOnyama Limba NEGOTIATION
Cody E IturbideItalyBernardo Dominic NEW
Nicolas M CampainJapanOnyama Limba QUALIFIED
Claire W SergiFranceXuxue Feng UNQUALIFIED
Mujtaba I MorascaBrazilElwin Sharvill NEW
Tony X KolmetzAustraliaXuxue Feng RENEWAL
Darci V MaletSpainStephen Shaw RENEWAL
Mujtaba Y WieserBrazilXuxue Feng QUALIFIED
Maisha Y FerenczGermanyStephen Shaw RENEWAL
Murillo H NickaSpainAsiya Javayant PROPOSAL
Faith I SaylorsArgentinaStephen Shaw UNQUALIFIED
Kadeem I FlosiUnited KingdomBernardo Dominic UNQUALIFIED
Stacey K PoquetteSpainBernardo Dominic QUALIFIED
Nicolas M MaletUnited KingdomStephen Shaw NEW
Chavez A RutaJapanIoni Bowcher PROPOSAL
Mayumi U VenereArgentinaIoni Bowcher PROPOSAL
Salvatore M BologniaArgentinaOnyama Limba RENEWAL
Greenwood P GillianRussiaXuxue Feng PROPOSAL
Emily K MorascaIndiaAmy Elsner NEGOTIATION
Arvin L SaylorsGermanyIoni Bowcher NEW
Morrow L GillianItalyOnyama Limba QUALIFIED
Costa S ButtJapanAsiya Javayant RENEWAL
Clifford K VenereSpainAnna Fali RENEWAL
Leon F BriddickItalyBernardo Dominic PROPOSAL
Sinclair P FigeroaAustraliaIvan Magalhaes NEGOTIATION
Jefferson J GauchoFranceStephen Shaw NEW
Jennifer L ChuiRussiaIoni Bowcher PROPOSAL
Alejandro E BriddickJapanOnyama Limba RENEWAL
David Y PerinJapanIvan Magalhaes UNQUALIFIED
Cody H CaldareraRussiaStephen Shaw NEW
Morrow S RulapaughCanadaBernardo Dominic NEW
Emily Y OldroydIndiaAmy Elsner RENEWAL
Jeanfrancois T SchemmerJapanElwin Sharvill PROPOSAL
Wickens I StensethJapanStephen Shaw NEGOTIATION
Mujtaba M GillianBrazilStephen Shaw QUALIFIED
Aika N RoysterArgentinaXuxue Feng NEGOTIATION
Sinclair Q RutaBrazilIvan Magalhaes UNQUALIFIED
Ivar T BriddickRussiaOnyama Limba NEGOTIATION
Kadeem V MorascaCanadaBernardo Dominic NEGOTIATION
Smith F PerinUnited KingdomStephen Shaw NEGOTIATION

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