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
Nicolas V MorascaItalyXuxue Feng NEGOTIATION
Murillo B RutaGermanyAnna Fali NEW
Misaki O VocelkaItalyAmy Elsner NEW
Leon W GauchoAustraliaAmy Elsner NEGOTIATION
Darci V FerenczRussiaOnyama Limba PROPOSAL
Alejandro I CaldareraArgentinaIoni Bowcher QUALIFIED
Maria Q WhobreyItalyElwin Sharvill UNQUALIFIED
Kadeem S TollnerGermanyStephen Shaw PROPOSAL
Tony C AmigonItalyIoni Bowcher NEGOTIATION
Stacey Y AlbaresRussiaElwin Sharvill UNQUALIFIED
Isabel N IturbideJapanIoni Bowcher RENEWAL
Izzy X WieserArgentinaAsiya Javayant PROPOSAL
Alejandro T SaylorsIndiaOnyama Limba RENEWAL
Jefferson W ShinkoIndiaAsiya Javayant NEW
Aditya Y SlusarskiGermanyOnyama Limba QUALIFIED
Salvatore U StockhamAustraliaXuxue Feng PROPOSAL
David T PaprockiAustraliaIvan Magalhaes NEGOTIATION
Misaki I SergiJapanOnyama Limba NEGOTIATION
Salvatore Y GillianRussiaOnyama Limba NEW
Johnson P RutaIndiaIvan Magalhaes UNQUALIFIED
Adams H SchemmerRussiaElwin Sharvill PROPOSAL
Ivar Y KuskoItalyAmy Elsner UNQUALIFIED
Kadeem W AmigonBrazilXuxue Feng UNQUALIFIED
Aditya X FlosiGermanyXuxue Feng RENEWAL
Greenwood R SaylorsSpainXuxue Feng PROPOSAL
Maria K SchemmerGermanyAmy Elsner NEGOTIATION
Maisha L FlosiRussiaAsiya Javayant NEGOTIATION
Faith H DilliardFranceAsiya Javayant UNQUALIFIED
Faith C DoeCanadaXuxue Feng QUALIFIED
Murillo Y ChuiJapanIvan Magalhaes NEGOTIATION
Jones U RutaSpainXuxue Feng NEGOTIATION
David R SlusarskiUnited KingdomIoni Bowcher UNQUALIFIED
Adams I GillianIndiaIvan Magalhaes UNQUALIFIED
Emily M RutaAustraliaIoni Bowcher NEW
Mayumi P SchemmerArgentinaOnyama Limba UNQUALIFIED
Johnson O RimJapanElwin Sharvill NEGOTIATION
Claire S DarakjyFranceIoni Bowcher NEW
Greenwood F ChuiBrazilAmy Elsner UNQUALIFIED
Mujtaba C ShinkoItalyAsiya Javayant RENEWAL
Rodrigues Q KuskoFranceAmy Elsner PROPOSAL
Greenwood S InouyeGermanyAsiya Javayant NEGOTIATION
Antonio Q NickaCanadaStephen Shaw PROPOSAL
Stacey K NickaCanadaAnna Fali RENEWAL
Rodrigues Q AlbaresJapanBernardo Dominic UNQUALIFIED
Claire N BowleyBrazilAmy Elsner RENEWAL
Juan H CampainItalyIoni Bowcher UNQUALIFIED
Jeanfrancois G SchemmerFranceIoni Bowcher NEGOTIATION
Misaki R InouyeItalyOnyama Limba UNQUALIFIED
Salvatore N CampainGermanyBernardo Dominic NEW
Octavia C BriddickSpainIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan G StockhamRussiaAnna Fali PROPOSAL
Jennifer Q StockhamFranceIvan Magalhaes UNQUALIFIED
Leon U RimArgentinaIoni Bowcher RENEWAL
Jefferson U RimJapanBernardo Dominic PROPOSAL
Clifford O RutaCanadaIoni Bowcher UNQUALIFIED
Ivar Z ChuiAustraliaAmy Elsner RENEWAL
Julie B FigeroaJapanElwin Sharvill UNQUALIFIED
David I OldroydUnited KingdomAnna Fali NEGOTIATION
Maria L NestleUnited KingdomIoni Bowcher PROPOSAL
Wickens F StockhamItalyIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David B InouyeFrance2026-07-27King, Christopher A Esq QUALIFIED84Bernardo Dominic
1001Cody B PerinJapan2026-07-28Chapman, Ross E Esq UNQUALIFIED46Stephen Shaw
1002Tony F CampainIndia2026-07-18Chemel, James L Cpa RENEWAL43Stephen Shaw
1003Arvin T MaletCanada2026-07-07Rangoni Of Florence QUALIFIED8Stephen Shaw
1004Aditya P DilliardArgentina2026-07-16Rousseaux, Michael Esq NEW43Anna Fali
1005Leja A BologniaFrance2026-07-18Benton, John B Jr RENEWAL98Onyama Limba
1006Clifford A AlbaresArgentina2026-07-14Rousseaux, Michael Esq UNQUALIFIED33Asiya Javayant
1007Jones P GlickSpain2026-07-07Benton, John B Jr QUALIFIED25Ivan Magalhaes
1008Ricardo V AlbaresAustralia2026-07-14Commercial Press QUALIFIED34Ioni Bowcher
1009Jefferson J TollnerIndia2026-07-09Printing Dimensions UNQUALIFIED18Stephen Shaw
1010Misaki A VocelkaAustralia2026-07-31Buckley Miller Wright RENEWAL5Ivan Magalhaes
1011Sinclair O MacleadFrance2026-07-10Dorl, James J Esq NEGOTIATION46Ioni Bowcher
1012Jones L MorascaUnited Kingdom2026-07-25Rousseaux, Michael Esq QUALIFIED69Anna Fali
1013Ricardo F RulapaughItaly2026-07-31Chemel, James L Cpa NEW55Onyama Limba
1014Ricardo Q ChuiFrance2026-07-03Feltz Printing Service NEGOTIATION48Ivan Magalhaes
1015Maria T TollnerArgentina2026-07-28Rousseaux, Michael Esq NEGOTIATION4Asiya Javayant
1016Aika B PaprockiGermany2026-07-15Chapman, Ross E Esq UNQUALIFIED38Amy Elsner
1017Ivar Y GlickFrance2026-07-18Printing Dimensions QUALIFIED38Onyama Limba
1018Isabel J NestleSpain2026-07-02Dorl, James J Esq UNQUALIFIED19Onyama Limba
1019Jennifer F DilliardAustralia2026-07-08King, Christopher A Esq RENEWAL92Anna Fali
1020Clifford N KuskoAustralia2026-07-30Commercial Press NEGOTIATION14Anna Fali
1021Morrow Z ButtArgentina2026-07-20Feiner Bros QUALIFIED62Bernardo Dominic
1022Mayumi U GillianCanada2026-07-11Dorl, James J Esq NEW36Amy Elsner
1023Maisha U VenereUnited Kingdom2026-07-03Printing Dimensions RENEWAL96Asiya Javayant
1024Rodrigues A GlickBrazil2026-07-15Feltz Printing Service NEGOTIATION71Anna Fali
1025Octavia N WaycottIndia2026-07-28Chapman, Ross E Esq UNQUALIFIED43Asiya Javayant
1026Johnson R MarrierAustralia2026-07-31Buckley Miller Wright PROPOSAL43Anna Fali
1027Aditya P MaletJapan2026-07-13Morlong Associates QUALIFIED17Elwin Sharvill
1028Jones M KuskoRussia2026-07-29Buckley Miller Wright NEGOTIATION39Amy Elsner
1029Leon C ChuiGermany2026-07-13Chapman, Ross E Esq PROPOSAL99Onyama Limba
1030Silvio R PaprockiIndia2026-07-31Truhlar And Truhlar Attys QUALIFIED61Ioni Bowcher
1031Clifford U KolmetzGermany2026-07-04Feltz Printing Service NEW89Elwin Sharvill
1032Alejandro H CaldareraAustralia2026-07-27Rangoni Of Florence RENEWAL47Xuxue Feng
1033Tony T NickaIndia2026-07-18Morlong Associates QUALIFIED6Xuxue Feng
1034Nicolas H MaletSpain2026-07-03Buckley Miller Wright RENEWAL58Asiya Javayant
1035Claire L PerinSpain2026-07-26Chapman, Ross E Esq PROPOSAL82Xuxue Feng
1036Nicolas Z WaycottCanada2026-07-03Chapman, Ross E Esq NEW70Bernardo Dominic
1037Johnson P NestleRussia2026-07-06Truhlar And Truhlar Attys PROPOSAL74Anna Fali
1038Smith T DilliardGermany2026-07-26Morlong Associates QUALIFIED35Xuxue Feng
1039Misaki Y MorascaCanada2026-07-16Rangoni Of Florence NEGOTIATION51Stephen Shaw
1040Sinclair A AmigonFrance2026-07-02Feltz Printing Service NEW51Onyama Limba
1041Octavia K DoeSpain2026-07-24Benton, John B Jr QUALIFIED63Asiya Javayant
1042Smith I MorascaUnited Kingdom2026-07-12Dorl, James J Esq UNQUALIFIED1Xuxue Feng
1043Ashley K GarufiArgentina2026-07-25Truhlar And Truhlar Attys NEW56Bernardo Dominic
1044Alejandro A WaycottGermany2026-07-29Truhlar And Truhlar Attys PROPOSAL36Stephen Shaw
1045Juan R DilliardRussia2026-07-27Feltz Printing Service UNQUALIFIED3Amy Elsner
1046Misaki E MorascaBrazil2026-07-06Chemel, James L Cpa PROPOSAL12Stephen Shaw
1047Adams F FlosiJapan2026-07-25Chemel, James L Cpa UNQUALIFIED11Asiya Javayant
1048Ricardo E CaldareraRussia2026-07-14Dorl, James J Esq RENEWAL26Anna Fali
1049Smith L IturbideGermany2026-07-29Chapman, Ross E Esq NEW33Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Faith H FigeroaCanadaBernardo Dominic NEW
Leja F VocelkaBrazilElwin Sharvill QUALIFIED
Smith D SlusarskiFranceXuxue Feng RENEWAL
Darci G OldroydAustraliaIvan Magalhaes NEGOTIATION
Mujtaba O DarakjyGermanyIvan Magalhaes NEGOTIATION
Darci F ChuiJapanXuxue Feng RENEWAL
Emily O NestleArgentinaAnna Fali NEW
Stacey H SchemmerItalyBernardo Dominic NEGOTIATION
Nicolas C VocelkaJapanIvan Magalhaes PROPOSAL
Leon U DarakjyUnited KingdomXuxue Feng QUALIFIED
Aditya A DoeUnited KingdomStephen Shaw RENEWAL
Jennifer X MacleadRussiaAmy Elsner UNQUALIFIED
Misaki D GlickJapanOnyama Limba RENEWAL
Ricardo P FlosiItalyXuxue Feng NEGOTIATION
Kadeem C ChuiCanadaBernardo Dominic NEGOTIATION
Isabel H MaletSpainXuxue Feng UNQUALIFIED
Chavez K VenereGermanyAmy Elsner PROPOSAL
Aika S RulapaughIndiaAsiya Javayant NEW
Greenwood G ShinkoIndiaIvan Magalhaes NEGOTIATION
Emily Z RutaFranceAnna Fali NEGOTIATION
Jones U SchemmerSpainBernardo Dominic QUALIFIED
Maisha H CaudyGermanyBernardo Dominic RENEWAL
Antonio R StockhamGermanyAsiya Javayant UNQUALIFIED
Ricardo Q WaycottRussiaElwin Sharvill NEW
Mayumi Y BriddickCanadaOnyama Limba QUALIFIED
Ivar J CaldareraIndiaIoni Bowcher NEW
Octavia B BriddickFranceOnyama Limba PROPOSAL
Smith M FigeroaBrazilStephen Shaw RENEWAL
Izzy J ShinkoJapanBernardo Dominic NEGOTIATION
Francesco X RoysterCanadaElwin Sharvill RENEWAL
Adams W VenereSpainAnna Fali PROPOSAL
James N NickaGermanyElwin Sharvill PROPOSAL
Morrow C WaycottIndiaBernardo Dominic NEW
Ricardo F FigeroaBrazilIvan Magalhaes QUALIFIED
Alejandro K FerenczItalyXuxue Feng PROPOSAL
Chavez D AlbaresGermanyElwin Sharvill NEW
Isabel Q GarufiJapanStephen Shaw RENEWAL
Salvatore Z ButtAustraliaAmy Elsner UNQUALIFIED
Morrow Q WhobreyAustraliaBernardo Dominic UNQUALIFIED
Maisha K AmigonGermanyStephen Shaw PROPOSAL
Deepesh O PerinItalyXuxue Feng RENEWAL
James R RoysterItalyElwin Sharvill NEGOTIATION
Octavia T PoquetteBrazilAsiya Javayant NEGOTIATION
James H TollnerCanadaBernardo Dominic QUALIFIED
Juan S NestleGermanyAsiya Javayant NEW
Munro D SergiBrazilXuxue Feng NEW
Misaki F SergiBrazilAmy Elsner PROPOSAL
Wickens J OldroydRussiaAnna Fali NEGOTIATION
Munro F SaylorsIndiaAnna Fali RENEWAL
Julie J MorascaIndiaStephen Shaw QUALIFIED
Frozen Columns
Name
Ashley R Whobrey
Emily D Oldroyd
Adams E Nestle
Murillo A Doe
Ashley A Gillian
Cody M Ferencz
Maisha F Foller
Aruna H Royster
Jennifer A Albares
Adams O Perin
Darci R Shinko
Francesco B Nicka
Silvio A Iturbide
Wickens W Perin
Ricardo L Glick
Arvin E Figeroa
Sinclair X Bowley
Jennifer L Rulapaugh
Juan X Amigon
Johnson K Flosi
Ricardo E Doe
David R Whobrey
Ivar E Flosi
Munro W Whobrey
Ivar Y Slusarski
Cody I Shinko
Chavez N Darakjy
Maisha K Schemmer
Izzy G Venere
Darci B Inouye
Francesco Q Caldarera
Ivar Y Kusko
Clifford M Stockham
Costa P Butt
Misaki A Bolognia
Antonio M Slusarski
Leja H Nicka
Antonio N Dilliard
Munro U Saylors
Julie A Caldarera
David Z Rulapaugh
Silvio U Amigon
Aruna W Ferencz
Julie M Schemmer
Isabel M Garufi
Murillo R Stenseth
Wickens V Saylors
Clifford A Oldroyd
Maria G Flosi
Antonio D Glick
IdCountryDate
1000Russia2026-07-15
1001Germany2026-07-27
1002United Kingdom2026-07-19
1003India2026-07-17
1004Australia2026-07-26
1005United Kingdom2026-07-14
1006Canada2026-07-05
1007Russia2026-07-20
1008India2026-07-12
1009Japan2026-07-16
1010United Kingdom2026-07-19
1011Italy2026-07-09
1012Canada2026-07-16
1013Italy2026-07-23
1014Brazil2026-07-18
1015India2026-07-06
1016Brazil2026-07-11
1017Germany2026-07-24
1018Italy2026-07-03
1019Argentina2026-07-27
1020Canada2026-07-28
1021Japan2026-07-29
1022Russia2026-07-05
1023France2026-07-03
1024France2026-07-30
1025Italy2026-07-11
1026Russia2026-07-14
1027Italy2026-07-11
1028Russia2026-07-20
1029Spain2026-07-19
1030Australia2026-07-14
1031Spain2026-07-24
1032India2026-07-24
1033Brazil2026-07-22
1034Germany2026-07-13
1035Russia2026-07-26
1036Australia2026-07-09
1037Canada2026-07-05
1038Spain2026-07-16
1039Canada2026-07-02
1040United Kingdom2026-07-13
1041Australia2026-07-09
1042Australia2026-07-25
1043United Kingdom2026-07-29
1044Italy2026-07-21
1045France2026-07-10
1046United Kingdom2026-07-13
1047United Kingdom2026-07-21
1048Russia2026-07-23
1049Germany2026-07-29

On-Demand Data

NameIdCountryDate
Smith H Kolmetz1000Japan2026-07-11
Nicolas X Oldroyd1001Russia2026-07-24
Antonio R Glick1002Canada2026-07-16
Mujtaba I Campain1003France2026-07-06
Juan M Maclead1004Australia2026-07-03
Sinclair Y Albares1005United Kingdom2026-07-29
Antonio H Paprocki1006Argentina2026-07-16
Aruna F Stockham1007Japan2026-07-02
Claire J Gaucho1008Japan2026-07-10
Aditya V Saylors1009Spain2026-07-17
Smith P Butt1010Canada2026-07-27
Smith I Rim1011France2026-07-23
Ashley H Wieser1012Japan2026-07-07
Jefferson B Saylors1013India2026-07-14
Izzy U Malet1014Russia2026-07-29
Mujtaba W Iturbide1015France2026-07-13
Costa C Campain1016India2026-07-10
Mayumi D Malet1017Germany2026-07-15
Aika R Bowley1018Russia2026-07-22
Ricardo Q Glick1019Canada2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika Q NestleAustraliaIvan Magalhaes UNQUALIFIED
Jefferson E BowleyCanadaAnna Fali QUALIFIED
Julie L CampainGermanyStephen Shaw NEW
Rodrigues C BologniaUnited KingdomAsiya Javayant NEW
Aditya N VenereAustraliaOnyama Limba UNQUALIFIED
Chavez T MaletFranceAsiya Javayant QUALIFIED
Darci I IturbideAustraliaXuxue Feng NEW
Alejandro I GauchoIndiaStephen Shaw UNQUALIFIED
Maisha K GlickItalyStephen Shaw NEW
Smith I RutaUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois H DilliardBrazilXuxue Feng QUALIFIED
Maisha X PoquetteRussiaBernardo Dominic NEW
Kadeem Y NickaBrazilIoni Bowcher NEW
Maisha F DilliardItalyXuxue Feng UNQUALIFIED
Chavez A MorascaAustraliaElwin Sharvill NEGOTIATION
Alejandro M CampainCanadaBernardo Dominic NEW
Munro C PoquetteAustraliaAnna Fali QUALIFIED
Kaitlin C IturbideAustraliaXuxue Feng QUALIFIED
Sinclair Y WieserJapanStephen Shaw UNQUALIFIED
Nicolas H StockhamCanadaAmy Elsner RENEWAL
Stacey Y DilliardArgentinaElwin Sharvill NEW
Aruna P WhobreySpainIvan Magalhaes UNQUALIFIED
Maisha J WieserUnited KingdomIoni Bowcher UNQUALIFIED
Antonio D SergiArgentinaBernardo Dominic RENEWAL
David S MaletGermanyOnyama Limba NEGOTIATION
Morrow D VocelkaArgentinaStephen Shaw PROPOSAL
Aruna L BowleyIndiaOnyama Limba NEW
Faith J FlosiItalyAsiya Javayant RENEWAL
Greenwood E KolmetzItalyAmy Elsner PROPOSAL
Maisha P FigeroaItalyStephen Shaw NEGOTIATION
Chavez F SaylorsJapanAsiya Javayant QUALIFIED
Mayumi A SchemmerFranceIoni Bowcher RENEWAL
Maisha L NickaCanadaAmy Elsner NEW
Mayumi H CaudyGermanyAmy Elsner RENEWAL
Aika A FerenczSpainAnna Fali QUALIFIED
Sinclair E WieserJapanAsiya Javayant UNQUALIFIED
Nicolas H MorascaSpainIoni Bowcher PROPOSAL
Jefferson I OldroydSpainAmy Elsner QUALIFIED
Costa B IturbideArgentinaElwin Sharvill NEW
Francesco O SchemmerGermanyOnyama 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>