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
Kaitlin K VocelkaGermanyStephen Shaw QUALIFIED
Stacey C KuskoFranceIoni Bowcher UNQUALIFIED
Julie L FollerRussiaAnna Fali UNQUALIFIED
Ashley S BriddickRussiaAnna Fali NEGOTIATION
Arvin J NestleItalyOnyama Limba NEW
Leja K DarakjyRussiaIoni Bowcher QUALIFIED
Sinclair C TollnerItalyAmy Elsner NEW
Ricardo N FollerCanadaAnna Fali NEW
Arvin M DarakjyGermanyXuxue Feng PROPOSAL
Arvin L KolmetzCanadaStephen Shaw PROPOSAL
Deepesh H MacleadItalyOnyama Limba NEGOTIATION
Kaitlin K SergiFranceBernardo Dominic PROPOSAL
Silvio H PerinGermanyAnna Fali RENEWAL
Costa H GauchoJapanIvan Magalhaes PROPOSAL
Tony X WaycottArgentinaBernardo Dominic QUALIFIED
Kadeem I MorascaBrazilAsiya Javayant QUALIFIED
Arvin M NickaCanadaElwin Sharvill PROPOSAL
David O FerenczUnited KingdomIvan Magalhaes PROPOSAL
Jennifer I MacleadArgentinaAnna Fali NEW
Salvatore R TollnerBrazilOnyama Limba RENEWAL
Claire Z NickaItalyIvan Magalhaes QUALIFIED
Tony X RimAustraliaAsiya Javayant PROPOSAL
Leon I RimCanadaXuxue Feng RENEWAL
Faith M WhobreyBrazilAnna Fali QUALIFIED
Rodrigues Y OstroskyArgentinaAmy Elsner NEW
David F WieserRussiaAnna Fali PROPOSAL
James E SchemmerJapanOnyama Limba QUALIFIED
James U FollerCanadaElwin Sharvill PROPOSAL
Antonio H SaylorsItalyIvan Magalhaes RENEWAL
Emily T SergiSpainXuxue Feng NEW
Alejandro I RoysterUnited KingdomAsiya Javayant NEW
Alejandro Z VenereRussiaStephen Shaw PROPOSAL
Francesco U SergiFranceAmy Elsner RENEWAL
Johnson Z RulapaughItalyAnna Fali NEW
Maisha F SaylorsIndiaXuxue Feng NEGOTIATION
Adams B VenereIndiaAsiya Javayant NEW
Aditya F FollerArgentinaElwin Sharvill UNQUALIFIED
Isabel Q BriddickGermanyAmy Elsner RENEWAL
Emily A OstroskyFranceAmy Elsner PROPOSAL
Sinclair J RulapaughJapanXuxue Feng RENEWAL
Kaitlin J WaycottIndiaStephen Shaw PROPOSAL
Ivar Q MacleadFranceStephen Shaw RENEWAL
Deepesh U ChuiIndiaElwin Sharvill PROPOSAL
Jefferson F StensethJapanXuxue Feng RENEWAL
Ivar T GillianSpainIoni Bowcher UNQUALIFIED
Misaki N MaletItalyIvan Magalhaes QUALIFIED
Misaki Q BologniaIndiaAsiya Javayant PROPOSAL
Ashley E ButtIndiaAsiya Javayant NEW
Kaitlin V SchemmerRussiaAsiya Javayant NEGOTIATION
Alejandro W StensethRussiaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Stacey P DilliardCanadaAmy Elsner UNQUALIFIED
Deepesh E PoquetteJapanXuxue Feng NEW
Johnson T NestleAustraliaAnna Fali UNQUALIFIED
Morrow I WhobreyIndiaIvan Magalhaes PROPOSAL
Izzy H DilliardBrazilAsiya Javayant UNQUALIFIED
Aditya Q BowleyAustraliaElwin Sharvill RENEWAL
Stacey Q IturbideUnited KingdomAnna Fali NEGOTIATION
Greenwood P SaylorsSpainOnyama Limba NEGOTIATION
Jennifer I SaylorsAustraliaIvan Magalhaes RENEWAL
Juan F OstroskyArgentinaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones V SaylorsRussia2026-08-08Chemel, James L Cpa RENEWAL77Stephen Shaw
1001Jennifer B DoeAustralia2026-08-05Printing Dimensions QUALIFIED48Amy Elsner
1002Cody K OldroydIndia2026-07-27Chapman, Ross E Esq NEGOTIATION18Amy Elsner
1003Murillo D GlickSpain2026-07-30Commercial Press QUALIFIED72Onyama Limba
1004Darci J GillianAustralia2026-08-03Benton, John B Jr NEGOTIATION86Xuxue Feng
1005Sinclair L TollnerGermany2026-08-06Chanay, Jeffrey A Esq UNQUALIFIED58Ioni Bowcher
1006Salvatore X WieserCanada2026-07-27Commercial Press PROPOSAL75Ivan Magalhaes
1007Nicolas J OldroydGermany2026-07-22Printing Dimensions NEGOTIATION73Stephen Shaw
1008Mujtaba T WieserCanada2026-08-05Rousseaux, Michael Esq PROPOSAL56Ivan Magalhaes
1009Silvio V KuskoFrance2026-07-30King, Christopher A Esq NEGOTIATION69Ivan Magalhaes
1010Munro F ChuiJapan2026-08-09Rousseaux, Michael Esq NEGOTIATION98Amy Elsner
1011Deepesh H RimFrance2026-07-25Commercial Press NEGOTIATION4Anna Fali
1012Silvio G IturbideSpain2026-07-25Commercial Press QUALIFIED96Elwin Sharvill
1013Silvio J MaletFrance2026-08-11Feiner Bros PROPOSAL50Onyama Limba
1014Leon G WieserArgentina2026-08-19Chemel, James L Cpa UNQUALIFIED74Ioni Bowcher
1015Kaitlin E GlickFrance2026-08-19Chapman, Ross E Esq PROPOSAL31Asiya Javayant
1016Johnson A KolmetzBrazil2026-08-16Printing Dimensions PROPOSAL34Ioni Bowcher
1017Chavez A MaletUnited Kingdom2026-08-12Chanay, Jeffrey A Esq PROPOSAL32Onyama Limba
1018Aika H RoysterCanada2026-08-07Chapman, Ross E Esq NEW94Onyama Limba
1019Isabel G RimUnited Kingdom2026-08-06Printing Dimensions RENEWAL5Onyama Limba
1020Wickens Z FlosiRussia2026-07-27Rangoni Of Florence RENEWAL19Elwin Sharvill
1021Clifford B BologniaArgentina2026-08-06Commercial Press QUALIFIED44Ioni Bowcher
1022Ashley S StockhamIndia2026-08-04Morlong Associates PROPOSAL32Anna Fali
1023Arvin J NickaJapan2026-08-19Chanay, Jeffrey A Esq UNQUALIFIED23Xuxue Feng
1024David D MarrierArgentina2026-08-08Rousseaux, Michael Esq RENEWAL52Stephen Shaw
1025Sinclair F PoquetteRussia2026-08-01King, Christopher A Esq QUALIFIED12Onyama Limba
1026Greenwood J FerenczRussia2026-08-15Benton, John B Jr UNQUALIFIED79Stephen Shaw
1027James B CaudyCanada2026-08-14Commercial Press PROPOSAL44Asiya Javayant
1028Smith I FlosiFrance2026-08-20Chemel, James L Cpa RENEWAL23Anna Fali
1029Claire D SergiGermany2026-08-13Truhlar And Truhlar Attys UNQUALIFIED83Stephen Shaw
1030Faith P RoysterIndia2026-08-19Feiner Bros QUALIFIED10Elwin Sharvill
1031Jefferson J GillianArgentina2026-07-24Dorl, James J Esq QUALIFIED92Bernardo Dominic
1032Kadeem Y SlusarskiGermany2026-07-24Benton, John B Jr PROPOSAL62Stephen Shaw
1033Aruna F MarrierJapan2026-08-15Chemel, James L Cpa NEW10Bernardo Dominic
1034Octavia K ChuiJapan2026-08-05Feiner Bros QUALIFIED93Stephen Shaw
1035James K BologniaJapan2026-08-13Benton, John B Jr RENEWAL67Asiya Javayant
1036Cody C RimJapan2026-08-02King, Christopher A Esq PROPOSAL73Stephen Shaw
1037Misaki Z StockhamBrazil2026-07-26King, Christopher A Esq PROPOSAL84Elwin Sharvill
1038Mayumi R SergiBrazil2026-07-23Chapman, Ross E Esq QUALIFIED29Anna Fali
1039Greenwood Q GlickIndia2026-08-04Morlong Associates UNQUALIFIED74Amy Elsner
1040Deepesh L IturbideAustralia2026-07-29Truhlar And Truhlar Attys NEGOTIATION22Elwin Sharvill
1041Ashley O SlusarskiAustralia2026-08-12Feiner Bros QUALIFIED14Elwin Sharvill
1042Leja J VocelkaJapan2026-07-26Truhlar And Truhlar Attys QUALIFIED70Onyama Limba
1043Kaitlin S GauchoRussia2026-07-24Dorl, James J Esq QUALIFIED12Onyama Limba
1044Kadeem M ShinkoAustralia2026-07-23Morlong Associates PROPOSAL41Xuxue Feng
1045Kadeem F VocelkaUnited Kingdom2026-08-13Chemel, James L Cpa QUALIFIED69Ivan Magalhaes
1046Leon L NickaUnited Kingdom2026-08-16Rangoni Of Florence RENEWAL14Onyama Limba
1047Nicolas U CampainFrance2026-08-19Buckley Miller Wright UNQUALIFIED52Ivan Magalhaes
1048Aika D NickaItaly2026-08-14Feltz Printing Service PROPOSAL79Ioni Bowcher
1049Sinclair N OldroydArgentina2026-08-02Benton, John B Jr PROPOSAL57Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Munro P IturbideJapanBernardo Dominic RENEWAL
Misaki Z SaylorsCanadaIvan Magalhaes UNQUALIFIED
Murillo F NickaIndiaXuxue Feng UNQUALIFIED
Isabel A WaycottUnited KingdomAsiya Javayant NEGOTIATION
Jeanfrancois A FerenczSpainXuxue Feng RENEWAL
Rodrigues G AmigonItalyStephen Shaw RENEWAL
Johnson A CampainAustraliaStephen Shaw QUALIFIED
Alejandro I AlbaresSpainAmy Elsner RENEWAL
Clifford F FlosiJapanAsiya Javayant NEW
Johnson I WhobreyBrazilAmy Elsner NEGOTIATION
Jeanfrancois M MaletFranceElwin Sharvill QUALIFIED
Smith O CaudyGermanyOnyama Limba PROPOSAL
Arvin A CampainIndiaIvan Magalhaes PROPOSAL
Murillo Z MaletBrazilIoni Bowcher NEGOTIATION
Johnson F CaudyCanadaAnna Fali NEGOTIATION
Adams G NestleSpainElwin Sharvill UNQUALIFIED
Francesco N MaletArgentinaOnyama Limba NEW
Jeanfrancois U FerenczBrazilStephen Shaw NEGOTIATION
Jefferson L SlusarskiFranceAnna Fali UNQUALIFIED
Julie D PoquetteArgentinaAsiya Javayant QUALIFIED
Deepesh D RoysterFranceAsiya Javayant QUALIFIED
Claire E MaletGermanyOnyama Limba NEGOTIATION
James W ButtUnited KingdomStephen Shaw NEGOTIATION
Salvatore N NickaRussiaXuxue Feng NEGOTIATION
Morrow R NickaArgentinaOnyama Limba NEGOTIATION
Smith W InouyeBrazilOnyama Limba RENEWAL
Emily S SchemmerBrazilOnyama Limba NEW
Johnson V BologniaRussiaOnyama Limba RENEWAL
Kadeem E VocelkaArgentinaAmy Elsner RENEWAL
Wickens Q GauchoArgentinaStephen Shaw NEGOTIATION
Misaki U AlbaresIndiaAmy Elsner UNQUALIFIED
Jeanfrancois A FerenczItalyAnna Fali UNQUALIFIED
Ashley E RutaFranceStephen Shaw NEW
Claire J GlickRussiaElwin Sharvill UNQUALIFIED
Emily L ChuiSpainOnyama Limba NEW
Julie F PaprockiArgentinaAmy Elsner RENEWAL
Jefferson V FerenczGermanyStephen Shaw NEW
Murillo U GarufiArgentinaAnna Fali NEGOTIATION
Aditya G RoysterItalyXuxue Feng PROPOSAL
Alejandro A GauchoRussiaStephen Shaw UNQUALIFIED
Nicolas U OstroskyRussiaXuxue Feng NEGOTIATION
Jefferson Q GillianBrazilIvan Magalhaes PROPOSAL
Chavez V WhobreyCanadaOnyama Limba PROPOSAL
Misaki R PoquetteUnited KingdomAnna Fali UNQUALIFIED
Rodrigues H MaletArgentinaAsiya Javayant NEW
Sinclair H WieserFranceAmy Elsner NEW
Octavia H PerinFranceBernardo Dominic RENEWAL
Leja V FerenczRussiaOnyama Limba UNQUALIFIED
Maisha Q DarakjyCanadaAnna Fali NEW
Kaitlin O BowleyBrazilAsiya Javayant NEGOTIATION
Frozen Columns
Name
David Z Gillian
Kaitlin D Iturbide
Munro K Sergi
Tony K Glick
David U Nicka
Tony O Malet
Maria X Malet
Jeanfrancois B Gillian
James T Morasca
Mujtaba L Saylors
Ivar F Garufi
Clifford R Malet
Misaki E Caldarera
Darci H Marrier
Kaitlin U Bowley
Alejandro J Malet
Wickens B Sergi
Francesco N Wieser
Mayumi F Waycott
Salvatore B Kusko
Ricardo R Butt
Stacey V Foller
David S Glick
David C Tollner
Mujtaba J Oldroyd
Julie I Amigon
Morrow S Malet
Mujtaba H Venere
Darci D Albares
Claire W Amigon
Maisha K Chui
Mayumi I Nestle
Rodrigues X Ruta
Jefferson W Malet
Leon H Nestle
Smith L Figeroa
Kadeem G Nestle
Wickens W Flosi
Rodrigues N Wieser
Kadeem D Wieser
Aditya P Morasca
Maisha V Shinko
Silvio F Butt
Octavia H Briddick
Aditya Y Chui
Francesco H Rulapaugh
Smith X Shinko
Johnson U Flosi
Salvatore J Chui
Aruna Q Bolognia
IdCountryDate
1000India2026-07-28
1001Germany2026-07-31
1002Italy2026-08-17
1003Spain2026-08-20
1004Argentina2026-08-11
1005United Kingdom2026-07-24
1006Argentina2026-08-17
1007Argentina2026-08-02
1008United Kingdom2026-08-13
1009Spain2026-07-30
1010Brazil2026-08-16
1011Russia2026-07-30
1012Russia2026-08-01
1013Brazil2026-08-09
1014Brazil2026-07-29
1015Argentina2026-08-17
1016India2026-08-14
1017Italy2026-07-29
1018Argentina2026-08-12
1019Argentina2026-08-05
1020Russia2026-08-01
1021Germany2026-07-23
1022Canada2026-08-08
1023Brazil2026-08-02
1024Russia2026-08-10
1025Russia2026-08-09
1026Russia2026-08-05
1027Brazil2026-07-27
1028Italy2026-07-27
1029Canada2026-08-05
1030Australia2026-07-29
1031Russia2026-08-05
1032Germany2026-07-22
1033Spain2026-07-30
1034Canada2026-07-28
1035France2026-08-01
1036India2026-08-20
1037Germany2026-07-25
1038Canada2026-08-08
1039Canada2026-08-03
1040Russia2026-07-25
1041Argentina2026-07-26
1042India2026-08-09
1043India2026-07-30
1044Canada2026-07-26
1045United Kingdom2026-08-08
1046Italy2026-08-06
1047Italy2026-08-02
1048Argentina2026-07-25
1049United Kingdom2026-07-23

On-Demand Data

NameIdCountryDate
Isabel R Maclead1000Italy2026-08-03
Aditya H Stenseth1001Russia2026-08-10
Jennifer N Marrier1002France2026-08-11
Francesco D Oldroyd1003India2026-08-07
Silvio E Rulapaugh1004Spain2026-08-06
Misaki R Stenseth1005Brazil2026-08-16
Adams K Poquette1006United Kingdom2026-08-09
Deepesh K Caldarera1007United Kingdom2026-07-23
Claire U Waycott1008France2026-08-11
James T Inouye1009Russia2026-07-28
Deepesh Y Slusarski1010Canada2026-07-27
Mujtaba W Rulapaugh1011United Kingdom2026-08-14
Sinclair M Ruta1012Australia2026-08-19
Faith W Figeroa1013Italy2026-08-02
Misaki Y Garufi1014United Kingdom2026-07-25
Wickens C Morasca1015Germany2026-08-15
Aditya E Doe1016Argentina2026-08-16
Jefferson G Ostrosky1017Germany2026-08-06
Jefferson G Kolmetz1018France2026-07-27
Octavia S Garufi1019Germany2026-08-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh U MacleadUnited KingdomBernardo Dominic PROPOSAL
Wickens O FlosiFranceIoni Bowcher RENEWAL
Jefferson F DilliardJapanBernardo Dominic RENEWAL
Morrow I MaletCanadaElwin Sharvill UNQUALIFIED
Mujtaba W FlosiFranceBernardo Dominic NEGOTIATION
Darci I StockhamFranceAsiya Javayant RENEWAL
Rodrigues B DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Sinclair O FollerFranceAsiya Javayant NEGOTIATION
Aika R FlosiItalyAnna Fali QUALIFIED
Ashley Q CampainArgentinaBernardo Dominic RENEWAL
Rodrigues Z FerenczArgentinaBernardo Dominic QUALIFIED
Adams F GauchoGermanyAnna Fali NEGOTIATION
Kaitlin W OldroydJapanAnna Fali PROPOSAL
Izzy V MaletJapanIoni Bowcher RENEWAL
Murillo T CaldareraJapanAnna Fali UNQUALIFIED
Cody W WaycottIndiaStephen Shaw PROPOSAL
Johnson U MacleadIndiaXuxue Feng PROPOSAL
Sinclair C OstroskyFranceBernardo Dominic UNQUALIFIED
Murillo D MaletUnited KingdomAmy Elsner UNQUALIFIED
Chavez H KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Maria O VocelkaAustraliaStephen Shaw RENEWAL
Arvin Z IturbideSpainOnyama Limba NEW
Misaki U CaldareraFranceElwin Sharvill QUALIFIED
Ivar S NestleArgentinaAmy Elsner NEGOTIATION
Mujtaba D MaletBrazilAsiya Javayant NEGOTIATION
Nicolas K RoysterGermanyIvan Magalhaes NEGOTIATION
James P WhobreyUnited KingdomStephen Shaw NEW
Jeanfrancois B FerenczIndiaAnna Fali UNQUALIFIED
Faith Z AlbaresFranceBernardo Dominic PROPOSAL
Clifford J RutaFranceStephen Shaw UNQUALIFIED
Costa G CampainItalyElwin Sharvill PROPOSAL
Octavia L CaudyGermanyBernardo Dominic PROPOSAL
Nicolas F IturbideArgentinaOnyama Limba NEW
Julie P DoeBrazilElwin Sharvill UNQUALIFIED
Ricardo O SaylorsArgentinaAmy Elsner UNQUALIFIED
Maisha K CaldareraItalyAsiya Javayant RENEWAL
Leon F IturbideUnited KingdomOnyama Limba PROPOSAL
Ivar F GauchoItalyAsiya Javayant NEW
Francesco B RimJapanIoni Bowcher PROPOSAL
Maria X SergiFranceXuxue Feng RENEWAL

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