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
Rodrigues Z PoquetteBrazilOnyama Limba NEGOTIATION
Stacey R RoysterItalyBernardo Dominic UNQUALIFIED
Emily C AlbaresSpainStephen Shaw NEGOTIATION
Silvio L ButtItalyElwin Sharvill RENEWAL
Claire V StensethGermanyBernardo Dominic PROPOSAL
Izzy F ButtJapanAmy Elsner QUALIFIED
Smith U MarrierCanadaAsiya Javayant RENEWAL
Sinclair I GarufiFranceIoni Bowcher QUALIFIED
Ricardo J FigeroaGermanyIvan Magalhaes RENEWAL
Nicolas K BologniaAustraliaXuxue Feng NEW
Salvatore T VenereSpainBernardo Dominic RENEWAL
David Q FollerJapanAsiya Javayant PROPOSAL
Ivar F FigeroaArgentinaOnyama Limba NEGOTIATION
Murillo Q StockhamCanadaAsiya Javayant NEGOTIATION
Ashley V DilliardGermanyOnyama Limba RENEWAL
Mujtaba I MarrierRussiaXuxue Feng PROPOSAL
Silvio B GarufiItalyIvan Magalhaes RENEWAL
Johnson L CaldareraAustraliaStephen Shaw QUALIFIED
Salvatore B TollnerItalyAnna Fali UNQUALIFIED
James Q CaldareraRussiaAsiya Javayant PROPOSAL
Arvin Q DilliardFranceXuxue Feng QUALIFIED
Greenwood R RutaArgentinaStephen Shaw QUALIFIED
Kaitlin S DarakjyAustraliaOnyama Limba NEW
Leja T SchemmerUnited KingdomXuxue Feng QUALIFIED
Silvio T BriddickItalyAmy Elsner UNQUALIFIED
Kaitlin O MaletJapanAnna Fali QUALIFIED
Jones B CaudyFranceAmy Elsner NEGOTIATION
Jefferson K MaletIndiaBernardo Dominic UNQUALIFIED
Antonio M DoeRussiaXuxue Feng UNQUALIFIED
Claire M DoeJapanBernardo Dominic NEGOTIATION
Antonio T CampainCanadaAsiya Javayant NEGOTIATION
Arvin S SlusarskiBrazilElwin Sharvill QUALIFIED
Alejandro G BriddickSpainIoni Bowcher NEW
Deepesh P BriddickIndiaElwin Sharvill NEW
Jefferson F MaletUnited KingdomBernardo Dominic UNQUALIFIED
Adams L StockhamRussiaOnyama Limba NEW
Tony M DoeItalyStephen Shaw RENEWAL
Faith A IturbideGermanyAsiya Javayant NEW
Maisha W InouyeBrazilAmy Elsner UNQUALIFIED
Salvatore A PerinArgentinaIvan Magalhaes NEW
Isabel B AlbaresGermanyStephen Shaw UNQUALIFIED
Ivar G BowleyBrazilAsiya Javayant UNQUALIFIED
Arvin R PerinRussiaStephen Shaw PROPOSAL
Greenwood R KolmetzAustraliaStephen Shaw NEGOTIATION
Francesco B MacleadRussiaXuxue Feng PROPOSAL
Clifford L OldroydItalyAmy Elsner PROPOSAL
Emily X PaprockiIndiaOnyama Limba UNQUALIFIED
Nicolas L FollerFranceAmy Elsner NEGOTIATION
Claire U RimUnited KingdomOnyama Limba NEGOTIATION
Aditya S CampainArgentinaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Misaki S ShinkoUnited KingdomElwin Sharvill RENEWAL
Sinclair F TollnerJapanIoni Bowcher UNQUALIFIED
Munro L AmigonCanadaIvan Magalhaes RENEWAL
Clifford X IturbideRussiaBernardo Dominic NEGOTIATION
Darci G MaletBrazilBernardo Dominic NEGOTIATION
Arvin M InouyeJapanOnyama Limba NEW
Francesco Z OldroydFranceIvan Magalhaes UNQUALIFIED
Leja P SchemmerRussiaAsiya Javayant NEW
Rodrigues R VenereSpainAnna Fali QUALIFIED
Leon Q PerinArgentinaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez H RulapaughSpain2026-06-17Truhlar And Truhlar Attys RENEWAL21Asiya Javayant
1001Isabel Z DilliardUnited Kingdom2026-07-09Chemel, James L Cpa NEW41Xuxue Feng
1002David X WaycottBrazil2026-06-25Feltz Printing Service RENEWAL4Xuxue Feng
1003Ivar B GlickItaly2026-07-05Rangoni Of Florence UNQUALIFIED73Bernardo Dominic
1004Cody B WaycottJapan2026-06-27Buckley Miller Wright NEGOTIATION71Ivan Magalhaes
1005Darci E BologniaSpain2026-07-14Feltz Printing Service PROPOSAL71Stephen Shaw
1006Sinclair V VenereJapan2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED75Bernardo Dominic
1007Kaitlin C KuskoItaly2026-07-01Rangoni Of Florence QUALIFIED89Ioni Bowcher
1008Kaitlin D MorascaUnited Kingdom2026-06-30Chapman, Ross E Esq NEW82Bernardo Dominic
1009Smith U AlbaresAustralia2026-06-16Chanay, Jeffrey A Esq PROPOSAL41Asiya Javayant
1010Johnson I StockhamRussia2026-06-27Truhlar And Truhlar Attys NEW55Elwin Sharvill
1011Leja W WaycottCanada2026-07-04Chapman, Ross E Esq NEGOTIATION38Stephen Shaw
1012Francesco G MacleadSpain2026-07-10Benton, John B Jr NEGOTIATION92Ivan Magalhaes
1013Emily Q RulapaughIndia2026-06-20Printing Dimensions NEW1Onyama Limba
1014Izzy O WhobreyFrance2026-06-27Buckley Miller Wright NEGOTIATION52Elwin Sharvill
1015Emily T RulapaughSpain2026-06-26Chanay, Jeffrey A Esq QUALIFIED39Stephen Shaw
1016Ashley O CaldareraRussia2026-07-06Chapman, Ross E Esq NEGOTIATION50Anna Fali
1017Octavia C InouyeCanada2026-07-01Rousseaux, Michael Esq UNQUALIFIED30Anna Fali
1018Izzy B DarakjyFrance2026-06-21Buckley Miller Wright NEGOTIATION89Onyama Limba
1019Mujtaba A RutaFrance2026-07-10Feiner Bros PROPOSAL47Onyama Limba
1020Izzy C ButtItaly2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED85Xuxue Feng
1021Jones Z AmigonJapan2026-07-03Printing Dimensions PROPOSAL92Bernardo Dominic
1022Maisha Q SlusarskiJapan2026-06-22Rousseaux, Michael Esq NEGOTIATION35Onyama Limba
1023Kaitlin O AlbaresSpain2026-07-03Dorl, James J Esq QUALIFIED49Ioni Bowcher
1024Isabel X NickaArgentina2026-07-10King, Christopher A Esq QUALIFIED47Stephen Shaw
1025David T VocelkaCanada2026-06-16Rangoni Of Florence RENEWAL30Xuxue Feng
1026Arvin E SergiGermany2026-06-22Feltz Printing Service NEGOTIATION95Xuxue Feng
1027Kaitlin L BowleyJapan2026-07-15Dorl, James J Esq NEW16Xuxue Feng
1028Jefferson Q BriddickArgentina2026-07-08Chemel, James L Cpa QUALIFIED39Xuxue Feng
1029Jeanfrancois F DoeRussia2026-06-25Buckley Miller Wright RENEWAL93Elwin Sharvill
1030Mayumi G WhobreyCanada2026-06-21Buckley Miller Wright NEGOTIATION14Elwin Sharvill
1031Tony I GlickBrazil2026-07-10Rousseaux, Michael Esq NEGOTIATION97Elwin Sharvill
1032Aruna T AmigonSpain2026-07-04Chemel, James L Cpa PROPOSAL71Asiya Javayant
1033Ashley C ShinkoFrance2026-06-30Chapman, Ross E Esq NEGOTIATION76Stephen Shaw
1034Faith T FlosiIndia2026-06-17Dorl, James J Esq NEGOTIATION0Asiya Javayant
1035Jefferson O GlickArgentina2026-06-22Printing Dimensions QUALIFIED90Onyama Limba
1036Silvio N DilliardFrance2026-07-10Morlong Associates UNQUALIFIED28Ivan Magalhaes
1037Sinclair Y GauchoRussia2026-07-12Feiner Bros NEW93Ivan Magalhaes
1038Stacey F NestleBrazil2026-07-06Chapman, Ross E Esq NEW84Ivan Magalhaes
1039Rodrigues T DilliardCanada2026-06-26Truhlar And Truhlar Attys NEGOTIATION77Onyama Limba
1040Munro Q GillianJapan2026-06-30Dorl, James J Esq NEGOTIATION15Onyama Limba
1041Smith P CaldareraUnited Kingdom2026-06-17Chemel, James L Cpa NEGOTIATION55Ivan Magalhaes
1042Deepesh M CampainUnited Kingdom2026-06-30Commercial Press PROPOSAL67Amy Elsner
1043Jones W CaldareraUnited Kingdom2026-06-21Chapman, Ross E Esq RENEWAL12Ivan Magalhaes
1044Murillo V MacleadGermany2026-06-20Rangoni Of Florence NEGOTIATION74Elwin Sharvill
1045Alejandro N IturbideUnited Kingdom2026-07-04King, Christopher A Esq QUALIFIED21Ioni Bowcher
1046Antonio L GillianItaly2026-07-12King, Christopher A Esq QUALIFIED88Anna Fali
1047Murillo G ShinkoRussia2026-07-11Buckley Miller Wright NEW51Stephen Shaw
1048Murillo M ChuiCanada2026-07-15Buckley Miller Wright QUALIFIED32Stephen Shaw
1049Mujtaba B DoeArgentina2026-07-09Chanay, Jeffrey A Esq NEGOTIATION31Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois U FlosiUnited KingdomIoni Bowcher PROPOSAL
Francesco I NestleSpainXuxue Feng RENEWAL
Smith X MaletItalyIoni Bowcher QUALIFIED
Octavia V GarufiSpainAmy Elsner QUALIFIED
Aruna I SchemmerFranceAsiya Javayant NEGOTIATION
Misaki R WaycottCanadaIoni Bowcher UNQUALIFIED
Juan B ButtAustraliaOnyama Limba NEW
Munro I StockhamCanadaIvan Magalhaes RENEWAL
Nicolas U MorascaUnited KingdomBernardo Dominic NEW
Sinclair L FollerJapanAmy Elsner QUALIFIED
Silvio R MorascaArgentinaStephen Shaw NEW
Francesco X DarakjyItalyAsiya Javayant QUALIFIED
Faith Y NestleAustraliaAmy Elsner UNQUALIFIED
Claire I DilliardBrazilAnna Fali NEW
Adams B PaprockiFranceAmy Elsner QUALIFIED
Mayumi K SergiArgentinaAsiya Javayant PROPOSAL
Munro D ShinkoRussiaAnna Fali NEW
Kaitlin F GarufiArgentinaBernardo Dominic PROPOSAL
Darci X ButtCanadaStephen Shaw NEGOTIATION
Clifford O FollerJapanAnna Fali UNQUALIFIED
Tony X DoeJapanXuxue Feng UNQUALIFIED
Faith F StensethUnited KingdomAnna Fali NEGOTIATION
Alejandro T FollerRussiaIvan Magalhaes RENEWAL
Julie L VocelkaRussiaOnyama Limba NEGOTIATION
Leon W RulapaughItalyStephen Shaw UNQUALIFIED
Isabel A PoquetteIndiaAnna Fali PROPOSAL
Cody Q MorascaUnited KingdomStephen Shaw NEW
Emily G KolmetzRussiaElwin Sharvill QUALIFIED
Ivar Z CaldareraUnited KingdomStephen Shaw NEGOTIATION
Aruna W AlbaresArgentinaOnyama Limba RENEWAL
Salvatore B CaudyCanadaOnyama Limba NEW
Chavez V RoysterGermanyAnna Fali UNQUALIFIED
Mayumi X MaletItalyElwin Sharvill NEGOTIATION
Cody J VocelkaGermanyIvan Magalhaes NEGOTIATION
Munro C BologniaArgentinaAnna Fali QUALIFIED
Francesco L DoeRussiaXuxue Feng UNQUALIFIED
Aruna A DilliardCanadaOnyama Limba NEGOTIATION
Claire N FlosiRussiaXuxue Feng UNQUALIFIED
Izzy M ButtSpainAnna Fali NEGOTIATION
Morrow P GlickUnited KingdomIoni Bowcher NEGOTIATION
Aruna P RulapaughJapanAmy Elsner QUALIFIED
Greenwood C VenereRussiaIoni Bowcher NEGOTIATION
Cody E SaylorsSpainXuxue Feng QUALIFIED
Rodrigues M ButtSpainXuxue Feng UNQUALIFIED
Francesco E SaylorsJapanElwin Sharvill RENEWAL
Francesco Y MaletIndiaElwin Sharvill UNQUALIFIED
Smith M SchemmerGermanyAsiya Javayant PROPOSAL
Johnson A OldroydBrazilOnyama Limba NEW
Francesco F MarrierUnited KingdomAsiya Javayant PROPOSAL
Nicolas Z IturbideIndiaOnyama Limba PROPOSAL
Frozen Columns
Name
James V Paprocki
Misaki E Darakjy
Wickens Y Paprocki
Kaitlin M Foller
Jeanfrancois U Glick
Chavez N Bolognia
Jones I Dilliard
Johnson J Bowley
Deepesh C Nicka
Ashley X Venere
Kadeem Y Poquette
Misaki B Ferencz
Maria P Tollner
Chavez J Morasca
Ivar N Caldarera
James G Briddick
Johnson Z Morasca
Smith X Rulapaugh
Octavia E Maclead
Ricardo J Chui
Octavia M Albares
Costa I Oldroyd
Jefferson W Ruta
Salvatore K Amigon
Stacey I Gillian
Darci B Caudy
Chavez D Flosi
Ashley C Bowley
Maria U Doe
Antonio V Glick
Kaitlin B Saylors
Jones E Iturbide
Munro Y Shinko
Morrow K Maclead
Izzy V Whobrey
Aika O Oldroyd
James R Caldarera
Smith B Darakjy
Aditya Q Foller
Jones T Malet
Maisha L Slusarski
Johnson F Caldarera
Cody M Flosi
Leon O Gaucho
Jennifer D Oldroyd
Costa L Royster
Munro O Wieser
Murillo H Albares
Kadeem Y Flosi
Ricardo X Rulapaugh
IdCountryDate
1000Brazil2026-06-30
1001Japan2026-06-27
1002Brazil2026-06-28
1003Spain2026-07-11
1004Australia2026-07-11
1005Spain2026-07-06
1006United Kingdom2026-07-02
1007Spain2026-06-28
1008Australia2026-07-12
1009Italy2026-06-20
1010Italy2026-07-01
1011Japan2026-07-11
1012France2026-07-15
1013Argentina2026-07-11
1014Germany2026-07-12
1015Spain2026-07-04
1016United Kingdom2026-07-07
1017India2026-06-22
1018India2026-07-06
1019Brazil2026-07-02
1020Italy2026-06-21
1021Italy2026-07-05
1022United Kingdom2026-07-06
1023Japan2026-06-30
1024Spain2026-07-14
1025Spain2026-06-23
1026Brazil2026-06-22
1027Australia2026-06-18
1028India2026-07-07
1029France2026-07-11
1030Argentina2026-06-30
1031India2026-07-07
1032France2026-07-11
1033Russia2026-06-26
1034Spain2026-07-11
1035Australia2026-07-04
1036India2026-06-30
1037Italy2026-07-01
1038United Kingdom2026-06-21
1039Russia2026-06-28
1040Russia2026-07-14
1041United Kingdom2026-07-14
1042Australia2026-07-08
1043Italy2026-06-28
1044France2026-07-06
1045Canada2026-06-16
1046Germany2026-07-01
1047Australia2026-07-03
1048India2026-07-06
1049Germany2026-06-25

On-Demand Data

NameIdCountryDate
Chavez X Butt1000Brazil2026-07-06
Francesco Z Darakjy1001Russia2026-07-12
Faith N Ruta1002Brazil2026-06-17
Arvin P Dilliard1003Russia2026-07-01
Jennifer F Oldroyd1004United Kingdom2026-07-10
Wickens Q Waycott1005Italy2026-07-05
James C Nestle1006France2026-07-15
Ivar J Doe1007Argentina2026-07-14
David B Ferencz1008Australia2026-06-16
Leon K Maclead1009Germany2026-06-18
Jeanfrancois C Whobrey1010Brazil2026-07-12
Rodrigues X Albares1011France2026-07-04
Ivar C Ostrosky1012Australia2026-07-05
Antonio P Slusarski1013Spain2026-06-24
Salvatore J Kolmetz1014Canada2026-07-14
Claire X Gillian1015France2026-07-11
Maria O Chui1016Argentina2026-06-30
Greenwood G Kolmetz1017Russia2026-07-12
Chavez D Kusko1018Germany2026-07-12
Claire I Perin1019Russia2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci Y MacleadArgentinaOnyama Limba QUALIFIED
Faith P BowleyItalyOnyama Limba RENEWAL
James T DoeSpainIvan Magalhaes NEW
Munro X PerinCanadaIvan Magalhaes RENEWAL
Maisha E KuskoUnited KingdomElwin Sharvill PROPOSAL
Costa S VenereRussiaAsiya Javayant NEW
Sinclair J SlusarskiFranceXuxue Feng UNQUALIFIED
James C IturbideJapanIoni Bowcher NEGOTIATION
Wickens J WieserCanadaXuxue Feng NEW
Octavia A ShinkoUnited KingdomAsiya Javayant PROPOSAL
Smith L SlusarskiUnited KingdomAnna Fali NEGOTIATION
Leja Q OstroskySpainStephen Shaw RENEWAL
Leon J AmigonFranceAnna Fali UNQUALIFIED
Jennifer Q DilliardBrazilOnyama Limba PROPOSAL
Izzy A MarrierAustraliaAsiya Javayant NEGOTIATION
Chavez J ButtUnited KingdomAmy Elsner NEW
Jones I ButtUnited KingdomAsiya Javayant PROPOSAL
Leja A MaletFranceElwin Sharvill RENEWAL
Aditya X SaylorsItalyXuxue Feng RENEWAL
Chavez C KuskoFranceIvan Magalhaes QUALIFIED
Faith E FerenczAustraliaIoni Bowcher NEW
Aruna N SergiUnited KingdomIvan Magalhaes NEGOTIATION
Leja L StockhamJapanIoni Bowcher PROPOSAL
Jeanfrancois H FlosiBrazilAsiya Javayant RENEWAL
David B ChuiFranceElwin Sharvill UNQUALIFIED
Emily B BowleySpainAmy Elsner UNQUALIFIED
Mayumi U BowleyGermanyBernardo Dominic NEW
Isabel Y StockhamUnited KingdomIoni Bowcher NEW
Leja P PerinJapanElwin Sharvill UNQUALIFIED
Cody J PaprockiSpainOnyama Limba QUALIFIED
Darci D MarrierIndiaAnna Fali RENEWAL
Morrow V ButtItalyBernardo Dominic UNQUALIFIED
David F IturbideFranceXuxue Feng RENEWAL
Salvatore A OstroskyGermanyStephen Shaw NEGOTIATION
Leon U KuskoIndiaAnna Fali QUALIFIED
Ashley X WaycottArgentinaAmy Elsner NEW
Rodrigues P StockhamBrazilXuxue Feng UNQUALIFIED
Cody E CaldareraCanadaIoni Bowcher UNQUALIFIED
Mayumi X FollerFranceXuxue Feng PROPOSAL
Arvin C VocelkaBrazilXuxue 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>