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
Costa J MorascaItalyAmy Elsner NEGOTIATION
Darci S KolmetzCanadaXuxue Feng NEW
Mayumi V MacleadCanadaIoni Bowcher UNQUALIFIED
Chavez M FigeroaRussiaXuxue Feng NEGOTIATION
Juan I RimGermanyAsiya Javayant UNQUALIFIED
Francesco J MorascaItalyAsiya Javayant PROPOSAL
Kadeem J MaletIndiaAnna Fali QUALIFIED
Leon Z RutaFranceOnyama Limba PROPOSAL
Octavia Z SlusarskiSpainXuxue Feng RENEWAL
Misaki O OldroydUnited KingdomElwin Sharvill RENEWAL
Aika D FerenczBrazilAmy Elsner QUALIFIED
Deepesh F FigeroaFranceElwin Sharvill NEGOTIATION
Jones A BriddickAustraliaElwin Sharvill QUALIFIED
Ricardo D MorascaIndiaElwin Sharvill NEGOTIATION
Jefferson V GillianGermanyIvan Magalhaes UNQUALIFIED
James L AlbaresSpainAmy Elsner PROPOSAL
Ricardo B ChuiBrazilBernardo Dominic NEW
Johnson O MaletAustraliaAnna Fali NEW
Antonio Z FigeroaSpainElwin Sharvill RENEWAL
Julie D GillianAustraliaIoni Bowcher UNQUALIFIED
Rodrigues H VenereJapanBernardo Dominic PROPOSAL
Smith E WhobreyCanadaElwin Sharvill PROPOSAL
Aditya N InouyeItalyIvan Magalhaes RENEWAL
Faith B GauchoCanadaAmy Elsner QUALIFIED
Leja R WaycottBrazilAnna Fali RENEWAL
Kaitlin U CampainGermanyIoni Bowcher UNQUALIFIED
Arvin O RoysterItalyAnna Fali NEW
Munro T OldroydArgentinaAnna Fali NEW
Misaki C IturbideSpainAsiya Javayant QUALIFIED
Ivar M MaletJapanXuxue Feng PROPOSAL
Tony G DilliardAustraliaIoni Bowcher UNQUALIFIED
Morrow N MarrierCanadaStephen Shaw NEGOTIATION
Juan Z SaylorsRussiaIvan Magalhaes RENEWAL
Tony S SaylorsGermanyAsiya Javayant UNQUALIFIED
Aruna N DilliardIndiaIoni Bowcher PROPOSAL
Darci W AmigonItalyAsiya Javayant PROPOSAL
David R StensethGermanyStephen Shaw PROPOSAL
Jones K BriddickItalyAmy Elsner NEGOTIATION
Adams L RoysterCanadaElwin Sharvill RENEWAL
Kaitlin R MacleadJapanIoni Bowcher QUALIFIED
Murillo Q MarrierRussiaAmy Elsner RENEWAL
Leon S CaudyRussiaStephen Shaw UNQUALIFIED
Izzy D StensethUnited KingdomAmy Elsner RENEWAL
Antonio S DoeSpainIoni Bowcher NEGOTIATION
Sinclair L SergiJapanAnna Fali QUALIFIED
James E ShinkoAustraliaIoni Bowcher NEW
Salvatore W RimGermanyXuxue Feng NEGOTIATION
Kaitlin G OstroskyUnited KingdomElwin Sharvill QUALIFIED
Mujtaba J ButtUnited KingdomIvan Magalhaes PROPOSAL
Mujtaba F GarufiSpainStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem S KuskoArgentinaAnna Fali UNQUALIFIED
Octavia I StensethFranceElwin Sharvill NEGOTIATION
Maisha W TollnerFranceIvan Magalhaes RENEWAL
Greenwood Q FerenczCanadaIvan Magalhaes NEW
Aruna R PerinJapanXuxue Feng PROPOSAL
Rodrigues O GauchoSpainIvan Magalhaes PROPOSAL
Stacey Z SlusarskiIndiaOnyama Limba NEW
Alejandro T DilliardJapanBernardo Dominic QUALIFIED
Johnson R RulapaughCanadaBernardo Dominic QUALIFIED
Adams F PoquetteSpainElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony P CaudyBrazil2026-08-05Buckley Miller Wright NEGOTIATION92Elwin Sharvill
1001Kadeem M BologniaUnited Kingdom2026-08-15Chemel, James L Cpa PROPOSAL14Xuxue Feng
1002Smith N NestleItaly2026-08-03Commercial Press NEW7Ivan Magalhaes
1003Jefferson D RulapaughItaly2026-08-11Rousseaux, Michael Esq NEGOTIATION25Stephen Shaw
1004Emily Q RutaArgentina2026-08-24Buckley Miller Wright NEW29Bernardo Dominic
1005Nicolas Z DarakjyIndia2026-08-12Chapman, Ross E Esq PROPOSAL1Onyama Limba
1006Kaitlin S CaldareraJapan2026-08-10Chemel, James L Cpa QUALIFIED38Amy Elsner
1007Salvatore N GarufiSpain2026-08-11Commercial Press UNQUALIFIED91Ioni Bowcher
1008Juan P VenereRussia2026-08-02Rousseaux, Michael Esq NEGOTIATION19Ioni Bowcher
1009Morrow A ChuiRussia2026-08-02Truhlar And Truhlar Attys NEGOTIATION45Ivan Magalhaes
1010Chavez L CaldareraUnited Kingdom2026-08-16Chemel, James L Cpa NEW18Asiya Javayant
1011Salvatore B BriddickSpain2026-08-02Feiner Bros QUALIFIED74Stephen Shaw
1012Emily Q PoquetteFrance2026-08-07Rousseaux, Michael Esq NEGOTIATION6Onyama Limba
1013Alejandro M MaletUnited Kingdom2026-08-05King, Christopher A Esq PROPOSAL19Elwin Sharvill
1014Stacey G FigeroaGermany2026-08-26Commercial Press PROPOSAL77Asiya Javayant
1015Antonio M TollnerItaly2026-08-13Printing Dimensions NEGOTIATION48Elwin Sharvill
1016Ivar Z GarufiCanada2026-08-23Dorl, James J Esq NEW15Amy Elsner
1017Emily I SlusarskiIndia2026-08-01Feiner Bros UNQUALIFIED35Elwin Sharvill
1018Rodrigues P DarakjyCanada2026-08-15King, Christopher A Esq PROPOSAL17Elwin Sharvill
1019Izzy Y SaylorsAustralia2026-08-04Rangoni Of Florence RENEWAL24Stephen Shaw
1020Clifford K ChuiIndia2026-08-25Buckley Miller Wright NEGOTIATION11Elwin Sharvill
1021Jefferson O InouyeJapan2026-08-09Benton, John B Jr QUALIFIED76Xuxue Feng
1022Alejandro R NickaRussia2026-07-29Commercial Press RENEWAL38Bernardo Dominic
1023Leja W SaylorsArgentina2026-08-20Rousseaux, Michael Esq RENEWAL28Anna Fali
1024Maisha D SchemmerCanada2026-08-13Feiner Bros QUALIFIED83Asiya Javayant
1025Ivar Y FigeroaGermany2026-08-01Benton, John B Jr UNQUALIFIED70Ivan Magalhaes
1026Adams B WhobreyIndia2026-07-31Morlong Associates UNQUALIFIED32Anna Fali
1027Maisha V CaudyIndia2026-08-01Dorl, James J Esq NEGOTIATION53Amy Elsner
1028Misaki N InouyeFrance2026-08-18King, Christopher A Esq QUALIFIED66Stephen Shaw
1029Aika U StensethUnited Kingdom2026-08-20Printing Dimensions RENEWAL38Onyama Limba
1030Morrow M FerenczUnited Kingdom2026-08-18Chanay, Jeffrey A Esq PROPOSAL31Ivan Magalhaes
1031Sinclair M PerinFrance2026-08-16Feiner Bros NEGOTIATION98Elwin Sharvill
1032Misaki J GlickUnited Kingdom2026-08-24Commercial Press RENEWAL58Stephen Shaw
1033Emily E BriddickAustralia2026-07-29Commercial Press PROPOSAL41Ioni Bowcher
1034Aika X VenereJapan2026-08-13King, Christopher A Esq NEGOTIATION46Onyama Limba
1035Alejandro O ChuiRussia2026-08-18Feltz Printing Service PROPOSAL26Onyama Limba
1036Jeanfrancois P PerinGermany2026-08-26Morlong Associates PROPOSAL0Anna Fali
1037Munro G AmigonJapan2026-07-30Chemel, James L Cpa NEGOTIATION76Asiya Javayant
1038Greenwood M AlbaresArgentina2026-08-21Commercial Press PROPOSAL67Stephen Shaw
1039Antonio M SergiCanada2026-08-21Rousseaux, Michael Esq RENEWAL88Bernardo Dominic
1040Jennifer S WaycottRussia2026-08-14King, Christopher A Esq UNQUALIFIED74Asiya Javayant
1041Juan S RimCanada2026-08-16Buckley Miller Wright QUALIFIED81Asiya Javayant
1042Emily E WieserGermany2026-07-31Chapman, Ross E Esq NEGOTIATION14Bernardo Dominic
1043Nicolas J IturbideFrance2026-08-11Rousseaux, Michael Esq QUALIFIED65Bernardo Dominic
1044Arvin Z MaletSpain2026-08-16Truhlar And Truhlar Attys RENEWAL56Asiya Javayant
1045Leon V IturbideArgentina2026-08-26Rousseaux, Michael Esq QUALIFIED24Anna Fali
1046Alejandro W MaletBrazil2026-08-07Commercial Press PROPOSAL40Ivan Magalhaes
1047Mayumi J GarufiArgentina2026-08-11Chanay, Jeffrey A Esq UNQUALIFIED24Asiya Javayant
1048Juan T BowleyBrazil2026-08-12Buckley Miller Wright RENEWAL75Amy Elsner
1049Francesco B BowleyRussia2026-08-02Printing Dimensions NEW95Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Morrow K RoysterIndiaXuxue Feng NEW
Tony F RimGermanyElwin Sharvill NEW
Tony L MacleadItalyElwin Sharvill UNQUALIFIED
Mujtaba J ButtGermanyAnna Fali PROPOSAL
Maria C FigeroaItalyIoni Bowcher NEGOTIATION
Stacey X FlosiAustraliaIvan Magalhaes NEGOTIATION
Sinclair S FerenczCanadaBernardo Dominic UNQUALIFIED
Cody Q FigeroaGermanyElwin Sharvill RENEWAL
Antonio B FerenczJapanAmy Elsner UNQUALIFIED
Nicolas I SchemmerUnited KingdomAsiya Javayant QUALIFIED
Juan M TollnerItalyElwin Sharvill UNQUALIFIED
Murillo L GarufiUnited KingdomOnyama Limba QUALIFIED
Deepesh E RulapaughGermanyXuxue Feng UNQUALIFIED
Kadeem A MaletIndiaAnna Fali NEGOTIATION
Greenwood M OstroskyAustraliaAnna Fali NEW
Aruna A DoeIndiaAmy Elsner QUALIFIED
Tony L ButtSpainXuxue Feng PROPOSAL
Juan V NickaSpainStephen Shaw NEW
Darci J WaycottItalyAsiya Javayant NEGOTIATION
Kadeem C FollerAustraliaOnyama Limba UNQUALIFIED
Octavia S VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow H NickaArgentinaIvan Magalhaes QUALIFIED
Ashley A FlosiGermanyBernardo Dominic QUALIFIED
Greenwood O AlbaresBrazilAmy Elsner PROPOSAL
Sinclair N VocelkaGermanyIoni Bowcher PROPOSAL
Aika L NickaFranceBernardo Dominic UNQUALIFIED
Aika N IturbideUnited KingdomAsiya Javayant QUALIFIED
Stacey N MorascaGermanyXuxue Feng NEGOTIATION
Julie W PoquetteGermanyIoni Bowcher QUALIFIED
Jeanfrancois M KuskoArgentinaElwin Sharvill QUALIFIED
Jefferson X CaldareraGermanyStephen Shaw QUALIFIED
Antonio X SchemmerGermanyAmy Elsner UNQUALIFIED
Julie A IturbideArgentinaXuxue Feng NEW
Leon M PaprockiRussiaBernardo Dominic NEGOTIATION
Kaitlin V ShinkoGermanyIoni Bowcher NEGOTIATION
Salvatore W TollnerAustraliaElwin Sharvill PROPOSAL
James G MaletBrazilAsiya Javayant PROPOSAL
Emily V KuskoCanadaIvan Magalhaes UNQUALIFIED
Sinclair W DilliardIndiaBernardo Dominic PROPOSAL
Octavia S BologniaIndiaIvan Magalhaes PROPOSAL
Ashley N GarufiFranceIoni Bowcher UNQUALIFIED
Deepesh P CaudyBrazilAnna Fali NEGOTIATION
Johnson D TollnerBrazilAnna Fali RENEWAL
Alejandro Y PoquetteAustraliaBernardo Dominic NEGOTIATION
Octavia G GauchoRussiaAmy Elsner PROPOSAL
Mujtaba N PoquetteRussiaElwin Sharvill PROPOSAL
Munro Z VenereAustraliaIoni Bowcher NEGOTIATION
Julie Z SergiUnited KingdomAsiya Javayant PROPOSAL
Faith F SergiFranceStephen Shaw NEW
Ricardo Z ChuiIndiaBernardo Dominic QUALIFIED
Frozen Columns
Name
Adams Q Kusko
Alejandro D Stenseth
Sinclair E Marrier
Faith N Marrier
Maria U Morasca
Maisha V Poquette
Claire K Chui
Salvatore Y Malet
Juan R Wieser
Mujtaba O Bowley
Darci T Marrier
Murillo O Briddick
Jennifer Q Sergi
Johnson H Malet
Cody Q Wieser
Alejandro D Venere
Silvio H Rim
Johnson D Kusko
Ivar P Flosi
Isabel S Morasca
Aditya B Nicka
Misaki D Nicka
Aruna E Morasca
Izzy P Amigon
Claire A Morasca
Aika O Bolognia
David N Waycott
Faith W Vocelka
Wickens R Malet
Mayumi J Poquette
Adams V Flosi
Salvatore U Vocelka
Greenwood W Ferencz
Ashley C Waycott
Greenwood O Flosi
Rodrigues T Slusarski
Alejandro H Paprocki
Mayumi X Amigon
Julie X Albares
Arvin S Stockham
James E Gillian
Jefferson Q Albares
David S Vocelka
Aika D Venere
Mujtaba C Figeroa
Clifford O Rim
Morrow W Gaucho
Silvio K Perin
Wickens W Marrier
Stacey A Nestle
IdCountryDate
1000Italy2026-07-31
1001Germany2026-07-30
1002United Kingdom2026-08-12
1003Italy2026-08-12
1004Canada2026-08-10
1005Canada2026-08-02
1006India2026-08-16
1007Canada2026-08-11
1008United Kingdom2026-08-13
1009Japan2026-08-07
1010United Kingdom2026-08-12
1011United Kingdom2026-08-17
1012France2026-08-03
1013Australia2026-08-11
1014Japan2026-08-07
1015India2026-08-19
1016France2026-08-07
1017Italy2026-08-21
1018Spain2026-08-09
1019Australia2026-08-15
1020Russia2026-08-13
1021Canada2026-08-23
1022Argentina2026-08-16
1023Australia2026-08-22
1024United Kingdom2026-08-13
1025India2026-08-24
1026Japan2026-08-18
1027Spain2026-08-08
1028Italy2026-08-11
1029Australia2026-08-16
1030Japan2026-08-26
1031India2026-08-11
1032India2026-08-11
1033Japan2026-08-07
1034France2026-07-29
1035Germany2026-08-21
1036Russia2026-08-02
1037Italy2026-08-20
1038Brazil2026-08-04
1039Italy2026-08-01
1040Australia2026-08-07
1041Brazil2026-08-10
1042Argentina2026-08-21
1043India2026-07-29
1044Germany2026-08-05
1045Spain2026-08-20
1046Argentina2026-08-20
1047Argentina2026-08-20
1048Japan2026-08-20
1049Japan2026-08-11

On-Demand Data

NameIdCountryDate
Maria O Bowley1000Australia2026-08-15
Smith I Campain1001France2026-08-01
Mayumi H Waycott1002India2026-08-24
Julie J Maclead1003India2026-08-26
Ricardo B Venere1004Argentina2026-08-09
Murillo O Chui1005United Kingdom2026-08-10
Jones B Campain1006India2026-07-31
Emily L Doe1007Germany2026-08-04
Francesco Q Tollner1008Spain2026-08-26
Chavez F Kusko1009Germany2026-08-05
Nicolas W Malet1010Argentina2026-08-13
Cody I Chui1011United Kingdom2026-08-02
Costa H Slusarski1012Italy2026-08-05
Tony I Campain1013India2026-08-06
David M Flosi1014United Kingdom2026-07-31
Julie P Kolmetz1015Italy2026-07-30
Smith M Glick1016Spain2026-07-30
Nicolas T Stockham1017India2026-07-30
Wickens R Shinko1018Argentina2026-08-01
Aditya J Tollner1019India2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues D NestleRussiaAnna Fali RENEWAL
Kadeem F InouyeItalyIvan Magalhaes NEGOTIATION
Faith L MorascaAustraliaIoni Bowcher UNQUALIFIED
Mayumi R BriddickArgentinaIoni Bowcher NEGOTIATION
David G TollnerSpainBernardo Dominic UNQUALIFIED
Arvin C FollerUnited KingdomIoni Bowcher RENEWAL
Leja M KolmetzRussiaOnyama Limba NEGOTIATION
Maisha C SergiAustraliaIoni Bowcher NEW
Clifford A FerenczJapanXuxue Feng UNQUALIFIED
Darci N PerinJapanStephen Shaw NEGOTIATION
Darci P CaudyArgentinaElwin Sharvill RENEWAL
Aditya B SaylorsAustraliaIoni Bowcher RENEWAL
Aruna N DilliardSpainStephen Shaw UNQUALIFIED
Juan Z CaldareraSpainBernardo Dominic UNQUALIFIED
Rodrigues M AmigonFranceElwin Sharvill NEW
Aruna D RutaGermanyXuxue Feng PROPOSAL
Maria J SaylorsFranceAsiya Javayant PROPOSAL
Mujtaba E GarufiBrazilOnyama Limba UNQUALIFIED
Costa A NestleFranceAsiya Javayant QUALIFIED
James G RulapaughIndiaAsiya Javayant QUALIFIED
Jeanfrancois G WieserBrazilBernardo Dominic RENEWAL
Mujtaba Z DoeUnited KingdomBernardo Dominic NEW
Jefferson O GauchoAustraliaOnyama Limba RENEWAL
Jefferson P ShinkoSpainElwin Sharvill RENEWAL
Greenwood C FlosiFranceElwin Sharvill NEGOTIATION
Adams F PoquetteJapanIvan Magalhaes UNQUALIFIED
Smith N MaletCanadaBernardo Dominic QUALIFIED
Sinclair M RutaGermanyElwin Sharvill NEW
Deepesh I SaylorsCanadaAnna Fali QUALIFIED
Morrow E SlusarskiItalyAsiya Javayant NEW
Maisha Q RutaGermanyIoni Bowcher RENEWAL
Murillo C MaletGermanyBernardo Dominic NEW
James D CampainBrazilAnna Fali NEGOTIATION
Alejandro X RutaJapanIvan Magalhaes UNQUALIFIED
Arvin O RulapaughCanadaAmy Elsner QUALIFIED
Misaki C SchemmerGermanyAmy Elsner NEW
Mujtaba F NestleFranceAmy Elsner NEGOTIATION
Leja H StensethJapanElwin Sharvill NEGOTIATION
Morrow I FlosiJapanXuxue Feng NEW
Antonio Y MorascaUnited KingdomAsiya Javayant 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>