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
Leon R MaletUnited KingdomAsiya Javayant NEGOTIATION
Jennifer K GillianIndiaAsiya Javayant RENEWAL
Salvatore T SaylorsUnited KingdomStephen Shaw NEGOTIATION
Sinclair W WhobreyJapanStephen Shaw QUALIFIED
Jefferson A WhobreyItalyIoni Bowcher NEGOTIATION
Faith C MaletJapanAsiya Javayant QUALIFIED
Julie G SaylorsUnited KingdomIvan Magalhaes NEW
Johnson F TollnerItalyIvan Magalhaes RENEWAL
Silvio Z StockhamAustraliaBernardo Dominic NEW
Adams F MaletJapanBernardo Dominic PROPOSAL
Emily S OstroskyFranceAmy Elsner UNQUALIFIED
Jennifer Q MacleadJapanAmy Elsner NEGOTIATION
Izzy Q RutaAustraliaIvan Magalhaes NEGOTIATION
Cody X StockhamSpainXuxue Feng NEGOTIATION
Deepesh B MaletBrazilStephen Shaw PROPOSAL
Leon T SlusarskiArgentinaAnna Fali NEW
Silvio R DarakjyFranceAsiya Javayant UNQUALIFIED
David D InouyeUnited KingdomIvan Magalhaes PROPOSAL
Octavia L RimIndiaIoni Bowcher NEW
Maria T RoysterBrazilAnna Fali NEGOTIATION
Alejandro K SergiItalyAnna Fali NEGOTIATION
Stacey G SlusarskiRussiaStephen Shaw QUALIFIED
Silvio N ChuiRussiaElwin Sharvill QUALIFIED
Arvin O OldroydSpainElwin Sharvill PROPOSAL
Mujtaba M PerinItalyAmy Elsner NEGOTIATION
Morrow D OldroydRussiaStephen Shaw UNQUALIFIED
Francesco V ButtItalyElwin Sharvill PROPOSAL
Ashley M PerinJapanAsiya Javayant UNQUALIFIED
Silvio R ChuiSpainXuxue Feng NEW
Emily W NestleIndiaOnyama Limba NEGOTIATION
Sinclair I SaylorsSpainBernardo Dominic RENEWAL
David W VocelkaItalyStephen Shaw NEGOTIATION
Antonio N DoeArgentinaIoni Bowcher NEGOTIATION
Tony P WhobreyUnited KingdomAmy Elsner QUALIFIED
Salvatore P StensethIndiaElwin Sharvill NEW
Rodrigues L GarufiIndiaBernardo Dominic UNQUALIFIED
Wickens I RimRussiaElwin Sharvill NEW
Aika K VenereItalyIvan Magalhaes NEGOTIATION
Wickens S SchemmerAustraliaBernardo Dominic NEGOTIATION
Stacey S FigeroaAustraliaBernardo Dominic QUALIFIED
Deepesh A RulapaughIndiaIoni Bowcher UNQUALIFIED
Francesco O FerenczRussiaIvan Magalhaes PROPOSAL
Octavia B PoquetteAustraliaElwin Sharvill UNQUALIFIED
Johnson E ShinkoIndiaAnna Fali NEGOTIATION
Aika B MacleadAustraliaStephen Shaw PROPOSAL
Jeanfrancois Q RulapaughBrazilXuxue Feng PROPOSAL
Ricardo E ShinkoAustraliaElwin Sharvill RENEWAL
Murillo X RulapaughJapanAsiya Javayant QUALIFIED
Mujtaba N TollnerBrazilAmy Elsner PROPOSAL
Isabel L BriddickIndiaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Nicolas B KuskoArgentinaAnna Fali QUALIFIED
Octavia T OstroskyAustraliaBernardo Dominic PROPOSAL
Emily S ShinkoArgentinaElwin Sharvill UNQUALIFIED
Tony Z MorascaCanadaXuxue Feng QUALIFIED
Emily X ShinkoItalyOnyama Limba NEGOTIATION
Octavia C KolmetzJapanOnyama Limba UNQUALIFIED
Kaitlin V RutaBrazilXuxue Feng NEGOTIATION
Aditya V CampainBrazilIoni Bowcher NEGOTIATION
Murillo M WieserBrazilAnna Fali RENEWAL
Nicolas Z SlusarskiItalyAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki P VocelkaJapan2024-05-31King, Christopher A Esq NEGOTIATION29Ioni Bowcher
1001Munro M FlosiAustralia2024-06-20Buckley Miller Wright RENEWAL42Anna Fali
1002Antonio K SlusarskiArgentina2024-06-20Rangoni Of Florence NEGOTIATION96Onyama Limba
1003Kadeem B RoysterItaly2024-06-13Rousseaux, Michael Esq UNQUALIFIED21Asiya Javayant
1004Murillo I SchemmerGermany2024-06-04Chemel, James L Cpa QUALIFIED21Amy Elsner
1005Nicolas T BriddickUnited Kingdom2024-06-23King, Christopher A Esq NEW15Stephen Shaw
1006Mujtaba F VenereAustralia2024-06-23Benton, John B Jr PROPOSAL57Onyama Limba
1007Ivar Z VocelkaUnited Kingdom2024-06-06Feltz Printing Service NEGOTIATION94Bernardo Dominic
1008Izzy B KuskoUnited Kingdom2024-06-07Chapman, Ross E Esq UNQUALIFIED50Amy Elsner
1009Emily F AmigonItaly2024-05-26Benton, John B Jr QUALIFIED8Anna Fali
1010Jeanfrancois S FigeroaItaly2024-05-27Benton, John B Jr NEW87Onyama Limba
1011Antonio M FigeroaBrazil2024-06-11Commercial Press RENEWAL97Anna Fali
1012Costa M VenereJapan2024-06-23King, Christopher A Esq QUALIFIED67Xuxue Feng
1013Morrow Q IturbideItaly2024-06-02Rousseaux, Michael Esq QUALIFIED8Anna Fali
1014Ivar Y MaletCanada2024-05-26Benton, John B Jr UNQUALIFIED60Elwin Sharvill
1015Wickens V SlusarskiRussia2024-06-10Buckley Miller Wright UNQUALIFIED87Anna Fali
1016Silvio G CaldareraIndia2024-06-15Feltz Printing Service NEGOTIATION99Onyama Limba
1017Rodrigues D GarufiBrazil2024-06-11Rousseaux, Michael Esq NEGOTIATION27Bernardo Dominic
1018Alejandro Z DilliardIndia2024-06-21Morlong Associates UNQUALIFIED2Asiya Javayant
1019Maria H VenereCanada2024-06-05Chapman, Ross E Esq UNQUALIFIED52Xuxue Feng
1020Sinclair J SchemmerItaly2024-06-13Rangoni Of Florence QUALIFIED4Ivan Magalhaes
1021Aditya U GarufiAustralia2024-06-23Printing Dimensions RENEWAL29Ivan Magalhaes
1022Smith F StensethRussia2024-05-27Printing Dimensions NEW16Asiya Javayant
1023Antonio X RulapaughUnited Kingdom2024-06-22Feiner Bros NEW12Asiya Javayant
1024Morrow C CampainAustralia2024-06-03Buckley Miller Wright UNQUALIFIED11Asiya Javayant
1025Adams N BologniaItaly2024-06-13Dorl, James J Esq QUALIFIED64Anna Fali
1026Claire N StockhamIndia2024-06-16Morlong Associates RENEWAL88Anna Fali
1027Costa P RulapaughCanada2024-05-27Truhlar And Truhlar Attys NEGOTIATION95Elwin Sharvill
1028Mujtaba O GarufiJapan2024-06-17Buckley Miller Wright UNQUALIFIED1Onyama Limba
1029Greenwood N PerinRussia2024-06-19Printing Dimensions RENEWAL33Anna Fali
1030Aika W MacleadSpain2024-06-10Truhlar And Truhlar Attys UNQUALIFIED81Anna Fali
1031Clifford F PerinJapan2024-06-03Chemel, James L Cpa RENEWAL6Onyama Limba
1032Aditya G BologniaBrazil2024-05-30Truhlar And Truhlar Attys NEW76Anna Fali
1033Jefferson U RulapaughJapan2024-06-20Morlong Associates PROPOSAL69Stephen Shaw
1034Maria H ChuiAustralia2024-06-21Rangoni Of Florence NEGOTIATION99Onyama Limba
1035Emily P KolmetzFrance2024-06-10King, Christopher A Esq NEGOTIATION77Bernardo Dominic
1036Ricardo B KolmetzGermany2024-05-28Feiner Bros NEW52Amy Elsner
1037Deepesh H ShinkoCanada2024-06-12Commercial Press QUALIFIED12Asiya Javayant
1038Claire C FerenczFrance2024-06-03Rangoni Of Florence NEW30Anna Fali
1039Murillo H StensethUnited Kingdom2024-06-15Buckley Miller Wright RENEWAL68Stephen Shaw
1040Clifford J VenereAustralia2024-06-18Dorl, James J Esq RENEWAL27Bernardo Dominic
1041Alejandro F FigeroaIndia2024-06-22Chanay, Jeffrey A Esq PROPOSAL60Asiya Javayant
1042Mayumi B VenereJapan2024-06-12Rousseaux, Michael Esq UNQUALIFIED72Ioni Bowcher
1043Isabel X BriddickUnited Kingdom2024-05-31Printing Dimensions RENEWAL29Amy Elsner
1044Antonio W AmigonUnited Kingdom2024-06-12Chemel, James L Cpa NEW94Elwin Sharvill
1045Murillo Z DilliardIndia2024-05-29Commercial Press PROPOSAL43Xuxue Feng
1046Cody J VocelkaAustralia2024-06-12Feiner Bros NEW14Asiya Javayant
1047Kadeem W WhobreyCanada2024-06-11Rangoni Of Florence RENEWAL68Asiya Javayant
1048Juan W AlbaresItaly2024-06-02King, Christopher A Esq RENEWAL36Asiya Javayant
1049Maria K PoquetteFrance2024-06-16Chanay, Jeffrey A Esq NEGOTIATION92Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Greenwood A StockhamSpainBernardo Dominic PROPOSAL
Silvio D VenereArgentinaBernardo Dominic UNQUALIFIED
Emily P KuskoItalyAsiya Javayant NEGOTIATION
Juan B ShinkoUnited KingdomIoni Bowcher UNQUALIFIED
Nicolas F DoeUnited KingdomIvan Magalhaes UNQUALIFIED
Kadeem N DilliardGermanyXuxue Feng PROPOSAL
Sinclair Y SaylorsIndiaElwin Sharvill UNQUALIFIED
Johnson V WieserItalyAnna Fali UNQUALIFIED
Julie Y StockhamArgentinaBernardo Dominic QUALIFIED
James E ChuiUnited KingdomAsiya Javayant NEW
Claire O BologniaFranceStephen Shaw RENEWAL
Jennifer H SlusarskiBrazilAmy Elsner QUALIFIED
Silvio K TollnerItalyIvan Magalhaes UNQUALIFIED
Adams O SaylorsAustraliaAmy Elsner UNQUALIFIED
Smith P VenereSpainIoni Bowcher UNQUALIFIED
Stacey L VenereCanadaStephen Shaw NEW
Rodrigues S RulapaughBrazilStephen Shaw PROPOSAL
Ricardo T VenereBrazilAsiya Javayant PROPOSAL
Alejandro J FlosiCanadaBernardo Dominic QUALIFIED
Isabel E VenereUnited KingdomXuxue Feng RENEWAL
Izzy T FollerGermanyIoni Bowcher QUALIFIED
Leja T NestleBrazilIoni Bowcher QUALIFIED
Aditya W OldroydSpainIvan Magalhaes NEGOTIATION
Aruna J InouyeRussiaBernardo Dominic QUALIFIED
Ricardo V ButtArgentinaStephen Shaw UNQUALIFIED
Chavez C WieserBrazilIoni Bowcher NEW
Aika F VenereJapanAmy Elsner NEGOTIATION
Morrow V GauchoGermanyBernardo Dominic NEW
Stacey D StockhamJapanBernardo Dominic RENEWAL
Murillo U NestleJapanBernardo Dominic UNQUALIFIED
Mayumi Q OstroskyIndiaAsiya Javayant UNQUALIFIED
Ricardo R FlosiFranceOnyama Limba NEGOTIATION
Jeanfrancois N FigeroaArgentinaStephen Shaw RENEWAL
Faith U OldroydUnited KingdomXuxue Feng NEW
Isabel D FerenczCanadaStephen Shaw NEGOTIATION
Claire P PerinCanadaAsiya Javayant RENEWAL
Julie P FollerItalyAnna Fali UNQUALIFIED
Kadeem G FollerRussiaElwin Sharvill NEW
Jefferson Z PerinBrazilAnna Fali QUALIFIED
Antonio B RulapaughBrazilAsiya Javayant QUALIFIED
Sinclair K WaycottArgentinaIvan Magalhaes PROPOSAL
David Y PoquetteAustraliaXuxue Feng QUALIFIED
Johnson H OstroskyFranceBernardo Dominic RENEWAL
Francesco W PaprockiFranceAmy Elsner RENEWAL
Munro V CaldareraFranceBernardo Dominic NEW
Leon X ChuiAustraliaElwin Sharvill RENEWAL
Salvatore L WaycottItalyStephen Shaw QUALIFIED
Maria A ShinkoBrazilBernardo Dominic UNQUALIFIED
Jennifer P SlusarskiBrazilElwin Sharvill PROPOSAL
Claire C PaprockiGermanyAsiya Javayant QUALIFIED
Frozen Columns
Name
Isabel Q Flosi
Stacey K Waycott
Morrow W Iturbide
Aruna K Schemmer
Antonio H Nestle
Nicolas Q Albares
Maisha H Inouye
Mujtaba I Shinko
Aika I Whobrey
Isabel Z Rim
Aditya V Saylors
Smith R Garufi
Octavia J Iturbide
Mayumi Q Dilliard
Adams Y Sergi
Faith E Perin
Claire T Caldarera
Silvio Y Amigon
Wickens O Rim
Aruna Q Butt
Alejandro Y Stenseth
Darci X Amigon
James V Oldroyd
Jefferson E Gillian
Maria D Flosi
Nicolas T Oldroyd
Aruna J Shinko
Kaitlin P Shinko
David O Gillian
Salvatore C Kusko
Deepesh W Chui
Aruna Z Foller
Sinclair B Ferencz
Morrow K Malet
Faith X Nicka
Mayumi B Doe
Claire S Ferencz
Mujtaba J Waycott
Smith D Dilliard
Antonio M Figeroa
Murillo I Paprocki
David W Whobrey
Mayumi U Tollner
Johnson Q Bolognia
Deepesh Q Oldroyd
Johnson T Kolmetz
Deepesh W Perin
Murillo D Amigon
Juan M Whobrey
David J Campain
IdCountryDate
1000United Kingdom2024-06-16
1001France2024-06-20
1002Canada2024-06-18
1003Australia2024-06-13
1004Germany2024-06-13
1005Brazil2024-06-02
1006United Kingdom2024-06-04
1007Russia2024-06-10
1008India2024-05-26
1009Australia2024-05-28
1010Russia2024-06-03
1011Germany2024-06-23
1012Australia2024-06-16
1013Germany2024-05-29
1014India2024-06-02
1015Russia2024-06-20
1016Japan2024-06-11
1017Japan2024-06-12
1018Canada2024-06-04
1019United Kingdom2024-06-20
1020Germany2024-06-06
1021Russia2024-06-21
1022Russia2024-06-16
1023Germany2024-05-30
1024United Kingdom2024-06-18
1025United Kingdom2024-05-26
1026India2024-06-08
1027United Kingdom2024-06-17
1028Australia2024-06-23
1029Argentina2024-06-01
1030France2024-06-19
1031United Kingdom2024-06-07
1032United Kingdom2024-06-13
1033United Kingdom2024-06-19
1034Brazil2024-06-19
1035United Kingdom2024-06-14
1036United Kingdom2024-06-04
1037Japan2024-05-26
1038Canada2024-06-22
1039Italy2024-06-18
1040Germany2024-06-16
1041United Kingdom2024-06-24
1042Spain2024-06-14
1043Spain2024-06-02
1044Italy2024-05-28
1045Spain2024-06-21
1046Argentina2024-06-15
1047Germany2024-06-16
1048Brazil2024-06-05
1049Russia2024-05-30

On-Demand Data

NameIdCountryDate
Chavez X Campain1000Australia2024-06-19
Costa W Amigon1001India2024-06-23
Rodrigues E Briddick1002United Kingdom2024-06-08
Greenwood Q Albares1003Japan2024-06-23
Maria A Malet1004United Kingdom2024-06-19
Deepesh J Sergi1005Russia2024-06-01
Isabel S Kolmetz1006India2024-05-29
Ricardo I Darakjy1007Canada2024-06-24
Leon H Morasca1008Australia2024-06-13
Octavia G Caudy1009Canada2024-06-24
Izzy V Chui1010Canada2024-06-02
Claire D Chui1011Argentina2024-06-12
Kaitlin B Butt1012India2024-06-18
Mujtaba N Rulapaugh1013Argentina2024-06-03
Stacey F Perin1014Italy2024-06-05
Mayumi G Rim1015Italy2024-06-14
Murillo O Ferencz1016Brazil2024-05-30
Smith P Bolognia1017Italy2024-06-22
Murillo U Doe1018Canada2024-05-30
Aika L Vocelka1019Spain2024-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy E DilliardIndiaStephen Shaw NEW
Chavez Y BowleySpainAmy Elsner NEW
Ivar W BologniaGermanyBernardo Dominic UNQUALIFIED
Aruna Z RulapaughBrazilAnna Fali UNQUALIFIED
Juan R GillianJapanIvan Magalhaes NEGOTIATION
Antonio W KolmetzUnited KingdomIoni Bowcher PROPOSAL
Salvatore E RulapaughIndiaIoni Bowcher RENEWAL
Aika Q CaudyItalyAnna Fali RENEWAL
Sinclair O FollerIndiaElwin Sharvill NEW
Morrow R WhobreyFranceXuxue Feng QUALIFIED
Ricardo V StensethSpainAsiya Javayant UNQUALIFIED
Sinclair B VocelkaUnited KingdomStephen Shaw NEGOTIATION
Misaki Y SlusarskiGermanyAsiya Javayant PROPOSAL
Jeanfrancois I KuskoBrazilElwin Sharvill NEW
Misaki T SchemmerItalyAsiya Javayant PROPOSAL
Darci H RoysterRussiaBernardo Dominic PROPOSAL
Misaki Q SchemmerBrazilElwin Sharvill RENEWAL
Stacey Z RutaGermanyAmy Elsner RENEWAL
Kadeem P RimJapanElwin Sharvill RENEWAL
Smith R AlbaresRussiaIvan Magalhaes NEGOTIATION
Claire F FigeroaGermanyXuxue Feng QUALIFIED
Izzy Z BologniaFranceBernardo Dominic RENEWAL
Mayumi U OstroskyAustraliaStephen Shaw NEGOTIATION
Alejandro Y DilliardFranceBernardo Dominic QUALIFIED
Isabel F SaylorsBrazilAsiya Javayant NEW
Aruna J SchemmerJapanAsiya Javayant NEW
Julie D MaletSpainIoni Bowcher PROPOSAL
Murillo O WaycottItalyOnyama Limba QUALIFIED
Ashley S BriddickUnited KingdomBernardo Dominic PROPOSAL
Chavez D MacleadSpainAmy Elsner NEGOTIATION
Wickens B RulapaughItalyBernardo Dominic RENEWAL
Octavia M ChuiArgentinaAsiya Javayant QUALIFIED
Chavez Q MaletFranceAnna Fali NEGOTIATION
Wickens B SergiItalyIvan Magalhaes UNQUALIFIED
Greenwood D RutaArgentinaOnyama Limba RENEWAL
Faith J KolmetzAustraliaIvan Magalhaes UNQUALIFIED
Costa R BriddickBrazilIvan Magalhaes PROPOSAL
Adams D SergiCanadaIoni Bowcher QUALIFIED
Mayumi K RulapaughFranceAsiya Javayant NEW
Arvin C BologniaGermanyOnyama 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>