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
Aditya U SlusarskiJapanElwin Sharvill NEGOTIATION
Emily V FollerGermanyXuxue Feng PROPOSAL
Jennifer Y MaletItalyAsiya Javayant UNQUALIFIED
Julie L ShinkoRussiaXuxue Feng UNQUALIFIED
Emily L MacleadFranceXuxue Feng RENEWAL
Arvin M RoysterBrazilAnna Fali UNQUALIFIED
Murillo M BriddickAustraliaBernardo Dominic UNQUALIFIED
Morrow I DoeFranceBernardo Dominic NEW
Aruna Z BriddickArgentinaBernardo Dominic UNQUALIFIED
Alejandro F RutaGermanyAnna Fali UNQUALIFIED
Alejandro W SergiCanadaAmy Elsner UNQUALIFIED
Ivar E MaletArgentinaBernardo Dominic RENEWAL
Isabel H OldroydSpainIvan Magalhaes PROPOSAL
Alejandro K MorascaUnited KingdomElwin Sharvill NEW
Izzy J NestleArgentinaBernardo Dominic NEGOTIATION
Cody R StensethSpainXuxue Feng PROPOSAL
Claire Y InouyeUnited KingdomAmy Elsner NEW
Greenwood K RoysterSpainBernardo Dominic NEGOTIATION
Ivar T AlbaresGermanyStephen Shaw UNQUALIFIED
Claire A CaldareraAustraliaAnna Fali NEW
Jones D SchemmerIndiaStephen Shaw NEGOTIATION
Claire U IturbideJapanIvan Magalhaes UNQUALIFIED
Juan T MorascaFranceStephen Shaw UNQUALIFIED
Francesco G BologniaGermanyElwin Sharvill NEGOTIATION
Aditya U FlosiFranceAnna Fali RENEWAL
Misaki B CaudyRussiaStephen Shaw RENEWAL
Johnson H WieserBrazilAnna Fali PROPOSAL
Maria B InouyeGermanyStephen Shaw PROPOSAL
Greenwood W PerinUnited KingdomIvan Magalhaes RENEWAL
Antonio A VenereIndiaXuxue Feng RENEWAL
Leon H VocelkaSpainXuxue Feng QUALIFIED
Ricardo N SchemmerArgentinaBernardo Dominic UNQUALIFIED
Ricardo R ChuiFranceElwin Sharvill PROPOSAL
Izzy U FlosiUnited KingdomAnna Fali QUALIFIED
Salvatore W WhobreyFranceElwin Sharvill UNQUALIFIED
Sinclair T FollerBrazilElwin Sharvill NEGOTIATION
Francesco U MorascaCanadaIoni Bowcher NEW
Maria Y DilliardFranceAmy Elsner NEGOTIATION
Darci J WaycottBrazilOnyama Limba QUALIFIED
Jeanfrancois D FollerGermanyStephen Shaw PROPOSAL
Nicolas I DoeAustraliaStephen Shaw UNQUALIFIED
Silvio T CaudyJapanIvan Magalhaes UNQUALIFIED
Emily M PoquetteSpainStephen Shaw RENEWAL
Salvatore G PaprockiBrazilAnna Fali NEW
Maria R WhobreyBrazilAsiya Javayant UNQUALIFIED
Johnson B PaprockiFranceAmy Elsner UNQUALIFIED
Antonio P ButtJapanIoni Bowcher NEGOTIATION
Jones Q TollnerUnited KingdomElwin Sharvill NEW
Jennifer Y MorascaRussiaAsiya Javayant PROPOSAL
Deepesh O CaldareraBrazilAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Misaki G AmigonUnited KingdomOnyama Limba QUALIFIED
Ashley M StensethSpainIoni Bowcher RENEWAL
Rodrigues N ButtUnited KingdomElwin Sharvill RENEWAL
Julie E CampainUnited KingdomAnna Fali QUALIFIED
Costa G FollerItalyIvan Magalhaes PROPOSAL
Smith W FigeroaIndiaIoni Bowcher UNQUALIFIED
Tony P BowleyFranceIvan Magalhaes NEW
Adams H MarrierBrazilXuxue Feng NEGOTIATION
Deepesh H OldroydAustraliaAsiya Javayant NEW
Kaitlin Y VenereJapanAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar A IturbideItaly2026-07-10Feltz Printing Service PROPOSAL72Ivan Magalhaes
1001Chavez A ShinkoUnited Kingdom2026-07-04Rangoni Of Florence NEW90Ioni Bowcher
1002Aruna I AmigonFrance2026-07-06Chapman, Ross E Esq PROPOSAL8Bernardo Dominic
1003Kadeem N GauchoIndia2026-07-23Dorl, James J Esq NEGOTIATION43Amy Elsner
1004Murillo O MacleadJapan2026-07-22Chapman, Ross E Esq NEW18Anna Fali
1005Nicolas B PoquetteFrance2026-07-18Rangoni Of Florence NEGOTIATION10Elwin Sharvill
1006Faith F BriddickRussia2026-07-09Chapman, Ross E Esq UNQUALIFIED56Stephen Shaw
1007Mujtaba O AmigonJapan2026-07-14Chapman, Ross E Esq RENEWAL53Xuxue Feng
1008Antonio L VenereFrance2026-07-08Rousseaux, Michael Esq QUALIFIED54Asiya Javayant
1009Maria Q TollnerIndia2026-07-13Rousseaux, Michael Esq NEW52Onyama Limba
1010Kaitlin O RimGermany2026-07-27Dorl, James J Esq NEW6Stephen Shaw
1011James Z RutaGermany2026-06-28Dorl, James J Esq RENEWAL72Asiya Javayant
1012Rodrigues T FerenczRussia2026-07-27Morlong Associates NEGOTIATION4Bernardo Dominic
1013Costa P IturbideAustralia2026-07-06Chemel, James L Cpa UNQUALIFIED39Asiya Javayant
1014Leja Q AlbaresJapan2026-07-14King, Christopher A Esq UNQUALIFIED73Ioni Bowcher
1015Faith T MacleadArgentina2026-07-19Truhlar And Truhlar Attys QUALIFIED25Xuxue Feng
1016Izzy G MaletArgentina2026-06-30Feiner Bros RENEWAL55Ioni Bowcher
1017Jefferson Z FlosiUnited Kingdom2026-07-25Rangoni Of Florence QUALIFIED95Ivan Magalhaes
1018Tony Y GillianIndia2026-07-22Chemel, James L Cpa PROPOSAL73Stephen Shaw
1019Ricardo S CaldareraUnited Kingdom2026-07-19Chanay, Jeffrey A Esq UNQUALIFIED98Stephen Shaw
1020Misaki W AlbaresArgentina2026-07-27Chanay, Jeffrey A Esq RENEWAL35Anna Fali
1021Kadeem K FollerArgentina2026-07-23Morlong Associates NEGOTIATION83Xuxue Feng
1022Stacey S RimGermany2026-07-18Feltz Printing Service NEW34Bernardo Dominic
1023Tony B AmigonRussia2026-07-16Commercial Press QUALIFIED74Elwin Sharvill
1024Misaki O PoquetteSpain2026-07-25Benton, John B Jr NEW96Amy Elsner
1025Salvatore B ShinkoFrance2026-07-15Feltz Printing Service PROPOSAL2Bernardo Dominic
1026Misaki E AmigonJapan2026-07-20Feiner Bros UNQUALIFIED65Onyama Limba
1027Clifford X GarufiUnited Kingdom2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED25Anna Fali
1028Leon D RulapaughItaly2026-07-04Chanay, Jeffrey A Esq NEGOTIATION43Stephen Shaw
1029Kadeem W FerenczItaly2026-06-28Rousseaux, Michael Esq NEW63Onyama Limba
1030Rodrigues K SlusarskiJapan2026-07-05Feiner Bros UNQUALIFIED4Ivan Magalhaes
1031Julie A OldroydCanada2026-07-14Chemel, James L Cpa QUALIFIED22Stephen Shaw
1032Mayumi H FigeroaUnited Kingdom2026-07-25Buckley Miller Wright QUALIFIED51Stephen Shaw
1033Juan L RoysterSpain2026-07-18Commercial Press PROPOSAL79Bernardo Dominic
1034Wickens N WaycottAustralia2026-07-08Morlong Associates NEGOTIATION82Elwin Sharvill
1035Emily X CaudyFrance2026-07-09Printing Dimensions UNQUALIFIED98Onyama Limba
1036Costa C FlosiRussia2026-06-29Chemel, James L Cpa QUALIFIED43Ivan Magalhaes
1037Deepesh C WhobreyArgentina2026-07-01Rousseaux, Michael Esq NEGOTIATION32Elwin Sharvill
1038Aditya E BowleySpain2026-07-16Benton, John B Jr RENEWAL53Onyama Limba
1039Maria O StockhamGermany2026-07-01Chapman, Ross E Esq RENEWAL29Onyama Limba
1040Darci Q MorascaGermany2026-07-23Buckley Miller Wright QUALIFIED29Ivan Magalhaes
1041Francesco E StensethIndia2026-07-17Feltz Printing Service NEGOTIATION40Xuxue Feng
1042Aika L SlusarskiArgentina2026-07-25Printing Dimensions NEW31Asiya Javayant
1043Stacey M OldroydItaly2026-07-27Commercial Press PROPOSAL76Bernardo Dominic
1044Silvio E RoysterIndia2026-07-27Truhlar And Truhlar Attys NEW18Amy Elsner
1045James K OstroskyUnited Kingdom2026-07-05Morlong Associates UNQUALIFIED8Bernardo Dominic
1046Faith X NestleAustralia2026-07-26Chanay, Jeffrey A Esq QUALIFIED10Bernardo Dominic
1047Misaki N PoquetteCanada2026-07-20Rousseaux, Michael Esq RENEWAL52Ivan Magalhaes
1048Alejandro W InouyeItaly2026-07-15Buckley Miller Wright QUALIFIED86Onyama Limba
1049Claire U RulapaughRussia2026-07-05Dorl, James J Esq PROPOSAL38Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jones R NestleSpainAmy Elsner RENEWAL
Emily C StensethRussiaAnna Fali NEGOTIATION
Silvio I GillianAustraliaStephen Shaw RENEWAL
Greenwood F RutaFranceAmy Elsner RENEWAL
Jennifer P BowleyFranceOnyama Limba NEGOTIATION
Octavia G WhobreyIndiaIvan Magalhaes QUALIFIED
Munro P AmigonAustraliaAsiya Javayant QUALIFIED
Octavia I GarufiFranceAmy Elsner UNQUALIFIED
Kaitlin K SergiUnited KingdomAsiya Javayant PROPOSAL
Johnson O SlusarskiArgentinaAnna Fali QUALIFIED
Jefferson I SergiFranceXuxue Feng RENEWAL
Clifford T WhobreyItalyStephen Shaw UNQUALIFIED
Julie U MaletItalyXuxue Feng NEGOTIATION
Maisha M ButtGermanyAsiya Javayant NEW
Wickens I ButtFranceStephen Shaw RENEWAL
Sinclair T DoeIndiaAmy Elsner NEW
Izzy R SchemmerArgentinaIoni Bowcher PROPOSAL
Julie H NestleArgentinaElwin Sharvill NEGOTIATION
Leja V ChuiItalyIoni Bowcher QUALIFIED
Aika M BowleyBrazilIoni Bowcher UNQUALIFIED
Johnson P ButtUnited KingdomBernardo Dominic PROPOSAL
Costa K ButtCanadaStephen Shaw UNQUALIFIED
Stacey Z WieserAustraliaIoni Bowcher NEGOTIATION
Sinclair A WieserAustraliaAnna Fali NEW
Munro L DoeSpainAmy Elsner QUALIFIED
Wickens G BologniaAustraliaElwin Sharvill PROPOSAL
Deepesh B PerinGermanyAsiya Javayant NEW
Francesco V KolmetzBrazilElwin Sharvill NEGOTIATION
David G CaudyJapanAnna Fali UNQUALIFIED
Salvatore G OldroydItalyAmy Elsner QUALIFIED
Claire O RimItalyXuxue Feng NEGOTIATION
Antonio C KolmetzUnited KingdomAmy Elsner UNQUALIFIED
Mayumi A FollerAustraliaIoni Bowcher QUALIFIED
Deepesh V StensethRussiaElwin Sharvill UNQUALIFIED
Tony R RutaSpainIvan Magalhaes PROPOSAL
James U ButtArgentinaAmy Elsner QUALIFIED
Leon N CaudyArgentinaAmy Elsner PROPOSAL
Jeanfrancois S GillianRussiaBernardo Dominic UNQUALIFIED
Smith U GillianCanadaIoni Bowcher RENEWAL
David L DilliardItalyAmy Elsner NEGOTIATION
Clifford B FlosiFranceAmy Elsner NEGOTIATION
Emily L SlusarskiFranceIvan Magalhaes NEGOTIATION
Ashley Q WieserJapanAsiya Javayant NEGOTIATION
Maisha T SergiCanadaAnna Fali UNQUALIFIED
Aika T StockhamFranceBernardo Dominic PROPOSAL
Ashley L StockhamSpainOnyama Limba NEW
Smith O FlosiAustraliaAnna Fali NEGOTIATION
Ricardo F AlbaresBrazilAnna Fali NEW
Darci O BriddickIndiaIvan Magalhaes NEW
James G MaletArgentinaAnna Fali NEW
Frozen Columns
Name
Francesco F Nestle
Misaki F Flosi
Leon V Vocelka
Johnson K Saylors
Ashley N Nicka
Juan X Stockham
Kaitlin R Malet
Kadeem V Wieser
Rodrigues Z Rulapaugh
Chavez B Nestle
Isabel D Tollner
Kaitlin K Kolmetz
Ashley D Iturbide
Aruna W Schemmer
Johnson F Garufi
Arvin C Butt
Jeanfrancois R Venere
Misaki A Perin
Kadeem O Iturbide
Octavia W Glick
Munro G Butt
Darci J Ruta
Claire I Perin
David V Maclead
Clifford K Butt
Mujtaba A Chui
Kadeem C Bowley
Costa Z Iturbide
Mayumi A Foller
Cody M Royster
Ivar X Dilliard
Deepesh Y Perin
Kaitlin E Waycott
Antonio D Schemmer
Rodrigues Y Malet
Mujtaba C Oldroyd
Sinclair V Bowley
Aditya J Amigon
Maisha G Malet
Ivar B Wieser
Adams Q Glick
Salvatore W Shinko
Deepesh Z Stockham
Clifford U Malet
Chavez H Perin
Jefferson V Iturbide
Jefferson G Dilliard
Adams R Waycott
Smith J Rim
Morrow V Albares
IdCountryDate
1000Germany2026-07-18
1001France2026-07-05
1002Australia2026-07-18
1003France2026-07-20
1004Australia2026-07-08
1005Germany2026-07-02
1006Spain2026-06-28
1007Canada2026-07-05
1008France2026-07-25
1009Italy2026-07-10
1010Japan2026-07-27
1011Spain2026-07-18
1012Italy2026-06-28
1013Brazil2026-07-02
1014Argentina2026-07-04
1015France2026-07-09
1016Japan2026-07-11
1017Argentina2026-07-21
1018Italy2026-07-05
1019United Kingdom2026-07-20
1020Japan2026-07-14
1021Brazil2026-06-28
1022Italy2026-07-11
1023Russia2026-07-27
1024Spain2026-07-20
1025Japan2026-07-13
1026Canada2026-07-19
1027India2026-07-13
1028Argentina2026-07-12
1029France2026-07-23
1030Spain2026-07-16
1031Argentina2026-07-22
1032Russia2026-07-12
1033Italy2026-07-12
1034Australia2026-07-19
1035United Kingdom2026-07-21
1036India2026-07-05
1037India2026-07-03
1038Spain2026-07-23
1039France2026-07-12
1040Spain2026-07-03
1041Argentina2026-07-14
1042Australia2026-07-09
1043Japan2026-07-11
1044Germany2026-07-15
1045France2026-07-06
1046United Kingdom2026-07-07
1047Australia2026-06-30
1048Spain2026-07-09
1049Germany2026-07-19

On-Demand Data

NameIdCountryDate
Murillo L Garufi1000Brazil2026-07-04
Antonio V Chui1001Canada2026-07-17
Clifford J Amigon1002Australia2026-07-15
Chavez N Vocelka1003Italy2026-07-24
Salvatore N Nicka1004Canada2026-07-24
Greenwood C Nicka1005Spain2026-07-10
Greenwood M Rim1006France2026-07-14
Aruna E Gaucho1007Argentina2026-06-30
Ashley Q Figeroa1008Canada2026-07-15
Stacey Y Briddick1009Spain2026-06-28
Darci P Malet1010Canada2026-07-02
Alejandro T Foller1011Brazil2026-07-14
Maria V Venere1012India2026-06-30
Ivar D Tollner1013Russia2026-07-11
Aruna A Nicka1014United Kingdom2026-07-21
Murillo O Waycott1015Brazil2026-07-21
Sinclair P Chui1016Germany2026-07-17
Cody B Shinko1017Japan2026-07-16
Chavez N Ruta1018Argentina2026-07-17
Julie F Ferencz1019United Kingdom2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer Y SergiGermanyIvan Magalhaes RENEWAL
Ivar W KolmetzGermanyBernardo Dominic PROPOSAL
Tony K VocelkaJapanStephen Shaw NEGOTIATION
Aika K PoquetteArgentinaStephen Shaw RENEWAL
David M WhobreyJapanAmy Elsner QUALIFIED
Faith H FlosiCanadaStephen Shaw PROPOSAL
Murillo P RoysterItalyAsiya Javayant PROPOSAL
Wickens O PaprockiCanadaOnyama Limba QUALIFIED
Ivar X RimItalyIoni Bowcher NEGOTIATION
Mayumi M VenereItalyIvan Magalhaes PROPOSAL
Johnson S VenereJapanBernardo Dominic NEGOTIATION
Izzy O FigeroaIndiaBernardo Dominic UNQUALIFIED
Stacey C WieserSpainAnna Fali RENEWAL
Costa T BriddickArgentinaAmy Elsner PROPOSAL
Juan D WaycottAustraliaAsiya Javayant NEW
Deepesh R AmigonBrazilAsiya Javayant UNQUALIFIED
Sinclair N ChuiArgentinaElwin Sharvill QUALIFIED
Salvatore G FollerAustraliaAmy Elsner NEGOTIATION
Morrow D WhobreyAustraliaAnna Fali PROPOSAL
Kadeem R DarakjyFranceAnna Fali NEGOTIATION
Nicolas H RoysterUnited KingdomElwin Sharvill QUALIFIED
David K StensethGermanyAmy Elsner NEGOTIATION
Leon K TollnerCanadaStephen Shaw NEGOTIATION
Costa Z SchemmerUnited KingdomAnna Fali UNQUALIFIED
Johnson Y DarakjyIndiaAmy Elsner RENEWAL
Ricardo F MacleadSpainAnna Fali NEGOTIATION
Mayumi A FigeroaFranceBernardo Dominic NEGOTIATION
Smith I DoeItalyBernardo Dominic PROPOSAL
Emily V WhobreyRussiaAnna Fali PROPOSAL
Arvin Q PaprockiUnited KingdomStephen Shaw PROPOSAL
Aditya T GarufiJapanIoni Bowcher PROPOSAL
Maisha D FlosiGermanyAmy Elsner RENEWAL
Jefferson L ChuiGermanyBernardo Dominic NEGOTIATION
Greenwood H GlickSpainXuxue Feng NEGOTIATION
Izzy W RutaIndiaElwin Sharvill NEGOTIATION
Juan G InouyeRussiaElwin Sharvill RENEWAL
Clifford P RulapaughJapanAmy Elsner RENEWAL
Jennifer R VenereItalyBernardo Dominic QUALIFIED
Darci F FerenczUnited KingdomIoni Bowcher PROPOSAL
Jefferson E SchemmerCanadaElwin Sharvill UNQUALIFIED

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