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
Faith O MacleadCanadaAnna Fali NEW
Johnson F VocelkaFranceElwin Sharvill PROPOSAL
Nicolas F SergiJapanBernardo Dominic UNQUALIFIED
Tony X RimRussiaBernardo Dominic NEW
Murillo E DoeUnited KingdomAnna Fali QUALIFIED
Johnson K CaudyIndiaIvan Magalhaes PROPOSAL
Jefferson T BowleyJapanAnna Fali PROPOSAL
Aditya H MorascaGermanyIvan Magalhaes QUALIFIED
Aika T CaudyBrazilElwin Sharvill QUALIFIED
Aruna N MarrierGermanyIoni Bowcher QUALIFIED
Adams H FollerJapanIvan Magalhaes PROPOSAL
Leon R AmigonFranceElwin Sharvill NEW
Jeanfrancois Z SlusarskiArgentinaIoni Bowcher QUALIFIED
Rodrigues E TollnerJapanAmy Elsner PROPOSAL
Juan T BologniaSpainIvan Magalhaes QUALIFIED
Maisha B InouyeUnited KingdomElwin Sharvill QUALIFIED
Aruna E IturbideCanadaIoni Bowcher UNQUALIFIED
Rodrigues G MaletArgentinaAnna Fali PROPOSAL
Salvatore M DilliardCanadaOnyama Limba UNQUALIFIED
Jeanfrancois N TollnerCanadaOnyama Limba NEGOTIATION
Murillo I GillianArgentinaAnna Fali PROPOSAL
Francesco A KolmetzAustraliaAmy Elsner RENEWAL
Adams K DoeItalyAmy Elsner NEGOTIATION
Ashley E PaprockiIndiaIoni Bowcher RENEWAL
Claire H RimUnited KingdomIoni Bowcher NEW
Wickens A GauchoFranceAmy Elsner QUALIFIED
Julie R RoysterGermanyBernardo Dominic PROPOSAL
Aditya D PerinItalyStephen Shaw UNQUALIFIED
Kaitlin O OstroskyAustraliaAmy Elsner NEW
Jefferson B BologniaAustraliaAnna Fali UNQUALIFIED
Claire H KolmetzFranceAmy Elsner NEW
Adams W RoysterRussiaIvan Magalhaes QUALIFIED
Adams H FerenczGermanyAmy Elsner NEW
Smith S FollerBrazilAsiya Javayant PROPOSAL
Jones A ButtBrazilIvan Magalhaes QUALIFIED
Arvin Z MacleadSpainAsiya Javayant NEW
Jefferson Q GlickFranceAnna Fali QUALIFIED
Julie V RoysterCanadaStephen Shaw QUALIFIED
Chavez E MacleadItalyOnyama Limba RENEWAL
Mayumi R CampainCanadaBernardo Dominic PROPOSAL
Julie W MorascaGermanyIvan Magalhaes NEGOTIATION
Maria D RoysterAustraliaIvan Magalhaes RENEWAL
Stacey G DarakjyFranceAmy Elsner NEGOTIATION
David C ButtBrazilAsiya Javayant UNQUALIFIED
Silvio K VenereUnited KingdomStephen Shaw RENEWAL
Rodrigues I RimBrazilStephen Shaw QUALIFIED
Wickens M RimGermanyIvan Magalhaes NEGOTIATION
Mujtaba P ButtUnited KingdomAmy Elsner UNQUALIFIED
Smith G BowleySpainAsiya Javayant NEW
Salvatore P KolmetzGermanyIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Adams I OldroydItalyElwin Sharvill QUALIFIED
Jones C NestleCanadaStephen Shaw QUALIFIED
Johnson C VenereSpainElwin Sharvill UNQUALIFIED
Costa E RutaSpainStephen Shaw NEGOTIATION
Misaki U FollerUnited KingdomIvan Magalhaes QUALIFIED
Cody O AmigonGermanyIoni Bowcher PROPOSAL
Kaitlin J MaletArgentinaXuxue Feng NEW
Alejandro C VocelkaJapanBernardo Dominic NEGOTIATION
James D RimJapanIoni Bowcher QUALIFIED
Murillo R CampainRussiaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin I TollnerCanada2026-06-16Rousseaux, Michael Esq RENEWAL82Stephen Shaw
1001Mujtaba X SchemmerCanada2026-06-29Rousseaux, Michael Esq NEGOTIATION4Asiya Javayant
1002Kadeem U AlbaresCanada2026-06-17King, Christopher A Esq RENEWAL71Xuxue Feng
1003Claire K BowleyAustralia2026-06-20Printing Dimensions UNQUALIFIED42Onyama Limba
1004Rodrigues G SaylorsSpain2026-07-09Printing Dimensions PROPOSAL17Ioni Bowcher
1005Sinclair E GarufiCanada2026-06-15Feltz Printing Service PROPOSAL80Ioni Bowcher
1006Deepesh I RutaRussia2026-06-30Commercial Press NEW79Ivan Magalhaes
1007Mayumi J MorascaItaly2026-06-21Commercial Press QUALIFIED98Ioni Bowcher
1008Nicolas H MarrierGermany2026-06-24Chanay, Jeffrey A Esq UNQUALIFIED44Ivan Magalhaes
1009Munro O MorascaArgentina2026-06-27Buckley Miller Wright QUALIFIED71Amy Elsner
1010Wickens L MarrierCanada2026-06-13King, Christopher A Esq PROPOSAL68Amy Elsner
1011Jefferson G AlbaresItaly2026-06-25Truhlar And Truhlar Attys QUALIFIED33Amy Elsner
1012Jones U BologniaAustralia2026-06-15Dorl, James J Esq NEGOTIATION38Onyama Limba
1013Smith N MaletIndia2026-07-12Truhlar And Truhlar Attys NEW24Bernardo Dominic
1014Salvatore J InouyeArgentina2026-06-13Benton, John B Jr QUALIFIED94Amy Elsner
1015Nicolas S PerinCanada2026-07-12Commercial Press NEW64Ivan Magalhaes
1016Sinclair W MaletBrazil2026-06-29Benton, John B Jr QUALIFIED13Xuxue Feng
1017Antonio A ButtCanada2026-07-01Commercial Press NEGOTIATION6Xuxue Feng
1018Adams J AmigonJapan2026-07-07Rangoni Of Florence RENEWAL94Asiya Javayant
1019Stacey E VenereFrance2026-06-20Feiner Bros NEGOTIATION72Ivan Magalhaes
1020Salvatore J SaylorsIndia2026-06-25Feltz Printing Service RENEWAL13Ivan Magalhaes
1021Arvin Z MaletIndia2026-06-14Printing Dimensions UNQUALIFIED17Xuxue Feng
1022Rodrigues H MorascaIndia2026-06-25King, Christopher A Esq QUALIFIED74Anna Fali
1023Kadeem Q RimIndia2026-06-20Buckley Miller Wright NEGOTIATION13Amy Elsner
1024Stacey O FigeroaItaly2026-06-21Feiner Bros NEW26Onyama Limba
1025Claire L VenereArgentina2026-07-11Commercial Press RENEWAL87Onyama Limba
1026Cody C GarufiBrazil2026-06-19King, Christopher A Esq UNQUALIFIED88Xuxue Feng
1027Leon X BriddickItaly2026-07-07Chemel, James L Cpa UNQUALIFIED87Bernardo Dominic
1028Mayumi Y MaletAustralia2026-07-11Feltz Printing Service QUALIFIED38Ivan Magalhaes
1029Emily Q WaycottItaly2026-06-19Rangoni Of Florence PROPOSAL34Bernardo Dominic
1030Maisha M FollerCanada2026-06-22Chapman, Ross E Esq PROPOSAL91Bernardo Dominic
1031Cody T MacleadItaly2026-07-06Benton, John B Jr UNQUALIFIED49Stephen Shaw
1032Mayumi Q FollerItaly2026-07-06Truhlar And Truhlar Attys NEW79Amy Elsner
1033Ricardo B MarrierUnited Kingdom2026-07-11Chapman, Ross E Esq PROPOSAL25Ioni Bowcher
1034Jennifer G FigeroaCanada2026-06-29Printing Dimensions NEGOTIATION78Elwin Sharvill
1035Juan X FigeroaSpain2026-07-09Morlong Associates PROPOSAL2Amy Elsner
1036Johnson Q FlosiUnited Kingdom2026-07-11Truhlar And Truhlar Attys PROPOSAL88Xuxue Feng
1037Greenwood Y MaletGermany2026-06-18Rousseaux, Michael Esq PROPOSAL71Anna Fali
1038David A NestleItaly2026-06-20Dorl, James J Esq QUALIFIED24Onyama Limba
1039Aruna S SlusarskiUnited Kingdom2026-06-28Benton, John B Jr UNQUALIFIED79Ivan Magalhaes
1040James C WhobreyIndia2026-06-26Morlong Associates RENEWAL47Asiya Javayant
1041Johnson A ChuiJapan2026-07-01Commercial Press NEGOTIATION72Amy Elsner
1042Mayumi C ChuiFrance2026-07-04King, Christopher A Esq NEGOTIATION95Onyama Limba
1043Smith I MaletFrance2026-06-24Benton, John B Jr NEGOTIATION69Ioni Bowcher
1044Ivar H PoquetteSpain2026-06-27Dorl, James J Esq RENEWAL90Ioni Bowcher
1045Nicolas Q SchemmerGermany2026-06-13Chapman, Ross E Esq NEW2Amy Elsner
1046Isabel R SaylorsJapan2026-07-03Rangoni Of Florence NEW5Ioni Bowcher
1047Rodrigues J MorascaIndia2026-06-18Chanay, Jeffrey A Esq QUALIFIED41Asiya Javayant
1048Francesco L KuskoArgentina2026-06-22Chanay, Jeffrey A Esq QUALIFIED13Bernardo Dominic
1049Rodrigues H RutaArgentina2026-06-21Morlong Associates RENEWAL23Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Aditya G IturbideFranceElwin Sharvill UNQUALIFIED
Cody S WaycottGermanyAsiya Javayant NEGOTIATION
Emily K WhobreyBrazilAsiya Javayant QUALIFIED
Misaki X DarakjyCanadaBernardo Dominic NEW
Costa D TollnerFranceOnyama Limba NEW
Mujtaba E SaylorsSpainAmy Elsner QUALIFIED
Leja A AmigonGermanyIoni Bowcher UNQUALIFIED
Octavia I KuskoGermanyAnna Fali QUALIFIED
James L AmigonRussiaBernardo Dominic NEGOTIATION
Francesco S FigeroaUnited KingdomOnyama Limba NEGOTIATION
Sinclair J ShinkoGermanyStephen Shaw PROPOSAL
James X MorascaJapanAmy Elsner NEGOTIATION
Julie B GauchoJapanAnna Fali NEGOTIATION
Antonio G RimGermanyXuxue Feng RENEWAL
Deepesh K OldroydItalyAmy Elsner UNQUALIFIED
Octavia E ChuiFranceOnyama Limba NEW
David M CampainBrazilOnyama Limba QUALIFIED
Munro G FerenczItalyAmy Elsner UNQUALIFIED
Maisha N GlickGermanyOnyama Limba NEW
Ricardo I FigeroaGermanyBernardo Dominic PROPOSAL
Juan Q CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Aditya R MacleadJapanAsiya Javayant NEW
Adams P CaudyArgentinaAsiya Javayant RENEWAL
Octavia G SchemmerSpainIvan Magalhaes UNQUALIFIED
Nicolas W CaldareraUnited KingdomElwin Sharvill UNQUALIFIED
Maria O KuskoFranceAsiya Javayant RENEWAL
Aika N ButtRussiaAsiya Javayant NEW
Alejandro K VocelkaCanadaIvan Magalhaes QUALIFIED
Francesco W AmigonJapanOnyama Limba QUALIFIED
Jennifer B GillianUnited KingdomOnyama Limba QUALIFIED
Mujtaba I BowleySpainOnyama Limba NEGOTIATION
Tony U DilliardGermanyAsiya Javayant RENEWAL
David E ShinkoGermanyOnyama Limba NEGOTIATION
Kadeem L BologniaJapanBernardo Dominic NEW
Deepesh F MaletItalyOnyama Limba UNQUALIFIED
Cody L SergiBrazilAsiya Javayant PROPOSAL
James B ShinkoItalyIvan Magalhaes NEW
Leon K FlosiGermanyXuxue Feng NEW
Ashley M BologniaSpainAmy Elsner UNQUALIFIED
Stacey K MarrierArgentinaAsiya Javayant NEGOTIATION
Alejandro V GillianItalyAnna Fali NEGOTIATION
Deepesh L CaldareraAustraliaAsiya Javayant NEGOTIATION
Ivar W WhobreyCanadaOnyama Limba QUALIFIED
Greenwood X DoeRussiaBernardo Dominic RENEWAL
Greenwood H InouyeFranceAnna Fali NEW
Sinclair B SchemmerItalyIoni Bowcher UNQUALIFIED
Wickens C IturbideGermanyAmy Elsner PROPOSAL
Deepesh H PoquetteItalyOnyama Limba NEGOTIATION
Arvin G KolmetzRussiaElwin Sharvill QUALIFIED
Silvio C KolmetzIndiaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Ashley U Slusarski
Morrow T Nicka
Wickens F Nestle
Adams S Royster
Nicolas H Glick
Julie R Gillian
Mayumi S Perin
Jeanfrancois Y Caudy
Emily P Garufi
Julie U Bowley
Ashley H Schemmer
Tony S Doe
Misaki K Stockham
Maisha V Stockham
Silvio U Morasca
Jones Y Royster
Costa Q Royster
Costa D Caudy
Tony T Whobrey
Emily R Venere
Sinclair X Doe
Francesco I Figeroa
Ivar Z Slusarski
Jennifer J Campain
Aika D Gillian
Silvio C Gaucho
Sinclair X Foller
Tony Y Stenseth
Johnson M Figeroa
Wickens G Royster
Rodrigues S Caldarera
Isabel C Schemmer
Alejandro D Rulapaugh
Arvin S Glick
Tony D Oldroyd
Izzy N Maclead
Tony N Sergi
Jones U Ostrosky
Murillo Q Morasca
Tony S Nestle
Costa T Ruta
Aika P Darakjy
Kaitlin M Darakjy
Arvin A Maclead
Jeanfrancois Z Chui
Arvin A Ostrosky
Jefferson L Perin
Deepesh R Rim
Francesco T Sergi
Octavia Z Iturbide
IdCountryDate
1000Japan2026-07-07
1001Italy2026-07-04
1002Russia2026-07-05
1003France2026-06-24
1004Argentina2026-07-06
1005Japan2026-06-30
1006Germany2026-07-01
1007Spain2026-06-30
1008Canada2026-07-10
1009Italy2026-07-01
1010Russia2026-06-16
1011Spain2026-06-22
1012Spain2026-07-07
1013Russia2026-06-23
1014Spain2026-06-19
1015France2026-07-10
1016Italy2026-07-12
1017France2026-06-25
1018Canada2026-07-05
1019Germany2026-06-15
1020Argentina2026-07-02
1021Canada2026-07-05
1022Japan2026-07-06
1023Italy2026-07-02
1024Japan2026-06-18
1025Argentina2026-06-18
1026Brazil2026-07-08
1027India2026-07-11
1028United Kingdom2026-06-28
1029Japan2026-06-27
1030India2026-07-07
1031India2026-07-03
1032Brazil2026-07-04
1033United Kingdom2026-06-22
1034Brazil2026-06-14
1035Italy2026-06-17
1036Canada2026-06-22
1037Russia2026-06-29
1038India2026-06-26
1039India2026-06-22
1040Australia2026-07-12
1041Germany2026-06-23
1042Argentina2026-06-23
1043Russia2026-07-06
1044Russia2026-07-12
1045France2026-06-30
1046United Kingdom2026-07-01
1047Germany2026-06-25
1048Japan2026-06-22
1049Italy2026-07-10

On-Demand Data

NameIdCountryDate
Stacey Z Vocelka1000United Kingdom2026-07-12
Aika O Sergi1001United Kingdom2026-06-13
Maisha N Gaucho1002Australia2026-07-06
Smith E Ferencz1003India2026-06-23
Chavez U Malet1004Japan2026-07-11
James V Gillian1005Spain2026-06-16
Deepesh Y Stockham1006Brazil2026-06-20
Julie Y Stockham1007Brazil2026-06-18
Johnson Z Foller1008India2026-07-04
Juan O Caudy1009Argentina2026-06-27
Maisha E Sergi1010Italy2026-07-05
Arvin A Ostrosky1011Italy2026-07-11
Jeanfrancois R Whobrey1012Japan2026-06-25
Adams V Ostrosky1013Brazil2026-06-21
Stacey T Sergi1014Germany2026-06-17
Maria X Darakjy1015India2026-07-05
Isabel W Morasca1016United Kingdom2026-06-23
Misaki J Marrier1017France2026-07-08
Greenwood V Vocelka1018Russia2026-07-05
Kaitlin V Morasca1019Japan2026-06-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh O MarrierBrazilAsiya Javayant RENEWAL
Maisha G SlusarskiRussiaIoni Bowcher NEGOTIATION
Nicolas C GillianAustraliaAmy Elsner NEW
Kadeem V InouyeSpainElwin Sharvill QUALIFIED
Isabel F WhobreySpainAnna Fali NEGOTIATION
Costa E MaletBrazilAmy Elsner PROPOSAL
Smith B PerinAustraliaIvan Magalhaes PROPOSAL
Maria E StockhamUnited KingdomAmy Elsner UNQUALIFIED
Deepesh O TollnerRussiaIvan Magalhaes NEGOTIATION
Ashley V GlickFranceStephen Shaw NEW
Ashley D WhobreyGermanyIvan Magalhaes RENEWAL
Smith B FerenczBrazilStephen Shaw RENEWAL
Ashley Q BowleyRussiaAsiya Javayant PROPOSAL
Johnson Z AmigonJapanAmy Elsner UNQUALIFIED
Clifford S SlusarskiItalyBernardo Dominic NEW
Darci C OldroydIndiaAsiya Javayant NEW
James B CaudyCanadaIoni Bowcher NEGOTIATION
Murillo N OstroskyGermanyXuxue Feng NEGOTIATION
Aika Z SergiJapanAmy Elsner UNQUALIFIED
Murillo U BriddickUnited KingdomIoni Bowcher UNQUALIFIED
Tony I ShinkoAustraliaStephen Shaw PROPOSAL
Leja F AlbaresUnited KingdomXuxue Feng PROPOSAL
Ricardo R RoysterItalyBernardo Dominic RENEWAL
Sinclair U GillianIndiaAsiya Javayant UNQUALIFIED
Jefferson N CaldareraAustraliaXuxue Feng UNQUALIFIED
Isabel R WaycottRussiaIoni Bowcher RENEWAL
Aditya V PoquetteFranceIoni Bowcher QUALIFIED
Emily I BowleyItalyOnyama Limba RENEWAL
Sinclair R CaldareraFranceAsiya Javayant NEGOTIATION
Leja O WieserAustraliaIoni Bowcher NEGOTIATION
Tony U IturbideAustraliaAnna Fali UNQUALIFIED
Smith C VocelkaRussiaIvan Magalhaes UNQUALIFIED
Chavez W OstroskyJapanAsiya Javayant NEGOTIATION
Johnson H DoeAustraliaStephen Shaw UNQUALIFIED
Salvatore P SaylorsFranceStephen Shaw PROPOSAL
Misaki K SchemmerBrazilAmy Elsner RENEWAL
Aditya O WhobreyBrazilStephen Shaw NEW
Jefferson A BologniaGermanyIoni Bowcher PROPOSAL
Leon K CaudyIndiaAmy Elsner RENEWAL
Stacey Z NickaGermanyAmy Elsner RENEWAL

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