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
Ivar R BowleySpainIoni Bowcher RENEWAL
Ashley A KolmetzAustraliaStephen Shaw QUALIFIED
Isabel T ChuiGermanyAnna Fali RENEWAL
Adams L VocelkaIndiaIvan Magalhaes RENEWAL
Ricardo X WaycottAustraliaAsiya Javayant RENEWAL
Octavia B AlbaresArgentinaOnyama Limba RENEWAL
Munro Q AlbaresBrazilIvan Magalhaes PROPOSAL
James T SaylorsCanadaOnyama Limba PROPOSAL
Octavia V AlbaresItalyAsiya Javayant RENEWAL
Kaitlin Y BologniaArgentinaAmy Elsner QUALIFIED
Morrow M TollnerRussiaBernardo Dominic RENEWAL
Adams D OstroskyGermanyBernardo Dominic QUALIFIED
Deepesh L SlusarskiFranceAmy Elsner RENEWAL
Darci X BowleyItalyStephen Shaw UNQUALIFIED
Mujtaba J WieserBrazilAmy Elsner QUALIFIED
Costa Q TollnerSpainStephen Shaw NEGOTIATION
Munro T KolmetzBrazilBernardo Dominic PROPOSAL
Clifford V StensethJapanXuxue Feng NEW
Kaitlin A ButtFranceElwin Sharvill NEGOTIATION
Juan V VocelkaCanadaStephen Shaw NEGOTIATION
Adams D RimBrazilXuxue Feng UNQUALIFIED
Chavez O GarufiItalyAsiya Javayant QUALIFIED
Leja P AlbaresSpainAnna Fali NEW
Maria F StockhamGermanyStephen Shaw NEGOTIATION
Maisha S FollerIndiaBernardo Dominic NEW
Alejandro C GauchoUnited KingdomIvan Magalhaes RENEWAL
David Y DoeCanadaAnna Fali UNQUALIFIED
Jeanfrancois Q KuskoBrazilAmy Elsner PROPOSAL
Munro B PaprockiArgentinaXuxue Feng QUALIFIED
Faith L RoysterCanadaElwin Sharvill RENEWAL
Deepesh H DoeIndiaXuxue Feng PROPOSAL
Chavez L FerenczBrazilIoni Bowcher NEGOTIATION
Maria G InouyeJapanAnna Fali RENEWAL
James Z MarrierFranceElwin Sharvill RENEWAL
Salvatore U NestleItalyAmy Elsner PROPOSAL
Aditya U FlosiBrazilBernardo Dominic QUALIFIED
Juan T ButtItalyIvan Magalhaes NEW
Julie T CaldareraRussiaBernardo Dominic RENEWAL
Morrow W WieserCanadaBernardo Dominic NEW
Maria J IturbideArgentinaElwin Sharvill RENEWAL
Izzy L NickaAustraliaIoni Bowcher UNQUALIFIED
Jennifer Y GillianUnited KingdomAmy Elsner UNQUALIFIED
Ricardo C RulapaughAustraliaBernardo Dominic NEGOTIATION
Leon N ShinkoIndiaBernardo Dominic RENEWAL
Ricardo P StensethBrazilElwin Sharvill UNQUALIFIED
Arvin S BologniaJapanElwin Sharvill RENEWAL
Salvatore F PaprockiSpainElwin Sharvill RENEWAL
Clifford D BologniaGermanyXuxue Feng UNQUALIFIED
Isabel K RulapaughJapanIvan Magalhaes PROPOSAL
Stacey V ShinkoSpainIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Morrow W MaletUnited KingdomStephen Shaw PROPOSAL
Adams P NickaUnited KingdomBernardo Dominic QUALIFIED
Nicolas M FollerIndiaAmy Elsner UNQUALIFIED
Maria Q IturbideAustraliaIvan Magalhaes RENEWAL
Wickens A BowleyBrazilAsiya Javayant NEGOTIATION
Wickens F CaldareraCanadaStephen Shaw UNQUALIFIED
Munro G DoeItalyBernardo Dominic RENEWAL
Isabel N RoysterJapanAnna Fali UNQUALIFIED
Julie Y ButtJapanStephen Shaw UNQUALIFIED
James W DarakjyIndiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson O ShinkoIndia2026-07-06Rousseaux, Michael Esq NEW51Asiya Javayant
1001Francesco G MaletArgentina2026-06-23Morlong Associates PROPOSAL76Stephen Shaw
1002Mayumi I RimItaly2026-07-01Chapman, Ross E Esq PROPOSAL20Elwin Sharvill
1003Morrow B KuskoJapan2026-07-06Dorl, James J Esq PROPOSAL70Elwin Sharvill
1004James J OldroydCanada2026-07-03Printing Dimensions PROPOSAL33Onyama Limba
1005Mayumi V StockhamFrance2026-07-03Feiner Bros NEGOTIATION61Anna Fali
1006Aika I StensethUnited Kingdom2026-07-14Commercial Press UNQUALIFIED17Onyama Limba
1007Kadeem N VenereSpain2026-07-02Dorl, James J Esq UNQUALIFIED15Onyama Limba
1008Octavia O TollnerBrazil2026-06-30Rangoni Of Florence NEW93Asiya Javayant
1009Maisha M VenereCanada2026-07-20Commercial Press NEW56Bernardo Dominic
1010Juan S FlosiIndia2026-07-20Buckley Miller Wright NEW66Elwin Sharvill
1011Isabel N FerenczIndia2026-06-29Feltz Printing Service PROPOSAL76Amy Elsner
1012Murillo L BologniaItaly2026-07-07Morlong Associates QUALIFIED12Ioni Bowcher
1013Francesco K StensethFrance2026-07-08Benton, John B Jr UNQUALIFIED46Elwin Sharvill
1014James Z StockhamGermany2026-07-15Feltz Printing Service NEGOTIATION98Asiya Javayant
1015Nicolas H GlickArgentina2026-06-28Truhlar And Truhlar Attys NEW84Ioni Bowcher
1016Kadeem Q NickaRussia2026-06-27Truhlar And Truhlar Attys RENEWAL10Stephen Shaw
1017Aika S VenereAustralia2026-06-30Benton, John B Jr NEGOTIATION38Anna Fali
1018Aditya Q WaycottUnited Kingdom2026-07-04Dorl, James J Esq RENEWAL99Xuxue Feng
1019Izzy L WaycottSpain2026-07-12Morlong Associates NEGOTIATION6Anna Fali
1020Greenwood Q DilliardFrance2026-07-18Commercial Press PROPOSAL48Onyama Limba
1021Leja P FlosiFrance2026-07-01Chemel, James L Cpa PROPOSAL58Ivan Magalhaes
1022Costa L PoquetteCanada2026-06-23Rousseaux, Michael Esq NEW33Amy Elsner
1023Tony H RoysterGermany2026-06-23Feiner Bros QUALIFIED31Onyama Limba
1024Nicolas Z KuskoBrazil2026-07-13Feltz Printing Service PROPOSAL41Asiya Javayant
1025Morrow L ButtCanada2026-07-01Printing Dimensions UNQUALIFIED70Elwin Sharvill
1026Nicolas S RulapaughCanada2026-07-21Printing Dimensions NEW22Amy Elsner
1027Emily M AmigonAustralia2026-07-20Truhlar And Truhlar Attys QUALIFIED90Bernardo Dominic
1028Wickens O GauchoJapan2026-06-23Feiner Bros RENEWAL28Xuxue Feng
1029Munro H MorascaCanada2026-07-19Feltz Printing Service RENEWAL70Stephen Shaw
1030Ricardo Q BologniaArgentina2026-07-09Chanay, Jeffrey A Esq PROPOSAL73Ioni Bowcher
1031James O CaldareraJapan2026-07-10Buckley Miller Wright QUALIFIED49Asiya Javayant
1032Clifford T WieserItaly2026-07-08Benton, John B Jr UNQUALIFIED67Amy Elsner
1033Cody Q KuskoBrazil2026-06-28Dorl, James J Esq NEGOTIATION24Stephen Shaw
1034Julie H OstroskyCanada2026-07-14Chemel, James L Cpa NEGOTIATION11Anna Fali
1035Ashley Y BowleyAustralia2026-06-23Chapman, Ross E Esq UNQUALIFIED84Stephen Shaw
1036Smith J VocelkaUnited Kingdom2026-07-06Truhlar And Truhlar Attys QUALIFIED96Amy Elsner
1037Costa P SergiItaly2026-07-14Feiner Bros RENEWAL54Stephen Shaw
1038Nicolas I ShinkoFrance2026-07-17Chemel, James L Cpa RENEWAL1Bernardo Dominic
1039Jefferson O DoeCanada2026-07-12Dorl, James J Esq QUALIFIED14Anna Fali
1040Salvatore B PoquetteAustralia2026-06-26Rousseaux, Michael Esq QUALIFIED83Elwin Sharvill
1041Cody W InouyeCanada2026-07-13Printing Dimensions UNQUALIFIED47Xuxue Feng
1042Ricardo R GlickBrazil2026-06-24Chemel, James L Cpa RENEWAL66Asiya Javayant
1043Octavia V MaletFrance2026-07-07Rousseaux, Michael Esq PROPOSAL27Ivan Magalhaes
1044Silvio B DilliardUnited Kingdom2026-06-29Rousseaux, Michael Esq RENEWAL18Amy Elsner
1045Jones E GlickBrazil2026-06-29Chanay, Jeffrey A Esq RENEWAL44Amy Elsner
1046Silvio P DilliardCanada2026-07-08Morlong Associates RENEWAL13Ivan Magalhaes
1047Maisha E PoquetteBrazil2026-07-18Truhlar And Truhlar Attys PROPOSAL66Ivan Magalhaes
1048Wickens J BriddickAustralia2026-07-13Truhlar And Truhlar Attys NEW85Anna Fali
1049Aruna P BriddickJapan2026-07-16King, Christopher A Esq PROPOSAL17Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Maisha S RutaUnited KingdomAsiya Javayant QUALIFIED
Wickens C DoeBrazilStephen Shaw UNQUALIFIED
Stacey H FigeroaRussiaAsiya Javayant NEGOTIATION
Smith T MacleadRussiaElwin Sharvill NEGOTIATION
Aditya E MarrierAustraliaBernardo Dominic PROPOSAL
Costa T FigeroaGermanyBernardo Dominic UNQUALIFIED
Mayumi R GlickUnited KingdomElwin Sharvill NEW
Julie R MacleadUnited KingdomXuxue Feng UNQUALIFIED
Darci A GlickCanadaIoni Bowcher NEGOTIATION
Ivar K MaletSpainXuxue Feng PROPOSAL
Jones C SergiFranceAmy Elsner NEGOTIATION
Smith S DarakjyUnited KingdomOnyama Limba NEW
Morrow F SergiJapanAmy Elsner UNQUALIFIED
Antonio R WaycottIndiaOnyama Limba QUALIFIED
Leja L VocelkaBrazilElwin Sharvill NEW
Ricardo Z IturbideIndiaAnna Fali PROPOSAL
Darci H DoeArgentinaAnna Fali NEW
Francesco S DoeItalyIoni Bowcher RENEWAL
Cody F VocelkaItalyElwin Sharvill NEW
Francesco D RutaUnited KingdomAmy Elsner NEW
Salvatore Q MaletItalyIoni Bowcher NEW
Chavez I RulapaughItalyIoni Bowcher NEGOTIATION
Rodrigues G ChuiArgentinaBernardo Dominic PROPOSAL
Stacey F SergiRussiaAmy Elsner NEGOTIATION
Jennifer T SaylorsIndiaAmy Elsner QUALIFIED
Leon V FigeroaIndiaAsiya Javayant QUALIFIED
Rodrigues A WhobreyArgentinaBernardo Dominic QUALIFIED
Francesco N TollnerItalyElwin Sharvill NEW
Tony G PoquetteRussiaElwin Sharvill NEGOTIATION
Chavez O MorascaCanadaAnna Fali UNQUALIFIED
Ivar Y OstroskyItalyStephen Shaw RENEWAL
Rodrigues K MaletRussiaIoni Bowcher QUALIFIED
Ivar T ShinkoAustraliaAnna Fali PROPOSAL
Faith P BowleySpainXuxue Feng RENEWAL
Jeanfrancois Q AmigonJapanAnna Fali UNQUALIFIED
Cody C FollerBrazilAmy Elsner UNQUALIFIED
Julie M FerenczAustraliaStephen Shaw NEW
Stacey G WieserGermanyBernardo Dominic UNQUALIFIED
Jeanfrancois M ChuiArgentinaOnyama Limba UNQUALIFIED
Leja I AlbaresBrazilOnyama Limba PROPOSAL
Smith A NickaCanadaElwin Sharvill NEW
Adams Q FigeroaJapanXuxue Feng QUALIFIED
David C TollnerArgentinaAmy Elsner NEW
Aditya H DarakjyItalyIoni Bowcher NEW
Ashley T FigeroaSpainAsiya Javayant NEW
Jennifer D GillianRussiaAmy Elsner NEGOTIATION
Murillo Y SlusarskiAustraliaBernardo Dominic NEW
Mayumi G MacleadBrazilBernardo Dominic UNQUALIFIED
Antonio F SlusarskiFranceAnna Fali UNQUALIFIED
Deepesh C StensethUnited KingdomAnna Fali UNQUALIFIED
Frozen Columns
Name
Juan N Butt
Clifford N Ostrosky
Jones D Ostrosky
Claire V Morasca
Nicolas P Wieser
Adams T Sergi
Jones Z Amigon
Maisha F Butt
Wickens S Dilliard
Mujtaba X Caudy
Mayumi E Inouye
Rodrigues T Flosi
Kaitlin I Ferencz
Mujtaba P Kolmetz
Rodrigues L Butt
Leja G Vocelka
Isabel E Malet
Leja S Rim
Aruna A Poquette
Antonio O Nicka
Ivar W Tollner
Faith E Butt
Leon L Royster
Kaitlin P Glick
Ashley A Kolmetz
Costa X Morasca
Francesco U Briddick
Leja N Inouye
Claire I Flosi
Jennifer P Bowley
Smith S Marrier
Ivar I Marrier
Chavez Y Caldarera
Maria S Royster
Izzy J Caldarera
Claire G Bolognia
Costa X Caldarera
Arvin D Malet
David H Oldroyd
Murillo N Inouye
Jefferson F Bolognia
Costa T Albares
Aruna C Stenseth
Silvio S Garufi
Kaitlin Z Foller
Mayumi O Chui
Aika M Darakjy
Ivar T Paprocki
Misaki F Ostrosky
Ivar T Venere
IdCountryDate
1000Russia2026-07-16
1001India2026-07-20
1002Canada2026-07-06
1003Russia2026-07-04
1004Argentina2026-07-11
1005Canada2026-07-14
1006Russia2026-07-16
1007Germany2026-06-22
1008Russia2026-06-24
1009Spain2026-07-11
1010Australia2026-07-12
1011United Kingdom2026-07-19
1012Brazil2026-07-04
1013Argentina2026-07-02
1014Canada2026-07-09
1015Spain2026-07-08
1016Canada2026-07-19
1017Germany2026-06-27
1018Canada2026-07-16
1019Russia2026-07-18
1020Canada2026-07-09
1021Japan2026-07-21
1022Australia2026-07-19
1023Argentina2026-07-14
1024Japan2026-07-13
1025Italy2026-06-24
1026Italy2026-07-11
1027India2026-06-27
1028Brazil2026-07-20
1029France2026-07-02
1030Brazil2026-07-10
1031Germany2026-07-04
1032Argentina2026-07-03
1033India2026-07-16
1034Russia2026-07-15
1035India2026-07-02
1036India2026-07-05
1037Japan2026-07-10
1038Italy2026-06-24
1039Italy2026-07-16
1040Italy2026-06-22
1041Spain2026-07-08
1042Italy2026-06-27
1043Russia2026-07-06
1044Italy2026-07-14
1045United Kingdom2026-06-22
1046Russia2026-07-21
1047Russia2026-07-19
1048Germany2026-06-26
1049Japan2026-06-23

On-Demand Data

NameIdCountryDate
Octavia J Venere1000Germany2026-07-01
Mayumi S Poquette1001Australia2026-06-29
Kaitlin J Stenseth1002Argentina2026-06-23
Aika O Doe1003Brazil2026-07-13
Francesco N Gillian1004Canada2026-07-03
Jeanfrancois G Stockham1005India2026-07-12
Salvatore E Shinko1006Brazil2026-07-21
Maria Q Morasca1007Italy2026-07-03
Aruna I Gillian1008Italy2026-07-13
Chavez R Marrier1009Italy2026-07-07
Maisha C Slusarski1010Australia2026-07-15
Smith V Rulapaugh1011United Kingdom2026-06-29
Alejandro G Darakjy1012Canada2026-06-28
Tony O Royster1013France2026-07-07
Kaitlin O Tollner1014France2026-06-27
Alejandro K Wieser1015Japan2026-07-08
Leja P Flosi1016Germany2026-07-16
Wickens T Darakjy1017Brazil2026-07-08
Isabel R Doe1018Australia2026-07-01
Adams E Bowley1019United Kingdom2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel H SergiRussiaXuxue Feng UNQUALIFIED
David C FigeroaIndiaAsiya Javayant UNQUALIFIED
Maria B SaylorsRussiaAnna Fali PROPOSAL
Wickens S MaletItalyStephen Shaw RENEWAL
Wickens C MarrierFranceIoni Bowcher RENEWAL
Misaki R WaycottGermanyOnyama Limba UNQUALIFIED
Deepesh C VocelkaFranceOnyama Limba RENEWAL
Ivar D OstroskyRussiaAnna Fali RENEWAL
Kaitlin R WaycottItalyAmy Elsner PROPOSAL
Francesco N RutaBrazilAmy Elsner UNQUALIFIED
Morrow N VenereIndiaStephen Shaw NEGOTIATION
Kaitlin Z WhobreyUnited KingdomOnyama Limba RENEWAL
Mujtaba Z FerenczRussiaXuxue Feng UNQUALIFIED
Jefferson I WhobreyFranceOnyama Limba PROPOSAL
Greenwood B PoquetteJapanStephen Shaw RENEWAL
Jones Z CaudyFranceAnna Fali UNQUALIFIED
Silvio Q VenereJapanElwin Sharvill PROPOSAL
Juan R IturbideFranceElwin Sharvill UNQUALIFIED
Leja M FerenczCanadaStephen Shaw NEGOTIATION
Nicolas S CaudyGermanyXuxue Feng QUALIFIED
Silvio V SergiSpainAmy Elsner NEGOTIATION
Aditya V VenereUnited KingdomIoni Bowcher NEGOTIATION
Clifford C VenereJapanXuxue Feng PROPOSAL
Silvio Q BologniaJapanOnyama Limba NEW
David T StensethArgentinaXuxue Feng PROPOSAL
Nicolas S CampainAustraliaAnna Fali NEW
Clifford I OldroydBrazilAsiya Javayant PROPOSAL
Ricardo K IturbideUnited KingdomOnyama Limba QUALIFIED
Deepesh X StockhamArgentinaAsiya Javayant QUALIFIED
Izzy J InouyeItalyAmy Elsner UNQUALIFIED
Antonio O DoeGermanyIvan Magalhaes UNQUALIFIED
Stacey Y SchemmerCanadaElwin Sharvill NEW
Munro Z RutaArgentinaOnyama Limba UNQUALIFIED
Mujtaba Y PoquetteCanadaXuxue Feng NEGOTIATION
Sinclair J IturbideItalyElwin Sharvill UNQUALIFIED
Mujtaba R RulapaughGermanyStephen Shaw NEW
Leja V ButtAustraliaXuxue Feng NEW
Octavia S BologniaJapanBernardo Dominic RENEWAL
Deepesh V SaylorsCanadaAsiya Javayant NEW
Ashley H BowleyFranceAsiya Javayant 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>