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
Arvin Q AlbaresAustraliaAmy Elsner QUALIFIED
Francesco P WhobreyAustraliaBernardo Dominic NEW
Maisha F MorascaJapanAnna Fali UNQUALIFIED
Juan Q VenereRussiaAsiya Javayant UNQUALIFIED
Ivar V PerinGermanyOnyama Limba QUALIFIED
Faith H FerenczJapanAnna Fali QUALIFIED
Costa G TollnerSpainXuxue Feng UNQUALIFIED
Claire P SchemmerSpainXuxue Feng NEGOTIATION
Tony X GarufiBrazilIoni Bowcher QUALIFIED
Ashley Z CaudyUnited KingdomStephen Shaw QUALIFIED
Sinclair T RulapaughArgentinaXuxue Feng NEW
Rodrigues M RimUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya S StensethItalyAsiya Javayant UNQUALIFIED
Alejandro I CampainCanadaIoni Bowcher NEGOTIATION
Alejandro E FigeroaAustraliaAmy Elsner PROPOSAL
Leon Z BowleyBrazilOnyama Limba RENEWAL
Ivar P FlosiAustraliaIoni Bowcher UNQUALIFIED
Tony K BologniaIndiaAmy Elsner RENEWAL
Salvatore Y FerenczArgentinaAmy Elsner RENEWAL
Smith Y SaylorsCanadaIoni Bowcher RENEWAL
Jones W BowleyCanadaAnna Fali RENEWAL
Adams Q RulapaughIndiaIoni Bowcher PROPOSAL
James W BologniaArgentinaAmy Elsner RENEWAL
Silvio U MaletIndiaAnna Fali RENEWAL
Tony W RulapaughBrazilElwin Sharvill NEW
Deepesh J DilliardSpainElwin Sharvill RENEWAL
Nicolas I KolmetzJapanXuxue Feng NEGOTIATION
Leja X ButtAustraliaStephen Shaw RENEWAL
Aika T FollerCanadaBernardo Dominic QUALIFIED
Antonio L GillianJapanAsiya Javayant PROPOSAL
Aditya U VenereUnited KingdomOnyama Limba NEGOTIATION
Ricardo X WaycottRussiaAnna Fali RENEWAL
Maria C CampainArgentinaBernardo Dominic PROPOSAL
Cody C WieserArgentinaAmy Elsner RENEWAL
Kaitlin H RimIndiaAmy Elsner QUALIFIED
Tony G WhobreyItalyXuxue Feng QUALIFIED
Jeanfrancois Q BologniaArgentinaStephen Shaw RENEWAL
Jefferson B MorascaRussiaAmy Elsner RENEWAL
Kaitlin H WhobreyGermanyIoni Bowcher UNQUALIFIED
Rodrigues W OstroskyUnited KingdomAsiya Javayant QUALIFIED
Greenwood O BologniaBrazilIoni Bowcher NEW
Emily N MarrierJapanBernardo Dominic UNQUALIFIED
Mayumi F MarrierBrazilOnyama Limba NEGOTIATION
Aika P BriddickSpainAnna Fali NEW
David L DoeAustraliaStephen Shaw RENEWAL
Silvio K InouyeBrazilStephen Shaw PROPOSAL
Maisha O PoquetteSpainIoni Bowcher UNQUALIFIED
Antonio J VenereBrazilXuxue Feng UNQUALIFIED
Leja V BologniaBrazilStephen Shaw NEGOTIATION
Kadeem J GlickUnited KingdomAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Salvatore M FerenczItalyAsiya Javayant NEGOTIATION
Clifford H SlusarskiJapanIvan Magalhaes PROPOSAL
Johnson C BologniaCanadaXuxue Feng RENEWAL
Silvio Y NickaJapanElwin Sharvill QUALIFIED
Aditya P KolmetzFranceXuxue Feng UNQUALIFIED
Clifford F NickaSpainIoni Bowcher NEGOTIATION
Jefferson A RoysterAustraliaElwin Sharvill QUALIFIED
Salvatore W SaylorsIndiaElwin Sharvill RENEWAL
Julie T BriddickSpainStephen Shaw PROPOSAL
Chavez N StockhamAustraliaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia D PoquetteCanada2026-08-13Benton, John B Jr NEW15Ivan Magalhaes
1001Salvatore B IturbideSpain2026-08-12Rangoni Of Florence QUALIFIED99Bernardo Dominic
1002David S PoquetteItaly2026-07-31Truhlar And Truhlar Attys NEW29Bernardo Dominic
1003Maria L BriddickArgentina2026-07-26Chapman, Ross E Esq UNQUALIFIED14Onyama Limba
1004Jennifer K AlbaresGermany2026-07-28Benton, John B Jr RENEWAL64Onyama Limba
1005Francesco K DilliardArgentina2026-08-08Dorl, James J Esq QUALIFIED78Onyama Limba
1006Munro T CampainIndia2026-07-31Buckley Miller Wright PROPOSAL62Onyama Limba
1007Ricardo E FigeroaIndia2026-07-24Chanay, Jeffrey A Esq NEW85Ioni Bowcher
1008Jennifer H RulapaughCanada2026-08-10King, Christopher A Esq PROPOSAL99Bernardo Dominic
1009Mayumi O FollerCanada2026-07-23Benton, John B Jr PROPOSAL3Xuxue Feng
1010Chavez X DarakjyJapan2026-08-09Printing Dimensions QUALIFIED33Bernardo Dominic
1011Nicolas X StensethRussia2026-08-02Printing Dimensions QUALIFIED88Amy Elsner
1012Deepesh I MorascaUnited Kingdom2026-08-11Chemel, James L Cpa RENEWAL99Elwin Sharvill
1013Izzy H ShinkoFrance2026-08-08Benton, John B Jr QUALIFIED24Ivan Magalhaes
1014Jennifer J SlusarskiCanada2026-07-26Dorl, James J Esq QUALIFIED57Ioni Bowcher
1015Sinclair Z ShinkoCanada2026-08-08Dorl, James J Esq QUALIFIED34Bernardo Dominic
1016Rodrigues N ButtBrazil2026-07-27Chanay, Jeffrey A Esq QUALIFIED43Amy Elsner
1017Francesco C AlbaresFrance2026-07-29Chanay, Jeffrey A Esq NEGOTIATION94Xuxue Feng
1018Maisha O OldroydCanada2026-07-23Feltz Printing Service QUALIFIED80Asiya Javayant
1019Jefferson O MacleadUnited Kingdom2026-07-23Rousseaux, Michael Esq UNQUALIFIED19Onyama Limba
1020Cody M DoeItaly2026-08-12Benton, John B Jr NEW89Bernardo Dominic
1021Leja A GlickSpain2026-08-06Benton, John B Jr PROPOSAL50Elwin Sharvill
1022Silvio M WieserFrance2026-07-30Dorl, James J Esq UNQUALIFIED21Xuxue Feng
1023Nicolas S SergiAustralia2026-07-28Rousseaux, Michael Esq NEGOTIATION47Xuxue Feng
1024Johnson M CaldareraArgentina2026-08-07Feiner Bros PROPOSAL72Amy Elsner
1025Aika D SlusarskiCanada2026-08-03Rangoni Of Florence NEGOTIATION95Elwin Sharvill
1026Maria X RimUnited Kingdom2026-08-10King, Christopher A Esq NEGOTIATION63Ivan Magalhaes
1027Darci H VenereArgentina2026-08-01Chanay, Jeffrey A Esq NEW45Amy Elsner
1028David S CampainGermany2026-07-30Rangoni Of Florence UNQUALIFIED43Stephen Shaw
1029Johnson L CampainArgentina2026-07-22Buckley Miller Wright NEW45Stephen Shaw
1030Kaitlin N MaletFrance2026-07-17Printing Dimensions QUALIFIED49Ivan Magalhaes
1031Juan K MarrierGermany2026-07-17Chapman, Ross E Esq RENEWAL52Bernardo Dominic
1032Aika I MorascaCanada2026-08-10King, Christopher A Esq NEGOTIATION71Amy Elsner
1033Misaki P WaycottSpain2026-07-19Buckley Miller Wright NEGOTIATION6Amy Elsner
1034Kaitlin K OldroydGermany2026-07-31Rangoni Of Florence NEGOTIATION60Ioni Bowcher
1035Antonio G DoeCanada2026-08-09Truhlar And Truhlar Attys QUALIFIED43Bernardo Dominic
1036Antonio Y NestleSpain2026-07-21Truhlar And Truhlar Attys PROPOSAL16Anna Fali
1037Stacey W CampainAustralia2026-08-05Printing Dimensions RENEWAL97Onyama Limba
1038Faith L GlickBrazil2026-07-29Chanay, Jeffrey A Esq NEGOTIATION22Bernardo Dominic
1039Tony N DoeCanada2026-08-02Benton, John B Jr UNQUALIFIED60Asiya Javayant
1040Claire F WieserIndia2026-08-11Feiner Bros UNQUALIFIED1Ioni Bowcher
1041Munro U NestleCanada2026-08-07Dorl, James J Esq NEW21Onyama Limba
1042Ricardo S StensethJapan2026-08-13Truhlar And Truhlar Attys RENEWAL81Bernardo Dominic
1043Mayumi B FollerIndia2026-08-02Rangoni Of Florence UNQUALIFIED93Ioni Bowcher
1044Jennifer E NestleUnited Kingdom2026-07-16Dorl, James J Esq UNQUALIFIED59Xuxue Feng
1045Faith N MacleadCanada2026-07-17King, Christopher A Esq PROPOSAL13Elwin Sharvill
1046Silvio S OldroydRussia2026-08-09King, Christopher A Esq PROPOSAL27Ivan Magalhaes
1047Darci Q NestleJapan2026-07-22Rousseaux, Michael Esq PROPOSAL63Amy Elsner
1048Darci I DarakjyJapan2026-08-13Dorl, James J Esq NEW16Stephen Shaw
1049Clifford Q AlbaresUnited Kingdom2026-07-17King, Christopher A Esq RENEWAL54Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Clifford W RoysterGermanyXuxue Feng NEGOTIATION
Silvio M StensethUnited KingdomBernardo Dominic RENEWAL
Izzy H DoeGermanyOnyama Limba NEGOTIATION
Faith C StockhamUnited KingdomAnna Fali PROPOSAL
Jennifer W BologniaItalyOnyama Limba QUALIFIED
Ivar V OstroskyBrazilBernardo Dominic QUALIFIED
Munro D MarrierBrazilXuxue Feng NEW
Maria K MacleadItalyIoni Bowcher QUALIFIED
Maisha J FlosiIndiaElwin Sharvill QUALIFIED
Francesco I BologniaFranceElwin Sharvill NEGOTIATION
Smith E OstroskyCanadaAmy Elsner UNQUALIFIED
Isabel U GillianFranceBernardo Dominic PROPOSAL
Maisha H GlickAustraliaAnna Fali NEGOTIATION
James G DilliardSpainElwin Sharvill UNQUALIFIED
Kadeem C PerinAustraliaIoni Bowcher NEW
Sinclair F SchemmerUnited KingdomElwin Sharvill QUALIFIED
Maisha T DarakjyBrazilAnna Fali NEW
Aika T TollnerSpainAmy Elsner NEGOTIATION
Ashley C WaycottUnited KingdomStephen Shaw PROPOSAL
Costa S PerinGermanyOnyama Limba PROPOSAL
Rodrigues O MacleadGermanyBernardo Dominic UNQUALIFIED
Maria R MorascaArgentinaElwin Sharvill PROPOSAL
Darci B MaletItalyOnyama Limba UNQUALIFIED
Salvatore Z GillianCanadaIoni Bowcher PROPOSAL
Maisha I StockhamIndiaIoni Bowcher PROPOSAL
Julie B NestleJapanBernardo Dominic UNQUALIFIED
David D WaycottUnited KingdomXuxue Feng RENEWAL
Costa Z FigeroaCanadaIoni Bowcher UNQUALIFIED
Maria M MacleadCanadaXuxue Feng NEGOTIATION
Maria U NickaSpainAnna Fali NEW
Arvin U SchemmerJapanAmy Elsner QUALIFIED
Greenwood G PoquetteIndiaIoni Bowcher UNQUALIFIED
Smith P DilliardAustraliaBernardo Dominic PROPOSAL
Julie W IturbideArgentinaIoni Bowcher NEGOTIATION
James N VocelkaAustraliaElwin Sharvill UNQUALIFIED
Aditya N OldroydCanadaStephen Shaw UNQUALIFIED
Leja V CaldareraIndiaElwin Sharvill QUALIFIED
Silvio U VocelkaCanadaXuxue Feng PROPOSAL
Kaitlin U GlickJapanBernardo Dominic NEGOTIATION
Faith O MarrierAustraliaIoni Bowcher NEW
Deepesh E RutaBrazilBernardo Dominic NEW
Greenwood F MaletUnited KingdomBernardo Dominic NEW
Juan N WaycottIndiaAsiya Javayant NEGOTIATION
Chavez R WhobreyArgentinaXuxue Feng NEW
Nicolas X DarakjyUnited KingdomAmy Elsner QUALIFIED
Johnson X BriddickArgentinaOnyama Limba RENEWAL
Chavez B MaletGermanyAsiya Javayant UNQUALIFIED
Salvatore K WaycottUnited KingdomAsiya Javayant PROPOSAL
Isabel L AlbaresFranceAsiya Javayant RENEWAL
Maisha R InouyeUnited KingdomOnyama Limba NEGOTIATION
Frozen Columns
Name
Tony E Doe
Leja A Paprocki
Morrow D Foller
Clifford M Gaucho
Leon Y Rulapaugh
Ivar I Waycott
Francesco O Ferencz
Kadeem Q Malet
Aruna O Oldroyd
Claire K Stockham
Emily X Foller
Juan Z Campain
Julie Y Briddick
Wickens I Bowley
Clifford O Paprocki
Isabel M Figeroa
Adams K Vocelka
Wickens S Caudy
Arvin D Malet
Arvin T Kolmetz
Silvio Y Nestle
Clifford W Garufi
Greenwood V Stockham
Mayumi R Garufi
Adams N Poquette
Tony M Flosi
Kadeem Q Morasca
Ivar O Darakjy
Kaitlin I Perin
Rodrigues H Doe
Emily Z Gaucho
Jefferson D Glick
Aditya Y Malet
Jefferson N Kusko
Tony R Malet
Costa W Darakjy
Jeanfrancois N Venere
Smith V Gillian
Mayumi Z Kusko
Aika C Gaucho
Stacey D Briddick
Jeanfrancois C Malet
Greenwood K Stockham
Julie K Sergi
Isabel O Ferencz
Octavia A Waycott
Nicolas Q Doe
Jennifer X Morasca
Wickens M Morasca
Jefferson B Sergi
IdCountryDate
1000Australia2026-08-11
1001Japan2026-07-18
1002Japan2026-07-24
1003Argentina2026-07-25
1004Italy2026-08-07
1005India2026-08-09
1006Spain2026-08-06
1007United Kingdom2026-07-28
1008Italy2026-07-16
1009Italy2026-08-02
1010France2026-08-09
1011Canada2026-08-03
1012Spain2026-07-16
1013Russia2026-07-21
1014Japan2026-07-16
1015United Kingdom2026-07-20
1016United Kingdom2026-07-17
1017Canada2026-08-10
1018United Kingdom2026-08-02
1019Spain2026-08-06
1020Brazil2026-08-03
1021Canada2026-08-07
1022Italy2026-07-23
1023Germany2026-07-25
1024France2026-08-09
1025Argentina2026-07-18
1026France2026-07-16
1027United Kingdom2026-08-07
1028United Kingdom2026-07-16
1029Argentina2026-08-08
1030India2026-07-24
1031Germany2026-08-10
1032India2026-08-05
1033Australia2026-08-03
1034Canada2026-07-19
1035Spain2026-08-08
1036Japan2026-07-23
1037Japan2026-08-01
1038India2026-07-16
1039Canada2026-07-18
1040Russia2026-07-20
1041Italy2026-07-26
1042Argentina2026-07-31
1043United Kingdom2026-08-06
1044United Kingdom2026-08-14
1045Spain2026-08-08
1046France2026-08-10
1047India2026-08-12
1048Australia2026-07-19
1049Argentina2026-07-25

On-Demand Data

NameIdCountryDate
Emily O Gillian1000Canada2026-08-07
Cody W Doe1001France2026-08-11
Ricardo U Slusarski1002United Kingdom2026-08-08
Ashley I Gillian1003Australia2026-07-29
Darci D Saylors1004Australia2026-08-04
Juan E Waycott1005Italy2026-08-07
Misaki E Amigon1006Spain2026-08-08
Tony L Rim1007Canada2026-08-01
Izzy G Figeroa1008Argentina2026-08-10
Juan F Shinko1009Spain2026-07-21
Isabel Q Slusarski1010Germany2026-08-10
Aditya A Whobrey1011Italy2026-07-24
Clifford W Slusarski1012Australia2026-08-12
Deepesh E Sergi1013United Kingdom2026-08-08
Adams X Albares1014United Kingdom2026-08-02
Morrow Q Royster1015Canada2026-07-27
Clifford W Stockham1016Italy2026-08-05
Julie V Ruta1017Canada2026-07-24
Julie U Flosi1018Japan2026-08-08
Wickens E Venere1019Argentina2026-07-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon W WaycottIndiaIvan Magalhaes NEGOTIATION
Isabel L SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Clifford W StensethBrazilStephen Shaw NEW
Clifford S BriddickBrazilStephen Shaw PROPOSAL
Misaki H IturbideItalyIoni Bowcher QUALIFIED
Salvatore U FigeroaUnited KingdomAnna Fali QUALIFIED
Octavia U CaldareraItalyAmy Elsner RENEWAL
Murillo T WieserFranceStephen Shaw PROPOSAL
Salvatore J CaldareraIndiaStephen Shaw NEGOTIATION
Jefferson P StockhamJapanAnna Fali NEGOTIATION
Mayumi K VocelkaCanadaAnna Fali NEGOTIATION
Nicolas D FigeroaCanadaElwin Sharvill QUALIFIED
Costa C FerenczGermanyBernardo Dominic NEW
Misaki C ButtFranceIoni Bowcher PROPOSAL
Ashley E CaudyFranceElwin Sharvill NEGOTIATION
Jones Z DarakjyJapanStephen Shaw QUALIFIED
Octavia Z KuskoArgentinaAsiya Javayant NEGOTIATION
Maria C NickaUnited KingdomAnna Fali QUALIFIED
Jeanfrancois B NickaArgentinaElwin Sharvill RENEWAL
Antonio Q RoysterCanadaBernardo Dominic PROPOSAL
Ricardo K InouyeArgentinaElwin Sharvill NEW
Jones Z VocelkaArgentinaOnyama Limba QUALIFIED
Maria W SlusarskiRussiaElwin Sharvill NEW
Jeanfrancois Q RulapaughGermanyIvan Magalhaes QUALIFIED
Chavez S WaycottFranceAnna Fali NEGOTIATION
Ricardo R FerenczItalyIoni Bowcher NEGOTIATION
Salvatore J OstroskyGermanyAmy Elsner NEGOTIATION
Clifford W SchemmerUnited KingdomIvan Magalhaes PROPOSAL
Ivar X KolmetzBrazilIoni Bowcher NEGOTIATION
Leon C MarrierCanadaAnna Fali NEGOTIATION
Kadeem T TollnerRussiaIvan Magalhaes NEGOTIATION
Adams Y RoysterAustraliaXuxue Feng PROPOSAL
Alejandro E VenereFranceAnna Fali UNQUALIFIED
Tony Q MacleadIndiaAnna Fali PROPOSAL
Morrow B OstroskyGermanyElwin Sharvill UNQUALIFIED
Munro M AmigonIndiaAmy Elsner RENEWAL
Jeanfrancois I VocelkaRussiaAsiya Javayant PROPOSAL
Aika G MarrierBrazilStephen Shaw NEW
Ivar H FigeroaIndiaBernardo Dominic RENEWAL
Jones S WieserBrazilAmy Elsner UNQUALIFIED

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