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
Wickens M KuskoRussiaOnyama Limba QUALIFIED
Chavez O BowleySpainElwin Sharvill QUALIFIED
Stacey J PerinCanadaElwin Sharvill RENEWAL
Ricardo Z GlickIndiaOnyama Limba RENEWAL
Leon L GarufiJapanAnna Fali NEW
Misaki H MacleadUnited KingdomIvan Magalhaes NEGOTIATION
Kadeem F StockhamGermanyIoni Bowcher PROPOSAL
Octavia N TollnerCanadaBernardo Dominic NEW
Darci M PerinJapanElwin Sharvill NEW
Sinclair X KolmetzItalyIoni Bowcher PROPOSAL
Isabel E KolmetzBrazilOnyama Limba NEGOTIATION
Aditya X GauchoSpainBernardo Dominic NEW
Juan V GillianJapanElwin Sharvill PROPOSAL
Maisha X VenereJapanOnyama Limba QUALIFIED
Juan D DilliardJapanIvan Magalhaes RENEWAL
Arvin C ChuiItalyBernardo Dominic PROPOSAL
Tony V MarrierCanadaIoni Bowcher PROPOSAL
Salvatore N StensethIndiaIoni Bowcher NEW
Kaitlin X GillianArgentinaBernardo Dominic QUALIFIED
Misaki T FlosiCanadaOnyama Limba NEGOTIATION
Stacey K RoysterItalyOnyama Limba PROPOSAL
Greenwood H NestleJapanBernardo Dominic PROPOSAL
Faith H NickaRussiaOnyama Limba NEW
Greenwood S MaletJapanAmy Elsner QUALIFIED
Clifford A ShinkoFranceIoni Bowcher PROPOSAL
Ricardo R CaldareraGermanyBernardo Dominic PROPOSAL
Aika P StockhamCanadaIvan Magalhaes PROPOSAL
James K GillianBrazilXuxue Feng PROPOSAL
Kaitlin B RimCanadaIvan Magalhaes NEW
Izzy P GillianArgentinaIvan Magalhaes PROPOSAL
Jeanfrancois S IturbideSpainStephen Shaw NEGOTIATION
Adams M IturbideRussiaIvan Magalhaes QUALIFIED
Maisha M FerenczFranceAsiya Javayant NEW
Stacey O KuskoGermanyIvan Magalhaes RENEWAL
Juan M VocelkaJapanAmy Elsner PROPOSAL
Jones K GarufiArgentinaBernardo Dominic PROPOSAL
Stacey L PoquetteSpainIvan Magalhaes UNQUALIFIED
Jones C KolmetzBrazilIvan Magalhaes PROPOSAL
Chavez O OldroydSpainIoni Bowcher PROPOSAL
Wickens N CaldareraArgentinaAmy Elsner QUALIFIED
Nicolas Z PoquetteBrazilAmy Elsner PROPOSAL
Izzy Q GillianAustraliaAsiya Javayant NEGOTIATION
Aditya N RutaAustraliaIvan Magalhaes UNQUALIFIED
Costa A InouyeSpainAnna Fali NEGOTIATION
Silvio F GarufiRussiaElwin Sharvill NEW
Murillo V DilliardGermanyOnyama Limba QUALIFIED
Maria R IturbideUnited KingdomAsiya Javayant QUALIFIED
Isabel J AmigonSpainAsiya Javayant UNQUALIFIED
Jeanfrancois K SchemmerIndiaAsiya Javayant UNQUALIFIED
Ricardo C InouyeBrazilIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jennifer T CaudyRussiaXuxue Feng UNQUALIFIED
Aditya V MorascaArgentinaAmy Elsner QUALIFIED
Costa Z FerenczCanadaBernardo Dominic PROPOSAL
Salvatore H VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Juan C MaletAustraliaStephen Shaw UNQUALIFIED
Faith C AmigonItalyAsiya Javayant RENEWAL
Jefferson U InouyeArgentinaAsiya Javayant QUALIFIED
Ashley I BologniaJapanIoni Bowcher PROPOSAL
Emily V NestleArgentinaAmy Elsner QUALIFIED
Munro F AlbaresBrazilAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo J TollnerBrazil2026-07-03Morlong Associates UNQUALIFIED36Xuxue Feng
1001Jeanfrancois M CaldareraGermany2026-06-29Dorl, James J Esq RENEWAL84Elwin Sharvill
1002Maria K AlbaresCanada2026-07-09Printing Dimensions NEW45Onyama Limba
1003Isabel U SergiFrance2026-07-18Printing Dimensions NEGOTIATION52Onyama Limba
1004Isabel B BologniaAustralia2026-07-16Benton, John B Jr NEW95Asiya Javayant
1005Kaitlin W MaletItaly2026-07-16Feiner Bros UNQUALIFIED36Stephen Shaw
1006Isabel D SaylorsUnited Kingdom2026-07-21Morlong Associates QUALIFIED58Stephen Shaw
1007Jeanfrancois I GauchoUnited Kingdom2026-07-11Benton, John B Jr QUALIFIED3Anna Fali
1008Darci H BologniaJapan2026-07-27Benton, John B Jr RENEWAL64Ioni Bowcher
1009Adams Z VenereGermany2026-06-29Rangoni Of Florence PROPOSAL37Stephen Shaw
1010Clifford T OldroydBrazil2026-07-25Rousseaux, Michael Esq NEW58Bernardo Dominic
1011Clifford Z VocelkaFrance2026-07-08Chemel, James L Cpa UNQUALIFIED55Ioni Bowcher
1012Darci J InouyeArgentina2026-07-03Chapman, Ross E Esq RENEWAL33Ioni Bowcher
1013Francesco I SlusarskiItaly2026-07-03Morlong Associates QUALIFIED48Onyama Limba
1014Salvatore B IturbideRussia2026-07-18Chapman, Ross E Esq QUALIFIED89Onyama Limba
1015Johnson O PoquetteIndia2026-06-30Feiner Bros PROPOSAL33Anna Fali
1016Maisha K NestleItaly2026-07-15Rangoni Of Florence NEW80Asiya Javayant
1017Emily E SaylorsArgentina2026-06-29Feltz Printing Service RENEWAL34Ivan Magalhaes
1018Costa C WhobreyUnited Kingdom2026-07-16Printing Dimensions PROPOSAL89Xuxue Feng
1019Aditya V SergiIndia2026-07-19Buckley Miller Wright QUALIFIED37Elwin Sharvill
1020Munro Q DarakjyFrance2026-07-09King, Christopher A Esq NEW89Asiya Javayant
1021Jeanfrancois K GauchoJapan2026-07-08Buckley Miller Wright RENEWAL29Elwin Sharvill
1022Munro B WieserRussia2026-07-23Morlong Associates PROPOSAL65Xuxue Feng
1023Aika J FlosiSpain2026-07-14Chemel, James L Cpa NEGOTIATION13Anna Fali
1024Arvin J MaletRussia2026-07-23Benton, John B Jr QUALIFIED33Onyama Limba
1025Leon C BriddickArgentina2026-07-27Chapman, Ross E Esq QUALIFIED0Stephen Shaw
1026Kadeem J GarufiArgentina2026-07-03Chemel, James L Cpa NEW93Asiya Javayant
1027Tony L WhobreyArgentina2026-07-08Feltz Printing Service NEGOTIATION75Stephen Shaw
1028Deepesh N PerinFrance2026-07-25Chanay, Jeffrey A Esq RENEWAL4Amy Elsner
1029Salvatore X WieserUnited Kingdom2026-07-16Rousseaux, Michael Esq QUALIFIED54Asiya Javayant
1030Murillo F FerenczItaly2026-07-27Rousseaux, Michael Esq NEGOTIATION14Anna Fali
1031Deepesh U MarrierCanada2026-07-07Dorl, James J Esq NEGOTIATION11Asiya Javayant
1032Mayumi T ChuiCanada2026-07-21Printing Dimensions UNQUALIFIED38Ioni Bowcher
1033David Y ShinkoCanada2026-07-08Feiner Bros QUALIFIED81Ioni Bowcher
1034Emily U BologniaBrazil2026-07-15Buckley Miller Wright UNQUALIFIED7Xuxue Feng
1035Murillo C FigeroaArgentina2026-07-24Chemel, James L Cpa NEW40Stephen Shaw
1036Claire T GillianIndia2026-07-14Feltz Printing Service RENEWAL53Ivan Magalhaes
1037Jennifer I StockhamJapan2026-07-16Feltz Printing Service UNQUALIFIED19Onyama Limba
1038Wickens I RimJapan2026-07-01Commercial Press NEGOTIATION52Ivan Magalhaes
1039Arvin J BowleyFrance2026-07-15Printing Dimensions NEGOTIATION92Xuxue Feng
1040Jeanfrancois U RoysterFrance2026-07-12Rangoni Of Florence RENEWAL66Amy Elsner
1041James R MorascaIndia2026-06-28Feltz Printing Service UNQUALIFIED13Amy Elsner
1042Adams D WieserArgentina2026-07-22Chapman, Ross E Esq NEGOTIATION74Xuxue Feng
1043Aditya U ShinkoFrance2026-07-10Printing Dimensions QUALIFIED52Anna Fali
1044Aika J KuskoCanada2026-07-08Commercial Press NEGOTIATION46Asiya Javayant
1045Claire K FerenczUnited Kingdom2026-07-07Chanay, Jeffrey A Esq QUALIFIED88Amy Elsner
1046Clifford K WaycottJapan2026-06-28Feltz Printing Service NEW53Anna Fali
1047Jennifer R CaudyCanada2026-07-13Printing Dimensions NEGOTIATION69Anna Fali
1048Mujtaba H VenereSpain2026-07-05Feiner Bros PROPOSAL33Ioni Bowcher
1049Silvio N TollnerSpain2026-07-03Feltz Printing Service UNQUALIFIED12Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Octavia C MarrierArgentinaAsiya Javayant QUALIFIED
Jones V RoysterJapanBernardo Dominic QUALIFIED
Mujtaba X NickaAustraliaStephen Shaw QUALIFIED
Izzy M DarakjyCanadaXuxue Feng UNQUALIFIED
Kaitlin F BologniaGermanyAmy Elsner QUALIFIED
Jeanfrancois M MarrierSpainAnna Fali PROPOSAL
Sinclair F OldroydAustraliaXuxue Feng NEGOTIATION
Rodrigues N NestleArgentinaOnyama Limba QUALIFIED
Kadeem D ButtJapanOnyama Limba QUALIFIED
Cody I ButtItalyAnna Fali UNQUALIFIED
Salvatore W RulapaughItalyIvan Magalhaes PROPOSAL
Aruna J GlickFranceXuxue Feng PROPOSAL
Salvatore M OldroydIndiaAmy Elsner PROPOSAL
Chavez W AmigonItalyBernardo Dominic UNQUALIFIED
Murillo O FigeroaItalyIvan Magalhaes UNQUALIFIED
Francesco A PerinItalyBernardo Dominic QUALIFIED
Maisha J DilliardUnited KingdomStephen Shaw RENEWAL
Julie A NestleJapanBernardo Dominic NEW
Mujtaba S KuskoFranceXuxue Feng NEW
Darci T InouyeCanadaStephen Shaw NEW
Nicolas S RoysterFranceAsiya Javayant NEGOTIATION
Ashley O KolmetzIndiaAnna Fali PROPOSAL
Johnson W GlickUnited KingdomIoni Bowcher UNQUALIFIED
Octavia E OstroskyBrazilOnyama Limba QUALIFIED
Smith Y GlickSpainElwin Sharvill PROPOSAL
Jefferson X RutaFranceIvan Magalhaes RENEWAL
Emily C StockhamBrazilAmy Elsner PROPOSAL
Isabel N MaletBrazilOnyama Limba RENEWAL
Rodrigues J ChuiGermanyAmy Elsner UNQUALIFIED
James D SchemmerAustraliaOnyama Limba PROPOSAL
Jennifer J InouyeSpainAmy Elsner NEGOTIATION
Mayumi C WaycottItalyOnyama Limba RENEWAL
Maisha G AlbaresCanadaStephen Shaw NEW
Rodrigues T ButtCanadaIoni Bowcher NEW
Faith M PoquetteRussiaStephen Shaw QUALIFIED
Jennifer C NestleFranceStephen Shaw QUALIFIED
David E StensethItalyAmy Elsner PROPOSAL
Rodrigues F MarrierArgentinaElwin Sharvill QUALIFIED
Kaitlin A PoquetteArgentinaBernardo Dominic QUALIFIED
Darci L FollerRussiaAsiya Javayant NEW
Murillo Z ButtJapanXuxue Feng UNQUALIFIED
Rodrigues V DarakjyAustraliaAsiya Javayant NEGOTIATION
Misaki M FigeroaRussiaAsiya Javayant UNQUALIFIED
Salvatore M GillianGermanyAnna Fali QUALIFIED
Jones F KuskoIndiaIvan Magalhaes NEW
Jeanfrancois R PoquetteJapanBernardo Dominic NEGOTIATION
Emily G DarakjyArgentinaXuxue Feng NEW
Greenwood D FlosiFranceIvan Magalhaes PROPOSAL
Johnson A DarakjyRussiaBernardo Dominic RENEWAL
Jones Z DoeIndiaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Ashley B Rim
Silvio Z Vocelka
Emily O Butt
Misaki F Glick
Arvin X Foller
Ricardo P Maclead
Chavez V Oldroyd
Maisha T Iturbide
Maisha M Saylors
Emily S Ferencz
Salvatore A Malet
Antonio V Vocelka
Juan S Maclead
Munro C Sergi
Greenwood D Poquette
Silvio H Iturbide
Mujtaba G Inouye
Emily K Maclead
Kaitlin E Darakjy
Ivar P Rulapaugh
Francesco K Perin
Nicolas F Albares
Munro M Bolognia
Izzy R Bolognia
Aditya N Doe
Ivar S Rulapaugh
Misaki Z Bowley
Juan I Whobrey
Misaki D Ruta
Munro X Chui
Aditya E Whobrey
Cody T Glick
Aika Y Amigon
Costa Y Caudy
Jones J Marrier
Leon S Malet
Deepesh H Ferencz
Misaki M Wieser
Leon M Vocelka
Antonio A Darakjy
Aditya H Oldroyd
Octavia N Bowley
Ricardo Z Flosi
Smith O Caudy
Leon B Malet
Munro Z Marrier
Munro E Campain
Maria M Sergi
Isabel Z Iturbide
Izzy Q Kolmetz
IdCountryDate
1000Canada2026-07-24
1001Australia2026-07-01
1002Spain2026-07-05
1003Argentina2026-07-21
1004Brazil2026-07-06
1005Brazil2026-07-15
1006United Kingdom2026-07-05
1007United Kingdom2026-07-27
1008Russia2026-07-02
1009Russia2026-07-01
1010Russia2026-07-11
1011Russia2026-07-12
1012Argentina2026-07-19
1013Russia2026-07-16
1014Russia2026-07-27
1015Brazil2026-07-24
1016France2026-07-10
1017France2026-07-04
1018Australia2026-07-11
1019Russia2026-07-05
1020Australia2026-07-11
1021Argentina2026-07-25
1022Argentina2026-07-14
1023Brazil2026-07-18
1024Brazil2026-07-23
1025India2026-07-19
1026Australia2026-07-14
1027India2026-07-22
1028Australia2026-07-06
1029Italy2026-07-08
1030Argentina2026-07-04
1031Spain2026-07-23
1032Brazil2026-07-12
1033Australia2026-07-16
1034Argentina2026-07-14
1035Spain2026-07-27
1036India2026-06-30
1037Argentina2026-07-08
1038Brazil2026-07-10
1039Brazil2026-07-07
1040Australia2026-07-18
1041France2026-07-04
1042Australia2026-07-20
1043Japan2026-06-30
1044Australia2026-07-23
1045Italy2026-07-01
1046France2026-07-01
1047Italy2026-07-21
1048India2026-07-26
1049France2026-07-14

On-Demand Data

NameIdCountryDate
Aditya S Stenseth1000Australia2026-07-08
Claire J Stenseth1001India2026-07-01
Aditya O Dilliard1002Italy2026-07-05
Aika U Waycott1003Argentina2026-07-13
Smith G Saylors1004Argentina2026-07-01
Claire J Iturbide1005Russia2026-07-09
Cody V Iturbide1006Italy2026-07-01
Octavia D Glick1007Argentina2026-07-14
Salvatore Z Rim1008Russia2026-07-01
Antonio H Stenseth1009Japan2026-06-28
Kaitlin A Inouye1010India2026-07-25
Jefferson L Amigon1011Germany2026-07-07
Murillo V Caudy1012Canada2026-07-04
Silvio N Gaucho1013Japan2026-07-12
James N Waycott1014United Kingdom2026-07-22
Arvin S Shinko1015Argentina2026-07-03
Jefferson R Oldroyd1016Canada2026-07-22
Salvatore A Darakjy1017United Kingdom2026-07-22
Arvin G Whobrey1018India2026-07-01
Jeanfrancois Q Foller1019France2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro O AmigonFranceIvan Magalhaes QUALIFIED
Costa P BowleyGermanyAsiya Javayant PROPOSAL
Antonio M ButtRussiaStephen Shaw RENEWAL
Sinclair C MacleadAustraliaOnyama Limba PROPOSAL
James J InouyeRussiaAsiya Javayant NEW
Mujtaba R BologniaItalyStephen Shaw NEGOTIATION
Smith H OstroskyGermanyXuxue Feng RENEWAL
Julie M IturbideItalyAsiya Javayant NEW
Emily N ChuiJapanStephen Shaw QUALIFIED
Sinclair R PerinIndiaAsiya Javayant NEW
Jones Z IturbideItalyBernardo Dominic RENEWAL
Francesco P ShinkoRussiaAnna Fali NEW
Tony O VocelkaGermanyStephen Shaw NEGOTIATION
Clifford O WhobreyIndiaBernardo Dominic RENEWAL
Munro M ButtSpainIvan Magalhaes NEGOTIATION
Juan L ChuiIndiaIvan Magalhaes UNQUALIFIED
Ivar F BowleyItalyAsiya Javayant PROPOSAL
Greenwood D ShinkoFranceIoni Bowcher RENEWAL
Nicolas T GauchoFranceXuxue Feng NEW
Rodrigues A ShinkoRussiaIoni Bowcher NEGOTIATION
Cody X SaylorsAustraliaBernardo Dominic UNQUALIFIED
Maisha F AmigonIndiaElwin Sharvill QUALIFIED
Deepesh C FigeroaSpainElwin Sharvill RENEWAL
Darci Q ButtArgentinaXuxue Feng RENEWAL
Francesco N WhobreySpainXuxue Feng RENEWAL
Francesco V MaletSpainIoni Bowcher NEW
Leja V WhobreyItalyIoni Bowcher QUALIFIED
Jones N RoysterFranceAsiya Javayant QUALIFIED
Munro H StockhamIndiaXuxue Feng UNQUALIFIED
Juan L IturbideItalyXuxue Feng NEGOTIATION
Julie U RimJapanStephen Shaw UNQUALIFIED
Aika J OstroskyArgentinaAmy Elsner QUALIFIED
Aditya W VocelkaUnited KingdomXuxue Feng NEW
Francesco A DoeBrazilStephen Shaw RENEWAL
Misaki T BriddickRussiaAsiya Javayant NEW
Jefferson G CampainAustraliaStephen Shaw PROPOSAL
Stacey M WieserUnited KingdomAsiya Javayant NEW
Smith P NestleRussiaAnna Fali NEW
James Y WhobreyJapanElwin Sharvill QUALIFIED
Aruna L GauchoUnited KingdomXuxue Feng 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>