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
Stacey K CampainSpainElwin Sharvill NEGOTIATION
Mayumi J WhobreyUnited KingdomStephen Shaw RENEWAL
Kadeem M CaldareraArgentinaElwin Sharvill UNQUALIFIED
Aika N GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Leja X WhobreyItalyBernardo Dominic QUALIFIED
Kadeem H TollnerFranceAmy Elsner UNQUALIFIED
Leon V ShinkoSpainOnyama Limba PROPOSAL
Jones K RoysterAustraliaStephen Shaw RENEWAL
Faith F PoquetteItalyAsiya Javayant QUALIFIED
Cody A DilliardUnited KingdomElwin Sharvill PROPOSAL
Aruna I RoysterArgentinaAnna Fali NEGOTIATION
Clifford T FerenczRussiaStephen Shaw RENEWAL
Ricardo J AlbaresAustraliaXuxue Feng PROPOSAL
Kadeem Y BowleyIndiaAnna Fali NEW
Faith O GauchoArgentinaBernardo Dominic NEGOTIATION
David F BowleyBrazilElwin Sharvill PROPOSAL
Costa M AlbaresUnited KingdomOnyama Limba PROPOSAL
Chavez S SlusarskiFranceStephen Shaw NEGOTIATION
Julie V GlickAustraliaAsiya Javayant NEGOTIATION
Kaitlin T KolmetzAustraliaXuxue Feng QUALIFIED
Alejandro C RoysterAustraliaXuxue Feng UNQUALIFIED
Aditya E BowleyArgentinaAsiya Javayant RENEWAL
Aika N FollerJapanIoni Bowcher NEW
Cody C GillianArgentinaStephen Shaw UNQUALIFIED
Aika Q CaldareraSpainAsiya Javayant NEGOTIATION
Stacey K RulapaughRussiaAnna Fali UNQUALIFIED
Chavez A NickaSpainAsiya Javayant UNQUALIFIED
Adams V BologniaCanadaBernardo Dominic PROPOSAL
Tony E FerenczCanadaIvan Magalhaes UNQUALIFIED
Leja R FollerBrazilAsiya Javayant NEW
Jeanfrancois G MaletArgentinaIoni Bowcher PROPOSAL
Deepesh G PerinArgentinaElwin Sharvill PROPOSAL
Aruna B MaletFranceAnna Fali RENEWAL
Faith P TollnerAustraliaOnyama Limba PROPOSAL
Ashley M NickaIndiaXuxue Feng UNQUALIFIED
Aika N KuskoCanadaIvan Magalhaes RENEWAL
Isabel D VocelkaFranceElwin Sharvill NEW
Aika E VenereArgentinaIoni Bowcher NEW
Claire F WaycottCanadaStephen Shaw NEW
David E GlickGermanyXuxue Feng NEW
Kadeem S FerenczSpainXuxue Feng PROPOSAL
Ricardo X FigeroaFranceElwin Sharvill QUALIFIED
Leon Y PaprockiAustraliaIoni Bowcher QUALIFIED
Kaitlin F MorascaItalyAmy Elsner NEW
Sinclair W SlusarskiSpainAsiya Javayant QUALIFIED
Costa H StensethGermanyElwin Sharvill QUALIFIED
David T FerenczUnited KingdomBernardo Dominic UNQUALIFIED
Octavia J DilliardAustraliaOnyama Limba NEW
Aika B DarakjyAustraliaStephen Shaw QUALIFIED
Rodrigues G BowleyRussiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson X SergiItalyIvan Magalhaes NEW
Juan B RimIndiaAsiya Javayant UNQUALIFIED
Sinclair I NestleSpainOnyama Limba NEW
Wickens C MarrierUnited KingdomIoni Bowcher QUALIFIED
Jefferson A WaycottAustraliaXuxue Feng NEGOTIATION
Leja P KolmetzArgentinaAmy Elsner QUALIFIED
Isabel K FerenczGermanyIvan Magalhaes NEGOTIATION
Sinclair X FlosiCanadaElwin Sharvill UNQUALIFIED
Mujtaba R OstroskyCanadaBernardo Dominic QUALIFIED
David I RulapaughAustraliaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro S RulapaughGermany2026-06-30Chapman, Ross E Esq QUALIFIED18Elwin Sharvill
1001Salvatore A GlickRussia2026-07-11Feltz Printing Service NEW44Bernardo Dominic
1002Salvatore J MorascaGermany2026-07-05King, Christopher A Esq NEGOTIATION35Stephen Shaw
1003Darci I KuskoUnited Kingdom2026-06-24Buckley Miller Wright NEGOTIATION81Stephen Shaw
1004Adams R FigeroaArgentina2026-06-30Buckley Miller Wright RENEWAL94Elwin Sharvill
1005Leja C RulapaughArgentina2026-07-05Printing Dimensions QUALIFIED9Bernardo Dominic
1006Mujtaba C MorascaArgentina2026-06-26Buckley Miller Wright RENEWAL38Bernardo Dominic
1007Deepesh T WaycottUnited Kingdom2026-06-12Commercial Press NEGOTIATION95Elwin Sharvill
1008Ivar B AlbaresRussia2026-06-14Morlong Associates PROPOSAL84Bernardo Dominic
1009Johnson N MacleadAustralia2026-07-09Truhlar And Truhlar Attys NEW30Ivan Magalhaes
1010Jones F CampainItaly2026-06-14Chanay, Jeffrey A Esq UNQUALIFIED9Onyama Limba
1011Arvin E GlickItaly2026-06-15Rangoni Of Florence NEGOTIATION10Amy Elsner
1012Salvatore U GauchoBrazil2026-06-28Chanay, Jeffrey A Esq UNQUALIFIED3Onyama Limba
1013Morrow M AlbaresSpain2026-06-18Morlong Associates UNQUALIFIED92Xuxue Feng
1014Aruna B SchemmerAustralia2026-07-08Feiner Bros RENEWAL0Ivan Magalhaes
1015Octavia L SchemmerArgentina2026-06-21Rousseaux, Michael Esq RENEWAL22Anna Fali
1016Maria M BologniaSpain2026-07-06Chapman, Ross E Esq UNQUALIFIED98Anna Fali
1017Munro D RimFrance2026-06-30Commercial Press UNQUALIFIED0Anna Fali
1018Murillo A CaldareraRussia2026-07-10Printing Dimensions NEW2Asiya Javayant
1019Adams B DilliardGermany2026-06-22Chapman, Ross E Esq PROPOSAL65Amy Elsner
1020Leon N RoysterAustralia2026-06-19Truhlar And Truhlar Attys UNQUALIFIED28Bernardo Dominic
1021Jones J WieserAustralia2026-07-11Morlong Associates NEW98Onyama Limba
1022Aditya N FigeroaGermany2026-07-07Benton, John B Jr NEGOTIATION31Amy Elsner
1023Costa F BologniaAustralia2026-06-19Chapman, Ross E Esq PROPOSAL9Bernardo Dominic
1024Smith B DarakjyRussia2026-07-05Chemel, James L Cpa QUALIFIED41Amy Elsner
1025Aruna O BriddickFrance2026-07-11Dorl, James J Esq PROPOSAL64Bernardo Dominic
1026Claire G RulapaughAustralia2026-06-21Morlong Associates QUALIFIED81Onyama Limba
1027James G DoeFrance2026-06-16Rousseaux, Michael Esq NEW92Amy Elsner
1028Ricardo Y RutaFrance2026-07-10Truhlar And Truhlar Attys RENEWAL8Elwin Sharvill
1029Munro L OldroydUnited Kingdom2026-07-05Buckley Miller Wright QUALIFIED71Anna Fali
1030Julie K DarakjyGermany2026-07-10Truhlar And Truhlar Attys NEGOTIATION19Asiya Javayant
1031Deepesh K NickaRussia2026-06-27Truhlar And Truhlar Attys UNQUALIFIED2Stephen Shaw
1032Leon C StockhamCanada2026-06-20Commercial Press PROPOSAL60Ivan Magalhaes
1033Munro N NickaIndia2026-07-02Dorl, James J Esq NEW18Amy Elsner
1034Aditya Y FigeroaCanada2026-07-02Printing Dimensions NEW47Ivan Magalhaes
1035Jones S AlbaresFrance2026-07-06Morlong Associates UNQUALIFIED15Ioni Bowcher
1036Silvio T WaycottFrance2026-06-26Chanay, Jeffrey A Esq PROPOSAL99Ivan Magalhaes
1037Costa A InouyeBrazil2026-06-22Benton, John B Jr PROPOSAL11Asiya Javayant
1038Deepesh K CampainGermany2026-07-07Chapman, Ross E Esq UNQUALIFIED67Ivan Magalhaes
1039Aditya F ChuiGermany2026-06-14Chapman, Ross E Esq NEGOTIATION32Elwin Sharvill
1040Juan N VocelkaAustralia2026-06-21Feltz Printing Service UNQUALIFIED32Amy Elsner
1041Octavia A SaylorsGermany2026-07-02Feltz Printing Service QUALIFIED19Asiya Javayant
1042Ricardo G SaylorsFrance2026-06-26Chanay, Jeffrey A Esq NEW2Anna Fali
1043Jefferson R GlickSpain2026-06-28Rangoni Of Florence QUALIFIED74Stephen Shaw
1044Claire P BriddickRussia2026-07-07Benton, John B Jr NEGOTIATION53Stephen Shaw
1045Aika V SlusarskiBrazil2026-06-26Commercial Press PROPOSAL45Elwin Sharvill
1046Silvio F GauchoRussia2026-06-16Benton, John B Jr UNQUALIFIED36Ivan Magalhaes
1047Darci M WaycottSpain2026-06-23Rousseaux, Michael Esq PROPOSAL87Ioni Bowcher
1048Maisha R BologniaRussia2026-06-20Rangoni Of Florence QUALIFIED27Asiya Javayant
1049Alejandro I GarufiRussia2026-07-11Buckley Miller Wright NEW69Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ricardo K AmigonArgentinaElwin Sharvill QUALIFIED
Francesco K CaldareraFranceAsiya Javayant PROPOSAL
Isabel W WieserJapanBernardo Dominic NEGOTIATION
Adams H SlusarskiFranceAnna Fali UNQUALIFIED
Chavez N VocelkaSpainAsiya Javayant PROPOSAL
Jefferson E OstroskyGermanyIvan Magalhaes NEW
Johnson X MaletCanadaAnna Fali RENEWAL
Jefferson G IturbideIndiaOnyama Limba NEW
Munro L WieserJapanAnna Fali RENEWAL
David C GlickUnited KingdomIvan Magalhaes NEGOTIATION
Juan I BologniaArgentinaIoni Bowcher RENEWAL
Francesco C PoquetteCanadaStephen Shaw QUALIFIED
Isabel B FerenczArgentinaAsiya Javayant QUALIFIED
Rodrigues F WhobreyJapanElwin Sharvill PROPOSAL
Sinclair L MarrierIndiaIvan Magalhaes UNQUALIFIED
Aruna A MarrierFranceOnyama Limba RENEWAL
Claire W GauchoRussiaIvan Magalhaes PROPOSAL
Jones Q MaletItalyElwin Sharvill UNQUALIFIED
Jefferson T WaycottJapanXuxue Feng RENEWAL
Aika Y TollnerSpainOnyama Limba NEGOTIATION
Julie V GarufiBrazilElwin Sharvill UNQUALIFIED
Jeanfrancois C ShinkoAustraliaElwin Sharvill UNQUALIFIED
Silvio X SlusarskiFranceAsiya Javayant RENEWAL
Jefferson M SaylorsFranceElwin Sharvill RENEWAL
Antonio U IturbideArgentinaIoni Bowcher UNQUALIFIED
Faith O TollnerSpainElwin Sharvill NEW
Emily P CampainBrazilIvan Magalhaes RENEWAL
Aditya N BologniaArgentinaAnna Fali RENEWAL
Emily W RutaFranceIoni Bowcher QUALIFIED
Juan K StockhamSpainAnna Fali RENEWAL
Munro L StensethUnited KingdomElwin Sharvill QUALIFIED
Misaki Q WieserCanadaAsiya Javayant NEW
Octavia H OldroydItalyAnna Fali NEGOTIATION
Cody S FigeroaItalyOnyama Limba QUALIFIED
Jones V MaletFranceIvan Magalhaes NEGOTIATION
Aditya C OstroskyCanadaElwin Sharvill NEW
Octavia H WaycottIndiaIoni Bowcher NEGOTIATION
Jeanfrancois Q KolmetzCanadaAsiya Javayant PROPOSAL
Sinclair J GarufiGermanyIoni Bowcher NEW
Isabel Q CaldareraFranceBernardo Dominic RENEWAL
Misaki J MaletArgentinaAmy Elsner RENEWAL
Stacey L NickaItalyStephen Shaw NEW
Claire V StensethRussiaOnyama Limba NEGOTIATION
James H TollnerUnited KingdomOnyama Limba QUALIFIED
Antonio U CaldareraUnited KingdomAsiya Javayant NEW
Jefferson V TollnerArgentinaAsiya Javayant NEGOTIATION
Isabel X FerenczAustraliaXuxue Feng UNQUALIFIED
Silvio Y SlusarskiGermanyAmy Elsner NEGOTIATION
Munro Y StensethSpainIoni Bowcher QUALIFIED
Stacey X RimFranceBernardo Dominic PROPOSAL
Frozen Columns
Name
Greenwood X Rim
James M Chui
Faith Z Whobrey
Juan Y Nicka
Jennifer N Malet
Maisha G Marrier
Francesco Y Tollner
Maisha D Gillian
Faith W Gillian
Aditya M Stenseth
Arvin H Stockham
Darci E Flosi
Silvio K Malet
Morrow F Poquette
Ashley N Malet
Kadeem D Glick
Kadeem H Caldarera
Octavia O Figeroa
David P Malet
Leja E Royster
Jeanfrancois Y Paprocki
Misaki P Ruta
Leja W Poquette
Maisha M Ostrosky
Maisha T Flosi
Faith O Figeroa
Sinclair N Perin
Costa W Kolmetz
Misaki Z Shinko
Aditya H Figeroa
Morrow L Kusko
Stacey I Glick
Emily W Briddick
Francesco A Flosi
Ivar P Venere
Juan Q Darakjy
Juan I Darakjy
Jefferson K Ostrosky
Emily E Iturbide
Morrow Q Malet
Leja R Gillian
Juan M Poquette
Ashley Z Campain
Claire B Marrier
Costa K Venere
Salvatore D Marrier
Juan X Paprocki
Stacey Z Shinko
Aika B Foller
Jennifer Q Gaucho
IdCountryDate
1000France2026-06-26
1001Australia2026-06-30
1002United Kingdom2026-07-10
1003Canada2026-07-08
1004Brazil2026-06-24
1005Spain2026-07-04
1006Italy2026-07-07
1007Argentina2026-06-19
1008Italy2026-07-03
1009Canada2026-06-26
1010Argentina2026-06-21
1011Italy2026-07-06
1012Italy2026-06-25
1013Italy2026-07-05
1014Italy2026-06-14
1015United Kingdom2026-06-16
1016Japan2026-06-21
1017Argentina2026-06-19
1018United Kingdom2026-06-15
1019Brazil2026-07-04
1020Japan2026-06-23
1021United Kingdom2026-06-13
1022Brazil2026-06-24
1023Brazil2026-06-22
1024Argentina2026-06-17
1025Australia2026-07-04
1026Japan2026-07-08
1027India2026-06-19
1028Germany2026-06-26
1029India2026-07-06
1030India2026-06-19
1031Germany2026-06-23
1032Brazil2026-06-20
1033Brazil2026-07-04
1034Brazil2026-07-02
1035Canada2026-07-06
1036Australia2026-07-06
1037Argentina2026-06-24
1038Japan2026-06-28
1039Russia2026-06-20
1040India2026-06-29
1041Argentina2026-07-08
1042Italy2026-07-09
1043Russia2026-07-04
1044Italy2026-07-06
1045Japan2026-06-28
1046France2026-06-23
1047United Kingdom2026-06-22
1048Spain2026-07-11
1049Spain2026-07-11

On-Demand Data

NameIdCountryDate
Isabel E Whobrey1000Canada2026-06-20
Misaki H Ostrosky1001Brazil2026-07-03
Antonio Y Albares1002Australia2026-06-22
Aika W Rulapaugh1003Brazil2026-06-27
Maria I Waycott1004United Kingdom2026-07-11
Chavez E Foller1005Russia2026-06-20
Jennifer I Briddick1006United Kingdom2026-06-29
Salvatore C Flosi1007Argentina2026-07-01
Munro A Wieser1008Russia2026-06-30
Aditya R Chui1009Germany2026-06-18
Costa U Whobrey1010Argentina2026-06-29
Ricardo E Waycott1011India2026-06-22
Maria Q Slusarski1012Russia2026-06-22
Claire M Ostrosky1013Japan2026-06-25
Jennifer R Kusko1014India2026-06-29
Ricardo H Ruta1015Argentina2026-07-01
Jones J Schemmer1016France2026-06-21
Francesco E Glick1017Australia2026-07-04
Ricardo Y Gaucho1018Italy2026-06-16
Tony N Malet1019Canada2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem D MarrierAustraliaElwin Sharvill NEW
Misaki H PerinItalyIoni Bowcher QUALIFIED
Munro I FerenczArgentinaOnyama Limba NEW
Isabel Q GillianCanadaStephen Shaw QUALIFIED
Greenwood J ShinkoCanadaIoni Bowcher NEW
Kadeem T OldroydGermanyAmy Elsner NEW
Julie G GillianItalyStephen Shaw NEW
Munro J MaletSpainIvan Magalhaes NEW
Maisha S NestleCanadaBernardo Dominic QUALIFIED
Maria V InouyeBrazilXuxue Feng UNQUALIFIED
Rodrigues Z DarakjyRussiaAsiya Javayant RENEWAL
Murillo X NickaFranceIoni Bowcher NEW
Murillo B KolmetzCanadaBernardo Dominic QUALIFIED
Juan B StockhamJapanAmy Elsner RENEWAL
Chavez W DilliardGermanyOnyama Limba RENEWAL
Jeanfrancois T CaldareraJapanAmy Elsner UNQUALIFIED
Aditya J BologniaRussiaIvan Magalhaes PROPOSAL
Greenwood B NestleRussiaAmy Elsner QUALIFIED
Mujtaba V KuskoCanadaAnna Fali NEW
Jones T MacleadCanadaXuxue Feng RENEWAL
Rodrigues F KuskoUnited KingdomAsiya Javayant PROPOSAL
Kaitlin Q FigeroaAustraliaStephen Shaw PROPOSAL
James N SchemmerJapanAsiya Javayant QUALIFIED
Ashley L WaycottAustraliaBernardo Dominic QUALIFIED
Emily H PaprockiIndiaIvan Magalhaes UNQUALIFIED
David M SchemmerRussiaOnyama Limba QUALIFIED
Darci R RimUnited KingdomBernardo Dominic NEGOTIATION
Adams R PerinItalyXuxue Feng NEW
Julie N VenereJapanIvan Magalhaes QUALIFIED
Kadeem Z WaycottSpainXuxue Feng RENEWAL
Claire Y SaylorsJapanIvan Magalhaes NEGOTIATION
Deepesh R WieserArgentinaXuxue Feng RENEWAL
Silvio Y MaletCanadaAmy Elsner PROPOSAL
Chavez A GlickFranceBernardo Dominic PROPOSAL
Julie G FerenczGermanyAmy Elsner RENEWAL
Claire R CampainBrazilXuxue Feng QUALIFIED
Claire T FlosiRussiaStephen Shaw PROPOSAL
Jones R MorascaCanadaAnna Fali NEGOTIATION
Kadeem R NickaArgentinaAmy Elsner UNQUALIFIED
Darci B PoquetteIndiaAnna Fali NEW

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