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
Mujtaba W ButtCanadaAmy Elsner QUALIFIED
Ashley G CampainAustraliaAnna Fali RENEWAL
Ivar N ShinkoSpainStephen Shaw PROPOSAL
Tony W SlusarskiBrazilAmy Elsner PROPOSAL
Izzy F SchemmerCanadaIvan Magalhaes PROPOSAL
Ivar X FollerIndiaAnna Fali PROPOSAL
Adams D AmigonBrazilXuxue Feng UNQUALIFIED
Johnson I ShinkoSpainElwin Sharvill QUALIFIED
Murillo B WieserFranceXuxue Feng PROPOSAL
Ricardo M InouyeCanadaOnyama Limba UNQUALIFIED
Leon S FollerSpainBernardo Dominic QUALIFIED
James Z DilliardFranceElwin Sharvill QUALIFIED
Jefferson J FerenczIndiaIoni Bowcher NEGOTIATION
Tony A WhobreyFranceStephen Shaw NEW
Maisha M PoquetteSpainAmy Elsner UNQUALIFIED
Silvio T DilliardJapanIoni Bowcher RENEWAL
Aika T CaldareraIndiaXuxue Feng QUALIFIED
Cody Q PaprockiUnited KingdomStephen Shaw UNQUALIFIED
Antonio N NestleFranceStephen Shaw RENEWAL
Costa Q PerinFranceIoni Bowcher QUALIFIED
Cody L MarrierFranceIoni Bowcher UNQUALIFIED
Stacey D StensethUnited KingdomAsiya Javayant PROPOSAL
Adams P PoquetteItalyOnyama Limba UNQUALIFIED
Stacey H MorascaFranceStephen Shaw PROPOSAL
Darci G WaycottArgentinaStephen Shaw UNQUALIFIED
Costa S TollnerSpainStephen Shaw RENEWAL
Aika Y RutaRussiaAsiya Javayant NEW
Jeanfrancois X TollnerGermanyAmy Elsner RENEWAL
Aditya V GlickItalyIvan Magalhaes RENEWAL
Jefferson R OstroskyUnited KingdomAsiya Javayant RENEWAL
Ashley D RoysterSpainIoni Bowcher QUALIFIED
Munro J InouyeCanadaAnna Fali QUALIFIED
Emily A MaletRussiaAsiya Javayant NEGOTIATION
James X WaycottJapanAmy Elsner QUALIFIED
Isabel D NickaGermanyStephen Shaw UNQUALIFIED
Emily A FlosiSpainElwin Sharvill NEW
Murillo O WaycottRussiaBernardo Dominic QUALIFIED
Murillo H ShinkoCanadaOnyama Limba UNQUALIFIED
Faith Q MorascaRussiaBernardo Dominic RENEWAL
Sinclair K ChuiJapanElwin Sharvill NEGOTIATION
Nicolas K WieserIndiaElwin Sharvill RENEWAL
Munro B NestleUnited KingdomAsiya Javayant PROPOSAL
Wickens G PerinItalyAnna Fali NEGOTIATION
Ricardo P VocelkaItalyAmy Elsner NEW
Aika U NickaIndiaBernardo Dominic UNQUALIFIED
Izzy M WaycottGermanyStephen Shaw QUALIFIED
Nicolas Y SlusarskiFranceBernardo Dominic NEW
Deepesh S GlickJapanAsiya Javayant PROPOSAL
Jones E CampainRussiaStephen Shaw QUALIFIED
Cody K WaycottArgentinaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco B GarufiItalyIvan Magalhaes PROPOSAL
Faith X FigeroaBrazilElwin Sharvill PROPOSAL
Munro F VocelkaAustraliaIoni Bowcher QUALIFIED
Mayumi G BowleyJapanAmy Elsner UNQUALIFIED
Jeanfrancois E MarrierItalyAmy Elsner RENEWAL
Kaitlin Q MacleadItalyAsiya Javayant NEGOTIATION
Leja S KolmetzArgentinaBernardo Dominic NEW
Jennifer C OldroydCanadaAnna Fali NEGOTIATION
Smith R MaletRussiaIvan Magalhaes NEGOTIATION
Jennifer J MarrierCanadaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois X MaletItaly2026-06-25Chemel, James L Cpa PROPOSAL13Asiya Javayant
1001Ricardo K DarakjyRussia2026-07-06Dorl, James J Esq PROPOSAL2Elwin Sharvill
1002Chavez Z VocelkaItaly2026-06-28Feiner Bros QUALIFIED68Amy Elsner
1003Greenwood X WieserCanada2026-06-28Rangoni Of Florence QUALIFIED12Elwin Sharvill
1004Izzy L TollnerFrance2026-06-20Chemel, James L Cpa UNQUALIFIED43Onyama Limba
1005Aika N RutaBrazil2026-07-07Benton, John B Jr QUALIFIED24Onyama Limba
1006Costa G PoquetteRussia2026-06-27Feiner Bros PROPOSAL56Amy Elsner
1007James M MacleadRussia2026-06-09Truhlar And Truhlar Attys NEW4Onyama Limba
1008Ivar L GillianIndia2026-06-08Buckley Miller Wright RENEWAL77Onyama Limba
1009James O MacleadItaly2026-06-10Feiner Bros QUALIFIED6Ioni Bowcher
1010Ashley I InouyeRussia2026-06-14Morlong Associates NEW29Bernardo Dominic
1011Faith R NickaBrazil2026-06-30Feltz Printing Service RENEWAL55Xuxue Feng
1012Mayumi I NickaUnited Kingdom2026-06-19Buckley Miller Wright NEW9Bernardo Dominic
1013Misaki Z SlusarskiGermany2026-06-14Buckley Miller Wright QUALIFIED60Amy Elsner
1014Sinclair Y SaylorsRussia2026-06-19Benton, John B Jr UNQUALIFIED62Elwin Sharvill
1015Deepesh W NestleUnited Kingdom2026-07-03Benton, John B Jr UNQUALIFIED0Ioni Bowcher
1016Darci J MorascaCanada2026-07-01Printing Dimensions RENEWAL61Ivan Magalhaes
1017Morrow S RimRussia2026-07-03Truhlar And Truhlar Attys UNQUALIFIED33Anna Fali
1018Darci E RulapaughGermany2026-07-05Printing Dimensions UNQUALIFIED85Ioni Bowcher
1019Jones G InouyeRussia2026-06-30Morlong Associates NEGOTIATION47Stephen Shaw
1020Kadeem A RutaFrance2026-07-07Rousseaux, Michael Esq NEW93Bernardo Dominic
1021Salvatore G KolmetzSpain2026-06-14Commercial Press RENEWAL84Amy Elsner
1022Rodrigues M SergiJapan2026-06-14Truhlar And Truhlar Attys RENEWAL8Ivan Magalhaes
1023Aruna V OstroskyJapan2026-06-17Chanay, Jeffrey A Esq UNQUALIFIED38Ioni Bowcher
1024Ricardo R RulapaughBrazil2026-06-29Morlong Associates UNQUALIFIED94Elwin Sharvill
1025Morrow X ShinkoGermany2026-06-24Rousseaux, Michael Esq QUALIFIED81Onyama Limba
1026Sinclair V CaldareraUnited Kingdom2026-07-02Printing Dimensions NEGOTIATION96Stephen Shaw
1027Costa K NestleJapan2026-06-29Chanay, Jeffrey A Esq QUALIFIED42Asiya Javayant
1028Ashley I PerinCanada2026-06-11Morlong Associates UNQUALIFIED49Amy Elsner
1029Kadeem B BowleyItaly2026-07-07Feltz Printing Service RENEWAL81Ivan Magalhaes
1030Wickens P InouyeSpain2026-06-17Dorl, James J Esq NEW78Ioni Bowcher
1031Adams T RimGermany2026-06-13Morlong Associates PROPOSAL98Amy Elsner
1032Mujtaba Z FlosiJapan2026-06-27Chapman, Ross E Esq QUALIFIED79Stephen Shaw
1033James P GlickGermany2026-06-09Printing Dimensions UNQUALIFIED95Anna Fali
1034Izzy H DoeItaly2026-06-15Morlong Associates PROPOSAL7Ivan Magalhaes
1035Ashley J OstroskyUnited Kingdom2026-06-30Chanay, Jeffrey A Esq UNQUALIFIED27Ivan Magalhaes
1036Aruna O AmigonBrazil2026-06-10Rangoni Of Florence UNQUALIFIED69Asiya Javayant
1037Ricardo J RutaItaly2026-06-30Feltz Printing Service NEGOTIATION19Anna Fali
1038Isabel E NickaRussia2026-06-28Dorl, James J Esq QUALIFIED76Stephen Shaw
1039Cody R SergiCanada2026-06-29Chemel, James L Cpa NEW25Ivan Magalhaes
1040Maisha B ChuiGermany2026-06-23Truhlar And Truhlar Attys NEW65Ivan Magalhaes
1041Stacey G SergiRussia2026-06-19Buckley Miller Wright UNQUALIFIED4Ivan Magalhaes
1042Francesco V AmigonRussia2026-07-03Chapman, Ross E Esq NEGOTIATION73Stephen Shaw
1043Maria M WaycottSpain2026-06-10Commercial Press RENEWAL7Ioni Bowcher
1044Ricardo A VocelkaBrazil2026-07-02Feiner Bros PROPOSAL55Ioni Bowcher
1045Wickens F MaletSpain2026-06-20Chapman, Ross E Esq QUALIFIED99Xuxue Feng
1046Leja F FerenczCanada2026-06-28Rangoni Of Florence UNQUALIFIED82Xuxue Feng
1047Misaki P MarrierIndia2026-06-12Feiner Bros NEW25Elwin Sharvill
1048Jefferson K RoysterCanada2026-06-12Commercial Press UNQUALIFIED70Amy Elsner
1049Chavez D SchemmerFrance2026-06-27Chanay, Jeffrey A Esq PROPOSAL52Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Smith P WhobreyAustraliaAmy Elsner UNQUALIFIED
Clifford A OldroydArgentinaXuxue Feng NEGOTIATION
Jones H FigeroaGermanyIoni Bowcher NEW
Nicolas C KolmetzIndiaAmy Elsner NEGOTIATION
Juan Y CampainFranceStephen Shaw PROPOSAL
Julie I DarakjyJapanBernardo Dominic PROPOSAL
Greenwood H SchemmerIndiaXuxue Feng PROPOSAL
Arvin N CampainSpainAmy Elsner QUALIFIED
Jefferson L MaletItalyAmy Elsner PROPOSAL
Mayumi D DarakjyBrazilBernardo Dominic RENEWAL
Smith C StockhamJapanIoni Bowcher NEW
Johnson X BriddickIndiaStephen Shaw NEGOTIATION
Antonio J MorascaUnited KingdomAsiya Javayant NEGOTIATION
Sinclair K MarrierBrazilBernardo Dominic QUALIFIED
Ricardo B KolmetzSpainAsiya Javayant QUALIFIED
Aika K MacleadJapanIvan Magalhaes RENEWAL
Jeanfrancois O StockhamJapanBernardo Dominic RENEWAL
Alejandro Z StensethArgentinaStephen Shaw NEGOTIATION
Nicolas F DoeRussiaBernardo Dominic NEGOTIATION
Sinclair U WaycottUnited KingdomStephen Shaw NEW
Antonio J KuskoCanadaStephen Shaw NEW
Isabel P DilliardJapanElwin Sharvill QUALIFIED
David R ShinkoBrazilIvan Magalhaes NEGOTIATION
Adams H StensethGermanyBernardo Dominic QUALIFIED
Murillo S MaletItalyAsiya Javayant RENEWAL
Munro W CampainCanadaOnyama Limba RENEWAL
Ricardo B SlusarskiIndiaIoni Bowcher RENEWAL
Leja U DoeArgentinaAmy Elsner NEGOTIATION
Antonio K OldroydIndiaAnna Fali NEW
Aika P VenereItalyStephen Shaw NEW
Aruna I BriddickCanadaStephen Shaw NEW
Kadeem P PoquetteSpainAnna Fali NEW
Isabel M SchemmerRussiaIoni Bowcher NEW
Kaitlin V KolmetzIndiaAsiya Javayant NEW
Jeanfrancois E BowleyItalyIvan Magalhaes NEW
Izzy T PoquetteItalyAmy Elsner NEGOTIATION
Maisha R DilliardIndiaStephen Shaw PROPOSAL
Alejandro B KuskoArgentinaAmy Elsner QUALIFIED
Faith M WaycottFranceAmy Elsner RENEWAL
Jones P RulapaughAustraliaAnna Fali QUALIFIED
Nicolas W DarakjyIndiaElwin Sharvill NEGOTIATION
Ricardo I StockhamGermanyAsiya Javayant RENEWAL
Isabel K SchemmerIndiaAnna Fali RENEWAL
Misaki Y WieserCanadaElwin Sharvill RENEWAL
Emily V GlickJapanBernardo Dominic QUALIFIED
Leon E ButtCanadaStephen Shaw NEGOTIATION
Jefferson J SlusarskiBrazilAsiya Javayant NEGOTIATION
Francesco R KuskoUnited KingdomAmy Elsner NEW
Morrow I MacleadSpainAnna Fali NEW
Deepesh F SergiItalyXuxue Feng NEW
Frozen Columns
Name
Ricardo G Kolmetz
Leja Z Kolmetz
Ricardo M Slusarski
Chavez H Doe
Jefferson S Kolmetz
David C Perin
Mayumi T Butt
Sinclair J Marrier
Izzy F Caudy
David T Albares
Rodrigues Y Malet
Chavez B Caudy
Murillo L Doe
Faith Z Morasca
Jeanfrancois I Caudy
Murillo B Tollner
Faith T Rulapaugh
Leon H Butt
Leon S Nicka
Smith B Tollner
Morrow E Royster
Alejandro S Gaucho
Adams E Nestle
Kaitlin U Maclead
Clifford Z Venere
Aruna B Albares
Claire K Garufi
Izzy R Rulapaugh
Antonio K Iturbide
Aruna S Darakjy
Smith F Gillian
Leja K Chui
Emily Q Paprocki
Greenwood M Marrier
Jefferson R Caldarera
Jennifer P Dilliard
Costa E Royster
Mujtaba D Glick
Aika A Glick
Darci G Caudy
Clifford I Stockham
Ricardo V Gillian
Murillo J Waycott
Darci C Glick
Sinclair P Flosi
Mayumi U Briddick
Juan U Tollner
Aruna C Saylors
Leon K Rulapaugh
Mayumi X Briddick
IdCountryDate
1000Brazil2026-07-05
1001Argentina2026-06-12
1002United Kingdom2026-07-07
1003Argentina2026-06-23
1004Argentina2026-06-26
1005Argentina2026-07-07
1006France2026-06-14
1007United Kingdom2026-06-12
1008Japan2026-07-07
1009United Kingdom2026-06-30
1010France2026-06-29
1011Brazil2026-06-17
1012India2026-06-15
1013Brazil2026-06-30
1014Australia2026-07-02
1015Russia2026-06-29
1016Brazil2026-06-21
1017Australia2026-06-12
1018Australia2026-06-15
1019Australia2026-06-25
1020Canada2026-06-27
1021Spain2026-06-11
1022India2026-07-01
1023Canada2026-07-04
1024Germany2026-06-27
1025France2026-06-26
1026India2026-06-13
1027Spain2026-06-28
1028Germany2026-06-24
1029United Kingdom2026-06-09
1030India2026-07-03
1031Japan2026-06-16
1032Brazil2026-06-30
1033Italy2026-06-13
1034Brazil2026-06-28
1035Spain2026-06-25
1036Russia2026-06-11
1037France2026-06-21
1038France2026-06-08
1039Italy2026-06-11
1040Italy2026-07-02
1041Spain2026-07-02
1042Germany2026-07-04
1043United Kingdom2026-06-30
1044Canada2026-06-23
1045Russia2026-06-10
1046Italy2026-06-18
1047Canada2026-06-14
1048France2026-07-07
1049Canada2026-06-25

On-Demand Data

NameIdCountryDate
Izzy L Malet1000Italy2026-06-20
Ashley Q Vocelka1001Spain2026-06-09
Maisha A Rim1002Australia2026-06-11
Adams K Figeroa1003India2026-06-27
Darci Y Saylors1004Russia2026-06-16
Mayumi I Bolognia1005Germany2026-06-26
Juan K Rulapaugh1006Russia2026-06-18
Antonio W Morasca1007Brazil2026-06-18
Julie W Wieser1008Canada2026-06-25
Costa Z Sergi1009Brazil2026-06-25
Maria Y Slusarski1010Australia2026-06-28
Leja A Slusarski1011Italy2026-06-08
Misaki M Caudy1012Italy2026-06-27
Antonio L Bolognia1013Russia2026-06-12
Jeanfrancois B Ostrosky1014Germany2026-07-05
Tony Z Perin1015Italy2026-06-17
Rodrigues Z Saylors1016Italy2026-07-06
Ashley O Dilliard1017Canada2026-06-16
Adams M Ruta1018India2026-06-15
Octavia O Ostrosky1019India2026-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika W VenereCanadaElwin Sharvill NEGOTIATION
Alejandro I RutaIndiaOnyama Limba RENEWAL
Jeanfrancois A KolmetzBrazilIvan Magalhaes NEGOTIATION
Maria A CampainGermanyIvan Magalhaes NEW
Chavez X MacleadJapanOnyama Limba PROPOSAL
Claire H ShinkoJapanAmy Elsner PROPOSAL
Clifford U VenereBrazilOnyama Limba QUALIFIED
Mayumi B KolmetzFranceElwin Sharvill RENEWAL
Kadeem P WieserCanadaIoni Bowcher UNQUALIFIED
Mujtaba X SaylorsItalyXuxue Feng RENEWAL
Izzy M SlusarskiSpainAsiya Javayant RENEWAL
Ricardo F WhobreySpainAmy Elsner PROPOSAL
Jeanfrancois Z SergiGermanyXuxue Feng NEGOTIATION
Darci Y MarrierUnited KingdomIvan Magalhaes NEW
Nicolas W RoysterSpainBernardo Dominic NEGOTIATION
Salvatore L MaletFranceIoni Bowcher NEGOTIATION
Adams K StockhamFranceAnna Fali NEGOTIATION
Jefferson T VenereFranceAmy Elsner PROPOSAL
Jones R GauchoCanadaIoni Bowcher QUALIFIED
Isabel I WieserSpainAsiya Javayant NEGOTIATION
Munro P VocelkaIndiaElwin Sharvill NEGOTIATION
James E OstroskyItalyXuxue Feng PROPOSAL
Salvatore D VenereIndiaOnyama Limba QUALIFIED
Kaitlin F FlosiCanadaBernardo Dominic NEW
Misaki L GarufiSpainAmy Elsner PROPOSAL
Isabel R CaldareraFranceOnyama Limba NEW
Stacey E RimSpainAmy Elsner PROPOSAL
Leja H GillianUnited KingdomBernardo Dominic NEW
Munro I MaletIndiaIoni Bowcher UNQUALIFIED
Nicolas O OstroskyFranceAmy Elsner RENEWAL
Jefferson H ButtGermanyAsiya Javayant UNQUALIFIED
Octavia D GarufiUnited KingdomIvan Magalhaes PROPOSAL
Clifford I SchemmerSpainAsiya Javayant RENEWAL
Munro X MaletGermanyStephen Shaw NEW
Leon T CaudyRussiaIoni Bowcher NEW
Kadeem T IturbideUnited KingdomBernardo Dominic RENEWAL
David X MacleadJapanBernardo Dominic RENEWAL
Salvatore H PerinItalyOnyama Limba PROPOSAL
Smith W MacleadItalyBernardo Dominic NEGOTIATION
Julie D DoeFranceOnyama Limba 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>