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
Ashley L AmigonGermanyAmy Elsner NEGOTIATION
Sinclair U GlickRussiaIoni Bowcher NEGOTIATION
Alejandro K TollnerFranceBernardo Dominic PROPOSAL
Aditya K IturbideCanadaAnna Fali NEW
Kadeem M InouyeUnited KingdomAmy Elsner QUALIFIED
Mujtaba B AlbaresIndiaAmy Elsner PROPOSAL
Morrow H BriddickIndiaStephen Shaw UNQUALIFIED
Tony F DoeRussiaAmy Elsner QUALIFIED
Antonio L DarakjyIndiaStephen Shaw RENEWAL
Adams D GillianAustraliaElwin Sharvill NEGOTIATION
Misaki N RimRussiaElwin Sharvill NEW
Isabel G MacleadCanadaBernardo Dominic PROPOSAL
Izzy N AlbaresItalyBernardo Dominic RENEWAL
Octavia T BologniaCanadaBernardo Dominic NEGOTIATION
Izzy F GlickUnited KingdomBernardo Dominic QUALIFIED
David H IturbideArgentinaAmy Elsner RENEWAL
Jeanfrancois H RimArgentinaAnna Fali QUALIFIED
Darci X IturbideItalyIoni Bowcher NEGOTIATION
James V OstroskyAustraliaStephen Shaw RENEWAL
Claire J IturbideGermanyIoni Bowcher QUALIFIED
Stacey Y RoysterAustraliaElwin Sharvill PROPOSAL
Claire T MarrierFranceAsiya Javayant QUALIFIED
Maria F WhobreyIndiaAsiya Javayant QUALIFIED
Rodrigues G ButtAustraliaAsiya Javayant PROPOSAL
Antonio E BowleyItalyOnyama Limba QUALIFIED
Clifford J DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Silvio G StockhamGermanyXuxue Feng NEW
Wickens X BowleyFranceAnna Fali PROPOSAL
David S DarakjyGermanyElwin Sharvill RENEWAL
Francesco L VocelkaArgentinaStephen Shaw NEGOTIATION
Izzy V PoquetteUnited KingdomXuxue Feng QUALIFIED
James Q SergiCanadaIvan Magalhaes RENEWAL
Mujtaba R CampainItalyAmy Elsner RENEWAL
Jeanfrancois E FlosiJapanIvan Magalhaes PROPOSAL
Munro U PoquetteUnited KingdomOnyama Limba UNQUALIFIED
Salvatore C SchemmerGermanyXuxue Feng RENEWAL
Greenwood J KolmetzArgentinaIoni Bowcher UNQUALIFIED
Sinclair J NestleItalyAsiya Javayant RENEWAL
Kaitlin C GauchoAustraliaBernardo Dominic UNQUALIFIED
Juan L TollnerJapanIoni Bowcher QUALIFIED
Johnson U TollnerRussiaIvan Magalhaes UNQUALIFIED
Maisha S TollnerGermanyIvan Magalhaes QUALIFIED
Ashley T GarufiUnited KingdomBernardo Dominic NEGOTIATION
Darci F FollerGermanyIvan Magalhaes PROPOSAL
Jones X ChuiRussiaStephen Shaw UNQUALIFIED
Costa L NestleJapanAsiya Javayant PROPOSAL
Claire M AmigonBrazilElwin Sharvill NEW
Jefferson Y MaletRussiaIvan Magalhaes UNQUALIFIED
Leja F DarakjyFranceOnyama Limba RENEWAL
James G RimBrazilXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois Z PerinIndiaIvan Magalhaes QUALIFIED
Wickens M MacleadIndiaStephen Shaw RENEWAL
Darci D AlbaresCanadaAsiya Javayant NEGOTIATION
Leja T CaldareraItalyStephen Shaw UNQUALIFIED
Francesco G ButtArgentinaOnyama Limba NEW
David D MaletSpainXuxue Feng QUALIFIED
Claire K MorascaItalyAsiya Javayant NEGOTIATION
Francesco Y SchemmerCanadaElwin Sharvill PROPOSAL
Murillo V DoeFranceAmy Elsner UNQUALIFIED
Claire U WieserCanadaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel X MacleadIndia2026-07-04King, Christopher A Esq PROPOSAL66Asiya Javayant
1001James Y ShinkoCanada2026-07-22King, Christopher A Esq NEW55Xuxue Feng
1002Clifford F OldroydCanada2026-07-23Buckley Miller Wright QUALIFIED2Xuxue Feng
1003Mayumi Z BowleyArgentina2026-07-17Commercial Press PROPOSAL30Onyama Limba
1004Julie Q OldroydFrance2026-07-27Chemel, James L Cpa NEGOTIATION44Elwin Sharvill
1005Julie T FollerItaly2026-07-28Buckley Miller Wright QUALIFIED14Anna Fali
1006Sinclair D ShinkoGermany2026-07-22Truhlar And Truhlar Attys QUALIFIED40Xuxue Feng
1007Jeanfrancois Z BriddickCanada2026-07-06Dorl, James J Esq NEW4Amy Elsner
1008Isabel T ButtJapan2026-07-06Dorl, James J Esq PROPOSAL20Onyama Limba
1009Stacey K WhobreyGermany2026-07-16Benton, John B Jr NEGOTIATION3Xuxue Feng
1010Deepesh D SergiItaly2026-07-04King, Christopher A Esq UNQUALIFIED78Onyama Limba
1011Aruna L ChuiJapan2026-07-05Morlong Associates UNQUALIFIED30Stephen Shaw
1012Claire D MorascaIndia2026-07-26Morlong Associates PROPOSAL44Elwin Sharvill
1013Smith F PoquetteUnited Kingdom2026-07-12Feltz Printing Service NEGOTIATION99Ivan Magalhaes
1014Wickens J CampainAustralia2026-07-02Dorl, James J Esq QUALIFIED75Elwin Sharvill
1015Adams D NickaCanada2026-07-10Truhlar And Truhlar Attys UNQUALIFIED89Anna Fali
1016Sinclair S CaldareraSpain2026-07-27Dorl, James J Esq PROPOSAL15Onyama Limba
1017Arvin Z InouyeGermany2026-07-29Truhlar And Truhlar Attys PROPOSAL47Xuxue Feng
1018Silvio T MaletCanada2026-07-11Buckley Miller Wright RENEWAL80Amy Elsner
1019Francesco C GlickGermany2026-07-21Chemel, James L Cpa NEW77Asiya Javayant
1020Ricardo W NestleGermany2026-07-01Chemel, James L Cpa QUALIFIED5Stephen Shaw
1021Octavia V DoeFrance2026-07-10Chemel, James L Cpa PROPOSAL77Amy Elsner
1022Faith Y FollerJapan2026-07-16Printing Dimensions UNQUALIFIED35Anna Fali
1023Maisha E PerinAustralia2026-07-22Commercial Press PROPOSAL88Elwin Sharvill
1024Ivar I GillianAustralia2026-07-10Benton, John B Jr RENEWAL88Onyama Limba
1025Morrow E IturbideRussia2026-07-30Feiner Bros UNQUALIFIED93Bernardo Dominic
1026Adams W RimIndia2026-07-14Printing Dimensions UNQUALIFIED64Anna Fali
1027Antonio G RimSpain2026-07-10Commercial Press PROPOSAL7Bernardo Dominic
1028Chavez O CaudyAustralia2026-07-06Morlong Associates PROPOSAL0Ivan Magalhaes
1029Wickens S SchemmerRussia2026-07-18Chanay, Jeffrey A Esq RENEWAL78Ivan Magalhaes
1030Arvin P FlosiAustralia2026-07-13Dorl, James J Esq UNQUALIFIED36Amy Elsner
1031Jefferson C AmigonRussia2026-07-12Dorl, James J Esq UNQUALIFIED61Asiya Javayant
1032Arvin H BologniaFrance2026-07-08Dorl, James J Esq NEW17Xuxue Feng
1033Jeanfrancois U BriddickGermany2026-07-26Feiner Bros PROPOSAL11Elwin Sharvill
1034Clifford S SergiCanada2026-07-13Dorl, James J Esq PROPOSAL26Anna Fali
1035Aditya M DoeIndia2026-07-02Printing Dimensions PROPOSAL90Xuxue Feng
1036Greenwood J DoeBrazil2026-07-10Buckley Miller Wright NEW53Xuxue Feng
1037Johnson S StockhamSpain2026-07-07Feltz Printing Service NEW98Asiya Javayant
1038Juan Z FlosiUnited Kingdom2026-07-19Morlong Associates PROPOSAL9Amy Elsner
1039Aditya G AlbaresUnited Kingdom2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED23Onyama Limba
1040Kadeem H MarrierSpain2026-07-03Buckley Miller Wright PROPOSAL25Ioni Bowcher
1041Cody I MaletCanada2026-07-30Feiner Bros QUALIFIED85Asiya Javayant
1042Cody V NickaGermany2026-07-17Commercial Press NEGOTIATION59Bernardo Dominic
1043Jefferson B FigeroaJapan2026-07-15Truhlar And Truhlar Attys RENEWAL5Anna Fali
1044Kaitlin D VocelkaFrance2026-07-24Morlong Associates PROPOSAL15Elwin Sharvill
1045Costa K FlosiSpain2026-07-15King, Christopher A Esq RENEWAL83Ioni Bowcher
1046Murillo B RimFrance2026-07-01Benton, John B Jr RENEWAL34Xuxue Feng
1047Salvatore F WaycottGermany2026-07-02King, Christopher A Esq UNQUALIFIED48Stephen Shaw
1048Antonio M SchemmerGermany2026-07-04Rousseaux, Michael Esq NEW92Bernardo Dominic
1049Maria W GarufiJapan2026-07-24Chemel, James L Cpa RENEWAL54Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ivar Y InouyeItalyIvan Magalhaes NEGOTIATION
Arvin F SaylorsBrazilElwin Sharvill UNQUALIFIED
Salvatore Q SlusarskiRussiaAnna Fali QUALIFIED
Costa B FerenczRussiaElwin Sharvill NEW
Jefferson H VocelkaAustraliaXuxue Feng NEW
Morrow F BriddickArgentinaAsiya Javayant RENEWAL
Rodrigues T BowleyJapanXuxue Feng NEW
Aika L GlickFranceAnna Fali RENEWAL
Jefferson Z AlbaresAustraliaBernardo Dominic UNQUALIFIED
Kadeem R AlbaresIndiaAmy Elsner QUALIFIED
Silvio S NestleIndiaOnyama Limba UNQUALIFIED
Salvatore P FollerCanadaAmy Elsner PROPOSAL
Francesco C SaylorsJapanAsiya Javayant NEW
Misaki R SchemmerAustraliaIvan Magalhaes NEW
Aruna X VocelkaJapanXuxue Feng QUALIFIED
Jefferson H AlbaresRussiaAnna Fali UNQUALIFIED
Kadeem Y MarrierIndiaAnna Fali UNQUALIFIED
Murillo L DilliardSpainXuxue Feng UNQUALIFIED
Ashley D BowleyArgentinaIvan Magalhaes NEW
Smith W GlickArgentinaAnna Fali PROPOSAL
Alejandro O PaprockiFranceAnna Fali UNQUALIFIED
Munro X IturbideArgentinaAsiya Javayant RENEWAL
Jeanfrancois D GlickSpainXuxue Feng RENEWAL
Salvatore W NestleCanadaOnyama Limba NEGOTIATION
David A DilliardFranceOnyama Limba NEW
Francesco P NickaBrazilBernardo Dominic UNQUALIFIED
Nicolas B RoysterArgentinaStephen Shaw UNQUALIFIED
Tony Q MaletRussiaStephen Shaw PROPOSAL
Costa E StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Munro P MaletRussiaIoni Bowcher PROPOSAL
Antonio J CaudyRussiaIvan Magalhaes PROPOSAL
Claire B GarufiGermanyIvan Magalhaes NEW
Misaki W GlickGermanyElwin Sharvill NEGOTIATION
Arvin V AmigonItalyBernardo Dominic UNQUALIFIED
Alejandro U GauchoIndiaAnna Fali NEW
Costa L ButtUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair M ButtFranceAsiya Javayant UNQUALIFIED
Mayumi E CaldareraItalyOnyama Limba UNQUALIFIED
Emily O WieserItalyElwin Sharvill PROPOSAL
Leja K SchemmerAustraliaOnyama Limba NEW
Francesco R OldroydArgentinaAmy Elsner PROPOSAL
Julie F BologniaItalyStephen Shaw QUALIFIED
Johnson W CaudyRussiaIoni Bowcher QUALIFIED
Leon C RutaItalyStephen Shaw NEW
Cody J PaprockiJapanBernardo Dominic NEW
Izzy C RutaAustraliaIvan Magalhaes QUALIFIED
Tony U OldroydCanadaBernardo Dominic PROPOSAL
Kaitlin K MorascaFranceStephen Shaw QUALIFIED
Greenwood S VocelkaRussiaElwin Sharvill NEGOTIATION
Chavez S ChuiAustraliaAnna Fali UNQUALIFIED
Frozen Columns
Name
Aika I Oldroyd
Julie L Saylors
Jones I Venere
Sinclair W Iturbide
Costa L Gaucho
Cody U Perin
Juan Y Stenseth
Ashley W Waycott
Silvio X Gillian
Nicolas C Dilliard
Morrow J Gillian
Isabel A Butt
Adams X Stenseth
Jefferson Z Albares
Greenwood U Tollner
Deepesh I Waycott
Wickens T Slusarski
Aruna O Bolognia
Salvatore Q Ferencz
Greenwood Q Nicka
Munro J Flosi
Greenwood M Ostrosky
James O Malet
Aika G Campain
Costa D Flosi
Mujtaba Y Nicka
Mayumi I Shinko
Costa W Ruta
Johnson E Tollner
Isabel G Garufi
Jennifer Z Slusarski
Alejandro H Malet
David Q Figeroa
Rodrigues W Gaucho
Leon O Tollner
Mayumi G Whobrey
Smith T Gillian
Leja K Saylors
Antonio N Vocelka
Murillo Z Bolognia
Sinclair T Perin
Chavez C Perin
Stacey U Bolognia
Octavia J Malet
Morrow G Maclead
Chavez B Paprocki
Mujtaba R Tollner
Aika B Poquette
James C Oldroyd
Chavez I Vocelka
IdCountryDate
1000Japan2026-07-15
1001Russia2026-07-13
1002Brazil2026-07-28
1003France2026-07-14
1004France2026-07-17
1005France2026-07-01
1006Japan2026-07-07
1007France2026-07-27
1008France2026-07-21
1009India2026-07-13
1010Canada2026-07-08
1011Spain2026-07-04
1012Japan2026-07-03
1013Canada2026-07-18
1014Argentina2026-07-02
1015Brazil2026-07-17
1016Spain2026-07-13
1017Spain2026-07-24
1018India2026-07-11
1019Canada2026-07-08
1020Australia2026-07-24
1021Brazil2026-07-18
1022Russia2026-07-15
1023Canada2026-07-08
1024Australia2026-07-19
1025India2026-07-01
1026Germany2026-07-29
1027Japan2026-07-04
1028Brazil2026-07-28
1029Germany2026-07-06
1030Spain2026-07-14
1031France2026-07-16
1032Argentina2026-07-26
1033Argentina2026-07-10
1034India2026-07-02
1035Italy2026-07-08
1036Australia2026-07-09
1037Russia2026-07-07
1038Italy2026-07-25
1039Canada2026-07-26
1040Japan2026-07-23
1041Russia2026-07-12
1042Italy2026-07-02
1043France2026-07-01
1044Brazil2026-07-13
1045Canada2026-07-06
1046Canada2026-07-23
1047Japan2026-07-21
1048Argentina2026-07-26
1049Russia2026-07-11

On-Demand Data

NameIdCountryDate
Emily A Schemmer1000France2026-07-22
Sinclair L Sergi1001Japan2026-07-10
Jefferson G Foller1002Argentina2026-07-17
Antonio A Kusko1003Germany2026-07-04
Arvin D Kusko1004Brazil2026-07-17
Darci Z Chui1005Canada2026-07-24
Leja P Caudy1006Australia2026-07-29
Jennifer A Perin1007United Kingdom2026-07-02
Aditya R Rim1008United Kingdom2026-07-01
Johnson D Maclead1009Argentina2026-07-20
Morrow R Whobrey1010Brazil2026-07-20
Johnson S Shinko1011Brazil2026-07-23
Rodrigues B Ostrosky1012United Kingdom2026-07-18
Chavez S Bolognia1013Italy2026-07-15
Silvio B Dilliard1014United Kingdom2026-07-25
Maria E Poquette1015Canada2026-07-14
Octavia G Maclead1016United Kingdom2026-07-11
Leon Z Ferencz1017Japan2026-07-01
Stacey N Ferencz1018Australia2026-07-14
James Q Saylors1019Canada2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford I GarufiCanadaXuxue Feng UNQUALIFIED
Aditya K ShinkoGermanyBernardo Dominic RENEWAL
Smith P FlosiRussiaAmy Elsner QUALIFIED
Juan C CaudyCanadaAsiya Javayant PROPOSAL
Nicolas Z StockhamJapanXuxue Feng QUALIFIED
Chavez T PerinFranceStephen Shaw NEGOTIATION
David R PaprockiSpainElwin Sharvill NEGOTIATION
Wickens P WieserUnited KingdomStephen Shaw NEW
Aruna C RoysterSpainBernardo Dominic RENEWAL
Jefferson M MacleadJapanElwin Sharvill NEW
Salvatore F RimRussiaAsiya Javayant UNQUALIFIED
Julie U PaprockiRussiaBernardo Dominic NEGOTIATION
Tony M GauchoItalyStephen Shaw QUALIFIED
Julie J AlbaresRussiaBernardo Dominic NEGOTIATION
Emily T GarufiArgentinaOnyama Limba RENEWAL
Silvio N NickaGermanyElwin Sharvill RENEWAL
Chavez R SchemmerSpainBernardo Dominic RENEWAL
Ashley J DilliardBrazilElwin Sharvill RENEWAL
Chavez Z CaldareraBrazilXuxue Feng NEW
Sinclair B MaletRussiaXuxue Feng RENEWAL
Faith I NickaBrazilIvan Magalhaes UNQUALIFIED
Salvatore C ChuiGermanyXuxue Feng NEGOTIATION
Silvio Q GauchoJapanOnyama Limba NEGOTIATION
Faith J SergiAustraliaXuxue Feng NEW
Johnson J WaycottJapanXuxue Feng NEW
Clifford R VenereSpainElwin Sharvill NEW
Ivar V DoeCanadaAsiya Javayant QUALIFIED
Ricardo J MaletItalyOnyama Limba UNQUALIFIED
Costa G DilliardSpainOnyama Limba NEW
Salvatore P BologniaIndiaAmy Elsner UNQUALIFIED
Silvio C GauchoGermanyIoni Bowcher NEW
Emily Y RulapaughJapanOnyama Limba RENEWAL
Rodrigues I CampainSpainIvan Magalhaes PROPOSAL
Alejandro Y PoquetteItalyIvan Magalhaes QUALIFIED
Morrow S RoysterRussiaIoni Bowcher NEGOTIATION
Jefferson N ButtIndiaAmy Elsner RENEWAL
Silvio C NickaSpainOnyama Limba UNQUALIFIED
Murillo E VenereBrazilAnna Fali QUALIFIED
Rodrigues Q TollnerUnited KingdomIoni Bowcher RENEWAL
Aruna A InouyeAustraliaXuxue Feng 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>