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
Juan J MaletUnited KingdomOnyama Limba QUALIFIED
Arvin E NestleJapanIoni Bowcher RENEWAL
Aditya H FollerAustraliaIoni Bowcher RENEWAL
Juan K DilliardItalyXuxue Feng UNQUALIFIED
Jefferson R PerinRussiaXuxue Feng PROPOSAL
Izzy M AlbaresIndiaXuxue Feng PROPOSAL
Ashley Q IturbideBrazilAsiya Javayant QUALIFIED
Maisha I ButtFranceBernardo Dominic NEGOTIATION
Mayumi J DoeBrazilIoni Bowcher RENEWAL
Clifford B CaudySpainBernardo Dominic UNQUALIFIED
Izzy K FollerIndiaAnna Fali NEGOTIATION
Maisha Y GlickUnited KingdomAsiya Javayant QUALIFIED
Ricardo S NestleBrazilElwin Sharvill NEGOTIATION
Francesco X RutaRussiaAsiya Javayant UNQUALIFIED
Wickens V NestleGermanyIvan Magalhaes NEW
Antonio J MacleadJapanStephen Shaw PROPOSAL
Mayumi N WhobreyCanadaStephen Shaw PROPOSAL
Morrow Y AmigonAustraliaAsiya Javayant NEGOTIATION
Silvio V GlickAustraliaAmy Elsner NEW
Rodrigues Z OldroydArgentinaElwin Sharvill NEGOTIATION
Morrow B AmigonGermanyElwin Sharvill UNQUALIFIED
Costa Y FlosiIndiaIoni Bowcher NEGOTIATION
Costa V DilliardArgentinaStephen Shaw PROPOSAL
Salvatore E WieserUnited KingdomAmy Elsner NEW
Cody P ChuiJapanElwin Sharvill UNQUALIFIED
Maria B GillianUnited KingdomStephen Shaw QUALIFIED
Salvatore M ButtRussiaAsiya Javayant NEGOTIATION
Maria B OstroskyJapanIvan Magalhaes QUALIFIED
Chavez Y FlosiCanadaAmy Elsner NEGOTIATION
Ashley J BriddickRussiaOnyama Limba NEW
Silvio X MaletSpainOnyama Limba QUALIFIED
Juan I GillianCanadaAmy Elsner NEW
Claire L DoeBrazilAsiya Javayant PROPOSAL
Munro Q KolmetzUnited KingdomAsiya Javayant QUALIFIED
Wickens X InouyeIndiaBernardo Dominic UNQUALIFIED
Nicolas L FollerFranceAmy Elsner NEGOTIATION
Misaki N PaprockiUnited KingdomXuxue Feng NEGOTIATION
Alejandro P SlusarskiUnited KingdomStephen Shaw QUALIFIED
Kadeem B PaprockiSpainAsiya Javayant PROPOSAL
Darci R ButtAustraliaOnyama Limba RENEWAL
Cody S GauchoUnited KingdomAmy Elsner UNQUALIFIED
Ricardo W KolmetzBrazilAnna Fali PROPOSAL
Smith C MarrierArgentinaStephen Shaw PROPOSAL
Maisha B GauchoUnited KingdomStephen Shaw NEGOTIATION
Johnson V RoysterRussiaIoni Bowcher QUALIFIED
Stacey Y DilliardRussiaStephen Shaw RENEWAL
Julie U BologniaFranceXuxue Feng QUALIFIED
Silvio W SlusarskiBrazilIvan Magalhaes RENEWAL
Ivar F VocelkaIndiaIoni Bowcher PROPOSAL
Kadeem C BowleyCanadaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford Z RutaArgentinaIvan Magalhaes UNQUALIFIED
Nicolas B MaletGermanyXuxue Feng QUALIFIED
Adams R RulapaughSpainStephen Shaw NEW
Francesco V CaldareraBrazilIoni Bowcher RENEWAL
Adams N CaudyItalyOnyama Limba RENEWAL
Arvin T GarufiBrazilIoni Bowcher QUALIFIED
James E OstroskyBrazilBernardo Dominic QUALIFIED
Darci T KolmetzSpainStephen Shaw NEW
Leon Q ChuiBrazilIoni Bowcher NEW
Ashley W FlosiCanadaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel K SergiRussia2026-06-09Morlong Associates PROPOSAL98Onyama Limba
1001Ashley O MarrierItaly2026-06-16Dorl, James J Esq PROPOSAL16Elwin Sharvill
1002Smith Q GauchoSpain2026-06-15Feiner Bros QUALIFIED98Bernardo Dominic
1003Misaki V FollerFrance2026-07-04Feiner Bros RENEWAL76Ioni Bowcher
1004Sinclair D InouyeArgentina2026-06-30Chapman, Ross E Esq PROPOSAL58Stephen Shaw
1005Leon D TollnerJapan2026-07-07Feltz Printing Service UNQUALIFIED62Elwin Sharvill
1006Mayumi I BologniaGermany2026-06-30Benton, John B Jr PROPOSAL62Elwin Sharvill
1007Jefferson W GillianCanada2026-07-07Rangoni Of Florence RENEWAL64Onyama Limba
1008Jones H MarrierSpain2026-06-15Morlong Associates NEGOTIATION5Onyama Limba
1009Adams M CaudyItaly2026-07-06Chapman, Ross E Esq QUALIFIED21Stephen Shaw
1010Ashley D PoquetteIndia2026-06-22Commercial Press PROPOSAL51Amy Elsner
1011Jefferson Y MorascaBrazil2026-06-17Benton, John B Jr PROPOSAL25Asiya Javayant
1012Aditya Q GarufiGermany2026-06-19Chanay, Jeffrey A Esq RENEWAL61Elwin Sharvill
1013Mujtaba T VocelkaIndia2026-06-12Feiner Bros QUALIFIED85Anna Fali
1014Maria S PaprockiJapan2026-06-25Truhlar And Truhlar Attys QUALIFIED20Elwin Sharvill
1015Aika Z GlickGermany2026-06-30King, Christopher A Esq UNQUALIFIED58Amy Elsner
1016Aika F DarakjySpain2026-06-25Chapman, Ross E Esq NEGOTIATION76Anna Fali
1017Clifford M RoysterJapan2026-06-09Rousseaux, Michael Esq UNQUALIFIED43Xuxue Feng
1018Izzy E CaudyGermany2026-06-08Benton, John B Jr RENEWAL19Amy Elsner
1019Greenwood E OstroskyJapan2026-06-18Chapman, Ross E Esq PROPOSAL72Ioni Bowcher
1020Ivar Y OstroskyAustralia2026-06-09Chapman, Ross E Esq NEGOTIATION40Ivan Magalhaes
1021Johnson T IturbideRussia2026-07-02Feiner Bros NEGOTIATION22Asiya Javayant
1022James V WhobreyRussia2026-06-30King, Christopher A Esq PROPOSAL92Xuxue Feng
1023Sinclair V NestleSpain2026-06-30Rangoni Of Florence PROPOSAL50Ioni Bowcher
1024Wickens B GarufiAustralia2026-06-23Printing Dimensions NEW52Ivan Magalhaes
1025Clifford Z BologniaJapan2026-06-13Feltz Printing Service NEGOTIATION60Elwin Sharvill
1026Rodrigues T DoeCanada2026-06-22Chapman, Ross E Esq RENEWAL54Ivan Magalhaes
1027Faith R StockhamCanada2026-06-21Buckley Miller Wright PROPOSAL77Elwin Sharvill
1028Johnson E StensethGermany2026-06-15Truhlar And Truhlar Attys UNQUALIFIED90Bernardo Dominic
1029Clifford M WhobreyIndia2026-07-06Feiner Bros NEGOTIATION6Ioni Bowcher
1030Darci Q BriddickUnited Kingdom2026-07-07Dorl, James J Esq NEGOTIATION64Asiya Javayant
1031Kaitlin G CampainAustralia2026-06-13Buckley Miller Wright UNQUALIFIED67Ivan Magalhaes
1032Aditya O GarufiCanada2026-07-07Truhlar And Truhlar Attys UNQUALIFIED59Bernardo Dominic
1033Juan G ButtJapan2026-07-07Rangoni Of Florence RENEWAL15Bernardo Dominic
1034Morrow I RutaUnited Kingdom2026-06-20Chemel, James L Cpa QUALIFIED28Xuxue Feng
1035Smith B NestleJapan2026-06-30Chanay, Jeffrey A Esq NEW78Stephen Shaw
1036Leon Q RimCanada2026-07-05Chanay, Jeffrey A Esq QUALIFIED11Onyama Limba
1037Costa R RoysterRussia2026-06-09Chanay, Jeffrey A Esq RENEWAL57Bernardo Dominic
1038David V FollerCanada2026-07-03Feltz Printing Service UNQUALIFIED21Stephen Shaw
1039Nicolas P KuskoGermany2026-06-29Rangoni Of Florence PROPOSAL13Asiya Javayant
1040Rodrigues X StockhamBrazil2026-06-21King, Christopher A Esq UNQUALIFIED42Stephen Shaw
1041Maisha I AmigonFrance2026-06-13Feltz Printing Service NEGOTIATION82Ivan Magalhaes
1042Aruna C TollnerUnited Kingdom2026-06-12Commercial Press UNQUALIFIED36Elwin Sharvill
1043Mayumi A ButtIndia2026-06-15Feltz Printing Service UNQUALIFIED99Elwin Sharvill
1044Claire L GillianIndia2026-06-10Buckley Miller Wright UNQUALIFIED43Bernardo Dominic
1045Murillo S PerinGermany2026-06-30Commercial Press QUALIFIED80Elwin Sharvill
1046Costa R FlosiBrazil2026-06-09Benton, John B Jr QUALIFIED76Ioni Bowcher
1047Jefferson G VocelkaSpain2026-06-29Rangoni Of Florence NEW9Stephen Shaw
1048Juan W PoquetteIndia2026-07-04Morlong Associates PROPOSAL52Stephen Shaw
1049Juan P FigeroaRussia2026-06-30Commercial Press RENEWAL34Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Sinclair Z BowleyItalyIvan Magalhaes NEGOTIATION
Tony O GlickAustraliaStephen Shaw QUALIFIED
Murillo P PoquetteJapanAmy Elsner RENEWAL
Stacey G GillianArgentinaElwin Sharvill NEGOTIATION
David L StensethSpainAsiya Javayant RENEWAL
Deepesh Q VocelkaItalyAsiya Javayant NEW
Jeanfrancois O PaprockiSpainStephen Shaw QUALIFIED
James F RimItalyXuxue Feng UNQUALIFIED
Cody D KolmetzBrazilElwin Sharvill PROPOSAL
Kadeem Z WhobreyBrazilElwin Sharvill PROPOSAL
Misaki J OstroskyFranceXuxue Feng QUALIFIED
Aditya S DarakjyGermanyIoni Bowcher NEW
Sinclair V TollnerAustraliaOnyama Limba PROPOSAL
Aika P FlosiCanadaXuxue Feng RENEWAL
Jennifer W RulapaughCanadaOnyama Limba QUALIFIED
Ricardo A RoysterAustraliaStephen Shaw PROPOSAL
Leja G NestleFranceAsiya Javayant QUALIFIED
Izzy R ShinkoUnited KingdomXuxue Feng NEW
Arvin B MacleadJapanOnyama Limba RENEWAL
Aruna M WieserArgentinaAnna Fali PROPOSAL
Faith T OstroskyIndiaAmy Elsner NEW
Salvatore K GillianSpainOnyama Limba QUALIFIED
Kaitlin S PerinArgentinaAnna Fali QUALIFIED
Darci T StensethIndiaStephen Shaw PROPOSAL
Aruna F SchemmerGermanyIoni Bowcher NEGOTIATION
Emily U RulapaughJapanBernardo Dominic NEW
Costa H OstroskySpainAnna Fali NEGOTIATION
Smith Q OstroskyRussiaIvan Magalhaes UNQUALIFIED
Rodrigues S FollerRussiaIoni Bowcher RENEWAL
Rodrigues C DarakjyCanadaXuxue Feng RENEWAL
Smith B ButtBrazilStephen Shaw NEGOTIATION
Arvin R KuskoSpainAmy Elsner PROPOSAL
Jones O CaldareraJapanIoni Bowcher NEW
Leja M ChuiJapanIvan Magalhaes PROPOSAL
Rodrigues W OldroydItalyAnna Fali PROPOSAL
Jeanfrancois S VenereFranceBernardo Dominic NEW
Misaki V BowleyItalyElwin Sharvill QUALIFIED
Rodrigues E GillianSpainBernardo Dominic PROPOSAL
Kadeem W RoysterIndiaIoni Bowcher RENEWAL
Julie K SaylorsCanadaIoni Bowcher UNQUALIFIED
Leon C VenereIndiaStephen Shaw NEGOTIATION
Julie G WaycottArgentinaOnyama Limba RENEWAL
Aruna F InouyeGermanyXuxue Feng UNQUALIFIED
Maisha T StockhamFranceIoni Bowcher RENEWAL
Leja J MarrierArgentinaAnna Fali PROPOSAL
Octavia Y BologniaIndiaXuxue Feng RENEWAL
Johnson R ChuiArgentinaElwin Sharvill RENEWAL
Antonio W MarrierSpainOnyama Limba NEGOTIATION
Jennifer A CaldareraRussiaStephen Shaw QUALIFIED
Misaki X MaletRussiaIoni Bowcher RENEWAL
Frozen Columns
Name
Munro S Rulapaugh
Arvin J Vocelka
Kaitlin X Schemmer
Morrow Z Darakjy
Ivar L Nestle
Aditya D Sergi
Ricardo Q Stenseth
Jefferson D Darakjy
Nicolas W Paprocki
Silvio M Figeroa
Maisha T Stockham
Sinclair N Chui
Clifford M Dilliard
Deepesh R Malet
Stacey P Kolmetz
Izzy O Perin
Arvin Z Campain
Stacey D Perin
Smith L Venere
Antonio Z Foller
Misaki L Campain
Faith R Inouye
Mujtaba A Stenseth
Jones E Rulapaugh
Juan L Ferencz
Aika K Nestle
Costa R Caldarera
Morrow W Foller
Morrow P Amigon
Octavia Q Doe
Nicolas G Malet
Jennifer N Doe
Arvin U Garufi
Aruna E Sergi
Smith Q Gaucho
Darci Q Dilliard
Adams B Stockham
Isabel Z Oldroyd
Maisha L Marrier
Arvin F Iturbide
Ashley W Maclead
Ivar L Gaucho
Kaitlin X Albares
Jefferson T Gillian
Julie J Marrier
Alejandro F Stenseth
Darci Y Venere
Greenwood X Flosi
Mujtaba E Waycott
Costa A Butt
IdCountryDate
1000United Kingdom2026-06-21
1001Germany2026-06-14
1002Spain2026-06-20
1003Brazil2026-06-09
1004Italy2026-06-30
1005France2026-06-23
1006France2026-06-25
1007Australia2026-06-22
1008Japan2026-06-25
1009Japan2026-06-30
1010Spain2026-06-20
1011Germany2026-07-07
1012Canada2026-06-21
1013India2026-06-24
1014Brazil2026-06-20
1015Italy2026-07-07
1016France2026-06-18
1017Spain2026-06-11
1018Australia2026-06-09
1019Brazil2026-06-29
1020Italy2026-07-05
1021Canada2026-06-13
1022Canada2026-06-08
1023Australia2026-07-07
1024Germany2026-07-05
1025Italy2026-06-12
1026Japan2026-07-04
1027Canada2026-07-07
1028Russia2026-06-11
1029France2026-06-12
1030India2026-07-07
1031United Kingdom2026-06-24
1032United Kingdom2026-06-14
1033Germany2026-07-06
1034India2026-06-17
1035United Kingdom2026-07-04
1036Russia2026-06-16
1037Spain2026-06-18
1038Japan2026-07-03
1039Canada2026-06-13
1040Brazil2026-06-30
1041Spain2026-06-27
1042Brazil2026-06-20
1043Russia2026-06-11
1044Russia2026-07-03
1045Russia2026-06-23
1046Canada2026-06-20
1047Italy2026-06-28
1048France2026-06-16
1049United Kingdom2026-07-05

On-Demand Data

NameIdCountryDate
Kadeem Y Inouye1000Brazil2026-06-21
Silvio P Iturbide1001Russia2026-06-18
Jennifer Q Rim1002Australia2026-06-11
Kaitlin W Stenseth1003Australia2026-06-25
Stacey F Iturbide1004Canada2026-06-08
Leon Y Gaucho1005India2026-06-29
Julie J Gaucho1006Germany2026-07-03
Jones L Poquette1007France2026-06-17
Ashley S Poquette1008Australia2026-07-04
Maisha J Dilliard1009Canada2026-06-09
Francesco U Doe1010Italy2026-07-07
Izzy T Campain1011Italy2026-06-18
Salvatore G Slusarski1012Argentina2026-07-05
Leon R Poquette1013Australia2026-06-11
Salvatore V Campain1014Spain2026-06-21
Clifford S Waycott1015Spain2026-06-23
Ashley R Malet1016Spain2026-06-23
Arvin U Garufi1017Brazil2026-06-18
David F Nicka1018Italy2026-07-05
Cody I Maclead1019Australia2026-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie J GarufiRussiaXuxue Feng PROPOSAL
Misaki N GarufiUnited KingdomBernardo Dominic UNQUALIFIED
Munro V BologniaJapanIvan Magalhaes QUALIFIED
Jefferson N VenereArgentinaAmy Elsner QUALIFIED
Ashley L GillianGermanyXuxue Feng NEGOTIATION
Jefferson C BriddickGermanyXuxue Feng RENEWAL
Wickens O TollnerGermanyIoni Bowcher QUALIFIED
Deepesh Y NestleItalyAmy Elsner NEGOTIATION
Morrow Z GauchoFranceAnna Fali PROPOSAL
Kaitlin Y KolmetzBrazilAsiya Javayant RENEWAL
Aruna U WieserArgentinaElwin Sharvill RENEWAL
Juan B FigeroaCanadaOnyama Limba NEW
Ashley Y WaycottUnited KingdomXuxue Feng NEW
Chavez X MarrierJapanIoni Bowcher NEGOTIATION
Jefferson B KuskoCanadaElwin Sharvill NEGOTIATION
Sinclair O RulapaughRussiaIvan Magalhaes UNQUALIFIED
Ricardo S VocelkaItalyStephen Shaw NEW
Jones U FollerJapanAnna Fali NEGOTIATION
Francesco F ButtArgentinaIvan Magalhaes NEW
Jones R SchemmerCanadaAsiya Javayant UNQUALIFIED
Ivar G SergiCanadaBernardo Dominic UNQUALIFIED
Wickens G PoquetteItalyAmy Elsner QUALIFIED
Stacey X CaldareraGermanyAmy Elsner PROPOSAL
Francesco E ButtIndiaBernardo Dominic RENEWAL
Wickens E BowleyItalyAmy Elsner UNQUALIFIED
James A KuskoArgentinaElwin Sharvill UNQUALIFIED
Claire U FollerGermanyOnyama Limba NEW
Antonio K StockhamIndiaXuxue Feng NEGOTIATION
Maisha D SlusarskiRussiaAsiya Javayant PROPOSAL
Silvio E NestleItalyStephen Shaw NEGOTIATION
Arvin X SlusarskiUnited KingdomAsiya Javayant NEGOTIATION
James N FlosiJapanOnyama Limba NEW
Wickens X WhobreyArgentinaIvan Magalhaes PROPOSAL
Morrow J GauchoCanadaElwin Sharvill PROPOSAL
Antonio V SaylorsGermanyIoni Bowcher RENEWAL
Leja B BologniaJapanBernardo Dominic UNQUALIFIED
Alejandro U SchemmerBrazilAsiya Javayant UNQUALIFIED
Leon K GauchoJapanAsiya Javayant NEGOTIATION
Claire N NestleJapanAnna Fali NEW
Kaitlin P FlosiCanadaXuxue Feng 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>