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 N OstroskyIndiaXuxue Feng UNQUALIFIED
Sinclair Y TollnerAustraliaElwin Sharvill QUALIFIED
Sinclair W GlickIndiaElwin Sharvill QUALIFIED
Kaitlin B RoysterCanadaIvan Magalhaes RENEWAL
Kaitlin K MarrierUnited KingdomElwin Sharvill NEW
Wickens Y MacleadSpainOnyama Limba UNQUALIFIED
Kaitlin R BowleySpainAmy Elsner QUALIFIED
Ivar N WhobreyCanadaXuxue Feng RENEWAL
Aditya H PaprockiItalyAmy Elsner QUALIFIED
Antonio L SergiAustraliaElwin Sharvill NEGOTIATION
Wickens M StockhamGermanyAsiya Javayant NEGOTIATION
Jefferson X FollerSpainIoni Bowcher PROPOSAL
Rodrigues L KuskoRussiaIvan Magalhaes QUALIFIED
Mujtaba P InouyeAustraliaOnyama Limba NEW
Ivar Q CaldareraIndiaAsiya Javayant NEGOTIATION
Jefferson W TollnerRussiaIoni Bowcher UNQUALIFIED
Kaitlin Y OstroskyBrazilIvan Magalhaes QUALIFIED
Francesco F NickaRussiaStephen Shaw PROPOSAL
Leon G PaprockiSpainAnna Fali PROPOSAL
Costa Y StensethJapanIvan Magalhaes NEW
Ashley D SaylorsSpainAmy Elsner QUALIFIED
Aika O IturbideGermanyAnna Fali NEW
Maria J SaylorsSpainXuxue Feng QUALIFIED
Wickens Z GauchoItalyElwin Sharvill UNQUALIFIED
Salvatore X FigeroaJapanIvan Magalhaes QUALIFIED
Juan T PaprockiCanadaStephen Shaw RENEWAL
Aruna M NickaItalyStephen Shaw UNQUALIFIED
Silvio F NickaItalyAnna Fali NEW
Jones K FlosiCanadaBernardo Dominic UNQUALIFIED
Rodrigues M FerenczGermanyElwin Sharvill NEW
Salvatore H ChuiJapanXuxue Feng NEW
Aika E PoquetteArgentinaAsiya Javayant QUALIFIED
Salvatore F MaletUnited KingdomXuxue Feng NEGOTIATION
Francesco C KolmetzFranceIoni Bowcher RENEWAL
Octavia F InouyeUnited KingdomIoni Bowcher RENEWAL
Chavez K MarrierCanadaIoni Bowcher UNQUALIFIED
Jennifer F SaylorsAustraliaBernardo Dominic QUALIFIED
Jennifer J RoysterAustraliaAmy Elsner PROPOSAL
David E GarufiGermanyXuxue Feng UNQUALIFIED
Tony E MacleadFranceStephen Shaw PROPOSAL
Salvatore K PaprockiCanadaAnna Fali QUALIFIED
Jennifer O RutaItalyOnyama Limba NEW
Claire G OldroydItalyXuxue Feng NEW
Nicolas Q MacleadAustraliaAmy Elsner QUALIFIED
Claire K NestleJapanBernardo Dominic NEGOTIATION
Octavia X VenereRussiaStephen Shaw RENEWAL
Claire P MorascaArgentinaIoni Bowcher PROPOSAL
Stacey B RoysterIndiaIoni Bowcher NEGOTIATION
Cody E VocelkaUnited KingdomStephen Shaw NEGOTIATION
Emily R PoquetteCanadaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
James G GillianFranceAmy Elsner UNQUALIFIED
Ricardo G MaletFranceIvan Magalhaes NEW
Tony T MarrierAustraliaAmy Elsner QUALIFIED
Jones O DilliardBrazilStephen Shaw RENEWAL
Costa O GlickUnited KingdomElwin Sharvill PROPOSAL
Leja Z AmigonIndiaBernardo Dominic RENEWAL
Munro C KuskoGermanyStephen Shaw QUALIFIED
Chavez R FerenczJapanBernardo Dominic PROPOSAL
Sinclair X KolmetzBrazilIvan Magalhaes RENEWAL
Aika S PerinGermanyIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey P OstroskyBrazil2025-06-11Rousseaux, Michael Esq RENEWAL79Asiya Javayant
1001James J RulapaughSpain2025-05-25Buckley Miller Wright UNQUALIFIED11Stephen Shaw
1002Maisha E ChuiUnited Kingdom2025-05-18Chemel, James L Cpa RENEWAL66Xuxue Feng
1003Arvin H InouyeCanada2025-06-15Truhlar And Truhlar Attys NEW63Asiya Javayant
1004Izzy P RimUnited Kingdom2025-05-22Rangoni Of Florence PROPOSAL26Ivan Magalhaes
1005Julie H DoeCanada2025-05-23Chemel, James L Cpa NEGOTIATION59Onyama Limba
1006Munro P MaletArgentina2025-06-13Printing Dimensions QUALIFIED30Asiya Javayant
1007Faith G RutaRussia2025-06-10Commercial Press RENEWAL77Elwin Sharvill
1008Stacey C ShinkoFrance2025-05-18Chapman, Ross E Esq QUALIFIED23Amy Elsner
1009Kaitlin S WaycottAustralia2025-06-12Feltz Printing Service NEW97Ivan Magalhaes
1010Silvio I SergiFrance2025-06-16Chanay, Jeffrey A Esq NEGOTIATION92Onyama Limba
1011Wickens F RoysterJapan2025-06-05Feltz Printing Service NEW75Elwin Sharvill
1012Smith J PaprockiUnited Kingdom2025-05-30Feltz Printing Service PROPOSAL12Ivan Magalhaes
1013Costa O PaprockiSpain2025-06-06Chapman, Ross E Esq UNQUALIFIED85Asiya Javayant
1014Salvatore O CampainIndia2025-05-28Commercial Press NEW83Elwin Sharvill
1015Emily Y SaylorsJapan2025-05-27Printing Dimensions NEGOTIATION45Elwin Sharvill
1016Maria H VenereBrazil2025-06-15Chanay, Jeffrey A Esq RENEWAL48Xuxue Feng
1017Isabel S AlbaresUnited Kingdom2025-06-08Buckley Miller Wright RENEWAL59Xuxue Feng
1018Greenwood O GauchoSpain2025-06-13Chanay, Jeffrey A Esq UNQUALIFIED87Amy Elsner
1019Nicolas V KolmetzIndia2025-06-13Dorl, James J Esq NEW35Ioni Bowcher
1020Adams L GauchoAustralia2025-05-26Benton, John B Jr RENEWAL14Bernardo Dominic
1021Kadeem F CaldareraAustralia2025-05-21Buckley Miller Wright UNQUALIFIED12Ioni Bowcher
1022Johnson K CaudyRussia2025-06-12Chapman, Ross E Esq QUALIFIED46Amy Elsner
1023Julie K WhobreyIndia2025-06-15Chapman, Ross E Esq RENEWAL86Asiya Javayant
1024Cody D PerinBrazil2025-05-25Truhlar And Truhlar Attys NEW33Asiya Javayant
1025Mujtaba J PoquetteJapan2025-06-02Buckley Miller Wright NEW61Onyama Limba
1026Silvio G MarrierRussia2025-06-10Benton, John B Jr NEGOTIATION36Elwin Sharvill
1027Smith V OldroydAustralia2025-06-15Feltz Printing Service NEGOTIATION97Ioni Bowcher
1028Leon G MaletCanada2025-06-06Truhlar And Truhlar Attys QUALIFIED90Anna Fali
1029Mujtaba T KuskoSpain2025-05-31King, Christopher A Esq NEW86Elwin Sharvill
1030Sinclair Y TollnerJapan2025-06-11Benton, John B Jr NEGOTIATION5Amy Elsner
1031Emily U VocelkaCanada2025-05-22King, Christopher A Esq NEGOTIATION20Stephen Shaw
1032Costa A PoquetteAustralia2025-06-07Commercial Press UNQUALIFIED7Xuxue Feng
1033Jefferson L TollnerSpain2025-05-21Rousseaux, Michael Esq NEW23Stephen Shaw
1034Kadeem D AmigonSpain2025-06-16Morlong Associates RENEWAL18Bernardo Dominic
1035Darci K WhobreyRussia2025-06-13Benton, John B Jr PROPOSAL83Asiya Javayant
1036Ashley X DarakjyAustralia2025-05-19Dorl, James J Esq NEW25Onyama Limba
1037Kadeem A DilliardRussia2025-05-22Feiner Bros PROPOSAL13Ioni Bowcher
1038Adams Y IturbideIndia2025-05-24Dorl, James J Esq PROPOSAL55Xuxue Feng
1039Munro O VenereUnited Kingdom2025-06-09Dorl, James J Esq QUALIFIED92Asiya Javayant
1040Ashley K ButtAustralia2025-06-05Feiner Bros UNQUALIFIED20Stephen Shaw
1041Francesco U FerenczArgentina2025-06-15Chemel, James L Cpa PROPOSAL59Asiya Javayant
1042Kaitlin V PoquetteGermany2025-06-09King, Christopher A Esq NEW32Xuxue Feng
1043Kaitlin R CaudyBrazil2025-06-05Rousseaux, Michael Esq QUALIFIED81Onyama Limba
1044Julie Y DilliardJapan2025-05-27Rangoni Of Florence NEGOTIATION12Amy Elsner
1045Chavez P PoquetteFrance2025-05-31Dorl, James J Esq NEGOTIATION51Bernardo Dominic
1046Aika I StockhamCanada2025-05-22Feltz Printing Service NEW51Onyama Limba
1047Izzy S BriddickArgentina2025-05-28Truhlar And Truhlar Attys RENEWAL76Onyama Limba
1048Francesco Z VenereBrazil2025-05-21Feiner Bros UNQUALIFIED40Amy Elsner
1049Stacey M SlusarskiUnited Kingdom2025-06-09Morlong Associates UNQUALIFIED48Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan F MorascaUnited KingdomIoni Bowcher RENEWAL
Deepesh B RulapaughGermanyXuxue Feng UNQUALIFIED
Izzy H StockhamJapanElwin Sharvill QUALIFIED
Aika V VocelkaItalyElwin Sharvill NEW
Leja R PerinIndiaIvan Magalhaes NEGOTIATION
Nicolas C FigeroaRussiaIvan Magalhaes NEGOTIATION
Jefferson R VocelkaJapanOnyama Limba RENEWAL
Jeanfrancois K FigeroaFranceElwin Sharvill RENEWAL
Antonio Q GarufiGermanyAsiya Javayant NEGOTIATION
Kadeem R SchemmerAustraliaAnna Fali QUALIFIED
Johnson U KuskoUnited KingdomAmy Elsner UNQUALIFIED
Tony V VocelkaCanadaStephen Shaw NEGOTIATION
Kaitlin X GillianCanadaIoni Bowcher NEGOTIATION
Ivar X TollnerJapanOnyama Limba RENEWAL
Jeanfrancois C BologniaUnited KingdomOnyama Limba QUALIFIED
Morrow U OstroskyBrazilIoni Bowcher NEW
Wickens N ButtGermanyElwin Sharvill UNQUALIFIED
Murillo I DilliardUnited KingdomStephen Shaw NEW
Jennifer N FollerArgentinaElwin Sharvill UNQUALIFIED
Faith G KuskoJapanIoni Bowcher UNQUALIFIED
Alejandro Q KuskoBrazilXuxue Feng UNQUALIFIED
Aika G FollerRussiaElwin Sharvill QUALIFIED
Costa G VenereUnited KingdomBernardo Dominic RENEWAL
Francesco Y MarrierFranceXuxue Feng NEGOTIATION
Greenwood G GillianAustraliaStephen Shaw NEW
Salvatore V MorascaSpainXuxue Feng NEGOTIATION
Nicolas G MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Munro O ShinkoArgentinaAnna Fali UNQUALIFIED
Murillo K ChuiItalyAsiya Javayant QUALIFIED
Ricardo C SlusarskiAustraliaAsiya Javayant NEGOTIATION
Clifford F NickaItalyIoni Bowcher NEGOTIATION
Smith I VocelkaBrazilIvan Magalhaes NEW
Stacey Y BowleyFranceAmy Elsner UNQUALIFIED
Clifford S RimSpainElwin Sharvill RENEWAL
Kaitlin Z ButtJapanIvan Magalhaes NEW
Octavia P TollnerIndiaAsiya Javayant RENEWAL
Izzy N WieserSpainXuxue Feng RENEWAL
Izzy B RulapaughRussiaAmy Elsner PROPOSAL
Darci A AlbaresFranceXuxue Feng NEW
Jennifer U PerinFranceIvan Magalhaes QUALIFIED
Johnson I RulapaughAustraliaAmy Elsner UNQUALIFIED
Maisha X FerenczGermanyAsiya Javayant RENEWAL
Leja M DoeGermanyAmy Elsner RENEWAL
Emily G OldroydSpainOnyama Limba NEGOTIATION
Cody Q DoeIndiaStephen Shaw NEW
Mujtaba X DoeUnited KingdomAsiya Javayant RENEWAL
Claire O WieserJapanElwin Sharvill PROPOSAL
Ricardo C MorascaRussiaAnna Fali NEGOTIATION
Aditya O GauchoGermanyElwin Sharvill NEW
Aika M BowleyAustraliaIvan Magalhaes QUALIFIED
Frozen Columns
Name
Octavia V Stenseth
Salvatore A Venere
Leja G Nestle
Salvatore K Doe
Jeanfrancois V Briddick
Munro B Ostrosky
Ivar L Oldroyd
Aditya R Inouye
Jefferson R Ferencz
Juan L Schemmer
Ashley G Albares
Misaki G Paprocki
Aika R Vocelka
Jennifer X Whobrey
Aruna U Slusarski
Deepesh A Briddick
Costa E Inouye
Deepesh Z Sergi
Leon W Dilliard
Jeanfrancois H Ferencz
Nicolas U Albares
Isabel W Ruta
Clifford N Albares
Jefferson L Malet
Chavez C Kusko
Arvin M Malet
Octavia O Darakjy
Clifford A Whobrey
Morrow Z Ruta
Isabel E Shinko
Ashley A Ruta
Costa C Perin
Adams Z Figeroa
Faith F Schemmer
Mujtaba W Ferencz
David N Waycott
Ricardo C Foller
Faith G Figeroa
Jennifer D Butt
Nicolas H Royster
Maisha W Figeroa
Ashley E Darakjy
Greenwood Q Poquette
Leon G Morasca
Izzy T Doe
Jefferson G Poquette
Rodrigues W Bolognia
Kadeem T Caldarera
Maisha T Oldroyd
Deepesh K Stockham
IdCountryDate
1000Spain2025-05-29
1001Brazil2025-06-15
1002Russia2025-06-07
1003Argentina2025-06-02
1004Brazil2025-05-26
1005Spain2025-06-12
1006Japan2025-05-29
1007United Kingdom2025-05-29
1008Australia2025-06-07
1009Japan2025-05-29
1010India2025-05-31
1011Russia2025-06-16
1012India2025-05-22
1013Russia2025-06-10
1014India2025-05-29
1015Spain2025-06-16
1016Germany2025-06-06
1017Australia2025-06-16
1018Argentina2025-05-24
1019United Kingdom2025-06-04
1020Italy2025-06-15
1021Canada2025-06-15
1022Japan2025-06-02
1023France2025-06-12
1024Canada2025-05-18
1025Germany2025-05-28
1026India2025-06-04
1027Italy2025-06-03
1028Spain2025-06-07
1029Japan2025-05-28
1030Brazil2025-05-30
1031United Kingdom2025-05-30
1032Canada2025-06-03
1033Russia2025-06-13
1034Australia2025-06-05
1035Italy2025-06-16
1036United Kingdom2025-05-24
1037Japan2025-06-01
1038Australia2025-05-25
1039Brazil2025-06-02
1040Germany2025-06-14
1041France2025-06-10
1042France2025-06-16
1043Spain2025-06-02
1044Canada2025-05-18
1045France2025-05-21
1046Canada2025-05-31
1047Brazil2025-05-18
1048Australia2025-05-20
1049Brazil2025-06-16

On-Demand Data

NameIdCountryDate
Octavia F Caldarera1000Argentina2025-06-12
Kadeem Z Ruta1001Spain2025-06-02
Jefferson G Shinko1002Italy2025-06-14
Smith J Schemmer1003Australia2025-06-16
Silvio D Paprocki1004Japan2025-05-22
Isabel Q Schemmer1005Japan2025-05-28
Julie O Marrier1006Spain2025-05-22
James V Slusarski1007Spain2025-06-09
Nicolas K Vocelka1008Spain2025-06-05
Stacey P Iturbide1009Brazil2025-06-16
Claire Z Schemmer1010Canada2025-05-26
Chavez L Amigon1011Canada2025-06-01
Munro W Kolmetz1012Japan2025-06-09
Jefferson H Oldroyd1013India2025-06-01
Aika B Doe1014Australia2025-05-22
Stacey X Chui1015Russia2025-06-14
Rodrigues M Vocelka1016Japan2025-06-04
Ashley X Royster1017India2025-06-14
Cody V Briddick1018Brazil2025-05-19
Jones W Caldarera1019Canada2025-05-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja X BologniaJapanBernardo Dominic UNQUALIFIED
Jeanfrancois A RoysterSpainAsiya Javayant NEGOTIATION
Mujtaba Y MarrierCanadaAsiya Javayant UNQUALIFIED
Sinclair W AlbaresArgentinaXuxue Feng PROPOSAL
Ashley I BriddickSpainIvan Magalhaes QUALIFIED
Rodrigues W GarufiGermanyStephen Shaw NEGOTIATION
Jones U FerenczUnited KingdomBernardo Dominic NEW
Julie M MorascaFranceAnna Fali NEW
Isabel W OldroydAustraliaAmy Elsner UNQUALIFIED
Mayumi D RoysterArgentinaAsiya Javayant PROPOSAL
Faith T ButtArgentinaXuxue Feng NEW
Adams X FlosiGermanyXuxue Feng RENEWAL
Jefferson L FollerArgentinaStephen Shaw RENEWAL
Cody E MaletArgentinaXuxue Feng NEW
Ashley Q GauchoItalyAsiya Javayant NEW
David W CaudyUnited KingdomIoni Bowcher RENEWAL
Munro Z PaprockiRussiaIoni Bowcher NEW
Rodrigues P RulapaughAustraliaIoni Bowcher UNQUALIFIED
Antonio C CampainRussiaAsiya Javayant PROPOSAL
Juan Q GillianCanadaBernardo Dominic RENEWAL
Munro M WhobreyItalyOnyama Limba PROPOSAL
Greenwood W PerinRussiaOnyama Limba UNQUALIFIED
Ashley L SchemmerRussiaAmy Elsner PROPOSAL
Faith V OldroydAustraliaIvan Magalhaes RENEWAL
Ivar L SchemmerFranceIoni Bowcher RENEWAL
Izzy K SaylorsUnited KingdomOnyama Limba NEW
Leja Z PaprockiArgentinaElwin Sharvill UNQUALIFIED
Emily Q ChuiRussiaBernardo Dominic NEW
Nicolas A RimIndiaElwin Sharvill NEGOTIATION
Rodrigues O InouyeBrazilXuxue Feng UNQUALIFIED
Francesco J MorascaArgentinaXuxue Feng NEGOTIATION
Nicolas E TollnerBrazilAsiya Javayant PROPOSAL
Francesco T MacleadIndiaXuxue Feng PROPOSAL
Jefferson K OstroskyGermanyElwin Sharvill NEW
Murillo Y MaletFranceOnyama Limba NEGOTIATION
Darci N WaycottCanadaAmy Elsner QUALIFIED
Ricardo V IturbideSpainOnyama Limba NEGOTIATION
Wickens M WhobreyItalyStephen Shaw NEGOTIATION
Ivar P PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Greenwood X FigeroaIndiaIoni Bowcher 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>