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
Ashley U TollnerCanadaXuxue Feng NEW
Kaitlin I FigeroaBrazilBernardo Dominic PROPOSAL
Nicolas L WaycottArgentinaAnna Fali RENEWAL
Rodrigues X ShinkoFranceElwin Sharvill NEW
Stacey Y KuskoAustraliaStephen Shaw NEW
Cody H AmigonItalyAnna Fali UNQUALIFIED
Aruna Z RutaCanadaAnna Fali UNQUALIFIED
Jefferson P CampainJapanIvan Magalhaes NEW
Jennifer J RoysterRussiaAnna Fali NEW
Rodrigues N WaycottRussiaAsiya Javayant RENEWAL
Munro C SchemmerFranceIoni Bowcher NEGOTIATION
James L GlickSpainIoni Bowcher PROPOSAL
Cody I GauchoAustraliaIvan Magalhaes NEW
Jeanfrancois V OldroydItalyAsiya Javayant NEGOTIATION
Smith T DarakjySpainStephen Shaw PROPOSAL
Clifford L MaletSpainIvan Magalhaes RENEWAL
Jennifer M MorascaIndiaOnyama Limba QUALIFIED
Antonio I ShinkoAustraliaStephen Shaw UNQUALIFIED
Munro F CampainCanadaXuxue Feng UNQUALIFIED
Aditya K GillianFranceBernardo Dominic UNQUALIFIED
Murillo Z MacleadItalyBernardo Dominic QUALIFIED
Cody Q WaycottRussiaAsiya Javayant NEW
Chavez S WaycottJapanAsiya Javayant NEW
Claire Z CaldareraAustraliaIoni Bowcher NEGOTIATION
Ricardo T MarrierRussiaIvan Magalhaes PROPOSAL
Silvio J InouyeSpainAsiya Javayant NEW
Francesco Q RutaUnited KingdomStephen Shaw RENEWAL
Mujtaba L CaudyJapanAmy Elsner QUALIFIED
Jefferson J AmigonCanadaAnna Fali RENEWAL
Silvio D SergiJapanIoni Bowcher PROPOSAL
Wickens M StockhamGermanyAmy Elsner UNQUALIFIED
Costa N PerinGermanyOnyama Limba NEW
Sinclair M OldroydRussiaAmy Elsner UNQUALIFIED
Costa B FigeroaFranceAsiya Javayant QUALIFIED
Misaki R BologniaJapanAnna Fali PROPOSAL
Johnson S ChuiBrazilIvan Magalhaes UNQUALIFIED
Deepesh T OstroskyItalyStephen Shaw NEW
Leja E DilliardGermanyAmy Elsner NEGOTIATION
Isabel Y MaletGermanyAnna Fali RENEWAL
Sinclair Z FollerItalyBernardo Dominic NEGOTIATION
Salvatore L TollnerIndiaIvan Magalhaes NEGOTIATION
Ashley B RutaCanadaAsiya Javayant UNQUALIFIED
Jeanfrancois A BowleyArgentinaElwin Sharvill PROPOSAL
Aika W OstroskyArgentinaIvan Magalhaes PROPOSAL
Morrow P KolmetzIndiaElwin Sharvill UNQUALIFIED
Smith C OldroydItalyBernardo Dominic UNQUALIFIED
Leon U WaycottBrazilAsiya Javayant UNQUALIFIED
Jeanfrancois Z NestleUnited KingdomStephen Shaw PROPOSAL
Faith Y AlbaresItalyAmy Elsner QUALIFIED
Maisha H FerenczJapanAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro A RutaFranceIoni Bowcher RENEWAL
David S GlickFranceElwin Sharvill NEW
Kadeem N MorascaUnited KingdomXuxue Feng QUALIFIED
Sinclair C RoysterGermanyAsiya Javayant NEW
Francesco R FigeroaJapanIoni Bowcher PROPOSAL
Ricardo T OldroydUnited KingdomIoni Bowcher NEGOTIATION
Francesco S FigeroaCanadaStephen Shaw QUALIFIED
Leja H DoeAustraliaAmy Elsner RENEWAL
Munro B SaylorsFranceOnyama Limba RENEWAL
Octavia O GillianIndiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David J RoysterRussia2026-07-10King, Christopher A Esq QUALIFIED28Anna Fali
1001Jennifer I WieserArgentina2026-07-08Feltz Printing Service PROPOSAL68Stephen Shaw
1002Morrow L MaletItaly2026-07-18Morlong Associates QUALIFIED86Bernardo Dominic
1003Kaitlin V NickaAustralia2026-06-30Chapman, Ross E Esq RENEWAL55Anna Fali
1004Maria V FerenczAustralia2026-07-24Truhlar And Truhlar Attys UNQUALIFIED25Ivan Magalhaes
1005Smith Z PoquetteSpain2026-07-22Morlong Associates RENEWAL22Ivan Magalhaes
1006Mayumi T DoeItaly2026-07-02Chanay, Jeffrey A Esq UNQUALIFIED90Amy Elsner
1007Nicolas P SergiArgentina2026-07-22Dorl, James J Esq PROPOSAL85Bernardo Dominic
1008Nicolas E GlickGermany2026-07-09Feiner Bros RENEWAL66Bernardo Dominic
1009Mayumi J MacleadGermany2026-07-10Buckley Miller Wright QUALIFIED71Anna Fali
1010Greenwood Z RimIndia2026-07-15Chanay, Jeffrey A Esq RENEWAL7Stephen Shaw
1011Francesco N FerenczCanada2026-07-20Rousseaux, Michael Esq PROPOSAL1Xuxue Feng
1012Octavia T RoysterGermany2026-07-07Feiner Bros PROPOSAL24Ivan Magalhaes
1013Izzy C StockhamRussia2026-07-16Rangoni Of Florence QUALIFIED64Amy Elsner
1014Aruna Y FollerRussia2026-06-30Rousseaux, Michael Esq UNQUALIFIED7Ivan Magalhaes
1015Silvio Y KuskoFrance2026-07-05Chemel, James L Cpa NEW81Asiya Javayant
1016Cody F RimUnited Kingdom2026-07-11Morlong Associates UNQUALIFIED60Elwin Sharvill
1017Octavia S OldroydRussia2026-07-17Chapman, Ross E Esq RENEWAL11Anna Fali
1018Darci A GillianCanada2026-06-30Commercial Press NEW13Amy Elsner
1019Claire Z MarrierGermany2026-07-18King, Christopher A Esq UNQUALIFIED7Onyama Limba
1020Salvatore K MorascaGermany2026-07-10Benton, John B Jr NEGOTIATION67Asiya Javayant
1021Maisha O WaycottRussia2026-07-07Rousseaux, Michael Esq UNQUALIFIED72Anna Fali
1022Silvio T StensethIndia2026-07-03Chanay, Jeffrey A Esq RENEWAL54Asiya Javayant
1023Misaki O DilliardCanada2026-07-13Morlong Associates PROPOSAL15Anna Fali
1024David H RimItaly2026-07-14Benton, John B Jr NEW87Onyama Limba
1025Mayumi L SchemmerFrance2026-07-17Feiner Bros NEGOTIATION18Asiya Javayant
1026Jones J PerinAustralia2026-07-22Benton, John B Jr UNQUALIFIED78Ivan Magalhaes
1027Nicolas Q StockhamBrazil2026-07-08Benton, John B Jr PROPOSAL29Amy Elsner
1028Aruna Y BologniaFrance2026-07-01Buckley Miller Wright NEGOTIATION14Bernardo Dominic
1029Adams O SergiArgentina2026-07-25Feltz Printing Service PROPOSAL17Bernardo Dominic
1030Alejandro D PoquetteCanada2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED75Stephen Shaw
1031Wickens J RimJapan2026-07-20Feiner Bros UNQUALIFIED13Anna Fali
1032Claire S FerenczIndia2026-07-15Dorl, James J Esq UNQUALIFIED18Xuxue Feng
1033Ricardo H BologniaJapan2026-06-30Printing Dimensions NEW21Bernardo Dominic
1034Tony A ChuiCanada2026-07-17King, Christopher A Esq UNQUALIFIED60Asiya Javayant
1035Aruna C VenereRussia2026-07-08Buckley Miller Wright PROPOSAL38Asiya Javayant
1036Juan N IturbideFrance2026-07-20Morlong Associates RENEWAL45Elwin Sharvill
1037Silvio K AmigonFrance2026-07-13Buckley Miller Wright NEGOTIATION78Onyama Limba
1038Arvin X GlickAustralia2026-07-08Chapman, Ross E Esq RENEWAL36Bernardo Dominic
1039Clifford X ButtBrazil2026-07-23Rangoni Of Florence RENEWAL31Stephen Shaw
1040Nicolas P CaldareraItaly2026-07-10Dorl, James J Esq RENEWAL47Xuxue Feng
1041Aruna M MarrierRussia2026-07-10Chapman, Ross E Esq QUALIFIED97Stephen Shaw
1042Maria Q WaycottUnited Kingdom2026-07-10Chanay, Jeffrey A Esq PROPOSAL79Asiya Javayant
1043Jennifer G CaldareraItaly2026-06-29Printing Dimensions PROPOSAL46Amy Elsner
1044Darci S RimBrazil2026-07-09Printing Dimensions RENEWAL95Xuxue Feng
1045Darci A ShinkoGermany2026-07-24Feiner Bros NEGOTIATION15Onyama Limba
1046Silvio N GillianIndia2026-07-02Commercial Press NEGOTIATION5Ioni Bowcher
1047Murillo Z DoeItaly2026-07-15Chemel, James L Cpa NEGOTIATION7Amy Elsner
1048Wickens J AlbaresRussia2026-07-14Commercial Press UNQUALIFIED68Bernardo Dominic
1049Smith A ButtArgentina2026-07-14Morlong Associates RENEWAL17Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Tony W NickaRussiaIoni Bowcher RENEWAL
David A OstroskyBrazilAsiya Javayant NEW
Chavez P MorascaArgentinaOnyama Limba PROPOSAL
Darci Q WhobreyArgentinaIoni Bowcher UNQUALIFIED
Aika Z AmigonBrazilBernardo Dominic PROPOSAL
Octavia J BriddickBrazilOnyama Limba PROPOSAL
Antonio F AmigonItalyAnna Fali RENEWAL
Rodrigues B AlbaresIndiaElwin Sharvill RENEWAL
Deepesh D TollnerItalyOnyama Limba QUALIFIED
Leon I RutaJapanIvan Magalhaes PROPOSAL
Nicolas J DarakjyGermanyStephen Shaw RENEWAL
Emily X RimGermanyIvan Magalhaes PROPOSAL
Faith X SlusarskiUnited KingdomBernardo Dominic RENEWAL
Jefferson O TollnerAustraliaAmy Elsner NEW
Kadeem A DarakjyUnited KingdomIvan Magalhaes RENEWAL
Mayumi U PaprockiItalyStephen Shaw NEW
Darci N FollerJapanIvan Magalhaes QUALIFIED
Francesco F OldroydItalyOnyama Limba QUALIFIED
Julie T SlusarskiGermanyIoni Bowcher NEGOTIATION
Ashley J MorascaGermanyIvan Magalhaes RENEWAL
Clifford T PaprockiJapanIoni Bowcher PROPOSAL
Alejandro P NestleFranceIoni Bowcher RENEWAL
Mujtaba E PoquetteAustraliaAnna Fali QUALIFIED
Faith F StockhamAustraliaElwin Sharvill QUALIFIED
Arvin R RutaFranceBernardo Dominic UNQUALIFIED
Jones W MarrierItalyStephen Shaw NEW
Costa Y FigeroaItalyIvan Magalhaes UNQUALIFIED
Deepesh V MarrierUnited KingdomAsiya Javayant QUALIFIED
Mujtaba U CampainUnited KingdomBernardo Dominic RENEWAL
Kadeem E WhobreyJapanStephen Shaw UNQUALIFIED
Jennifer A PaprockiGermanyIvan Magalhaes RENEWAL
Aruna F MaletUnited KingdomIvan Magalhaes RENEWAL
Juan K PerinAustraliaAmy Elsner UNQUALIFIED
Ivar A DarakjyGermanyElwin Sharvill QUALIFIED
Mujtaba L SlusarskiFranceElwin Sharvill PROPOSAL
Murillo R SlusarskiSpainIoni Bowcher UNQUALIFIED
Tony F MarrierArgentinaAmy Elsner NEW
James E VocelkaFranceXuxue Feng NEW
Alejandro C DarakjyItalyOnyama Limba PROPOSAL
Antonio A IturbideItalyAmy Elsner NEW
Alejandro D GillianCanadaStephen Shaw QUALIFIED
Morrow J SchemmerAustraliaAsiya Javayant QUALIFIED
Cody G RoysterSpainIvan Magalhaes NEW
Nicolas Z StockhamUnited KingdomOnyama Limba PROPOSAL
Nicolas H FigeroaSpainAmy Elsner PROPOSAL
Maisha L StockhamIndiaStephen Shaw RENEWAL
Murillo H MacleadBrazilElwin Sharvill NEW
Chavez P MaletItalyBernardo Dominic UNQUALIFIED
Leon T MaletAustraliaXuxue Feng UNQUALIFIED
Costa L WhobreySpainAnna Fali RENEWAL
Frozen Columns
Name
Jefferson T Sergi
Mayumi R Bowley
Jones J Stenseth
Octavia S Malet
Julie H Venere
Octavia B Ruta
Aika M Rulapaugh
Sinclair L Bowley
Nicolas L Darakjy
Smith J Malet
Cody W Bowley
Aditya K Oldroyd
Isabel O Ferencz
Nicolas U Albares
Leon E Schemmer
David N Vocelka
Maisha P Butt
Arvin P Tollner
Francesco C Royster
Tony M Oldroyd
Aika Q Ostrosky
Jones X Morasca
Cody M Kolmetz
Tony N Wieser
Maria O Ostrosky
Jeanfrancois S Waycott
Jeanfrancois A Marrier
Jeanfrancois E Foller
Aika W Nicka
Antonio P Malet
Alejandro X Caldarera
Kadeem B Wieser
Antonio U Rim
Aika X Caudy
Deepesh S Shinko
Silvio Y Nestle
Juan D Malet
Izzy F Tollner
Aruna G Darakjy
Silvio D Tollner
Jones S Oldroyd
Izzy V Marrier
Smith B Foller
Ivar W Venere
Tony R Slusarski
Mujtaba W Bolognia
Murillo C Chui
James Q Poquette
Murillo V Vocelka
Costa P Inouye
IdCountryDate
1000Argentina2026-07-04
1001India2026-07-18
1002Brazil2026-07-17
1003Italy2026-07-05
1004Italy2026-07-04
1005Italy2026-07-17
1006Japan2026-07-17
1007France2026-07-07
1008Japan2026-07-19
1009Canada2026-06-29
1010Brazil2026-07-21
1011Italy2026-07-13
1012Japan2026-07-25
1013India2026-07-24
1014United Kingdom2026-07-26
1015Argentina2026-07-12
1016Germany2026-07-10
1017United Kingdom2026-07-17
1018Japan2026-07-15
1019Australia2026-07-14
1020Japan2026-07-18
1021Argentina2026-06-30
1022Italy2026-07-17
1023India2026-07-27
1024Brazil2026-07-27
1025Australia2026-07-08
1026Argentina2026-07-19
1027Brazil2026-07-01
1028Brazil2026-07-12
1029Japan2026-07-24
1030Russia2026-07-08
1031Spain2026-07-13
1032France2026-07-17
1033Canada2026-07-16
1034United Kingdom2026-07-15
1035India2026-07-09
1036Italy2026-07-26
1037United Kingdom2026-07-02
1038United Kingdom2026-07-27
1039Japan2026-07-22
1040Germany2026-07-17
1041Brazil2026-06-30
1042Spain2026-07-02
1043Canada2026-07-08
1044Germany2026-07-23
1045India2026-07-10
1046Germany2026-06-28
1047Italy2026-07-21
1048Japan2026-07-09
1049India2026-07-14

On-Demand Data

NameIdCountryDate
Murillo J Dilliard1000Germany2026-06-30
Costa W Maclead1001Argentina2026-07-23
Jones H Gaucho1002Spain2026-07-13
Tony H Venere1003Russia2026-07-11
Claire B Rim1004Spain2026-07-06
Juan P Kusko1005United Kingdom2026-07-01
Jefferson T Nestle1006France2026-07-12
Clifford W Campain1007Russia2026-07-26
Mujtaba R Doe1008Spain2026-07-25
Ivar D Gillian1009Spain2026-07-17
Chavez H Kusko1010India2026-07-22
Emily F Nicka1011Germany2026-07-21
Aika W Slusarski1012France2026-07-16
Mayumi K Flosi1013Spain2026-07-12
Nicolas T Kolmetz1014Russia2026-07-18
Darci B Royster1015Spain2026-07-01
Emily V Inouye1016Argentina2026-06-29
Ivar I Nestle1017Italy2026-07-23
Mayumi M Ruta1018Japan2026-07-19
Mayumi R Nestle1019Australia2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio W VocelkaAustraliaOnyama Limba NEW
Julie B BologniaGermanyXuxue Feng UNQUALIFIED
Ricardo E CampainItalyAmy Elsner RENEWAL
Alejandro M PerinRussiaIoni Bowcher PROPOSAL
Munro U RutaJapanIvan Magalhaes NEW
Ivar V KolmetzJapanAsiya Javayant NEW
Wickens Y FigeroaIndiaBernardo Dominic PROPOSAL
Misaki F AmigonRussiaXuxue Feng PROPOSAL
Darci A BowleyFranceIvan Magalhaes UNQUALIFIED
Aditya C RoysterBrazilAmy Elsner NEGOTIATION
Kadeem F RimFranceIoni Bowcher QUALIFIED
Deepesh J MaletRussiaElwin Sharvill UNQUALIFIED
Rodrigues T ButtGermanyElwin Sharvill NEW
Chavez I NestleRussiaAmy Elsner PROPOSAL
Maisha K GauchoIndiaAmy Elsner NEW
Leon B MaletGermanyIvan Magalhaes NEGOTIATION
Aruna J FerenczIndiaIvan Magalhaes RENEWAL
Morrow U TollnerItalyBernardo Dominic RENEWAL
Clifford S CaudyArgentinaOnyama Limba PROPOSAL
Claire A SlusarskiJapanAsiya Javayant RENEWAL
Aruna A SaylorsSpainXuxue Feng NEGOTIATION
Emily T RulapaughUnited KingdomIvan Magalhaes RENEWAL
Salvatore T SchemmerAustraliaStephen Shaw RENEWAL
Salvatore M MaletItalyXuxue Feng NEW
Izzy O PaprockiRussiaIoni Bowcher QUALIFIED
Juan X PerinBrazilIvan Magalhaes NEW
James D StockhamIndiaAsiya Javayant PROPOSAL
Mujtaba E ButtArgentinaIvan Magalhaes PROPOSAL
Octavia P RoysterGermanyXuxue Feng NEGOTIATION
Ivar D FigeroaJapanIvan Magalhaes QUALIFIED
Mujtaba D AmigonUnited KingdomBernardo Dominic RENEWAL
Johnson Y GillianRussiaAmy Elsner NEW
Izzy C ChuiCanadaAnna Fali NEW
Izzy T GillianIndiaIoni Bowcher NEW
Chavez E OldroydRussiaBernardo Dominic QUALIFIED
Arvin M PoquetteJapanBernardo Dominic RENEWAL
Ricardo T PoquetteCanadaAnna Fali NEW
Aruna J CaudyArgentinaAsiya Javayant RENEWAL
Kaitlin V DoeGermanyAsiya Javayant PROPOSAL
James M FerenczCanadaAmy Elsner QUALIFIED

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