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
Rodrigues M ChuiArgentinaAnna Fali NEGOTIATION
Cody B DarakjyFranceAmy Elsner RENEWAL
Silvio G RimBrazilAsiya Javayant PROPOSAL
Jones E WaycottAustraliaStephen Shaw QUALIFIED
Claire F PaprockiCanadaAsiya Javayant UNQUALIFIED
Kadeem J DilliardFranceIvan Magalhaes QUALIFIED
Salvatore A NestleIndiaAsiya Javayant QUALIFIED
Jefferson Q VenereItalyIoni Bowcher UNQUALIFIED
Ivar Q NestleCanadaAnna Fali NEGOTIATION
Smith A MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Darci O RimSpainXuxue Feng PROPOSAL
Jeanfrancois P BologniaJapanIoni Bowcher QUALIFIED
Misaki Y PerinSpainIvan Magalhaes QUALIFIED
Julie K StockhamItalyElwin Sharvill QUALIFIED
Misaki F DilliardSpainElwin Sharvill NEW
David X ChuiGermanyAnna Fali QUALIFIED
Kadeem S SlusarskiRussiaOnyama Limba UNQUALIFIED
Chavez N PoquetteAustraliaAsiya Javayant PROPOSAL
Greenwood R StockhamIndiaAnna Fali NEGOTIATION
Octavia P MarrierUnited KingdomElwin Sharvill UNQUALIFIED
Octavia O KuskoItalyXuxue Feng RENEWAL
Salvatore R MorascaGermanyStephen Shaw NEGOTIATION
Adams G MarrierRussiaAmy Elsner PROPOSAL
Munro P MaletUnited KingdomBernardo Dominic NEGOTIATION
Morrow S StensethSpainElwin Sharvill QUALIFIED
Costa Y BologniaFranceXuxue Feng UNQUALIFIED
Murillo D VocelkaFranceXuxue Feng RENEWAL
Arvin V FollerGermanyStephen Shaw UNQUALIFIED
Jones G WaycottArgentinaStephen Shaw UNQUALIFIED
Cody O OldroydBrazilAsiya Javayant RENEWAL
Kaitlin C CampainItalyAmy Elsner RENEWAL
Kadeem M VocelkaUnited KingdomXuxue Feng NEW
Juan F FigeroaCanadaStephen Shaw UNQUALIFIED
Silvio N DoeGermanyAnna Fali PROPOSAL
Morrow Z WaycottCanadaAmy Elsner PROPOSAL
Kadeem N ShinkoAustraliaAmy Elsner PROPOSAL
Isabel M FigeroaFranceAnna Fali QUALIFIED
Stacey I CaldareraUnited KingdomElwin Sharvill RENEWAL
Maria F RulapaughAustraliaAmy Elsner NEGOTIATION
Aruna A MaletBrazilOnyama Limba UNQUALIFIED
Deepesh M WieserUnited KingdomXuxue Feng UNQUALIFIED
Tony G WaycottItalyBernardo Dominic NEW
Greenwood Z StensethIndiaXuxue Feng UNQUALIFIED
David Y CaudyUnited KingdomAmy Elsner NEGOTIATION
Stacey M AmigonRussiaBernardo Dominic NEW
David O RoysterIndiaIoni Bowcher RENEWAL
Mujtaba J IturbideArgentinaIoni Bowcher RENEWAL
Claire Z SchemmerBrazilAmy Elsner QUALIFIED
Antonio P SlusarskiGermanyStephen Shaw NEW
Wickens S BriddickIndiaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson F DilliardGermanyIoni Bowcher NEW
Jones K SergiRussiaXuxue Feng QUALIFIED
Juan B VocelkaFranceElwin Sharvill PROPOSAL
Ivar X BowleyGermanyBernardo Dominic NEGOTIATION
Jones M FigeroaBrazilAmy Elsner RENEWAL
Chavez Q KolmetzItalyStephen Shaw NEW
Izzy M BriddickBrazilAmy Elsner RENEWAL
Juan Y WhobreyGermanyStephen Shaw NEGOTIATION
Izzy E KolmetzItalyBernardo Dominic RENEWAL
Emily E BologniaUnited KingdomOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya E CampainAustralia2026-07-16Feltz Printing Service RENEWAL22Onyama Limba
1001Jones J FollerJapan2026-07-02King, Christopher A Esq NEGOTIATION58Asiya Javayant
1002Stacey M BologniaItaly2026-07-14Printing Dimensions NEW7Ioni Bowcher
1003Tony X AlbaresItaly2026-07-07Buckley Miller Wright PROPOSAL41Ioni Bowcher
1004Rodrigues U SlusarskiArgentina2026-07-05King, Christopher A Esq NEW95Asiya Javayant
1005Misaki M SaylorsCanada2026-07-15Dorl, James J Esq QUALIFIED35Elwin Sharvill
1006Salvatore S GauchoUnited Kingdom2026-07-12King, Christopher A Esq NEGOTIATION35Onyama Limba
1007Jennifer Q StockhamCanada2026-06-27King, Christopher A Esq NEW20Asiya Javayant
1008Aruna D GillianIndia2026-06-24Rousseaux, Michael Esq PROPOSAL38Xuxue Feng
1009Rodrigues Z GauchoBrazil2026-07-08Printing Dimensions UNQUALIFIED26Onyama Limba
1010Smith G CaldareraBrazil2026-06-19Buckley Miller Wright NEGOTIATION81Bernardo Dominic
1011Kadeem P SchemmerItaly2026-06-18Dorl, James J Esq NEW22Onyama Limba
1012Ashley G GauchoSpain2026-06-24Feiner Bros PROPOSAL33Amy Elsner
1013Darci C WieserGermany2026-07-15Rangoni Of Florence PROPOSAL74Anna Fali
1014Emily Y WieserSpain2026-06-17Feltz Printing Service NEGOTIATION54Ioni Bowcher
1015Kadeem M InouyeSpain2026-06-28Buckley Miller Wright QUALIFIED70Asiya Javayant
1016Jefferson Y GarufiItaly2026-06-19Morlong Associates NEGOTIATION46Xuxue Feng
1017Aruna B FerenczSpain2026-06-26Feltz Printing Service NEGOTIATION81Anna Fali
1018Antonio N MorascaItaly2026-06-28Feltz Printing Service NEW94Bernardo Dominic
1019Murillo L DarakjyCanada2026-07-01Rousseaux, Michael Esq NEGOTIATION67Asiya Javayant
1020Jefferson Q SergiSpain2026-07-02Rousseaux, Michael Esq PROPOSAL23Ivan Magalhaes
1021Isabel Z IturbideFrance2026-06-19Rangoni Of Florence PROPOSAL32Asiya Javayant
1022Claire A CaldareraSpain2026-07-15Feiner Bros UNQUALIFIED26Onyama Limba
1023Ricardo Z AlbaresGermany2026-07-13Rangoni Of Florence NEGOTIATION77Xuxue Feng
1024Isabel F NestleSpain2026-07-03Benton, John B Jr QUALIFIED97Ioni Bowcher
1025Morrow E FigeroaItaly2026-06-20Morlong Associates UNQUALIFIED65Bernardo Dominic
1026Octavia R NickaFrance2026-06-17Benton, John B Jr NEGOTIATION83Xuxue Feng
1027Ivar H MaletGermany2026-07-13Chapman, Ross E Esq RENEWAL49Onyama Limba
1028Emily W DilliardBrazil2026-06-18Morlong Associates PROPOSAL68Onyama Limba
1029Stacey G CaldareraAustralia2026-06-25Benton, John B Jr UNQUALIFIED59Xuxue Feng
1030Leja L FerenczAustralia2026-07-02Feiner Bros UNQUALIFIED59Asiya Javayant
1031Alejandro R AlbaresSpain2026-06-26Dorl, James J Esq PROPOSAL11Onyama Limba
1032Adams T MaletAustralia2026-06-24Rangoni Of Florence UNQUALIFIED24Anna Fali
1033Arvin M BologniaUnited Kingdom2026-06-18Chapman, Ross E Esq NEGOTIATION75Ivan Magalhaes
1034Julie K FollerJapan2026-07-03Rousseaux, Michael Esq PROPOSAL12Stephen Shaw
1035James S GlickArgentina2026-06-24Rousseaux, Michael Esq PROPOSAL64Anna Fali
1036Aditya W GillianCanada2026-07-10Feiner Bros RENEWAL20Elwin Sharvill
1037Francesco X SergiRussia2026-06-20Feltz Printing Service RENEWAL52Anna Fali
1038Maria I ButtIndia2026-06-27King, Christopher A Esq RENEWAL14Onyama Limba
1039Tony D VenereAustralia2026-07-03Feltz Printing Service RENEWAL51Ioni Bowcher
1040Clifford B WieserSpain2026-07-12King, Christopher A Esq NEGOTIATION96Xuxue Feng
1041Jennifer M MaletBrazil2026-06-29Feltz Printing Service PROPOSAL74Asiya Javayant
1042Chavez W MorascaCanada2026-06-22Benton, John B Jr QUALIFIED0Elwin Sharvill
1043James M PoquetteArgentina2026-07-04Printing Dimensions QUALIFIED93Anna Fali
1044Jones Y FerenczJapan2026-07-07Chapman, Ross E Esq QUALIFIED73Onyama Limba
1045Johnson W FigeroaJapan2026-07-04Morlong Associates QUALIFIED24Ivan Magalhaes
1046Jefferson S StensethRussia2026-07-09Feiner Bros QUALIFIED63Asiya Javayant
1047Claire U KuskoIndia2026-06-30Rangoni Of Florence PROPOSAL68Asiya Javayant
1048Nicolas T DilliardAustralia2026-06-23Dorl, James J Esq RENEWAL34Bernardo Dominic
1049Claire X MacleadUnited Kingdom2026-07-13Rousseaux, Michael Esq RENEWAL45Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Octavia N OstroskyBrazilBernardo Dominic UNQUALIFIED
Leja H GlickRussiaAmy Elsner QUALIFIED
Adams M InouyeFranceIoni Bowcher PROPOSAL
Morrow K RutaRussiaAmy Elsner QUALIFIED
Cody J SaylorsCanadaElwin Sharvill NEW
Salvatore A ShinkoBrazilBernardo Dominic NEW
Aditya V RulapaughSpainIvan Magalhaes UNQUALIFIED
Julie O FlosiArgentinaAmy Elsner QUALIFIED
Kadeem F MacleadArgentinaIvan Magalhaes RENEWAL
Mayumi J OldroydJapanAnna Fali QUALIFIED
Jefferson F PoquetteCanadaAmy Elsner QUALIFIED
Antonio K NestleUnited KingdomOnyama Limba QUALIFIED
Maisha A SchemmerRussiaIvan Magalhaes NEGOTIATION
Tony N KolmetzCanadaIoni Bowcher NEW
Julie D PaprockiIndiaAsiya Javayant PROPOSAL
Munro Y CaldareraSpainStephen Shaw PROPOSAL
Ashley N RulapaughGermanyIoni Bowcher UNQUALIFIED
Leon F WhobreyCanadaElwin Sharvill PROPOSAL
Isabel F NestleIndiaIvan Magalhaes QUALIFIED
Alejandro Y FlosiUnited KingdomOnyama Limba RENEWAL
Wickens H KolmetzCanadaBernardo Dominic RENEWAL
Mayumi R BriddickGermanyAsiya Javayant NEW
Murillo V GillianCanadaAmy Elsner PROPOSAL
Maria R MacleadJapanAmy Elsner RENEWAL
Jefferson S CampainArgentinaBernardo Dominic PROPOSAL
Misaki Z SlusarskiBrazilOnyama Limba NEW
Emily Y GillianRussiaIoni Bowcher NEGOTIATION
Rodrigues W StockhamArgentinaAsiya Javayant NEW
Francesco O CampainGermanyElwin Sharvill PROPOSAL
Claire I CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Juan M FerenczUnited KingdomAmy Elsner NEGOTIATION
Jennifer F FollerArgentinaAmy Elsner PROPOSAL
Isabel G FerenczAustraliaAnna Fali UNQUALIFIED
Jeanfrancois L ButtBrazilAnna Fali PROPOSAL
Morrow F DilliardBrazilIoni Bowcher PROPOSAL
Sinclair I PerinJapanIoni Bowcher QUALIFIED
Alejandro O OldroydArgentinaAmy Elsner QUALIFIED
Morrow Z VocelkaBrazilXuxue Feng PROPOSAL
Izzy U KolmetzUnited KingdomAnna Fali QUALIFIED
Aika U FollerGermanyBernardo Dominic UNQUALIFIED
Faith L RulapaughRussiaBernardo Dominic QUALIFIED
Stacey G BriddickBrazilElwin Sharvill UNQUALIFIED
Juan J WhobreyAustraliaXuxue Feng NEW
Murillo N CampainRussiaBernardo Dominic NEGOTIATION
Isabel B DoeGermanyElwin Sharvill UNQUALIFIED
Darci Z GarufiSpainIvan Magalhaes RENEWAL
Emily R MacleadIndiaElwin Sharvill QUALIFIED
Morrow S SaylorsIndiaIoni Bowcher QUALIFIED
Costa F CampainItalyAsiya Javayant UNQUALIFIED
Chavez I DilliardJapanBernardo Dominic RENEWAL
Frozen Columns
Name
Murillo P Waycott
Murillo R Chui
Emily M Kolmetz
Alejandro T Figeroa
Smith F Doe
Leja C Sergi
Smith K Nestle
Jones Y Morasca
Stacey T Whobrey
Clifford Q Bolognia
Darci S Glick
Maisha N Glick
Adams S Bolognia
Jennifer R Morasca
Johnson J Chui
Sinclair X Nestle
James H Ferencz
Aika H Tollner
Darci K Venere
Arvin W Maclead
Jeanfrancois C Campain
Darci R Paprocki
Wickens K Bowley
Julie V Gillian
Greenwood N Glick
Darci H Poquette
Wickens H Waycott
James Z Gillian
Cody O Slusarski
Maisha G Rulapaugh
Munro D Bowley
Izzy D Malet
Juan O Caudy
Ricardo E Doe
Silvio G Ostrosky
Costa G Perin
Claire T Maclead
Mujtaba K Ruta
Leja P Tollner
Rodrigues M Foller
Leja D Perin
Jennifer W Venere
Cody H Malet
Chavez F Ruta
Sinclair Y Albares
Maria J Malet
Faith C Poquette
Jefferson F Kolmetz
Julie E Iturbide
Arvin R Shinko
IdCountryDate
1000United Kingdom2026-06-17
1001Australia2026-06-18
1002France2026-07-06
1003Brazil2026-07-07
1004France2026-07-15
1005Canada2026-06-26
1006United Kingdom2026-07-10
1007Brazil2026-06-18
1008Germany2026-07-04
1009Germany2026-07-10
1010Australia2026-06-30
1011Canada2026-07-03
1012Spain2026-07-13
1013Canada2026-06-27
1014Argentina2026-07-07
1015France2026-07-07
1016India2026-07-03
1017India2026-06-30
1018Russia2026-06-20
1019Spain2026-07-16
1020Russia2026-06-24
1021Japan2026-06-18
1022Japan2026-07-16
1023India2026-06-27
1024Japan2026-07-08
1025Spain2026-06-20
1026Brazil2026-07-07
1027Canada2026-07-04
1028India2026-07-15
1029Germany2026-07-14
1030Australia2026-06-30
1031United Kingdom2026-06-22
1032France2026-06-20
1033Australia2026-06-26
1034Spain2026-07-13
1035Canada2026-07-16
1036Brazil2026-07-02
1037Russia2026-07-10
1038Argentina2026-07-11
1039Australia2026-06-23
1040India2026-07-11
1041United Kingdom2026-07-11
1042Germany2026-06-23
1043India2026-07-11
1044Germany2026-06-27
1045Argentina2026-07-13
1046United Kingdom2026-06-19
1047Russia2026-07-09
1048Russia2026-07-14
1049France2026-06-24

On-Demand Data

NameIdCountryDate
Clifford L Flosi1000Spain2026-07-11
Leon O Tollner1001Australia2026-06-20
Adams C Morasca1002Australia2026-06-27
Aika Z Oldroyd1003Germany2026-06-22
Julie N Garufi1004France2026-07-06
Clifford R Stenseth1005Argentina2026-06-29
Silvio L Bowley1006Japan2026-06-23
Sinclair V Poquette1007Italy2026-07-04
Aditya U Nestle1008France2026-06-30
Wickens N Saylors1009Australia2026-07-08
Kadeem P Ruta1010Brazil2026-06-17
Aruna E Darakjy1011Argentina2026-06-26
Faith Z Gillian1012India2026-07-08
Salvatore U Oldroyd1013United Kingdom2026-07-07
Mayumi J Ferencz1014Australia2026-07-07
Mujtaba F Waycott1015Germany2026-06-19
Octavia O Waycott1016Russia2026-06-28
Munro Z Oldroyd1017Australia2026-07-08
Tony A Bolognia1018India2026-07-11
Munro T Waycott1019Germany2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford Y CaudyFranceStephen Shaw UNQUALIFIED
Misaki D AmigonBrazilAnna Fali NEW
Mayumi E FollerUnited KingdomAnna Fali UNQUALIFIED
Salvatore V WhobreyIndiaAmy Elsner QUALIFIED
Alejandro R WaycottJapanOnyama Limba PROPOSAL
Adams Z SaylorsJapanIvan Magalhaes UNQUALIFIED
Maria W BologniaItalyXuxue Feng UNQUALIFIED
Claire Z BriddickSpainAmy Elsner NEGOTIATION
Maria I DarakjyIndiaBernardo Dominic RENEWAL
Aruna W MaletAustraliaBernardo Dominic NEGOTIATION
Murillo U VenereGermanyBernardo Dominic RENEWAL
Kadeem B BowleyJapanIoni Bowcher NEGOTIATION
Wickens X ChuiJapanOnyama Limba NEGOTIATION
Costa Y MaletAustraliaAnna Fali QUALIFIED
Wickens X ButtFranceIoni Bowcher RENEWAL
Silvio I OstroskyRussiaAmy Elsner NEGOTIATION
Chavez B GauchoArgentinaStephen Shaw NEGOTIATION
Chavez H OstroskyArgentinaAsiya Javayant NEW
Kaitlin E InouyeGermanyIoni Bowcher NEW
Nicolas H RutaArgentinaXuxue Feng NEW
Clifford G OldroydBrazilIvan Magalhaes NEGOTIATION
Faith S AmigonIndiaIvan Magalhaes RENEWAL
Maisha N AlbaresFranceAmy Elsner UNQUALIFIED
Rodrigues S WieserCanadaAmy Elsner RENEWAL
Rodrigues X GillianIndiaBernardo Dominic UNQUALIFIED
Jennifer N DoeFranceElwin Sharvill PROPOSAL
Aruna F RoysterCanadaAnna Fali RENEWAL
Arvin W DoeFranceAnna Fali UNQUALIFIED
Maisha F IturbideUnited KingdomOnyama Limba NEGOTIATION
Maisha M OldroydAustraliaIvan Magalhaes NEW
Jeanfrancois R MaletSpainBernardo Dominic NEW
Leja I RimIndiaXuxue Feng NEW
Faith Y SlusarskiBrazilIoni Bowcher PROPOSAL
Aditya B SchemmerCanadaAnna Fali NEGOTIATION
Jefferson M SlusarskiItalyIvan Magalhaes QUALIFIED
Jefferson M OldroydFranceBernardo Dominic QUALIFIED
Adams P AmigonRussiaAmy Elsner NEW
Nicolas F NestleSpainStephen Shaw NEGOTIATION
Nicolas B StockhamGermanyAnna Fali PROPOSAL
Greenwood W PerinJapanAsiya 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>