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
James W FerenczRussiaOnyama Limba QUALIFIED
Johnson Y ShinkoJapanIvan Magalhaes NEGOTIATION
Juan X OstroskyItalyBernardo Dominic UNQUALIFIED
Aika N IturbideFranceElwin Sharvill NEGOTIATION
Deepesh J PoquetteJapanIoni Bowcher NEGOTIATION
Leon I WieserItalyOnyama Limba NEGOTIATION
Greenwood P IturbideUnited KingdomOnyama Limba RENEWAL
Mayumi B RimArgentinaAsiya Javayant UNQUALIFIED
Munro K MaletRussiaXuxue Feng NEGOTIATION
Jones N DarakjyCanadaAmy Elsner QUALIFIED
Chavez P WaycottFranceAnna Fali UNQUALIFIED
Mujtaba U WaycottRussiaAsiya Javayant RENEWAL
Tony M MarrierSpainBernardo Dominic PROPOSAL
Antonio O MaletBrazilIvan Magalhaes RENEWAL
Adams V CampainGermanyIoni Bowcher UNQUALIFIED
Kaitlin L DarakjyIndiaStephen Shaw QUALIFIED
Johnson Q StensethAustraliaXuxue Feng QUALIFIED
Izzy U CaldareraItalyAnna Fali NEW
Alejandro X MaletArgentinaXuxue Feng UNQUALIFIED
Izzy F IturbideCanadaOnyama Limba NEGOTIATION
Jefferson D RimFranceAnna Fali UNQUALIFIED
Sinclair C DarakjyAustraliaAsiya Javayant PROPOSAL
Silvio Y PerinAustraliaAnna Fali QUALIFIED
Faith J KuskoUnited KingdomOnyama Limba PROPOSAL
Kaitlin Y MarrierBrazilIvan Magalhaes RENEWAL
Aruna M MorascaFranceBernardo Dominic NEGOTIATION
Leon U SchemmerCanadaAmy Elsner UNQUALIFIED
Jennifer C MaletAustraliaAsiya Javayant NEW
Ivar O AlbaresSpainOnyama Limba NEGOTIATION
Emily L WhobreyIndiaBernardo Dominic RENEWAL
Cody U GlickJapanBernardo Dominic QUALIFIED
Juan K MacleadGermanyIoni Bowcher NEGOTIATION
Wickens B SchemmerBrazilElwin Sharvill UNQUALIFIED
Salvatore Y WieserItalyIvan Magalhaes UNQUALIFIED
Izzy H MacleadFranceAnna Fali UNQUALIFIED
David K GlickCanadaAmy Elsner NEW
Morrow T FollerItalyIvan Magalhaes UNQUALIFIED
Jones R MorascaBrazilAmy Elsner NEW
Salvatore J CampainBrazilAnna Fali UNQUALIFIED
Salvatore G CaldareraIndiaElwin Sharvill PROPOSAL
Aditya X FlosiBrazilIoni Bowcher UNQUALIFIED
Alejandro I NickaSpainBernardo Dominic NEW
Mujtaba O RulapaughJapanAnna Fali QUALIFIED
Mayumi L AlbaresUnited KingdomIoni Bowcher QUALIFIED
Jones N OstroskyItalyXuxue Feng UNQUALIFIED
David B DilliardSpainStephen Shaw RENEWAL
Isabel D WaycottBrazilStephen Shaw NEW
Julie C ButtGermanyAmy Elsner UNQUALIFIED
Adams A StensethArgentinaElwin Sharvill QUALIFIED
Aika X ShinkoItalyAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Johnson J VenereSpainElwin Sharvill QUALIFIED
Cody D MaletIndiaStephen Shaw UNQUALIFIED
Wickens X DilliardJapanXuxue Feng PROPOSAL
Johnson I RutaItalyElwin Sharvill RENEWAL
Misaki H RulapaughIndiaElwin Sharvill NEGOTIATION
Aika W WhobreyArgentinaIvan Magalhaes NEW
Kadeem H RulapaughArgentinaOnyama Limba RENEWAL
Smith O BologniaSpainElwin Sharvill NEW
Salvatore K BologniaSpainBernardo Dominic RENEWAL
Claire Q MacleadRussiaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues I CaudyItaly2025-04-24Morlong Associates UNQUALIFIED70Amy Elsner
1001Ivar R PoquetteRussia2025-04-20Printing Dimensions UNQUALIFIED62Stephen Shaw
1002Nicolas S NickaIndia2025-04-18Truhlar And Truhlar Attys QUALIFIED91Stephen Shaw
1003David U PoquetteAustralia2025-04-03Rousseaux, Michael Esq NEGOTIATION94Xuxue Feng
1004Aditya H MarrierArgentina2025-04-15Chapman, Ross E Esq UNQUALIFIED82Asiya Javayant
1005Adams K PerinAustralia2025-04-12Truhlar And Truhlar Attys NEW7Anna Fali
1006Jefferson Y CaldareraAustralia2025-04-10Rangoni Of Florence PROPOSAL73Ioni Bowcher
1007Arvin N VocelkaAustralia2025-04-05Morlong Associates NEGOTIATION39Onyama Limba
1008Aika H RimAustralia2025-04-20Feiner Bros PROPOSAL80Stephen Shaw
1009Faith H ShinkoSpain2025-04-02Chemel, James L Cpa RENEWAL27Anna Fali
1010Chavez B WhobreyRussia2025-04-03Printing Dimensions UNQUALIFIED99Ioni Bowcher
1011Mujtaba B MorascaArgentina2025-04-19Morlong Associates RENEWAL91Ivan Magalhaes
1012Rodrigues B MaletAustralia2025-04-27Chapman, Ross E Esq QUALIFIED73Bernardo Dominic
1013Claire L CaudyAustralia2025-04-23Dorl, James J Esq PROPOSAL58Elwin Sharvill
1014Misaki C ChuiCanada2025-04-19Chemel, James L Cpa PROPOSAL11Ivan Magalhaes
1015Cody S InouyeGermany2025-04-10Chanay, Jeffrey A Esq UNQUALIFIED66Elwin Sharvill
1016Rodrigues Y OldroydRussia2025-04-06Rangoni Of Florence NEW32Xuxue Feng
1017Stacey P VenereArgentina2025-04-16Commercial Press NEGOTIATION55Ioni Bowcher
1018Kadeem A MorascaRussia2025-04-27Printing Dimensions RENEWAL1Stephen Shaw
1019James B WhobreyArgentina2025-04-06Chemel, James L Cpa PROPOSAL54Ivan Magalhaes
1020Jones P PoquetteSpain2025-04-16Feiner Bros PROPOSAL58Xuxue Feng
1021Ricardo B DilliardArgentina2025-04-07Benton, John B Jr NEGOTIATION6Bernardo Dominic
1022Maisha Q StockhamIndia2025-04-07Chapman, Ross E Esq RENEWAL48Ivan Magalhaes
1023Morrow C AmigonBrazil2025-04-03Truhlar And Truhlar Attys UNQUALIFIED12Bernardo Dominic
1024Munro P AlbaresIndia2025-04-12Chemel, James L Cpa QUALIFIED92Anna Fali
1025Kaitlin Z SchemmerIndia2025-04-29Rangoni Of Florence NEGOTIATION34Anna Fali
1026Greenwood W GarufiGermany2025-04-21Rousseaux, Michael Esq UNQUALIFIED36Ioni Bowcher
1027Salvatore N RulapaughRussia2025-04-12Dorl, James J Esq UNQUALIFIED48Asiya Javayant
1028Kadeem K SergiItaly2025-04-28Rangoni Of Florence NEW77Ioni Bowcher
1029Jennifer Q MacleadBrazil2025-04-12Chanay, Jeffrey A Esq NEGOTIATION47Elwin Sharvill
1030Aika L KuskoIndia2025-04-17Rangoni Of Florence NEGOTIATION86Asiya Javayant
1031Isabel K MaletAustralia2025-03-31Feiner Bros RENEWAL54Amy Elsner
1032Emily N RutaFrance2025-04-22Dorl, James J Esq RENEWAL52Asiya Javayant
1033Munro M CaldareraAustralia2025-04-07Buckley Miller Wright NEGOTIATION0Bernardo Dominic
1034Jennifer P IturbideItaly2025-04-05Truhlar And Truhlar Attys UNQUALIFIED61Anna Fali
1035Sinclair K WieserArgentina2025-04-20Buckley Miller Wright NEGOTIATION90Xuxue Feng
1036David Q RutaRussia2025-04-03Feltz Printing Service PROPOSAL15Asiya Javayant
1037Jennifer Q BologniaBrazil2025-04-18Printing Dimensions QUALIFIED62Onyama Limba
1038Clifford Z GillianItaly2025-04-24King, Christopher A Esq UNQUALIFIED37Bernardo Dominic
1039Jeanfrancois Z VocelkaCanada2025-04-20Dorl, James J Esq NEW25Bernardo Dominic
1040Costa X MarrierAustralia2025-04-23Truhlar And Truhlar Attys RENEWAL37Stephen Shaw
1041Izzy A MacleadRussia2025-04-29Truhlar And Truhlar Attys QUALIFIED71Asiya Javayant
1042Arvin K SchemmerCanada2025-04-07Truhlar And Truhlar Attys PROPOSAL59Ivan Magalhaes
1043Aruna G NickaAustralia2025-04-08Buckley Miller Wright PROPOSAL74Bernardo Dominic
1044Murillo H AlbaresGermany2025-04-01Commercial Press UNQUALIFIED58Ivan Magalhaes
1045Leon I CampainJapan2025-04-19Benton, John B Jr UNQUALIFIED10Bernardo Dominic
1046Ashley N DoeCanada2025-04-20Rousseaux, Michael Esq PROPOSAL53Onyama Limba
1047Murillo F FlosiCanada2025-04-05Commercial Press NEGOTIATION3Onyama Limba
1048Kadeem U OstroskyRussia2025-04-21Buckley Miller Wright RENEWAL76Amy Elsner
1049Claire R StockhamAustralia2025-04-03Chemel, James L Cpa RENEWAL3Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Adams K RutaItalyXuxue Feng NEW
Salvatore Z FollerIndiaAmy Elsner UNQUALIFIED
Mujtaba J AmigonFranceAmy Elsner NEW
Leon F BowleyIndiaIvan Magalhaes RENEWAL
Antonio V FlosiFranceXuxue Feng RENEWAL
Rodrigues G DarakjyFranceIvan Magalhaes UNQUALIFIED
Octavia N GlickAustraliaElwin Sharvill NEGOTIATION
Wickens L BologniaAustraliaBernardo Dominic UNQUALIFIED
Clifford Y BowleyGermanyStephen Shaw NEW
Antonio A GillianItalyAsiya Javayant NEW
Leon W VocelkaSpainAsiya Javayant QUALIFIED
Francesco V InouyeRussiaIvan Magalhaes NEGOTIATION
Wickens R CampainItalyOnyama Limba NEGOTIATION
Maria J SaylorsArgentinaAmy Elsner NEW
Mujtaba B RimJapanIvan Magalhaes NEW
Francesco D StockhamItalyAmy Elsner NEGOTIATION
Darci H PaprockiJapanAsiya Javayant RENEWAL
Mujtaba S MaletAustraliaAmy Elsner NEGOTIATION
Juan A AlbaresJapanElwin Sharvill UNQUALIFIED
Maria Z MorascaJapanAsiya Javayant NEGOTIATION
Ivar F RutaBrazilAnna Fali RENEWAL
Smith E SlusarskiFranceAmy Elsner RENEWAL
Sinclair B VenereItalyAnna Fali UNQUALIFIED
Nicolas M GarufiFranceXuxue Feng QUALIFIED
Smith C GauchoAustraliaXuxue Feng QUALIFIED
Aruna F MarrierSpainIoni Bowcher UNQUALIFIED
Smith A StockhamItalyAsiya Javayant NEW
Adams R MacleadCanadaAsiya Javayant NEGOTIATION
Aika W ChuiSpainIvan Magalhaes QUALIFIED
Octavia W OldroydSpainXuxue Feng RENEWAL
Faith U MorascaFranceAsiya Javayant PROPOSAL
Kaitlin M TollnerCanadaXuxue Feng QUALIFIED
Leja V StockhamJapanAnna Fali NEGOTIATION
Wickens B PaprockiFranceStephen Shaw QUALIFIED
Julie H GarufiGermanyAsiya Javayant NEW
Aika B GillianSpainAnna Fali PROPOSAL
Izzy Z FollerSpainElwin Sharvill UNQUALIFIED
David U ShinkoIndiaIvan Magalhaes NEGOTIATION
Mayumi A PoquetteUnited KingdomAnna Fali QUALIFIED
Morrow E NestleJapanBernardo Dominic NEW
Maria M DoeJapanIoni Bowcher UNQUALIFIED
Alejandro R MaletUnited KingdomXuxue Feng NEW
Ricardo X WieserBrazilIvan Magalhaes NEW
Arvin H PaprockiArgentinaIvan Magalhaes PROPOSAL
Maria L GlickRussiaIoni Bowcher QUALIFIED
Ashley J BowleyItalyAnna Fali NEW
Claire M MorascaCanadaAmy Elsner UNQUALIFIED
Costa E RulapaughCanadaElwin Sharvill RENEWAL
Ivar J VocelkaAustraliaAmy Elsner NEGOTIATION
Jones A AmigonBrazilAnna Fali NEGOTIATION
Frozen Columns
Name
Faith M Gillian
Aditya C Darakjy
Ivar D Doe
James O Nestle
Nicolas W Tollner
Faith B Stockham
Costa A Nicka
Ricardo K Nicka
Antonio O Albares
Mujtaba S Morasca
Aika G Morasca
Julie Z Saylors
Stacey A Malet
Costa S Caldarera
Johnson D Kusko
Aditya R Gaucho
Adams C Ferencz
Julie X Foller
Ashley J Briddick
Johnson X Doe
Aditya G Malet
Ricardo U Caldarera
Sinclair S Bolognia
Leja J Rim
Kaitlin T Wieser
Leja C Schemmer
David K Doe
Mujtaba J Nicka
Jones X Poquette
Kadeem X Dilliard
Leon P Figeroa
Mujtaba C Ruta
Jeanfrancois O Stenseth
Ashley S Bolognia
Jeanfrancois U Albares
Antonio D Royster
Johnson C Perin
Maria M Figeroa
Ivar B Marrier
Rodrigues H Schemmer
Aditya Q Malet
Francesco P Schemmer
Stacey D Amigon
Francesco V Vocelka
Ashley M Doe
Juan Q Royster
Aika O Kolmetz
Julie V Poquette
Octavia L Briddick
Cody J Campain
IdCountryDate
1000United Kingdom2025-04-02
1001Italy2025-04-10
1002Italy2025-04-27
1003France2025-04-17
1004Canada2025-04-08
1005Canada2025-04-03
1006India2025-04-12
1007Italy2025-04-26
1008Japan2025-04-07
1009United Kingdom2025-04-28
1010Russia2025-04-20
1011Germany2025-04-13
1012Canada2025-04-11
1013Brazil2025-04-04
1014India2025-04-13
1015Argentina2025-04-19
1016Brazil2025-04-27
1017Russia2025-04-19
1018India2025-04-19
1019Russia2025-04-12
1020France2025-04-23
1021United Kingdom2025-04-03
1022India2025-04-14
1023Italy2025-04-10
1024Australia2025-04-13
1025Brazil2025-04-18
1026Italy2025-04-21
1027Spain2025-04-16
1028Japan2025-04-04
1029Japan2025-04-27
1030Brazil2025-04-01
1031Germany2025-04-06
1032France2025-04-13
1033Argentina2025-04-07
1034Spain2025-04-09
1035Brazil2025-04-20
1036Spain2025-04-29
1037Russia2025-04-06
1038France2025-04-27
1039Germany2025-03-31
1040Australia2025-04-16
1041Germany2025-04-16
1042United Kingdom2025-04-14
1043Russia2025-04-03
1044Brazil2025-04-29
1045India2025-04-03
1046Australia2025-04-16
1047Japan2025-04-04
1048Japan2025-04-27
1049France2025-04-21

On-Demand Data

NameIdCountryDate
Johnson M Flosi1000Brazil2025-04-15
Wickens J Sergi1001Argentina2025-04-18
Maria K Stenseth1002United Kingdom2025-04-03
Nicolas I Bowley1003Spain2025-04-18
Arvin V Dilliard1004United Kingdom2025-04-20
Izzy Z Paprocki1005Australia2025-04-11
Munro D Dilliard1006Canada2025-04-19
Ricardo G Whobrey1007India2025-04-27
Wickens Q Figeroa1008Germany2025-04-22
Maria R Saylors1009Japan2025-04-10
Leon A Stockham1010Argentina2025-04-03
Kaitlin E Malet1011Italy2025-04-27
Murillo B Bolognia1012Germany2025-04-25
Leon S Oldroyd1013India2025-04-15
Wickens T Inouye1014Spain2025-04-25
Julie D Flosi1015Brazil2025-04-21
Jennifer Z Figeroa1016Brazil2025-04-10
Ricardo B Shinko1017Japan2025-04-26
Mayumi O Stockham1018Australia2025-04-18
Maria N Caldarera1019Argentina2025-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha N ShinkoBrazilAmy Elsner UNQUALIFIED
Jefferson Q FlosiAustraliaAsiya Javayant NEGOTIATION
David S BowleyJapanIoni Bowcher NEGOTIATION
Misaki Z IturbideRussiaBernardo Dominic NEW
Stacey T SergiFranceOnyama Limba NEW
Mujtaba C RutaUnited KingdomBernardo Dominic NEW
Leon D PaprockiItalyIoni Bowcher RENEWAL
Leon X MorascaIndiaElwin Sharvill PROPOSAL
Darci W VenereIndiaOnyama Limba RENEWAL
David I RutaBrazilStephen Shaw UNQUALIFIED
Francesco M WhobreyRussiaIoni Bowcher RENEWAL
Aruna E KolmetzIndiaIvan Magalhaes UNQUALIFIED
Costa Q NestleItalyXuxue Feng QUALIFIED
Darci M VocelkaItalyAnna Fali NEGOTIATION
Kadeem Z FlosiIndiaAsiya Javayant NEGOTIATION
Adams W GlickGermanyAnna Fali PROPOSAL
Cody J KolmetzAustraliaStephen Shaw RENEWAL
Chavez H IturbideFranceOnyama Limba QUALIFIED
Darci M GlickIndiaStephen Shaw PROPOSAL
Silvio I NickaArgentinaElwin Sharvill UNQUALIFIED
Darci H RoysterItalyIoni Bowcher UNQUALIFIED
Sinclair J SaylorsBrazilAsiya Javayant NEW
Leja N InouyeRussiaAmy Elsner UNQUALIFIED
Cody H BowleyGermanyElwin Sharvill PROPOSAL
Ricardo U GillianBrazilElwin Sharvill QUALIFIED
Octavia H NickaItalyStephen Shaw RENEWAL
Ashley O SchemmerCanadaXuxue Feng UNQUALIFIED
Smith G RimGermanyStephen Shaw NEW
Aruna B WhobreySpainBernardo Dominic UNQUALIFIED
Octavia Y RulapaughBrazilAmy Elsner RENEWAL
Salvatore F NickaRussiaIoni Bowcher UNQUALIFIED
Octavia L NickaArgentinaAmy Elsner UNQUALIFIED
Smith R SergiItalyOnyama Limba PROPOSAL
Maisha F AmigonArgentinaAsiya Javayant NEGOTIATION
Darci N VocelkaIndiaXuxue Feng PROPOSAL
Arvin R BowleyArgentinaXuxue Feng RENEWAL
Mujtaba P GarufiJapanAmy Elsner PROPOSAL
Mujtaba J RulapaughArgentinaElwin Sharvill QUALIFIED
Adams E RoysterFranceIoni Bowcher QUALIFIED
Johnson K MorascaAustraliaAnna Fali 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>