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
Wickens S DoeBrazilAnna Fali QUALIFIED
Murillo B VocelkaItalyElwin Sharvill RENEWAL
Wickens D RulapaughArgentinaAsiya Javayant UNQUALIFIED
Alejandro O RoysterAustraliaAmy Elsner PROPOSAL
Jones Q GauchoCanadaAmy Elsner QUALIFIED
James W WaycottCanadaXuxue Feng NEGOTIATION
Francesco E SlusarskiCanadaAnna Fali PROPOSAL
Jefferson F SaylorsJapanAnna Fali UNQUALIFIED
Aditya R FollerArgentinaAsiya Javayant NEGOTIATION
Munro W TollnerItalyElwin Sharvill UNQUALIFIED
Isabel Q DoeAustraliaAmy Elsner RENEWAL
Jeanfrancois L WieserFranceBernardo Dominic UNQUALIFIED
Maisha Z RimJapanAsiya Javayant NEW
Ivar L SaylorsItalyAmy Elsner RENEWAL
Rodrigues F ChuiUnited KingdomIoni Bowcher PROPOSAL
Juan L DarakjySpainStephen Shaw NEW
Greenwood L CaldareraJapanXuxue Feng NEW
Mayumi Y RutaSpainIvan Magalhaes QUALIFIED
Jennifer H CaldareraRussiaStephen Shaw RENEWAL
Darci Z RoysterArgentinaAsiya Javayant PROPOSAL
Leja F SergiBrazilAnna Fali PROPOSAL
Stacey K ButtGermanyElwin Sharvill NEW
Deepesh J KuskoBrazilBernardo Dominic UNQUALIFIED
Antonio S DoeJapanBernardo Dominic PROPOSAL
Silvio E SergiCanadaIoni Bowcher RENEWAL
Mujtaba F FlosiGermanyAmy Elsner UNQUALIFIED
Ivar F FlosiSpainIvan Magalhaes RENEWAL
Aruna O BologniaJapanXuxue Feng NEGOTIATION
Munro N RulapaughArgentinaIoni Bowcher PROPOSAL
Ricardo A MorascaItalyAmy Elsner NEW
Adams A WieserCanadaAsiya Javayant UNQUALIFIED
Johnson W KolmetzItalyIoni Bowcher UNQUALIFIED
Francesco L CaldareraItalyIvan Magalhaes NEW
Cody D ButtJapanIoni Bowcher QUALIFIED
Sinclair C VenereRussiaIvan Magalhaes PROPOSAL
Aika R RutaSpainIvan Magalhaes UNQUALIFIED
David N RutaItalyOnyama Limba UNQUALIFIED
Wickens C StockhamBrazilIvan Magalhaes PROPOSAL
Juan Z RulapaughFranceStephen Shaw UNQUALIFIED
Ashley R RutaBrazilOnyama Limba UNQUALIFIED
Jeanfrancois V BriddickUnited KingdomIvan Magalhaes NEGOTIATION
Wickens A GauchoBrazilStephen Shaw PROPOSAL
Chavez U IturbideArgentinaIvan Magalhaes NEW
David H RutaGermanyStephen Shaw QUALIFIED
Mayumi I GillianSpainAsiya Javayant NEGOTIATION
Leja X NestleIndiaElwin Sharvill PROPOSAL
Jefferson I VenereRussiaIoni Bowcher RENEWAL
David G KuskoIndiaIoni Bowcher RENEWAL
Misaki Q AlbaresAustraliaAmy Elsner PROPOSAL
David E SlusarskiBrazilElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony O GillianFranceIoni Bowcher NEW
Rodrigues V OldroydSpainElwin Sharvill PROPOSAL
Jones D RutaAustraliaAsiya Javayant QUALIFIED
Johnson B RoysterJapanAmy Elsner RENEWAL
Antonio T CampainFranceXuxue Feng QUALIFIED
James V CaldareraUnited KingdomAnna Fali QUALIFIED
Costa O WhobreyArgentinaBernardo Dominic NEW
Johnson M GarufiGermanyOnyama Limba NEGOTIATION
Stacey T RimFranceIvan Magalhaes RENEWAL
Munro F InouyeIndiaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow L GlickCanada2026-07-26Dorl, James J Esq UNQUALIFIED64Stephen Shaw
1001Francesco W MaletJapan2026-08-12Buckley Miller Wright NEGOTIATION57Anna Fali
1002Maria V GauchoJapan2026-08-06Morlong Associates RENEWAL99Amy Elsner
1003Kadeem H BologniaItaly2026-08-11Benton, John B Jr NEW45Anna Fali
1004Murillo D WaycottSpain2026-07-31Rangoni Of Florence PROPOSAL11Amy Elsner
1005Clifford G BriddickArgentina2026-08-04Chapman, Ross E Esq NEW98Elwin Sharvill
1006Ricardo E RulapaughGermany2026-08-15Morlong Associates QUALIFIED2Stephen Shaw
1007Jefferson I FerenczArgentina2026-08-06Rangoni Of Florence NEGOTIATION58Ioni Bowcher
1008Salvatore F IturbideIndia2026-07-24Feltz Printing Service QUALIFIED69Asiya Javayant
1009Ivar A ChuiBrazil2026-08-04Morlong Associates RENEWAL69Ivan Magalhaes
1010Julie L WieserRussia2026-08-16Printing Dimensions RENEWAL53Bernardo Dominic
1011Aika V KuskoArgentina2026-08-10Printing Dimensions RENEWAL29Ivan Magalhaes
1012Aika G KolmetzUnited Kingdom2026-08-21Feiner Bros NEGOTIATION28Asiya Javayant
1013Silvio W RimJapan2026-08-18Truhlar And Truhlar Attys PROPOSAL80Bernardo Dominic
1014Nicolas U FigeroaItaly2026-07-29Chanay, Jeffrey A Esq NEGOTIATION85Amy Elsner
1015Ashley Y PaprockiArgentina2026-07-24Chemel, James L Cpa NEGOTIATION41Onyama Limba
1016Claire X WhobreyCanada2026-08-12Chanay, Jeffrey A Esq RENEWAL1Asiya Javayant
1017Izzy M ChuiIndia2026-07-25Buckley Miller Wright UNQUALIFIED89Amy Elsner
1018Adams V RimRussia2026-07-30Commercial Press RENEWAL84Amy Elsner
1019Rodrigues G MorascaAustralia2026-08-11Commercial Press QUALIFIED64Ioni Bowcher
1020Ashley V AmigonArgentina2026-08-03Buckley Miller Wright PROPOSAL37Xuxue Feng
1021Aruna P GillianIndia2026-07-24Feltz Printing Service NEW19Ivan Magalhaes
1022David D NestleCanada2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED25Amy Elsner
1023Murillo J MaletSpain2026-08-02Chapman, Ross E Esq PROPOSAL73Stephen Shaw
1024Aruna X MaletItaly2026-08-08Dorl, James J Esq NEW94Anna Fali
1025Mujtaba D FerenczJapan2026-08-20Truhlar And Truhlar Attys QUALIFIED52Stephen Shaw
1026Wickens V DilliardRussia2026-08-06King, Christopher A Esq UNQUALIFIED97Elwin Sharvill
1027Maisha J BologniaItaly2026-08-05Dorl, James J Esq NEGOTIATION59Amy Elsner
1028Isabel B RulapaughRussia2026-08-18Morlong Associates NEGOTIATION78Asiya Javayant
1029Mujtaba L BowleyArgentina2026-07-29King, Christopher A Esq UNQUALIFIED83Xuxue Feng
1030Julie K BriddickAustralia2026-07-25Rousseaux, Michael Esq NEGOTIATION6Elwin Sharvill
1031Jennifer T PerinGermany2026-08-12Printing Dimensions QUALIFIED39Onyama Limba
1032Stacey C ButtIndia2026-08-06Benton, John B Jr RENEWAL61Stephen Shaw
1033Clifford Q KolmetzFrance2026-08-13Chanay, Jeffrey A Esq RENEWAL5Elwin Sharvill
1034Darci P ShinkoJapan2026-08-09Chanay, Jeffrey A Esq NEGOTIATION31Ioni Bowcher
1035Salvatore N CaudyItaly2026-08-04Truhlar And Truhlar Attys NEW98Ioni Bowcher
1036David W StockhamRussia2026-07-28Dorl, James J Esq UNQUALIFIED97Onyama Limba
1037Rodrigues W CaudyIndia2026-07-29King, Christopher A Esq PROPOSAL22Amy Elsner
1038Murillo E MorascaCanada2026-07-24Truhlar And Truhlar Attys PROPOSAL20Asiya Javayant
1039Izzy Z GarufiBrazil2026-08-21Feltz Printing Service NEW78Xuxue Feng
1040Emily Y SlusarskiUnited Kingdom2026-08-08Rousseaux, Michael Esq QUALIFIED53Amy Elsner
1041Costa V ChuiJapan2026-07-25Feiner Bros NEGOTIATION79Stephen Shaw
1042Emily L SchemmerItaly2026-08-09Chanay, Jeffrey A Esq NEGOTIATION6Stephen Shaw
1043Arvin E CaldareraUnited Kingdom2026-07-23Rousseaux, Michael Esq RENEWAL37Xuxue Feng
1044David X OstroskyBrazil2026-07-29Rousseaux, Michael Esq QUALIFIED83Asiya Javayant
1045Smith T PaprockiItaly2026-07-26Rousseaux, Michael Esq NEW22Ivan Magalhaes
1046Costa J CampainUnited Kingdom2026-08-04Chemel, James L Cpa QUALIFIED39Bernardo Dominic
1047Octavia O AlbaresItaly2026-07-24Truhlar And Truhlar Attys QUALIFIED25Amy Elsner
1048James U GauchoFrance2026-08-09Morlong Associates UNQUALIFIED89Anna Fali
1049Silvio W OstroskyRussia2026-08-18Truhlar And Truhlar Attys NEW95Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Kadeem R ButtUnited KingdomAmy Elsner UNQUALIFIED
Leon X FlosiSpainXuxue Feng NEW
Ashley P DilliardItalyXuxue Feng PROPOSAL
Antonio K CaudyIndiaXuxue Feng NEGOTIATION
Nicolas S TollnerItalyIvan Magalhaes NEGOTIATION
Ashley S NickaUnited KingdomIoni Bowcher PROPOSAL
David N KuskoFranceIvan Magalhaes PROPOSAL
Sinclair A OstroskyFranceIoni Bowcher NEW
Maisha D RutaSpainIvan Magalhaes UNQUALIFIED
Clifford M MarrierItalyStephen Shaw NEW
Mujtaba E CaldareraArgentinaAsiya Javayant UNQUALIFIED
Kaitlin U WieserItalyBernardo Dominic RENEWAL
Stacey E RimFranceIvan Magalhaes RENEWAL
Smith B ShinkoSpainAmy Elsner UNQUALIFIED
Munro R OstroskyUnited KingdomXuxue Feng NEW
Clifford K GlickUnited KingdomAmy Elsner RENEWAL
Ashley D ChuiItalyStephen Shaw RENEWAL
Clifford Z DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Deepesh O GillianItalyAmy Elsner PROPOSAL
Jennifer G CaldareraJapanAnna Fali NEW
Adams D CaudyBrazilElwin Sharvill PROPOSAL
Antonio Z DoeSpainAmy Elsner QUALIFIED
Leon Q ChuiJapanAsiya Javayant NEGOTIATION
Mujtaba Q DoeCanadaBernardo Dominic QUALIFIED
Francesco T GauchoFranceBernardo Dominic NEGOTIATION
Costa T FerenczAustraliaXuxue Feng NEW
Aika I VocelkaGermanyAmy Elsner QUALIFIED
Alejandro E CaudyArgentinaIvan Magalhaes PROPOSAL
Stacey S StockhamSpainAmy Elsner NEW
Juan F WhobreyRussiaIoni Bowcher QUALIFIED
Stacey V DoeBrazilAnna Fali PROPOSAL
James C GillianArgentinaIoni Bowcher NEW
Clifford F TollnerSpainIoni Bowcher RENEWAL
Stacey E CaudyIndiaBernardo Dominic UNQUALIFIED
Jones M WhobreyUnited KingdomAnna Fali NEW
Octavia R NestleFranceBernardo Dominic NEW
Claire V KolmetzRussiaOnyama Limba NEW
Adams Y DilliardIndiaOnyama Limba UNQUALIFIED
Costa T BriddickJapanBernardo Dominic UNQUALIFIED
Claire N MacleadBrazilIvan Magalhaes NEGOTIATION
Maisha A NickaItalyIoni Bowcher NEW
Emily L RimArgentinaOnyama Limba QUALIFIED
Kadeem A FollerSpainStephen Shaw NEW
Izzy D FollerUnited KingdomIvan Magalhaes PROPOSAL
Jefferson K DarakjyAustraliaBernardo Dominic NEGOTIATION
Stacey U AlbaresUnited KingdomAnna Fali RENEWAL
Antonio K WieserUnited KingdomIvan Magalhaes PROPOSAL
Chavez H FigeroaCanadaAsiya Javayant NEW
Misaki N DarakjyBrazilIoni Bowcher QUALIFIED
Claire J CampainUnited KingdomElwin Sharvill RENEWAL
Frozen Columns
Name
Salvatore M Morasca
Juan N Figeroa
Jones Q Malet
Murillo B Malet
Arvin Z Campain
Izzy T Shinko
Leon M Paprocki
Octavia J Doe
Murillo A Kolmetz
Leon P Foller
Adams Q Paprocki
Misaki K Darakjy
Jefferson U Malet
Leja V Maclead
Morrow Y Sergi
Aruna M Amigon
Aruna S Nicka
Julie X Nestle
Arvin P Glick
Jefferson X Venere
Claire G Waycott
Julie V Oldroyd
Julie Q Slusarski
Izzy O Albares
Alejandro A Wieser
Darci D Saylors
Silvio W Shinko
Tony K Marrier
Johnson R Kolmetz
Aditya X Waycott
Misaki D Sergi
Jeanfrancois Y Marrier
Isabel F Rulapaugh
Faith Q Garufi
Murillo Q Caldarera
James R Kusko
Maria X Perin
Misaki S Stenseth
Greenwood P Saylors
Aruna A Chui
Julie F Royster
Aika T Schemmer
Aditya U Saylors
Claire B Albares
Francesco D Butt
Darci V Malet
Murillo P Schemmer
Silvio G Bowley
Tony H Sergi
Emily A Bowley
IdCountryDate
1000India2026-07-28
1001Japan2026-08-08
1002Italy2026-08-20
1003Germany2026-08-11
1004Italy2026-08-16
1005Spain2026-08-20
1006Argentina2026-08-16
1007United Kingdom2026-08-01
1008Germany2026-08-15
1009Italy2026-08-06
1010France2026-08-01
1011France2026-07-24
1012Brazil2026-08-20
1013Italy2026-07-28
1014Canada2026-08-14
1015Canada2026-07-29
1016Brazil2026-08-04
1017Argentina2026-08-03
1018Canada2026-08-13
1019Australia2026-08-07
1020Brazil2026-08-01
1021United Kingdom2026-08-19
1022Argentina2026-07-26
1023India2026-08-10
1024Brazil2026-08-06
1025France2026-08-02
1026Argentina2026-07-23
1027Argentina2026-07-26
1028Argentina2026-08-18
1029United Kingdom2026-08-19
1030France2026-08-06
1031Argentina2026-08-09
1032Brazil2026-08-13
1033Brazil2026-08-10
1034Spain2026-08-04
1035Canada2026-07-24
1036Japan2026-08-13
1037Australia2026-08-15
1038Brazil2026-08-09
1039Spain2026-08-20
1040Italy2026-08-10
1041France2026-08-09
1042Japan2026-08-08
1043Argentina2026-07-31
1044Brazil2026-08-03
1045Japan2026-07-24
1046Spain2026-08-08
1047Canada2026-08-18
1048India2026-08-03
1049Germany2026-08-11

On-Demand Data

NameIdCountryDate
Greenwood H Gillian1000Canada2026-08-21
Murillo O Inouye1001Japan2026-08-21
Aika Y Kusko1002Australia2026-08-13
Ashley X Morasca1003India2026-07-31
Chavez E Vocelka1004Canada2026-08-05
Jones W Butt1005United Kingdom2026-08-02
Aditya P Saylors1006United Kingdom2026-07-26
Arvin S Malet1007Russia2026-07-25
Kaitlin Z Gaucho1008Australia2026-07-25
Tony L Ostrosky1009Spain2026-08-07
Ashley X Darakjy1010Germany2026-08-21
Claire Q Albares1011Australia2026-08-14
James T Poquette1012Germany2026-08-14
Jeanfrancois T Briddick1013Germany2026-08-20
Julie Y Poquette1014France2026-08-01
Maisha Z Garufi1015Japan2026-08-21
Jones Q Stockham1016France2026-08-18
Tony R Malet1017Argentina2026-08-10
Kadeem T Shinko1018Australia2026-07-27
Antonio H Tollner1019Argentina2026-08-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar A MarrierSpainOnyama Limba NEGOTIATION
Leon R NestleRussiaStephen Shaw RENEWAL
Aruna G RulapaughCanadaAmy Elsner QUALIFIED
Murillo I OstroskyUnited KingdomAmy Elsner RENEWAL
Octavia E InouyeArgentinaAsiya Javayant NEW
Mujtaba C DarakjyArgentinaBernardo Dominic PROPOSAL
Sinclair E NestleBrazilElwin Sharvill NEGOTIATION
Adams N ShinkoCanadaAmy Elsner NEW
Cody P MorascaUnited KingdomOnyama Limba NEW
Izzy B SaylorsFranceElwin Sharvill NEGOTIATION
Ashley T WaycottBrazilXuxue Feng NEGOTIATION
Silvio K InouyeFranceBernardo Dominic QUALIFIED
Francesco P TollnerItalyStephen Shaw NEW
Leon C BowleyJapanStephen Shaw UNQUALIFIED
Alejandro H WaycottUnited KingdomXuxue Feng PROPOSAL
Ashley H CampainUnited KingdomAnna Fali QUALIFIED
Wickens D VenereJapanXuxue Feng QUALIFIED
Kadeem C IturbideGermanyIoni Bowcher NEGOTIATION
Leon O RulapaughCanadaElwin Sharvill PROPOSAL
Faith Z PerinUnited KingdomIvan Magalhaes NEGOTIATION
Johnson Q AmigonIndiaAsiya Javayant UNQUALIFIED
Isabel F KolmetzAustraliaStephen Shaw PROPOSAL
Salvatore V MorascaGermanyXuxue Feng NEW
Salvatore D IturbideAustraliaIvan Magalhaes RENEWAL
Jones L WhobreyGermanyIvan Magalhaes NEGOTIATION
Emily D ButtBrazilIoni Bowcher QUALIFIED
Stacey G AmigonArgentinaXuxue Feng QUALIFIED
Mayumi M PaprockiIndiaXuxue Feng PROPOSAL
Aditya E VenereGermanyAnna Fali PROPOSAL
Jefferson V NestleRussiaElwin Sharvill UNQUALIFIED
Ivar H FerenczItalyAsiya Javayant QUALIFIED
Deepesh Y MaletSpainStephen Shaw RENEWAL
Francesco R CaldareraArgentinaBernardo Dominic NEW
Francesco W RimIndiaElwin Sharvill PROPOSAL
Ricardo C GillianRussiaIoni Bowcher NEW
Morrow K RoysterJapanIoni Bowcher NEGOTIATION
Ricardo H WieserUnited KingdomXuxue Feng PROPOSAL
Rodrigues A TollnerArgentinaStephen Shaw NEGOTIATION
Kaitlin S DoeUnited KingdomXuxue Feng PROPOSAL
Smith C StensethJapanElwin Sharvill UNQUALIFIED

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