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
Mayumi T AmigonRussiaAmy Elsner NEGOTIATION
Chavez S BowleyIndiaBernardo Dominic PROPOSAL
Darci X AlbaresItalyStephen Shaw PROPOSAL
Kadeem R WhobreyBrazilIvan Magalhaes NEGOTIATION
Mujtaba G MaletRussiaAsiya Javayant QUALIFIED
Deepesh P PaprockiItalyStephen Shaw UNQUALIFIED
David R SlusarskiRussiaAsiya Javayant UNQUALIFIED
James C WieserRussiaAnna Fali UNQUALIFIED
Adams W PaprockiIndiaIvan Magalhaes NEGOTIATION
Aika D CampainJapanElwin Sharvill NEW
Arvin U BriddickGermanyAsiya Javayant NEW
Juan N BowleyArgentinaBernardo Dominic QUALIFIED
Antonio D DilliardSpainAsiya Javayant NEW
Izzy B BriddickGermanyBernardo Dominic NEW
Murillo P CaudyFranceXuxue Feng QUALIFIED
Juan R AmigonArgentinaOnyama Limba UNQUALIFIED
Izzy J MaletItalyAnna Fali UNQUALIFIED
Arvin I MarrierRussiaBernardo Dominic NEGOTIATION
Ivar E MorascaRussiaIoni Bowcher QUALIFIED
Tony P RimJapanAsiya Javayant RENEWAL
James V BriddickItalyIvan Magalhaes UNQUALIFIED
Johnson J GauchoIndiaOnyama Limba NEGOTIATION
Ashley V VocelkaFranceAmy Elsner PROPOSAL
Adams N FigeroaGermanyAsiya Javayant QUALIFIED
Julie W SlusarskiJapanOnyama Limba NEW
Misaki J KolmetzGermanyXuxue Feng UNQUALIFIED
Juan S CampainJapanBernardo Dominic UNQUALIFIED
Rodrigues Q DoeCanadaAsiya Javayant QUALIFIED
Izzy E GillianItalyStephen Shaw NEW
Morrow G OldroydUnited KingdomAsiya Javayant QUALIFIED
Aruna L StensethIndiaOnyama Limba UNQUALIFIED
Leon A MorascaIndiaStephen Shaw UNQUALIFIED
Antonio S MaletGermanyAsiya Javayant NEW
Faith L RimFranceIoni Bowcher PROPOSAL
Mayumi X BriddickRussiaAnna Fali NEW
Alejandro R DilliardItalyBernardo Dominic NEGOTIATION
Juan E OldroydFranceBernardo Dominic QUALIFIED
Greenwood F AmigonGermanyStephen Shaw RENEWAL
Jeanfrancois U GauchoRussiaIvan Magalhaes QUALIFIED
Maria F VocelkaJapanElwin Sharvill RENEWAL
Leja Z GauchoFranceXuxue Feng UNQUALIFIED
Greenwood N ChuiUnited KingdomAsiya Javayant NEGOTIATION
Misaki F ChuiFranceAmy Elsner UNQUALIFIED
Costa Y AlbaresJapanAnna Fali NEW
Ashley I BriddickAustraliaAsiya Javayant PROPOSAL
Kadeem X StensethArgentinaIvan Magalhaes UNQUALIFIED
Costa T GauchoBrazilAmy Elsner NEW
Aditya W WhobreyGermanyStephen Shaw NEW
Nicolas V AlbaresRussiaBernardo Dominic QUALIFIED
Aika P CampainSpainBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody L SchemmerAustraliaAnna Fali PROPOSAL
Claire R PoquetteUnited KingdomBernardo Dominic NEGOTIATION
Isabel Z FigeroaFranceIvan Magalhaes RENEWAL
Jefferson X CampainGermanyBernardo Dominic UNQUALIFIED
Octavia F ChuiIndiaAmy Elsner RENEWAL
Kaitlin G MacleadFranceIvan Magalhaes NEGOTIATION
James Q CampainJapanOnyama Limba UNQUALIFIED
Aika I StensethBrazilAsiya Javayant NEW
Cody C FigeroaRussiaXuxue Feng UNQUALIFIED
Maisha O RutaJapanXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson N WaycottRussia2026-07-13Buckley Miller Wright UNQUALIFIED76Bernardo Dominic
1001Stacey A DilliardJapan2026-07-01Dorl, James J Esq NEGOTIATION7Xuxue Feng
1002Johnson K NestleItaly2026-07-18Truhlar And Truhlar Attys QUALIFIED64Amy Elsner
1003Clifford C OstroskyFrance2026-07-18Morlong Associates QUALIFIED98Xuxue Feng
1004Morrow H MaletUnited Kingdom2026-07-21Commercial Press RENEWAL0Asiya Javayant
1005Aruna J NickaUnited Kingdom2026-07-04Morlong Associates NEGOTIATION37Asiya Javayant
1006Misaki B CaudyFrance2026-07-11Rangoni Of Florence NEGOTIATION60Elwin Sharvill
1007Jefferson Z CampainCanada2026-07-17Feltz Printing Service QUALIFIED19Bernardo Dominic
1008Chavez V FollerBrazil2026-07-12King, Christopher A Esq NEW13Asiya Javayant
1009Munro V FigeroaJapan2026-07-20Rangoni Of Florence NEW6Anna Fali
1010Ricardo G FigeroaJapan2026-07-20Printing Dimensions RENEWAL67Asiya Javayant
1011Leja G MaletIndia2026-07-23Chapman, Ross E Esq NEGOTIATION11Ioni Bowcher
1012Tony C GlickArgentina2026-07-04Truhlar And Truhlar Attys NEW69Amy Elsner
1013Murillo C FigeroaArgentina2026-07-06Printing Dimensions PROPOSAL46Amy Elsner
1014Murillo J OldroydArgentina2026-07-08Chemel, James L Cpa NEW92Onyama Limba
1015Antonio G SchemmerFrance2026-07-11Chemel, James L Cpa NEGOTIATION38Onyama Limba
1016Julie K TollnerFrance2026-06-25Buckley Miller Wright QUALIFIED99Xuxue Feng
1017Stacey J FigeroaIndia2026-07-14Printing Dimensions NEGOTIATION15Elwin Sharvill
1018Jeanfrancois Q SergiJapan2026-06-24King, Christopher A Esq PROPOSAL13Asiya Javayant
1019Izzy T IturbideGermany2026-07-01Buckley Miller Wright NEGOTIATION60Asiya Javayant
1020Ricardo S MacleadFrance2026-07-10Rangoni Of Florence QUALIFIED81Asiya Javayant
1021Claire Q ButtArgentina2026-07-04Feiner Bros RENEWAL62Stephen Shaw
1022Wickens T CaldareraCanada2026-07-08Feiner Bros QUALIFIED11Amy Elsner
1023Maria I MaletJapan2026-07-01Benton, John B Jr PROPOSAL72Amy Elsner
1024Salvatore R OstroskySpain2026-06-24Commercial Press NEGOTIATION90Anna Fali
1025Misaki E OstroskyJapan2026-07-23Rousseaux, Michael Esq PROPOSAL71Ioni Bowcher
1026Antonio S DilliardSpain2026-07-22Feiner Bros UNQUALIFIED26Onyama Limba
1027Claire X NickaUnited Kingdom2026-07-12Buckley Miller Wright QUALIFIED70Xuxue Feng
1028Arvin S VenereArgentina2026-06-28King, Christopher A Esq PROPOSAL22Ioni Bowcher
1029Nicolas V DilliardCanada2026-07-06Printing Dimensions NEW5Amy Elsner
1030Jennifer A InouyeFrance2026-07-10Buckley Miller Wright NEGOTIATION47Onyama Limba
1031Aruna J MorascaFrance2026-07-16King, Christopher A Esq NEGOTIATION78Asiya Javayant
1032James O BologniaUnited Kingdom2026-07-08Feiner Bros NEGOTIATION53Xuxue Feng
1033Claire L VenereFrance2026-07-12Rangoni Of Florence NEW92Amy Elsner
1034Aditya L MacleadSpain2026-06-24Morlong Associates QUALIFIED69Stephen Shaw
1035David C BowleySpain2026-06-28King, Christopher A Esq RENEWAL73Anna Fali
1036Isabel L ChuiSpain2026-07-05Truhlar And Truhlar Attys NEGOTIATION22Onyama Limba
1037Darci R MarrierCanada2026-07-09Commercial Press NEW51Elwin Sharvill
1038Kadeem T GlickJapan2026-06-26Feiner Bros QUALIFIED2Xuxue Feng
1039Octavia K MaletFrance2026-07-10Printing Dimensions NEGOTIATION78Bernardo Dominic
1040Costa K ShinkoGermany2026-07-15Commercial Press NEW7Anna Fali
1041Octavia Z CaudyFrance2026-06-25Morlong Associates RENEWAL3Ioni Bowcher
1042Aika V PerinItaly2026-06-25Commercial Press UNQUALIFIED20Stephen Shaw
1043Claire H PoquetteUnited Kingdom2026-07-14Rousseaux, Michael Esq NEGOTIATION3Asiya Javayant
1044Stacey D KolmetzUnited Kingdom2026-07-22Printing Dimensions PROPOSAL31Xuxue Feng
1045Darci Q SaylorsRussia2026-06-30Chapman, Ross E Esq QUALIFIED20Stephen Shaw
1046Leon W KolmetzBrazil2026-07-11King, Christopher A Esq NEGOTIATION76Bernardo Dominic
1047Darci Y SaylorsItaly2026-07-13Truhlar And Truhlar Attys RENEWAL95Stephen Shaw
1048Aruna K DilliardArgentina2026-06-24Truhlar And Truhlar Attys UNQUALIFIED62Asiya Javayant
1049Aditya O GillianCanada2026-07-01Chemel, James L Cpa PROPOSAL82Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
James X GauchoIndiaStephen Shaw RENEWAL
Clifford J MarrierIndiaOnyama Limba UNQUALIFIED
Morrow O PaprockiIndiaIoni Bowcher RENEWAL
Francesco T CampainAustraliaIvan Magalhaes PROPOSAL
Ivar W MacleadRussiaAmy Elsner UNQUALIFIED
Sinclair J GlickArgentinaOnyama Limba RENEWAL
Isabel E SchemmerSpainIoni Bowcher RENEWAL
Wickens R BowleyRussiaStephen Shaw RENEWAL
Chavez A MacleadAustraliaAnna Fali QUALIFIED
Munro S RimRussiaIoni Bowcher UNQUALIFIED
Ashley D NickaArgentinaAsiya Javayant NEW
Claire M NestleSpainXuxue Feng NEW
Ashley D RoysterRussiaAmy Elsner NEW
Johnson U GillianSpainAsiya Javayant RENEWAL
Maria U DilliardSpainStephen Shaw NEGOTIATION
Octavia U MaletRussiaAnna Fali NEW
Emily H DoeSpainAnna Fali NEW
Jefferson X RoysterIndiaAsiya Javayant QUALIFIED
Arvin Y FigeroaFranceXuxue Feng PROPOSAL
David X WaycottSpainOnyama Limba NEGOTIATION
Ashley U DilliardFranceStephen Shaw QUALIFIED
Isabel D CaldareraFranceStephen Shaw QUALIFIED
Stacey G FigeroaBrazilAsiya Javayant PROPOSAL
Morrow P WaycottArgentinaIvan Magalhaes PROPOSAL
Ricardo J DoeAustraliaIvan Magalhaes QUALIFIED
James L ShinkoIndiaBernardo Dominic QUALIFIED
Antonio K KuskoItalyOnyama Limba PROPOSAL
Aruna J StensethItalyIoni Bowcher NEGOTIATION
Maisha D MaletItalyXuxue Feng QUALIFIED
Morrow T CampainGermanyAmy Elsner NEW
Deepesh H FerenczUnited KingdomAsiya Javayant NEW
Julie U IturbideItalyElwin Sharvill UNQUALIFIED
Morrow Z WieserAustraliaElwin Sharvill UNQUALIFIED
Arvin H MaletJapanXuxue Feng RENEWAL
Mujtaba R WieserRussiaAsiya Javayant UNQUALIFIED
Leja V FerenczSpainElwin Sharvill QUALIFIED
Maisha M MorascaFranceAnna Fali UNQUALIFIED
Octavia P MacleadUnited KingdomAmy Elsner NEGOTIATION
Smith W PoquetteCanadaIvan Magalhaes UNQUALIFIED
Arvin I ButtUnited KingdomIoni Bowcher UNQUALIFIED
Clifford M SergiAustraliaAnna Fali QUALIFIED
Mayumi N NestleBrazilIvan Magalhaes QUALIFIED
James F PerinIndiaIoni Bowcher RENEWAL
Mujtaba E RoysterItalyAnna Fali NEW
Emily W PerinFranceXuxue Feng NEGOTIATION
James G BriddickJapanAsiya Javayant NEGOTIATION
Leja Y RoysterItalyElwin Sharvill NEW
Silvio L SergiSpainIoni Bowcher NEGOTIATION
Leja K InouyeFranceXuxue Feng NEGOTIATION
Munro I SergiItalyAnna Fali UNQUALIFIED
Frozen Columns
Name
Mujtaba X Doe
Leja X Poquette
Claire K Stenseth
Ashley L Briddick
Octavia L Wieser
Aika U Saylors
Claire U Dilliard
Maisha S Schemmer
Maisha I Flosi
Rodrigues V Morasca
Kaitlin Q Schemmer
Johnson N Kolmetz
Greenwood G Waycott
Octavia U Shinko
Mayumi V Perin
Cody J Vocelka
Sinclair I Schemmer
Wickens I Iturbide
Ashley W Figeroa
Wickens Z Bowley
Murillo V Gaucho
Isabel O Saylors
Misaki A Campain
Kadeem J Dilliard
Nicolas X Kolmetz
Arvin H Caldarera
Salvatore B Morasca
Nicolas A Ferencz
Maria L Stockham
Antonio T Venere
Salvatore Z Slusarski
Octavia W Dilliard
Ashley O Waycott
Arvin M Caudy
Emily G Malet
Nicolas J Amigon
Morrow E Sergi
Tony L Waycott
Misaki P Albares
Faith F Maclead
Chavez C Campain
Costa U Iturbide
Sinclair X Rulapaugh
Octavia B Vocelka
Chavez N Vocelka
Rodrigues R Venere
Emily T Ferencz
Octavia O Chui
Adams S Figeroa
Mujtaba H Albares
IdCountryDate
1000United Kingdom2026-07-19
1001United Kingdom2026-07-11
1002Argentina2026-07-18
1003United Kingdom2026-06-28
1004Russia2026-07-16
1005Spain2026-07-13
1006France2026-07-05
1007United Kingdom2026-07-08
1008United Kingdom2026-07-16
1009Germany2026-07-19
1010Japan2026-07-04
1011Japan2026-07-05
1012Brazil2026-07-22
1013India2026-07-13
1014Russia2026-07-04
1015Canada2026-07-03
1016India2026-07-10
1017Italy2026-07-06
1018India2026-07-23
1019India2026-06-30
1020India2026-07-10
1021Japan2026-06-29
1022Germany2026-07-12
1023India2026-07-18
1024Russia2026-06-30
1025Canada2026-07-04
1026Brazil2026-07-06
1027Italy2026-06-24
1028Russia2026-06-30
1029India2026-07-09
1030France2026-06-28
1031United Kingdom2026-06-26
1032Germany2026-07-17
1033Canada2026-07-19
1034Argentina2026-07-16
1035Russia2026-07-18
1036Argentina2026-06-25
1037Argentina2026-06-28
1038France2026-07-18
1039Australia2026-07-06
1040Spain2026-06-24
1041Canada2026-07-07
1042Australia2026-06-27
1043Spain2026-06-26
1044Spain2026-06-26
1045Argentina2026-07-22
1046United Kingdom2026-07-13
1047India2026-07-11
1048Russia2026-07-11
1049Russia2026-07-11

On-Demand Data

NameIdCountryDate
Mayumi G Nestle1000Italy2026-06-28
Antonio O Inouye1001India2026-06-30
Kadeem P Wieser1002Russia2026-07-08
Faith O Nestle1003Italy2026-07-07
James P Kusko1004Argentina2026-07-22
Nicolas X Bowley1005Argentina2026-07-12
Johnson X Glick1006Italy2026-06-29
Johnson A Malet1007Japan2026-07-14
Maria G Inouye1008Germany2026-07-23
Mayumi Y Bolognia1009United Kingdom2026-07-01
Arvin E Ferencz1010Brazil2026-06-24
Francesco J Amigon1011France2026-07-16
Maria T Poquette1012India2026-07-13
Aruna K Nicka1013Japan2026-07-23
Leja I Oldroyd1014Russia2026-06-30
Maria Z Perin1015Germany2026-07-08
Clifford E Caldarera1016Germany2026-07-08
Sinclair O Slusarski1017India2026-07-11
Darci M Slusarski1018Brazil2026-07-02
Aika L Campain1019Japan2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer E BologniaArgentinaOnyama Limba RENEWAL
Adams H WieserRussiaIoni Bowcher QUALIFIED
Chavez C GillianRussiaIoni Bowcher NEGOTIATION
Jennifer T MorascaArgentinaAnna Fali RENEWAL
Darci R PaprockiIndiaAnna Fali UNQUALIFIED
Clifford N PoquetteBrazilAsiya Javayant QUALIFIED
Izzy I VenereItalyAsiya Javayant RENEWAL
David U AlbaresSpainAsiya Javayant NEW
Mayumi J VocelkaFranceBernardo Dominic PROPOSAL
Isabel O MaletSpainAsiya Javayant PROPOSAL
Adams C WaycottRussiaAmy Elsner QUALIFIED
Ashley A WieserUnited KingdomBernardo Dominic RENEWAL
Costa W PoquetteBrazilBernardo Dominic RENEWAL
David L PaprockiBrazilAsiya Javayant NEW
Aika R VocelkaUnited KingdomBernardo Dominic RENEWAL
Deepesh A CaldareraCanadaElwin Sharvill NEW
Jennifer F RimIndiaIvan Magalhaes NEGOTIATION
Darci X SchemmerGermanyAnna Fali QUALIFIED
Mayumi W GauchoIndiaBernardo Dominic RENEWAL
Julie B ShinkoBrazilIoni Bowcher NEW
Claire M GarufiBrazilIoni Bowcher NEGOTIATION
Costa S DilliardIndiaStephen Shaw QUALIFIED
Aditya C IturbideCanadaIvan Magalhaes NEW
Leja B GarufiSpainAmy Elsner PROPOSAL
Smith M RutaArgentinaXuxue Feng UNQUALIFIED
Maisha X OldroydGermanyBernardo Dominic UNQUALIFIED
Rodrigues Y PoquetteGermanyIoni Bowcher PROPOSAL
Tony U IturbideUnited KingdomIvan Magalhaes NEW
Greenwood I VenereSpainAsiya Javayant UNQUALIFIED
Cody E VenereGermanyIoni Bowcher PROPOSAL
Clifford I PaprockiFranceIvan Magalhaes NEW
Jeanfrancois Q ChuiItalyBernardo Dominic NEGOTIATION
Leon U MarrierCanadaAsiya Javayant UNQUALIFIED
Antonio Q AmigonGermanyXuxue Feng NEGOTIATION
Leon A StensethSpainOnyama Limba UNQUALIFIED
Faith D IturbideCanadaAmy Elsner NEGOTIATION
Sinclair L TollnerCanadaIoni Bowcher NEW
Stacey O IturbideArgentinaBernardo Dominic QUALIFIED
Greenwood L OldroydItalyElwin Sharvill QUALIFIED
Cody D GlickRussiaAmy Elsner QUALIFIED

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