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
Octavia E KuskoArgentinaElwin Sharvill UNQUALIFIED
Claire B KuskoJapanAmy Elsner UNQUALIFIED
Johnson X VenereGermanyAnna Fali NEGOTIATION
Alejandro G CampainUnited KingdomOnyama Limba QUALIFIED
Misaki E OstroskyIndiaBernardo Dominic NEW
Faith V RimCanadaElwin Sharvill UNQUALIFIED
Izzy Z NickaRussiaElwin Sharvill NEGOTIATION
Costa N MacleadRussiaOnyama Limba NEGOTIATION
Salvatore T MarrierArgentinaOnyama Limba QUALIFIED
Clifford J SlusarskiGermanyXuxue Feng PROPOSAL
Mayumi P MarrierSpainAnna Fali UNQUALIFIED
Aika R BologniaArgentinaIvan Magalhaes NEGOTIATION
Wickens R BologniaItalyXuxue Feng NEW
Leon G RoysterCanadaIvan Magalhaes UNQUALIFIED
Tony Z GillianJapanIoni Bowcher PROPOSAL
James I GarufiIndiaAsiya Javayant RENEWAL
Wickens V KolmetzBrazilAnna Fali NEW
Johnson O GlickCanadaOnyama Limba QUALIFIED
Nicolas S PerinBrazilIvan Magalhaes RENEWAL
Emily G FollerIndiaElwin Sharvill PROPOSAL
Munro E KuskoBrazilStephen Shaw UNQUALIFIED
Darci N VocelkaJapanIoni Bowcher RENEWAL
Maisha F SchemmerRussiaStephen Shaw NEW
Ashley S VenereCanadaIoni Bowcher PROPOSAL
Antonio L VocelkaBrazilIvan Magalhaes NEGOTIATION
Chavez E SchemmerCanadaBernardo Dominic UNQUALIFIED
Sinclair X MaletFranceIvan Magalhaes UNQUALIFIED
Claire W DarakjyArgentinaOnyama Limba UNQUALIFIED
Jefferson U MarrierSpainStephen Shaw NEGOTIATION
Jennifer E CaldareraUnited KingdomXuxue Feng QUALIFIED
Francesco Z VenereSpainOnyama Limba NEW
Munro T DoeSpainStephen Shaw UNQUALIFIED
Isabel O CampainBrazilAmy Elsner UNQUALIFIED
Jeanfrancois R VocelkaAustraliaIvan Magalhaes QUALIFIED
Misaki O MaletItalyXuxue Feng PROPOSAL
Izzy T RimBrazilAsiya Javayant PROPOSAL
Alejandro U WaycottAustraliaBernardo Dominic NEW
Jennifer E OstroskySpainXuxue Feng UNQUALIFIED
Emily W FigeroaArgentinaBernardo Dominic UNQUALIFIED
Juan E PoquetteCanadaXuxue Feng NEGOTIATION
Leja F MorascaSpainIoni Bowcher RENEWAL
Mayumi R CampainSpainIvan Magalhaes RENEWAL
Kaitlin G ShinkoAustraliaIvan Magalhaes PROPOSAL
Antonio U FerenczGermanyBernardo Dominic UNQUALIFIED
Antonio J MarrierSpainIoni Bowcher NEGOTIATION
Aditya H CaudyRussiaXuxue Feng PROPOSAL
Rodrigues Y SlusarskiArgentinaIvan Magalhaes QUALIFIED
Rodrigues Z TollnerFranceAnna Fali NEGOTIATION
Arvin X GauchoAustraliaAnna Fali NEGOTIATION
Claire C WhobreyItalyXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin K DarakjyArgentinaAsiya Javayant UNQUALIFIED
Stacey Q ShinkoGermanyAnna Fali RENEWAL
Rodrigues E BriddickFranceElwin Sharvill QUALIFIED
Aika V MarrierRussiaStephen Shaw PROPOSAL
Mujtaba F WaycottUnited KingdomAnna Fali RENEWAL
Cody A VocelkaBrazilIoni Bowcher PROPOSAL
Francesco T InouyeItalyAnna Fali RENEWAL
Johnson C DarakjyBrazilBernardo Dominic PROPOSAL
Maria Z ButtIndiaBernardo Dominic UNQUALIFIED
Salvatore L BriddickCanadaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh Z OstroskyRussia2026-08-09Chanay, Jeffrey A Esq NEGOTIATION89Asiya Javayant
1001Jeanfrancois P SergiCanada2026-08-14Feltz Printing Service QUALIFIED80Anna Fali
1002Nicolas X WhobreyBrazil2026-08-09Chapman, Ross E Esq NEGOTIATION29Asiya Javayant
1003David S ButtJapan2026-08-19Feiner Bros UNQUALIFIED48Ivan Magalhaes
1004Clifford Y DarakjyGermany2026-07-28Chemel, James L Cpa RENEWAL83Onyama Limba
1005Jones A BologniaBrazil2026-08-20Feiner Bros UNQUALIFIED80Xuxue Feng
1006Aika T DilliardItaly2026-08-03Buckley Miller Wright PROPOSAL76Ivan Magalhaes
1007Tony O SlusarskiJapan2026-08-08Chapman, Ross E Esq RENEWAL93Onyama Limba
1008Jennifer W PaprockiBrazil2026-08-20Feiner Bros NEGOTIATION68Ioni Bowcher
1009Arvin A RoysterFrance2026-08-07King, Christopher A Esq NEGOTIATION52Bernardo Dominic
1010Costa A VocelkaAustralia2026-08-18Rangoni Of Florence RENEWAL14Asiya Javayant
1011Greenwood G GillianSpain2026-08-15Chapman, Ross E Esq UNQUALIFIED28Ioni Bowcher
1012Wickens H CaudyAustralia2026-08-04Feiner Bros NEW57Ivan Magalhaes
1013Francesco R KolmetzItaly2026-08-17Rangoni Of Florence RENEWAL93Amy Elsner
1014Tony A GillianAustralia2026-08-07King, Christopher A Esq QUALIFIED88Ioni Bowcher
1015Julie W CampainFrance2026-08-18Rousseaux, Michael Esq UNQUALIFIED16Ioni Bowcher
1016Greenwood E GauchoArgentina2026-08-02Chemel, James L Cpa NEGOTIATION36Stephen Shaw
1017Leon A PerinIndia2026-08-24Rangoni Of Florence QUALIFIED15Amy Elsner
1018Smith C NickaSpain2026-08-19Feiner Bros NEW31Stephen Shaw
1019Greenwood G ChuiGermany2026-08-12Chemel, James L Cpa NEW64Ioni Bowcher
1020Ricardo B StensethGermany2026-08-09Rangoni Of Florence PROPOSAL61Stephen Shaw
1021Adams W SaylorsIndia2026-08-16King, Christopher A Esq NEGOTIATION65Bernardo Dominic
1022Wickens Z BriddickAustralia2026-08-14Chemel, James L Cpa NEGOTIATION12Onyama Limba
1023Tony C VocelkaGermany2026-08-21Chapman, Ross E Esq UNQUALIFIED67Bernardo Dominic
1024Isabel S PoquetteAustralia2026-08-08Morlong Associates NEGOTIATION84Asiya Javayant
1025Kadeem I NickaJapan2026-08-21Feiner Bros NEW10Stephen Shaw
1026Deepesh L MaletUnited Kingdom2026-08-03Buckley Miller Wright NEW50Ioni Bowcher
1027Francesco K FerenczGermany2026-08-03Printing Dimensions PROPOSAL91Elwin Sharvill
1028Faith A SlusarskiJapan2026-08-07Dorl, James J Esq NEW75Xuxue Feng
1029Darci Q DoeSpain2026-08-17Chanay, Jeffrey A Esq NEW29Bernardo Dominic
1030Tony N GlickSpain2026-08-11Buckley Miller Wright NEGOTIATION38Asiya Javayant
1031Maria Y ChuiJapan2026-08-10Chapman, Ross E Esq PROPOSAL69Ioni Bowcher
1032Rodrigues A FerenczSpain2026-08-23Chemel, James L Cpa PROPOSAL97Asiya Javayant
1033Julie B StensethJapan2026-08-10Printing Dimensions QUALIFIED80Bernardo Dominic
1034Nicolas I FerenczAustralia2026-08-18Benton, John B Jr UNQUALIFIED42Stephen Shaw
1035Cody P FlosiCanada2026-07-28Printing Dimensions NEGOTIATION81Xuxue Feng
1036Stacey P IturbideItaly2026-08-06Rousseaux, Michael Esq UNQUALIFIED29Onyama Limba
1037Tony B GlickGermany2026-08-22Dorl, James J Esq QUALIFIED38Onyama Limba
1038Jennifer Q DilliardAustralia2026-08-16Rangoni Of Florence RENEWAL14Elwin Sharvill
1039Aruna P PerinJapan2026-07-29Chapman, Ross E Esq NEW51Stephen Shaw
1040Aditya P AmigonItaly2026-07-28Feiner Bros NEW24Ioni Bowcher
1041Rodrigues T DilliardIndia2026-07-29Printing Dimensions RENEWAL83Xuxue Feng
1042Jones U WieserUnited Kingdom2026-08-12Chanay, Jeffrey A Esq NEW18Asiya Javayant
1043Jennifer D FlosiGermany2026-08-19Morlong Associates NEW48Ioni Bowcher
1044Ivar C WaycottJapan2026-07-29Feltz Printing Service RENEWAL36Ivan Magalhaes
1045James A CaldareraCanada2026-08-07Feltz Printing Service QUALIFIED33Bernardo Dominic
1046Munro P MarrierGermany2026-08-24Commercial Press PROPOSAL66Xuxue Feng
1047Adams I FollerCanada2026-07-29Feltz Printing Service RENEWAL88Asiya Javayant
1048Octavia I MacleadAustralia2026-07-29Rousseaux, Michael Esq QUALIFIED1Bernardo Dominic
1049Izzy E GillianArgentina2026-08-07Buckley Miller Wright QUALIFIED87Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aditya W PoquetteArgentinaStephen Shaw QUALIFIED
Jeanfrancois J FerenczSpainAsiya Javayant NEGOTIATION
Cody Y SchemmerAustraliaBernardo Dominic UNQUALIFIED
Smith Y BowleyItalyAnna Fali PROPOSAL
Jennifer I CaudyArgentinaBernardo Dominic NEGOTIATION
David X ShinkoSpainIoni Bowcher NEW
Leon C MaletCanadaStephen Shaw UNQUALIFIED
Greenwood F ButtFranceOnyama Limba QUALIFIED
Aika F VocelkaIndiaAnna Fali NEGOTIATION
Juan P SchemmerJapanOnyama Limba UNQUALIFIED
Munro R ChuiCanadaAnna Fali NEW
Francesco R CaldareraBrazilAmy Elsner PROPOSAL
Darci D MacleadRussiaOnyama Limba NEW
Leja R ShinkoSpainBernardo Dominic NEW
Chavez R MaletJapanOnyama Limba UNQUALIFIED
James H ChuiCanadaStephen Shaw UNQUALIFIED
David Z WhobreyRussiaIvan Magalhaes UNQUALIFIED
Arvin I CampainJapanElwin Sharvill NEGOTIATION
Alejandro N StockhamFranceAnna Fali RENEWAL
Ricardo Z RimAustraliaBernardo Dominic UNQUALIFIED
Nicolas X PoquetteArgentinaAnna Fali NEW
Chavez Q BriddickJapanStephen Shaw NEGOTIATION
Jefferson H GillianFranceXuxue Feng PROPOSAL
Jefferson H SaylorsGermanyAnna Fali UNQUALIFIED
Clifford I OldroydIndiaIoni Bowcher QUALIFIED
Ricardo C ChuiGermanyAnna Fali PROPOSAL
Greenwood D GarufiJapanAmy Elsner NEGOTIATION
Jones O KuskoIndiaAmy Elsner PROPOSAL
Salvatore S MacleadUnited KingdomElwin Sharvill RENEWAL
Juan J MacleadSpainElwin Sharvill RENEWAL
Wickens D CaudyBrazilIoni Bowcher NEGOTIATION
Julie S GarufiArgentinaStephen Shaw PROPOSAL
Kadeem Y RutaBrazilIvan Magalhaes RENEWAL
Murillo S PaprockiFranceAnna Fali PROPOSAL
Maisha C RoysterArgentinaElwin Sharvill QUALIFIED
Arvin U FigeroaIndiaAmy Elsner QUALIFIED
Octavia A BologniaSpainElwin Sharvill UNQUALIFIED
Maria L OstroskyItalyElwin Sharvill NEW
Clifford Z CaudyBrazilAmy Elsner QUALIFIED
Isabel K ShinkoJapanStephen Shaw QUALIFIED
Darci A StensethIndiaOnyama Limba PROPOSAL
Alejandro Z NestleAustraliaStephen Shaw QUALIFIED
Adams G PerinRussiaElwin Sharvill PROPOSAL
Maria X InouyeAustraliaAnna Fali PROPOSAL
Johnson R SlusarskiJapanOnyama Limba UNQUALIFIED
Arvin P RimUnited KingdomElwin Sharvill UNQUALIFIED
Leja P SlusarskiAustraliaAnna Fali PROPOSAL
Jennifer K GarufiBrazilElwin Sharvill QUALIFIED
Maria G WhobreyItalyBernardo Dominic RENEWAL
Wickens I RutaUnited KingdomAsiya Javayant QUALIFIED
Frozen Columns
Name
James B Vocelka
Nicolas E Bowley
Maria Q Malet
Munro J Tollner
Darci L Figeroa
Darci M Royster
Ashley Z Flosi
Nicolas R Ruta
Emily I Shinko
Aditya F Ostrosky
Jennifer R Vocelka
Jennifer Y Nicka
Mujtaba R Flosi
Claire A Paprocki
Jefferson H Doe
Ivar G Glick
Maisha G Gillian
Faith N Shinko
Leja B Paprocki
Maria G Malet
Cody K Ruta
Jeanfrancois L Kusko
Ivar J Rulapaugh
Leon Q Venere
Maria R Gillian
Salvatore P Flosi
Costa E Gillian
Alejandro C Poquette
Rodrigues A Tollner
James I Caldarera
Sinclair D Chui
David Y Malet
Ivar X Paprocki
Claire W Maclead
Wickens A Royster
Cody Q Vocelka
Johnson L Gillian
Munro G Shinko
James L Slusarski
Julie R Whobrey
David K Shinko
Stacey M Iturbide
Octavia T Royster
Morrow F Royster
Rodrigues R Perin
Wickens J Kolmetz
Izzy J Ostrosky
Mayumi H Marrier
Ashley D Caldarera
Aditya A Flosi
IdCountryDate
1000Argentina2026-08-21
1001Italy2026-08-09
1002Japan2026-08-13
1003Brazil2026-08-24
1004France2026-08-19
1005Spain2026-08-17
1006Russia2026-08-23
1007Brazil2026-08-03
1008Australia2026-08-23
1009Italy2026-08-03
1010Australia2026-07-28
1011Canada2026-08-03
1012Spain2026-08-01
1013Australia2026-08-01
1014Russia2026-08-17
1015France2026-08-07
1016Germany2026-08-21
1017France2026-08-20
1018Italy2026-08-26
1019Canada2026-08-06
1020Spain2026-08-09
1021Russia2026-08-10
1022Japan2026-08-18
1023Italy2026-08-25
1024Italy2026-08-14
1025Germany2026-08-12
1026Germany2026-08-04
1027Canada2026-08-14
1028Germany2026-07-31
1029Argentina2026-08-03
1030Japan2026-08-24
1031Argentina2026-08-02
1032Canada2026-08-06
1033Canada2026-08-16
1034Russia2026-08-04
1035France2026-08-21
1036France2026-08-10
1037Italy2026-08-24
1038Italy2026-08-02
1039Italy2026-08-11
1040Australia2026-08-10
1041Australia2026-08-23
1042Argentina2026-08-18
1043Japan2026-08-23
1044Spain2026-08-26
1045India2026-07-29
1046Australia2026-08-08
1047Spain2026-07-28
1048Spain2026-08-19
1049United Kingdom2026-08-03

On-Demand Data

NameIdCountryDate
Salvatore M Bowley1000Germany2026-08-19
Adams T Stenseth1001Argentina2026-08-26
Maria H Inouye1002Spain2026-08-01
Maria G Flosi1003Brazil2026-08-10
Nicolas G Paprocki1004Brazil2026-08-18
Juan K Ruta1005Canada2026-07-30
Leja G Stockham1006Australia2026-08-18
Ashley C Malet1007Argentina2026-07-28
Ashley E Wieser1008United Kingdom2026-08-17
Ashley E Inouye1009Italy2026-08-13
Claire C Iturbide1010Australia2026-08-20
Cody G Dilliard1011France2026-08-09
Mujtaba O Ruta1012Australia2026-08-09
Mujtaba D Briddick1013Germany2026-08-06
Salvatore I Malet1014Russia2026-08-16
Rodrigues O Butt1015Spain2026-08-09
Nicolas Y Stockham1016France2026-08-01
Octavia Z Waycott1017Spain2026-08-07
Ivar A Whobrey1018Japan2026-08-13
Salvatore A Nicka1019Russia2026-08-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja A BologniaItalyAsiya Javayant NEW
Murillo F RoysterArgentinaAmy Elsner RENEWAL
Ashley N SchemmerItalyXuxue Feng RENEWAL
Jeanfrancois A DilliardArgentinaXuxue Feng NEGOTIATION
Silvio R RoysterUnited KingdomAnna Fali RENEWAL
Cody A RutaSpainAnna Fali UNQUALIFIED
Jones H FigeroaArgentinaBernardo Dominic PROPOSAL
Stacey Q WieserFranceElwin Sharvill UNQUALIFIED
Aika Q MacleadJapanAsiya Javayant UNQUALIFIED
Munro A InouyeRussiaBernardo Dominic UNQUALIFIED
Morrow R CampainCanadaAsiya Javayant RENEWAL
Munro R GauchoItalyStephen Shaw PROPOSAL
Sinclair H FlosiUnited KingdomIoni Bowcher QUALIFIED
Leja U WieserFranceIoni Bowcher NEW
Alejandro N SchemmerUnited KingdomAnna Fali RENEWAL
Johnson F BologniaSpainStephen Shaw RENEWAL
Chavez Q FlosiIndiaBernardo Dominic NEW
Chavez U AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Juan F MorascaGermanyStephen Shaw UNQUALIFIED
Leon M AmigonFranceIoni Bowcher UNQUALIFIED
Nicolas A GarufiArgentinaElwin Sharvill PROPOSAL
Faith V AmigonCanadaIoni Bowcher RENEWAL
Kadeem I MacleadRussiaOnyama Limba QUALIFIED
Claire E ChuiIndiaXuxue Feng RENEWAL
Munro D OldroydItalyAnna Fali RENEWAL
Leon V KolmetzAustraliaAnna Fali QUALIFIED
Antonio V WaycottBrazilAnna Fali NEW
Faith N StockhamItalyIoni Bowcher NEW
Sinclair M PaprockiSpainAnna Fali NEW
Morrow I FlosiBrazilIoni Bowcher PROPOSAL
Jefferson L KolmetzRussiaAnna Fali NEW
Maria S AmigonAustraliaAmy Elsner QUALIFIED
Munro V GillianSpainAnna Fali UNQUALIFIED
Stacey R PerinArgentinaXuxue Feng QUALIFIED
Misaki B StockhamJapanStephen Shaw QUALIFIED
Alejandro Q PaprockiJapanElwin Sharvill NEGOTIATION
Jennifer P SlusarskiCanadaAmy Elsner UNQUALIFIED
Deepesh G PaprockiUnited KingdomXuxue Feng NEW
Johnson T CaudyIndiaAsiya Javayant PROPOSAL
Kadeem H GarufiFranceAmy Elsner 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>