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
Morrow A NickaItalyAsiya Javayant RENEWAL
Johnson T RutaAustraliaAnna Fali NEGOTIATION
Rodrigues Z GillianSpainIoni Bowcher RENEWAL
Octavia J InouyeBrazilIvan Magalhaes NEGOTIATION
Nicolas H SaylorsAustraliaAsiya Javayant UNQUALIFIED
Kaitlin S BowleyItalyAsiya Javayant NEW
Leja O DoeIndiaBernardo Dominic UNQUALIFIED
Jeanfrancois R OldroydIndiaAnna Fali PROPOSAL
Ashley T AmigonGermanyAmy Elsner NEGOTIATION
Jeanfrancois T MaletIndiaOnyama Limba NEGOTIATION
Kaitlin Q RulapaughFranceOnyama Limba NEW
Jeanfrancois Q MaletUnited KingdomBernardo Dominic QUALIFIED
David T AlbaresCanadaStephen Shaw PROPOSAL
Morrow I GauchoFranceXuxue Feng NEGOTIATION
Octavia P GillianIndiaIvan Magalhaes NEW
Maisha A FigeroaGermanyElwin Sharvill QUALIFIED
Leon M SchemmerCanadaIvan Magalhaes NEW
Wickens L ShinkoItalyAsiya Javayant RENEWAL
Ivar R MarrierBrazilStephen Shaw RENEWAL
Cody U CampainSpainAsiya Javayant PROPOSAL
Rodrigues P OstroskyFranceElwin Sharvill RENEWAL
Ricardo X BowleyFranceAnna Fali NEW
Kaitlin D MacleadJapanXuxue Feng NEW
Clifford X VenereCanadaAmy Elsner RENEWAL
Juan H InouyeGermanyOnyama Limba QUALIFIED
Leon B KuskoSpainElwin Sharvill RENEWAL
Leon K TollnerJapanOnyama Limba UNQUALIFIED
Mayumi J GillianFranceAsiya Javayant RENEWAL
Kadeem Q MaletItalyBernardo Dominic NEGOTIATION
Alejandro Q FollerJapanIvan Magalhaes NEW
Tony N ChuiRussiaAmy Elsner PROPOSAL
Cody O NickaUnited KingdomAnna Fali QUALIFIED
Deepesh B WaycottJapanElwin Sharvill PROPOSAL
Smith T FollerGermanyOnyama Limba PROPOSAL
Ricardo X CampainIndiaOnyama Limba NEGOTIATION
Rodrigues N SchemmerBrazilBernardo Dominic NEGOTIATION
Claire P FollerFranceElwin Sharvill UNQUALIFIED
Antonio S OstroskyArgentinaAmy Elsner NEW
Rodrigues I VocelkaIndiaIvan Magalhaes NEGOTIATION
Emily C AmigonUnited KingdomAnna Fali NEW
James N GillianAustraliaAnna Fali QUALIFIED
Greenwood C MacleadUnited KingdomElwin Sharvill UNQUALIFIED
Octavia L CampainSpainBernardo Dominic UNQUALIFIED
Ricardo Z VenereIndiaOnyama Limba QUALIFIED
Aditya Y CampainBrazilStephen Shaw PROPOSAL
Aditya W MacleadSpainXuxue Feng PROPOSAL
Leon W DarakjySpainIvan Magalhaes NEGOTIATION
Aika Z FigeroaIndiaIoni Bowcher NEW
Emily L TollnerArgentinaIvan Magalhaes NEW
Aruna J PerinBrazilAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Smith H KuskoItalyStephen Shaw NEGOTIATION
Darci Y MacleadJapanAnna Fali NEW
Tony T RulapaughAustraliaBernardo Dominic NEW
Mujtaba V MacleadBrazilIoni Bowcher PROPOSAL
Jones T VocelkaJapanAnna Fali NEW
Darci Q FlosiSpainAsiya Javayant PROPOSAL
Jones T KolmetzSpainElwin Sharvill RENEWAL
Salvatore C SlusarskiGermanyXuxue Feng PROPOSAL
Silvio F CaldareraGermanyBernardo Dominic NEGOTIATION
Smith I AlbaresFranceIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon A PaprockiRussia2025-06-01Buckley Miller Wright PROPOSAL34Bernardo Dominic
1001Salvatore Z PerinUnited Kingdom2025-05-25King, Christopher A Esq QUALIFIED91Ioni Bowcher
1002Leja M RimIndia2025-05-25Chapman, Ross E Esq UNQUALIFIED47Onyama Limba
1003Wickens X ShinkoBrazil2025-06-06Truhlar And Truhlar Attys RENEWAL57Bernardo Dominic
1004Adams I AlbaresRussia2025-05-24Rangoni Of Florence PROPOSAL98Amy Elsner
1005Faith W FigeroaIndia2025-05-21Feltz Printing Service QUALIFIED75Xuxue Feng
1006Murillo X ButtArgentina2025-05-22Dorl, James J Esq NEW16Onyama Limba
1007Jennifer H RoysterJapan2025-05-24Rangoni Of Florence RENEWAL0Amy Elsner
1008Murillo Y FlosiItaly2025-05-23Chapman, Ross E Esq QUALIFIED66Bernardo Dominic
1009Emily H WieserCanada2025-06-15Chemel, James L Cpa UNQUALIFIED14Anna Fali
1010Mujtaba Q KolmetzCanada2025-06-04Truhlar And Truhlar Attys NEW0Stephen Shaw
1011Clifford W GauchoJapan2025-06-02Dorl, James J Esq RENEWAL99Onyama Limba
1012Silvio L MaletFrance2025-05-22Feiner Bros UNQUALIFIED42Bernardo Dominic
1013Darci Z IturbideRussia2025-06-10Chemel, James L Cpa RENEWAL56Xuxue Feng
1014Tony U WaycottBrazil2025-06-07Chapman, Ross E Esq UNQUALIFIED20Elwin Sharvill
1015Leja P ChuiIndia2025-06-08Rangoni Of Florence QUALIFIED26Ivan Magalhaes
1016Jefferson K CaudyAustralia2025-06-06Rangoni Of Florence NEGOTIATION83Stephen Shaw
1017Maisha T WhobreyIndia2025-05-20Benton, John B Jr PROPOSAL91Elwin Sharvill
1018Smith O CaudyRussia2025-06-04Feiner Bros UNQUALIFIED4Ivan Magalhaes
1019Ivar J GlickJapan2025-05-23King, Christopher A Esq UNQUALIFIED70Elwin Sharvill
1020Francesco P VenereCanada2025-05-23Buckley Miller Wright UNQUALIFIED13Xuxue Feng
1021Aditya W StensethArgentina2025-06-04Morlong Associates NEGOTIATION64Ioni Bowcher
1022Munro N RimFrance2025-05-31Chemel, James L Cpa RENEWAL74Amy Elsner
1023Ashley S NickaGermany2025-06-04Rangoni Of Florence QUALIFIED60Ioni Bowcher
1024Ashley Q MaletArgentina2025-05-22Printing Dimensions NEGOTIATION63Amy Elsner
1025Aruna L VenereGermany2025-05-27Chemel, James L Cpa UNQUALIFIED1Onyama Limba
1026Clifford Y StockhamUnited Kingdom2025-05-30Morlong Associates PROPOSAL12Stephen Shaw
1027Johnson P OstroskySpain2025-06-06Dorl, James J Esq RENEWAL92Onyama Limba
1028Maisha R MaletItaly2025-05-24Chapman, Ross E Esq NEW35Asiya Javayant
1029Aika T MacleadUnited Kingdom2025-05-31King, Christopher A Esq QUALIFIED44Asiya Javayant
1030Stacey T CampainUnited Kingdom2025-05-28King, Christopher A Esq UNQUALIFIED40Bernardo Dominic
1031Aika D MaletItaly2025-06-02Benton, John B Jr NEW82Ivan Magalhaes
1032Morrow U DilliardRussia2025-06-09Feltz Printing Service UNQUALIFIED26Ioni Bowcher
1033Octavia R GauchoRussia2025-06-14Morlong Associates PROPOSAL63Amy Elsner
1034Leja H SlusarskiArgentina2025-05-31Rangoni Of Florence PROPOSAL59Xuxue Feng
1035Jones Y PaprockiAustralia2025-06-11Commercial Press PROPOSAL21Xuxue Feng
1036Kadeem Q PerinCanada2025-06-03Dorl, James J Esq UNQUALIFIED10Ivan Magalhaes
1037Aika R SchemmerFrance2025-06-16Chemel, James L Cpa NEW12Amy Elsner
1038Tony E VocelkaCanada2025-05-26Morlong Associates NEGOTIATION33Onyama Limba
1039Izzy V PoquetteFrance2025-05-27Chapman, Ross E Esq RENEWAL41Asiya Javayant
1040Clifford J PerinSpain2025-06-08Truhlar And Truhlar Attys RENEWAL12Elwin Sharvill
1041Leja T CaudyAustralia2025-05-29Buckley Miller Wright UNQUALIFIED38Bernardo Dominic
1042Mayumi W IturbideIndia2025-05-22Feiner Bros NEGOTIATION19Ivan Magalhaes
1043Mujtaba R NestleCanada2025-05-27Dorl, James J Esq NEGOTIATION80Elwin Sharvill
1044Maisha O WaycottUnited Kingdom2025-05-23Chemel, James L Cpa UNQUALIFIED86Bernardo Dominic
1045James P CaudyCanada2025-05-23Truhlar And Truhlar Attys UNQUALIFIED20Amy Elsner
1046Costa P BologniaUnited Kingdom2025-05-29Chapman, Ross E Esq UNQUALIFIED38Bernardo Dominic
1047Emily W DilliardBrazil2025-06-09Buckley Miller Wright RENEWAL40Stephen Shaw
1048Silvio Q DilliardGermany2025-06-15Rousseaux, Michael Esq NEGOTIATION89Ivan Magalhaes
1049Murillo Y RimSpain2025-05-30Printing Dimensions UNQUALIFIED68Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Sinclair K OldroydCanadaElwin Sharvill NEGOTIATION
Mayumi Q MorascaJapanIvan Magalhaes NEGOTIATION
Aruna S PerinCanadaAmy Elsner QUALIFIED
Jefferson I DarakjySpainXuxue Feng PROPOSAL
Leon E IturbideAustraliaElwin Sharvill NEGOTIATION
Claire R AlbaresArgentinaStephen Shaw RENEWAL
Nicolas F GillianItalyOnyama Limba RENEWAL
Tony J PoquetteCanadaOnyama Limba NEGOTIATION
Stacey P ChuiFranceAmy Elsner NEW
Deepesh H InouyeUnited KingdomElwin Sharvill UNQUALIFIED
Aika P AlbaresIndiaAsiya Javayant QUALIFIED
Kaitlin J FollerJapanAsiya Javayant UNQUALIFIED
Wickens Z StockhamSpainIoni Bowcher NEW
Alejandro N SchemmerSpainXuxue Feng RENEWAL
Isabel P WhobreyAustraliaStephen Shaw NEGOTIATION
Mujtaba C CaudyUnited KingdomAnna Fali NEW
Kaitlin H BowleyAustraliaOnyama Limba NEW
Darci A WieserItalyAnna Fali UNQUALIFIED
Leja F BowleyAustraliaIvan Magalhaes PROPOSAL
Antonio E WaycottRussiaBernardo Dominic PROPOSAL
Chavez D InouyeJapanIvan Magalhaes NEGOTIATION
Maisha E KuskoBrazilIoni Bowcher UNQUALIFIED
Chavez S DilliardGermanyAmy Elsner UNQUALIFIED
Jennifer D GlickCanadaIvan Magalhaes PROPOSAL
Rodrigues W KolmetzBrazilIvan Magalhaes UNQUALIFIED
Aditya H WieserGermanyXuxue Feng RENEWAL
Maria H CampainItalyXuxue Feng NEGOTIATION
Izzy P SchemmerItalyBernardo Dominic QUALIFIED
Nicolas J SaylorsAustraliaXuxue Feng NEGOTIATION
Misaki N WaycottRussiaXuxue Feng UNQUALIFIED
James F VenereAustraliaXuxue Feng UNQUALIFIED
Clifford E BowleyArgentinaAmy Elsner NEGOTIATION
Morrow L WaycottJapanAnna Fali UNQUALIFIED
Aditya J MorascaUnited KingdomStephen Shaw RENEWAL
Arvin U InouyeSpainAmy Elsner PROPOSAL
Julie M SergiRussiaIvan Magalhaes NEW
Alejandro Y RulapaughJapanOnyama Limba RENEWAL
Isabel D BriddickItalyIvan Magalhaes RENEWAL
Mayumi B MaletIndiaBernardo Dominic RENEWAL
Misaki B FollerJapanOnyama Limba NEW
Antonio P FigeroaItalyXuxue Feng RENEWAL
Clifford J MarrierAustraliaXuxue Feng UNQUALIFIED
Aruna D InouyeCanadaBernardo Dominic PROPOSAL
Arvin K BowleyAustraliaAnna Fali RENEWAL
Deepesh P RutaSpainOnyama Limba NEW
Stacey A GarufiUnited KingdomXuxue Feng UNQUALIFIED
James Z FigeroaUnited KingdomAsiya Javayant NEGOTIATION
Silvio V WaycottItalyXuxue Feng NEGOTIATION
Costa Y AmigonIndiaIvan Magalhaes UNQUALIFIED
Chavez D MacleadSpainOnyama Limba PROPOSAL
Frozen Columns
Name
Mujtaba B Gillian
Tony Y Kusko
Munro P Stenseth
Morrow M Caldarera
Munro M Chui
Octavia X Ruta
Darci X Nestle
Maisha A Schemmer
Aika Q Slusarski
Maisha W Caldarera
Jennifer C Dilliard
Tony Z Ferencz
Claire X Caudy
Clifford O Darakjy
Francesco E Doe
Jones O Waycott
Emily F Gillian
Stacey E Venere
Kaitlin G Waycott
Isabel S Ferencz
Johnson G Flosi
Julie X Inouye
Emily A Ruta
Jeanfrancois V Waycott
Mujtaba D Stockham
Jennifer G Shinko
Misaki D Campain
Morrow K Whobrey
Jones C Bolognia
Darci F Whobrey
Jefferson H Gaucho
Maisha R Foller
Munro S Chui
Claire K Inouye
Maria C Nicka
Murillo M Kusko
Arvin B Foller
Emily K Stenseth
Adams H Chui
Alejandro E Foller
Kaitlin Z Glick
Chavez Y Sergi
Jeanfrancois L Paprocki
Francesco V Stockham
Leja E Waycott
Francesco J Stenseth
Adams Y Albares
Jefferson D Tollner
Alejandro V Figeroa
Salvatore M Rulapaugh
IdCountryDate
1000Spain2025-05-27
1001Argentina2025-06-16
1002Germany2025-06-14
1003France2025-06-04
1004Russia2025-05-30
1005Italy2025-05-20
1006France2025-06-12
1007Russia2025-06-07
1008United Kingdom2025-05-27
1009Italy2025-05-28
1010Spain2025-05-20
1011Japan2025-06-03
1012United Kingdom2025-05-28
1013Italy2025-06-12
1014United Kingdom2025-06-06
1015Italy2025-05-24
1016United Kingdom2025-05-28
1017Australia2025-05-24
1018Canada2025-06-09
1019Spain2025-06-04
1020Japan2025-06-11
1021Japan2025-06-15
1022Japan2025-05-25
1023Italy2025-06-12
1024Argentina2025-05-18
1025Canada2025-06-03
1026Canada2025-06-14
1027Canada2025-06-01
1028India2025-05-21
1029Japan2025-06-02
1030Australia2025-05-25
1031India2025-05-30
1032Argentina2025-06-16
1033Canada2025-06-01
1034Russia2025-06-01
1035Italy2025-06-05
1036Russia2025-06-03
1037Argentina2025-06-08
1038Argentina2025-05-18
1039Germany2025-05-19
1040India2025-06-12
1041Russia2025-06-16
1042Spain2025-05-25
1043Spain2025-05-25
1044France2025-06-12
1045Canada2025-06-11
1046Australia2025-06-12
1047Russia2025-06-14
1048Argentina2025-05-27
1049France2025-06-08

On-Demand Data

NameIdCountryDate
Clifford K Oldroyd1000Italy2025-06-10
Deepesh V Vocelka1001Argentina2025-05-31
Jeanfrancois T Ferencz1002India2025-06-12
Ivar P Maclead1003Russia2025-05-22
Rodrigues D Bolognia1004United Kingdom2025-06-07
Nicolas T Waycott1005Brazil2025-05-29
Cody P Malet1006Spain2025-05-26
Sinclair S Marrier1007Australia2025-06-04
Octavia J Ferencz1008United Kingdom2025-06-07
Jones K Morasca1009Germany2025-05-26
Adams V Slusarski1010Australia2025-06-09
Jefferson O Malet1011Argentina2025-05-21
Maria U Nicka1012Italy2025-06-05
Antonio Q Albares1013Japan2025-05-30
Deepesh W Ostrosky1014Spain2025-05-27
Faith I Bowley1015Canada2025-06-11
Julie Q Whobrey1016Australia2025-05-21
Jones S Shinko1017Australia2025-05-20
Tony S Paprocki1018Italy2025-05-19
Stacey Q Rim1019Germany2025-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin O NestleGermanyStephen Shaw RENEWAL
Deepesh W RulapaughFranceAmy Elsner NEGOTIATION
Darci M CaldareraFranceXuxue Feng QUALIFIED
Salvatore T MorascaRussiaIvan Magalhaes UNQUALIFIED
Ashley Q OldroydSpainAnna Fali QUALIFIED
Costa U CampainBrazilIvan Magalhaes QUALIFIED
Mayumi A NestleBrazilAnna Fali NEGOTIATION
Smith P ShinkoRussiaXuxue Feng PROPOSAL
Arvin O FollerSpainXuxue Feng UNQUALIFIED
Munro G BowleyArgentinaAnna Fali RENEWAL
Chavez T MacleadRussiaXuxue Feng UNQUALIFIED
Chavez K BologniaItalyElwin Sharvill NEW
Jones Z BriddickArgentinaBernardo Dominic QUALIFIED
Arvin E ShinkoItalyElwin Sharvill QUALIFIED
Johnson W MorascaAustraliaIoni Bowcher RENEWAL
Aruna E OstroskyJapanXuxue Feng RENEWAL
Claire H PerinFranceIvan Magalhaes UNQUALIFIED
Sinclair U WaycottRussiaIvan Magalhaes NEGOTIATION
Johnson K GillianItalyAsiya Javayant RENEWAL
Arvin W KolmetzFranceOnyama Limba PROPOSAL
Greenwood N DilliardFranceIvan Magalhaes PROPOSAL
Aruna P MarrierFranceOnyama Limba UNQUALIFIED
Julie T KolmetzJapanAsiya Javayant QUALIFIED
Jeanfrancois A FlosiArgentinaAmy Elsner PROPOSAL
Antonio E GillianIndiaXuxue Feng NEGOTIATION
Stacey U StensethGermanyXuxue Feng NEGOTIATION
Jones H MaletRussiaStephen Shaw UNQUALIFIED
Maria X OldroydIndiaAsiya Javayant RENEWAL
Aruna V VenereSpainAmy Elsner RENEWAL
Adams G AmigonCanadaBernardo Dominic PROPOSAL
Ashley X KuskoJapanAmy Elsner NEGOTIATION
Jennifer R IturbideCanadaAsiya Javayant NEW
Maisha P KuskoUnited KingdomAmy Elsner UNQUALIFIED
Morrow S OstroskyAustraliaElwin Sharvill NEGOTIATION
Chavez M RoysterAustraliaOnyama Limba PROPOSAL
Francesco W FollerRussiaIoni Bowcher RENEWAL
Jones C StensethArgentinaXuxue Feng NEW
Silvio W ButtItalyOnyama Limba NEGOTIATION
Emily R WieserSpainAnna Fali NEGOTIATION
Munro L NestleGermanyOnyama Limba 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>