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
Arvin S FollerUnited KingdomElwin Sharvill PROPOSAL
Antonio A DarakjyAustraliaIvan Magalhaes NEW
Mujtaba W FlosiJapanOnyama Limba UNQUALIFIED
Ricardo J OldroydAustraliaAsiya Javayant NEGOTIATION
Clifford F OstroskyUnited KingdomElwin Sharvill PROPOSAL
Leon U VenereCanadaBernardo Dominic NEW
Misaki E RutaArgentinaIvan Magalhaes RENEWAL
Morrow T GarufiItalyStephen Shaw UNQUALIFIED
Kaitlin L SlusarskiCanadaIoni Bowcher UNQUALIFIED
Leja A CampainSpainAnna Fali PROPOSAL
Julie J MaletJapanAnna Fali NEW
Julie S AmigonBrazilStephen Shaw QUALIFIED
Maria Z IturbideAustraliaBernardo Dominic UNQUALIFIED
Ivar D WhobreyArgentinaXuxue Feng QUALIFIED
Aruna S CaudyJapanXuxue Feng PROPOSAL
Misaki T RulapaughJapanIoni Bowcher NEW
Morrow E PerinItalyOnyama Limba PROPOSAL
Antonio B RimArgentinaOnyama Limba NEGOTIATION
Wickens U PaprockiAustraliaIoni Bowcher NEGOTIATION
Jennifer Z VenereArgentinaBernardo Dominic NEW
Darci X ButtUnited KingdomBernardo Dominic NEGOTIATION
Aruna C SlusarskiItalyOnyama Limba NEW
Sinclair L DarakjySpainStephen Shaw UNQUALIFIED
Misaki B CaudyAustraliaAsiya Javayant QUALIFIED
Antonio I VocelkaRussiaIoni Bowcher UNQUALIFIED
Faith D VocelkaUnited KingdomStephen Shaw PROPOSAL
Cody Q PaprockiSpainIvan Magalhaes QUALIFIED
Chavez I AmigonIndiaAnna Fali RENEWAL
Murillo J ChuiItalyAmy Elsner RENEWAL
Leja H BriddickCanadaIoni Bowcher NEGOTIATION
Greenwood Z WaycottSpainAmy Elsner RENEWAL
Ivar E RimRussiaElwin Sharvill UNQUALIFIED
Aruna S MorascaCanadaAsiya Javayant QUALIFIED
Emily Z DilliardFranceElwin Sharvill RENEWAL
Faith B GlickArgentinaIoni Bowcher NEGOTIATION
Aditya M VenereArgentinaElwin Sharvill NEGOTIATION
James J FerenczItalyAsiya Javayant NEW
Chavez C AlbaresItalyAnna Fali QUALIFIED
James C RoysterBrazilAsiya Javayant QUALIFIED
Greenwood K MarrierAustraliaXuxue Feng UNQUALIFIED
Stacey D FollerRussiaElwin Sharvill UNQUALIFIED
Juan Z RutaUnited KingdomAmy Elsner UNQUALIFIED
Maria Q SchemmerSpainIoni Bowcher NEW
Emily Y StockhamRussiaAnna Fali QUALIFIED
Leon G AmigonUnited KingdomBernardo Dominic NEGOTIATION
Sinclair Z GlickArgentinaAmy Elsner NEW
Tony T CaldareraAustraliaXuxue Feng NEGOTIATION
Ivar S ShinkoFranceOnyama Limba QUALIFIED
Claire W WieserSpainAmy Elsner RENEWAL
Smith A RulapaughUnited KingdomAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson D OldroydItalyStephen Shaw NEGOTIATION
Aika H WhobreyCanadaAmy Elsner RENEWAL
Maisha I TollnerGermanyXuxue Feng RENEWAL
Chavez B WaycottUnited KingdomOnyama Limba PROPOSAL
Francesco S FerenczSpainAmy Elsner PROPOSAL
Arvin W ButtCanadaOnyama Limba UNQUALIFIED
Julie V WieserItalyElwin Sharvill PROPOSAL
Faith I SergiCanadaOnyama Limba QUALIFIED
Wickens A BowleySpainIoni Bowcher QUALIFIED
Claire U ShinkoItalyOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco O NestleRussia2026-07-16Rangoni Of Florence QUALIFIED81Bernardo Dominic
1001Claire L KuskoJapan2026-08-03Chapman, Ross E Esq UNQUALIFIED16Onyama Limba
1002Jones G RutaGermany2026-08-09Feltz Printing Service PROPOSAL20Elwin Sharvill
1003Aika C FerenczGermany2026-07-21Truhlar And Truhlar Attys RENEWAL38Onyama Limba
1004Alejandro S ChuiCanada2026-07-26Rousseaux, Michael Esq UNQUALIFIED14Bernardo Dominic
1005Ashley G FlosiBrazil2026-07-23Dorl, James J Esq RENEWAL30Ioni Bowcher
1006Cody D BriddickGermany2026-07-30Rousseaux, Michael Esq NEGOTIATION25Anna Fali
1007Jeanfrancois Z AmigonArgentina2026-07-16Rousseaux, Michael Esq RENEWAL94Stephen Shaw
1008Greenwood R FerenczFrance2026-08-03Chemel, James L Cpa QUALIFIED78Stephen Shaw
1009Maisha B InouyeBrazil2026-08-08Feltz Printing Service QUALIFIED19Xuxue Feng
1010Jones N VocelkaArgentina2026-08-04Chapman, Ross E Esq PROPOSAL46Xuxue Feng
1011Deepesh G ShinkoCanada2026-07-26Rangoni Of Florence PROPOSAL54Amy Elsner
1012Morrow T SaylorsArgentina2026-07-21Printing Dimensions UNQUALIFIED51Amy Elsner
1013Tony H SlusarskiFrance2026-07-18Benton, John B Jr NEW14Elwin Sharvill
1014Adams W SergiIndia2026-08-04Benton, John B Jr NEW23Onyama Limba
1015Aruna E MarrierJapan2026-08-02Rousseaux, Michael Esq PROPOSAL81Xuxue Feng
1016Stacey W FerenczUnited Kingdom2026-08-11Buckley Miller Wright NEW39Onyama Limba
1017Maisha R CampainIndia2026-08-03Chapman, Ross E Esq UNQUALIFIED11Amy Elsner
1018Ricardo R BowleyArgentina2026-07-20King, Christopher A Esq UNQUALIFIED65Elwin Sharvill
1019Nicolas G CaudyFrance2026-08-05Buckley Miller Wright NEW33Xuxue Feng
1020Morrow E RulapaughArgentina2026-07-15Chapman, Ross E Esq PROPOSAL7Amy Elsner
1021Nicolas Z GarufiJapan2026-07-19Feltz Printing Service NEW86Bernardo Dominic
1022Izzy W WhobreyUnited Kingdom2026-08-09Chanay, Jeffrey A Esq NEGOTIATION83Stephen Shaw
1023Deepesh I ShinkoIndia2026-07-29Chemel, James L Cpa QUALIFIED57Ivan Magalhaes
1024Ashley F FerenczRussia2026-07-22Dorl, James J Esq NEGOTIATION35Amy Elsner
1025Faith Q AmigonArgentina2026-08-03Chemel, James L Cpa NEW11Onyama Limba
1026Leon K VocelkaSpain2026-07-19Feltz Printing Service PROPOSAL54Stephen Shaw
1027Jones U PoquetteCanada2026-08-06Rousseaux, Michael Esq RENEWAL30Ivan Magalhaes
1028Alejandro L NickaCanada2026-08-01Feiner Bros NEW43Asiya Javayant
1029Leja F MaletIndia2026-07-24Feltz Printing Service UNQUALIFIED59Ivan Magalhaes
1030Salvatore M NestleUnited Kingdom2026-07-24Commercial Press NEGOTIATION41Elwin Sharvill
1031Alejandro L BriddickCanada2026-08-06Truhlar And Truhlar Attys NEGOTIATION76Elwin Sharvill
1032Izzy Z SergiIndia2026-07-19Benton, John B Jr NEGOTIATION95Anna Fali
1033Morrow G NickaUnited Kingdom2026-07-29Printing Dimensions NEW38Amy Elsner
1034Murillo D SergiBrazil2026-07-30Buckley Miller Wright RENEWAL39Elwin Sharvill
1035Munro M PoquetteRussia2026-07-25Rangoni Of Florence UNQUALIFIED46Anna Fali
1036Maria D SchemmerBrazil2026-08-11Rangoni Of Florence NEW28Xuxue Feng
1037Alejandro M WaycottCanada2026-07-21Dorl, James J Esq NEW15Onyama Limba
1038Izzy X CaudyBrazil2026-07-14Buckley Miller Wright NEW59Stephen Shaw
1039Nicolas Z StensethGermany2026-07-18Benton, John B Jr UNQUALIFIED41Ioni Bowcher
1040Clifford H ButtCanada2026-08-03Chemel, James L Cpa UNQUALIFIED27Bernardo Dominic
1041James A SaylorsFrance2026-08-01Chanay, Jeffrey A Esq NEW69Stephen Shaw
1042Costa P CaudyJapan2026-07-30Chemel, James L Cpa RENEWAL85Elwin Sharvill
1043Ashley P AmigonRussia2026-07-25Commercial Press NEGOTIATION29Elwin Sharvill
1044Jefferson Z TollnerRussia2026-08-09Benton, John B Jr RENEWAL92Ivan Magalhaes
1045Darci N TollnerIndia2026-07-31Rousseaux, Michael Esq NEGOTIATION38Ivan Magalhaes
1046Aditya V NestleItaly2026-07-19Truhlar And Truhlar Attys RENEWAL20Bernardo Dominic
1047Adams L GauchoAustralia2026-08-06Chanay, Jeffrey A Esq NEGOTIATION90Elwin Sharvill
1048Izzy I DarakjyIndia2026-08-01Commercial Press NEW83Elwin Sharvill
1049Aika E IturbideItaly2026-08-10Truhlar And Truhlar Attys PROPOSAL50Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ashley Q FlosiItalyXuxue Feng NEGOTIATION
Aditya W DilliardItalyXuxue Feng NEGOTIATION
Misaki S BowleyBrazilXuxue Feng NEW
Kadeem E BowleyGermanyAmy Elsner QUALIFIED
Stacey S WieserAustraliaIoni Bowcher NEW
Murillo T TollnerGermanyIoni Bowcher QUALIFIED
Munro A VocelkaJapanIvan Magalhaes NEGOTIATION
Ivar X KolmetzGermanyElwin Sharvill NEW
Morrow D CaudyJapanBernardo Dominic UNQUALIFIED
Morrow C FigeroaSpainAnna Fali NEW
James Q SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Munro Z DilliardItalyAsiya Javayant NEGOTIATION
Izzy V MaletUnited KingdomAnna Fali PROPOSAL
Jefferson Z SaylorsGermanyIvan Magalhaes RENEWAL
Nicolas Y FerenczItalyAmy Elsner QUALIFIED
Maria Y StensethBrazilBernardo Dominic NEGOTIATION
Rodrigues H PoquetteGermanyIvan Magalhaes NEGOTIATION
Kadeem A RoysterSpainIoni Bowcher NEGOTIATION
Mujtaba G ButtBrazilStephen Shaw NEGOTIATION
Jeanfrancois I FollerGermanyBernardo Dominic NEW
Faith F RoysterSpainStephen Shaw NEGOTIATION
Izzy T CampainCanadaOnyama Limba NEW
Morrow N WieserBrazilBernardo Dominic UNQUALIFIED
Aditya L RutaFranceIvan Magalhaes QUALIFIED
Johnson W BologniaIndiaOnyama Limba NEW
Kadeem A MarrierArgentinaAnna Fali NEW
David U RutaFranceElwin Sharvill NEW
Ashley V PaprockiCanadaAnna Fali NEW
Tony G NestleUnited KingdomAmy Elsner NEW
Silvio A MarrierBrazilOnyama Limba UNQUALIFIED
Silvio E FollerJapanAmy Elsner QUALIFIED
Nicolas Q AmigonCanadaAnna Fali UNQUALIFIED
Antonio Y StensethBrazilAmy Elsner RENEWAL
Francesco W SlusarskiRussiaIoni Bowcher NEW
Maisha D KolmetzFranceAsiya Javayant NEGOTIATION
Cody B FollerGermanyAsiya Javayant PROPOSAL
Misaki W StensethItalyStephen Shaw QUALIFIED
Emily T RulapaughFranceAsiya Javayant NEGOTIATION
Stacey I NestleArgentinaAmy Elsner NEW
James A GarufiJapanAmy Elsner RENEWAL
Ivar Z DoeItalyElwin Sharvill QUALIFIED
Jeanfrancois E BriddickBrazilStephen Shaw NEGOTIATION
Misaki U RoysterAustraliaXuxue Feng PROPOSAL
Greenwood E ShinkoBrazilElwin Sharvill RENEWAL
Mayumi L RoysterSpainIoni Bowcher RENEWAL
Jeanfrancois P MaletRussiaAnna Fali RENEWAL
Isabel A RutaFranceAnna Fali PROPOSAL
Stacey L RutaSpainXuxue Feng PROPOSAL
Mayumi B AmigonCanadaIoni Bowcher QUALIFIED
Aika A PaprockiUnited KingdomXuxue Feng PROPOSAL
Frozen Columns
Name
James O Sergi
Maria X Campain
James B Bowley
Mayumi H Paprocki
Wickens E Rim
Jefferson U Briddick
Leja B Rim
Octavia D Nestle
Rodrigues X Garufi
Leon F Ferencz
Rodrigues M Amigon
Murillo T Darakjy
Ivar B Iturbide
Julie Q Malet
Juan L Tollner
Deepesh T Perin
Deepesh D Schemmer
Ivar F Maclead
Antonio U Maclead
Kadeem I Darakjy
Mayumi C Malet
Aditya A Sergi
David H Chui
Rodrigues A Butt
Juan Z Rim
Chavez A Ferencz
Emily O Stockham
Leon P Bowley
Rodrigues J Paprocki
Jeanfrancois W Paprocki
Alejandro U Tollner
David W Royster
Maria A Bowley
Ivar R Kusko
Silvio I Ostrosky
Costa S Stenseth
James Z Caudy
Jeanfrancois E Chui
Francesco W Doe
Isabel A Albares
Deepesh C Morasca
Claire B Gillian
Ashley N Poquette
Isabel X Wieser
Munro D Caldarera
Jones H Garufi
Sinclair G Darakjy
Deepesh N Ferencz
Kadeem I Stockham
Octavia E Whobrey
IdCountryDate
1000United Kingdom2026-08-05
1001Japan2026-08-12
1002Italy2026-07-18
1003Russia2026-08-08
1004Italy2026-07-17
1005Italy2026-07-30
1006Germany2026-07-22
1007Germany2026-07-23
1008Russia2026-07-14
1009Italy2026-07-20
1010Italy2026-08-03
1011Italy2026-07-28
1012Russia2026-08-02
1013Brazil2026-08-10
1014Brazil2026-08-04
1015Russia2026-07-23
1016United Kingdom2026-07-30
1017United Kingdom2026-07-17
1018Russia2026-07-28
1019Brazil2026-08-05
1020Australia2026-08-02
1021Italy2026-07-20
1022France2026-08-08
1023Japan2026-08-10
1024United Kingdom2026-07-30
1025Germany2026-08-01
1026Spain2026-08-01
1027Russia2026-07-21
1028Australia2026-08-10
1029Italy2026-07-28
1030Brazil2026-08-06
1031Germany2026-07-20
1032Canada2026-07-14
1033Japan2026-07-28
1034Germany2026-07-29
1035India2026-07-25
1036Canada2026-07-26
1037Germany2026-08-11
1038Japan2026-08-01
1039Australia2026-08-12
1040Germany2026-08-12
1041Brazil2026-08-04
1042Spain2026-08-04
1043Spain2026-07-22
1044Russia2026-07-27
1045Brazil2026-07-15
1046Russia2026-07-30
1047Brazil2026-07-20
1048France2026-07-17
1049Australia2026-07-28

On-Demand Data

NameIdCountryDate
Ivar B Foller1000United Kingdom2026-07-23
Leja V Saylors1001India2026-08-08
Cody L Glick1002France2026-07-22
Darci L Stockham1003United Kingdom2026-07-27
David N Albares1004Canada2026-08-10
Leon X Tollner1005Italy2026-08-01
Leon S Venere1006India2026-07-29
Arvin W Ferencz1007Italy2026-07-31
Rodrigues N Maclead1008Italy2026-08-04
Faith H Wieser1009India2026-07-21
James J Kolmetz1010Spain2026-07-29
Salvatore R Figeroa1011Germany2026-07-23
Isabel L Kolmetz1012Germany2026-07-21
Juan F Stenseth1013India2026-07-31
Murillo O Kusko1014Brazil2026-08-08
Murillo C Stockham1015Italy2026-07-19
Jefferson U Whobrey1016Germany2026-08-03
Leja B Malet1017Italy2026-08-07
Alejandro X Marrier1018Germany2026-07-29
Munro N Malet1019Australia2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki L CaldareraSpainElwin Sharvill NEGOTIATION
Maisha L FerenczFranceBernardo Dominic QUALIFIED
Darci Q SergiArgentinaElwin Sharvill PROPOSAL
Sinclair J WieserCanadaAnna Fali PROPOSAL
Maisha Q KuskoUnited KingdomAsiya Javayant NEW
Leon G WieserUnited KingdomStephen Shaw RENEWAL
Juan N InouyeCanadaAmy Elsner PROPOSAL
Clifford I VocelkaUnited KingdomElwin Sharvill UNQUALIFIED
Clifford F NestleItalyIoni Bowcher RENEWAL
Julie I SaylorsGermanyXuxue Feng NEGOTIATION
Kadeem T BologniaRussiaBernardo Dominic RENEWAL
Ricardo Q MorascaCanadaIoni Bowcher PROPOSAL
Murillo M StensethIndiaXuxue Feng NEW
Maria N WhobreySpainOnyama Limba UNQUALIFIED
Misaki W NickaGermanyBernardo Dominic UNQUALIFIED
Costa E VocelkaJapanStephen Shaw NEW
Johnson D GlickCanadaIoni Bowcher PROPOSAL
Mujtaba K SchemmerBrazilAsiya Javayant NEGOTIATION
Julie E GauchoArgentinaElwin Sharvill NEW
Leja V RutaArgentinaOnyama Limba NEGOTIATION
Stacey W AmigonCanadaStephen Shaw QUALIFIED
Nicolas R TollnerGermanyElwin Sharvill PROPOSAL
Francesco Z BologniaIndiaAmy Elsner UNQUALIFIED
Isabel Q ChuiItalyStephen Shaw QUALIFIED
Johnson R PerinJapanIoni Bowcher NEGOTIATION
Emily M FlosiSpainAsiya Javayant NEGOTIATION
Darci E KolmetzRussiaXuxue Feng UNQUALIFIED
Faith X CaldareraFranceAsiya Javayant UNQUALIFIED
Silvio U GauchoArgentinaBernardo Dominic NEW
Morrow D VenereGermanyElwin Sharvill QUALIFIED
Emily F KolmetzGermanyOnyama Limba UNQUALIFIED
Alejandro L MarrierBrazilStephen Shaw NEW
Ashley V IturbideItalyOnyama Limba QUALIFIED
Tony S AlbaresUnited KingdomElwin Sharvill NEGOTIATION
Rodrigues A GillianBrazilIoni Bowcher PROPOSAL
Mujtaba G MorascaAustraliaXuxue Feng NEGOTIATION
Aruna O SergiGermanyElwin Sharvill UNQUALIFIED
Aditya X MorascaItalyIvan Magalhaes UNQUALIFIED
Ashley G ButtUnited KingdomIoni Bowcher UNQUALIFIED
Emily F GarufiSpainBernardo Dominic 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>