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
Wickens U KolmetzSpainElwin Sharvill NEGOTIATION
Sinclair U BologniaBrazilAsiya Javayant RENEWAL
Nicolas N InouyeUnited KingdomIoni Bowcher NEGOTIATION
Julie C WieserCanadaStephen Shaw QUALIFIED
Arvin B SchemmerJapanOnyama Limba UNQUALIFIED
Kaitlin N ButtCanadaElwin Sharvill NEW
Costa W BologniaRussiaXuxue Feng QUALIFIED
Octavia N AlbaresJapanAnna Fali QUALIFIED
Kaitlin A AmigonIndiaBernardo Dominic NEGOTIATION
Mujtaba F FigeroaArgentinaXuxue Feng NEW
Silvio X DarakjyUnited KingdomElwin Sharvill NEW
Jones V StockhamFranceIvan Magalhaes NEGOTIATION
Leon W KolmetzAustraliaAsiya Javayant RENEWAL
Murillo H KolmetzArgentinaIoni Bowcher RENEWAL
Ivar K TollnerUnited KingdomAsiya Javayant PROPOSAL
Emily E InouyeGermanyIoni Bowcher QUALIFIED
Tony T VocelkaAustraliaStephen Shaw RENEWAL
Smith R VenereItalyAmy Elsner NEGOTIATION
David M VenereAustraliaAnna Fali QUALIFIED
Maisha X NickaFranceIoni Bowcher NEW
Clifford I DarakjyAustraliaElwin Sharvill UNQUALIFIED
Aruna F DarakjyGermanyIoni Bowcher NEW
Nicolas A MaletBrazilXuxue Feng PROPOSAL
David S PaprockiBrazilAnna Fali RENEWAL
Mayumi R FlosiRussiaIvan Magalhaes NEW
Deepesh G MarrierFranceStephen Shaw RENEWAL
Francesco R RutaUnited KingdomBernardo Dominic QUALIFIED
Deepesh O RulapaughAustraliaXuxue Feng NEW
Jefferson V RulapaughSpainElwin Sharvill PROPOSAL
Mayumi V WaycottItalyIvan Magalhaes QUALIFIED
Francesco J SchemmerSpainBernardo Dominic NEGOTIATION
Tony L CaudyRussiaElwin Sharvill QUALIFIED
Kadeem W DilliardItalyXuxue Feng NEW
Murillo C KuskoRussiaIoni Bowcher UNQUALIFIED
Izzy X SlusarskiArgentinaAnna Fali UNQUALIFIED
Smith B StockhamFranceOnyama Limba NEGOTIATION
Kadeem S BologniaAustraliaElwin Sharvill NEW
Wickens D PerinIndiaAsiya Javayant UNQUALIFIED
Leon M DilliardBrazilElwin Sharvill PROPOSAL
Ricardo O IturbideIndiaXuxue Feng QUALIFIED
Maisha P GillianGermanyAmy Elsner PROPOSAL
Claire T GlickCanadaBernardo Dominic NEGOTIATION
Johnson M BologniaIndiaXuxue Feng RENEWAL
Tony X VenereSpainOnyama Limba RENEWAL
Tony C SergiJapanOnyama Limba NEGOTIATION
Leon E GillianRussiaOnyama Limba PROPOSAL
Sinclair X FigeroaUnited KingdomIoni Bowcher NEGOTIATION
Julie P RutaItalyIvan Magalhaes RENEWAL
Aditya Y OldroydSpainIoni Bowcher RENEWAL
Silvio E RulapaughJapanAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Deepesh W StensethGermanyBernardo Dominic PROPOSAL
Julie N SergiAustraliaIvan Magalhaes QUALIFIED
Silvio F BowleyCanadaIvan Magalhaes NEGOTIATION
Octavia Q ButtJapanAnna Fali NEGOTIATION
Salvatore K RulapaughCanadaXuxue Feng NEW
Alejandro V MaletCanadaAmy Elsner PROPOSAL
Antonio F DarakjyFranceXuxue Feng RENEWAL
Deepesh P WhobreyIndiaElwin Sharvill QUALIFIED
Adams J MorascaCanadaIoni Bowcher QUALIFIED
Johnson H AmigonJapanXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez S MarrierSpain2026-08-03Printing Dimensions NEGOTIATION62Asiya Javayant
1001Antonio F BologniaRussia2026-08-02Rousseaux, Michael Esq PROPOSAL88Stephen Shaw
1002Johnson C MorascaItaly2026-07-28Commercial Press QUALIFIED49Ioni Bowcher
1003Wickens A SchemmerSpain2026-07-20Morlong Associates UNQUALIFIED72Ivan Magalhaes
1004Deepesh G BowleyAustralia2026-07-28Buckley Miller Wright PROPOSAL88Anna Fali
1005Alejandro Y RulapaughJapan2026-07-17Feltz Printing Service NEW15Ioni Bowcher
1006Jefferson V RulapaughArgentina2026-08-11Printing Dimensions QUALIFIED35Stephen Shaw
1007Darci H SchemmerBrazil2026-08-12Dorl, James J Esq UNQUALIFIED23Bernardo Dominic
1008Johnson M FerenczIndia2026-08-02King, Christopher A Esq RENEWAL84Onyama Limba
1009Rodrigues I CaldareraCanada2026-08-02Chapman, Ross E Esq NEGOTIATION94Asiya Javayant
1010Chavez P DoeJapan2026-08-13Dorl, James J Esq RENEWAL54Onyama Limba
1011Clifford O OldroydRussia2026-08-09Rousseaux, Michael Esq PROPOSAL50Elwin Sharvill
1012Clifford L StockhamJapan2026-07-16Chapman, Ross E Esq RENEWAL60Amy Elsner
1013Mayumi U IturbideGermany2026-08-13Truhlar And Truhlar Attys NEW71Ioni Bowcher
1014Leon P NickaGermany2026-08-04Printing Dimensions NEGOTIATION92Xuxue Feng
1015Antonio M ShinkoRussia2026-08-04Chapman, Ross E Esq PROPOSAL75Ivan Magalhaes
1016Costa H KolmetzUnited Kingdom2026-08-03Chapman, Ross E Esq NEW13Onyama Limba
1017Ricardo C MarrierSpain2026-07-26Buckley Miller Wright RENEWAL66Xuxue Feng
1018Ivar N GillianFrance2026-07-19Rousseaux, Michael Esq UNQUALIFIED77Ivan Magalhaes
1019Sinclair R BowleyAustralia2026-07-29Chapman, Ross E Esq UNQUALIFIED96Onyama Limba
1020Kadeem W NestleItaly2026-08-06Feltz Printing Service RENEWAL21Asiya Javayant
1021Deepesh U WhobreyFrance2026-07-27Chanay, Jeffrey A Esq PROPOSAL34Onyama Limba
1022Silvio W RimRussia2026-08-12Printing Dimensions RENEWAL46Anna Fali
1023Misaki T NestleBrazil2026-07-26Rangoni Of Florence QUALIFIED12Amy Elsner
1024Octavia Q MarrierBrazil2026-07-29Chanay, Jeffrey A Esq NEGOTIATION10Ioni Bowcher
1025Clifford L MorascaFrance2026-07-23Chapman, Ross E Esq PROPOSAL51Elwin Sharvill
1026Adams W NickaCanada2026-08-01Morlong Associates RENEWAL99Onyama Limba
1027Leon T FerenczUnited Kingdom2026-08-09Buckley Miller Wright NEW30Ioni Bowcher
1028Julie K TollnerItaly2026-07-19Rousseaux, Michael Esq QUALIFIED14Amy Elsner
1029Octavia D PerinFrance2026-08-07Rousseaux, Michael Esq NEGOTIATION12Xuxue Feng
1030Wickens A ButtBrazil2026-07-17Buckley Miller Wright UNQUALIFIED11Bernardo Dominic
1031James P VocelkaItaly2026-08-14Rousseaux, Michael Esq QUALIFIED46Xuxue Feng
1032Nicolas C KuskoItaly2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED65Amy Elsner
1033Jefferson P OldroydRussia2026-07-24Feltz Printing Service RENEWAL36Elwin Sharvill
1034Emily A InouyeFrance2026-07-31Rangoni Of Florence RENEWAL49Stephen Shaw
1035Cody Q NickaSpain2026-07-16Feiner Bros NEW44Stephen Shaw
1036Juan H BriddickSpain2026-07-30Printing Dimensions NEGOTIATION37Stephen Shaw
1037Julie V FollerItaly2026-08-07Chanay, Jeffrey A Esq QUALIFIED15Anna Fali
1038Faith Z AmigonSpain2026-07-18Feiner Bros NEW97Amy Elsner
1039Octavia O DoeIndia2026-08-13Rangoni Of Florence NEGOTIATION69Stephen Shaw
1040Murillo F GauchoFrance2026-08-10Buckley Miller Wright RENEWAL8Stephen Shaw
1041Aditya C GauchoAustralia2026-07-21Commercial Press QUALIFIED70Amy Elsner
1042Chavez Y SchemmerCanada2026-07-20Chanay, Jeffrey A Esq PROPOSAL20Bernardo Dominic
1043Octavia V KolmetzJapan2026-08-07Feiner Bros UNQUALIFIED46Onyama Limba
1044Julie L RutaBrazil2026-08-09Feiner Bros NEGOTIATION40Asiya Javayant
1045Leja Y NickaIndia2026-08-03Chemel, James L Cpa UNQUALIFIED77Amy Elsner
1046Arvin N ChuiSpain2026-08-13King, Christopher A Esq QUALIFIED59Bernardo Dominic
1047Francesco D ButtRussia2026-07-22Chanay, Jeffrey A Esq QUALIFIED47Amy Elsner
1048Salvatore C AlbaresJapan2026-07-29Chemel, James L Cpa UNQUALIFIED70Ivan Magalhaes
1049Silvio B GauchoGermany2026-08-11Feltz Printing Service PROPOSAL95Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Arvin A FigeroaIndiaBernardo Dominic NEW
Jeanfrancois P FigeroaAustraliaAsiya Javayant RENEWAL
Ivar I StockhamAustraliaBernardo Dominic PROPOSAL
Cody R GauchoAustraliaAnna Fali RENEWAL
Izzy C StensethItalyStephen Shaw NEGOTIATION
Antonio P KuskoBrazilIoni Bowcher UNQUALIFIED
Ashley J MaletArgentinaXuxue Feng QUALIFIED
Silvio T WaycottCanadaAnna Fali NEGOTIATION
Jones Q BologniaGermanyXuxue Feng NEW
Tony Y GarufiFranceXuxue Feng NEW
James I GillianGermanyAnna Fali RENEWAL
Mujtaba T IturbideSpainOnyama Limba QUALIFIED
Maisha J KolmetzCanadaOnyama Limba UNQUALIFIED
Arvin B InouyeUnited KingdomOnyama Limba NEW
Ivar Y WieserArgentinaOnyama Limba NEW
Juan B KolmetzGermanyXuxue Feng QUALIFIED
Munro C DoeFranceAmy Elsner RENEWAL
Darci F NestleFranceIoni Bowcher NEW
Nicolas G CampainBrazilXuxue Feng PROPOSAL
Aditya J DilliardJapanAsiya Javayant NEW
Costa M VenereArgentinaXuxue Feng NEW
Alejandro I BriddickAustraliaBernardo Dominic NEW
Cody P ButtGermanyElwin Sharvill RENEWAL
Faith P FollerJapanBernardo Dominic QUALIFIED
Alejandro V CampainRussiaAnna Fali NEGOTIATION
Stacey O MarrierRussiaAnna Fali PROPOSAL
Aruna N MarrierCanadaIoni Bowcher QUALIFIED
Costa M FigeroaJapanIoni Bowcher QUALIFIED
Adams Z NestleSpainIvan Magalhaes PROPOSAL
Rodrigues Z StensethGermanyBernardo Dominic QUALIFIED
Chavez I NickaFranceElwin Sharvill UNQUALIFIED
Wickens R WieserArgentinaBernardo Dominic QUALIFIED
Jones B WieserSpainAsiya Javayant UNQUALIFIED
Alejandro F RutaBrazilXuxue Feng PROPOSAL
Ivar F RoysterUnited KingdomAmy Elsner NEGOTIATION
Ricardo G TollnerGermanyAsiya Javayant PROPOSAL
James J GauchoCanadaOnyama Limba QUALIFIED
Aika K NickaJapanElwin Sharvill NEW
Isabel S MarrierItalyXuxue Feng NEW
Murillo W MorascaFranceAsiya Javayant PROPOSAL
Octavia W BriddickCanadaOnyama Limba UNQUALIFIED
Adams S StockhamJapanAmy Elsner UNQUALIFIED
Rodrigues W BriddickGermanyStephen Shaw NEGOTIATION
Jeanfrancois I InouyeItalyIvan Magalhaes PROPOSAL
Maria N FlosiCanadaOnyama Limba RENEWAL
Silvio M InouyeJapanIvan Magalhaes NEGOTIATION
Claire B NickaJapanAnna Fali NEW
Mujtaba W RulapaughJapanIvan Magalhaes QUALIFIED
Leja K BowleyGermanyOnyama Limba RENEWAL
Clifford W FlosiSpainIvan Magalhaes RENEWAL
Frozen Columns
Name
Alejandro R Darakjy
Leja U Royster
Francesco E Stockham
Ivar B Royster
Salvatore P Poquette
Kadeem V Sergi
Ivar B Gaucho
Silvio H Stockham
Wickens Y Campain
Stacey O Gillian
Julie Q Stenseth
Mujtaba V Malet
Silvio Y Stockham
Jennifer W Foller
Munro Z Saylors
Kaitlin D Shinko
Emily U Paprocki
Emily G Dilliard
Ivar C Caldarera
Alejandro B Darakjy
Silvio Z Kolmetz
Aditya N Ferencz
Silvio A Ferencz
Maria X Waycott
Greenwood I Perin
James T Vocelka
Arvin T Albares
Misaki Q Garufi
Ivar M Campain
David S Tollner
Johnson L Paprocki
Cody E Wieser
Misaki G Briddick
Clifford U Kusko
Rodrigues M Inouye
Misaki X Marrier
Mujtaba Y Gillian
Ricardo P Stockham
Octavia Q Darakjy
Mayumi Y Bowley
Mujtaba P Oldroyd
Smith M Foller
Clifford D Venere
Silvio A Amigon
Murillo H Marrier
Juan P Foller
Antonio P Marrier
Octavia A Perin
Costa F Waycott
Stacey T Morasca
IdCountryDate
1000France2026-08-04
1001Russia2026-07-25
1002Australia2026-08-14
1003Japan2026-07-20
1004Spain2026-07-18
1005Brazil2026-07-31
1006Spain2026-07-23
1007Brazil2026-08-13
1008Spain2026-07-31
1009Argentina2026-08-03
1010Canada2026-08-02
1011Brazil2026-08-11
1012India2026-08-09
1013Italy2026-07-23
1014Russia2026-08-05
1015India2026-07-19
1016Germany2026-08-11
1017Germany2026-08-03
1018Spain2026-07-24
1019Japan2026-07-26
1020Japan2026-08-06
1021France2026-07-17
1022France2026-08-04
1023Germany2026-08-02
1024Australia2026-08-01
1025France2026-07-26
1026Germany2026-07-31
1027Japan2026-07-31
1028Canada2026-08-10
1029United Kingdom2026-07-28
1030Japan2026-07-16
1031United Kingdom2026-08-03
1032Australia2026-07-27
1033Germany2026-08-03
1034France2026-08-03
1035Japan2026-07-21
1036Australia2026-08-02
1037United Kingdom2026-07-26
1038Italy2026-07-17
1039Japan2026-07-21
1040Spain2026-08-02
1041Japan2026-07-17
1042Spain2026-08-05
1043Canada2026-08-12
1044India2026-07-28
1045Italy2026-07-19
1046Russia2026-08-06
1047Canada2026-08-11
1048Canada2026-08-02
1049Spain2026-07-24

On-Demand Data

NameIdCountryDate
Ashley N Ruta1000Spain2026-08-14
Izzy C Stockham1001France2026-07-16
Francesco W Sergi1002Spain2026-07-19
Julie R Albares1003India2026-08-05
Kadeem W Ruta1004India2026-07-25
Aruna V Caudy1005Germany2026-08-12
Isabel H Marrier1006United Kingdom2026-08-03
Ashley L Ferencz1007Canada2026-07-22
Claire F Perin1008France2026-08-08
Leon A Stockham1009Italy2026-07-20
Kaitlin C Maclead1010Brazil2026-07-22
Aika I Malet1011Spain2026-08-13
Deepesh H Chui1012France2026-07-28
Francesco Z Perin1013Japan2026-08-13
Ivar J Nicka1014Canada2026-08-13
Maisha M Saylors1015Canada2026-08-14
Chavez Y Oldroyd1016India2026-07-19
Jefferson L Venere1017India2026-08-01
Antonio J Kolmetz1018Germany2026-07-27
Wickens Z Kusko1019Brazil2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas G DilliardFranceElwin Sharvill NEGOTIATION
Chavez C BologniaCanadaIvan Magalhaes UNQUALIFIED
Costa R CaudyArgentinaAmy Elsner NEW
Sinclair B SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Greenwood S TollnerJapanAsiya Javayant PROPOSAL
Alejandro M StensethItalyBernardo Dominic NEW
Nicolas G StockhamBrazilAnna Fali QUALIFIED
Claire D SchemmerArgentinaXuxue Feng NEW
Aika H MorascaJapanAmy Elsner NEW
Costa Y RimBrazilAsiya Javayant NEW
Costa V AmigonGermanyBernardo Dominic RENEWAL
Ivar R PerinJapanIoni Bowcher NEW
Kadeem W FollerSpainOnyama Limba PROPOSAL
Aika X OldroydFranceAmy Elsner UNQUALIFIED
Aditya R CaudyCanadaAsiya Javayant NEGOTIATION
Emily K MacleadUnited KingdomXuxue Feng RENEWAL
Alejandro I GillianRussiaOnyama Limba PROPOSAL
Alejandro M StockhamAustraliaBernardo Dominic RENEWAL
Morrow B VocelkaRussiaBernardo Dominic UNQUALIFIED
Ricardo Q AmigonItalyElwin Sharvill PROPOSAL
Murillo K TollnerSpainBernardo Dominic UNQUALIFIED
Octavia I RoysterUnited KingdomIoni Bowcher NEGOTIATION
Izzy V ChuiJapanAnna Fali UNQUALIFIED
Emily H FlosiUnited KingdomOnyama Limba RENEWAL
Isabel V FlosiArgentinaAsiya Javayant RENEWAL
Kadeem W RimJapanOnyama Limba UNQUALIFIED
Faith L BriddickSpainAmy Elsner RENEWAL
Mujtaba D GarufiArgentinaElwin Sharvill QUALIFIED
Ricardo C RoysterSpainAnna Fali QUALIFIED
Silvio C SaylorsGermanyStephen Shaw RENEWAL
Munro H CampainGermanyBernardo Dominic RENEWAL
Juan W DilliardUnited KingdomAnna Fali RENEWAL
David Y SchemmerCanadaStephen Shaw NEW
Silvio E GillianArgentinaAnna Fali QUALIFIED
Aika W CaudyJapanOnyama Limba UNQUALIFIED
Kadeem G VenereBrazilIvan Magalhaes UNQUALIFIED
Mayumi Y GarufiJapanXuxue Feng NEGOTIATION
Kadeem A OstroskyGermanyIvan Magalhaes NEGOTIATION
Ricardo G NickaFranceXuxue Feng PROPOSAL
Silvio X WieserGermanyStephen Shaw 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>