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
Kadeem N VocelkaRussiaAsiya Javayant UNQUALIFIED
Salvatore K CaudyFranceXuxue Feng NEGOTIATION
Kadeem R DarakjyBrazilAmy Elsner PROPOSAL
Claire Z PerinCanadaIoni Bowcher NEW
Adams X OldroydIndiaAmy Elsner PROPOSAL
Tony Z MorascaFranceAmy Elsner NEGOTIATION
Jeanfrancois H RutaIndiaStephen Shaw PROPOSAL
Misaki T AmigonItalyIvan Magalhaes UNQUALIFIED
Aditya A MarrierRussiaBernardo Dominic NEW
Rodrigues U GauchoFranceElwin Sharvill QUALIFIED
Tony S BriddickJapanBernardo Dominic RENEWAL
Nicolas N MaletAustraliaIvan Magalhaes RENEWAL
Jeanfrancois Q ButtRussiaBernardo Dominic PROPOSAL
Kaitlin C RoysterAustraliaAmy Elsner UNQUALIFIED
Juan A KuskoItalyElwin Sharvill NEGOTIATION
Nicolas W MaletAustraliaAsiya Javayant UNQUALIFIED
Sinclair K FigeroaGermanyAsiya Javayant NEW
Jones H SaylorsCanadaBernardo Dominic UNQUALIFIED
Cody J WieserItalyIoni Bowcher NEGOTIATION
Silvio Z SchemmerRussiaIvan Magalhaes NEGOTIATION
Salvatore W GauchoJapanIoni Bowcher NEW
Mayumi J SergiRussiaBernardo Dominic RENEWAL
Ashley N OldroydItalyAsiya Javayant QUALIFIED
Nicolas S FollerItalyIvan Magalhaes NEW
Salvatore O MacleadRussiaStephen Shaw PROPOSAL
Salvatore B IturbideUnited KingdomBernardo Dominic UNQUALIFIED
Jones F KolmetzBrazilOnyama Limba NEGOTIATION
Greenwood Y SchemmerArgentinaOnyama Limba NEGOTIATION
Morrow C GillianUnited KingdomOnyama Limba NEW
Smith T AmigonArgentinaOnyama Limba QUALIFIED
Maisha Y OldroydUnited KingdomElwin Sharvill PROPOSAL
Chavez E ChuiItalyIoni Bowcher QUALIFIED
David A FigeroaAustraliaStephen Shaw RENEWAL
Maisha L MacleadItalyElwin Sharvill QUALIFIED
Antonio X FollerGermanyIvan Magalhaes QUALIFIED
Jennifer H StockhamBrazilXuxue Feng NEW
Maisha E TollnerBrazilAnna Fali QUALIFIED
Greenwood V CampainCanadaAsiya Javayant NEGOTIATION
Nicolas L DoeUnited KingdomOnyama Limba NEW
Aruna C DilliardJapanAnna Fali QUALIFIED
Ricardo G StockhamUnited KingdomBernardo Dominic QUALIFIED
Rodrigues C TollnerAustraliaAmy Elsner RENEWAL
Isabel H OstroskySpainElwin Sharvill RENEWAL
Chavez E MarrierRussiaXuxue Feng QUALIFIED
Ricardo R MacleadUnited KingdomAnna Fali NEGOTIATION
Smith R MaletIndiaAsiya Javayant UNQUALIFIED
Maria L KolmetzGermanyIoni Bowcher PROPOSAL
Darci S RoysterRussiaStephen Shaw QUALIFIED
Aruna D WieserBrazilElwin Sharvill RENEWAL
Kadeem R CaldareraGermanyAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi I SaylorsGermanyElwin Sharvill RENEWAL
Salvatore S RutaArgentinaStephen Shaw UNQUALIFIED
Emily X MorascaItalyXuxue Feng NEGOTIATION
Isabel E MaletSpainAnna Fali RENEWAL
Aditya A PoquetteIndiaBernardo Dominic UNQUALIFIED
Wickens W NickaUnited KingdomAmy Elsner NEW
Izzy F BowleyAustraliaOnyama Limba QUALIFIED
James Q MaletArgentinaAsiya Javayant PROPOSAL
Kaitlin Z InouyeAustraliaIvan Magalhaes RENEWAL
Antonio K BologniaCanadaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois S SlusarskiCanada2026-08-13Buckley Miller Wright UNQUALIFIED36Anna Fali
1001Maria E BowleyItaly2026-08-17Printing Dimensions RENEWAL40Onyama Limba
1002Munro G MacleadUnited Kingdom2026-08-24Feiner Bros NEW72Ivan Magalhaes
1003Maria M DilliardIndia2026-08-29Benton, John B Jr RENEWAL41Ivan Magalhaes
1004Octavia Z PoquetteSpain2026-08-08Chemel, James L Cpa PROPOSAL24Asiya Javayant
1005Claire X KolmetzRussia2026-08-19Feiner Bros NEW84Xuxue Feng
1006Maisha W MaletIndia2026-08-25Commercial Press PROPOSAL5Xuxue Feng
1007Deepesh E RulapaughIndia2026-08-18Printing Dimensions NEGOTIATION24Xuxue Feng
1008Murillo E NestleItaly2026-08-01Benton, John B Jr PROPOSAL16Onyama Limba
1009Juan Y SlusarskiArgentina2026-08-03Buckley Miller Wright NEW2Ioni Bowcher
1010Wickens B GillianAustralia2026-08-15Dorl, James J Esq NEGOTIATION46Ioni Bowcher
1011Cody I OldroydBrazil2026-08-27Chapman, Ross E Esq UNQUALIFIED89Stephen Shaw
1012Rodrigues Z OstroskyGermany2026-07-31Dorl, James J Esq RENEWAL10Elwin Sharvill
1013Leon T DilliardJapan2026-08-27King, Christopher A Esq NEW66Ivan Magalhaes
1014Smith W FigeroaGermany2026-08-23Rangoni Of Florence PROPOSAL29Stephen Shaw
1015Deepesh N CaudyCanada2026-08-14Dorl, James J Esq NEGOTIATION3Elwin Sharvill
1016Chavez D StensethUnited Kingdom2026-08-03Buckley Miller Wright RENEWAL85Asiya Javayant
1017Misaki R BologniaArgentina2026-08-12Feltz Printing Service UNQUALIFIED7Amy Elsner
1018Maisha E FlosiBrazil2026-08-21Chanay, Jeffrey A Esq RENEWAL90Amy Elsner
1019Jennifer F AlbaresSpain2026-08-07Feiner Bros RENEWAL58Ivan Magalhaes
1020Faith C WieserCanada2026-08-01Truhlar And Truhlar Attys NEW59Stephen Shaw
1021Faith J AlbaresFrance2026-08-12Dorl, James J Esq RENEWAL92Elwin Sharvill
1022Stacey D RulapaughUnited Kingdom2026-08-03Rousseaux, Michael Esq QUALIFIED41Amy Elsner
1023Kaitlin D StockhamBrazil2026-08-08Chapman, Ross E Esq UNQUALIFIED45Ivan Magalhaes
1024Clifford Y FerenczGermany2026-08-11Rangoni Of Florence NEW94Onyama Limba
1025Smith V SaylorsSpain2026-08-05King, Christopher A Esq NEW9Ioni Bowcher
1026Antonio H BowleyArgentina2026-08-18Rangoni Of Florence QUALIFIED57Stephen Shaw
1027Greenwood J InouyeUnited Kingdom2026-08-10Commercial Press NEGOTIATION55Ioni Bowcher
1028Alejandro O SaylorsItaly2026-08-01Rousseaux, Michael Esq RENEWAL68Xuxue Feng
1029Sinclair R MaletItaly2026-08-21Chanay, Jeffrey A Esq QUALIFIED26Bernardo Dominic
1030Kaitlin V ChuiArgentina2026-08-03Feltz Printing Service RENEWAL51Asiya Javayant
1031Claire P BriddickUnited Kingdom2026-08-08King, Christopher A Esq UNQUALIFIED61Xuxue Feng
1032Adams V NickaSpain2026-08-29Dorl, James J Esq QUALIFIED44Stephen Shaw
1033Murillo O MacleadJapan2026-08-13Feltz Printing Service QUALIFIED25Stephen Shaw
1034James W BologniaUnited Kingdom2026-08-04Chapman, Ross E Esq PROPOSAL7Bernardo Dominic
1035Izzy J ChuiIndia2026-08-02Rangoni Of Florence NEGOTIATION96Ioni Bowcher
1036Stacey M MaletGermany2026-07-31Chanay, Jeffrey A Esq QUALIFIED99Bernardo Dominic
1037Kadeem U WaycottArgentina2026-08-20Truhlar And Truhlar Attys NEW83Xuxue Feng
1038Ricardo V NickaGermany2026-08-19Printing Dimensions NEGOTIATION24Xuxue Feng
1039Aruna C BriddickBrazil2026-08-13Benton, John B Jr NEW54Bernardo Dominic
1040Arvin B InouyeFrance2026-08-08Commercial Press NEGOTIATION80Onyama Limba
1041Smith J GlickJapan2026-08-11Feiner Bros UNQUALIFIED10Amy Elsner
1042Salvatore O SergiSpain2026-07-31Chemel, James L Cpa NEGOTIATION93Onyama Limba
1043Emily F WhobreyUnited Kingdom2026-08-17Morlong Associates UNQUALIFIED17Xuxue Feng
1044Leon U RutaItaly2026-08-01Dorl, James J Esq PROPOSAL4Asiya Javayant
1045Johnson B StensethItaly2026-08-25Feltz Printing Service QUALIFIED41Xuxue Feng
1046Stacey Z StensethRussia2026-08-17Morlong Associates PROPOSAL92Onyama Limba
1047Chavez W NestleCanada2026-07-31Morlong Associates QUALIFIED68Anna Fali
1048Munro A DarakjyArgentina2026-08-22Chapman, Ross E Esq PROPOSAL47Ivan Magalhaes
1049Leon L GarufiIndia2026-08-11Feiner Bros NEW66Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jefferson H MarrierIndiaBernardo Dominic PROPOSAL
Aditya A MaletIndiaElwin Sharvill QUALIFIED
Leja R GauchoRussiaAmy Elsner NEW
Morrow W MacleadItalyBernardo Dominic NEW
Jennifer Q OldroydItalyAsiya Javayant PROPOSAL
Silvio J CaldareraGermanyIoni Bowcher QUALIFIED
Kaitlin W PoquetteCanadaAsiya Javayant RENEWAL
Smith C TollnerAustraliaIvan Magalhaes UNQUALIFIED
Morrow R FerenczUnited KingdomStephen Shaw NEGOTIATION
Clifford L GarufiArgentinaIoni Bowcher QUALIFIED
Aruna H MarrierGermanyElwin Sharvill NEW
Isabel Y NickaIndiaIoni Bowcher NEW
Mujtaba P DarakjySpainIvan Magalhaes UNQUALIFIED
Clifford T IturbideCanadaOnyama Limba QUALIFIED
James V PerinBrazilBernardo Dominic PROPOSAL
Faith I VocelkaJapanXuxue Feng NEGOTIATION
Maisha U IturbideIndiaIoni Bowcher QUALIFIED
Julie D VocelkaRussiaXuxue Feng PROPOSAL
Salvatore I KuskoRussiaAnna Fali NEGOTIATION
Mayumi X RimIndiaIvan Magalhaes PROPOSAL
Aika K WaycottAustraliaAsiya Javayant QUALIFIED
Misaki U GauchoArgentinaOnyama Limba QUALIFIED
Wickens Y GillianIndiaAmy Elsner QUALIFIED
Jeanfrancois L AlbaresJapanStephen Shaw NEGOTIATION
Izzy M MaletFranceIoni Bowcher QUALIFIED
Deepesh R WhobreySpainAsiya Javayant RENEWAL
Clifford R MorascaFranceIoni Bowcher NEW
Johnson W AlbaresRussiaAmy Elsner UNQUALIFIED
Aruna V ChuiRussiaAnna Fali UNQUALIFIED
Silvio J RulapaughItalyXuxue Feng PROPOSAL
Smith N PerinUnited KingdomAmy Elsner PROPOSAL
Silvio T DarakjyGermanyAmy Elsner UNQUALIFIED
Nicolas N FerenczSpainIoni Bowcher RENEWAL
Nicolas B GillianFranceStephen Shaw UNQUALIFIED
Tony H KuskoCanadaIvan Magalhaes RENEWAL
Juan A RimFranceXuxue Feng RENEWAL
Octavia J ChuiFranceXuxue Feng QUALIFIED
Darci S ShinkoJapanIvan Magalhaes NEW
Silvio J BologniaCanadaBernardo Dominic QUALIFIED
Emily M MaletArgentinaIvan Magalhaes UNQUALIFIED
Tony C TollnerItalyStephen Shaw UNQUALIFIED
Silvio G GarufiCanadaAsiya Javayant QUALIFIED
Clifford H SlusarskiCanadaOnyama Limba RENEWAL
Wickens Z VenereFranceAsiya Javayant RENEWAL
Leja S InouyeIndiaBernardo Dominic RENEWAL
Costa J KuskoSpainXuxue Feng UNQUALIFIED
Clifford P WaycottItalyBernardo Dominic RENEWAL
Jefferson U FlosiSpainBernardo Dominic UNQUALIFIED
Arvin I RutaJapanIvan Magalhaes QUALIFIED
Kaitlin E GarufiBrazilBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Maria Q Bowley
Darci U Butt
Maisha Q Iturbide
Maria I Darakjy
Maisha C Tollner
Salvatore U Figeroa
David Z Ferencz
Ashley B Foller
Chavez I Venere
Ivar B Campain
Jennifer A Venere
Jeanfrancois C Kolmetz
Aruna U Kolmetz
Deepesh B Wieser
Clifford W Rim
Silvio E Waycott
Ashley N Bowley
Tony C Maclead
Costa E Figeroa
Maisha Q Nestle
Morrow O Gaucho
Cody J Venere
Sinclair N Nicka
Antonio M Kolmetz
Rodrigues K Whobrey
Mujtaba C Stenseth
Maria C Briddick
Stacey D Chui
Costa L Ruta
Alejandro M Malet
Mujtaba J Perin
Salvatore K Kolmetz
Munro T Oldroyd
Isabel E Ferencz
Francesco K Chui
Aika J Caudy
Nicolas S Ferencz
Jennifer P Amigon
Antonio E Figeroa
Juan B Foller
Francesco Z Saylors
David C Rim
Francesco F Whobrey
Maria E Gaucho
Tony F Caldarera
Morrow B Gaucho
Aditya L Caudy
Wickens U Chui
Leja X Vocelka
Maria D Chui
IdCountryDate
1000Russia2026-08-10
1001Germany2026-08-15
1002Italy2026-08-03
1003Russia2026-08-25
1004India2026-08-17
1005Japan2026-08-05
1006Italy2026-08-08
1007United Kingdom2026-08-17
1008Argentina2026-08-26
1009Brazil2026-08-15
1010Brazil2026-08-12
1011India2026-08-08
1012Brazil2026-08-23
1013Germany2026-08-10
1014Japan2026-08-04
1015Italy2026-08-08
1016France2026-08-18
1017India2026-08-22
1018Brazil2026-08-04
1019Japan2026-08-16
1020Italy2026-08-28
1021Spain2026-08-26
1022India2026-08-03
1023Germany2026-08-23
1024Italy2026-08-23
1025Japan2026-08-10
1026Australia2026-08-28
1027Spain2026-08-15
1028Argentina2026-08-24
1029Canada2026-08-29
1030India2026-08-10
1031Spain2026-08-04
1032Spain2026-07-31
1033Russia2026-08-21
1034India2026-08-25
1035Argentina2026-08-17
1036Argentina2026-08-25
1037Spain2026-08-29
1038Japan2026-08-11
1039Germany2026-08-18
1040India2026-08-25
1041Japan2026-08-15
1042Canada2026-08-28
1043Russia2026-08-07
1044Australia2026-08-06
1045United Kingdom2026-08-15
1046Canada2026-08-21
1047United Kingdom2026-08-02
1048India2026-08-08
1049France2026-08-05

On-Demand Data

NameIdCountryDate
Francesco J Inouye1000United Kingdom2026-08-29
Maria P Caudy1001Russia2026-08-07
Leja T Rulapaugh1002Canada2026-08-08
Salvatore U Poquette1003Spain2026-08-27
Jeanfrancois J Maclead1004Australia2026-08-10
Misaki R Malet1005Argentina2026-08-15
Costa R Ruta1006Australia2026-08-06
Ricardo T Stenseth1007Spain2026-08-16
Stacey T Flosi1008United Kingdom2026-08-06
Clifford N Saylors1009Argentina2026-08-10
Maria G Oldroyd1010India2026-08-27
Kaitlin S Rim1011India2026-08-02
Silvio O Waycott1012Canada2026-07-31
Faith C Garufi1013Canada2026-08-09
Ricardo R Venere1014United Kingdom2026-08-06
Salvatore M Schemmer1015Spain2026-08-12
Misaki D Inouye1016United Kingdom2026-08-24
Sinclair B Shinko1017Argentina2026-08-17
Jones W Wieser1018Japan2026-08-26
Kadeem D Briddick1019France2026-08-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo R IturbideFranceElwin Sharvill NEGOTIATION
Murillo N IturbideItalyAmy Elsner RENEWAL
Faith L AlbaresFranceStephen Shaw QUALIFIED
Isabel H SlusarskiGermanyAmy Elsner QUALIFIED
Silvio D NestleJapanBernardo Dominic PROPOSAL
Octavia N MaletIndiaAmy Elsner PROPOSAL
Cody X DoeGermanyIoni Bowcher PROPOSAL
Kaitlin Z NickaGermanyStephen Shaw RENEWAL
Antonio W NickaAustraliaAnna Fali NEW
Antonio Y KolmetzCanadaIvan Magalhaes PROPOSAL
Misaki N CaudyRussiaXuxue Feng NEGOTIATION
Tony Z SchemmerCanadaOnyama Limba NEW
Mayumi N AmigonIndiaAnna Fali QUALIFIED
Kadeem L CaudyIndiaBernardo Dominic QUALIFIED
David Z NickaIndiaElwin Sharvill PROPOSAL
Aruna O RutaRussiaAnna Fali RENEWAL
Rodrigues R MarrierFranceStephen Shaw NEGOTIATION
Antonio S ButtSpainStephen Shaw UNQUALIFIED
Adams E GlickAustraliaElwin Sharvill NEGOTIATION
Jones O MacleadSpainIoni Bowcher NEW
Julie E CaldareraFranceIoni Bowcher NEGOTIATION
Clifford I SaylorsGermanyElwin Sharvill RENEWAL
James G DarakjyIndiaAnna Fali QUALIFIED
Alejandro L VenereGermanyAmy Elsner RENEWAL
Adams J SaylorsUnited KingdomIvan Magalhaes RENEWAL
Antonio S GarufiFranceAsiya Javayant UNQUALIFIED
Kadeem N GauchoCanadaAmy Elsner QUALIFIED
Julie Y VocelkaJapanXuxue Feng NEGOTIATION
Antonio V MaletFranceIvan Magalhaes UNQUALIFIED
Maisha V ChuiRussiaAnna Fali QUALIFIED
Misaki X MarrierBrazilIvan Magalhaes NEGOTIATION
Aruna K CaudyAustraliaAmy Elsner RENEWAL
Leja U NickaArgentinaElwin Sharvill NEW
Wickens U MaletAustraliaAsiya Javayant NEGOTIATION
Mayumi E InouyeBrazilIvan Magalhaes QUALIFIED
Jeanfrancois N RimAustraliaAsiya Javayant NEW
David T FollerUnited KingdomIoni Bowcher PROPOSAL
Aditya L GarufiIndiaIoni Bowcher QUALIFIED
Aruna X ChuiJapanXuxue Feng PROPOSAL
Juan X KolmetzSpainIvan Magalhaes 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>