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
Salvatore R MaletAustraliaBernardo Dominic PROPOSAL
Aditya X PaprockiSpainXuxue Feng QUALIFIED
Julie L WaycottItalyStephen Shaw NEW
Octavia U PaprockiCanadaXuxue Feng NEGOTIATION
Darci J OstroskyJapanElwin Sharvill UNQUALIFIED
Adams E StensethFranceElwin Sharvill RENEWAL
Julie Y CaudyAustraliaIoni Bowcher QUALIFIED
Antonio J DilliardJapanAmy Elsner QUALIFIED
Munro C MaletItalyXuxue Feng RENEWAL
Kadeem H TollnerBrazilOnyama Limba NEW
Mayumi X KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Ivar F FerenczFranceElwin Sharvill NEW
Morrow G KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Aruna X RutaAustraliaOnyama Limba NEW
Jeanfrancois H SaylorsAustraliaAsiya Javayant RENEWAL
Leja B BriddickGermanyIoni Bowcher NEGOTIATION
Jeanfrancois S PoquetteJapanStephen Shaw PROPOSAL
Cody U GillianCanadaXuxue Feng RENEWAL
Nicolas L WaycottBrazilElwin Sharvill RENEWAL
Johnson M TollnerJapanXuxue Feng PROPOSAL
Smith G GauchoBrazilAmy Elsner PROPOSAL
Smith B KuskoJapanBernardo Dominic RENEWAL
Ivar K FigeroaItalyAmy Elsner NEW
Munro O SergiBrazilAsiya Javayant NEW
Cody S RulapaughSpainAsiya Javayant QUALIFIED
Adams C StensethBrazilBernardo Dominic PROPOSAL
Mujtaba W WaycottItalyOnyama Limba UNQUALIFIED
Mujtaba H WieserUnited KingdomIvan Magalhaes QUALIFIED
Jennifer D PerinArgentinaAnna Fali QUALIFIED
Ivar P RutaCanadaStephen Shaw NEGOTIATION
Julie A PerinGermanyAsiya Javayant QUALIFIED
Jones C MorascaAustraliaAnna Fali QUALIFIED
Mujtaba T FerenczCanadaOnyama Limba NEGOTIATION
Silvio P OldroydSpainAmy Elsner NEW
Tony F RulapaughIndiaAsiya Javayant NEW
Francesco D SlusarskiJapanXuxue Feng RENEWAL
Jennifer N SchemmerSpainAsiya Javayant UNQUALIFIED
Adams N TollnerIndiaAnna Fali UNQUALIFIED
Darci A FollerIndiaXuxue Feng NEGOTIATION
Kadeem W CampainSpainAnna Fali NEGOTIATION
Smith W AlbaresArgentinaBernardo Dominic PROPOSAL
Izzy H DilliardBrazilIoni Bowcher QUALIFIED
James M NestleJapanXuxue Feng NEGOTIATION
Antonio Y FlosiUnited KingdomAmy Elsner PROPOSAL
Clifford P TollnerBrazilXuxue Feng NEW
Murillo L RutaGermanyAsiya Javayant RENEWAL
Julie V RoysterBrazilAmy Elsner NEGOTIATION
Mayumi O PoquetteFranceIvan Magalhaes QUALIFIED
Jeanfrancois A FollerRussiaAmy Elsner NEGOTIATION
Leon X VenereUnited KingdomStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Clifford X IturbideItalyAnna Fali PROPOSAL
Ricardo M StensethArgentinaAmy Elsner RENEWAL
Chavez M RulapaughUnited KingdomXuxue Feng NEW
James A GillianRussiaAsiya Javayant PROPOSAL
Misaki H PerinAustraliaAnna Fali PROPOSAL
Mujtaba X FerenczSpainIvan Magalhaes NEGOTIATION
Costa T StockhamGermanyStephen Shaw QUALIFIED
Aika T CampainRussiaBernardo Dominic NEW
Mayumi C OldroydGermanyIvan Magalhaes RENEWAL
Claire J RulapaughRussiaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson U OstroskyFrance2026-07-10Dorl, James J Esq NEW40Ioni Bowcher
1001Nicolas K FollerBrazil2026-07-09Rousseaux, Michael Esq NEGOTIATION71Xuxue Feng
1002Salvatore V SlusarskiFrance2026-07-17Rousseaux, Michael Esq UNQUALIFIED68Anna Fali
1003Aruna I MarrierIndia2026-07-13Morlong Associates PROPOSAL26Amy Elsner
1004Octavia G MarrierJapan2026-07-02Chapman, Ross E Esq RENEWAL43Stephen Shaw
1005Murillo L AmigonBrazil2026-07-20Commercial Press RENEWAL95Elwin Sharvill
1006Nicolas E RimRussia2026-07-11King, Christopher A Esq QUALIFIED27Xuxue Feng
1007Ivar G FlosiIndia2026-07-21Morlong Associates RENEWAL21Asiya Javayant
1008Jennifer S MaletUnited Kingdom2026-07-03Chapman, Ross E Esq UNQUALIFIED61Ivan Magalhaes
1009Tony L PaprockiBrazil2026-07-10Rousseaux, Michael Esq QUALIFIED60Xuxue Feng
1010Emily L ShinkoFrance2026-07-14Feiner Bros NEW41Xuxue Feng
1011Clifford G PerinBrazil2026-07-22Printing Dimensions PROPOSAL93Asiya Javayant
1012Murillo R MorascaFrance2026-07-19Morlong Associates PROPOSAL58Elwin Sharvill
1013Murillo P WieserAustralia2026-07-06Rangoni Of Florence NEGOTIATION13Anna Fali
1014Mujtaba Q DoeUnited Kingdom2026-07-08Feiner Bros PROPOSAL37Onyama Limba
1015Leja Q ButtBrazil2026-07-15Feiner Bros UNQUALIFIED7Xuxue Feng
1016Ricardo N TollnerSpain2026-06-23Morlong Associates RENEWAL75Anna Fali
1017Juan P AmigonJapan2026-07-19Buckley Miller Wright NEW33Ioni Bowcher
1018Munro S RulapaughRussia2026-07-15Printing Dimensions UNQUALIFIED60Ivan Magalhaes
1019Kaitlin W InouyeAustralia2026-07-13Dorl, James J Esq RENEWAL84Ivan Magalhaes
1020Greenwood F WhobreyUnited Kingdom2026-07-19Rangoni Of Florence UNQUALIFIED86Anna Fali
1021Julie D TollnerSpain2026-06-28Feiner Bros PROPOSAL80Onyama Limba
1022David P BologniaJapan2026-07-12Morlong Associates UNQUALIFIED38Anna Fali
1023Aruna Y RimSpain2026-07-17Feiner Bros UNQUALIFIED78Anna Fali
1024Kadeem V RulapaughFrance2026-07-22Chemel, James L Cpa UNQUALIFIED93Ioni Bowcher
1025Costa W TollnerBrazil2026-07-15Buckley Miller Wright PROPOSAL95Bernardo Dominic
1026Ashley I StensethCanada2026-07-22Rangoni Of Florence NEGOTIATION40Stephen Shaw
1027Leon B MacleadFrance2026-07-08Chapman, Ross E Esq NEGOTIATION64Asiya Javayant
1028Jennifer Q MaletGermany2026-06-30Feltz Printing Service UNQUALIFIED11Stephen Shaw
1029Wickens H OldroydFrance2026-07-02Chapman, Ross E Esq NEW96Onyama Limba
1030Morrow U FollerSpain2026-07-19Printing Dimensions PROPOSAL96Ioni Bowcher
1031Maisha F IturbideBrazil2026-06-23King, Christopher A Esq UNQUALIFIED48Anna Fali
1032James K FerenczAustralia2026-07-13Rousseaux, Michael Esq PROPOSAL72Ivan Magalhaes
1033Misaki M RoysterUnited Kingdom2026-07-14Feiner Bros RENEWAL0Amy Elsner
1034Leon B PoquetteFrance2026-07-07Morlong Associates RENEWAL33Amy Elsner
1035Jefferson D MorascaBrazil2026-07-05Benton, John B Jr RENEWAL33Asiya Javayant
1036James X RutaRussia2026-06-27Feltz Printing Service UNQUALIFIED56Anna Fali
1037Nicolas E FigeroaBrazil2026-07-13Printing Dimensions RENEWAL89Asiya Javayant
1038Aika H SlusarskiFrance2026-07-22Chanay, Jeffrey A Esq PROPOSAL10Onyama Limba
1039Rodrigues N SergiJapan2026-06-28Feiner Bros UNQUALIFIED37Stephen Shaw
1040Costa P BowleyArgentina2026-07-18Chapman, Ross E Esq NEGOTIATION71Ivan Magalhaes
1041Deepesh R GlickSpain2026-07-04Feltz Printing Service QUALIFIED68Asiya Javayant
1042Cody B AlbaresArgentina2026-07-10Benton, John B Jr UNQUALIFIED29Ivan Magalhaes
1043Maisha D InouyeJapan2026-06-26Chapman, Ross E Esq PROPOSAL12Ivan Magalhaes
1044Kaitlin O KuskoIndia2026-07-13Commercial Press QUALIFIED34Ioni Bowcher
1045Costa M DilliardArgentina2026-07-11Printing Dimensions QUALIFIED21Xuxue Feng
1046Sinclair N BologniaSpain2026-07-03Rangoni Of Florence PROPOSAL26Ivan Magalhaes
1047Jeanfrancois M FerenczRussia2026-07-13Benton, John B Jr NEGOTIATION89Stephen Shaw
1048Jeanfrancois C IturbideGermany2026-07-11Dorl, James J Esq NEW35Stephen Shaw
1049Aruna Q RutaArgentina2026-06-25Chapman, Ross E Esq UNQUALIFIED92Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Cody F FerenczCanadaIvan Magalhaes UNQUALIFIED
Chavez S CaldareraRussiaIvan Magalhaes RENEWAL
Nicolas L SergiUnited KingdomAsiya Javayant NEW
James A DarakjyFranceAsiya Javayant UNQUALIFIED
Greenwood B FollerItalyXuxue Feng QUALIFIED
Smith A SchemmerIndiaAnna Fali NEW
James T SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Cody Q GauchoGermanyStephen Shaw UNQUALIFIED
Francesco V BowleyIndiaOnyama Limba NEW
Antonio R WaycottSpainAmy Elsner NEGOTIATION
David O GillianJapanElwin Sharvill NEW
David R InouyeAustraliaAnna Fali QUALIFIED
Chavez U SaylorsRussiaAmy Elsner PROPOSAL
Chavez S ButtCanadaOnyama Limba NEW
Nicolas X SchemmerFranceElwin Sharvill NEGOTIATION
Kaitlin L WhobreyItalyAsiya Javayant NEW
Wickens V GillianBrazilAmy Elsner UNQUALIFIED
Smith X GillianAustraliaAsiya Javayant RENEWAL
Wickens O RutaAustraliaAsiya Javayant UNQUALIFIED
Chavez L MarrierUnited KingdomStephen Shaw NEW
Francesco C BowleyCanadaAnna Fali RENEWAL
James L CampainUnited KingdomAnna Fali RENEWAL
Jones K GillianItalyAsiya Javayant NEGOTIATION
Maria F WhobreyItalyElwin Sharvill NEGOTIATION
Mayumi Q PoquetteCanadaAnna Fali UNQUALIFIED
Octavia Y WaycottSpainXuxue Feng UNQUALIFIED
Antonio R AlbaresArgentinaAsiya Javayant PROPOSAL
Munro L MaletSpainAmy Elsner QUALIFIED
Izzy J InouyeArgentinaOnyama Limba PROPOSAL
Cody M MaletAustraliaElwin Sharvill PROPOSAL
Mayumi B FlosiArgentinaAnna Fali UNQUALIFIED
Johnson W RoysterAustraliaIvan Magalhaes NEW
Jones L SlusarskiJapanOnyama Limba RENEWAL
Murillo B DarakjySpainIoni Bowcher NEGOTIATION
Kaitlin H WaycottJapanAnna Fali UNQUALIFIED
Kaitlin P NickaJapanStephen Shaw QUALIFIED
Clifford L NestleUnited KingdomXuxue Feng RENEWAL
Julie V VocelkaBrazilAsiya Javayant NEW
Isabel P StensethItalyAnna Fali NEW
Stacey I RimUnited KingdomXuxue Feng QUALIFIED
Claire X BowleyBrazilAmy Elsner PROPOSAL
Octavia E NickaAustraliaIvan Magalhaes UNQUALIFIED
Isabel G FerenczIndiaAnna Fali PROPOSAL
Stacey A ShinkoFranceAmy Elsner UNQUALIFIED
Emily H ChuiFranceElwin Sharvill RENEWAL
Greenwood H BologniaArgentinaStephen Shaw QUALIFIED
Jefferson Q StensethRussiaIvan Magalhaes UNQUALIFIED
Ricardo O AlbaresJapanElwin Sharvill NEGOTIATION
Darci Z DilliardItalyOnyama Limba PROPOSAL
Francesco P VocelkaCanadaElwin Sharvill QUALIFIED
Frozen Columns
Name
Chavez J Nestle
Clifford C Dilliard
Faith X Ruta
James P Inouye
Chavez S Paprocki
Mujtaba A Albares
Smith K Sergi
Alejandro L Kusko
Salvatore F Bowley
Aruna I Iturbide
Misaki P Albares
Salvatore X Nicka
David L Briddick
Aika J Amigon
Silvio K Rulapaugh
Rodrigues J Glick
Octavia J Iturbide
Costa R Flosi
Smith Q Campain
Misaki K Kusko
Arvin S Whobrey
Izzy T Gaucho
Emily Y Nestle
Smith O Malet
Salvatore B Caldarera
Salvatore T Stenseth
Aika I Malet
Jones Z Darakjy
Izzy M Saylors
Rodrigues J Dilliard
Izzy E Malet
Morrow E Saylors
Cody W Kusko
Isabel I Dilliard
Salvatore Z Amigon
Misaki H Tollner
Clifford E Rulapaugh
Johnson F Rim
Octavia O Amigon
David Q Paprocki
Cody C Dilliard
Rodrigues J Ruta
Alejandro V Sergi
Salvatore B Shinko
Jefferson O Maclead
Wickens F Saylors
Ivar M Sergi
Deepesh B Slusarski
Deepesh G Royster
Sinclair Y Waycott
IdCountryDate
1000Germany2026-07-14
1001India2026-07-03
1002United Kingdom2026-07-11
1003India2026-07-03
1004Argentina2026-07-19
1005Germany2026-07-16
1006Russia2026-06-24
1007Japan2026-06-29
1008Russia2026-07-07
1009Russia2026-07-18
1010Italy2026-07-10
1011United Kingdom2026-07-21
1012Germany2026-06-30
1013Argentina2026-07-11
1014Canada2026-07-21
1015Russia2026-07-17
1016Spain2026-07-04
1017Russia2026-06-23
1018Canada2026-07-03
1019Russia2026-07-17
1020Italy2026-06-28
1021Japan2026-07-18
1022France2026-07-19
1023United Kingdom2026-07-20
1024Canada2026-06-23
1025India2026-06-27
1026Brazil2026-07-14
1027United Kingdom2026-07-05
1028United Kingdom2026-07-16
1029France2026-07-14
1030Brazil2026-06-29
1031Russia2026-07-02
1032Spain2026-07-17
1033Brazil2026-07-05
1034Australia2026-06-24
1035Russia2026-07-05
1036Argentina2026-06-29
1037United Kingdom2026-07-01
1038India2026-07-22
1039Japan2026-06-28
1040Japan2026-06-24
1041Spain2026-07-18
1042Australia2026-07-11
1043France2026-07-05
1044India2026-07-17
1045Brazil2026-07-22
1046Argentina2026-07-05
1047India2026-07-08
1048France2026-06-27
1049Germany2026-06-23

On-Demand Data

NameIdCountryDate
Clifford K Ostrosky1000Australia2026-06-25
Misaki F Stenseth1001France2026-07-06
Mayumi R Briddick1002Australia2026-06-24
Maisha U Oldroyd1003Russia2026-07-15
Mujtaba B Malet1004Brazil2026-07-13
Aruna M Whobrey1005Italy2026-07-16
Ivar E Ostrosky1006Russia2026-06-23
Jeanfrancois P Dilliard1007Australia2026-07-02
Mayumi P Briddick1008Italy2026-06-29
Johnson H Inouye1009Germany2026-07-01
Juan E Morasca1010Japan2026-06-30
Alejandro Q Schemmer1011France2026-07-02
Kaitlin J Nicka1012Japan2026-07-03
Cody D Dilliard1013India2026-07-09
Murillo R Venere1014United Kingdom2026-06-25
Maisha V Gillian1015France2026-07-17
Octavia V Ostrosky1016Italy2026-07-19
Chavez P Schemmer1017Germany2026-06-30
Kaitlin L Oldroyd1018Brazil2026-06-23
Stacey W Rulapaugh1019United Kingdom2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel C ButtIndiaAsiya Javayant RENEWAL
Misaki T OstroskyFranceIvan Magalhaes RENEWAL
Smith H AmigonRussiaAnna Fali RENEWAL
Greenwood C NestleSpainXuxue Feng RENEWAL
Maria D NestleGermanyXuxue Feng UNQUALIFIED
Kadeem W SlusarskiCanadaAmy Elsner QUALIFIED
Ivar N BologniaIndiaElwin Sharvill UNQUALIFIED
Adams D TollnerRussiaAsiya Javayant UNQUALIFIED
Tony U DilliardFranceOnyama Limba UNQUALIFIED
Jefferson D GlickCanadaIoni Bowcher QUALIFIED
Greenwood R KuskoBrazilIoni Bowcher PROPOSAL
Aruna J SlusarskiFranceAsiya Javayant RENEWAL
Smith I PaprockiUnited KingdomOnyama Limba UNQUALIFIED
Munro M OstroskyRussiaAsiya Javayant PROPOSAL
Izzy U MorascaJapanIoni Bowcher PROPOSAL
Cody Q TollnerIndiaBernardo Dominic NEW
Ashley Q StockhamIndiaAsiya Javayant RENEWAL
Maria S BologniaAustraliaIoni Bowcher RENEWAL
Francesco K MaletArgentinaAnna Fali UNQUALIFIED
Nicolas I OstroskyFranceAsiya Javayant UNQUALIFIED
Emily P NestleCanadaIoni Bowcher PROPOSAL
Izzy C BriddickIndiaElwin Sharvill RENEWAL
Claire I SergiArgentinaBernardo Dominic QUALIFIED
Maria A FollerIndiaIoni Bowcher NEGOTIATION
James G FollerAustraliaElwin Sharvill RENEWAL
Emily T WieserItalyAsiya Javayant QUALIFIED
Johnson D RulapaughFranceOnyama Limba NEW
Nicolas F GauchoIndiaXuxue Feng NEGOTIATION
Misaki J RoysterSpainAnna Fali NEW
Arvin P GauchoUnited KingdomElwin Sharvill QUALIFIED
Leon A MorascaAustraliaStephen Shaw UNQUALIFIED
Wickens Q DarakjyRussiaAmy Elsner NEW
Ivar A PoquetteBrazilElwin Sharvill NEW
Aruna M GillianAustraliaAsiya Javayant QUALIFIED
Faith S ChuiIndiaIoni Bowcher PROPOSAL
Jennifer G InouyeGermanyStephen Shaw NEW
Stacey Q StensethArgentinaIvan Magalhaes UNQUALIFIED
Ricardo U CaudyRussiaIvan Magalhaes QUALIFIED
Ivar U MaletArgentinaAsiya Javayant RENEWAL
Deepesh P DoeFranceAsiya Javayant 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>