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
Adams U DilliardUnited KingdomOnyama Limba NEGOTIATION
Isabel S StensethCanadaBernardo Dominic RENEWAL
Jennifer B MaletBrazilOnyama Limba RENEWAL
Aika W CampainSpainAsiya Javayant PROPOSAL
Kaitlin O NestleArgentinaAmy Elsner RENEWAL
Mayumi M OstroskyAustraliaIvan Magalhaes RENEWAL
Ricardo N RimUnited KingdomXuxue Feng NEW
Munro R OstroskyBrazilIvan Magalhaes PROPOSAL
Jones E GarufiFranceIoni Bowcher QUALIFIED
Ricardo G CaldareraSpainIvan Magalhaes NEW
Rodrigues X SaylorsCanadaStephen Shaw PROPOSAL
Leja D SchemmerIndiaAmy Elsner NEGOTIATION
Claire H CaldareraJapanAnna Fali UNQUALIFIED
Greenwood W SchemmerFranceIvan Magalhaes RENEWAL
Johnson S SlusarskiRussiaBernardo Dominic RENEWAL
Aditya J AlbaresBrazilXuxue Feng NEW
Claire Y NestleRussiaOnyama Limba NEW
Munro G PerinCanadaIoni Bowcher QUALIFIED
Isabel M VocelkaAustraliaStephen Shaw UNQUALIFIED
Faith A KuskoSpainElwin Sharvill NEGOTIATION
Costa E MaletUnited KingdomAsiya Javayant QUALIFIED
Deepesh O CampainBrazilElwin Sharvill UNQUALIFIED
Leon D PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Aruna R FlosiIndiaXuxue Feng NEGOTIATION
Smith C DoeArgentinaBernardo Dominic PROPOSAL
Aditya I DilliardGermanyIvan Magalhaes QUALIFIED
Mayumi S RutaIndiaAsiya Javayant NEW
Chavez M AmigonJapanIoni Bowcher RENEWAL
Emily Q VenereArgentinaAmy Elsner NEW
Nicolas K OstroskyIndiaXuxue Feng RENEWAL
Jones P GauchoFranceElwin Sharvill UNQUALIFIED
Cody Q PoquetteFranceOnyama Limba QUALIFIED
Leja H MaletArgentinaAsiya Javayant PROPOSAL
Mayumi M PerinRussiaOnyama Limba UNQUALIFIED
Alejandro E MaletCanadaAnna Fali NEGOTIATION
Jeanfrancois J MorascaUnited KingdomAsiya Javayant QUALIFIED
Kadeem T RulapaughUnited KingdomElwin Sharvill NEGOTIATION
David X VocelkaGermanyAmy Elsner NEW
Cody T VocelkaArgentinaElwin Sharvill NEW
Silvio R WieserAustraliaBernardo Dominic RENEWAL
Ivar T GillianCanadaIoni Bowcher PROPOSAL
Cody M RutaFranceBernardo Dominic QUALIFIED
Tony Y RulapaughFranceOnyama Limba UNQUALIFIED
Jennifer P PerinFranceAmy Elsner PROPOSAL
Maisha H KuskoSpainIoni Bowcher PROPOSAL
David F KuskoArgentinaOnyama Limba QUALIFIED
Adams F VenereArgentinaAmy Elsner NEGOTIATION
Alejandro V KolmetzGermanyAnna Fali NEW
Rodrigues L FlosiSpainIoni Bowcher QUALIFIED
Morrow Z TollnerSpainBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ivar R RoysterArgentinaXuxue Feng QUALIFIED
Maria C NickaSpainAnna Fali PROPOSAL
Aika X FollerIndiaAsiya Javayant RENEWAL
Mujtaba R StensethCanadaXuxue Feng NEW
Ashley E IturbideItalyAsiya Javayant NEGOTIATION
Maria C CaudyItalyBernardo Dominic NEW
Tony H OldroydGermanyXuxue Feng UNQUALIFIED
Sinclair B FlosiUnited KingdomAmy Elsner NEW
Izzy A ChuiIndiaBernardo Dominic RENEWAL
Leja R CampainBrazilOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson M FollerGermany2026-06-25Chapman, Ross E Esq NEGOTIATION36Asiya Javayant
1001Maria I PerinItaly2026-06-24Truhlar And Truhlar Attys RENEWAL95Elwin Sharvill
1002Juan D RutaUnited Kingdom2026-07-03Rangoni Of Florence NEW32Ivan Magalhaes
1003Faith G TollnerAustralia2026-06-30Commercial Press PROPOSAL87Amy Elsner
1004Silvio M WieserRussia2026-06-24Feltz Printing Service PROPOSAL54Bernardo Dominic
1005Sinclair J BowleyUnited Kingdom2026-06-22Printing Dimensions NEW63Anna Fali
1006Faith K SergiAustralia2026-06-29Chanay, Jeffrey A Esq PROPOSAL31Amy Elsner
1007Mujtaba X GauchoJapan2026-07-08Printing Dimensions NEW67Ioni Bowcher
1008Octavia Y CaudyArgentina2026-07-08Morlong Associates QUALIFIED68Xuxue Feng
1009Leon S NestleRussia2026-06-30Benton, John B Jr UNQUALIFIED93Ioni Bowcher
1010David G DoeGermany2026-06-29Chanay, Jeffrey A Esq QUALIFIED17Anna Fali
1011Alejandro M SaylorsIndia2026-07-01Truhlar And Truhlar Attys NEGOTIATION38Bernardo Dominic
1012Isabel K RoysterIndia2026-06-15Buckley Miller Wright NEW16Stephen Shaw
1013Ivar W CaudyAustralia2026-06-27King, Christopher A Esq NEW76Bernardo Dominic
1014Arvin I RutaCanada2026-07-04Chanay, Jeffrey A Esq NEGOTIATION22Anna Fali
1015Aditya Q WieserFrance2026-06-20Chanay, Jeffrey A Esq RENEWAL49Anna Fali
1016Izzy L DarakjyCanada2026-07-05King, Christopher A Esq UNQUALIFIED8Anna Fali
1017Morrow M CaldareraRussia2026-06-22Buckley Miller Wright UNQUALIFIED97Anna Fali
1018Antonio Z GillianAustralia2026-07-08Dorl, James J Esq PROPOSAL9Xuxue Feng
1019Maisha S TollnerCanada2026-06-20Benton, John B Jr NEW49Anna Fali
1020Maria S PoquetteArgentina2026-06-18Dorl, James J Esq NEW64Stephen Shaw
1021Murillo A SaylorsItaly2026-06-13Morlong Associates NEW43Xuxue Feng
1022Kaitlin K MarrierBrazil2026-06-29Feltz Printing Service RENEWAL7Anna Fali
1023Clifford H NestleFrance2026-06-24Dorl, James J Esq PROPOSAL52Amy Elsner
1024Aika S GarufiIndia2026-07-04Printing Dimensions UNQUALIFIED15Ioni Bowcher
1025Arvin P WaycottItaly2026-07-07King, Christopher A Esq QUALIFIED66Amy Elsner
1026Silvio Z MaletIndia2026-07-08Feiner Bros QUALIFIED30Ioni Bowcher
1027Smith Y GarufiSpain2026-06-21Chapman, Ross E Esq RENEWAL51Asiya Javayant
1028Rodrigues H OldroydAustralia2026-06-16Rousseaux, Michael Esq QUALIFIED68Stephen Shaw
1029Isabel H TollnerJapan2026-06-30Rangoni Of Florence NEGOTIATION3Xuxue Feng
1030Leja B InouyeBrazil2026-06-19Chemel, James L Cpa PROPOSAL87Elwin Sharvill
1031Deepesh K MorascaCanada2026-06-13Feiner Bros UNQUALIFIED19Xuxue Feng
1032Aruna X PaprockiIndia2026-07-02King, Christopher A Esq NEW2Stephen Shaw
1033Jefferson T KolmetzSpain2026-06-22Chanay, Jeffrey A Esq PROPOSAL59Asiya Javayant
1034David I DarakjyIndia2026-06-26Feiner Bros NEW17Xuxue Feng
1035Isabel D StensethBrazil2026-06-17Feltz Printing Service UNQUALIFIED0Ioni Bowcher
1036Greenwood S SergiRussia2026-07-02Rangoni Of Florence NEGOTIATION6Elwin Sharvill
1037Cody F SaylorsJapan2026-06-17King, Christopher A Esq UNQUALIFIED24Anna Fali
1038Alejandro K GauchoArgentina2026-06-15Dorl, James J Esq UNQUALIFIED71Ioni Bowcher
1039Greenwood F OldroydGermany2026-07-04King, Christopher A Esq NEGOTIATION73Amy Elsner
1040Juan Y VocelkaRussia2026-07-04Chanay, Jeffrey A Esq PROPOSAL87Xuxue Feng
1041Salvatore R BologniaGermany2026-06-10Dorl, James J Esq NEGOTIATION27Stephen Shaw
1042Ivar F PoquetteCanada2026-06-21Feiner Bros QUALIFIED67Ioni Bowcher
1043Mayumi D BologniaRussia2026-06-24Dorl, James J Esq RENEWAL28Amy Elsner
1044Jeanfrancois M AlbaresAustralia2026-06-19Morlong Associates UNQUALIFIED80Stephen Shaw
1045Misaki G VocelkaGermany2026-07-03Feiner Bros UNQUALIFIED34Elwin Sharvill
1046Rodrigues X SergiArgentina2026-06-10Truhlar And Truhlar Attys QUALIFIED67Asiya Javayant
1047Izzy X CaudyGermany2026-06-24Feiner Bros NEGOTIATION52Bernardo Dominic
1048Maisha U StensethGermany2026-07-03Benton, John B Jr NEGOTIATION17Elwin Sharvill
1049Izzy Y MorascaFrance2026-07-01Rousseaux, Michael Esq RENEWAL0Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Wickens W MacleadSpainAmy Elsner NEGOTIATION
Wickens V SergiGermanyIoni Bowcher RENEWAL
Murillo R FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh F PaprockiFranceStephen Shaw PROPOSAL
Misaki R WieserCanadaIoni Bowcher RENEWAL
Ashley J PerinUnited KingdomAmy Elsner UNQUALIFIED
Aika K RulapaughSpainIvan Magalhaes NEW
Leon I GlickAustraliaXuxue Feng NEGOTIATION
Emily C MarrierUnited KingdomIoni Bowcher NEW
Leja O CaudyCanadaStephen Shaw NEW
Juan N PoquetteCanadaIvan Magalhaes QUALIFIED
Maisha X StensethJapanIoni Bowcher NEW
Wickens E GauchoBrazilAsiya Javayant QUALIFIED
Jones P SlusarskiArgentinaBernardo Dominic RENEWAL
Darci A FigeroaArgentinaIoni Bowcher UNQUALIFIED
Faith V ShinkoGermanyElwin Sharvill NEGOTIATION
Faith Z FollerFranceAmy Elsner NEGOTIATION
Nicolas R VocelkaGermanyOnyama Limba QUALIFIED
Smith O BriddickBrazilAsiya Javayant QUALIFIED
Izzy F AmigonCanadaIvan Magalhaes NEGOTIATION
Leja Q AlbaresCanadaOnyama Limba RENEWAL
Murillo E ChuiBrazilIvan Magalhaes PROPOSAL
Arvin V RimAustraliaElwin Sharvill NEW
Maria K CaldareraGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois C GillianGermanyOnyama Limba NEGOTIATION
Silvio X AmigonAustraliaAnna Fali RENEWAL
Jeanfrancois I PerinItalyElwin Sharvill UNQUALIFIED
Deepesh D AmigonUnited KingdomXuxue Feng NEGOTIATION
Kadeem S FigeroaUnited KingdomAnna Fali RENEWAL
Wickens U MaletItalyOnyama Limba RENEWAL
Ashley M MaletRussiaBernardo Dominic RENEWAL
Ashley A VenereItalyElwin Sharvill PROPOSAL
Aika Q SlusarskiArgentinaElwin Sharvill NEW
Jennifer I BowleyBrazilOnyama Limba RENEWAL
Francesco Y DoeSpainAsiya Javayant PROPOSAL
Johnson H GarufiJapanAnna Fali UNQUALIFIED
Greenwood J DoeAustraliaAsiya Javayant RENEWAL
Sinclair L MacleadAustraliaAsiya Javayant PROPOSAL
Alejandro A GarufiGermanyAmy Elsner NEW
Clifford G RoysterItalyAnna Fali QUALIFIED
Jeanfrancois D SchemmerAustraliaOnyama Limba QUALIFIED
Salvatore F RutaAustraliaXuxue Feng RENEWAL
Antonio T FlosiFranceAsiya Javayant UNQUALIFIED
Jeanfrancois U NickaArgentinaXuxue Feng UNQUALIFIED
Adams C ButtJapanStephen Shaw UNQUALIFIED
David H SlusarskiArgentinaAnna Fali NEGOTIATION
Jeanfrancois C DarakjyFranceAnna Fali UNQUALIFIED
Darci A GillianRussiaAmy Elsner QUALIFIED
Chavez B StensethAustraliaXuxue Feng PROPOSAL
Claire Y FollerCanadaBernardo Dominic PROPOSAL
Frozen Columns
Name
Juan A Albares
Maria I Caldarera
Kaitlin K Foller
Leon O Foller
James F Chui
Silvio E Bowley
Mujtaba U Nestle
Leon H Stockham
Emily U Dilliard
Leja M Kusko
Costa P Gaucho
Leja H Kolmetz
Jennifer Q Gaucho
Jones C Campain
Leja C Rulapaugh
Alejandro L Amigon
Ricardo A Albares
Aditya B Amigon
Aruna K Saylors
Deepesh B Malet
Arvin K Rulapaugh
Silvio A Amigon
Leon O Garufi
Mayumi D Paprocki
Julie G Foller
David A Malet
Nicolas E Whobrey
Leja K Nestle
Johnson U Shinko
Mayumi I Doe
Morrow W Wieser
Aika A Malet
Izzy M Gillian
Nicolas Y Foller
David M Schemmer
Maisha T Shinko
Jones V Maclead
Ivar E Oldroyd
Greenwood D Iturbide
Izzy A Slusarski
Costa Y Glick
Faith M Paprocki
David B Nestle
Costa A Gillian
Alejandro V Campain
Rodrigues T Butt
Isabel D Briddick
James I Morasca
Aditya O Marrier
Maisha U Albares
IdCountryDate
1000Spain2026-06-20
1001United Kingdom2026-07-03
1002Argentina2026-07-08
1003Brazil2026-06-13
1004Australia2026-07-07
1005France2026-06-17
1006Canada2026-06-28
1007Argentina2026-07-04
1008Italy2026-06-09
1009Argentina2026-06-15
1010Spain2026-06-25
1011United Kingdom2026-07-01
1012Spain2026-06-11
1013Spain2026-06-30
1014Australia2026-07-04
1015Germany2026-06-25
1016France2026-07-08
1017Spain2026-06-20
1018India2026-06-29
1019France2026-07-02
1020Brazil2026-07-03
1021India2026-07-05
1022Germany2026-06-26
1023United Kingdom2026-06-29
1024Japan2026-06-19
1025India2026-06-13
1026Argentina2026-06-20
1027Italy2026-06-14
1028Russia2026-06-27
1029Spain2026-07-07
1030United Kingdom2026-06-28
1031Russia2026-06-19
1032Canada2026-07-08
1033France2026-06-23
1034Germany2026-06-20
1035France2026-06-27
1036Russia2026-06-21
1037Italy2026-06-14
1038Spain2026-06-27
1039Italy2026-06-22
1040Italy2026-07-06
1041Russia2026-06-15
1042Italy2026-06-11
1043Spain2026-06-15
1044Argentina2026-06-10
1045Germany2026-06-29
1046India2026-06-25
1047Russia2026-06-17
1048Canada2026-06-30
1049Italy2026-06-21

On-Demand Data

NameIdCountryDate
Misaki L Venere1000Japan2026-07-02
Francesco C Rulapaugh1001Brazil2026-07-08
Deepesh A Waycott1002Italy2026-06-25
Claire R Malet1003Germany2026-06-12
Jennifer W Slusarski1004France2026-06-18
Alejandro A Vocelka1005Russia2026-06-27
Aruna S Briddick1006Argentina2026-06-24
Jeanfrancois F Gaucho1007United Kingdom2026-06-26
Nicolas X Bolognia1008Italy2026-06-23
Kadeem J Poquette1009Canada2026-06-25
Ivar S Ferencz1010United Kingdom2026-07-08
Rodrigues S Figeroa1011Australia2026-06-23
Faith T Perin1012Brazil2026-06-24
Faith Y Whobrey1013France2026-07-04
Ivar Q Wieser1014Australia2026-06-26
Munro D Ferencz1015France2026-06-12
Munro Z Bowley1016Italy2026-06-10
Cody H Darakjy1017India2026-06-13
Silvio V Dilliard1018Australia2026-06-27
Jones I Stenseth1019Germany2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues R DilliardUnited KingdomAmy Elsner RENEWAL
Octavia F NickaRussiaAsiya Javayant UNQUALIFIED
Rodrigues X GillianCanadaAnna Fali NEGOTIATION
Kaitlin M NestleItalyAmy Elsner NEW
Faith C VocelkaIndiaIoni Bowcher QUALIFIED
Jeanfrancois C BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Murillo E ButtRussiaAsiya Javayant RENEWAL
Deepesh B ShinkoSpainAnna Fali RENEWAL
Aruna S DarakjyUnited KingdomAsiya Javayant PROPOSAL
Francesco B CaldareraRussiaBernardo Dominic PROPOSAL
Rodrigues W SlusarskiItalyElwin Sharvill NEW
Munro U FlosiIndiaAmy Elsner UNQUALIFIED
Misaki J ButtBrazilBernardo Dominic PROPOSAL
Ivar Y BologniaItalyStephen Shaw NEGOTIATION
Clifford J FerenczCanadaAsiya Javayant PROPOSAL
Izzy H GauchoIndiaXuxue Feng NEGOTIATION
Aruna C StensethIndiaStephen Shaw NEW
Greenwood Z PerinAustraliaStephen Shaw QUALIFIED
Clifford N GauchoIndiaAmy Elsner NEW
Wickens S GarufiItalyIvan Magalhaes UNQUALIFIED
Murillo W DoeAustraliaIvan Magalhaes NEGOTIATION
Johnson V TollnerIndiaAnna Fali RENEWAL
Octavia K NickaAustraliaAnna Fali UNQUALIFIED
Jones U ChuiGermanyIoni Bowcher RENEWAL
Aruna Y GillianItalyXuxue Feng RENEWAL
Aika K FerenczUnited KingdomIvan Magalhaes NEW
Claire Z PerinItalyElwin Sharvill RENEWAL
Francesco J GarufiUnited KingdomAnna Fali UNQUALIFIED
Mayumi S FlosiRussiaIoni Bowcher NEGOTIATION
Aika J DilliardJapanIvan Magalhaes PROPOSAL
Ricardo M SlusarskiAustraliaIoni Bowcher RENEWAL
Maria C ShinkoGermanyElwin Sharvill PROPOSAL
Izzy Q MaletSpainXuxue Feng UNQUALIFIED
Aruna E CaldareraBrazilBernardo Dominic QUALIFIED
Maria L RimSpainStephen Shaw UNQUALIFIED
Darci P StensethFranceOnyama Limba QUALIFIED
Mujtaba C DoeFranceElwin Sharvill RENEWAL
Wickens J FerenczGermanyBernardo Dominic NEGOTIATION
James X RimGermanyIvan Magalhaes QUALIFIED
Johnson U NestleJapanElwin Sharvill PROPOSAL

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