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
Jennifer L BowleyIndiaIvan Magalhaes RENEWAL
Ricardo S CaldareraBrazilStephen Shaw NEGOTIATION
Rodrigues D StockhamFranceIvan Magalhaes QUALIFIED
Mujtaba F SlusarskiArgentinaElwin Sharvill NEGOTIATION
Aika B SchemmerIndiaBernardo Dominic PROPOSAL
Mayumi N FerenczUnited KingdomIoni Bowcher QUALIFIED
Jones U AmigonCanadaBernardo Dominic PROPOSAL
Francesco O DilliardCanadaXuxue Feng QUALIFIED
Jones P RoysterArgentinaStephen Shaw NEW
Deepesh P KolmetzGermanyBernardo Dominic NEGOTIATION
Jeanfrancois B MaletFranceBernardo Dominic QUALIFIED
Leja I FigeroaAustraliaXuxue Feng UNQUALIFIED
Julie F BowleySpainAmy Elsner NEW
Darci B OstroskyBrazilAmy Elsner UNQUALIFIED
Murillo Q RulapaughArgentinaStephen Shaw UNQUALIFIED
Clifford R AmigonSpainAsiya Javayant PROPOSAL
Stacey T FigeroaArgentinaBernardo Dominic QUALIFIED
Murillo Y SergiSpainElwin Sharvill NEW
Tony C RimUnited KingdomAnna Fali NEW
Salvatore D StockhamIndiaIvan Magalhaes NEGOTIATION
Arvin Q GauchoSpainAnna Fali NEGOTIATION
Izzy W GlickSpainAnna Fali UNQUALIFIED
Johnson I ButtItalyStephen Shaw NEW
Jeanfrancois O BologniaFranceStephen Shaw NEW
James U SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Mujtaba H AmigonAustraliaIoni Bowcher NEGOTIATION
Tony E MacleadFranceStephen Shaw UNQUALIFIED
Rodrigues O GillianUnited KingdomBernardo Dominic UNQUALIFIED
Julie H DilliardCanadaOnyama Limba UNQUALIFIED
Jones I NickaArgentinaAnna Fali UNQUALIFIED
Morrow X WhobreyRussiaIoni Bowcher NEGOTIATION
Ricardo S PaprockiIndiaOnyama Limba NEW
Salvatore Z RoysterBrazilAnna Fali PROPOSAL
Johnson J AlbaresArgentinaXuxue Feng RENEWAL
Izzy Y PerinBrazilAsiya Javayant RENEWAL
Aditya D ChuiFranceAnna Fali RENEWAL
James U IturbideRussiaBernardo Dominic QUALIFIED
Rodrigues D PoquetteItalyStephen Shaw QUALIFIED
Octavia R MaletItalyAmy Elsner UNQUALIFIED
Aditya O RimFranceIvan Magalhaes QUALIFIED
Misaki S TollnerAustraliaAsiya Javayant NEW
Sinclair K KolmetzJapanIoni Bowcher PROPOSAL
Silvio H MaletItalyXuxue Feng NEW
Smith N CaldareraFranceIoni Bowcher NEGOTIATION
Munro I OldroydSpainStephen Shaw PROPOSAL
Smith K RimItalyAsiya Javayant QUALIFIED
Wickens L MarrierAustraliaIoni Bowcher NEGOTIATION
Leon A SergiIndiaAsiya Javayant NEGOTIATION
Darci R MacleadCanadaAsiya Javayant UNQUALIFIED
Munro Y StockhamAustraliaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody E SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Rodrigues C MacleadGermanyStephen Shaw PROPOSAL
Emily M FerenczAustraliaOnyama Limba QUALIFIED
Izzy W FollerCanadaStephen Shaw RENEWAL
Cody F IturbideRussiaAnna Fali NEGOTIATION
Faith K GlickJapanXuxue Feng NEW
Emily J CampainFranceElwin Sharvill NEGOTIATION
Juan N GauchoRussiaAmy Elsner NEGOTIATION
Juan N BriddickBrazilAmy Elsner RENEWAL
Aika Y DarakjyIndiaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford Z NestleBrazil2025-03-31Chemel, James L Cpa PROPOSAL43Ioni Bowcher
1001Deepesh W InouyeCanada2025-04-22Feltz Printing Service PROPOSAL31Amy Elsner
1002Kadeem H KuskoGermany2025-04-18Buckley Miller Wright UNQUALIFIED67Ioni Bowcher
1003Misaki J NickaFrance2025-04-17Dorl, James J Esq RENEWAL30Ivan Magalhaes
1004Kaitlin H MorascaSpain2025-04-03Buckley Miller Wright RENEWAL85Ivan Magalhaes
1005Stacey I MaletItaly2025-04-06Truhlar And Truhlar Attys QUALIFIED0Xuxue Feng
1006Sinclair P RutaSpain2025-04-26Truhlar And Truhlar Attys NEGOTIATION18Stephen Shaw
1007Wickens U GlickRussia2025-04-03Benton, John B Jr UNQUALIFIED86Asiya Javayant
1008Francesco N BologniaJapan2025-04-18Chemel, James L Cpa NEGOTIATION23Asiya Javayant
1009James P MarrierCanada2025-04-03King, Christopher A Esq PROPOSAL54Ioni Bowcher
1010Alejandro K VocelkaBrazil2025-04-08Chapman, Ross E Esq QUALIFIED14Ivan Magalhaes
1011Ivar X BologniaFrance2025-04-28King, Christopher A Esq RENEWAL26Ioni Bowcher
1012Isabel U FollerGermany2025-04-19Printing Dimensions NEW64Ioni Bowcher
1013Munro J SchemmerIndia2025-04-21Dorl, James J Esq NEGOTIATION36Asiya Javayant
1014Tony O GillianArgentina2025-04-09Buckley Miller Wright PROPOSAL84Ioni Bowcher
1015Maria E GauchoGermany2025-04-11Morlong Associates PROPOSAL72Ioni Bowcher
1016Nicolas H VenereArgentina2025-04-02Morlong Associates RENEWAL72Ivan Magalhaes
1017David F RoysterJapan2025-04-12Buckley Miller Wright NEGOTIATION78Asiya Javayant
1018Jefferson E SaylorsAustralia2025-04-08Printing Dimensions UNQUALIFIED94Xuxue Feng
1019Jefferson M OldroydIndia2025-04-26Buckley Miller Wright UNQUALIFIED10Anna Fali
1020Aditya X PerinFrance2025-04-18Chanay, Jeffrey A Esq RENEWAL29Stephen Shaw
1021Misaki O OldroydJapan2025-04-07Chanay, Jeffrey A Esq NEGOTIATION83Stephen Shaw
1022Kaitlin O VocelkaUnited Kingdom2025-04-03Commercial Press PROPOSAL83Stephen Shaw
1023Munro Q MarrierUnited Kingdom2025-04-19Morlong Associates RENEWAL31Xuxue Feng
1024Nicolas G BowleyUnited Kingdom2025-04-24Truhlar And Truhlar Attys QUALIFIED96Amy Elsner
1025Izzy S StockhamIndia2025-04-01Buckley Miller Wright RENEWAL30Ivan Magalhaes
1026Juan H StensethBrazil2025-04-13Rousseaux, Michael Esq QUALIFIED20Ivan Magalhaes
1027Stacey B GarufiSpain2025-04-14Chemel, James L Cpa NEW64Asiya Javayant
1028Jennifer M BriddickSpain2025-04-06Printing Dimensions NEGOTIATION83Ivan Magalhaes
1029Maisha U MaletCanada2025-04-18Chemel, James L Cpa PROPOSAL38Ioni Bowcher
1030Johnson Y StockhamFrance2025-04-22Chanay, Jeffrey A Esq NEW67Stephen Shaw
1031Adams B BowleyBrazil2025-04-02Truhlar And Truhlar Attys PROPOSAL36Stephen Shaw
1032James M SergiUnited Kingdom2025-04-03Rangoni Of Florence UNQUALIFIED22Stephen Shaw
1033Misaki H NestleFrance2025-04-27Feiner Bros NEW69Elwin Sharvill
1034Aditya R DarakjyItaly2025-04-09Chapman, Ross E Esq NEW30Stephen Shaw
1035Murillo D AmigonJapan2025-04-29Rousseaux, Michael Esq PROPOSAL80Anna Fali
1036Mujtaba C RoysterItaly2025-04-19Benton, John B Jr NEW96Onyama Limba
1037Leja G VocelkaSpain2025-04-17Benton, John B Jr UNQUALIFIED35Bernardo Dominic
1038Ricardo A WieserUnited Kingdom2025-04-17Chemel, James L Cpa NEGOTIATION76Ivan Magalhaes
1039Julie L DarakjyBrazil2025-04-09Buckley Miller Wright RENEWAL94Amy Elsner
1040Faith D KolmetzSpain2025-04-29Chemel, James L Cpa RENEWAL36Stephen Shaw
1041Rodrigues V DoeGermany2025-04-29Feltz Printing Service NEGOTIATION9Xuxue Feng
1042Rodrigues Y DoeUnited Kingdom2025-04-16Chapman, Ross E Esq RENEWAL35Stephen Shaw
1043Arvin R CampainGermany2025-04-07Chapman, Ross E Esq RENEWAL14Amy Elsner
1044Clifford F RulapaughIndia2025-04-22Buckley Miller Wright NEW72Onyama Limba
1045Francesco C ButtJapan2025-04-29Morlong Associates NEW13Anna Fali
1046Munro T PerinUnited Kingdom2025-04-18Rousseaux, Michael Esq QUALIFIED90Xuxue Feng
1047Clifford D BriddickArgentina2025-04-02Feiner Bros RENEWAL23Xuxue Feng
1048Cody V IturbideAustralia2025-04-03Truhlar And Truhlar Attys NEGOTIATION83Xuxue Feng
1049Kaitlin H IturbideIndia2025-04-12Rousseaux, Michael Esq NEGOTIATION80Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Greenwood S CaldareraItalyElwin Sharvill NEW
Costa C RoysterArgentinaAnna Fali NEW
Isabel H KuskoUnited KingdomBernardo Dominic RENEWAL
Claire X MorascaUnited KingdomElwin Sharvill RENEWAL
Jones I WaycottCanadaXuxue Feng NEGOTIATION
Ricardo G CaldareraItalyIoni Bowcher RENEWAL
Kaitlin G OstroskyBrazilAmy Elsner PROPOSAL
Kaitlin W WieserFranceElwin Sharvill QUALIFIED
Jefferson D CaudyGermanyBernardo Dominic RENEWAL
Nicolas X KuskoItalyAmy Elsner UNQUALIFIED
Clifford P BowleyBrazilXuxue Feng QUALIFIED
Emily D RulapaughIndiaAnna Fali PROPOSAL
Rodrigues V WieserRussiaStephen Shaw PROPOSAL
Mayumi R FigeroaCanadaElwin Sharvill PROPOSAL
Emily R CaldareraUnited KingdomElwin Sharvill UNQUALIFIED
Greenwood W RoysterRussiaBernardo Dominic UNQUALIFIED
Cody P RimAustraliaIoni Bowcher PROPOSAL
Sinclair Q ShinkoGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois L MarrierJapanIoni Bowcher NEGOTIATION
Kadeem E ButtGermanyIvan Magalhaes NEW
Julie A ShinkoAustraliaElwin Sharvill RENEWAL
Francesco V MarrierArgentinaAmy Elsner UNQUALIFIED
Chavez C FlosiIndiaStephen Shaw QUALIFIED
Francesco A BowleyArgentinaOnyama Limba RENEWAL
Leon A IturbideCanadaAmy Elsner NEW
Salvatore R ShinkoJapanStephen Shaw QUALIFIED
Smith P KuskoAustraliaBernardo Dominic PROPOSAL
Faith A VenereSpainAsiya Javayant QUALIFIED
Deepesh O TollnerAustraliaBernardo Dominic QUALIFIED
Ashley K GauchoArgentinaOnyama Limba RENEWAL
Izzy H SchemmerUnited KingdomBernardo Dominic NEW
Arvin G RulapaughAustraliaBernardo Dominic RENEWAL
Jennifer L BriddickSpainIoni Bowcher UNQUALIFIED
Kaitlin S NestleRussiaAnna Fali UNQUALIFIED
Jones I StockhamIndiaIvan Magalhaes UNQUALIFIED
Stacey H DoeBrazilIoni Bowcher NEW
Munro H GillianIndiaXuxue Feng RENEWAL
Chavez P DarakjyUnited KingdomAsiya Javayant NEW
Chavez P ShinkoGermanyStephen Shaw PROPOSAL
Ricardo D SchemmerAustraliaAsiya Javayant RENEWAL
Francesco S PoquetteIndiaIoni Bowcher NEGOTIATION
Emily B DilliardCanadaXuxue Feng RENEWAL
Wickens W TollnerAustraliaElwin Sharvill NEW
Greenwood V BowleyAustraliaXuxue Feng PROPOSAL
Ashley V RimAustraliaIvan Magalhaes RENEWAL
Munro W RoysterJapanAnna Fali QUALIFIED
Ricardo K CaldareraGermanyBernardo Dominic NEW
Maisha B SchemmerRussiaAsiya Javayant NEW
Cody X RimArgentinaIoni Bowcher UNQUALIFIED
Stacey O WaycottCanadaAnna Fali PROPOSAL
Frozen Columns
Name
Francesco Q Glick
Stacey L Darakjy
Alejandro N Garufi
Darci Y Caudy
Ricardo A Paprocki
Adams H Inouye
Emily V Campain
Clifford O Rulapaugh
Maria T Morasca
Adams C Venere
Costa J Ruta
Kadeem K Ruta
Antonio C Waycott
Smith Q Kolmetz
Jefferson H Rim
Julie Y Albares
James V Garufi
Ashley R Wieser
Sinclair V Bowley
James T Nestle
Alejandro I Kusko
Izzy I Inouye
Octavia M Caudy
Arvin I Perin
Isabel R Chui
Emily I Schemmer
Claire U Amigon
Murillo I Maclead
Munro G Maclead
Nicolas A Kolmetz
Silvio I Wieser
Smith P Ostrosky
Costa J Doe
Aika B Foller
Smith X Chui
Murillo U Kolmetz
Kadeem G Garufi
Kadeem C Darakjy
Aruna V Wieser
Francesco S Marrier
Tony A Morasca
Greenwood V Waycott
Jones K Vocelka
Alejandro T Vocelka
Greenwood Z Morasca
Sinclair X Shinko
Ricardo W Maclead
Izzy I Amigon
Faith N Whobrey
Deepesh T Dilliard
IdCountryDate
1000Italy2025-04-18
1001Argentina2025-04-29
1002Russia2025-04-28
1003United Kingdom2025-03-31
1004Germany2025-04-04
1005Spain2025-04-13
1006Italy2025-04-18
1007France2025-04-19
1008France2025-04-29
1009Brazil2025-04-02
1010Argentina2025-04-04
1011France2025-04-26
1012Spain2025-04-03
1013Argentina2025-04-17
1014Brazil2025-04-09
1015India2025-04-29
1016Argentina2025-04-13
1017Canada2025-04-17
1018India2025-04-24
1019Spain2025-04-11
1020Spain2025-04-22
1021Argentina2025-04-27
1022United Kingdom2025-04-02
1023India2025-04-28
1024Italy2025-04-12
1025Argentina2025-04-09
1026Argentina2025-04-05
1027Argentina2025-04-03
1028Italy2025-04-26
1029United Kingdom2025-04-26
1030India2025-04-14
1031France2025-04-18
1032Japan2025-04-21
1033France2025-04-14
1034Russia2025-04-29
1035Spain2025-04-25
1036Germany2025-04-24
1037Brazil2025-04-13
1038United Kingdom2025-04-07
1039United Kingdom2025-04-11
1040Russia2025-04-18
1041United Kingdom2025-04-09
1042Australia2025-04-20
1043Japan2025-04-09
1044India2025-04-06
1045France2025-04-24
1046Australia2025-04-22
1047Germany2025-04-23
1048Argentina2025-04-27
1049United Kingdom2025-04-15

On-Demand Data

NameIdCountryDate
Deepesh I Stenseth1000India2025-04-19
Kaitlin B Oldroyd1001Brazil2025-04-15
Mayumi E Flosi1002Brazil2025-04-13
Aditya U Inouye1003Italy2025-04-04
Cody T Gaucho1004Italy2025-04-14
Juan Z Iturbide1005Russia2025-04-29
Ashley V Caldarera1006Brazil2025-03-31
Aika P Rulapaugh1007Spain2025-04-19
Kadeem T Oldroyd1008Russia2025-04-10
Leon A Gaucho1009Australia2025-04-14
Silvio K Tollner1010Brazil2025-04-13
Octavia Y Amigon1011Argentina2025-04-13
Octavia A Ruta1012Italy2025-04-26
Isabel L Chui1013France2025-04-28
Munro T Kusko1014Brazil2025-04-14
Costa W Briddick1015Russia2025-04-09
Costa T Gillian1016India2025-04-01
Greenwood W Dilliard1017Germany2025-04-09
Leon F Figeroa1018India2025-04-01
Octavia S Darakjy1019Brazil2025-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin H DoeJapanAsiya Javayant UNQUALIFIED
Isabel W FlosiUnited KingdomElwin Sharvill RENEWAL
Alejandro C VenereCanadaAnna Fali PROPOSAL
Johnson I GarufiFranceIvan Magalhaes NEGOTIATION
Mayumi Z RutaCanadaBernardo Dominic RENEWAL
Alejandro R IturbideIndiaStephen Shaw PROPOSAL
Emily P WaycottCanadaStephen Shaw UNQUALIFIED
Greenwood T CaudyIndiaOnyama Limba NEGOTIATION
Clifford V CampainSpainIoni Bowcher RENEWAL
Juan S FlosiUnited KingdomIoni Bowcher UNQUALIFIED
Johnson Q CampainAustraliaElwin Sharvill PROPOSAL
Smith R OstroskyUnited KingdomAnna Fali QUALIFIED
Isabel C ButtSpainElwin Sharvill QUALIFIED
Silvio A GillianFranceStephen Shaw UNQUALIFIED
Octavia U TollnerArgentinaIvan Magalhaes NEGOTIATION
Misaki W DilliardGermanyOnyama Limba UNQUALIFIED
Kaitlin V FigeroaUnited KingdomBernardo Dominic QUALIFIED
Kadeem E FigeroaRussiaAmy Elsner QUALIFIED
Munro J RulapaughGermanyStephen Shaw NEGOTIATION
Francesco P RutaAustraliaStephen Shaw NEGOTIATION
Deepesh T BowleyRussiaAmy Elsner NEW
Greenwood F NestleIndiaAnna Fali NEGOTIATION
Tony N PaprockiIndiaElwin Sharvill QUALIFIED
Misaki F GauchoJapanElwin Sharvill RENEWAL
Mayumi W OldroydIndiaXuxue Feng QUALIFIED
Isabel T AlbaresUnited KingdomOnyama Limba UNQUALIFIED
Costa S GarufiCanadaIoni Bowcher UNQUALIFIED
Tony J ChuiSpainOnyama Limba QUALIFIED
Leon S AlbaresItalyIvan Magalhaes QUALIFIED
Maria U InouyeSpainOnyama Limba PROPOSAL
Maisha E TollnerCanadaIvan Magalhaes QUALIFIED
Claire E GillianJapanAmy Elsner UNQUALIFIED
Maria J NestleUnited KingdomAmy Elsner QUALIFIED
Juan N DarakjyCanadaElwin Sharvill RENEWAL
Morrow C SergiUnited KingdomAmy Elsner NEW
Aditya J RimUnited KingdomStephen Shaw PROPOSAL
Darci Q PoquetteItalyStephen Shaw RENEWAL
Deepesh L GauchoItalyIoni Bowcher RENEWAL
Octavia Z InouyeRussiaXuxue Feng PROPOSAL
Cody L SaylorsGermanyXuxue Feng NEGOTIATION

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