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
Johnson G PerinUnited KingdomStephen Shaw QUALIFIED
Maria V TollnerJapanAnna Fali NEGOTIATION
Misaki P PerinBrazilAmy Elsner PROPOSAL
Claire I InouyeGermanyAnna Fali UNQUALIFIED
Tony H ChuiRussiaOnyama Limba NEGOTIATION
Aditya C FigeroaGermanyXuxue Feng QUALIFIED
Misaki K DarakjyCanadaBernardo Dominic PROPOSAL
Alejandro X ShinkoFranceIoni Bowcher NEGOTIATION
Greenwood X PaprockiRussiaAsiya Javayant RENEWAL
Ivar U WaycottJapanElwin Sharvill PROPOSAL
David D CaudyJapanElwin Sharvill UNQUALIFIED
Johnson D RoysterIndiaAsiya Javayant NEW
Deepesh D OstroskyItalyIvan Magalhaes PROPOSAL
Mujtaba N CaldareraFranceAsiya Javayant NEGOTIATION
Chavez U ButtRussiaOnyama Limba RENEWAL
Tony A BriddickBrazilIvan Magalhaes RENEWAL
Wickens K TollnerBrazilAnna Fali NEW
Jennifer U ButtArgentinaElwin Sharvill NEW
Murillo Q AmigonUnited KingdomIvan Magalhaes RENEWAL
Julie D BriddickAustraliaAsiya Javayant UNQUALIFIED
Aruna Q AmigonSpainIoni Bowcher PROPOSAL
Chavez G FollerBrazilElwin Sharvill NEW
Antonio L RimGermanyElwin Sharvill PROPOSAL
Sinclair P RulapaughRussiaAsiya Javayant RENEWAL
Jeanfrancois Z SlusarskiFranceElwin Sharvill QUALIFIED
Faith Q MaletBrazilXuxue Feng QUALIFIED
Maria S StockhamCanadaIvan Magalhaes NEW
Claire N SlusarskiGermanyAnna Fali QUALIFIED
Faith Z GillianSpainIoni Bowcher UNQUALIFIED
Aika B RutaUnited KingdomAnna Fali RENEWAL
Jefferson S BowleyAustraliaElwin Sharvill NEW
Antonio X FigeroaBrazilBernardo Dominic UNQUALIFIED
Nicolas S StensethSpainAsiya Javayant QUALIFIED
Aruna X RoysterFranceOnyama Limba QUALIFIED
Alejandro D GarufiRussiaBernardo Dominic NEW
Mujtaba C TollnerBrazilOnyama Limba PROPOSAL
Darci C RoysterUnited KingdomIoni Bowcher PROPOSAL
Leon N TollnerUnited KingdomAsiya Javayant RENEWAL
Nicolas P MacleadAustraliaStephen Shaw NEW
Alejandro B GlickArgentinaIvan Magalhaes NEW
Misaki E NickaSpainXuxue Feng UNQUALIFIED
Kadeem I FigeroaSpainAnna Fali QUALIFIED
Ivar X AlbaresCanadaElwin Sharvill NEW
Rodrigues J NickaCanadaAmy Elsner PROPOSAL
Ivar V BologniaArgentinaAsiya Javayant QUALIFIED
Kadeem X WhobreyFranceIoni Bowcher UNQUALIFIED
Salvatore J FlosiCanadaElwin Sharvill NEW
Maisha A CaldareraIndiaStephen Shaw NEGOTIATION
Antonio P IturbideBrazilOnyama Limba PROPOSAL
Octavia W PaprockiBrazilIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aruna Y SaylorsGermanyIvan Magalhaes UNQUALIFIED
Tony O InouyeIndiaElwin Sharvill QUALIFIED
James Y WieserCanadaAsiya Javayant QUALIFIED
Jeanfrancois F StensethUnited KingdomStephen Shaw NEW
Julie F DoeBrazilIoni Bowcher QUALIFIED
Isabel T WieserUnited KingdomIvan Magalhaes QUALIFIED
Jennifer K SlusarskiCanadaStephen Shaw UNQUALIFIED
Tony X BowleyIndiaOnyama Limba NEGOTIATION
Murillo X NestleAustraliaAmy Elsner PROPOSAL
Salvatore S RulapaughCanadaAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues U KuskoItaly2026-07-15Chanay, Jeffrey A Esq NEGOTIATION75Ivan Magalhaes
1001Aika A PoquetteGermany2026-08-01Printing Dimensions NEGOTIATION85Bernardo Dominic
1002Stacey H ShinkoItaly2026-07-14Morlong Associates QUALIFIED32Ivan Magalhaes
1003Silvio B GlickArgentina2026-07-18Chapman, Ross E Esq NEW27Anna Fali
1004Aika V AlbaresJapan2026-07-16Truhlar And Truhlar Attys RENEWAL84Xuxue Feng
1005Tony H FlosiSpain2026-07-24Buckley Miller Wright PROPOSAL75Elwin Sharvill
1006Nicolas F BologniaFrance2026-07-23Feltz Printing Service RENEWAL40Xuxue Feng
1007Izzy L CaldareraGermany2026-07-21Dorl, James J Esq UNQUALIFIED45Asiya Javayant
1008Sinclair F KuskoJapan2026-07-31Rangoni Of Florence NEW26Elwin Sharvill
1009Juan I MarrierJapan2026-08-02Dorl, James J Esq QUALIFIED45Ivan Magalhaes
1010Clifford D VenereCanada2026-07-15Feltz Printing Service RENEWAL44Bernardo Dominic
1011Kaitlin V AlbaresCanada2026-07-17Commercial Press PROPOSAL68Elwin Sharvill
1012Isabel G TollnerSpain2026-07-20Morlong Associates UNQUALIFIED87Ioni Bowcher
1013Ashley J StensethRussia2026-07-25King, Christopher A Esq RENEWAL33Xuxue Feng
1014Julie Z VenereBrazil2026-07-30Buckley Miller Wright NEGOTIATION45Asiya Javayant
1015Tony L MacleadBrazil2026-08-06Buckley Miller Wright QUALIFIED19Anna Fali
1016Kadeem E CaudyAustralia2026-08-04Feltz Printing Service UNQUALIFIED12Ivan Magalhaes
1017Ricardo L GillianJapan2026-08-06Truhlar And Truhlar Attys NEW15Ioni Bowcher
1018Francesco M ChuiBrazil2026-07-27Morlong Associates QUALIFIED31Stephen Shaw
1019Ashley Y ShinkoItaly2026-08-07Chemel, James L Cpa PROPOSAL67Xuxue Feng
1020Maisha X FollerSpain2026-07-30Commercial Press QUALIFIED81Ioni Bowcher
1021Alejandro Z AlbaresUnited Kingdom2026-07-26Feiner Bros NEGOTIATION45Amy Elsner
1022Misaki J PerinCanada2026-08-07Chapman, Ross E Esq RENEWAL46Ioni Bowcher
1023Alejandro E OldroydRussia2026-08-02Benton, John B Jr PROPOSAL77Amy Elsner
1024Jeanfrancois Z WhobreyIndia2026-08-10Dorl, James J Esq NEW71Elwin Sharvill
1025Claire Y OldroydAustralia2026-07-24Dorl, James J Esq PROPOSAL19Anna Fali
1026Ricardo F DoeRussia2026-07-14Rangoni Of Florence QUALIFIED62Onyama Limba
1027Aditya O SchemmerGermany2026-08-07Chanay, Jeffrey A Esq RENEWAL2Amy Elsner
1028Adams J WaycottSpain2026-07-12Buckley Miller Wright QUALIFIED44Elwin Sharvill
1029Johnson E DarakjySpain2026-07-13Chemel, James L Cpa NEW75Asiya Javayant
1030Murillo Z DoeGermany2026-07-14Morlong Associates PROPOSAL7Bernardo Dominic
1031Misaki P NestleJapan2026-07-18Printing Dimensions PROPOSAL4Ivan Magalhaes
1032Misaki B KuskoIndia2026-08-03Printing Dimensions NEW64Amy Elsner
1033Jennifer F SlusarskiBrazil2026-08-02Rangoni Of Florence NEGOTIATION2Ivan Magalhaes
1034Faith W DarakjyItaly2026-08-04Feltz Printing Service UNQUALIFIED70Amy Elsner
1035Ashley C MacleadBrazil2026-07-19Morlong Associates UNQUALIFIED66Ivan Magalhaes
1036Rodrigues K WieserItaly2026-07-17Feltz Printing Service PROPOSAL78Asiya Javayant
1037Morrow S InouyeBrazil2026-08-01Printing Dimensions NEW96Asiya Javayant
1038Kaitlin E FlosiRussia2026-07-26Buckley Miller Wright NEW26Amy Elsner
1039Clifford H SaylorsBrazil2026-07-16Buckley Miller Wright PROPOSAL45Asiya Javayant
1040Stacey G MarrierItaly2026-07-19Buckley Miller Wright QUALIFIED28Amy Elsner
1041Sinclair S MarrierGermany2026-08-01Chapman, Ross E Esq PROPOSAL42Xuxue Feng
1042Jefferson Y FerenczSpain2026-07-28Chanay, Jeffrey A Esq QUALIFIED71Anna Fali
1043Emily U SergiIndia2026-08-03Benton, John B Jr UNQUALIFIED71Stephen Shaw
1044Faith E SchemmerJapan2026-07-27Chapman, Ross E Esq NEGOTIATION82Onyama Limba
1045Emily Y CaudyJapan2026-07-31Feltz Printing Service PROPOSAL74Asiya Javayant
1046Leon D WaycottItaly2026-08-08Dorl, James J Esq QUALIFIED92Asiya Javayant
1047Kaitlin X CaudySpain2026-07-17Rousseaux, Michael Esq RENEWAL60Elwin Sharvill
1048Jennifer K BriddickBrazil2026-07-28Chapman, Ross E Esq NEGOTIATION59Ivan Magalhaes
1049Aika E StockhamGermany2026-07-21King, Christopher A Esq PROPOSAL97Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Munro Y GlickFranceStephen Shaw RENEWAL
Jennifer G WieserBrazilAmy Elsner PROPOSAL
Ricardo E WaycottGermanyOnyama Limba PROPOSAL
Wickens B MorascaCanadaBernardo Dominic NEGOTIATION
Adams P CaldareraArgentinaBernardo Dominic PROPOSAL
Izzy E FerenczGermanyAmy Elsner QUALIFIED
Clifford Z StensethJapanAnna Fali QUALIFIED
Alejandro E SlusarskiRussiaIoni Bowcher NEGOTIATION
Morrow Y CampainItalyIvan Magalhaes PROPOSAL
Claire Q FollerRussiaStephen Shaw UNQUALIFIED
Smith S IturbideJapanAnna Fali QUALIFIED
Mujtaba T ButtRussiaAnna Fali NEGOTIATION
Isabel I FigeroaFranceBernardo Dominic QUALIFIED
Ivar Z KuskoRussiaAnna Fali NEW
Leon R KuskoAustraliaAmy Elsner UNQUALIFIED
Mayumi Q PoquetteItalyBernardo Dominic NEGOTIATION
James N CampainSpainXuxue Feng NEGOTIATION
Mujtaba V BologniaFranceAnna Fali UNQUALIFIED
Leja X RulapaughJapanStephen Shaw NEGOTIATION
Greenwood V IturbideJapanIvan Magalhaes RENEWAL
Maria O SchemmerArgentinaAmy Elsner NEW
Stacey B PaprockiCanadaStephen Shaw NEW
Clifford X TollnerAustraliaElwin Sharvill NEGOTIATION
Morrow T WaycottUnited KingdomAsiya Javayant NEGOTIATION
Adams B FerenczItalyIvan Magalhaes NEGOTIATION
Leon P SergiUnited KingdomAmy Elsner PROPOSAL
Izzy Z ShinkoBrazilIoni Bowcher NEGOTIATION
Rodrigues A DoeBrazilAsiya Javayant PROPOSAL
Costa Y GarufiCanadaXuxue Feng NEW
Nicolas F MorascaItalyOnyama Limba NEW
Alejandro U KuskoBrazilBernardo Dominic UNQUALIFIED
David N OldroydSpainAmy Elsner PROPOSAL
Sinclair N NestleUnited KingdomAnna Fali RENEWAL
Costa Q BologniaAustraliaAmy Elsner NEGOTIATION
Isabel Q MorascaArgentinaAsiya Javayant QUALIFIED
Kaitlin Q StockhamArgentinaAnna Fali NEW
Stacey C MacleadArgentinaElwin Sharvill NEGOTIATION
Misaki V DarakjyItalyAsiya Javayant NEGOTIATION
Aruna C RulapaughRussiaAmy Elsner NEW
Claire F RutaJapanElwin Sharvill RENEWAL
Misaki L DilliardUnited KingdomBernardo Dominic PROPOSAL
Morrow Q RulapaughFranceIvan Magalhaes NEW
Adams L PerinJapanAnna Fali RENEWAL
Jeanfrancois W FigeroaJapanIoni Bowcher RENEWAL
Adams Z PaprockiFranceStephen Shaw NEW
Costa Z ShinkoArgentinaOnyama Limba UNQUALIFIED
Clifford T MorascaCanadaIvan Magalhaes NEW
Ivar S AmigonIndiaOnyama Limba NEW
Mayumi U RutaFranceIvan Magalhaes UNQUALIFIED
David K MarrierRussiaBernardo Dominic NEW
Frozen Columns
Name
Faith S Doe
James G Morasca
Arvin H Briddick
James E Ferencz
Emily J Wieser
Octavia S Royster
Kaitlin E Malet
Mayumi W Rim
David K Waycott
Nicolas R Saylors
Jeanfrancois X Flosi
Wickens A Slusarski
Maria M Vocelka
Tony A Ferencz
Jeanfrancois U Flosi
Jefferson C Tollner
Johnson J Butt
Jones B Maclead
Mujtaba K Ruta
Chavez L Royster
Antonio W Rulapaugh
Adams C Glick
Misaki B Wieser
Darci S Schemmer
Deepesh A Bowley
Ricardo O Royster
Isabel H Nicka
Clifford R Ostrosky
Aditya F Gillian
Juan V Glick
Cody E Gillian
Sinclair Y Doe
Antonio W Saylors
Emily C Morasca
Deepesh O Ostrosky
Costa N Waycott
Cody H Amigon
Aika T Briddick
Julie W Kusko
Chavez Z Malet
Julie M Marrier
Clifford G Royster
Ashley J Perin
Izzy I Gillian
Stacey B Bowley
Aika V Vocelka
James Z Darakjy
Jones N Garufi
Kaitlin I Vocelka
Nicolas S Darakjy
IdCountryDate
1000United Kingdom2026-07-14
1001United Kingdom2026-07-17
1002Canada2026-07-29
1003France2026-07-25
1004Argentina2026-07-28
1005Canada2026-08-10
1006United Kingdom2026-07-13
1007Canada2026-07-16
1008France2026-07-14
1009France2026-07-13
1010France2026-07-29
1011United Kingdom2026-08-03
1012Brazil2026-07-28
1013France2026-08-06
1014Germany2026-07-19
1015Spain2026-07-31
1016Russia2026-08-01
1017Japan2026-07-13
1018Brazil2026-07-15
1019Australia2026-07-12
1020Brazil2026-08-10
1021Japan2026-08-01
1022Japan2026-07-29
1023Russia2026-07-14
1024Argentina2026-07-30
1025India2026-07-13
1026France2026-07-23
1027United Kingdom2026-08-10
1028France2026-07-28
1029Japan2026-07-26
1030Canada2026-07-26
1031Australia2026-07-22
1032Argentina2026-07-23
1033United Kingdom2026-07-30
1034Australia2026-07-22
1035Spain2026-07-13
1036Spain2026-08-07
1037India2026-08-03
1038Argentina2026-08-04
1039Argentina2026-07-28
1040Australia2026-07-19
1041France2026-07-17
1042Italy2026-08-02
1043Germany2026-07-20
1044Brazil2026-08-01
1045Australia2026-07-30
1046Japan2026-08-05
1047Brazil2026-07-31
1048Canada2026-08-03
1049Russia2026-07-12

On-Demand Data

NameIdCountryDate
Izzy H Kusko1000Spain2026-07-18
Isabel T Amigon1001Germany2026-08-03
Costa Q Perin1002Brazil2026-08-04
Emily Y Tollner1003Germany2026-07-26
Antonio A Wieser1004Russia2026-07-18
Izzy C Amigon1005Canada2026-07-24
Aika Z Kolmetz1006India2026-07-30
Mayumi L Perin1007Argentina2026-07-26
Faith E Slusarski1008India2026-08-01
Tony N Poquette1009Canada2026-08-08
Faith W Doe1010Australia2026-07-16
Kaitlin K Campain1011Italy2026-07-25
Aditya H Dilliard1012France2026-08-06
Kadeem L Glick1013Germany2026-07-27
Mayumi X Shinko1014United Kingdom2026-07-24
Mayumi W Gaucho1015Brazil2026-08-04
Aika O Albares1016Germany2026-08-10
Aditya W Poquette1017United Kingdom2026-07-25
Kadeem E Glick1018Brazil2026-07-30
Kaitlin M Foller1019Australia2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony B RimFranceOnyama Limba NEW
Clifford J AlbaresFranceIoni Bowcher UNQUALIFIED
Sinclair O PoquetteItalyIoni Bowcher PROPOSAL
Julie H VenereUnited KingdomAmy Elsner NEGOTIATION
Silvio Z SchemmerArgentinaAnna Fali NEW
Johnson R InouyeAustraliaOnyama Limba NEGOTIATION
Wickens L SergiItalyAsiya Javayant PROPOSAL
David C CaldareraBrazilStephen Shaw UNQUALIFIED
Deepesh Y MaletUnited KingdomIoni Bowcher NEGOTIATION
Adams V FerenczAustraliaAsiya Javayant NEGOTIATION
Morrow K FollerGermanyAmy Elsner NEGOTIATION
Darci O KuskoJapanOnyama Limba RENEWAL
Leon N RulapaughAustraliaAsiya Javayant PROPOSAL
Jeanfrancois H PoquetteJapanXuxue Feng QUALIFIED
Rodrigues O OldroydFranceIoni Bowcher NEW
Juan Q RulapaughJapanAmy Elsner NEGOTIATION
Octavia I RulapaughCanadaElwin Sharvill NEGOTIATION
Chavez B NestleSpainStephen Shaw PROPOSAL
Francesco I PaprockiAustraliaBernardo Dominic QUALIFIED
Darci Z TollnerJapanIoni Bowcher NEW
Mujtaba E KuskoJapanBernardo Dominic UNQUALIFIED
Cody R FollerItalyOnyama Limba QUALIFIED
Tony M ShinkoBrazilAsiya Javayant NEGOTIATION
Smith U RutaAustraliaAnna Fali NEGOTIATION
Julie E OldroydAustraliaBernardo Dominic NEW
Mayumi G IturbideJapanXuxue Feng NEW
Tony C OstroskyRussiaIoni Bowcher RENEWAL
Jeanfrancois H BologniaIndiaIvan Magalhaes QUALIFIED
Ivar X MaletFranceIoni Bowcher NEW
Salvatore I SlusarskiItalyAnna Fali RENEWAL
Murillo Z RimArgentinaAsiya Javayant NEGOTIATION
Aruna R MaletSpainBernardo Dominic RENEWAL
Francesco C MaletCanadaElwin Sharvill UNQUALIFIED
Francesco Q FollerRussiaIvan Magalhaes QUALIFIED
Isabel V BologniaSpainBernardo Dominic NEGOTIATION
Jefferson S KolmetzItalyBernardo Dominic NEGOTIATION
Ricardo A CampainItalyBernardo Dominic NEW
Chavez O SchemmerJapanXuxue Feng UNQUALIFIED
Claire R PaprockiBrazilIoni Bowcher RENEWAL
Octavia L FlosiSpainOnyama Limba 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>