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
Deepesh T InouyeJapanIvan Magalhaes NEW
Faith P NestleUnited KingdomIoni Bowcher UNQUALIFIED
Aika E OstroskyIndiaElwin Sharvill PROPOSAL
Aika F GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Costa I InouyeFranceAnna Fali PROPOSAL
Salvatore F AmigonArgentinaAnna Fali PROPOSAL
Ashley Q AmigonAustraliaIvan Magalhaes NEW
James V OstroskyArgentinaOnyama Limba NEW
Nicolas U OldroydCanadaStephen Shaw PROPOSAL
Izzy S RoysterFranceBernardo Dominic UNQUALIFIED
Faith J NestleItalyIoni Bowcher RENEWAL
Kaitlin W InouyeCanadaAsiya Javayant NEW
Arvin Q CampainItalyElwin Sharvill UNQUALIFIED
Alejandro V DoeAustraliaXuxue Feng NEGOTIATION
Aditya V GauchoAustraliaOnyama Limba QUALIFIED
Maria H FollerItalyIoni Bowcher UNQUALIFIED
Smith U FlosiArgentinaBernardo Dominic UNQUALIFIED
Ivar F GlickArgentinaAsiya Javayant QUALIFIED
Jennifer I SergiSpainStephen Shaw RENEWAL
Darci I WhobreyGermanyAsiya Javayant QUALIFIED
Faith R BologniaAustraliaAsiya Javayant UNQUALIFIED
Darci Y StockhamBrazilAnna Fali QUALIFIED
James B CaudyAustraliaIvan Magalhaes NEGOTIATION
Adams Z GillianArgentinaAnna Fali NEW
Mujtaba K ShinkoFranceAmy Elsner RENEWAL
Maisha P KuskoRussiaIvan Magalhaes NEW
Smith S ButtUnited KingdomAsiya Javayant PROPOSAL
Silvio D SlusarskiIndiaOnyama Limba PROPOSAL
Octavia V BologniaJapanAmy Elsner UNQUALIFIED
Cody T SaylorsAustraliaIvan Magalhaes RENEWAL
Antonio W GarufiUnited KingdomStephen Shaw RENEWAL
Darci D SchemmerSpainStephen Shaw NEGOTIATION
Munro M KuskoArgentinaIvan Magalhaes UNQUALIFIED
Misaki A MacleadRussiaAsiya Javayant NEGOTIATION
Alejandro V GarufiCanadaOnyama Limba PROPOSAL
Faith P MorascaGermanyAmy Elsner RENEWAL
Aika R NestleUnited KingdomAsiya Javayant RENEWAL
Smith D OldroydBrazilBernardo Dominic NEGOTIATION
Maisha K FigeroaCanadaOnyama Limba RENEWAL
Costa Y VocelkaFranceXuxue Feng PROPOSAL
Ivar S DilliardRussiaAsiya Javayant RENEWAL
Antonio M RulapaughBrazilAnna Fali QUALIFIED
Jefferson Q PerinAustraliaIoni Bowcher NEGOTIATION
Darci N FerenczRussiaOnyama Limba RENEWAL
Arvin E ChuiRussiaAnna Fali NEW
Jeanfrancois A StockhamIndiaAsiya Javayant UNQUALIFIED
Deepesh U GillianItalyIoni Bowcher PROPOSAL
Greenwood K BologniaItalyXuxue Feng NEW
Ashley U PerinAustraliaAsiya Javayant NEW
Wickens K MorascaArgentinaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Claire I SlusarskiSpainXuxue Feng RENEWAL
Jones K WaycottRussiaXuxue Feng NEW
Aika R VocelkaSpainAsiya Javayant PROPOSAL
Munro E WaycottUnited KingdomIoni Bowcher NEGOTIATION
Chavez Q MaletIndiaAmy Elsner RENEWAL
Maisha A FerenczArgentinaAmy Elsner UNQUALIFIED
Silvio G InouyeBrazilAnna Fali QUALIFIED
Ivar F SlusarskiRussiaXuxue Feng PROPOSAL
Jeanfrancois T NickaBrazilBernardo Dominic QUALIFIED
Aika B WaycottFranceStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki A NickaArgentina2026-07-27Commercial Press NEGOTIATION42Asiya Javayant
1001Kadeem K MaletSpain2026-07-24Commercial Press RENEWAL28Ivan Magalhaes
1002Munro T VocelkaCanada2026-07-29Morlong Associates NEW66Elwin Sharvill
1003Adams Y OldroydIndia2026-07-01Rangoni Of Florence RENEWAL12Asiya Javayant
1004Octavia V RutaRussia2026-07-15Benton, John B Jr NEW28Xuxue Feng
1005Antonio T MorascaSpain2026-07-03Buckley Miller Wright PROPOSAL19Asiya Javayant
1006Clifford K StensethIndia2026-07-14Commercial Press UNQUALIFIED15Amy Elsner
1007Smith L IturbideArgentina2026-07-17Rangoni Of Florence QUALIFIED59Onyama Limba
1008Darci E KolmetzBrazil2026-07-19Commercial Press NEW29Bernardo Dominic
1009Clifford H VenereUnited Kingdom2026-07-29Rangoni Of Florence QUALIFIED86Xuxue Feng
1010Jones V InouyeUnited Kingdom2026-07-27Buckley Miller Wright NEW29Stephen Shaw
1011Julie D MacleadIndia2026-07-29Truhlar And Truhlar Attys PROPOSAL11Bernardo Dominic
1012Salvatore A NestleFrance2026-07-20Chemel, James L Cpa RENEWAL47Ioni Bowcher
1013Rodrigues H SlusarskiFrance2026-07-12Morlong Associates RENEWAL77Elwin Sharvill
1014Faith Y AmigonAustralia2026-07-13Commercial Press NEW61Amy Elsner
1015Smith G CaudyCanada2026-07-01Buckley Miller Wright QUALIFIED55Ivan Magalhaes
1016Misaki F PoquetteIndia2026-07-10Commercial Press QUALIFIED3Ioni Bowcher
1017Kaitlin H FollerArgentina2026-07-01Rousseaux, Michael Esq RENEWAL61Ioni Bowcher
1018Isabel U FlosiUnited Kingdom2026-07-10Chanay, Jeffrey A Esq UNQUALIFIED64Anna Fali
1019Juan N PaprockiIndia2026-07-16Rangoni Of Florence QUALIFIED37Onyama Limba
1020Aditya D DilliardJapan2026-07-13Rousseaux, Michael Esq PROPOSAL62Asiya Javayant
1021Octavia F TollnerArgentina2026-07-21Printing Dimensions PROPOSAL4Asiya Javayant
1022Cody Q InouyeRussia2026-07-17Feiner Bros NEGOTIATION75Amy Elsner
1023Ivar G VenereIndia2026-07-14Commercial Press RENEWAL44Anna Fali
1024Jones P RutaCanada2026-07-24Truhlar And Truhlar Attys QUALIFIED69Elwin Sharvill
1025Adams A DarakjyIndia2026-07-11King, Christopher A Esq QUALIFIED60Amy Elsner
1026Leon U WieserAustralia2026-07-02Truhlar And Truhlar Attys NEW40Amy Elsner
1027Arvin U CaldareraRussia2026-07-21Rangoni Of Florence PROPOSAL52Onyama Limba
1028Costa Z GarufiGermany2026-07-15Printing Dimensions NEGOTIATION45Onyama Limba
1029Kaitlin B PaprockiCanada2026-07-11Benton, John B Jr PROPOSAL67Amy Elsner
1030Jeanfrancois O ShinkoCanada2026-07-13Truhlar And Truhlar Attys UNQUALIFIED33Ioni Bowcher
1031Adams Z CaudyGermany2026-07-21King, Christopher A Esq PROPOSAL0Ioni Bowcher
1032Leon X GarufiGermany2026-07-01Feiner Bros QUALIFIED50Ivan Magalhaes
1033Aruna V WaycottAustralia2026-07-19Morlong Associates NEW41Asiya Javayant
1034Murillo D RulapaughIndia2026-07-01Printing Dimensions NEGOTIATION23Amy Elsner
1035Smith G FollerArgentina2026-07-13Truhlar And Truhlar Attys UNQUALIFIED32Elwin Sharvill
1036Mujtaba N MaletUnited Kingdom2026-07-01Dorl, James J Esq PROPOSAL46Bernardo Dominic
1037Sinclair Z GauchoAustralia2026-07-16Truhlar And Truhlar Attys QUALIFIED80Onyama Limba
1038Maria X MaletAustralia2026-07-08Rangoni Of Florence PROPOSAL93Asiya Javayant
1039Adams T GillianCanada2026-07-06Feltz Printing Service UNQUALIFIED46Anna Fali
1040Maria S CaldareraSpain2026-07-22Feiner Bros UNQUALIFIED61Bernardo Dominic
1041Jeanfrancois B OldroydIndia2026-07-14Chanay, Jeffrey A Esq RENEWAL96Ivan Magalhaes
1042Mujtaba C VocelkaGermany2026-07-19Rangoni Of Florence NEGOTIATION67Amy Elsner
1043Chavez D MacleadIndia2026-07-26Benton, John B Jr PROPOSAL98Amy Elsner
1044Jeanfrancois X ShinkoSpain2026-07-14Rangoni Of Florence RENEWAL38Elwin Sharvill
1045David R MaletUnited Kingdom2026-07-30Rousseaux, Michael Esq NEGOTIATION20Ivan Magalhaes
1046Faith L MaletCanada2026-07-19Feiner Bros RENEWAL63Elwin Sharvill
1047David A ShinkoJapan2026-07-09Benton, John B Jr UNQUALIFIED53Bernardo Dominic
1048Mujtaba V BologniaBrazil2026-07-25Rangoni Of Florence NEGOTIATION52Onyama Limba
1049Claire F MorascaUnited Kingdom2026-07-30Rangoni Of Florence NEGOTIATION36Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aika G FigeroaItalyAnna Fali RENEWAL
Alejandro K DoeBrazilOnyama Limba NEW
Kaitlin X InouyeSpainStephen Shaw NEW
Greenwood P ShinkoFranceIvan Magalhaes NEW
Chavez F NickaFranceOnyama Limba QUALIFIED
Ashley J RoysterIndiaStephen Shaw RENEWAL
Emily B CampainUnited KingdomIoni Bowcher RENEWAL
Deepesh P StensethCanadaIoni Bowcher UNQUALIFIED
Munro A RimSpainElwin Sharvill PROPOSAL
Maisha O AmigonArgentinaElwin Sharvill QUALIFIED
Cody I SchemmerIndiaIvan Magalhaes QUALIFIED
Deepesh S DarakjyFranceOnyama Limba UNQUALIFIED
Cody S NestleSpainAmy Elsner QUALIFIED
Aditya I StockhamFranceIvan Magalhaes NEGOTIATION
Adams P BowleyUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi V RimCanadaBernardo Dominic NEW
Cody Z BowleyArgentinaBernardo Dominic NEW
Nicolas B FollerUnited KingdomAsiya Javayant QUALIFIED
Faith Y DarakjyUnited KingdomAsiya Javayant UNQUALIFIED
Julie A CaldareraCanadaOnyama Limba UNQUALIFIED
Kadeem G AlbaresUnited KingdomBernardo Dominic NEGOTIATION
Jefferson M CampainSpainBernardo Dominic QUALIFIED
Adams I StockhamBrazilAmy Elsner NEW
Faith D WhobreySpainIoni Bowcher PROPOSAL
Silvio V DarakjyRussiaOnyama Limba QUALIFIED
Munro K ShinkoUnited KingdomStephen Shaw QUALIFIED
Izzy K BriddickAustraliaAmy Elsner NEGOTIATION
Leja K MarrierGermanyStephen Shaw RENEWAL
Jefferson S PoquetteSpainElwin Sharvill RENEWAL
Emily R VenereGermanyAsiya Javayant NEGOTIATION
Kaitlin P StensethRussiaElwin Sharvill PROPOSAL
Jones I RoysterItalyOnyama Limba QUALIFIED
Cody E WaycottItalyIvan Magalhaes NEW
Tony X PaprockiBrazilAsiya Javayant NEW
Jennifer A SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
Kaitlin E PoquetteArgentinaAsiya Javayant QUALIFIED
Darci Q CaudyCanadaAsiya Javayant NEW
Maria L DilliardJapanStephen Shaw NEW
Murillo V FigeroaAustraliaElwin Sharvill QUALIFIED
Silvio O BowleyIndiaBernardo Dominic UNQUALIFIED
Darci L GlickFranceOnyama Limba RENEWAL
Antonio T BriddickItalyOnyama Limba PROPOSAL
Aditya P MarrierJapanAmy Elsner NEGOTIATION
Nicolas J ButtSpainXuxue Feng RENEWAL
Tony J GlickFranceIvan Magalhaes QUALIFIED
Jennifer N VenereRussiaAnna Fali PROPOSAL
James R SlusarskiJapanIoni Bowcher NEW
Stacey G PoquetteUnited KingdomIoni Bowcher NEGOTIATION
Juan W SergiJapanOnyama Limba QUALIFIED
Greenwood G BowleyRussiaXuxue Feng NEGOTIATION
Frozen Columns
Name
Leon T Butt
Maria M Dilliard
Greenwood C Poquette
Leon R Kolmetz
Morrow P Whobrey
Arvin K Foller
Izzy Z Iturbide
Greenwood M Schemmer
Jefferson S Bolognia
Sinclair P Chui
Chavez M Tollner
Antonio N Nicka
Juan W Gillian
Cody S Morasca
Octavia Z Flosi
Octavia O Marrier
Kadeem H Malet
Adams N Oldroyd
Murillo Y Nestle
Mujtaba W Bowley
Aika O Dilliard
Clifford J Oldroyd
David D Bowley
Tony C Bowley
James K Figeroa
Sinclair N Venere
Adams L Wieser
Arvin D Flosi
Octavia L Tollner
Julie V Morasca
Murillo J Kusko
Sinclair J Wieser
Alejandro D Vocelka
Mayumi T Malet
Aika W Nestle
Clifford U Nestle
Adams D Perin
Aruna Z Rulapaugh
Adams Y Slusarski
Izzy S Nicka
Emily T Garufi
Sinclair O Rulapaugh
Mayumi B Shinko
Nicolas I Rulapaugh
Antonio Y Oldroyd
Tony V Venere
Jennifer P Bowley
Wickens V Figeroa
Greenwood B Kolmetz
Darci W Saylors
IdCountryDate
1000Italy2026-07-06
1001Australia2026-07-02
1002Italy2026-07-25
1003Italy2026-07-08
1004Canada2026-07-29
1005Australia2026-07-30
1006Australia2026-07-04
1007Canada2026-07-12
1008Australia2026-07-07
1009Germany2026-07-28
1010Russia2026-07-18
1011Russia2026-07-08
1012Brazil2026-07-07
1013Italy2026-07-27
1014France2026-07-12
1015France2026-07-23
1016Italy2026-07-05
1017Spain2026-07-03
1018Japan2026-07-12
1019Japan2026-07-25
1020Brazil2026-07-21
1021Japan2026-07-15
1022Canada2026-07-09
1023Japan2026-07-23
1024Spain2026-07-28
1025Canada2026-07-21
1026France2026-07-30
1027Argentina2026-07-15
1028France2026-07-03
1029India2026-07-21
1030Russia2026-07-06
1031United Kingdom2026-07-28
1032Canada2026-07-03
1033France2026-07-23
1034France2026-07-06
1035United Kingdom2026-07-19
1036Germany2026-07-24
1037France2026-07-14
1038France2026-07-16
1039Russia2026-07-25
1040Australia2026-07-18
1041Russia2026-07-19
1042India2026-07-05
1043Spain2026-07-26
1044Germany2026-07-03
1045Japan2026-07-14
1046Germany2026-07-18
1047Germany2026-07-15
1048Germany2026-07-21
1049Japan2026-07-02

On-Demand Data

NameIdCountryDate
Ricardo B Caldarera1000United Kingdom2026-07-25
Jefferson I Campain1001Brazil2026-07-06
Juan C Briddick1002Japan2026-07-20
Smith G Poquette1003United Kingdom2026-07-04
Adams Z Chui1004Spain2026-07-28
Jeanfrancois I Kolmetz1005Brazil2026-07-30
Maisha K Shinko1006Argentina2026-07-13
Rodrigues H Schemmer1007Brazil2026-07-21
Arvin V Waycott1008Argentina2026-07-18
Leja F Maclead1009Germany2026-07-02
James P Nestle1010Germany2026-07-02
Ricardo U Caldarera1011Argentina2026-07-26
Wickens E Shinko1012Russia2026-07-18
Octavia K Briddick1013Japan2026-07-03
Cody I Oldroyd1014Spain2026-07-21
Johnson J Tollner1015Russia2026-07-26
Aditya S Inouye1016Canada2026-07-03
Murillo W Albares1017Argentina2026-07-17
Stacey V Kolmetz1018Spain2026-07-04
Silvio S Garufi1019Australia2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey W StensethAustraliaAsiya Javayant NEW
Wickens A CampainSpainAnna Fali NEGOTIATION
Salvatore E RimCanadaAmy Elsner NEGOTIATION
Clifford H FollerSpainIvan Magalhaes NEGOTIATION
Claire W OstroskyRussiaBernardo Dominic NEW
Arvin J RulapaughRussiaIvan Magalhaes NEGOTIATION
Aika Q OstroskyGermanyAmy Elsner NEW
Leon K IturbideJapanXuxue Feng RENEWAL
Mujtaba N MacleadItalyIoni Bowcher QUALIFIED
Murillo Y MacleadSpainOnyama Limba PROPOSAL
Stacey H MaletUnited KingdomOnyama Limba PROPOSAL
James G DarakjyArgentinaAmy Elsner NEW
Juan W MarrierFranceElwin Sharvill QUALIFIED
Darci U OstroskyFranceBernardo Dominic NEGOTIATION
Chavez C StockhamUnited KingdomElwin Sharvill QUALIFIED
Aika O TollnerIndiaIvan Magalhaes NEW
Tony J WhobreyGermanyOnyama Limba NEGOTIATION
Cody D RimItalyAnna Fali QUALIFIED
Izzy V BologniaFranceOnyama Limba NEW
Arvin I AmigonSpainStephen Shaw QUALIFIED
Morrow F WhobreyItalyIoni Bowcher NEGOTIATION
Kadeem B GauchoRussiaAmy Elsner PROPOSAL
Deepesh F RutaItalyIoni Bowcher RENEWAL
Deepesh L KolmetzItalyAsiya Javayant NEW
Darci K MorascaArgentinaAmy Elsner RENEWAL
Antonio S PoquetteJapanXuxue Feng RENEWAL
David I OldroydBrazilIoni Bowcher PROPOSAL
Mayumi S WieserArgentinaAnna Fali UNQUALIFIED
Morrow U SlusarskiUnited KingdomXuxue Feng NEW
Adams T BowleyItalyIoni Bowcher RENEWAL
Izzy D FlosiJapanAnna Fali QUALIFIED
Aruna I ButtSpainXuxue Feng QUALIFIED
Salvatore H CaudyBrazilAnna Fali PROPOSAL
Murillo B SergiCanadaOnyama Limba RENEWAL
Alejandro G GauchoUnited KingdomOnyama Limba RENEWAL
Nicolas E GauchoFranceBernardo Dominic NEW
Arvin G TollnerUnited KingdomElwin Sharvill PROPOSAL
Jones E RoysterItalyAmy Elsner RENEWAL
Silvio P StensethGermanyStephen Shaw PROPOSAL
Leja J GarufiGermanyIoni Bowcher 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>