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
Isabel F VocelkaCanadaOnyama Limba PROPOSAL
Octavia Y RutaArgentinaBernardo Dominic UNQUALIFIED
Mayumi K BowleyJapanIvan Magalhaes UNQUALIFIED
Murillo O GarufiRussiaBernardo Dominic QUALIFIED
Aika X GarufiGermanyIoni Bowcher RENEWAL
Munro Z RutaGermanyIvan Magalhaes NEGOTIATION
Antonio J SergiFranceAmy Elsner UNQUALIFIED
Claire V ButtItalyOnyama Limba QUALIFIED
Francesco X FigeroaGermanyAnna Fali QUALIFIED
Jones X KolmetzArgentinaBernardo Dominic RENEWAL
Misaki J VocelkaArgentinaIvan Magalhaes NEW
Stacey H GauchoItalyStephen Shaw NEW
Sinclair F PerinArgentinaOnyama Limba PROPOSAL
Maria F FollerAustraliaAmy Elsner NEGOTIATION
Salvatore R GarufiBrazilXuxue Feng NEGOTIATION
Octavia I MacleadFranceOnyama Limba RENEWAL
Aika K PoquetteJapanOnyama Limba NEW
Faith F FigeroaCanadaOnyama Limba NEW
Leon Y FerenczCanadaOnyama Limba NEW
Greenwood O StockhamGermanyAsiya Javayant NEW
Juan K NickaFranceAsiya Javayant PROPOSAL
Ashley U RimItalyElwin Sharvill NEGOTIATION
James D OldroydFranceXuxue Feng NEW
Morrow A OstroskyFranceOnyama Limba UNQUALIFIED
Cody Y WhobreyUnited KingdomIoni Bowcher PROPOSAL
Maisha U BologniaArgentinaStephen Shaw NEW
Wickens Z InouyeGermanyIoni Bowcher UNQUALIFIED
Clifford P MarrierBrazilElwin Sharvill NEGOTIATION
Johnson M InouyeItalyAmy Elsner NEW
Ricardo F SchemmerItalyIvan Magalhaes NEGOTIATION
Aika L SchemmerAustraliaAmy Elsner PROPOSAL
James H ButtSpainIvan Magalhaes NEGOTIATION
Octavia C VenereJapanAmy Elsner UNQUALIFIED
Stacey P PerinItalyAsiya Javayant NEGOTIATION
Ashley S SergiUnited KingdomIoni Bowcher UNQUALIFIED
Leja J DarakjyCanadaElwin Sharvill PROPOSAL
Munro R SaylorsUnited KingdomElwin Sharvill NEGOTIATION
Kadeem V SaylorsItalyAmy Elsner NEW
Claire T MorascaBrazilAmy Elsner NEW
Morrow X DilliardGermanyIvan Magalhaes PROPOSAL
Antonio S ChuiFranceXuxue Feng NEGOTIATION
Maisha A RimUnited KingdomAsiya Javayant PROPOSAL
Aika X GarufiJapanIvan Magalhaes PROPOSAL
Octavia L SaylorsJapanAmy Elsner PROPOSAL
Ashley Y RutaUnited KingdomOnyama Limba RENEWAL
Morrow H StensethSpainElwin Sharvill NEW
Mujtaba A ChuiArgentinaXuxue Feng PROPOSAL
Tony G FerenczUnited KingdomElwin Sharvill UNQUALIFIED
Munro I TollnerUnited KingdomIvan Magalhaes PROPOSAL
Ricardo X SlusarskiGermanyOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa E SchemmerAustraliaAsiya Javayant RENEWAL
Juan Y SergiFranceXuxue Feng RENEWAL
Costa D KuskoIndiaIvan Magalhaes PROPOSAL
Mujtaba E SergiJapanAmy Elsner NEGOTIATION
Chavez J FigeroaFranceOnyama Limba NEGOTIATION
Deepesh J NickaSpainIvan Magalhaes QUALIFIED
Sinclair Q SaylorsJapanXuxue Feng QUALIFIED
Mujtaba B GauchoFranceXuxue Feng QUALIFIED
Julie H GillianUnited KingdomIvan Magalhaes NEGOTIATION
Smith M VocelkaFranceAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford M BriddickGermany2025-05-26King, Christopher A Esq NEW53Xuxue Feng
1001Murillo S MaletRussia2025-05-22King, Christopher A Esq PROPOSAL77Xuxue Feng
1002Clifford T FlosiCanada2025-05-21Buckley Miller Wright UNQUALIFIED91Onyama Limba
1003Costa T MorascaFrance2025-06-03Truhlar And Truhlar Attys QUALIFIED28Amy Elsner
1004Murillo D MorascaFrance2025-06-02Chanay, Jeffrey A Esq NEW35Anna Fali
1005Aruna O PoquetteGermany2025-06-14Chanay, Jeffrey A Esq NEGOTIATION83Bernardo Dominic
1006David I CaldareraFrance2025-06-08Benton, John B Jr RENEWAL87Asiya Javayant
1007Sinclair G SergiAustralia2025-06-03Morlong Associates RENEWAL37Amy Elsner
1008Faith O VenereJapan2025-06-13Printing Dimensions QUALIFIED59Anna Fali
1009Rodrigues J SlusarskiJapan2025-05-23Feiner Bros UNQUALIFIED82Bernardo Dominic
1010Jeanfrancois R WaycottCanada2025-05-18Chemel, James L Cpa PROPOSAL5Amy Elsner
1011Kaitlin K SaylorsArgentina2025-06-16Chapman, Ross E Esq UNQUALIFIED46Elwin Sharvill
1012Maisha N PoquetteGermany2025-05-25Buckley Miller Wright UNQUALIFIED13Bernardo Dominic
1013Adams N OstroskyItaly2025-05-31Chemel, James L Cpa UNQUALIFIED36Anna Fali
1014Johnson M SlusarskiItaly2025-06-10Dorl, James J Esq NEW31Onyama Limba
1015Leon W WieserItaly2025-06-05Chanay, Jeffrey A Esq NEW39Ivan Magalhaes
1016Chavez C MaletFrance2025-06-16Printing Dimensions NEW25Anna Fali
1017Greenwood O CaudyItaly2025-06-05King, Christopher A Esq NEW23Onyama Limba
1018Mujtaba M AlbaresBrazil2025-06-08Commercial Press NEGOTIATION36Onyama Limba
1019Ashley R MarrierAustralia2025-06-08Feiner Bros NEGOTIATION46Ivan Magalhaes
1020Julie Z ChuiJapan2025-05-28Chemel, James L Cpa NEW31Ivan Magalhaes
1021Chavez J FollerItaly2025-06-03Chemel, James L Cpa PROPOSAL88Ioni Bowcher
1022Faith N WieserUnited Kingdom2025-05-18Rangoni Of Florence QUALIFIED67Onyama Limba
1023Johnson C MacleadSpain2025-06-06Rangoni Of Florence NEW82Ivan Magalhaes
1024Johnson A IturbideItaly2025-06-08Rangoni Of Florence UNQUALIFIED9Ioni Bowcher
1025Rodrigues W WhobreyAustralia2025-06-04Rangoni Of Florence NEGOTIATION13Amy Elsner
1026Kaitlin B CampainIndia2025-06-14Feltz Printing Service PROPOSAL15Stephen Shaw
1027Adams V CaudySpain2025-05-24Commercial Press UNQUALIFIED93Bernardo Dominic
1028Salvatore D VocelkaCanada2025-05-25Feiner Bros NEGOTIATION23Xuxue Feng
1029Claire O BologniaArgentina2025-06-15Feltz Printing Service QUALIFIED78Asiya Javayant
1030Morrow K GillianUnited Kingdom2025-06-07Truhlar And Truhlar Attys UNQUALIFIED3Anna Fali
1031Morrow K BriddickAustralia2025-05-18Truhlar And Truhlar Attys QUALIFIED79Stephen Shaw
1032Clifford L MaletCanada2025-05-30Truhlar And Truhlar Attys NEGOTIATION26Ioni Bowcher
1033Johnson D MorascaIndia2025-06-16Feiner Bros QUALIFIED31Onyama Limba
1034Octavia I StockhamUnited Kingdom2025-06-05Chapman, Ross E Esq RENEWAL95Asiya Javayant
1035Maisha P MaletFrance2025-06-04King, Christopher A Esq QUALIFIED86Bernardo Dominic
1036Octavia P TollnerBrazil2025-05-23Feltz Printing Service UNQUALIFIED89Anna Fali
1037Adams V RulapaughIndia2025-06-12Buckley Miller Wright RENEWAL40Amy Elsner
1038Octavia I BriddickSpain2025-05-31Morlong Associates PROPOSAL74Anna Fali
1039Munro K MaletAustralia2025-05-31Buckley Miller Wright UNQUALIFIED71Ioni Bowcher
1040Faith N PerinCanada2025-06-04Dorl, James J Esq RENEWAL80Amy Elsner
1041Jefferson Q BriddickBrazil2025-05-25Truhlar And Truhlar Attys UNQUALIFIED12Stephen Shaw
1042Antonio S MaletBrazil2025-05-26Chapman, Ross E Esq QUALIFIED87Elwin Sharvill
1043Faith U ShinkoFrance2025-05-20King, Christopher A Esq QUALIFIED99Stephen Shaw
1044Claire G AmigonUnited Kingdom2025-05-29Morlong Associates RENEWAL39Bernardo Dominic
1045Nicolas D RoysterUnited Kingdom2025-05-26Chanay, Jeffrey A Esq PROPOSAL66Anna Fali
1046Stacey J CaldareraFrance2025-05-27Dorl, James J Esq RENEWAL89Stephen Shaw
1047Jennifer L NickaFrance2025-06-02Buckley Miller Wright PROPOSAL41Bernardo Dominic
1048Tony L FerenczUnited Kingdom2025-06-10Buckley Miller Wright QUALIFIED34Elwin Sharvill
1049Alejandro E RoysterBrazil2025-06-07Rangoni Of Florence PROPOSAL90Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jennifer Y SergiIndiaIoni Bowcher UNQUALIFIED
Octavia R MaletFranceElwin Sharvill QUALIFIED
Isabel X MacleadSpainAnna Fali UNQUALIFIED
Isabel J SaylorsRussiaIvan Magalhaes QUALIFIED
Jefferson T DilliardArgentinaAmy Elsner NEW
Tony P CaldareraItalyAmy Elsner NEGOTIATION
Jones W PaprockiCanadaIoni Bowcher QUALIFIED
Stacey P SergiJapanXuxue Feng NEGOTIATION
Adams K PerinUnited KingdomStephen Shaw QUALIFIED
Clifford D DilliardArgentinaElwin Sharvill QUALIFIED
Mayumi U RimCanadaAmy Elsner NEW
Ricardo U FerenczFranceBernardo Dominic NEW
Jones U ButtBrazilXuxue Feng RENEWAL
Ashley R OstroskyItalyBernardo Dominic NEGOTIATION
Aditya U FigeroaAustraliaIoni Bowcher RENEWAL
Ivar D RulapaughItalyStephen Shaw RENEWAL
Cody K RulapaughFranceStephen Shaw PROPOSAL
Maria H StensethGermanyBernardo Dominic UNQUALIFIED
Juan F BriddickGermanyStephen Shaw RENEWAL
Cody Y MorascaArgentinaAmy Elsner UNQUALIFIED
Isabel S WaycottCanadaIoni Bowcher QUALIFIED
Jennifer H VenereAustraliaXuxue Feng NEGOTIATION
Wickens J WhobreySpainBernardo Dominic PROPOSAL
Costa B KuskoIndiaStephen Shaw NEGOTIATION
Faith Z CampainRussiaAsiya Javayant QUALIFIED
David B KuskoAustraliaAnna Fali QUALIFIED
Mujtaba X PerinSpainAmy Elsner RENEWAL
Kadeem R SchemmerUnited KingdomIoni Bowcher NEW
Julie G OldroydGermanyOnyama Limba NEW
Ivar I BologniaAustraliaAmy Elsner RENEWAL
Cody M MorascaUnited KingdomBernardo Dominic NEW
Aika X PoquetteJapanAsiya Javayant NEW
Rodrigues P GlickFranceIoni Bowcher PROPOSAL
Claire T OstroskyFranceAnna Fali QUALIFIED
Misaki A GauchoRussiaIvan Magalhaes PROPOSAL
Mujtaba H GlickAustraliaIvan Magalhaes UNQUALIFIED
Ivar Y RoysterFranceStephen Shaw QUALIFIED
Alejandro Z PaprockiSpainAnna Fali NEW
Deepesh J DarakjySpainIvan Magalhaes RENEWAL
Claire Y CaldareraIndiaIoni Bowcher PROPOSAL
Claire I FerenczFranceBernardo Dominic NEW
Munro C KolmetzArgentinaIvan Magalhaes RENEWAL
Adams U VocelkaCanadaAnna Fali NEW
Munro Y FlosiGermanyIoni Bowcher QUALIFIED
Arvin I SaylorsFranceAmy Elsner NEGOTIATION
Smith B TollnerIndiaElwin Sharvill PROPOSAL
Ivar N AlbaresCanadaAsiya Javayant NEW
Francesco K CaudyArgentinaIvan Magalhaes RENEWAL
Mayumi E FlosiBrazilOnyama Limba PROPOSAL
Salvatore T FerenczBrazilOnyama Limba PROPOSAL
Frozen Columns
Name
Maisha U Kusko
Sinclair Y Iturbide
Ashley L Sergi
Deepesh R Campain
Alejandro C Rulapaugh
Salvatore W Glick
James P Bowley
Faith W Bowley
David T Paprocki
Nicolas S Figeroa
Murillo B Saylors
Alejandro M Whobrey
Johnson K Schemmer
Wickens N Foller
Ricardo X Shinko
Jennifer F Inouye
Ivar N Bolognia
Claire M Bolognia
Jones Q Perin
Ivar C Malet
Chavez U Poquette
Antonio O Waycott
James W Venere
Munro M Nicka
Munro O Gillian
Claire C Morasca
Mayumi K Kolmetz
Mujtaba S Ferencz
Claire R Waycott
Aditya A Gillian
Ashley A Flosi
David U Chui
Maisha E Venere
Antonio Z Slusarski
Juan X Venere
David H Inouye
Mayumi P Darakjy
Morrow M Kusko
Ricardo C Butt
Isabel N Maclead
Jennifer A Paprocki
Aika B Foller
Isabel O Saylors
Alejandro W Ruta
Clifford Y Inouye
Jennifer I Perin
Claire R Caudy
Alejandro F Shinko
Wickens P Figeroa
Aika B Chui
IdCountryDate
1000Russia2025-06-13
1001Italy2025-06-06
1002Russia2025-06-13
1003Spain2025-05-18
1004Japan2025-06-14
1005India2025-05-22
1006Australia2025-06-14
1007Brazil2025-06-01
1008France2025-05-31
1009Argentina2025-05-26
1010Russia2025-06-13
1011Brazil2025-05-19
1012Argentina2025-05-24
1013Canada2025-06-15
1014United Kingdom2025-06-12
1015India2025-06-06
1016Canada2025-05-20
1017Germany2025-05-20
1018Italy2025-06-05
1019Japan2025-05-28
1020Russia2025-05-24
1021Germany2025-05-24
1022Spain2025-06-03
1023Italy2025-05-28
1024United Kingdom2025-06-14
1025Russia2025-05-20
1026Canada2025-05-24
1027Canada2025-06-16
1028Australia2025-06-11
1029Argentina2025-06-14
1030Italy2025-06-09
1031Brazil2025-06-04
1032Brazil2025-06-07
1033United Kingdom2025-06-11
1034Italy2025-06-04
1035Japan2025-06-10
1036Argentina2025-06-07
1037Argentina2025-05-27
1038Canada2025-06-14
1039Russia2025-05-22
1040Brazil2025-06-12
1041Canada2025-06-15
1042Argentina2025-05-31
1043Italy2025-05-26
1044Germany2025-05-27
1045Argentina2025-06-08
1046Italy2025-05-22
1047France2025-06-12
1048Canada2025-05-20
1049Canada2025-06-06

On-Demand Data

NameIdCountryDate
Rodrigues P Inouye1000Japan2025-05-19
Silvio A Paprocki1001Brazil2025-05-29
Darci H Wieser1002India2025-05-19
David N Inouye1003Russia2025-05-24
Costa Q Foller1004France2025-06-05
Cody A Venere1005Italy2025-06-16
Kadeem A Briddick1006India2025-06-13
Jones Z Slusarski1007France2025-05-22
Johnson H Malet1008Italy2025-05-22
Rodrigues U Nicka1009Australia2025-06-16
Emily G Kusko1010Spain2025-06-02
Claire P Ferencz1011India2025-05-30
James Z Sergi1012Japan2025-05-19
Jones D Darakjy1013Argentina2025-05-22
Wickens I Iturbide1014Russia2025-05-28
Wickens S Ruta1015Brazil2025-05-18
Sinclair F Albares1016Japan2025-06-01
Aditya H Shinko1017Spain2025-05-31
Leja W Bolognia1018Australia2025-05-25
Jones Q Stenseth1019Brazil2025-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood X AlbaresCanadaXuxue Feng NEW
Ricardo Q ShinkoAustraliaXuxue Feng UNQUALIFIED
Greenwood K GlickFranceIoni Bowcher PROPOSAL
Wickens X OldroydIndiaAnna Fali QUALIFIED
Darci U WaycottArgentinaIoni Bowcher NEW
Morrow R SchemmerFranceStephen Shaw UNQUALIFIED
James K VenereJapanBernardo Dominic PROPOSAL
Munro M RutaFranceAsiya Javayant PROPOSAL
Mujtaba S MarrierGermanyAsiya Javayant RENEWAL
Jennifer I BriddickUnited KingdomOnyama Limba NEW
David Z DilliardArgentinaStephen Shaw PROPOSAL
Isabel N CampainRussiaIvan Magalhaes RENEWAL
Izzy O IturbideArgentinaXuxue Feng QUALIFIED
Francesco F KolmetzCanadaElwin Sharvill NEGOTIATION
Leja P NickaJapanOnyama Limba QUALIFIED
Salvatore Z StockhamJapanBernardo Dominic UNQUALIFIED
Clifford G DarakjyBrazilAsiya Javayant RENEWAL
Ricardo Y KuskoItalyStephen Shaw QUALIFIED
Leon S PerinRussiaElwin Sharvill NEGOTIATION
Maria B AlbaresJapanAsiya Javayant NEW
Arvin O FollerUnited KingdomStephen Shaw NEGOTIATION
Cody B AmigonItalyBernardo Dominic PROPOSAL
Aruna S MarrierGermanyElwin Sharvill UNQUALIFIED
Alejandro Q RimJapanStephen Shaw PROPOSAL
Alejandro X GillianCanadaIoni Bowcher PROPOSAL
Smith H NickaBrazilXuxue Feng UNQUALIFIED
Kaitlin X CaudyUnited KingdomElwin Sharvill PROPOSAL
Adams U PerinCanadaAsiya Javayant RENEWAL
Silvio Q RutaArgentinaIvan Magalhaes PROPOSAL
Maisha U OstroskyUnited KingdomAmy Elsner NEW
Mujtaba G InouyeIndiaIoni Bowcher RENEWAL
Aditya I GarufiBrazilIoni Bowcher NEW
Johnson Z OstroskyAustraliaAmy Elsner NEW
Maisha G MacleadAustraliaOnyama Limba NEGOTIATION
Nicolas J BowleyIndiaElwin Sharvill PROPOSAL
Smith D GlickRussiaXuxue Feng UNQUALIFIED
Francesco N ShinkoItalyIvan Magalhaes NEGOTIATION
Maria T StensethItalyAnna Fali NEGOTIATION
Maria F VocelkaAustraliaOnyama Limba UNQUALIFIED
Octavia P StensethIndiaXuxue Feng 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>