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 X WieserCanadaStephen Shaw QUALIFIED
Arvin R KuskoBrazilStephen Shaw NEW
Emily Y PerinBrazilOnyama Limba NEGOTIATION
Maisha D NickaUnited KingdomIoni Bowcher QUALIFIED
Sinclair U TollnerFranceOnyama Limba QUALIFIED
Chavez K DilliardAustraliaIvan Magalhaes PROPOSAL
Tony J ChuiAustraliaStephen Shaw RENEWAL
Ashley U BologniaIndiaStephen Shaw PROPOSAL
Tony A FerenczAustraliaAnna Fali NEGOTIATION
Jennifer B AmigonCanadaStephen Shaw PROPOSAL
Juan T ChuiArgentinaXuxue Feng NEW
Aditya Z DilliardBrazilOnyama Limba PROPOSAL
Izzy Z AmigonRussiaElwin Sharvill NEW
Nicolas I WhobreyAustraliaAnna Fali NEW
Maria P BologniaGermanyAsiya Javayant PROPOSAL
Silvio T VocelkaArgentinaBernardo Dominic RENEWAL
Tony K FerenczFranceAmy Elsner UNQUALIFIED
Smith K BowleyRussiaIvan Magalhaes UNQUALIFIED
Mayumi Z RimFranceXuxue Feng RENEWAL
Silvio F GarufiUnited KingdomElwin Sharvill NEGOTIATION
Maria P RulapaughCanadaOnyama Limba UNQUALIFIED
Jeanfrancois Z PerinSpainOnyama Limba NEGOTIATION
Ashley D MaletCanadaBernardo Dominic RENEWAL
Rodrigues F IturbideIndiaStephen Shaw QUALIFIED
Wickens R KolmetzGermanyIvan Magalhaes RENEWAL
Julie S WhobreyGermanyAsiya Javayant PROPOSAL
Greenwood R MaletIndiaIvan Magalhaes NEGOTIATION
Chavez F DoeItalyIvan Magalhaes NEGOTIATION
Wickens S WhobreySpainElwin Sharvill RENEWAL
Jefferson X ShinkoAustraliaIoni Bowcher PROPOSAL
Morrow Z PaprockiIndiaStephen Shaw UNQUALIFIED
Juan A SchemmerCanadaXuxue Feng RENEWAL
Kaitlin T BologniaItalyIvan Magalhaes QUALIFIED
Morrow C CaldareraIndiaAnna Fali QUALIFIED
Claire V KolmetzRussiaStephen Shaw UNQUALIFIED
Adams R ShinkoCanadaXuxue Feng UNQUALIFIED
Adams X DarakjyAustraliaBernardo Dominic RENEWAL
Darci T AlbaresIndiaAnna Fali NEGOTIATION
Ivar U FerenczArgentinaIvan Magalhaes QUALIFIED
Chavez F VocelkaItalyOnyama Limba PROPOSAL
Ricardo Z RimItalyAmy Elsner NEGOTIATION
Munro P FollerGermanyOnyama Limba NEGOTIATION
Mujtaba A SchemmerIndiaStephen Shaw PROPOSAL
Ivar B StockhamJapanAmy Elsner QUALIFIED
Aika S RulapaughAustraliaElwin Sharvill PROPOSAL
Deepesh Y GauchoFranceIvan Magalhaes QUALIFIED
Chavez G SchemmerArgentinaAnna Fali PROPOSAL
Jeanfrancois Z AlbaresSpainAnna Fali UNQUALIFIED
Kaitlin Z RutaCanadaAmy Elsner PROPOSAL
Arvin B MacleadUnited KingdomBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aika B ButtUnited KingdomIoni Bowcher NEGOTIATION
Isabel W MaletSpainAnna Fali UNQUALIFIED
Mayumi V MarrierGermanyAmy Elsner RENEWAL
Claire S GlickItalyStephen Shaw NEW
Costa G ShinkoItalyAmy Elsner RENEWAL
Claire B SlusarskiCanadaAnna Fali NEW
Costa Y MaletIndiaXuxue Feng UNQUALIFIED
David U PaprockiAustraliaStephen Shaw QUALIFIED
Clifford W StockhamItalyStephen Shaw RENEWAL
Salvatore K MacleadGermanyAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire Q MacleadSpain2026-06-26Feltz Printing Service UNQUALIFIED72Ivan Magalhaes
1001Antonio V KolmetzJapan2026-07-02Rousseaux, Michael Esq NEW21Xuxue Feng
1002Salvatore X RutaBrazil2026-07-04King, Christopher A Esq UNQUALIFIED98Onyama Limba
1003Munro L SergiUnited Kingdom2026-07-13Morlong Associates PROPOSAL0Stephen Shaw
1004Kadeem F GarufiAustralia2026-07-10Morlong Associates NEGOTIATION74Stephen Shaw
1005Mayumi V RimArgentina2026-07-19Rousseaux, Michael Esq RENEWAL95Amy Elsner
1006Ricardo K RoysterAustralia2026-06-27Buckley Miller Wright RENEWAL52Ioni Bowcher
1007Juan T WhobreyUnited Kingdom2026-07-02Chemel, James L Cpa UNQUALIFIED92Amy Elsner
1008Darci K DilliardAustralia2026-07-07Benton, John B Jr UNQUALIFIED12Elwin Sharvill
1009Misaki D MorascaArgentina2026-07-13Truhlar And Truhlar Attys NEW24Amy Elsner
1010Claire R OldroydFrance2026-06-24Chapman, Ross E Esq PROPOSAL18Ioni Bowcher
1011Mayumi J InouyeArgentina2026-07-22King, Christopher A Esq UNQUALIFIED96Elwin Sharvill
1012Wickens I CampainAustralia2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED34Amy Elsner
1013Adams M SchemmerItaly2026-07-12Buckley Miller Wright NEW95Onyama Limba
1014Julie G MarrierCanada2026-07-12Benton, John B Jr RENEWAL49Ivan Magalhaes
1015Jefferson S MarrierAustralia2026-06-25Commercial Press UNQUALIFIED76Ioni Bowcher
1016Wickens H SergiArgentina2026-07-04Benton, John B Jr RENEWAL94Stephen Shaw
1017Misaki K RoysterArgentina2026-07-08King, Christopher A Esq UNQUALIFIED58Asiya Javayant
1018Misaki V SergiSpain2026-06-25Chemel, James L Cpa QUALIFIED34Asiya Javayant
1019Sinclair R OstroskyItaly2026-06-30Rousseaux, Michael Esq NEW40Amy Elsner
1020Leon E VocelkaJapan2026-07-20Dorl, James J Esq NEW33Amy Elsner
1021Julie Q CampainBrazil2026-07-19Morlong Associates NEGOTIATION88Anna Fali
1022Maisha J ButtAustralia2026-07-18Truhlar And Truhlar Attys NEW89Xuxue Feng
1023Murillo T SlusarskiAustralia2026-07-12Chapman, Ross E Esq UNQUALIFIED96Xuxue Feng
1024Kaitlin L RutaUnited Kingdom2026-07-16Truhlar And Truhlar Attys PROPOSAL86Asiya Javayant
1025Johnson A FollerRussia2026-07-11Commercial Press PROPOSAL25Bernardo Dominic
1026Kadeem R BowleyIndia2026-07-21Commercial Press RENEWAL13Bernardo Dominic
1027Mayumi T WhobreyArgentina2026-07-06Rangoni Of Florence PROPOSAL13Stephen Shaw
1028Silvio S BologniaRussia2026-06-30Chapman, Ross E Esq QUALIFIED35Stephen Shaw
1029Smith Z CaudyCanada2026-06-30Rousseaux, Michael Esq RENEWAL98Ioni Bowcher
1030Emily F VocelkaArgentina2026-06-25Rousseaux, Michael Esq NEW71Ivan Magalhaes
1031Ivar T MaletBrazil2026-07-11Rousseaux, Michael Esq PROPOSAL3Elwin Sharvill
1032Nicolas Q FerenczFrance2026-06-26Chapman, Ross E Esq NEW61Xuxue Feng
1033Isabel E RulapaughRussia2026-06-29Chanay, Jeffrey A Esq QUALIFIED44Bernardo Dominic
1034Morrow G FerenczSpain2026-07-17Feltz Printing Service QUALIFIED77Onyama Limba
1035Ricardo O MacleadArgentina2026-07-14Chapman, Ross E Esq NEGOTIATION85Anna Fali
1036Stacey F BowleyCanada2026-07-04Truhlar And Truhlar Attys RENEWAL44Anna Fali
1037Clifford A InouyeRussia2026-07-19Benton, John B Jr QUALIFIED23Anna Fali
1038Misaki H MarrierIndia2026-07-17Feiner Bros PROPOSAL39Ioni Bowcher
1039Aika H SaylorsFrance2026-06-24Printing Dimensions QUALIFIED37Elwin Sharvill
1040Ashley L NestleUnited Kingdom2026-07-03Commercial Press RENEWAL91Xuxue Feng
1041Ashley Q GlickFrance2026-07-05Chanay, Jeffrey A Esq PROPOSAL86Stephen Shaw
1042Jennifer P RimRussia2026-07-13Truhlar And Truhlar Attys NEGOTIATION42Amy Elsner
1043Leja F NestleItaly2026-07-09Morlong Associates NEW62Elwin Sharvill
1044James P MaletCanada2026-07-11Chemel, James L Cpa QUALIFIED37Amy Elsner
1045Greenwood F FollerRussia2026-07-05Benton, John B Jr NEGOTIATION96Elwin Sharvill
1046Juan U BowleyAustralia2026-07-16Feiner Bros PROPOSAL18Ioni Bowcher
1047Faith X OstroskyFrance2026-07-12Benton, John B Jr QUALIFIED99Anna Fali
1048Rodrigues L AmigonItaly2026-07-07Printing Dimensions NEW80Ioni Bowcher
1049Kadeem S RulapaughAustralia2026-07-19Printing Dimensions NEGOTIATION43Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jefferson F StensethFranceStephen Shaw QUALIFIED
Juan X GarufiBrazilAnna Fali UNQUALIFIED
Jennifer X PerinGermanyElwin Sharvill PROPOSAL
Francesco L BriddickSpainAnna Fali NEGOTIATION
Faith S OldroydAustraliaElwin Sharvill NEGOTIATION
Aika O PoquetteCanadaIoni Bowcher NEW
Smith R GauchoGermanyElwin Sharvill UNQUALIFIED
Wickens I StockhamSpainAmy Elsner PROPOSAL
Adams U MorascaGermanyIoni Bowcher RENEWAL
Clifford J ChuiJapanAsiya Javayant PROPOSAL
Alejandro Y IturbideBrazilElwin Sharvill RENEWAL
Ricardo Q PaprockiCanadaStephen Shaw UNQUALIFIED
Rodrigues I AlbaresGermanyStephen Shaw UNQUALIFIED
Jefferson C PerinRussiaIvan Magalhaes RENEWAL
Octavia V CaudyItalyAsiya Javayant UNQUALIFIED
Ricardo L CaldareraAustraliaBernardo Dominic PROPOSAL
Julie D OstroskyItalyOnyama Limba QUALIFIED
Mujtaba E ChuiGermanyAnna Fali RENEWAL
Munro I SlusarskiCanadaAmy Elsner PROPOSAL
Jeanfrancois O RutaArgentinaElwin Sharvill RENEWAL
Jeanfrancois A RulapaughIndiaAmy Elsner QUALIFIED
Mujtaba R CaldareraAustraliaAmy Elsner UNQUALIFIED
Aruna L SlusarskiCanadaOnyama Limba RENEWAL
Johnson V PaprockiUnited KingdomXuxue Feng RENEWAL
Ashley S AmigonSpainElwin Sharvill NEW
Tony Q ChuiArgentinaElwin Sharvill NEGOTIATION
Jennifer C AmigonJapanBernardo Dominic RENEWAL
Leja C AmigonFranceBernardo Dominic PROPOSAL
James H PerinFranceAnna Fali NEW
Faith O StensethGermanyOnyama Limba RENEWAL
Izzy U PoquetteUnited KingdomIvan Magalhaes UNQUALIFIED
Leja S BowleyItalyAmy Elsner QUALIFIED
Sinclair P CampainRussiaAnna Fali QUALIFIED
Smith R WieserFranceBernardo Dominic UNQUALIFIED
Sinclair X SergiBrazilIoni Bowcher NEGOTIATION
Salvatore Z NestleBrazilElwin Sharvill NEGOTIATION
Jeanfrancois L BowleyCanadaElwin Sharvill PROPOSAL
David K RulapaughFranceStephen Shaw RENEWAL
Mujtaba R MacleadAustraliaStephen Shaw NEW
Isabel C GauchoUnited KingdomXuxue Feng NEGOTIATION
Kaitlin G SchemmerCanadaIvan Magalhaes PROPOSAL
Stacey O SchemmerSpainAmy Elsner UNQUALIFIED
Darci X StensethArgentinaIvan Magalhaes QUALIFIED
Jones K FlosiIndiaAsiya Javayant PROPOSAL
Aruna Z DarakjyUnited KingdomAnna Fali RENEWAL
Morrow I KolmetzGermanyIoni Bowcher NEW
Ashley F FigeroaGermanyXuxue Feng UNQUALIFIED
Cody T IturbideBrazilAsiya Javayant UNQUALIFIED
David J StockhamGermanyAnna Fali RENEWAL
David S RutaUnited KingdomElwin Sharvill PROPOSAL
Frozen Columns
Name
Jennifer Y Caudy
Mayumi E Morasca
Isabel O Vocelka
Silvio D Schemmer
Isabel H Ostrosky
Jones U Albares
Julie R Ruta
Morrow D Ruta
Mayumi Q Amigon
Misaki W Garufi
Mujtaba K Vocelka
Isabel M Shinko
Adams X Albares
Maisha X Ostrosky
Kaitlin F Maclead
Clifford N Saylors
Mujtaba M Morasca
Octavia J Malet
Mayumi F Rim
Wickens K Foller
Francesco I Ferencz
Alejandro L Albares
Greenwood D Chui
Claire L Gillian
Izzy I Morasca
Jefferson E Rulapaugh
Jones M Oldroyd
James B Malet
Silvio S Maclead
Cody Z Shinko
Ivar R Briddick
Leja X Sergi
Kaitlin M Garufi
Julie C Marrier
Ashley G Slusarski
Chavez J Bolognia
Leon L Butt
Cody E Saylors
Rodrigues A Shinko
Mayumi B Vocelka
Salvatore G Briddick
Ivar N Inouye
Darci P Poquette
Ricardo P Kusko
Antonio X Foller
Johnson K Shinko
Kadeem X Rim
Johnson Q Amigon
Maisha J Darakjy
Izzy Y Stenseth
IdCountryDate
1000Italy2026-07-23
1001India2026-07-21
1002Russia2026-07-17
1003India2026-07-08
1004Italy2026-07-08
1005Brazil2026-07-14
1006Japan2026-07-02
1007Brazil2026-07-22
1008Brazil2026-06-26
1009Japan2026-06-25
1010Brazil2026-06-25
1011United Kingdom2026-07-01
1012Italy2026-07-14
1013India2026-07-13
1014Germany2026-07-18
1015Japan2026-06-27
1016Australia2026-06-28
1017France2026-06-26
1018Germany2026-07-10
1019United Kingdom2026-06-24
1020Canada2026-07-15
1021Australia2026-07-16
1022Japan2026-06-30
1023Brazil2026-07-09
1024Germany2026-07-11
1025United Kingdom2026-06-25
1026Russia2026-07-09
1027Italy2026-07-02
1028Germany2026-06-30
1029Russia2026-07-12
1030Japan2026-07-02
1031Japan2026-06-28
1032Italy2026-07-07
1033India2026-06-29
1034Canada2026-07-22
1035Japan2026-07-20
1036United Kingdom2026-06-25
1037Russia2026-07-05
1038Japan2026-07-10
1039United Kingdom2026-07-02
1040Russia2026-07-22
1041Russia2026-07-19
1042France2026-07-16
1043Argentina2026-07-04
1044Russia2026-07-10
1045Italy2026-07-17
1046Australia2026-07-16
1047Australia2026-06-25
1048Australia2026-07-01
1049Australia2026-07-19

On-Demand Data

NameIdCountryDate
Greenwood L Wieser1000Germany2026-07-09
Francesco V Rim1001Argentina2026-07-16
Juan F Figeroa1002Australia2026-06-24
Jefferson F Albares1003Italy2026-07-20
Arvin H Sergi1004India2026-07-16
Julie W Oldroyd1005Australia2026-07-16
Cody U Slusarski1006Russia2026-07-06
Silvio N Albares1007Germany2026-07-16
Munro K Venere1008Russia2026-07-19
Smith H Oldroyd1009Italy2026-07-21
Chavez R Chui1010France2026-07-21
Arvin K Vocelka1011Argentina2026-07-10
Sinclair M Inouye1012Germany2026-07-09
Rodrigues K Ferencz1013Japan2026-07-08
Ashley I Wieser1014Japan2026-07-05
Jeanfrancois O Albares1015Germany2026-06-24
Darci O Malet1016United Kingdom2026-07-05
Deepesh B Ferencz1017Spain2026-07-03
Izzy B Campain1018Germany2026-07-11
Octavia O Tollner1019Italy2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya J ButtRussiaXuxue Feng NEGOTIATION
Rodrigues I SergiItalyOnyama Limba PROPOSAL
Antonio L CaldareraJapanElwin Sharvill QUALIFIED
Deepesh R NickaGermanyStephen Shaw NEGOTIATION
Adams R MaletSpainAsiya Javayant QUALIFIED
Munro B CaldareraJapanAmy Elsner UNQUALIFIED
Morrow I ShinkoItalyAnna Fali UNQUALIFIED
Mayumi D ButtArgentinaBernardo Dominic RENEWAL
Mujtaba H RimCanadaIvan Magalhaes NEW
Adams E ButtAustraliaBernardo Dominic PROPOSAL
Jennifer Z GauchoGermanyStephen Shaw RENEWAL
Rodrigues Y FigeroaUnited KingdomAsiya Javayant PROPOSAL
James B FollerSpainAsiya Javayant RENEWAL
Antonio M FerenczAustraliaOnyama Limba PROPOSAL
Darci M RutaSpainAmy Elsner UNQUALIFIED
Deepesh U BriddickAustraliaElwin Sharvill PROPOSAL
Jennifer K NickaCanadaElwin Sharvill UNQUALIFIED
Arvin L FigeroaGermanyAnna Fali UNQUALIFIED
Juan D RimArgentinaOnyama Limba RENEWAL
Alejandro Z FlosiArgentinaXuxue Feng NEW
Morrow M RoysterGermanyBernardo Dominic UNQUALIFIED
Nicolas P RutaSpainXuxue Feng PROPOSAL
Ashley W ButtIndiaIvan Magalhaes RENEWAL
Morrow C RulapaughIndiaElwin Sharvill RENEWAL
Aditya T FigeroaArgentinaStephen Shaw PROPOSAL
Maisha W CaudyFranceOnyama Limba NEGOTIATION
Greenwood B AmigonFranceIoni Bowcher NEGOTIATION
David J MaletSpainOnyama Limba UNQUALIFIED
Mayumi K NickaGermanyAsiya Javayant PROPOSAL
Arvin O DarakjyBrazilAnna Fali QUALIFIED
Morrow S MaletIndiaAnna Fali NEW
Maisha B MaletItalyIoni Bowcher RENEWAL
Tony R MaletFranceIoni Bowcher NEGOTIATION
Sinclair L StensethUnited KingdomAmy Elsner PROPOSAL
Sinclair M CaudySpainIvan Magalhaes UNQUALIFIED
Julie U ChuiItalyStephen Shaw QUALIFIED
Antonio L BologniaArgentinaBernardo Dominic NEGOTIATION
Silvio S RutaUnited KingdomAnna Fali RENEWAL
Smith T RutaGermanyAmy Elsner NEGOTIATION
Nicolas A MorascaIndiaAsiya Javayant QUALIFIED

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