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
Salvatore W KuskoUnited KingdomAnna Fali PROPOSAL
Stacey M AmigonArgentinaOnyama Limba NEW
James L VocelkaArgentinaIoni Bowcher PROPOSAL
Faith N MacleadArgentinaXuxue Feng PROPOSAL
Wickens N MacleadSpainAnna Fali NEW
Antonio L TollnerFranceElwin Sharvill NEGOTIATION
Leon P PoquetteFranceBernardo Dominic RENEWAL
Sinclair L WaycottArgentinaAnna Fali NEGOTIATION
Smith Y FlosiRussiaIvan Magalhaes NEGOTIATION
Silvio G WaycottRussiaIoni Bowcher NEGOTIATION
Faith T BriddickIndiaIvan Magalhaes PROPOSAL
Wickens K VocelkaItalyOnyama Limba RENEWAL
David G ChuiCanadaOnyama Limba NEW
Cody G MarrierBrazilElwin Sharvill PROPOSAL
Aditya L PaprockiIndiaAnna Fali QUALIFIED
Maria Q MaletRussiaBernardo Dominic NEW
Greenwood G CaldareraSpainIvan Magalhaes PROPOSAL
Arvin K ShinkoUnited KingdomAsiya Javayant UNQUALIFIED
Misaki U NickaGermanyAnna Fali QUALIFIED
Nicolas D MaletRussiaXuxue Feng NEGOTIATION
Kadeem L PaprockiAustraliaAnna Fali UNQUALIFIED
Deepesh O MorascaGermanyAmy Elsner QUALIFIED
Aditya O AmigonItalyBernardo Dominic NEW
Aditya B CaudyUnited KingdomAnna Fali NEW
Munro E GlickAustraliaElwin Sharvill NEGOTIATION
Ivar I DoeJapanStephen Shaw NEGOTIATION
Salvatore C ShinkoArgentinaIvan Magalhaes NEW
Deepesh B KolmetzIndiaXuxue Feng UNQUALIFIED
Jeanfrancois P StockhamRussiaIvan Magalhaes RENEWAL
Rodrigues J SaylorsRussiaStephen Shaw PROPOSAL
Salvatore R RutaUnited KingdomAnna Fali NEGOTIATION
Aruna Z StockhamJapanOnyama Limba PROPOSAL
James Z OldroydIndiaAsiya Javayant NEGOTIATION
Jones C OldroydGermanyStephen Shaw NEGOTIATION
Chavez E CaudyIndiaIvan Magalhaes QUALIFIED
Morrow Q StensethUnited KingdomXuxue Feng RENEWAL
Ricardo P MorascaCanadaAmy Elsner RENEWAL
Alejandro M FerenczFranceIvan Magalhaes UNQUALIFIED
Emily K MaletUnited KingdomIoni Bowcher PROPOSAL
Aika S NestleIndiaOnyama Limba UNQUALIFIED
Chavez E PoquetteSpainStephen Shaw NEGOTIATION
Deepesh D MaletBrazilAnna Fali UNQUALIFIED
Leon T MacleadItalyStephen Shaw PROPOSAL
Alejandro X DilliardAustraliaAmy Elsner NEGOTIATION
Johnson Y KuskoAustraliaIoni Bowcher PROPOSAL
Darci M OldroydAustraliaIoni Bowcher QUALIFIED
Ricardo M FlosiRussiaAsiya Javayant UNQUALIFIED
Ashley Z MaletItalyIvan Magalhaes PROPOSAL
Ricardo V WhobreyArgentinaAmy Elsner PROPOSAL
Silvio P KolmetzItalyBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Sinclair J WieserCanadaAmy Elsner NEW
Francesco N CaldareraSpainAnna Fali RENEWAL
Isabel N AlbaresCanadaAmy Elsner QUALIFIED
Rodrigues E ShinkoBrazilBernardo Dominic NEGOTIATION
Nicolas E BowleyArgentinaOnyama Limba NEGOTIATION
Alejandro L SaylorsGermanyXuxue Feng PROPOSAL
James S FigeroaJapanIoni Bowcher NEGOTIATION
Arvin R TollnerFranceBernardo Dominic UNQUALIFIED
Kaitlin T PoquetteIndiaXuxue Feng RENEWAL
Chavez F ButtCanadaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa L WhobreyFrance2026-07-16Printing Dimensions PROPOSAL60Ivan Magalhaes
1001Tony E FerenczBrazil2026-07-21Rousseaux, Michael Esq RENEWAL67Asiya Javayant
1002Morrow O DoeItaly2026-07-31Printing Dimensions QUALIFIED86Amy Elsner
1003Francesco O MaletCanada2026-07-29Commercial Press NEGOTIATION66Ivan Magalhaes
1004Sinclair R SergiRussia2026-08-11Buckley Miller Wright NEW28Xuxue Feng
1005Smith T BologniaIndia2026-08-11Feltz Printing Service NEW26Xuxue Feng
1006Nicolas Z CaudyFrance2026-07-25Feltz Printing Service UNQUALIFIED47Stephen Shaw
1007Aruna E StockhamIndia2026-08-10Buckley Miller Wright QUALIFIED62Ioni Bowcher
1008Mayumi R OstroskyIndia2026-08-02Feltz Printing Service PROPOSAL98Ivan Magalhaes
1009Ivar J WieserItaly2026-08-01Dorl, James J Esq PROPOSAL20Stephen Shaw
1010Leon Y RimArgentina2026-07-22Chemel, James L Cpa RENEWAL18Amy Elsner
1011Emily I SlusarskiAustralia2026-08-04Chanay, Jeffrey A Esq NEW45Ioni Bowcher
1012Claire I WaycottUnited Kingdom2026-08-12Feltz Printing Service NEGOTIATION33Amy Elsner
1013Greenwood W WhobreyAustralia2026-08-01Commercial Press RENEWAL37Amy Elsner
1014Mujtaba M SaylorsSpain2026-08-03Chemel, James L Cpa NEGOTIATION61Onyama Limba
1015Emily R AlbaresCanada2026-07-19Benton, John B Jr RENEWAL39Asiya Javayant
1016Jefferson N KuskoGermany2026-07-21King, Christopher A Esq RENEWAL83Asiya Javayant
1017Smith R OstroskyItaly2026-08-10Rangoni Of Florence UNQUALIFIED11Amy Elsner
1018Tony R BologniaUnited Kingdom2026-08-12Commercial Press NEGOTIATION84Anna Fali
1019Maisha N DilliardBrazil2026-08-14King, Christopher A Esq UNQUALIFIED56Ivan Magalhaes
1020Jeanfrancois L StockhamIndia2026-08-08Benton, John B Jr PROPOSAL55Xuxue Feng
1021Alejandro S PaprockiUnited Kingdom2026-07-22Rousseaux, Michael Esq RENEWAL72Ivan Magalhaes
1022Emily Q PaprockiUnited Kingdom2026-07-24Truhlar And Truhlar Attys RENEWAL56Ivan Magalhaes
1023Murillo I GauchoRussia2026-07-18Benton, John B Jr NEGOTIATION87Stephen Shaw
1024Chavez L DilliardIndia2026-08-01Morlong Associates QUALIFIED56Elwin Sharvill
1025Jones A NestleFrance2026-07-17Chapman, Ross E Esq NEGOTIATION55Elwin Sharvill
1026Leja P MaletSpain2026-07-22Benton, John B Jr QUALIFIED56Ivan Magalhaes
1027Kadeem B SergiSpain2026-07-23Truhlar And Truhlar Attys PROPOSAL39Onyama Limba
1028Isabel K MaletJapan2026-08-02Buckley Miller Wright NEW67Bernardo Dominic
1029Smith W WieserArgentina2026-07-26Morlong Associates QUALIFIED34Asiya Javayant
1030Mujtaba W BriddickItaly2026-07-24Morlong Associates UNQUALIFIED39Asiya Javayant
1031Ashley I CaudyJapan2026-08-08Commercial Press NEW35Ivan Magalhaes
1032Stacey I CaldareraCanada2026-08-10Feiner Bros UNQUALIFIED12Anna Fali
1033Ashley Q NestleJapan2026-07-27Printing Dimensions RENEWAL51Elwin Sharvill
1034Ricardo S GlickItaly2026-07-22Feltz Printing Service PROPOSAL40Bernardo Dominic
1035Rodrigues O RoysterAustralia2026-08-03Rousseaux, Michael Esq NEGOTIATION72Onyama Limba
1036Leon Q PoquetteArgentina2026-07-28Commercial Press NEGOTIATION26Ivan Magalhaes
1037Deepesh I MacleadBrazil2026-08-02Truhlar And Truhlar Attys RENEWAL99Ioni Bowcher
1038Deepesh M SergiBrazil2026-08-05Dorl, James J Esq PROPOSAL85Asiya Javayant
1039Murillo M PerinRussia2026-08-11Benton, John B Jr QUALIFIED75Elwin Sharvill
1040Greenwood K SaylorsSpain2026-08-14Feiner Bros PROPOSAL36Elwin Sharvill
1041Silvio T NestleGermany2026-08-12Buckley Miller Wright NEW88Amy Elsner
1042Isabel B GlickGermany2026-08-07Feltz Printing Service PROPOSAL94Ioni Bowcher
1043Costa U GlickJapan2026-07-22Feltz Printing Service NEGOTIATION44Onyama Limba
1044Jennifer R KuskoRussia2026-08-04Benton, John B Jr NEGOTIATION70Amy Elsner
1045Ivar S OstroskyRussia2026-07-31Dorl, James J Esq PROPOSAL3Bernardo Dominic
1046Deepesh G PoquetteJapan2026-07-16Chanay, Jeffrey A Esq NEGOTIATION56Ivan Magalhaes
1047Leja X BowleyFrance2026-07-23Chapman, Ross E Esq UNQUALIFIED84Ivan Magalhaes
1048Clifford M CaudySpain2026-07-18Dorl, James J Esq PROPOSAL90Anna Fali
1049Alejandro X KolmetzIndia2026-07-30Chanay, Jeffrey A Esq UNQUALIFIED7Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Isabel M MaletSpainOnyama Limba RENEWAL
Smith I TollnerCanadaBernardo Dominic NEW
Antonio C SchemmerAustraliaAnna Fali RENEWAL
Maria X SaylorsSpainElwin Sharvill UNQUALIFIED
Izzy S DarakjyItalyBernardo Dominic PROPOSAL
Deepesh D GillianGermanyElwin Sharvill RENEWAL
Ivar L DilliardGermanyXuxue Feng RENEWAL
Smith M BologniaGermanyStephen Shaw RENEWAL
Ashley P WhobreyAustraliaIvan Magalhaes PROPOSAL
Sinclair M ButtIndiaBernardo Dominic NEGOTIATION
Morrow L BriddickRussiaElwin Sharvill QUALIFIED
Nicolas L SlusarskiJapanXuxue Feng PROPOSAL
Deepesh D AlbaresSpainAnna Fali RENEWAL
Darci G GarufiIndiaBernardo Dominic PROPOSAL
Adams P AmigonRussiaAsiya Javayant UNQUALIFIED
Francesco C MarrierSpainBernardo Dominic PROPOSAL
Smith A AmigonIndiaOnyama Limba QUALIFIED
Faith X NestleItalyOnyama Limba NEGOTIATION
Greenwood J DarakjyArgentinaBernardo Dominic NEW
Alejandro N WieserUnited KingdomBernardo Dominic NEGOTIATION
Arvin K VocelkaUnited KingdomAnna Fali NEGOTIATION
Francesco V NestleFranceBernardo Dominic NEW
Ricardo H TollnerBrazilAnna Fali QUALIFIED
Maria Z VenereIndiaElwin Sharvill UNQUALIFIED
Faith F VocelkaGermanyXuxue Feng PROPOSAL
Francesco B StockhamAustraliaAmy Elsner RENEWAL
Misaki B BologniaSpainAmy Elsner QUALIFIED
Rodrigues T PaprockiAustraliaIoni Bowcher UNQUALIFIED
Faith G DarakjyCanadaAsiya Javayant NEW
Greenwood F StockhamSpainBernardo Dominic QUALIFIED
Morrow Z NestleSpainStephen Shaw NEW
Adams T RulapaughUnited KingdomStephen Shaw RENEWAL
Alejandro V PaprockiItalyStephen Shaw NEW
Francesco G GlickBrazilOnyama Limba RENEWAL
Aditya U PerinUnited KingdomAmy Elsner QUALIFIED
Johnson R StensethRussiaAmy Elsner RENEWAL
Octavia E SlusarskiItalyBernardo Dominic RENEWAL
Rodrigues Z BowleyAustraliaIvan Magalhaes NEW
Adams I GillianAustraliaIvan Magalhaes UNQUALIFIED
Jones A BologniaRussiaAsiya Javayant UNQUALIFIED
Darci L FigeroaIndiaAnna Fali RENEWAL
Faith Z VenereGermanyXuxue Feng UNQUALIFIED
Maria Z BowleyArgentinaOnyama Limba PROPOSAL
Tony N SchemmerAustraliaIvan Magalhaes NEW
Maisha P KolmetzFranceAsiya Javayant NEW
Emily R MorascaArgentinaBernardo Dominic QUALIFIED
Maria H WaycottSpainBernardo Dominic QUALIFIED
Johnson T DoeUnited KingdomIvan Magalhaes NEGOTIATION
Tony H SaylorsGermanyAnna Fali NEGOTIATION
Leon C PaprockiRussiaElwin Sharvill NEW
Frozen Columns
Name
Nicolas N Ostrosky
Rodrigues A Sergi
Chavez C Caudy
Faith P Rulapaugh
Aruna T Gillian
Cody Y Bowley
Jennifer M Rulapaugh
Maisha V Darakjy
Maria B Stenseth
Clifford B Schemmer
Munro B Sergi
Faith P Butt
Cody U Tollner
Isabel H Paprocki
Clifford Y Morasca
Misaki P Amigon
Mujtaba O Gaucho
Emily G Malet
Antonio T Shinko
Deepesh L Slusarski
Leon Z Figeroa
Misaki Z Perin
Jones N Schemmer
Mayumi I Whobrey
Ricardo X Caldarera
Chavez Y Gillian
Ivar E Doe
Silvio G Vocelka
Aditya R Paprocki
Isabel J Vocelka
Francesco V Caldarera
Munro F Malet
Juan H Garufi
Munro J Malet
Misaki E Chui
Greenwood M Bolognia
Silvio J Ferencz
Claire N Gillian
Wickens D Slusarski
Julie B Foller
David Q Campain
Chavez H Saylors
Nicolas S Flosi
Jennifer F Waycott
Claire I Kolmetz
Deepesh A Figeroa
Jennifer S Doe
Faith U Campain
Jeanfrancois J Oldroyd
Wickens X Maclead
IdCountryDate
1000Australia2026-07-26
1001United Kingdom2026-07-16
1002United Kingdom2026-07-27
1003United Kingdom2026-07-23
1004Japan2026-08-10
1005Japan2026-08-12
1006Canada2026-08-01
1007United Kingdom2026-07-19
1008Spain2026-08-06
1009United Kingdom2026-07-23
1010Canada2026-07-20
1011Germany2026-08-09
1012Italy2026-07-26
1013Germany2026-07-29
1014United Kingdom2026-08-08
1015Japan2026-08-05
1016France2026-08-05
1017Germany2026-08-07
1018Brazil2026-08-03
1019Germany2026-08-08
1020Russia2026-07-31
1021Japan2026-08-01
1022Brazil2026-07-25
1023Spain2026-07-28
1024Canada2026-07-17
1025Australia2026-08-14
1026Spain2026-07-30
1027Brazil2026-08-02
1028Italy2026-08-14
1029France2026-07-17
1030Spain2026-08-11
1031United Kingdom2026-08-07
1032Spain2026-07-17
1033Canada2026-07-24
1034Argentina2026-08-07
1035India2026-07-22
1036Argentina2026-07-26
1037Spain2026-08-07
1038Australia2026-07-28
1039France2026-08-03
1040Russia2026-08-01
1041Canada2026-07-18
1042United Kingdom2026-07-19
1043Germany2026-07-29
1044Japan2026-07-18
1045Canada2026-07-29
1046France2026-07-28
1047Italy2026-07-22
1048Spain2026-08-11
1049France2026-08-02

On-Demand Data

NameIdCountryDate
Johnson G Bowley1000Germany2026-07-20
Johnson P Maclead1001Brazil2026-08-10
Smith W Briddick1002India2026-07-28
Leja S Stenseth1003Italy2026-08-08
Nicolas P Stockham1004United Kingdom2026-07-21
Leja P Bolognia1005Italy2026-08-14
Kadeem T Rim1006Spain2026-07-25
David R Oldroyd1007Russia2026-08-01
Faith X Doe1008Australia2026-07-16
Jeanfrancois Q Oldroyd1009India2026-08-05
Salvatore W Nicka1010India2026-08-04
Misaki L Sergi1011Russia2026-07-18
Leja C Kolmetz1012Italy2026-07-23
Cody Z Kusko1013United Kingdom2026-08-12
Juan S Malet1014Italy2026-08-03
Leja V Kolmetz1015Germany2026-07-18
Adams L Glick1016Spain2026-08-01
Ashley Y Caudy1017Australia2026-07-25
Leon S Chui1018Spain2026-07-16
Cody C Darakjy1019Brazil2026-08-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer B AlbaresCanadaAmy Elsner UNQUALIFIED
Leja W IturbideUnited KingdomBernardo Dominic RENEWAL
Cody Z CampainUnited KingdomAsiya Javayant PROPOSAL
Alejandro W FollerUnited KingdomAsiya Javayant PROPOSAL
Mayumi W PoquetteUnited KingdomIvan Magalhaes UNQUALIFIED
Octavia M VenereJapanXuxue Feng NEW
Jefferson F FlosiAustraliaAmy Elsner NEGOTIATION
Tony Z GlickFranceStephen Shaw QUALIFIED
Johnson R IturbideBrazilAmy Elsner RENEWAL
Claire K ShinkoSpainAnna Fali RENEWAL
Stacey L CaudyFranceAmy Elsner PROPOSAL
Kaitlin M DoeBrazilIoni Bowcher QUALIFIED
Kaitlin A CaldareraSpainOnyama Limba PROPOSAL
Izzy B AlbaresAustraliaStephen Shaw PROPOSAL
Maisha E MacleadArgentinaAnna Fali NEW
Rodrigues G KolmetzCanadaAnna Fali PROPOSAL
Stacey I MaletBrazilIoni Bowcher RENEWAL
Wickens J ButtGermanyElwin Sharvill QUALIFIED
Clifford V SergiFranceIoni Bowcher NEW
Maria X GauchoJapanIoni Bowcher NEGOTIATION
David V MacleadJapanStephen Shaw UNQUALIFIED
Antonio Y WhobreyJapanIvan Magalhaes NEGOTIATION
Mujtaba O RulapaughFranceAmy Elsner RENEWAL
Faith J StockhamArgentinaIoni Bowcher NEGOTIATION
David H VenereFranceOnyama Limba NEW
Mayumi S OstroskyJapanElwin Sharvill NEGOTIATION
Misaki F WaycottIndiaIoni Bowcher UNQUALIFIED
Juan R StockhamAustraliaIvan Magalhaes NEW
Aditya L SchemmerCanadaStephen Shaw UNQUALIFIED
Maisha B ShinkoAustraliaOnyama Limba RENEWAL
Deepesh M InouyeArgentinaAnna Fali PROPOSAL
Morrow M PaprockiIndiaIvan Magalhaes PROPOSAL
Aika A AlbaresRussiaAmy Elsner NEW
Leja F MaletItalyXuxue Feng PROPOSAL
Juan U StockhamRussiaAmy Elsner NEGOTIATION
Juan A FerenczArgentinaXuxue Feng PROPOSAL
Kadeem T InouyeRussiaStephen Shaw NEW
David Y WhobreyFranceIvan Magalhaes NEW
Deepesh X CaldareraAustraliaIoni Bowcher QUALIFIED
Antonio T RimSpainXuxue 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>