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
Ashley I GarufiGermanyOnyama Limba PROPOSAL
Leon W GarufiGermanyAsiya Javayant UNQUALIFIED
Darci D PoquetteFranceBernardo Dominic QUALIFIED
Leja E DilliardGermanyIoni Bowcher QUALIFIED
Emily M SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Tony W WaycottArgentinaXuxue Feng QUALIFIED
Rodrigues N FigeroaGermanyIoni Bowcher NEGOTIATION
Tony H MarrierArgentinaOnyama Limba UNQUALIFIED
Faith T OldroydIndiaAsiya Javayant NEW
Maisha J BowleyIndiaBernardo Dominic PROPOSAL
Arvin F NickaFranceAnna Fali NEW
Izzy Z ChuiJapanBernardo Dominic UNQUALIFIED
Maria Z GarufiCanadaIoni Bowcher PROPOSAL
Costa Q SlusarskiCanadaOnyama Limba NEGOTIATION
Faith M FigeroaCanadaAnna Fali UNQUALIFIED
Francesco J ButtJapanAsiya Javayant RENEWAL
Izzy N RulapaughRussiaIvan Magalhaes NEW
Munro Q BriddickIndiaIoni Bowcher UNQUALIFIED
Smith X OstroskyJapanStephen Shaw QUALIFIED
Salvatore G AlbaresBrazilStephen Shaw QUALIFIED
Silvio X BologniaBrazilElwin Sharvill QUALIFIED
Smith V OldroydSpainIoni Bowcher QUALIFIED
Jefferson X FlosiJapanAmy Elsner PROPOSAL
Salvatore S ShinkoGermanyAmy Elsner RENEWAL
Morrow F AlbaresIndiaAsiya Javayant NEW
Silvio S StensethBrazilStephen Shaw PROPOSAL
Darci L MacleadRussiaAmy Elsner RENEWAL
Clifford H AlbaresSpainIoni Bowcher NEGOTIATION
Adams L FerenczIndiaXuxue Feng PROPOSAL
Kadeem T RimSpainXuxue Feng UNQUALIFIED
Izzy V MacleadBrazilIvan Magalhaes NEGOTIATION
Ricardo G SergiUnited KingdomOnyama Limba PROPOSAL
Maria S IturbideIndiaBernardo Dominic PROPOSAL
James M RutaBrazilXuxue Feng RENEWAL
Maria A DarakjyArgentinaBernardo Dominic RENEWAL
Morrow W FollerFranceIvan Magalhaes NEGOTIATION
Nicolas E NickaJapanStephen Shaw QUALIFIED
Mujtaba G KuskoFranceIoni Bowcher RENEWAL
Silvio L CaudyJapanAnna Fali RENEWAL
Leja H SlusarskiJapanElwin Sharvill NEGOTIATION
Johnson E OstroskyGermanyAnna Fali PROPOSAL
Silvio J InouyeIndiaBernardo Dominic NEGOTIATION
Julie Q DarakjyBrazilIoni Bowcher RENEWAL
Smith C AmigonJapanOnyama Limba PROPOSAL
Leja N MaletIndiaElwin Sharvill PROPOSAL
Isabel C MaletUnited KingdomIvan Magalhaes RENEWAL
Salvatore F BowleyIndiaOnyama Limba RENEWAL
Aditya A GauchoArgentinaXuxue Feng PROPOSAL
Alejandro S DarakjyCanadaIvan Magalhaes RENEWAL
Darci A SchemmerUnited KingdomIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Chavez E StensethAustraliaAmy Elsner NEGOTIATION
Aditya I WhobreyIndiaBernardo Dominic NEW
Rodrigues X AmigonUnited KingdomStephen Shaw NEGOTIATION
Leja J CaldareraArgentinaIvan Magalhaes PROPOSAL
Francesco E DarakjySpainStephen Shaw PROPOSAL
Costa A StensethJapanStephen Shaw QUALIFIED
Claire M CaudyItalyAnna Fali PROPOSAL
Munro B InouyeArgentinaAnna Fali PROPOSAL
Costa I MaletCanadaXuxue Feng NEW
Stacey J SergiGermanyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James J VenereRussia2026-07-25Truhlar And Truhlar Attys PROPOSAL30Anna Fali
1001Mujtaba Q AlbaresIndia2026-07-25Morlong Associates NEW10Asiya Javayant
1002Morrow O BologniaAustralia2026-07-29Benton, John B Jr NEW36Stephen Shaw
1003Jefferson R BowleyCanada2026-07-14Dorl, James J Esq NEW18Ivan Magalhaes
1004Francesco Z BriddickBrazil2026-08-01Feiner Bros NEW32Ivan Magalhaes
1005Kaitlin H OldroydAustralia2026-07-30Rangoni Of Florence RENEWAL11Ioni Bowcher
1006Jennifer L SchemmerIndia2026-07-17Chanay, Jeffrey A Esq NEGOTIATION48Stephen Shaw
1007Adams B ShinkoItaly2026-07-13Printing Dimensions QUALIFIED7Anna Fali
1008Smith G SlusarskiBrazil2026-07-13Dorl, James J Esq RENEWAL53Elwin Sharvill
1009Jones J SlusarskiCanada2026-07-18Benton, John B Jr QUALIFIED10Stephen Shaw
1010Faith K GauchoBrazil2026-07-28Rangoni Of Florence PROPOSAL80Onyama Limba
1011Claire S MacleadBrazil2026-07-16Rangoni Of Florence NEGOTIATION2Anna Fali
1012Jennifer L MaletGermany2026-07-27Chanay, Jeffrey A Esq QUALIFIED43Ioni Bowcher
1013Deepesh V MorascaCanada2026-07-21Printing Dimensions QUALIFIED44Bernardo Dominic
1014Izzy F VenereRussia2026-08-05King, Christopher A Esq UNQUALIFIED94Ioni Bowcher
1015Isabel Z StockhamBrazil2026-07-27Chemel, James L Cpa UNQUALIFIED29Elwin Sharvill
1016Izzy A KolmetzJapan2026-07-28King, Christopher A Esq RENEWAL45Elwin Sharvill
1017Adams S FollerArgentina2026-07-22Truhlar And Truhlar Attys QUALIFIED88Asiya Javayant
1018Kaitlin M NestleIndia2026-07-25Dorl, James J Esq UNQUALIFIED14Xuxue Feng
1019Misaki M PaprockiFrance2026-07-13Rangoni Of Florence NEGOTIATION3Amy Elsner
1020Octavia H DarakjyAustralia2026-08-08Rousseaux, Michael Esq RENEWAL37Xuxue Feng
1021Greenwood S SchemmerCanada2026-07-12Rangoni Of Florence PROPOSAL62Ioni Bowcher
1022Aika R GillianSpain2026-07-21Truhlar And Truhlar Attys QUALIFIED59Bernardo Dominic
1023Kadeem L GauchoItaly2026-07-27Benton, John B Jr NEW97Stephen Shaw
1024Nicolas V BowleyRussia2026-08-04Truhlar And Truhlar Attys RENEWAL52Elwin Sharvill
1025Jeanfrancois C VocelkaUnited Kingdom2026-07-25Dorl, James J Esq QUALIFIED95Onyama Limba
1026Maisha W StockhamFrance2026-07-18Dorl, James J Esq NEW98Anna Fali
1027Cody C FollerCanada2026-07-28Chemel, James L Cpa RENEWAL51Elwin Sharvill
1028Nicolas B DoeItaly2026-07-28King, Christopher A Esq RENEWAL23Elwin Sharvill
1029Clifford J RutaAustralia2026-07-15Chemel, James L Cpa NEGOTIATION48Stephen Shaw
1030Alejandro S WhobreyFrance2026-07-28Rangoni Of Florence RENEWAL35Elwin Sharvill
1031Mujtaba F RulapaughAustralia2026-08-08Buckley Miller Wright NEGOTIATION66Xuxue Feng
1032Rodrigues K MaletSpain2026-07-21Buckley Miller Wright PROPOSAL80Elwin Sharvill
1033Aditya K NickaJapan2026-08-03Dorl, James J Esq QUALIFIED81Asiya Javayant
1034Mayumi G MacleadUnited Kingdom2026-08-02Chanay, Jeffrey A Esq NEW49Xuxue Feng
1035Misaki R CaudyAustralia2026-07-22Truhlar And Truhlar Attys PROPOSAL95Anna Fali
1036Jefferson B SchemmerCanada2026-07-29Rousseaux, Michael Esq UNQUALIFIED67Anna Fali
1037Julie J InouyeAustralia2026-07-27Rangoni Of Florence QUALIFIED77Anna Fali
1038Claire I RimIndia2026-08-02Morlong Associates UNQUALIFIED96Asiya Javayant
1039Wickens L OldroydSpain2026-07-22Truhlar And Truhlar Attys QUALIFIED4Elwin Sharvill
1040Kaitlin J MaletBrazil2026-07-18Rangoni Of Florence PROPOSAL52Onyama Limba
1041Alejandro K SaylorsFrance2026-08-04Buckley Miller Wright PROPOSAL43Ivan Magalhaes
1042Kadeem B KuskoArgentina2026-07-26Printing Dimensions RENEWAL37Amy Elsner
1043Salvatore V AlbaresIndia2026-07-30Chanay, Jeffrey A Esq NEW21Xuxue Feng
1044Munro S MarrierUnited Kingdom2026-07-31Feiner Bros UNQUALIFIED20Onyama Limba
1045Deepesh K DoeJapan2026-08-08Rangoni Of Florence RENEWAL29Anna Fali
1046Maria S DoeGermany2026-07-11Feltz Printing Service PROPOSAL39Amy Elsner
1047Maisha T RimBrazil2026-07-17Chapman, Ross E Esq NEW0Amy Elsner
1048Emily P SaylorsFrance2026-07-26Chanay, Jeffrey A Esq UNQUALIFIED89Bernardo Dominic
1049Emily J VocelkaUnited Kingdom2026-07-15Dorl, James J Esq QUALIFIED45Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Deepesh T AmigonGermanyStephen Shaw NEW
Aika J StockhamAustraliaBernardo Dominic PROPOSAL
Jefferson M RulapaughArgentinaAsiya Javayant NEGOTIATION
Jefferson Z CaldareraCanadaIoni Bowcher RENEWAL
Mayumi N StockhamSpainAnna Fali NEW
Julie O ChuiIndiaElwin Sharvill PROPOSAL
Maria X BriddickUnited KingdomAmy Elsner UNQUALIFIED
Silvio N WhobreyUnited KingdomElwin Sharvill PROPOSAL
Wickens J GillianItalyIvan Magalhaes NEGOTIATION
Chavez Z AmigonFranceAsiya Javayant PROPOSAL
Ivar K FigeroaIndiaIvan Magalhaes NEGOTIATION
Maria A GauchoUnited KingdomAnna Fali UNQUALIFIED
Antonio U FerenczCanadaBernardo Dominic UNQUALIFIED
Clifford S WhobreyFranceOnyama Limba QUALIFIED
Jefferson L GarufiIndiaOnyama Limba QUALIFIED
Ivar F WieserFranceBernardo Dominic RENEWAL
Ashley O ButtAustraliaAmy Elsner UNQUALIFIED
Aika F OstroskyAustraliaStephen Shaw PROPOSAL
Aruna I MaletSpainIoni Bowcher PROPOSAL
Jefferson B RimBrazilXuxue Feng UNQUALIFIED
Faith Q WieserUnited KingdomIvan Magalhaes RENEWAL
Julie M ButtCanadaIoni Bowcher PROPOSAL
Antonio U GillianRussiaIvan Magalhaes NEGOTIATION
Wickens V MaletIndiaBernardo Dominic NEW
Arvin Y SaylorsRussiaOnyama Limba NEW
Silvio D AlbaresAustraliaBernardo Dominic NEW
Greenwood T IturbideSpainOnyama Limba QUALIFIED
Leon U DarakjyIndiaElwin Sharvill PROPOSAL
Francesco B NickaIndiaXuxue Feng QUALIFIED
Maisha M WhobreyIndiaXuxue Feng PROPOSAL
Faith P RoysterFranceXuxue Feng NEGOTIATION
Jefferson W ButtUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro B WieserItalyXuxue Feng RENEWAL
Kadeem R WhobreyCanadaIvan Magalhaes UNQUALIFIED
Juan B CampainUnited KingdomAsiya Javayant UNQUALIFIED
Mayumi S OldroydItalyAmy Elsner NEW
Munro R IturbideItalyXuxue Feng NEGOTIATION
Smith O PerinBrazilAsiya Javayant UNQUALIFIED
Leon E ChuiArgentinaIoni Bowcher RENEWAL
Sinclair Y CampainIndiaStephen Shaw NEGOTIATION
Francesco R KolmetzCanadaStephen Shaw PROPOSAL
Deepesh V NestleBrazilIoni Bowcher NEGOTIATION
Adams P NestleUnited KingdomAmy Elsner RENEWAL
Aditya I VenereCanadaAnna Fali NEW
Costa A ChuiArgentinaIoni Bowcher QUALIFIED
Octavia Y WaycottJapanBernardo Dominic RENEWAL
Silvio N SergiCanadaXuxue Feng UNQUALIFIED
Faith J BriddickSpainElwin Sharvill NEGOTIATION
Aruna F MarrierArgentinaIoni Bowcher NEGOTIATION
Arvin G VocelkaIndiaAsiya Javayant PROPOSAL
Frozen Columns
Name
Clifford X Royster
Munro M Saylors
David T Caudy
Faith S Flosi
Stacey E Bolognia
Isabel N Ferencz
Jones N Marrier
Costa Y Marrier
Leja G Sergi
Juan X Campain
Wickens V Kolmetz
Maisha N Poquette
Stacey O Foller
Kaitlin Z Bowley
Francesco O Gillian
Munro L Tollner
Salvatore S Darakjy
Aditya G Poquette
Mujtaba R Malet
Jennifer M Ruta
Salvatore M Dilliard
Antonio I Morasca
Mujtaba J Morasca
Darci B Rim
Greenwood R Tollner
Stacey G Poquette
Ashley O Flosi
Wickens M Gaucho
Clifford N Venere
Izzy T Marrier
Mujtaba Y Caudy
Greenwood E Gillian
Arvin A Waycott
Ashley F Garufi
Morrow G Malet
Claire R Caudy
Faith L Paprocki
Cody Y Albares
Jennifer L Wieser
Octavia X Rim
Silvio T Ferencz
Nicolas P Maclead
Emily D Oldroyd
Maisha I Rim
Sinclair P Foller
Stacey I Albares
Julie R Darakjy
Ashley N Stockham
Adams P Garufi
Munro Q Kolmetz
IdCountryDate
1000India2026-08-09
1001Russia2026-08-01
1002Australia2026-08-02
1003Italy2026-08-04
1004Spain2026-07-24
1005India2026-07-21
1006Italy2026-07-24
1007Germany2026-07-16
1008United Kingdom2026-07-28
1009India2026-07-24
1010Spain2026-08-07
1011Spain2026-07-28
1012Russia2026-07-23
1013Argentina2026-07-26
1014Spain2026-08-04
1015Spain2026-08-01
1016Japan2026-07-21
1017Japan2026-07-15
1018United Kingdom2026-07-18
1019Brazil2026-07-28
1020United Kingdom2026-07-11
1021Russia2026-08-02
1022Germany2026-08-08
1023Argentina2026-08-07
1024India2026-07-24
1025Spain2026-07-17
1026Brazil2026-07-19
1027Russia2026-08-09
1028United Kingdom2026-08-04
1029Italy2026-07-17
1030France2026-07-31
1031Argentina2026-07-28
1032Italy2026-08-08
1033India2026-07-15
1034Brazil2026-07-17
1035Australia2026-07-25
1036Italy2026-07-24
1037Argentina2026-07-22
1038Australia2026-07-27
1039Italy2026-07-15
1040Australia2026-07-16
1041Argentina2026-07-22
1042Germany2026-07-27
1043India2026-08-03
1044Brazil2026-08-05
1045Japan2026-08-08
1046France2026-08-07
1047United Kingdom2026-07-20
1048Japan2026-07-18
1049Spain2026-07-27

On-Demand Data

NameIdCountryDate
Juan C Malet1000Brazil2026-07-31
Chavez Y Kolmetz1001Italy2026-07-31
Claire D Morasca1002Spain2026-07-16
Johnson B Ferencz1003Italy2026-07-16
Silvio C Kusko1004Australia2026-07-29
Alejandro D Venere1005Germany2026-07-13
Izzy L Albares1006Japan2026-07-29
Arvin J Briddick1007Spain2026-07-20
Stacey R Slusarski1008Germany2026-07-26
Jeanfrancois U Sergi1009France2026-08-08
Alejandro J Caldarera1010Russia2026-07-14
Misaki R Butt1011Japan2026-07-24
Jennifer M Flosi1012Japan2026-07-12
Munro G Marrier1013Italy2026-07-15
Maria F Dilliard1014Brazil2026-07-19
Munro K Oldroyd1015Australia2026-07-29
Mujtaba Y Wieser1016Japan2026-07-31
Morrow A Glick1017Germany2026-07-22
Octavia U Stockham1018Germany2026-07-30
Darci L Campain1019Brazil2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan W SaylorsBrazilAmy Elsner RENEWAL
Smith S SaylorsBrazilIoni Bowcher QUALIFIED
Greenwood C RimGermanyBernardo Dominic NEGOTIATION
Faith Z MacleadItalyAnna Fali RENEWAL
Greenwood V RimRussiaStephen Shaw NEW
Darci E DoeSpainXuxue Feng RENEWAL
Rodrigues A AlbaresCanadaStephen Shaw UNQUALIFIED
Cody U CaldareraAustraliaXuxue Feng NEGOTIATION
Ashley O OstroskyItalyAsiya Javayant NEGOTIATION
Antonio L ChuiSpainBernardo Dominic PROPOSAL
Emily O NestleCanadaIvan Magalhaes UNQUALIFIED
Arvin R MorascaArgentinaBernardo Dominic PROPOSAL
Salvatore C PerinArgentinaElwin Sharvill QUALIFIED
Deepesh T WaycottRussiaOnyama Limba PROPOSAL
Maisha J WhobreyGermanyOnyama Limba RENEWAL
Darci B PaprockiItalyBernardo Dominic NEW
Kaitlin M GlickCanadaIoni Bowcher NEGOTIATION
Tony K ChuiUnited KingdomXuxue Feng RENEWAL
Octavia Y SergiArgentinaStephen Shaw UNQUALIFIED
Nicolas H MorascaItalyStephen Shaw NEW
Octavia T FigeroaCanadaElwin Sharvill RENEWAL
Tony R SaylorsRussiaIoni Bowcher NEGOTIATION
Leon L KuskoUnited KingdomAmy Elsner PROPOSAL
Izzy V CampainItalyXuxue Feng QUALIFIED
Kaitlin T RulapaughIndiaAsiya Javayant UNQUALIFIED
James D GlickBrazilIvan Magalhaes RENEWAL
Leja G InouyeUnited KingdomOnyama Limba UNQUALIFIED
Ricardo W FollerItalyIvan Magalhaes QUALIFIED
Leon X TollnerAustraliaAnna Fali PROPOSAL
Mujtaba I RutaJapanAsiya Javayant NEW
Greenwood G NestleAustraliaElwin Sharvill UNQUALIFIED
Kadeem N NestleGermanyBernardo Dominic NEW
James X GauchoRussiaAsiya Javayant NEGOTIATION
Emily Q RutaAustraliaIoni Bowcher NEW
Leja W BologniaItalyAsiya Javayant PROPOSAL
Ashley A GillianSpainOnyama Limba QUALIFIED
Johnson V NestleSpainStephen Shaw PROPOSAL
Leon Z FlosiBrazilIoni Bowcher RENEWAL
Greenwood W OstroskySpainStephen Shaw QUALIFIED
Mujtaba B FigeroaJapanAmy Elsner NEW

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