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
Wickens S BriddickArgentinaAnna Fali PROPOSAL
Ricardo R SlusarskiJapanXuxue Feng RENEWAL
Kadeem Q DarakjyAustraliaStephen Shaw NEGOTIATION
Emily Q OstroskyItalyAsiya Javayant NEW
Silvio N StensethFranceAsiya Javayant UNQUALIFIED
Isabel Y VocelkaRussiaBernardo Dominic RENEWAL
Smith X TollnerUnited KingdomAmy Elsner NEW
Emily M GarufiUnited KingdomIvan Magalhaes RENEWAL
Leon E AlbaresArgentinaXuxue Feng NEW
Chavez B VocelkaSpainAmy Elsner NEGOTIATION
Juan T OstroskyAustraliaStephen Shaw QUALIFIED
Silvio W GauchoSpainXuxue Feng RENEWAL
Chavez K SergiSpainAsiya Javayant UNQUALIFIED
Greenwood M SergiIndiaXuxue Feng NEW
Johnson B PoquetteUnited KingdomAnna Fali RENEWAL
Murillo Q MacleadArgentinaXuxue Feng UNQUALIFIED
Emily I VenereGermanyIvan Magalhaes RENEWAL
Tony I WhobreyItalyIoni Bowcher QUALIFIED
Kaitlin F MaletAustraliaIoni Bowcher NEW
Octavia Y FollerIndiaAmy Elsner NEW
Aditya M SaylorsItalyIoni Bowcher RENEWAL
Juan C BologniaAustraliaIvan Magalhaes QUALIFIED
Darci B WhobreyJapanIvan Magalhaes RENEWAL
Jennifer Z SaylorsBrazilStephen Shaw RENEWAL
Misaki Y CaudyAustraliaAnna Fali PROPOSAL
Faith M FerenczRussiaAmy Elsner PROPOSAL
Ashley N WaycottGermanyIoni Bowcher PROPOSAL
Aika D CampainAustraliaAsiya Javayant NEW
Leja Y GauchoItalyAmy Elsner UNQUALIFIED
Wickens F OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Murillo R KolmetzItalyAmy Elsner QUALIFIED
Wickens Q CaudyFranceAsiya Javayant UNQUALIFIED
Aruna O DilliardRussiaAnna Fali UNQUALIFIED
Smith J OldroydCanadaAmy Elsner PROPOSAL
Silvio T OstroskyBrazilAmy Elsner UNQUALIFIED
Aditya N DilliardGermanyOnyama Limba QUALIFIED
Alejandro L AmigonIndiaXuxue Feng NEGOTIATION
Julie B StockhamRussiaBernardo Dominic NEGOTIATION
Julie J ButtJapanStephen Shaw NEW
Arvin O RimGermanyAmy Elsner PROPOSAL
Johnson D WhobreyGermanyAsiya Javayant QUALIFIED
Johnson G PaprockiFranceStephen Shaw PROPOSAL
Antonio Y FerenczIndiaBernardo Dominic NEGOTIATION
Munro D IturbideIndiaBernardo Dominic QUALIFIED
Sinclair Z PaprockiIndiaIoni Bowcher PROPOSAL
Kaitlin C TollnerIndiaOnyama Limba NEGOTIATION
Mujtaba Z MaletJapanStephen Shaw NEGOTIATION
Antonio G SergiFranceBernardo Dominic NEGOTIATION
Jennifer T WhobreyGermanyAmy Elsner NEW
Jefferson W PoquetteFranceStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio W PoquetteFranceIvan Magalhaes NEW
Juan G AmigonRussiaAsiya Javayant RENEWAL
Tony B MaletCanadaOnyama Limba NEGOTIATION
Ivar Q GarufiSpainAnna Fali QUALIFIED
Alejandro Y CaldareraItalyAsiya Javayant QUALIFIED
David Z IturbideSpainIoni Bowcher QUALIFIED
Francesco G IturbideIndiaAsiya Javayant QUALIFIED
Morrow W InouyeGermanyBernardo Dominic PROPOSAL
Ashley H DilliardArgentinaAmy Elsner NEW
Kadeem P BowleyRussiaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin E PaprockiUnited Kingdom2026-07-31Commercial Press NEW45Elwin Sharvill
1001Juan A RutaBrazil2026-07-13Dorl, James J Esq NEGOTIATION13Asiya Javayant
1002Jefferson K MaletGermany2026-08-02Chanay, Jeffrey A Esq NEW46Asiya Javayant
1003Adams K StockhamArgentina2026-07-14Rangoni Of Florence PROPOSAL51Ivan Magalhaes
1004Clifford D MorascaArgentina2026-07-16Feiner Bros UNQUALIFIED99Anna Fali
1005Leja H DarakjyJapan2026-07-08Buckley Miller Wright PROPOSAL87Anna Fali
1006Cody B OldroydIndia2026-07-16Benton, John B Jr RENEWAL0Xuxue Feng
1007Chavez F GauchoAustralia2026-07-20Chapman, Ross E Esq QUALIFIED79Ioni Bowcher
1008Jeanfrancois T CaldareraUnited Kingdom2026-07-25Dorl, James J Esq PROPOSAL86Bernardo Dominic
1009Ricardo S AlbaresCanada2026-07-08Rousseaux, Michael Esq PROPOSAL51Xuxue Feng
1010Johnson C StockhamSpain2026-07-23Chemel, James L Cpa NEW32Stephen Shaw
1011Costa E SaylorsArgentina2026-07-15Dorl, James J Esq NEGOTIATION33Ioni Bowcher
1012Stacey E CampainSpain2026-07-28Printing Dimensions PROPOSAL6Onyama Limba
1013Misaki O DoeJapan2026-07-22Dorl, James J Esq NEGOTIATION86Asiya Javayant
1014Jefferson D StensethFrance2026-07-30Truhlar And Truhlar Attys NEW34Bernardo Dominic
1015Aika L PoquetteSpain2026-07-10Benton, John B Jr RENEWAL1Xuxue Feng
1016Jennifer X ChuiRussia2026-07-17Chemel, James L Cpa RENEWAL1Onyama Limba
1017Aika C WaycottIndia2026-07-25Rangoni Of Florence NEW55Amy Elsner
1018Ivar A SchemmerFrance2026-08-02Rangoni Of Florence UNQUALIFIED47Bernardo Dominic
1019Cody V FlosiGermany2026-07-14Buckley Miller Wright PROPOSAL64Onyama Limba
1020Maria I MacleadIndia2026-08-01Chapman, Ross E Esq UNQUALIFIED48Asiya Javayant
1021Faith I MaletGermany2026-07-16Truhlar And Truhlar Attys RENEWAL62Amy Elsner
1022Clifford L WaycottRussia2026-07-12Benton, John B Jr RENEWAL96Ivan Magalhaes
1023Octavia J OstroskyAustralia2026-07-21Feiner Bros NEW81Ioni Bowcher
1024Adams F RutaSpain2026-07-18Rousseaux, Michael Esq NEW4Elwin Sharvill
1025Deepesh C SchemmerFrance2026-07-28Chapman, Ross E Esq NEW95Elwin Sharvill
1026Mujtaba E CampainAustralia2026-07-30Morlong Associates PROPOSAL32Onyama Limba
1027Sinclair O StockhamSpain2026-07-14Feiner Bros NEGOTIATION67Onyama Limba
1028Salvatore X AmigonBrazil2026-08-06Morlong Associates QUALIFIED6Amy Elsner
1029Antonio B NickaUnited Kingdom2026-07-31Chapman, Ross E Esq RENEWAL58Ivan Magalhaes
1030Faith V StockhamCanada2026-08-03Dorl, James J Esq PROPOSAL37Onyama Limba
1031Juan Y SlusarskiJapan2026-08-03Commercial Press RENEWAL23Xuxue Feng
1032Aika N RoysterAustralia2026-07-16Printing Dimensions UNQUALIFIED63Ioni Bowcher
1033Claire A RulapaughIndia2026-07-30Dorl, James J Esq UNQUALIFIED56Anna Fali
1034Costa Q DarakjySpain2026-07-25Rangoni Of Florence RENEWAL61Anna Fali
1035Francesco K GauchoGermany2026-07-13Chanay, Jeffrey A Esq NEW80Bernardo Dominic
1036Aditya W GauchoBrazil2026-07-30Printing Dimensions NEGOTIATION21Asiya Javayant
1037Clifford V DilliardSpain2026-08-03King, Christopher A Esq UNQUALIFIED9Bernardo Dominic
1038Chavez O BowleyRussia2026-08-01Chemel, James L Cpa RENEWAL91Ivan Magalhaes
1039Murillo E FollerUnited Kingdom2026-07-31Dorl, James J Esq QUALIFIED90Anna Fali
1040Salvatore R GillianRussia2026-07-15Rousseaux, Michael Esq NEGOTIATION26Stephen Shaw
1041Aika H ButtJapan2026-07-12Chemel, James L Cpa NEGOTIATION24Ivan Magalhaes
1042Morrow C SergiItaly2026-08-02Buckley Miller Wright RENEWAL97Amy Elsner
1043Stacey B StensethArgentina2026-07-14Morlong Associates QUALIFIED80Onyama Limba
1044Jennifer R GillianUnited Kingdom2026-07-24Benton, John B Jr PROPOSAL28Ivan Magalhaes
1045Munro X BriddickJapan2026-08-03Feiner Bros NEW44Ioni Bowcher
1046Aika R RutaIndia2026-07-31Rangoni Of Florence UNQUALIFIED7Amy Elsner
1047Ricardo F FigeroaItaly2026-07-17King, Christopher A Esq NEGOTIATION94Stephen Shaw
1048Kadeem H MorascaGermany2026-07-15Morlong Associates NEGOTIATION62Amy Elsner
1049Salvatore F NickaRussia2026-07-19Chemel, James L Cpa PROPOSAL23Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Silvio U NickaAustraliaAnna Fali NEGOTIATION
Mayumi T SchemmerFranceIoni Bowcher PROPOSAL
Octavia E MorascaItalyAmy Elsner PROPOSAL
Ivar S CaudyIndiaElwin Sharvill NEGOTIATION
Octavia E IturbideSpainOnyama Limba RENEWAL
Jennifer Y NickaCanadaXuxue Feng UNQUALIFIED
Stacey M RutaCanadaOnyama Limba UNQUALIFIED
Johnson D DoeArgentinaAmy Elsner NEW
Tony L FlosiBrazilBernardo Dominic UNQUALIFIED
Juan Y RoysterSpainAnna Fali UNQUALIFIED
Jones R FigeroaItalyBernardo Dominic RENEWAL
Antonio C KolmetzUnited KingdomBernardo Dominic RENEWAL
Munro Z ButtSpainIoni Bowcher UNQUALIFIED
Juan T BowleyRussiaXuxue Feng NEW
Leon L VenereCanadaElwin Sharvill UNQUALIFIED
Aruna B ShinkoUnited KingdomAsiya Javayant PROPOSAL
Ashley I WieserRussiaOnyama Limba NEGOTIATION
Maisha J DilliardItalyBernardo Dominic NEW
Isabel V ButtJapanIoni Bowcher NEGOTIATION
Cody U WaycottArgentinaElwin Sharvill QUALIFIED
Ricardo C PerinJapanAmy Elsner QUALIFIED
Maria W DilliardUnited KingdomOnyama Limba QUALIFIED
Deepesh I PaprockiGermanyOnyama Limba QUALIFIED
Claire E VenereArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois Q StensethGermanyBernardo Dominic NEW
Wickens Q SchemmerAustraliaAmy Elsner PROPOSAL
Claire A AlbaresItalyXuxue Feng UNQUALIFIED
Smith J GillianItalyXuxue Feng QUALIFIED
Jefferson Q BriddickAustraliaBernardo Dominic NEW
Kadeem H OstroskyAustraliaBernardo Dominic QUALIFIED
Aditya Y KolmetzGermanyOnyama Limba NEW
Kaitlin M WaycottRussiaXuxue Feng NEGOTIATION
Smith P GauchoCanadaOnyama Limba QUALIFIED
Octavia W VocelkaItalyAsiya Javayant NEW
Clifford B StensethSpainXuxue Feng NEW
Aditya B NestleFranceAsiya Javayant RENEWAL
Jones V OstroskyIndiaElwin Sharvill UNQUALIFIED
Johnson I InouyeGermanyBernardo Dominic RENEWAL
Adams X GlickUnited KingdomIoni Bowcher UNQUALIFIED
Greenwood P PaprockiIndiaBernardo Dominic RENEWAL
Stacey Q FlosiBrazilOnyama Limba PROPOSAL
Salvatore W VenereBrazilIoni Bowcher PROPOSAL
Greenwood Y DarakjySpainBernardo Dominic PROPOSAL
James Z CaudyGermanyOnyama Limba PROPOSAL
Emily I FerenczFranceIvan Magalhaes PROPOSAL
Julie I GlickFranceIoni Bowcher QUALIFIED
Arvin D VocelkaJapanXuxue Feng PROPOSAL
Tony Y NestleIndiaIoni Bowcher NEW
Arvin E FlosiSpainBernardo Dominic NEGOTIATION
Kaitlin I BriddickRussiaIoni Bowcher NEW
Frozen Columns
Name
Octavia B Stenseth
Maisha R Stockham
David Q Nicka
Jennifer X Morasca
Arvin L Nicka
Aditya V Gaucho
Francesco L Darakjy
Aditya T Whobrey
Wickens W Nestle
Mujtaba O Doe
Julie N Butt
Aika D Slusarski
Smith P Ferencz
Arvin Q Maclead
Deepesh C Paprocki
Silvio C Gillian
Chavez I Kusko
Aditya B Saylors
Morrow A Bolognia
Ricardo H Marrier
Juan R Marrier
Alejandro Z Stenseth
Smith L Doe
Alejandro M Chui
Maria R Kolmetz
Faith N Sergi
Leja T Gaucho
Murillo A Malet
David Y Schemmer
David S Iturbide
Juan O Stenseth
Greenwood A Stenseth
Leon Z Doe
Munro M Morasca
Ashley L Doe
Julie M Inouye
Claire J Kolmetz
Juan E Darakjy
Antonio Q Bolognia
Darci R Perin
Ashley S Sergi
Tony X Malet
Ivar L Marrier
Kaitlin D Ferencz
Wickens N Oldroyd
Ricardo C Dilliard
Sinclair K Chui
Nicolas Y Bowley
Leon P Amigon
David F Saylors
IdCountryDate
1000Argentina2026-07-16
1001Italy2026-07-18
1002France2026-07-20
1003United Kingdom2026-07-08
1004France2026-07-17
1005Italy2026-07-29
1006Germany2026-08-05
1007Australia2026-08-05
1008Russia2026-07-10
1009Italy2026-07-16
1010Argentina2026-07-30
1011United Kingdom2026-07-10
1012Brazil2026-07-16
1013United Kingdom2026-07-13
1014Italy2026-07-22
1015India2026-07-14
1016India2026-07-20
1017Canada2026-07-29
1018Australia2026-07-13
1019United Kingdom2026-07-25
1020France2026-07-11
1021Russia2026-07-22
1022Russia2026-07-22
1023Germany2026-08-02
1024Canada2026-07-28
1025Germany2026-07-27
1026India2026-08-04
1027India2026-07-24
1028Germany2026-07-15
1029India2026-07-19
1030Germany2026-07-11
1031Japan2026-07-22
1032Argentina2026-07-22
1033Argentina2026-07-23
1034Russia2026-07-27
1035United Kingdom2026-07-27
1036Canada2026-07-19
1037Brazil2026-07-22
1038United Kingdom2026-07-15
1039Australia2026-07-26
1040Italy2026-07-15
1041Canada2026-07-25
1042Russia2026-08-03
1043Canada2026-08-01
1044Italy2026-07-21
1045Australia2026-08-03
1046Argentina2026-07-31
1047Japan2026-07-20
1048Russia2026-08-02
1049India2026-07-12

On-Demand Data

NameIdCountryDate
Ashley F Paprocki1000Russia2026-07-23
Isabel C Glick1001Japan2026-07-28
Maria M Maclead1002Australia2026-07-16
Antonio Q Sergi1003Russia2026-07-29
Mujtaba Y Nicka1004Canada2026-07-10
Isabel C Wieser1005Italy2026-07-20
Mujtaba U Caudy1006Germany2026-07-21
Jennifer Z Briddick1007Japan2026-07-31
Salvatore P Rim1008Japan2026-07-30
Misaki N Caldarera1009India2026-07-25
Jennifer P Dilliard1010Russia2026-07-19
Kadeem E Tollner1011France2026-08-05
Stacey Y Flosi1012Germany2026-08-04
Emily S Gaucho1013Australia2026-07-28
Juan I Inouye1014Germany2026-08-06
Chavez K Maclead1015India2026-07-23
Costa D Dilliard1016Russia2026-07-27
Darci J Caudy1017Australia2026-08-03
Aruna N Darakjy1018Spain2026-07-19
Salvatore X Amigon1019Germany2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh H VocelkaIndiaStephen Shaw NEW
Morrow H RoysterAustraliaIoni Bowcher PROPOSAL
Rodrigues J DoeFranceAmy Elsner PROPOSAL
Octavia H SchemmerFranceAnna Fali UNQUALIFIED
Munro F DilliardItalyOnyama Limba RENEWAL
Maisha Y BologniaBrazilBernardo Dominic UNQUALIFIED
Maisha I InouyeAustraliaAnna Fali QUALIFIED
Wickens U MaletFranceBernardo Dominic NEW
Maria O GarufiSpainIvan Magalhaes NEW
Juan Z AmigonCanadaIoni Bowcher NEGOTIATION
Jeanfrancois S AlbaresAustraliaStephen Shaw NEW
Deepesh F DilliardJapanElwin Sharvill RENEWAL
Adams I KuskoJapanIvan Magalhaes QUALIFIED
Darci Q MaletRussiaAnna Fali QUALIFIED
Julie D MaletJapanStephen Shaw NEGOTIATION
Jennifer V RutaSpainAmy Elsner RENEWAL
Nicolas C WhobreyArgentinaAnna Fali NEW
Jones B KuskoRussiaIvan Magalhaes PROPOSAL
Ricardo H AmigonAustraliaIoni Bowcher NEGOTIATION
Francesco Y IturbideGermanyAsiya Javayant QUALIFIED
Misaki F MaletRussiaAmy Elsner NEGOTIATION
Antonio G BologniaJapanAsiya Javayant NEW
Deepesh G VocelkaIndiaStephen Shaw NEW
Isabel W InouyeIndiaIvan Magalhaes QUALIFIED
Salvatore F FerenczGermanyOnyama Limba PROPOSAL
Jennifer N WaycottArgentinaAnna Fali UNQUALIFIED
Misaki B RulapaughArgentinaIvan Magalhaes QUALIFIED
Jennifer L WhobreyJapanOnyama Limba UNQUALIFIED
Aika K StockhamCanadaAmy Elsner NEGOTIATION
Silvio J StockhamItalyBernardo Dominic NEW
Kadeem J GarufiAustraliaOnyama Limba NEW
Mayumi R MarrierItalyAnna Fali UNQUALIFIED
Antonio C VocelkaItalyXuxue Feng UNQUALIFIED
David O MorascaSpainIvan Magalhaes NEW
Maisha Y AmigonRussiaXuxue Feng RENEWAL
Leja V RulapaughCanadaStephen Shaw RENEWAL
Ashley E BologniaIndiaIoni Bowcher PROPOSAL
Arvin J KuskoFranceBernardo Dominic PROPOSAL
Antonio C MacleadRussiaStephen Shaw NEGOTIATION
Leja Y RutaUnited KingdomAsiya Javayant RENEWAL

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