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
Darci B SlusarskiIndiaAnna Fali NEGOTIATION
Nicolas J PerinBrazilAsiya Javayant QUALIFIED
Johnson M CaldareraFranceAmy Elsner NEW
Stacey X DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Izzy J MorascaUnited KingdomElwin Sharvill QUALIFIED
Aditya S RoysterItalyBernardo Dominic NEW
Isabel P FlosiArgentinaBernardo Dominic NEGOTIATION
Morrow N StockhamUnited KingdomAnna Fali NEW
Octavia M InouyeIndiaElwin Sharvill RENEWAL
Tony Q BowleyFranceBernardo Dominic QUALIFIED
Deepesh P PerinBrazilStephen Shaw NEGOTIATION
Jennifer U VocelkaCanadaAnna Fali NEGOTIATION
Francesco Z TollnerArgentinaAsiya Javayant NEGOTIATION
Arvin G SchemmerItalyAmy Elsner QUALIFIED
Murillo S WieserItalyAnna Fali QUALIFIED
Aruna Z GillianArgentinaStephen Shaw NEW
Arvin C RoysterFranceAmy Elsner NEGOTIATION
Ashley H ButtBrazilIvan Magalhaes QUALIFIED
Maria R RutaUnited KingdomElwin Sharvill QUALIFIED
Aditya L GauchoUnited KingdomIvan Magalhaes NEW
Rodrigues W OldroydCanadaAnna Fali NEGOTIATION
Izzy O SchemmerIndiaAsiya Javayant NEGOTIATION
Kadeem Z FerenczGermanyBernardo Dominic PROPOSAL
Ashley Q MaletBrazilXuxue Feng RENEWAL
Maisha V GarufiSpainStephen Shaw UNQUALIFIED
Leon Y FlosiUnited KingdomIoni Bowcher NEW
Jeanfrancois Q FigeroaFranceOnyama Limba RENEWAL
James E FerenczIndiaIoni Bowcher QUALIFIED
Mayumi H SlusarskiUnited KingdomElwin Sharvill PROPOSAL
Isabel H StensethArgentinaIoni Bowcher PROPOSAL
Arvin E RimJapanIoni Bowcher NEGOTIATION
Emily D ButtJapanIoni Bowcher QUALIFIED
Clifford C DilliardSpainAnna Fali RENEWAL
Adams F MarrierArgentinaAmy Elsner QUALIFIED
Juan P WieserFranceBernardo Dominic RENEWAL
Mayumi V GlickGermanyOnyama Limba NEW
Costa Z PerinIndiaAsiya Javayant PROPOSAL
Antonio C SergiBrazilOnyama Limba NEGOTIATION
Salvatore M OldroydCanadaIvan Magalhaes PROPOSAL
Darci W CampainUnited KingdomIvan Magalhaes NEW
Aruna J DoeBrazilElwin Sharvill NEGOTIATION
Juan I KolmetzIndiaBernardo Dominic NEW
Jefferson U SaylorsIndiaIvan Magalhaes RENEWAL
Leja K VenereJapanStephen Shaw RENEWAL
Murillo G DarakjyArgentinaBernardo Dominic PROPOSAL
Kadeem Q GarufiJapanAsiya Javayant UNQUALIFIED
Leja E RutaGermanyIoni Bowcher UNQUALIFIED
Costa M WhobreyJapanElwin Sharvill QUALIFIED
Maisha L PoquetteArgentinaXuxue Feng RENEWAL
Murillo P InouyeJapanAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aika L CampainIndiaIvan Magalhaes QUALIFIED
Octavia B ButtBrazilAmy Elsner NEGOTIATION
Darci D PoquetteFranceOnyama Limba UNQUALIFIED
Jeanfrancois H TollnerAustraliaElwin Sharvill NEW
Costa H MaletUnited KingdomXuxue Feng NEGOTIATION
Wickens C GarufiArgentinaAnna Fali NEW
Clifford V TollnerUnited KingdomIoni Bowcher PROPOSAL
Arvin K BologniaAustraliaElwin Sharvill RENEWAL
Tony I SaylorsUnited KingdomAmy Elsner PROPOSAL
David S RimBrazilAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna K MacleadFrance2026-08-11Dorl, James J Esq UNQUALIFIED36Ivan Magalhaes
1001Darci I RoysterBrazil2026-07-31Rangoni Of Florence PROPOSAL90Bernardo Dominic
1002Leja T GlickSpain2026-08-08Commercial Press NEW54Amy Elsner
1003Ricardo I DarakjyGermany2026-07-26Printing Dimensions QUALIFIED93Asiya Javayant
1004Rodrigues K GillianGermany2026-08-01Buckley Miller Wright UNQUALIFIED1Onyama Limba
1005Jennifer T DarakjyArgentina2026-07-17Chemel, James L Cpa QUALIFIED38Amy Elsner
1006James Y WaycottUnited Kingdom2026-08-03Chanay, Jeffrey A Esq NEW25Elwin Sharvill
1007Maria Z CaudyBrazil2026-08-09Benton, John B Jr RENEWAL64Bernardo Dominic
1008Maria H ButtIndia2026-07-19Truhlar And Truhlar Attys UNQUALIFIED31Xuxue Feng
1009Jefferson M KuskoGermany2026-07-15Truhlar And Truhlar Attys RENEWAL15Ioni Bowcher
1010Izzy N SergiGermany2026-08-06Chanay, Jeffrey A Esq PROPOSAL88Ioni Bowcher
1011Murillo K MaletSpain2026-08-13Feltz Printing Service NEW19Ivan Magalhaes
1012Mujtaba K CaudyAustralia2026-07-26Benton, John B Jr NEGOTIATION67Asiya Javayant
1013Maria C SlusarskiSpain2026-08-07Commercial Press NEGOTIATION40Anna Fali
1014Deepesh M MorascaUnited Kingdom2026-08-10Chanay, Jeffrey A Esq UNQUALIFIED51Stephen Shaw
1015Claire L GlickArgentina2026-07-17Feiner Bros PROPOSAL49Asiya Javayant
1016Mayumi I SaylorsItaly2026-08-05Rangoni Of Florence QUALIFIED58Onyama Limba
1017Isabel J CampainArgentina2026-07-31Chanay, Jeffrey A Esq NEW40Elwin Sharvill
1018Murillo U RulapaughUnited Kingdom2026-08-13Rangoni Of Florence RENEWAL16Ioni Bowcher
1019Leja N InouyeGermany2026-07-23Truhlar And Truhlar Attys NEW66Onyama Limba
1020Aika E TollnerCanada2026-07-31Morlong Associates UNQUALIFIED13Ioni Bowcher
1021Sinclair S KuskoRussia2026-08-02Buckley Miller Wright UNQUALIFIED22Elwin Sharvill
1022Morrow L StockhamAustralia2026-08-01Buckley Miller Wright NEW90Onyama Limba
1023Misaki L GarufiJapan2026-08-07Printing Dimensions NEW47Elwin Sharvill
1024James X AmigonAustralia2026-07-29Buckley Miller Wright UNQUALIFIED77Elwin Sharvill
1025Julie Z BologniaUnited Kingdom2026-07-23Feiner Bros NEGOTIATION47Bernardo Dominic
1026Ivar U GlickItaly2026-07-27Chapman, Ross E Esq NEW88Ioni Bowcher
1027Jefferson Y RoysterGermany2026-08-12Buckley Miller Wright NEW49Ivan Magalhaes
1028Antonio E GillianRussia2026-07-18Rangoni Of Florence NEW61Xuxue Feng
1029James I SchemmerFrance2026-07-21Morlong Associates NEW99Onyama Limba
1030Morrow A AlbaresAustralia2026-08-09Benton, John B Jr QUALIFIED42Ioni Bowcher
1031Aika Z RulapaughFrance2026-08-12Dorl, James J Esq NEGOTIATION95Anna Fali
1032Clifford E WhobreyAustralia2026-08-05Feiner Bros PROPOSAL68Onyama Limba
1033Aruna M OstroskyJapan2026-07-24Chapman, Ross E Esq PROPOSAL98Xuxue Feng
1034Alejandro A OstroskyRussia2026-08-12Rousseaux, Michael Esq RENEWAL32Anna Fali
1035Maria W StensethArgentina2026-07-23Chemel, James L Cpa RENEWAL52Onyama Limba
1036Emily F MaletItaly2026-07-28King, Christopher A Esq UNQUALIFIED33Asiya Javayant
1037Jennifer E PoquetteIndia2026-07-23Chanay, Jeffrey A Esq RENEWAL17Bernardo Dominic
1038Smith Z OstroskyIndia2026-08-01Printing Dimensions NEW93Ivan Magalhaes
1039Chavez V ChuiFrance2026-08-09Rangoni Of Florence NEW7Stephen Shaw
1040Darci E TollnerIndia2026-08-09Morlong Associates PROPOSAL3Ivan Magalhaes
1041Emily X GlickSpain2026-07-25Dorl, James J Esq NEGOTIATION19Ivan Magalhaes
1042Jennifer O KuskoBrazil2026-07-27Chemel, James L Cpa NEW12Xuxue Feng
1043Izzy K StockhamSpain2026-07-28Rousseaux, Michael Esq QUALIFIED34Onyama Limba
1044Julie I StockhamCanada2026-07-29Chapman, Ross E Esq RENEWAL9Stephen Shaw
1045Julie L TollnerGermany2026-08-12Morlong Associates PROPOSAL88Xuxue Feng
1046Arvin R WhobreySpain2026-08-02King, Christopher A Esq NEW88Anna Fali
1047Wickens H SergiIndia2026-07-20Chanay, Jeffrey A Esq UNQUALIFIED81Anna Fali
1048Leon M PaprockiBrazil2026-07-16Chanay, Jeffrey A Esq RENEWAL84Elwin Sharvill
1049Tony L InouyeCanada2026-08-05Truhlar And Truhlar Attys NEGOTIATION86Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leja G FlosiRussiaElwin Sharvill NEGOTIATION
Sinclair B CampainFranceOnyama Limba PROPOSAL
Sinclair Y SchemmerBrazilElwin Sharvill NEW
Francesco W MaletArgentinaAsiya Javayant RENEWAL
Isabel H BologniaUnited KingdomAnna Fali RENEWAL
Octavia D FollerSpainAnna Fali NEW
Costa K StensethArgentinaAsiya Javayant PROPOSAL
Julie C BowleyGermanyAnna Fali PROPOSAL
Isabel S VenereSpainOnyama Limba PROPOSAL
Arvin I ChuiRussiaBernardo Dominic QUALIFIED
Greenwood T StensethItalyOnyama Limba NEGOTIATION
Ricardo F SlusarskiRussiaIoni Bowcher PROPOSAL
Wickens O FollerCanadaStephen Shaw UNQUALIFIED
Adams H FlosiJapanIoni Bowcher QUALIFIED
Izzy F GauchoGermanyIvan Magalhaes QUALIFIED
Juan P GarufiArgentinaElwin Sharvill UNQUALIFIED
Munro U FlosiArgentinaIoni Bowcher NEGOTIATION
Tony K PerinGermanyAnna Fali UNQUALIFIED
Ivar M PaprockiBrazilAmy Elsner NEGOTIATION
Kadeem M NestleArgentinaAsiya Javayant QUALIFIED
Costa G KolmetzGermanyIvan Magalhaes UNQUALIFIED
Maisha Q KuskoArgentinaElwin Sharvill PROPOSAL
Isabel M FollerUnited KingdomXuxue Feng QUALIFIED
Jefferson V VocelkaAustraliaOnyama Limba UNQUALIFIED
Maria T PerinJapanOnyama Limba NEGOTIATION
Morrow O InouyeIndiaAnna Fali NEGOTIATION
Murillo H VenereIndiaElwin Sharvill RENEWAL
Maria Y WaycottUnited KingdomOnyama Limba RENEWAL
Morrow M StockhamBrazilIoni Bowcher UNQUALIFIED
Darci H ButtIndiaIvan Magalhaes UNQUALIFIED
Cody G RoysterCanadaAnna Fali NEGOTIATION
Ashley C ShinkoItalyIoni Bowcher NEGOTIATION
David S ShinkoIndiaAnna Fali QUALIFIED
Arvin F ChuiJapanAnna Fali UNQUALIFIED
Emily L IturbideAustraliaIvan Magalhaes UNQUALIFIED
Nicolas E VocelkaAustraliaIvan Magalhaes RENEWAL
Emily J BriddickRussiaAmy Elsner NEGOTIATION
Chavez G GlickRussiaIoni Bowcher RENEWAL
David I RulapaughItalyStephen Shaw PROPOSAL
Emily G BriddickAustraliaBernardo Dominic PROPOSAL
Mujtaba P IturbideRussiaStephen Shaw PROPOSAL
Leon N CaldareraSpainXuxue Feng NEGOTIATION
Darci M RutaArgentinaBernardo Dominic PROPOSAL
Rodrigues X ShinkoAustraliaStephen Shaw RENEWAL
Misaki W ShinkoAustraliaIvan Magalhaes NEW
Chavez E AmigonItalyIvan Magalhaes RENEWAL
Izzy N SergiAustraliaBernardo Dominic UNQUALIFIED
Sinclair J OstroskySpainXuxue Feng RENEWAL
Smith Z FlosiSpainAnna Fali NEGOTIATION
Salvatore V MaletCanadaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Maria P Amigon
Deepesh W Royster
Ivar W Tollner
Julie A Schemmer
Antonio U Iturbide
Kaitlin J Venere
David W Nicka
Jones L Nestle
Antonio B Iturbide
Kaitlin E Nestle
Mayumi Y Iturbide
Isabel P Dilliard
Leon A Royster
Jefferson J Saylors
Antonio W Caldarera
Costa A Briddick
Juan O Morasca
Morrow R Venere
Leja V Maclead
Octavia B Flosi
Izzy A Whobrey
Aditya L Garufi
Morrow Y Flosi
Misaki D Sergi
Claire P Royster
Deepesh T Gaucho
Francesco C Waycott
Maria N Shinko
Tony C Malet
Faith O Inouye
Ashley C Waycott
Leon G Malet
Cody N Butt
Jeanfrancois E Venere
Isabel C Briddick
Misaki B Marrier
Cody A Kolmetz
Kadeem J Albares
Cody Q Nestle
Izzy Y Kusko
Deepesh F Shinko
Munro K Albares
Chavez N Whobrey
Rodrigues I Rulapaugh
Mujtaba M Darakjy
Jeanfrancois E Ferencz
Misaki U Venere
Ricardo K Gaucho
James V Dilliard
Jennifer A Bolognia
IdCountryDate
1000Brazil2026-08-09
1001India2026-07-22
1002Canada2026-08-12
1003Argentina2026-07-26
1004Germany2026-07-27
1005Australia2026-07-25
1006France2026-08-13
1007Japan2026-07-26
1008Italy2026-07-30
1009Brazil2026-07-25
1010France2026-08-04
1011Spain2026-07-26
1012Brazil2026-07-25
1013Brazil2026-07-29
1014France2026-07-29
1015Canada2026-07-24
1016Canada2026-07-20
1017India2026-07-15
1018France2026-07-31
1019Canada2026-07-24
1020Japan2026-08-07
1021United Kingdom2026-07-15
1022India2026-08-05
1023Italy2026-08-03
1024Spain2026-08-05
1025France2026-07-17
1026United Kingdom2026-07-20
1027Australia2026-08-01
1028Russia2026-07-25
1029Australia2026-08-01
1030Germany2026-07-20
1031France2026-08-07
1032Italy2026-07-17
1033Germany2026-08-05
1034United Kingdom2026-07-23
1035Argentina2026-07-23
1036Spain2026-08-12
1037Russia2026-08-06
1038Germany2026-08-13
1039Argentina2026-08-04
1040Australia2026-07-24
1041Spain2026-08-04
1042Japan2026-08-08
1043Japan2026-08-08
1044India2026-08-07
1045France2026-08-05
1046Brazil2026-08-03
1047Argentina2026-08-11
1048Russia2026-07-23
1049United Kingdom2026-07-23

On-Demand Data

NameIdCountryDate
Maisha G Albares1000Brazil2026-08-09
Aditya K Nestle1001Argentina2026-07-28
Faith E Marrier1002Germany2026-08-03
Kaitlin Q Saylors1003Russia2026-07-26
Greenwood A Albares1004Australia2026-07-25
Sinclair X Butt1005Japan2026-08-04
David F Kolmetz1006Italy2026-08-09
Deepesh X Nestle1007Germany2026-08-01
Octavia G Flosi1008Japan2026-07-25
Rodrigues W Paprocki1009France2026-08-01
Munro R Tollner1010France2026-07-21
Aika E Perin1011Canada2026-08-09
Misaki O Chui1012France2026-07-20
Antonio W Malet1013Argentina2026-07-29
Sinclair V Amigon1014Spain2026-07-24
Sinclair E Caldarera1015Japan2026-08-05
Costa O Ferencz1016Germany2026-07-15
Salvatore B Bowley1017France2026-07-25
Maisha T Waycott1018Argentina2026-07-23
Maria G Amigon1019Argentina2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon D PoquetteJapanOnyama Limba RENEWAL
Arvin H NickaRussiaIvan Magalhaes QUALIFIED
Costa T PerinGermanyAmy Elsner RENEWAL
Isabel K InouyeFranceIoni Bowcher UNQUALIFIED
Greenwood G RutaRussiaAsiya Javayant RENEWAL
Silvio T FlosiGermanyStephen Shaw UNQUALIFIED
Claire C GlickCanadaElwin Sharvill NEW
Morrow L CaldareraIndiaOnyama Limba UNQUALIFIED
Wickens G OstroskyJapanElwin Sharvill NEGOTIATION
Francesco W MacleadArgentinaElwin Sharvill PROPOSAL
Alejandro V OldroydRussiaAsiya Javayant UNQUALIFIED
Cody I CampainCanadaOnyama Limba NEGOTIATION
Alejandro B WhobreyUnited KingdomOnyama Limba PROPOSAL
Jeanfrancois Q NestleArgentinaStephen Shaw UNQUALIFIED
Maisha X ButtCanadaBernardo Dominic UNQUALIFIED
David Z StensethArgentinaIoni Bowcher NEGOTIATION
Faith R PaprockiBrazilBernardo Dominic NEW
Arvin R ButtFranceIvan Magalhaes UNQUALIFIED
Deepesh J NestleArgentinaXuxue Feng NEW
James D ShinkoRussiaElwin Sharvill QUALIFIED
David K GlickCanadaIvan Magalhaes NEW
Cody L DarakjyGermanyStephen Shaw NEGOTIATION
Juan I PaprockiFranceOnyama Limba NEGOTIATION
Ricardo Y GarufiItalyIoni Bowcher PROPOSAL
Arvin B ButtRussiaBernardo Dominic RENEWAL
Jones L PaprockiCanadaIoni Bowcher NEW
Kaitlin L WieserItalyElwin Sharvill NEGOTIATION
Alejandro F SlusarskiBrazilAsiya Javayant QUALIFIED
Salvatore L GlickBrazilXuxue Feng PROPOSAL
Clifford X MaletRussiaStephen Shaw NEW
Jeanfrancois S IturbideBrazilStephen Shaw NEW
Ricardo X NestleJapanAmy Elsner QUALIFIED
Rodrigues Q SergiIndiaBernardo Dominic RENEWAL
Antonio X CampainBrazilBernardo Dominic NEW
Jones X PerinGermanyBernardo Dominic UNQUALIFIED
Ricardo A StensethBrazilElwin Sharvill NEGOTIATION
Misaki X FigeroaIndiaIoni Bowcher NEGOTIATION
Emily Y GauchoArgentinaAmy Elsner NEW
Jefferson X GarufiRussiaAmy Elsner RENEWAL
Chavez U MaletArgentinaElwin Sharvill PROPOSAL

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