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
Emily A VocelkaArgentinaElwin Sharvill PROPOSAL
Kaitlin C MaletArgentinaIoni Bowcher RENEWAL
Sinclair I RoysterUnited KingdomBernardo Dominic PROPOSAL
Misaki S RulapaughGermanyAmy Elsner QUALIFIED
Julie B PoquetteJapanElwin Sharvill QUALIFIED
Stacey W FlosiIndiaIoni Bowcher RENEWAL
Claire N VocelkaBrazilIvan Magalhaes UNQUALIFIED
Ashley J PaprockiGermanyAnna Fali QUALIFIED
Aditya K GauchoSpainStephen Shaw NEGOTIATION
Jennifer R DilliardSpainXuxue Feng NEW
Octavia A FigeroaFranceOnyama Limba UNQUALIFIED
Morrow X FollerGermanyIvan Magalhaes NEGOTIATION
Mayumi T MarrierAustraliaStephen Shaw QUALIFIED
James Q VenereBrazilAsiya Javayant NEW
Kadeem Y ButtUnited KingdomOnyama Limba PROPOSAL
Wickens O CampainBrazilBernardo Dominic RENEWAL
Leja A DilliardUnited KingdomBernardo Dominic QUALIFIED
Salvatore Y InouyeIndiaStephen Shaw NEW
James T BologniaItalyAsiya Javayant QUALIFIED
Tony G DoeJapanElwin Sharvill QUALIFIED
Jeanfrancois I SaylorsUnited KingdomIvan Magalhaes NEW
Wickens Q BowleyCanadaStephen Shaw RENEWAL
Isabel P ShinkoFranceBernardo Dominic PROPOSAL
Clifford B DilliardAustraliaXuxue Feng QUALIFIED
Tony R SaylorsItalyStephen Shaw UNQUALIFIED
James D MacleadSpainAsiya Javayant NEW
Morrow U FollerArgentinaIvan Magalhaes NEW
Ashley D RutaSpainAsiya Javayant RENEWAL
Morrow R RimBrazilIvan Magalhaes NEGOTIATION
Aruna X CampainGermanyElwin Sharvill NEGOTIATION
Nicolas K IturbideGermanyXuxue Feng NEGOTIATION
Mayumi Z NestleSpainStephen Shaw PROPOSAL
Emily N CampainAustraliaIvan Magalhaes NEGOTIATION
Alejandro J CaudyAustraliaIvan Magalhaes UNQUALIFIED
Clifford Q BologniaAustraliaAsiya Javayant UNQUALIFIED
Octavia L DilliardGermanyIoni Bowcher UNQUALIFIED
Deepesh R StockhamFranceOnyama Limba NEGOTIATION
Morrow Z OldroydRussiaAsiya Javayant NEGOTIATION
Ashley T MacleadCanadaXuxue Feng PROPOSAL
Ivar A CaudySpainAnna Fali NEW
Octavia F WieserCanadaAnna Fali RENEWAL
Izzy P MaletArgentinaElwin Sharvill QUALIFIED
Rodrigues W VenereUnited KingdomOnyama Limba RENEWAL
Sinclair Z RutaBrazilAsiya Javayant UNQUALIFIED
Jennifer Q NickaGermanyAmy Elsner QUALIFIED
Munro K DarakjyUnited KingdomAmy Elsner RENEWAL
Aditya A GauchoJapanAnna Fali UNQUALIFIED
Ricardo Y RimIndiaAmy Elsner PROPOSAL
Kaitlin I OldroydArgentinaStephen Shaw QUALIFIED
Antonio L SaylorsBrazilAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Ivar B BowleyIndiaIvan Magalhaes QUALIFIED
Kadeem Z DoeItalyAsiya Javayant NEGOTIATION
Misaki I FlosiArgentinaIoni Bowcher NEGOTIATION
Julie Q RutaSpainElwin Sharvill RENEWAL
Francesco B VenereFranceOnyama Limba PROPOSAL
Jefferson B OstroskyRussiaBernardo Dominic UNQUALIFIED
Mayumi A DarakjyRussiaAnna Fali UNQUALIFIED
Isabel Z OldroydSpainAnna Fali NEW
Aruna E RimSpainIvan Magalhaes UNQUALIFIED
Leja H MaletAustraliaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja Q KuskoArgentina2024-06-04Chanay, Jeffrey A Esq NEGOTIATION4Amy Elsner
1001Juan B GarufiIndia2024-05-25Commercial Press QUALIFIED89Ivan Magalhaes
1002Kaitlin X CaldareraCanada2024-05-24Dorl, James J Esq PROPOSAL87Amy Elsner
1003Octavia K GlickJapan2024-05-18Buckley Miller Wright PROPOSAL95Ivan Magalhaes
1004Alejandro S ShinkoJapan2024-05-08Feiner Bros RENEWAL30Bernardo Dominic
1005Leja I DilliardBrazil2024-05-13Morlong Associates NEW11Amy Elsner
1006Antonio K ButtGermany2024-05-16Benton, John B Jr PROPOSAL86Xuxue Feng
1007Ricardo P StensethAustralia2024-05-17Rangoni Of Florence QUALIFIED80Anna Fali
1008Greenwood V MaletIndia2024-05-30Chanay, Jeffrey A Esq RENEWAL53Elwin Sharvill
1009Antonio Z PerinUnited Kingdom2024-05-10Rangoni Of Florence PROPOSAL6Asiya Javayant
1010Izzy M GarufiGermany2024-05-31Buckley Miller Wright QUALIFIED23Amy Elsner
1011Clifford D ChuiCanada2024-05-22Truhlar And Truhlar Attys UNQUALIFIED63Stephen Shaw
1012Munro T MarrierUnited Kingdom2024-05-26Commercial Press UNQUALIFIED50Ioni Bowcher
1013Chavez Q CaldareraGermany2024-05-16Benton, John B Jr QUALIFIED91Amy Elsner
1014Aditya T MacleadItaly2024-05-11King, Christopher A Esq RENEWAL30Elwin Sharvill
1015Sinclair K SlusarskiIndia2024-05-12Printing Dimensions PROPOSAL42Onyama Limba
1016Claire A BriddickAustralia2024-05-09Commercial Press QUALIFIED83Bernardo Dominic
1017Izzy R StensethArgentina2024-05-12Feltz Printing Service QUALIFIED44Onyama Limba
1018Alejandro M ShinkoSpain2024-05-22Dorl, James J Esq RENEWAL71Xuxue Feng
1019Cody C OldroydItaly2024-05-18Buckley Miller Wright PROPOSAL3Anna Fali
1020Deepesh U FigeroaRussia2024-05-31Morlong Associates UNQUALIFIED9Ioni Bowcher
1021Kaitlin J VocelkaAustralia2024-05-16Chemel, James L Cpa NEW67Elwin Sharvill
1022Ricardo A PaprockiGermany2024-06-01Feltz Printing Service NEGOTIATION96Anna Fali
1023Munro H ButtArgentina2024-05-28Feiner Bros PROPOSAL83Ivan Magalhaes
1024Stacey B RimUnited Kingdom2024-05-27Rousseaux, Michael Esq QUALIFIED73Amy Elsner
1025Clifford L DoeJapan2024-05-30Printing Dimensions QUALIFIED58Asiya Javayant
1026James R AmigonCanada2024-06-02Feiner Bros NEW88Amy Elsner
1027Jones B ChuiCanada2024-05-30Truhlar And Truhlar Attys PROPOSAL12Asiya Javayant
1028Izzy Z PerinCanada2024-05-10Benton, John B Jr QUALIFIED60Ioni Bowcher
1029Isabel E PoquetteIndia2024-05-11Commercial Press PROPOSAL22Onyama Limba
1030Kadeem U ShinkoGermany2024-05-21Printing Dimensions NEGOTIATION44Stephen Shaw
1031Darci D BriddickGermany2024-05-19Chapman, Ross E Esq NEGOTIATION75Bernardo Dominic
1032Aditya W RutaSpain2024-05-19Feiner Bros PROPOSAL62Asiya Javayant
1033Adams Z IturbideSpain2024-06-04Truhlar And Truhlar Attys PROPOSAL81Ioni Bowcher
1034Ashley T GauchoAustralia2024-06-01Feiner Bros RENEWAL39Amy Elsner
1035Wickens B VenereJapan2024-05-29Chapman, Ross E Esq UNQUALIFIED46Onyama Limba
1036Darci S RulapaughRussia2024-05-16Benton, John B Jr RENEWAL11Stephen Shaw
1037Nicolas Y IturbideCanada2024-05-15Feiner Bros NEW68Bernardo Dominic
1038Kaitlin S ShinkoItaly2024-05-13Chapman, Ross E Esq RENEWAL70Anna Fali
1039Adams H AmigonJapan2024-05-30Morlong Associates PROPOSAL33Onyama Limba
1040Arvin Q BriddickSpain2024-05-29Commercial Press NEW34Stephen Shaw
1041Smith B ShinkoFrance2024-06-03Chanay, Jeffrey A Esq UNQUALIFIED93Amy Elsner
1042Costa Z VocelkaCanada2024-05-07Rangoni Of Florence UNQUALIFIED16Anna Fali
1043Ricardo H FerenczIndia2024-05-28Benton, John B Jr PROPOSAL39Bernardo Dominic
1044James C FigeroaArgentina2024-05-18Buckley Miller Wright PROPOSAL96Elwin Sharvill
1045Antonio W RimArgentina2024-05-08Benton, John B Jr RENEWAL35Amy Elsner
1046Maria T CaudyItaly2024-05-31Rousseaux, Michael Esq UNQUALIFIED22Ioni Bowcher
1047Jennifer Z MacleadAustralia2024-05-12Feiner Bros UNQUALIFIED25Anna Fali
1048Salvatore J SaylorsGermany2024-05-23Chanay, Jeffrey A Esq PROPOSAL82Ioni Bowcher
1049Johnson H SaylorsRussia2024-05-19Chanay, Jeffrey A Esq QUALIFIED38Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ivar L FollerBrazilOnyama Limba UNQUALIFIED
Aruna D AmigonCanadaStephen Shaw QUALIFIED
Adams P VenereAustraliaStephen Shaw UNQUALIFIED
James U WhobreyFranceXuxue Feng NEGOTIATION
Kadeem H SaylorsAustraliaIvan Magalhaes NEGOTIATION
Jones B DoeJapanElwin Sharvill NEW
Emily Q GlickIndiaAnna Fali UNQUALIFIED
Aika Q OldroydBrazilStephen Shaw UNQUALIFIED
Nicolas H OstroskyAustraliaStephen Shaw QUALIFIED
Murillo R CaldareraSpainAmy Elsner RENEWAL
Ashley K DilliardItalyAmy Elsner NEW
Misaki I ShinkoFranceIvan Magalhaes PROPOSAL
Costa S NestleBrazilBernardo Dominic UNQUALIFIED
James M VenereSpainXuxue Feng PROPOSAL
Rodrigues Y TollnerBrazilElwin Sharvill PROPOSAL
Darci H MorascaArgentinaElwin Sharvill NEW
Greenwood H ShinkoArgentinaAmy Elsner PROPOSAL
Maisha R InouyeJapanIoni Bowcher NEW
Costa G CampainAustraliaIvan Magalhaes RENEWAL
Morrow H RoysterIndiaIoni Bowcher PROPOSAL
Aruna C AlbaresSpainStephen Shaw NEGOTIATION
Juan U VenereCanadaBernardo Dominic QUALIFIED
David A ChuiGermanyStephen Shaw QUALIFIED
Mujtaba Q AlbaresRussiaIvan Magalhaes NEW
Costa J CampainJapanXuxue Feng NEW
Chavez H NickaArgentinaStephen Shaw PROPOSAL
Julie R MorascaGermanyAnna Fali PROPOSAL
David Z PerinJapanStephen Shaw NEGOTIATION
Kaitlin I BriddickJapanBernardo Dominic NEGOTIATION
Isabel I DilliardGermanyAmy Elsner RENEWAL
Arvin Z BologniaCanadaAsiya Javayant UNQUALIFIED
Maria L SchemmerItalyStephen Shaw RENEWAL
Leja I VenereFranceIvan Magalhaes PROPOSAL
Jones G RulapaughSpainBernardo Dominic RENEWAL
Rodrigues U CaudyRussiaAsiya Javayant UNQUALIFIED
Juan E WhobreyRussiaElwin Sharvill PROPOSAL
Ashley N KolmetzBrazilXuxue Feng PROPOSAL
Antonio S RulapaughJapanAsiya Javayant RENEWAL
Adams U NestleAustraliaAsiya Javayant NEW
Alejandro O ChuiArgentinaAnna Fali NEW
Arvin O FigeroaItalyAmy Elsner RENEWAL
Maria Q OstroskySpainAnna Fali NEW
Izzy D FollerUnited KingdomStephen Shaw NEW
Emily J PaprockiBrazilIvan Magalhaes PROPOSAL
Jones J DilliardFranceOnyama Limba UNQUALIFIED
Cody C AmigonAustraliaAsiya Javayant QUALIFIED
Adams K GlickRussiaXuxue Feng PROPOSAL
Emily P CaudyJapanXuxue Feng RENEWAL
Rodrigues I NestleItalyIvan Magalhaes NEGOTIATION
Ivar K FlosiGermanyAnna Fali NEGOTIATION
Frozen Columns
Name
Jefferson M Foller
Mujtaba O Slusarski
Julie S Slusarski
Izzy F Ruta
Cody V Bowley
Ricardo Z Iturbide
Alejandro X Gillian
Jeanfrancois H Caudy
Maisha Q Darakjy
James C Saylors
Tony E Dilliard
Salvatore L Caudy
Rodrigues Q Darakjy
Wickens V Royster
Ivar D Morasca
Adams T Albares
Costa A Morasca
Aika A Flosi
Aika S Schemmer
Jefferson X Paprocki
Darci U Venere
Jones N Iturbide
Kadeem N Stenseth
Costa Y Perin
Johnson Y Malet
Cody X Tollner
Kaitlin J Dilliard
Ivar M Wieser
Maria M Stockham
Octavia T Chui
Mayumi O Perin
Ivar O Garufi
Aika P Schemmer
Murillo G Briddick
Rodrigues Q Poquette
Sinclair U Ostrosky
Murillo B Ruta
Kaitlin M Slusarski
Adams S Malet
David U Maclead
Smith A Perin
Kadeem V Wieser
Deepesh S Ferencz
David J Rim
Munro J Paprocki
Emily G Ferencz
Antonio R Marrier
Alejandro U Caldarera
Smith O Glick
Emily C Rulapaugh
IdCountryDate
1000Spain2024-05-14
1001Canada2024-05-11
1002Australia2024-05-21
1003Brazil2024-05-25
1004Brazil2024-06-01
1005Australia2024-05-23
1006Germany2024-05-14
1007Canada2024-05-22
1008France2024-05-19
1009Brazil2024-05-08
1010Italy2024-06-04
1011United Kingdom2024-05-16
1012Italy2024-06-03
1013Spain2024-05-08
1014Italy2024-05-19
1015Spain2024-05-27
1016Canada2024-06-01
1017Italy2024-05-29
1018France2024-05-24
1019United Kingdom2024-05-15
1020Japan2024-05-26
1021Spain2024-05-31
1022Brazil2024-05-07
1023Argentina2024-05-18
1024India2024-05-25
1025Australia2024-05-18
1026Italy2024-05-27
1027Germany2024-05-23
1028Italy2024-05-14
1029Spain2024-05-19
1030Japan2024-05-21
1031Canada2024-05-23
1032Australia2024-06-01
1033France2024-05-18
1034Spain2024-05-29
1035United Kingdom2024-05-24
1036United Kingdom2024-05-17
1037Spain2024-05-12
1038Japan2024-05-26
1039Canada2024-05-20
1040Italy2024-06-03
1041France2024-05-07
1042Argentina2024-06-04
1043Brazil2024-05-26
1044Russia2024-05-30
1045Germany2024-06-04
1046Japan2024-05-15
1047Australia2024-05-07
1048Japan2024-05-10
1049Canada2024-05-23

On-Demand Data

NameIdCountryDate
Maisha Y Garufi1000Germany2024-05-13
Costa U Ostrosky1001Argentina2024-05-30
Morrow A Waycott1002Brazil2024-05-22
Aika Q Perin1003Brazil2024-05-08
Tony B Rulapaugh1004Russia2024-05-17
Sinclair T Whobrey1005Spain2024-05-17
Izzy R Chui1006Germany2024-06-01
Mayumi U Tollner1007Canada2024-05-12
Jeanfrancois G Caudy1008Argentina2024-05-12
Johnson R Slusarski1009India2024-06-02
Faith O Rim1010Germany2024-05-22
Costa M Butt1011France2024-05-16
Greenwood T Ostrosky1012Spain2024-05-08
Murillo C Iturbide1013Japan2024-06-03
Morrow W Darakjy1014Australia2024-05-23
Johnson I Doe1015Russia2024-05-15
Silvio A Morasca1016Japan2024-06-03
David I Nestle1017Germany2024-05-27
Maisha P Ferencz1018Russia2024-05-12
Juan J Flosi1019Italy2024-05-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair F SchemmerRussiaAmy Elsner PROPOSAL
Greenwood R StensethBrazilAmy Elsner QUALIFIED
Adams I GillianIndiaAmy Elsner PROPOSAL
Octavia R InouyeAustraliaXuxue Feng NEW
Faith J NestleArgentinaXuxue Feng QUALIFIED
Aditya X DoeGermanyElwin Sharvill NEW
Cody G RulapaughSpainStephen Shaw NEW
James U SchemmerBrazilIoni Bowcher NEGOTIATION
Smith O AmigonFranceOnyama Limba QUALIFIED
Rodrigues Y SchemmerItalyAmy Elsner PROPOSAL
Arvin O MarrierGermanyIvan Magalhaes RENEWAL
Greenwood K BologniaIndiaIvan Magalhaes PROPOSAL
Munro H CampainJapanOnyama Limba UNQUALIFIED
Mayumi S ChuiFranceAmy Elsner QUALIFIED
Ashley Q WieserBrazilAsiya Javayant NEGOTIATION
Ivar Z MaletSpainIoni Bowcher PROPOSAL
David K ButtGermanyStephen Shaw UNQUALIFIED
Izzy J MorascaBrazilAmy Elsner UNQUALIFIED
Silvio E FerenczAustraliaBernardo Dominic RENEWAL
Ashley U DoeArgentinaXuxue Feng QUALIFIED
Jeanfrancois F FigeroaFranceStephen Shaw QUALIFIED
Maisha P SchemmerIndiaIvan Magalhaes PROPOSAL
Ashley R StensethIndiaAnna Fali QUALIFIED
Izzy C OldroydGermanyIoni Bowcher NEW
Aditya D ButtBrazilBernardo Dominic NEGOTIATION
David O PoquetteUnited KingdomOnyama Limba PROPOSAL
Emily M PoquetteIndiaAnna Fali NEW
Aika F PaprockiUnited KingdomAnna Fali NEGOTIATION
Octavia G NickaCanadaStephen Shaw QUALIFIED
Darci W WieserFranceAsiya Javayant NEGOTIATION
Maria B DoeUnited KingdomIvan Magalhaes PROPOSAL
Leon G GarufiIndiaXuxue Feng PROPOSAL
Julie S MaletCanadaIoni Bowcher NEW
Clifford Y RulapaughSpainIoni Bowcher PROPOSAL
Kaitlin T OldroydCanadaAmy Elsner NEGOTIATION
Jones M BowleyJapanBernardo Dominic QUALIFIED
Salvatore J MaletRussiaAmy Elsner UNQUALIFIED
Leja H CampainGermanyXuxue Feng NEGOTIATION
Nicolas G FerenczArgentinaIoni Bowcher NEW
Sinclair V KuskoCanadaStephen Shaw 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>