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
Emily B CaudyItalyBernardo Dominic UNQUALIFIED
Faith Z WhobreySpainOnyama Limba NEW
Aruna T MaletCanadaAsiya Javayant QUALIFIED
Francesco J InouyeArgentinaBernardo Dominic RENEWAL
Tony G WaycottCanadaElwin Sharvill NEGOTIATION
Ashley S TollnerItalyAsiya Javayant PROPOSAL
Kadeem M DarakjyBrazilBernardo Dominic PROPOSAL
Kaitlin T MacleadBrazilAnna Fali UNQUALIFIED
Ashley K ShinkoRussiaIvan Magalhaes NEW
Faith N MacleadIndiaAmy Elsner PROPOSAL
Arvin G KuskoRussiaAmy Elsner UNQUALIFIED
Leon O ButtFranceXuxue Feng NEGOTIATION
Jennifer W SlusarskiSpainElwin Sharvill UNQUALIFIED
Sinclair D FlosiFranceIvan Magalhaes QUALIFIED
Adams F ButtFranceIvan Magalhaes NEGOTIATION
Francesco B KolmetzFranceIoni Bowcher NEGOTIATION
Munro O VocelkaBrazilBernardo Dominic PROPOSAL
Leja A WaycottCanadaAsiya Javayant QUALIFIED
Salvatore L OstroskyGermanyOnyama Limba PROPOSAL
Leja H OldroydSpainElwin Sharvill RENEWAL
James O ShinkoRussiaIvan Magalhaes QUALIFIED
Greenwood W SergiItalyElwin Sharvill NEGOTIATION
Smith Q CampainUnited KingdomAmy Elsner QUALIFIED
Faith Y MorascaArgentinaIoni Bowcher PROPOSAL
Morrow C WhobreyRussiaElwin Sharvill NEW
Antonio P FlosiArgentinaAsiya Javayant PROPOSAL
Octavia M RutaBrazilAmy Elsner PROPOSAL
Costa V DoeIndiaIoni Bowcher NEGOTIATION
Smith D KuskoUnited KingdomXuxue Feng NEW
Mayumi F StensethFranceIvan Magalhaes UNQUALIFIED
Smith R PaprockiIndiaOnyama Limba NEGOTIATION
Arvin A SergiIndiaBernardo Dominic NEGOTIATION
Clifford R NickaAustraliaAnna Fali RENEWAL
Stacey W GauchoJapanIoni Bowcher NEW
David R DoeGermanyXuxue Feng UNQUALIFIED
Munro W DarakjyIndiaAnna Fali QUALIFIED
Darci A FigeroaJapanStephen Shaw UNQUALIFIED
Costa D FollerCanadaAmy Elsner RENEWAL
Smith N DarakjyFranceAmy Elsner UNQUALIFIED
Izzy Z BologniaIndiaAsiya Javayant NEGOTIATION
Octavia K GarufiArgentinaAmy Elsner NEW
Deepesh J CaudyUnited KingdomAmy Elsner NEGOTIATION
Arvin E TollnerItalyAmy Elsner NEW
Aditya R RimItalyAnna Fali QUALIFIED
Kadeem M VenereItalyAsiya Javayant QUALIFIED
Sinclair S FerenczSpainIoni Bowcher NEW
Ricardo W GarufiCanadaAsiya Javayant NEW
David F RoysterBrazilAmy Elsner QUALIFIED
Claire P SaylorsBrazilBernardo Dominic PROPOSAL
Rodrigues V RimUnited KingdomElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Maisha E StensethBrazilElwin Sharvill NEGOTIATION
Rodrigues M BologniaFranceBernardo Dominic RENEWAL
Chavez Q AmigonUnited KingdomAmy Elsner QUALIFIED
Jones Q GauchoBrazilElwin Sharvill QUALIFIED
Ricardo B PoquetteUnited KingdomIvan Magalhaes UNQUALIFIED
Isabel U MaletSpainXuxue Feng NEW
Octavia J OldroydItalyXuxue Feng PROPOSAL
Mujtaba W SchemmerBrazilBernardo Dominic PROPOSAL
Octavia J FerenczBrazilAmy Elsner PROPOSAL
Greenwood U InouyeJapanAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois A FigeroaIndia2026-07-01Chapman, Ross E Esq PROPOSAL92Onyama Limba
1001Silvio O DoeIndia2026-06-12Rangoni Of Florence PROPOSAL68Bernardo Dominic
1002Stacey O BologniaJapan2026-06-09Dorl, James J Esq NEW31Elwin Sharvill
1003Morrow Y FlosiRussia2026-06-27Chapman, Ross E Esq RENEWAL98Xuxue Feng
1004Greenwood D GauchoAustralia2026-06-27Printing Dimensions NEW94Ivan Magalhaes
1005Sinclair R SlusarskiUnited Kingdom2026-07-01Morlong Associates QUALIFIED12Stephen Shaw
1006Smith R CampainRussia2026-06-27Rangoni Of Florence NEGOTIATION47Stephen Shaw
1007Isabel P ButtRussia2026-06-09Morlong Associates PROPOSAL2Anna Fali
1008Mujtaba S RimAustralia2026-07-01King, Christopher A Esq RENEWAL97Xuxue Feng
1009Rodrigues U ShinkoJapan2026-07-02Chemel, James L Cpa QUALIFIED90Asiya Javayant
1010Juan L NestleRussia2026-06-22Morlong Associates RENEWAL2Bernardo Dominic
1011Kaitlin A SlusarskiGermany2026-06-26Chemel, James L Cpa PROPOSAL38Ivan Magalhaes
1012Rodrigues F SergiCanada2026-06-22Benton, John B Jr NEGOTIATION33Asiya Javayant
1013Tony P OldroydGermany2026-07-01Buckley Miller Wright UNQUALIFIED39Amy Elsner
1014Ricardo H StockhamJapan2026-06-12Chemel, James L Cpa PROPOSAL61Asiya Javayant
1015Aditya X CaldareraRussia2026-06-20Chanay, Jeffrey A Esq NEW10Bernardo Dominic
1016Ricardo Y MaletSpain2026-06-28Printing Dimensions RENEWAL1Bernardo Dominic
1017Kadeem U FollerUnited Kingdom2026-06-12Printing Dimensions QUALIFIED89Bernardo Dominic
1018Munro G PerinBrazil2026-06-24Rangoni Of Florence PROPOSAL10Elwin Sharvill
1019Adams R CampainArgentina2026-06-24Rangoni Of Florence QUALIFIED27Ioni Bowcher
1020Cody E ChuiCanada2026-06-17Rousseaux, Michael Esq PROPOSAL17Amy Elsner
1021Jeanfrancois X VenereRussia2026-06-27Chanay, Jeffrey A Esq UNQUALIFIED83Xuxue Feng
1022Misaki S CampainItaly2026-06-25Dorl, James J Esq UNQUALIFIED39Ioni Bowcher
1023Arvin Q FollerRussia2026-06-21Chemel, James L Cpa UNQUALIFIED18Ivan Magalhaes
1024Morrow I StensethBrazil2026-07-04Dorl, James J Esq PROPOSAL72Asiya Javayant
1025Ashley E SaylorsIndia2026-06-15Rousseaux, Michael Esq RENEWAL10Bernardo Dominic
1026Mayumi D NestleArgentina2026-06-27Chemel, James L Cpa PROPOSAL28Elwin Sharvill
1027Sinclair C MacleadUnited Kingdom2026-06-25Chemel, James L Cpa RENEWAL83Anna Fali
1028Munro J RutaAustralia2026-06-08Rousseaux, Michael Esq QUALIFIED78Ivan Magalhaes
1029Wickens V KolmetzFrance2026-07-02Printing Dimensions NEW50Anna Fali
1030Aika P MacleadRussia2026-06-07Chapman, Ross E Esq UNQUALIFIED24Bernardo Dominic
1031Faith W RimSpain2026-07-05Morlong Associates UNQUALIFIED45Xuxue Feng
1032Leja B CampainBrazil2026-06-19Rangoni Of Florence NEW36Xuxue Feng
1033Murillo U WaycottGermany2026-07-02Feltz Printing Service QUALIFIED59Stephen Shaw
1034Octavia H DilliardFrance2026-06-26Chapman, Ross E Esq NEGOTIATION43Elwin Sharvill
1035Tony A KuskoItaly2026-06-25Truhlar And Truhlar Attys NEW55Ivan Magalhaes
1036Jeanfrancois T PoquetteSpain2026-06-12Commercial Press NEW31Bernardo Dominic
1037Jennifer P RutaAustralia2026-07-04King, Christopher A Esq PROPOSAL26Onyama Limba
1038Jones N RulapaughAustralia2026-06-23Printing Dimensions PROPOSAL0Xuxue Feng
1039Munro Q SlusarskiSpain2026-06-16Morlong Associates NEGOTIATION86Anna Fali
1040Julie T MacleadIndia2026-07-05Chemel, James L Cpa NEW34Onyama Limba
1041Adams M VocelkaFrance2026-06-14Feltz Printing Service UNQUALIFIED39Bernardo Dominic
1042Isabel D ShinkoItaly2026-06-18Feiner Bros RENEWAL18Onyama Limba
1043Jefferson G GarufiIndia2026-06-07Chapman, Ross E Esq PROPOSAL77Elwin Sharvill
1044Jennifer J MacleadCanada2026-07-04Rangoni Of Florence PROPOSAL31Onyama Limba
1045Leon C DarakjySpain2026-06-25Chapman, Ross E Esq UNQUALIFIED88Ivan Magalhaes
1046Faith V ButtItaly2026-07-05Rangoni Of Florence RENEWAL50Stephen Shaw
1047Jennifer A PerinSpain2026-06-14Commercial Press UNQUALIFIED39Anna Fali
1048Darci G PaprockiGermany2026-07-02Buckley Miller Wright NEW42Ioni Bowcher
1049Sinclair P KuskoGermany2026-07-02Printing Dimensions RENEWAL11Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Izzy G AmigonFranceIoni Bowcher RENEWAL
Kadeem T GarufiRussiaBernardo Dominic RENEWAL
Ashley Z SchemmerCanadaAnna Fali QUALIFIED
Jefferson A CaldareraArgentinaIoni Bowcher PROPOSAL
Cody E BriddickSpainIoni Bowcher NEGOTIATION
Darci Z MaletIndiaOnyama Limba RENEWAL
Sinclair W BologniaAustraliaElwin Sharvill NEGOTIATION
Ricardo W GarufiGermanyXuxue Feng RENEWAL
Jefferson L ShinkoGermanyElwin Sharvill RENEWAL
Emily M GarufiAustraliaIvan Magalhaes NEW
Murillo M AlbaresIndiaStephen Shaw PROPOSAL
Rodrigues H NickaSpainAsiya Javayant RENEWAL
Emily W DarakjyGermanyBernardo Dominic PROPOSAL
Silvio M MorascaCanadaStephen Shaw QUALIFIED
Cody L MaletAustraliaBernardo Dominic RENEWAL
Rodrigues D NickaGermanyElwin Sharvill QUALIFIED
David W ShinkoAustraliaElwin Sharvill PROPOSAL
Salvatore Q AmigonArgentinaAsiya Javayant UNQUALIFIED
Kaitlin S FerenczIndiaIoni Bowcher NEW
Smith R CaudySpainElwin Sharvill RENEWAL
Aditya R GlickArgentinaBernardo Dominic NEGOTIATION
Juan D RoysterCanadaStephen Shaw QUALIFIED
Nicolas L ShinkoUnited KingdomAnna Fali NEGOTIATION
Claire K SergiArgentinaElwin Sharvill RENEWAL
Deepesh V GarufiRussiaOnyama Limba QUALIFIED
Darci X FlosiCanadaOnyama Limba QUALIFIED
Alejandro A MarrierBrazilAsiya Javayant RENEWAL
Aruna B RimSpainAmy Elsner RENEWAL
Costa A BowleyItalyAsiya Javayant QUALIFIED
Costa C MaletUnited KingdomAsiya Javayant NEGOTIATION
Clifford G NickaArgentinaAnna Fali NEGOTIATION
Faith S RoysterAustraliaAmy Elsner PROPOSAL
Munro R KuskoSpainOnyama Limba UNQUALIFIED
Murillo T OldroydSpainAnna Fali QUALIFIED
Mujtaba A KolmetzIndiaAsiya Javayant QUALIFIED
Johnson W ChuiRussiaAsiya Javayant NEW
Ivar Y VocelkaJapanIvan Magalhaes RENEWAL
Aditya L RutaJapanXuxue Feng UNQUALIFIED
Cody L FigeroaFranceBernardo Dominic PROPOSAL
Leja D RulapaughJapanXuxue Feng NEW
Octavia F GarufiArgentinaElwin Sharvill QUALIFIED
Faith O FollerItalyAnna Fali NEW
Mayumi A NickaGermanyIvan Magalhaes PROPOSAL
Jefferson B AlbaresUnited KingdomElwin Sharvill RENEWAL
Maisha E ButtGermanyElwin Sharvill NEW
Maisha Z MaletBrazilAsiya Javayant PROPOSAL
Greenwood E RutaSpainIoni Bowcher UNQUALIFIED
Morrow T SaylorsFranceAsiya Javayant UNQUALIFIED
Mujtaba Y BriddickBrazilXuxue Feng NEGOTIATION
Darci F CampainGermanyIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Emily C Foller
Julie S Figeroa
Aruna U Flosi
Darci C Briddick
Maisha B Waycott
Arvin E Ruta
Octavia U Glick
Tony J Shinko
Deepesh G Butt
Alejandro V Marrier
Ashley R Gaucho
Cody S Schemmer
Faith N Ferencz
Jeanfrancois B Morasca
Kaitlin U Paprocki
Munro L Ostrosky
Munro O Flosi
Kaitlin U Schemmer
Costa O Caldarera
Aditya X Kusko
James E Bolognia
Costa K Ruta
Octavia Z Malet
Salvatore M Paprocki
Juan Y Saylors
Alejandro I Poquette
Faith D Kolmetz
Aruna B Perin
Deepesh Z Sergi
Stacey C Rulapaugh
Jennifer C Bowley
Alejandro E Inouye
Jeanfrancois D Shinko
Octavia M Inouye
Johnson N Whobrey
Darci M Rulapaugh
Mayumi X Wieser
Morrow C Nestle
Rodrigues A Caudy
Kadeem S Saylors
Stacey V Figeroa
Antonio M Darakjy
Ricardo L Saylors
Leon V Stockham
Johnson N Poquette
David Z Albares
Johnson B Flosi
Sinclair C Stockham
Misaki J Saylors
Deepesh A Iturbide
IdCountryDate
1000United Kingdom2026-06-15
1001Italy2026-06-30
1002Spain2026-06-21
1003Italy2026-07-03
1004United Kingdom2026-06-19
1005Germany2026-06-07
1006Germany2026-06-16
1007France2026-06-18
1008Australia2026-06-21
1009Japan2026-06-26
1010India2026-06-14
1011Spain2026-07-05
1012India2026-06-22
1013Japan2026-06-15
1014Spain2026-06-24
1015India2026-06-24
1016Australia2026-06-09
1017Russia2026-06-30
1018Spain2026-06-25
1019Japan2026-06-28
1020Germany2026-07-01
1021United Kingdom2026-06-21
1022Italy2026-06-16
1023Japan2026-06-25
1024Japan2026-07-02
1025United Kingdom2026-06-20
1026Japan2026-06-30
1027Brazil2026-06-29
1028Australia2026-06-11
1029Spain2026-06-11
1030Germany2026-06-29
1031Japan2026-06-15
1032France2026-07-02
1033Canada2026-06-17
1034Germany2026-06-15
1035United Kingdom2026-07-01
1036Brazil2026-06-25
1037Spain2026-06-12
1038Italy2026-07-02
1039France2026-07-04
1040Japan2026-07-05
1041India2026-06-23
1042United Kingdom2026-06-15
1043France2026-06-24
1044Japan2026-06-10
1045Spain2026-06-15
1046Argentina2026-06-24
1047Australia2026-07-04
1048Australia2026-06-19
1049United Kingdom2026-06-25

On-Demand Data

NameIdCountryDate
Tony V Briddick1000Australia2026-07-04
Johnson Y Schemmer1001Germany2026-07-02
Maria G Bolognia1002Spain2026-07-06
Mujtaba N Morasca1003Australia2026-06-14
Julie F Doe1004United Kingdom2026-06-20
Smith P Caudy1005India2026-06-29
Aika L Bowley1006Italy2026-06-21
Munro K Malet1007Canada2026-06-28
Mayumi O Slusarski1008United Kingdom2026-07-02
James I Inouye1009France2026-06-29
Julie M Bowley1010Italy2026-06-22
Jennifer O Dilliard1011United Kingdom2026-06-29
Smith H Butt1012Japan2026-06-27
Costa Q Darakjy1013India2026-06-11
Darci O Caldarera1014Canada2026-06-08
Isabel N Stenseth1015Russia2026-07-04
Tony B Schemmer1016India2026-06-25
Mujtaba J Butt1017Italy2026-06-21
Aika U Malet1018Argentina2026-07-05
Mayumi I Malet1019Australia2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James K BologniaAustraliaAmy Elsner UNQUALIFIED
Jeanfrancois V CampainGermanyOnyama Limba UNQUALIFIED
Ivar Q SchemmerCanadaXuxue Feng UNQUALIFIED
Aruna K MacleadUnited KingdomAmy Elsner NEGOTIATION
Costa W SlusarskiIndiaElwin Sharvill UNQUALIFIED
Adams R CaudyArgentinaStephen Shaw NEW
Costa S CaldareraAustraliaStephen Shaw NEW
Smith Y BologniaSpainIoni Bowcher PROPOSAL
Costa Z BriddickRussiaAnna Fali UNQUALIFIED
Ivar O BowleyArgentinaAnna Fali UNQUALIFIED
Murillo F SaylorsIndiaElwin Sharvill NEW
Greenwood K MaletItalyAsiya Javayant NEW
Wickens J FerenczSpainElwin Sharvill RENEWAL
Adams Q RulapaughItalyIoni Bowcher NEW
Leon X PerinJapanAmy Elsner RENEWAL
Juan K MaletFranceIoni Bowcher PROPOSAL
Ashley U AlbaresGermanyIvan Magalhaes QUALIFIED
Murillo X IturbideItalyElwin Sharvill PROPOSAL
Darci M CaudyGermanyStephen Shaw NEGOTIATION
Francesco V WhobreyAustraliaAnna Fali NEW
Cody W PoquetteIndiaIoni Bowcher QUALIFIED
Izzy O AmigonAustraliaAmy Elsner NEGOTIATION
Faith D PaprockiArgentinaIoni Bowcher QUALIFIED
Kaitlin K CaudyGermanyAmy Elsner UNQUALIFIED
Rodrigues I NestleBrazilAnna Fali QUALIFIED
Isabel N SchemmerUnited KingdomAmy Elsner NEW
Claire F PoquetteArgentinaXuxue Feng UNQUALIFIED
Adams T GarufiCanadaStephen Shaw NEW
Costa N CaudyItalyOnyama Limba QUALIFIED
David B FollerSpainIvan Magalhaes UNQUALIFIED
Adams C BologniaItalyAmy Elsner NEW
Leon X WhobreyUnited KingdomIoni Bowcher QUALIFIED
Ashley Q BriddickJapanOnyama Limba PROPOSAL
Darci O FigeroaSpainIoni Bowcher PROPOSAL
Mayumi Z BriddickItalyAmy Elsner UNQUALIFIED
Claire M CaldareraItalyIvan Magalhaes UNQUALIFIED
Jeanfrancois F VenereRussiaBernardo Dominic PROPOSAL
Smith I SchemmerCanadaAnna Fali NEGOTIATION
Ivar C MorascaJapanXuxue Feng PROPOSAL
Nicolas N MarrierItalyAnna Fali 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>