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
Aika Y NestleItalyXuxue Feng RENEWAL
Ricardo F PerinFranceOnyama Limba RENEWAL
Silvio F GlickCanadaElwin Sharvill PROPOSAL
Stacey Z InouyeArgentinaElwin Sharvill UNQUALIFIED
Francesco U FollerBrazilIoni Bowcher PROPOSAL
Mayumi A RulapaughRussiaElwin Sharvill NEGOTIATION
Sinclair B MorascaSpainAmy Elsner PROPOSAL
Jones H GillianGermanyElwin Sharvill PROPOSAL
Arvin L NestleJapanAmy Elsner RENEWAL
Ivar X PerinFranceAsiya Javayant NEW
Antonio Q WieserAustraliaXuxue Feng RENEWAL
James B VenereFranceOnyama Limba NEW
Morrow Y StockhamBrazilAsiya Javayant PROPOSAL
Tony C CampainUnited KingdomIvan Magalhaes RENEWAL
Chavez I ChuiSpainOnyama Limba RENEWAL
Kadeem W NestleIndiaIoni Bowcher NEW
Mayumi Q GarufiSpainOnyama Limba NEW
Julie F SaylorsUnited KingdomIvan Magalhaes RENEWAL
Leon D SaylorsGermanyOnyama Limba NEW
Greenwood J IturbideAustraliaAnna Fali RENEWAL
Darci Z DarakjyCanadaElwin Sharvill NEGOTIATION
Johnson E WieserIndiaBernardo Dominic NEW
Jones Q DarakjyIndiaXuxue Feng PROPOSAL
Misaki Y WieserIndiaAmy Elsner QUALIFIED
Ivar M DilliardArgentinaStephen Shaw PROPOSAL
Wickens J RimBrazilIvan Magalhaes PROPOSAL
Adams D ButtCanadaAnna Fali UNQUALIFIED
Munro W ButtArgentinaAsiya Javayant UNQUALIFIED
Deepesh V KolmetzCanadaAsiya Javayant UNQUALIFIED
Ashley V MorascaSpainAnna Fali NEGOTIATION
Faith F PaprockiAustraliaIvan Magalhaes NEGOTIATION
Juan K WhobreyGermanyOnyama Limba NEGOTIATION
Darci H FollerSpainAmy Elsner RENEWAL
Aruna U DoeItalyAsiya Javayant QUALIFIED
Silvio D BowleyGermanyIvan Magalhaes RENEWAL
Aditya Q BowleyFranceStephen Shaw NEW
Tony N WhobreySpainBernardo Dominic PROPOSAL
Aika T ButtArgentinaOnyama Limba QUALIFIED
Faith Q DoeItalyElwin Sharvill RENEWAL
Munro Y CaudyRussiaAmy Elsner PROPOSAL
Sinclair F VenereRussiaStephen Shaw NEW
David H PoquetteArgentinaAnna Fali NEW
Deepesh C VocelkaArgentinaXuxue Feng QUALIFIED
Stacey U StensethFranceIvan Magalhaes QUALIFIED
Kadeem A DarakjyRussiaAnna Fali NEGOTIATION
Nicolas V AmigonArgentinaAnna Fali QUALIFIED
Claire W OstroskyAustraliaStephen Shaw RENEWAL
David H PaprockiGermanyAsiya Javayant QUALIFIED
Leja Z SergiSpainOnyama Limba QUALIFIED
Wickens E DarakjyIndiaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Claire F VenereSpainBernardo Dominic UNQUALIFIED
Clifford Y TollnerItalyIoni Bowcher NEGOTIATION
Emily P WieserIndiaAnna Fali PROPOSAL
Salvatore Q MarrierItalyXuxue Feng UNQUALIFIED
Tony X ButtFranceAsiya Javayant NEW
Kadeem B GauchoBrazilElwin Sharvill PROPOSAL
Isabel E FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Leja G NickaGermanyAmy Elsner PROPOSAL
David N RutaUnited KingdomAsiya Javayant RENEWAL
Ashley T CaldareraSpainXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith G SergiJapan2025-06-16Commercial Press UNQUALIFIED26Asiya Javayant
1001Arvin N RulapaughIndia2025-05-20Feiner Bros QUALIFIED92Asiya Javayant
1002Aika A GauchoFrance2025-05-31Benton, John B Jr RENEWAL82Stephen Shaw
1003Morrow X KuskoCanada2025-06-13Chanay, Jeffrey A Esq UNQUALIFIED25Xuxue Feng
1004Wickens F RutaSpain2025-05-23Chanay, Jeffrey A Esq NEGOTIATION36Anna Fali
1005Murillo V MaletSpain2025-06-14Feltz Printing Service NEGOTIATION26Xuxue Feng
1006Smith Q AmigonArgentina2025-05-26Chemel, James L Cpa PROPOSAL0Asiya Javayant
1007Munro X BowleySpain2025-05-23Chapman, Ross E Esq UNQUALIFIED28Xuxue Feng
1008Clifford U MacleadRussia2025-06-03King, Christopher A Esq NEW28Ivan Magalhaes
1009Maria V CaudyBrazil2025-05-28Rangoni Of Florence PROPOSAL38Onyama Limba
1010Rodrigues M KuskoItaly2025-06-02King, Christopher A Esq PROPOSAL60Elwin Sharvill
1011David C KolmetzRussia2025-05-29Chapman, Ross E Esq UNQUALIFIED73Elwin Sharvill
1012Aika F GauchoArgentina2025-06-11Printing Dimensions UNQUALIFIED93Bernardo Dominic
1013Stacey T OstroskyAustralia2025-06-16Buckley Miller Wright NEGOTIATION52Elwin Sharvill
1014Johnson P WaycottArgentina2025-06-16Benton, John B Jr PROPOSAL75Stephen Shaw
1015Nicolas E KuskoItaly2025-06-02Printing Dimensions NEGOTIATION1Onyama Limba
1016Ricardo L FollerGermany2025-06-02Rangoni Of Florence QUALIFIED7Asiya Javayant
1017Mujtaba Q GarufiAustralia2025-06-12King, Christopher A Esq QUALIFIED17Xuxue Feng
1018Jennifer T SergiBrazil2025-05-23Commercial Press NEGOTIATION47Anna Fali
1019Morrow O OldroydItaly2025-06-04Commercial Press QUALIFIED88Amy Elsner
1020Sinclair T ShinkoFrance2025-05-27Commercial Press NEGOTIATION50Elwin Sharvill
1021Clifford W MorascaJapan2025-06-11Morlong Associates UNQUALIFIED9Xuxue Feng
1022Sinclair H KolmetzJapan2025-05-26Rousseaux, Michael Esq UNQUALIFIED49Anna Fali
1023Ashley I IturbideSpain2025-06-16Chapman, Ross E Esq PROPOSAL89Anna Fali
1024Nicolas L OldroydJapan2025-05-28Chapman, Ross E Esq QUALIFIED47Stephen Shaw
1025Nicolas U DarakjyUnited Kingdom2025-06-16Rousseaux, Michael Esq NEW93Ivan Magalhaes
1026Mujtaba D ChuiBrazil2025-05-30Rousseaux, Michael Esq PROPOSAL85Ivan Magalhaes
1027Tony X PoquetteGermany2025-05-25Benton, John B Jr QUALIFIED67Asiya Javayant
1028Mujtaba J StockhamFrance2025-05-27Chanay, Jeffrey A Esq RENEWAL71Xuxue Feng
1029Aditya F DoeJapan2025-06-16Morlong Associates RENEWAL35Ivan Magalhaes
1030Jennifer U DilliardBrazil2025-06-11Morlong Associates RENEWAL48Ivan Magalhaes
1031Johnson U DilliardJapan2025-06-02Buckley Miller Wright QUALIFIED54Xuxue Feng
1032Julie W VenereJapan2025-05-30Feiner Bros UNQUALIFIED7Asiya Javayant
1033Jeanfrancois M VocelkaJapan2025-05-22Commercial Press NEGOTIATION94Stephen Shaw
1034Munro Q MaletGermany2025-05-26Feltz Printing Service PROPOSAL17Elwin Sharvill
1035Johnson B SaylorsAustralia2025-06-16Feltz Printing Service RENEWAL55Xuxue Feng
1036Leja A CaudyBrazil2025-05-29Chemel, James L Cpa QUALIFIED88Stephen Shaw
1037Wickens C FlosiBrazil2025-05-29Feiner Bros PROPOSAL37Anna Fali
1038Wickens X KolmetzBrazil2025-05-23Feltz Printing Service QUALIFIED25Xuxue Feng
1039Maisha G IturbideBrazil2025-05-29Rangoni Of Florence RENEWAL43Anna Fali
1040Leon Z TollnerArgentina2025-06-07Buckley Miller Wright QUALIFIED43Elwin Sharvill
1041David S FigeroaJapan2025-05-22Dorl, James J Esq UNQUALIFIED83Amy Elsner
1042Juan A SaylorsJapan2025-05-30Chemel, James L Cpa NEGOTIATION39Bernardo Dominic
1043Aditya U BologniaUnited Kingdom2025-06-14Rousseaux, Michael Esq QUALIFIED99Ivan Magalhaes
1044Munro W OstroskyJapan2025-05-21Feltz Printing Service PROPOSAL45Onyama Limba
1045Sinclair S SchemmerJapan2025-06-11Truhlar And Truhlar Attys NEW97Anna Fali
1046Adams B CampainBrazil2025-06-11Dorl, James J Esq QUALIFIED19Onyama Limba
1047Jefferson P BowleyRussia2025-06-16Printing Dimensions NEW98Onyama Limba
1048Kadeem D SlusarskiJapan2025-06-08Printing Dimensions QUALIFIED99Ioni Bowcher
1049Aditya C RulapaughGermany2025-06-09Commercial Press RENEWAL24Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Antonio C PoquetteRussiaElwin Sharvill RENEWAL
Ashley I RulapaughArgentinaXuxue Feng UNQUALIFIED
Stacey L MorascaJapanIoni Bowcher NEW
Johnson G VocelkaFranceOnyama Limba QUALIFIED
Johnson Y GlickItalyIoni Bowcher PROPOSAL
Alejandro U NestleJapanIoni Bowcher NEW
Aditya S VenereCanadaBernardo Dominic PROPOSAL
Morrow K GauchoIndiaAnna Fali NEW
Sinclair R NickaRussiaAnna Fali QUALIFIED
Maria B FigeroaUnited KingdomXuxue Feng NEGOTIATION
Octavia P BowleyJapanIvan Magalhaes NEGOTIATION
Johnson O ChuiUnited KingdomIvan Magalhaes PROPOSAL
David R SchemmerArgentinaIvan Magalhaes QUALIFIED
Smith Z CampainIndiaAsiya Javayant QUALIFIED
Antonio C AlbaresFranceIvan Magalhaes QUALIFIED
Sinclair Q OldroydIndiaAsiya Javayant UNQUALIFIED
Nicolas A GlickRussiaOnyama Limba NEGOTIATION
Munro U NickaJapanAmy Elsner QUALIFIED
Cody K TollnerFranceStephen Shaw NEGOTIATION
Ricardo R MarrierItalyAmy Elsner UNQUALIFIED
Cody Q GauchoIndiaStephen Shaw QUALIFIED
Jennifer V SaylorsItalyIvan Magalhaes UNQUALIFIED
Kadeem G ButtSpainBernardo Dominic PROPOSAL
Smith C MorascaRussiaIoni Bowcher PROPOSAL
Ashley M BologniaArgentinaAnna Fali RENEWAL
Silvio O WhobreySpainIvan Magalhaes RENEWAL
Isabel P MorascaCanadaAmy Elsner UNQUALIFIED
Juan P SergiRussiaAmy Elsner QUALIFIED
Arvin L WhobreyBrazilElwin Sharvill NEW
Costa Y DarakjyArgentinaIoni Bowcher NEGOTIATION
Misaki O AlbaresBrazilOnyama Limba NEW
Misaki G FollerFranceAmy Elsner UNQUALIFIED
Julie K PaprockiAustraliaBernardo Dominic QUALIFIED
Leja H CaudyUnited KingdomIoni Bowcher RENEWAL
Maria P ButtItalyIvan Magalhaes UNQUALIFIED
Tony J DilliardRussiaElwin Sharvill PROPOSAL
Costa S SchemmerGermanyIvan Magalhaes NEW
Octavia O RulapaughAustraliaBernardo Dominic NEGOTIATION
Kaitlin J SchemmerJapanBernardo Dominic QUALIFIED
Maria D BowleyFranceElwin Sharvill PROPOSAL
Deepesh H GarufiIndiaAsiya Javayant QUALIFIED
Ivar O CaldareraFranceElwin Sharvill UNQUALIFIED
Francesco W FigeroaArgentinaIoni Bowcher NEGOTIATION
Juan S CaldareraBrazilXuxue Feng PROPOSAL
Mayumi J RimRussiaAnna Fali PROPOSAL
Murillo N FlosiBrazilStephen Shaw RENEWAL
Costa D GillianIndiaXuxue Feng QUALIFIED
Alejandro Y PoquetteCanadaIoni Bowcher QUALIFIED
Antonio A AlbaresAustraliaStephen Shaw QUALIFIED
Nicolas H RoysterBrazilIvan Magalhaes PROPOSAL
Frozen Columns
Name
Johnson A Inouye
Jennifer B Whobrey
Jones X Doe
Faith N Bolognia
Juan F Stenseth
Nicolas W Gaucho
Morrow Q Oldroyd
Mayumi D Nicka
Leja P Ruta
Misaki R Garufi
Cody Z Doe
Chavez I Vocelka
Maisha R Venere
Darci G Foller
Faith K Amigon
Maisha T Shinko
Izzy Y Wieser
Chavez E Wieser
Darci J Butt
Clifford T Dilliard
Sinclair N Campain
Jefferson C Vocelka
Smith A Perin
David F Ferencz
Ivar H Gaucho
Isabel O Albares
Alejandro V Wieser
Juan A Foller
Ivar H Rulapaugh
Darci H Ostrosky
Clifford N Rim
Cody Q Darakjy
Jefferson F Marrier
Jefferson V Kusko
Deepesh Q Bowley
Jennifer P Garufi
Cody E Gillian
Alejandro D Nestle
Arvin Q Figeroa
Mujtaba O Marrier
Rodrigues N Darakjy
Johnson S Waycott
James N Caldarera
Jefferson V Whobrey
Kaitlin H Paprocki
Jones H Poquette
Costa K Iturbide
Francesco J Schemmer
Mayumi B Garufi
Octavia U Flosi
IdCountryDate
1000Germany2025-06-06
1001Spain2025-06-16
1002France2025-06-13
1003Germany2025-05-27
1004Argentina2025-05-31
1005Germany2025-05-18
1006Canada2025-05-27
1007France2025-06-02
1008Spain2025-06-12
1009Italy2025-06-10
1010Italy2025-05-30
1011Argentina2025-06-13
1012Brazil2025-05-31
1013France2025-06-06
1014Canada2025-06-03
1015Germany2025-06-08
1016Spain2025-06-06
1017Germany2025-05-28
1018India2025-05-25
1019India2025-06-02
1020Australia2025-05-21
1021Spain2025-06-02
1022Italy2025-05-20
1023Canada2025-05-29
1024Australia2025-06-11
1025Russia2025-05-20
1026Germany2025-06-06
1027Italy2025-06-14
1028Russia2025-05-18
1029Italy2025-06-05
1030Spain2025-05-24
1031Spain2025-05-23
1032Germany2025-06-11
1033Canada2025-06-09
1034Japan2025-05-26
1035Russia2025-06-13
1036Spain2025-05-24
1037Argentina2025-06-06
1038Australia2025-06-02
1039Australia2025-05-28
1040France2025-06-03
1041Spain2025-05-18
1042Germany2025-06-05
1043Australia2025-05-26
1044Spain2025-05-18
1045France2025-06-09
1046Italy2025-06-14
1047Germany2025-05-30
1048Japan2025-06-09
1049United Kingdom2025-05-19

On-Demand Data

NameIdCountryDate
Morrow W Ferencz1000Canada2025-05-28
Maria X Briddick1001India2025-06-16
Aditya G Chui1002Japan2025-05-22
Deepesh H Inouye1003Russia2025-05-19
Rodrigues I Albares1004Brazil2025-06-01
Ivar F Malet1005United Kingdom2025-05-29
Jones Z Darakjy1006Italy2025-05-19
Kadeem W Dilliard1007Argentina2025-06-14
Arvin D Flosi1008India2025-05-30
Alejandro S Iturbide1009Spain2025-06-15
Ricardo T Paprocki1010Japan2025-05-31
Costa L Dilliard1011Argentina2025-05-31
Mayumi B Stockham1012France2025-05-21
Juan Y Malet1013Brazil2025-05-31
Francesco F Doe1014Australia2025-05-30
Jennifer Y Rulapaugh1015Italy2025-06-14
Darci H Paprocki1016Canada2025-05-21
Jennifer V Morasca1017Argentina2025-06-07
Adams C Sergi1018United Kingdom2025-05-26
Ivar X Schemmer1019Germany2025-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi D MorascaJapanIvan Magalhaes RENEWAL
Smith F StensethCanadaStephen Shaw NEW
Francesco F CampainIndiaAsiya Javayant QUALIFIED
Aruna L FigeroaRussiaXuxue Feng PROPOSAL
Greenwood X CaldareraItalyOnyama Limba NEW
Costa T AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Misaki Z VenereCanadaOnyama Limba QUALIFIED
Aruna B CampainBrazilElwin Sharvill NEGOTIATION
Jones T ButtAustraliaXuxue Feng PROPOSAL
Maria E WhobreyRussiaElwin Sharvill QUALIFIED
Nicolas I WieserUnited KingdomStephen Shaw QUALIFIED
Ivar W NestleUnited KingdomElwin Sharvill QUALIFIED
Izzy O OstroskySpainAnna Fali NEW
Leja A PerinFranceXuxue Feng NEW
Ashley B PaprockiItalyOnyama Limba QUALIFIED
Jeanfrancois C StockhamIndiaElwin Sharvill QUALIFIED
Clifford G SergiFranceIoni Bowcher NEW
Leon E IturbideCanadaElwin Sharvill QUALIFIED
Cody V MorascaAustraliaAnna Fali UNQUALIFIED
David S DilliardGermanyAsiya Javayant RENEWAL
Greenwood D ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Izzy D GillianRussiaElwin Sharvill UNQUALIFIED
Stacey M AlbaresFranceAnna Fali NEW
Chavez C MaletCanadaIoni Bowcher RENEWAL
David D RulapaughBrazilXuxue Feng RENEWAL
Mujtaba R VocelkaRussiaIvan Magalhaes RENEWAL
Greenwood Z RoysterCanadaAnna Fali RENEWAL
Maisha O DoeBrazilStephen Shaw NEW
Nicolas D TollnerCanadaIoni Bowcher QUALIFIED
Alejandro G StockhamIndiaAmy Elsner PROPOSAL
Ivar M DilliardCanadaAnna Fali PROPOSAL
Jefferson F TollnerGermanyAnna Fali NEGOTIATION
Maria L SergiJapanStephen Shaw NEW
Costa C FigeroaIndiaElwin Sharvill NEGOTIATION
Darci T PerinFranceBernardo Dominic RENEWAL
Kaitlin W FerenczFranceIvan Magalhaes NEGOTIATION
Leja A RulapaughArgentinaStephen Shaw RENEWAL
Aruna A CampainAustraliaStephen Shaw PROPOSAL
Smith O DoeFranceXuxue Feng UNQUALIFIED
Leon V FlosiSpainElwin Sharvill QUALIFIED

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