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
David Q RutaGermanyAsiya Javayant RENEWAL
Jennifer U AmigonUnited KingdomAnna Fali QUALIFIED
Leon B SaylorsBrazilStephen Shaw NEW
Francesco I SaylorsArgentinaStephen Shaw RENEWAL
Juan L OstroskyArgentinaAnna Fali RENEWAL
Clifford J VenereBrazilStephen Shaw NEGOTIATION
Aditya P PoquetteIndiaStephen Shaw UNQUALIFIED
Izzy O VocelkaJapanIvan Magalhaes RENEWAL
Leja W WieserRussiaBernardo Dominic RENEWAL
Antonio A DoeAustraliaAmy Elsner PROPOSAL
Jeanfrancois P PoquetteSpainAnna Fali NEGOTIATION
Maria Q BologniaUnited KingdomIoni Bowcher NEGOTIATION
Ashley Y GarufiFranceBernardo Dominic NEW
Emily H ButtFranceIvan Magalhaes UNQUALIFIED
Alejandro N VenereGermanyIvan Magalhaes PROPOSAL
Rodrigues Y TollnerArgentinaElwin Sharvill NEW
Sinclair E ChuiRussiaElwin Sharvill RENEWAL
Claire Y WieserFranceXuxue Feng PROPOSAL
Adams E GarufiItalyBernardo Dominic RENEWAL
Maria Q IturbideArgentinaXuxue Feng NEGOTIATION
Francesco Y GarufiBrazilBernardo Dominic NEW
Alejandro C GlickGermanyBernardo Dominic UNQUALIFIED
Cody V MaletSpainBernardo Dominic UNQUALIFIED
Tony E WhobreyUnited KingdomStephen Shaw RENEWAL
Claire H ShinkoBrazilOnyama Limba PROPOSAL
Costa Z InouyeFranceBernardo Dominic RENEWAL
Murillo O StensethUnited KingdomAnna Fali UNQUALIFIED
Sinclair O WaycottJapanBernardo Dominic NEGOTIATION
Ricardo L SlusarskiAustraliaOnyama Limba UNQUALIFIED
Kaitlin P SergiUnited KingdomStephen Shaw QUALIFIED
Morrow D WaycottFranceStephen Shaw NEW
Murillo Z GlickGermanyAmy Elsner QUALIFIED
Stacey A NestleArgentinaIoni Bowcher NEGOTIATION
Julie H ChuiArgentinaXuxue Feng RENEWAL
Ashley A MaletAustraliaBernardo Dominic QUALIFIED
Stacey K StensethFranceXuxue Feng UNQUALIFIED
Chavez Z NickaCanadaBernardo Dominic PROPOSAL
Aika Q IturbideFranceAmy Elsner UNQUALIFIED
Mayumi R StockhamFranceIvan Magalhaes QUALIFIED
Maria N KolmetzGermanyBernardo Dominic QUALIFIED
Mujtaba H ShinkoRussiaAsiya Javayant RENEWAL
Chavez H SaylorsFranceOnyama Limba PROPOSAL
Jones C VenereCanadaOnyama Limba QUALIFIED
Mayumi O OldroydBrazilIvan Magalhaes QUALIFIED
Rodrigues S DarakjyItalyIvan Magalhaes QUALIFIED
Maisha V ButtAustraliaBernardo Dominic RENEWAL
Misaki Y PaprockiUnited KingdomOnyama Limba QUALIFIED
Tony B GlickCanadaStephen Shaw PROPOSAL
Izzy B StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Darci U SlusarskiUnited KingdomElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mayumi X RutaArgentinaAmy Elsner RENEWAL
Mayumi G FerenczSpainAnna Fali UNQUALIFIED
Isabel M InouyeRussiaIvan Magalhaes PROPOSAL
Munro X GarufiAustraliaOnyama Limba UNQUALIFIED
Munro G BologniaRussiaElwin Sharvill QUALIFIED
Julie O WaycottGermanyStephen Shaw NEGOTIATION
Kaitlin G InouyeRussiaAmy Elsner RENEWAL
Johnson K SchemmerArgentinaAsiya Javayant NEW
Cody B GillianIndiaAnna Fali QUALIFIED
Smith O ChuiSpainXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio V WhobreyUnited Kingdom2026-07-22Morlong Associates PROPOSAL3Stephen Shaw
1001Jeanfrancois O GauchoArgentina2026-07-26Truhlar And Truhlar Attys NEW76Xuxue Feng
1002Wickens D CaldareraFrance2026-07-26Commercial Press PROPOSAL30Stephen Shaw
1003Maria V BologniaGermany2026-07-17Truhlar And Truhlar Attys QUALIFIED74Asiya Javayant
1004Costa C FollerGermany2026-07-28Buckley Miller Wright UNQUALIFIED7Elwin Sharvill
1005Darci S DarakjyAustralia2026-07-18Feltz Printing Service NEW39Xuxue Feng
1006David L OldroydSpain2026-07-26Morlong Associates QUALIFIED65Ivan Magalhaes
1007Faith J BologniaAustralia2026-08-02Rangoni Of Florence QUALIFIED76Xuxue Feng
1008Antonio F VenereAustralia2026-08-03Printing Dimensions QUALIFIED26Bernardo Dominic
1009Jennifer X BriddickArgentina2026-08-01King, Christopher A Esq UNQUALIFIED57Onyama Limba
1010Octavia Y FollerUnited Kingdom2026-08-02Chemel, James L Cpa UNQUALIFIED34Stephen Shaw
1011Francesco F CaudyArgentina2026-07-13Dorl, James J Esq RENEWAL21Amy Elsner
1012Greenwood J MaletJapan2026-07-14Feltz Printing Service NEW93Anna Fali
1013Antonio B RoysterCanada2026-08-09Rousseaux, Michael Esq RENEWAL61Stephen Shaw
1014Nicolas F CaudyFrance2026-08-01Chanay, Jeffrey A Esq PROPOSAL82Bernardo Dominic
1015Mujtaba Y IturbideAustralia2026-07-18Chanay, Jeffrey A Esq QUALIFIED26Stephen Shaw
1016Cody C GarufiIndia2026-07-23Dorl, James J Esq QUALIFIED56Ioni Bowcher
1017Leja X RimAustralia2026-07-17Morlong Associates PROPOSAL44Asiya Javayant
1018Francesco O FigeroaCanada2026-07-24Morlong Associates PROPOSAL15Onyama Limba
1019Rodrigues L SlusarskiSpain2026-07-20Printing Dimensions UNQUALIFIED43Ivan Magalhaes
1020Octavia S SergiRussia2026-08-08Morlong Associates UNQUALIFIED84Stephen Shaw
1021Aruna T SaylorsCanada2026-08-03Chanay, Jeffrey A Esq PROPOSAL10Amy Elsner
1022Kadeem T VenereFrance2026-07-17Rousseaux, Michael Esq PROPOSAL22Amy Elsner
1023Greenwood V RulapaughUnited Kingdom2026-08-02Dorl, James J Esq UNQUALIFIED22Ivan Magalhaes
1024Tony D FollerAustralia2026-07-25Commercial Press QUALIFIED87Onyama Limba
1025Emily Y PaprockiIndia2026-08-02Dorl, James J Esq NEW78Amy Elsner
1026Stacey Z CampainFrance2026-07-15Commercial Press QUALIFIED78Stephen Shaw
1027Morrow T VenereGermany2026-07-14Feiner Bros QUALIFIED83Amy Elsner
1028Izzy P RutaJapan2026-08-08Dorl, James J Esq QUALIFIED87Ioni Bowcher
1029Mayumi J DarakjyJapan2026-07-24Rousseaux, Michael Esq NEW75Ioni Bowcher
1030Antonio C StensethUnited Kingdom2026-07-13Commercial Press RENEWAL22Stephen Shaw
1031Jennifer X OstroskyUnited Kingdom2026-07-28King, Christopher A Esq QUALIFIED66Elwin Sharvill
1032Mayumi E VenereCanada2026-08-04Feiner Bros UNQUALIFIED15Anna Fali
1033Clifford A GlickAustralia2026-08-03Truhlar And Truhlar Attys NEW63Anna Fali
1034Wickens L BriddickArgentina2026-07-11King, Christopher A Esq RENEWAL50Xuxue Feng
1035Rodrigues J RutaArgentina2026-07-25Chapman, Ross E Esq NEW86Asiya Javayant
1036Murillo T WhobreyAustralia2026-08-02Feiner Bros UNQUALIFIED53Anna Fali
1037Leon P BowleyRussia2026-07-24Benton, John B Jr PROPOSAL26Ivan Magalhaes
1038Jeanfrancois Y MacleadIndia2026-07-29Dorl, James J Esq PROPOSAL99Bernardo Dominic
1039Antonio P GauchoRussia2026-08-06Rousseaux, Michael Esq QUALIFIED2Anna Fali
1040Morrow B InouyeIndia2026-08-05King, Christopher A Esq PROPOSAL12Amy Elsner
1041Ivar B AlbaresJapan2026-07-15Chanay, Jeffrey A Esq RENEWAL52Onyama Limba
1042Maria C MarrierArgentina2026-07-24Chapman, Ross E Esq PROPOSAL30Stephen Shaw
1043Izzy H TollnerGermany2026-08-04Commercial Press RENEWAL36Stephen Shaw
1044Adams A VenereCanada2026-08-02Truhlar And Truhlar Attys NEGOTIATION6Ivan Magalhaes
1045Jeanfrancois M SaylorsAustralia2026-07-15Feltz Printing Service QUALIFIED77Anna Fali
1046Deepesh S VenereCanada2026-07-14Truhlar And Truhlar Attys NEW93Amy Elsner
1047Aditya L OldroydSpain2026-07-25Feltz Printing Service NEGOTIATION89Asiya Javayant
1048Greenwood A GlickSpain2026-08-09Truhlar And Truhlar Attys QUALIFIED53Stephen Shaw
1049Wickens E RoysterGermany2026-07-30Dorl, James J Esq NEGOTIATION36Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues E MaletItalyXuxue Feng NEGOTIATION
Maisha B WaycottGermanyAmy Elsner NEGOTIATION
Jefferson P RulapaughJapanOnyama Limba QUALIFIED
Aditya F SchemmerArgentinaAmy Elsner NEGOTIATION
Morrow J DoeJapanIvan Magalhaes UNQUALIFIED
Octavia F ButtIndiaXuxue Feng NEGOTIATION
Morrow S SergiAustraliaElwin Sharvill NEGOTIATION
Aruna K FollerItalyBernardo Dominic NEW
Mujtaba P CaldareraItalyBernardo Dominic RENEWAL
Isabel V WieserGermanyAnna Fali UNQUALIFIED
Emily B RimIndiaBernardo Dominic UNQUALIFIED
Munro G FollerJapanStephen Shaw NEW
Mayumi O BowleySpainIoni Bowcher RENEWAL
Arvin F KuskoGermanyElwin Sharvill PROPOSAL
Rodrigues C CampainItalyBernardo Dominic NEW
Stacey B OstroskyBrazilIvan Magalhaes NEW
Aditya F PerinItalyXuxue Feng PROPOSAL
Alejandro N RulapaughItalyIoni Bowcher RENEWAL
Smith Z KolmetzUnited KingdomXuxue Feng PROPOSAL
Emily G KolmetzIndiaOnyama Limba PROPOSAL
Jefferson L AlbaresIndiaAmy Elsner RENEWAL
Silvio L CaudyItalyOnyama Limba PROPOSAL
Maisha W BologniaGermanyBernardo Dominic QUALIFIED
Juan K GillianJapanAsiya Javayant NEGOTIATION
Arvin F BriddickFranceIoni Bowcher QUALIFIED
Leja N FollerFranceOnyama Limba RENEWAL
Aditya T MacleadBrazilAnna Fali RENEWAL
Leon N GarufiCanadaOnyama Limba PROPOSAL
Nicolas G CaldareraBrazilStephen Shaw PROPOSAL
Greenwood Y VenereCanadaAsiya Javayant UNQUALIFIED
Kaitlin Y RoysterCanadaIoni Bowcher PROPOSAL
James E SaylorsArgentinaStephen Shaw PROPOSAL
Ricardo E OstroskyCanadaIoni Bowcher QUALIFIED
Aruna O AmigonSpainElwin Sharvill PROPOSAL
Nicolas H GauchoRussiaAnna Fali NEW
Jennifer R SlusarskiUnited KingdomAmy Elsner PROPOSAL
Kadeem Y DarakjyBrazilElwin Sharvill UNQUALIFIED
Mujtaba Z KuskoItalyAsiya Javayant PROPOSAL
Antonio V BowleyCanadaOnyama Limba NEGOTIATION
James R MorascaGermanyIvan Magalhaes NEW
Isabel A MaletGermanyAsiya Javayant NEW
Antonio S VocelkaArgentinaOnyama Limba PROPOSAL
David L ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Wickens D AmigonBrazilIoni Bowcher NEGOTIATION
Mujtaba E BowleyBrazilBernardo Dominic NEW
Ricardo G KolmetzCanadaAmy Elsner RENEWAL
Cody X PaprockiUnited KingdomAmy Elsner QUALIFIED
Kaitlin X NestleBrazilIvan Magalhaes NEW
Emily Y WieserRussiaOnyama Limba RENEWAL
Morrow H StockhamUnited KingdomStephen Shaw NEW
Frozen Columns
Name
Juan V Nestle
Jones Q Nicka
Salvatore R Bowley
David I Malet
Juan O Flosi
Deepesh K Sergi
Mayumi L Iturbide
Aruna E Albares
Isabel Z Slusarski
David L Briddick
Greenwood M Chui
Leja J Oldroyd
Alejandro W Schemmer
Ashley A Caldarera
Maisha K Whobrey
Munro B Bolognia
Nicolas V Figeroa
Jeanfrancois R Gillian
Greenwood W Rim
David G Chui
Adams N Darakjy
Jeanfrancois Y Kolmetz
Nicolas Z Glick
Mujtaba W Shinko
Francesco G Ruta
Alejandro I Briddick
Arvin S Ruta
Clifford V Oldroyd
Murillo Z Gillian
Ivar B Briddick
Darci Y Rulapaugh
Maisha Q Iturbide
David O Campain
Antonio O Chui
Jones B Morasca
Salvatore J Foller
Kaitlin G Amigon
James I Nestle
Stacey I Albares
Tony I Doe
Morrow K Gillian
Misaki E Venere
Smith L Amigon
Emily L Saylors
Ricardo K Chui
Maisha Y Wieser
Misaki Y Bolognia
Ashley C Oldroyd
Kadeem P Butt
Emily T Oldroyd
IdCountryDate
1000Italy2026-07-22
1001Argentina2026-07-26
1002Australia2026-07-11
1003France2026-07-15
1004Japan2026-08-07
1005Russia2026-08-02
1006Germany2026-07-24
1007France2026-07-16
1008Australia2026-07-20
1009Canada2026-07-13
1010Russia2026-07-21
1011Italy2026-07-14
1012Argentina2026-07-18
1013Italy2026-07-25
1014France2026-07-20
1015Argentina2026-07-14
1016Argentina2026-08-06
1017France2026-07-31
1018Canada2026-07-13
1019Spain2026-07-14
1020Japan2026-08-03
1021France2026-07-18
1022United Kingdom2026-07-26
1023Germany2026-07-29
1024Argentina2026-08-05
1025India2026-07-24
1026Spain2026-08-05
1027Argentina2026-07-28
1028Argentina2026-08-04
1029Italy2026-08-04
1030Spain2026-08-03
1031Brazil2026-07-19
1032France2026-07-14
1033Spain2026-07-28
1034Germany2026-07-30
1035Germany2026-07-11
1036Australia2026-07-29
1037Japan2026-08-09
1038Russia2026-08-07
1039Argentina2026-07-15
1040Italy2026-07-18
1041Canada2026-08-09
1042United Kingdom2026-08-07
1043Russia2026-08-02
1044Brazil2026-07-11
1045Brazil2026-07-15
1046Germany2026-07-18
1047Japan2026-07-22
1048Brazil2026-08-05
1049Spain2026-07-29

On-Demand Data

NameIdCountryDate
Francesco G Foller1000Canada2026-07-11
Deepesh H Caldarera1001Germany2026-07-12
Arvin X Whobrey1002Italy2026-07-27
Darci D Paprocki1003Australia2026-07-30
Clifford K Ostrosky1004Germany2026-07-16
David W Ferencz1005Italy2026-07-18
Claire L Ostrosky1006United Kingdom2026-07-30
Faith G Foller1007Italy2026-08-05
Salvatore J Caldarera1008France2026-08-09
Mujtaba I Whobrey1009Russia2026-08-06
Jeanfrancois B Stockham1010India2026-07-17
Octavia I Kolmetz1011Russia2026-07-16
Costa C Figeroa1012Canada2026-07-15
Emily K Tollner1013France2026-07-27
Leja D Campain1014India2026-07-16
Stacey B Shinko1015France2026-07-11
Munro F Dilliard1016Italy2026-08-05
Kadeem K Maclead1017Germany2026-08-06
Alejandro X Waycott1018Spain2026-07-19
Arvin D Paprocki1019Canada2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer A MarrierArgentinaAnna Fali PROPOSAL
Izzy K BriddickJapanAmy Elsner NEW
Aruna L ButtJapanAmy Elsner NEGOTIATION
Emily Y ChuiFranceElwin Sharvill NEW
Mayumi N MorascaGermanyAsiya Javayant RENEWAL
Leja X FigeroaCanadaXuxue Feng RENEWAL
Isabel Z SchemmerItalyElwin Sharvill QUALIFIED
Nicolas E MacleadIndiaXuxue Feng NEW
Maria C KolmetzItalyAsiya Javayant UNQUALIFIED
Jefferson R NestleAustraliaOnyama Limba PROPOSAL
Ashley E RoysterAustraliaIoni Bowcher RENEWAL
Jefferson J NickaFranceIvan Magalhaes PROPOSAL
Salvatore P DoeRussiaIvan Magalhaes RENEWAL
Misaki Y PoquetteArgentinaBernardo Dominic NEGOTIATION
Nicolas S PaprockiSpainOnyama Limba QUALIFIED
Octavia W MaletGermanyStephen Shaw NEW
Jefferson M SlusarskiAustraliaBernardo Dominic NEGOTIATION
Tony G MaletAustraliaAmy Elsner UNQUALIFIED
Aditya X AmigonItalyElwin Sharvill NEGOTIATION
Deepesh F AlbaresSpainAnna Fali NEW
Octavia F PerinSpainXuxue Feng PROPOSAL
Faith B FerenczItalyAsiya Javayant UNQUALIFIED
Jennifer G MarrierSpainOnyama Limba PROPOSAL
Kaitlin O PaprockiGermanyOnyama Limba UNQUALIFIED
Emily E GauchoArgentinaOnyama Limba QUALIFIED
Aruna L PaprockiCanadaBernardo Dominic NEW
Aditya N ShinkoItalyAmy Elsner NEGOTIATION
Leon F AlbaresCanadaIvan Magalhaes NEW
Jeanfrancois G MacleadBrazilOnyama Limba UNQUALIFIED
Silvio G RutaRussiaIvan Magalhaes NEGOTIATION
Costa M PaprockiFranceAmy Elsner RENEWAL
Mayumi C SergiGermanyIoni Bowcher NEW
Ricardo Y TollnerArgentinaBernardo Dominic UNQUALIFIED
Leon Y DarakjyBrazilStephen Shaw PROPOSAL
Johnson T OldroydItalyElwin Sharvill QUALIFIED
Cody R NestleJapanStephen Shaw NEW
Nicolas N VenereGermanyBernardo Dominic NEGOTIATION
Jones I ChuiItalyBernardo Dominic PROPOSAL
Antonio E FigeroaFranceElwin Sharvill RENEWAL
Ricardo L SchemmerIndiaStephen Shaw NEGOTIATION

<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>