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
Greenwood J GarufiUnited KingdomIoni Bowcher QUALIFIED
Alejandro M WieserRussiaBernardo Dominic NEW
Kadeem K RulapaughRussiaAnna Fali RENEWAL
Munro L WaycottArgentinaBernardo Dominic RENEWAL
Adams M FlosiJapanOnyama Limba RENEWAL
Costa V RimJapanAsiya Javayant PROPOSAL
Julie U SlusarskiSpainAmy Elsner UNQUALIFIED
Jennifer X KuskoJapanAsiya Javayant NEW
Cody V ButtSpainIvan Magalhaes UNQUALIFIED
Silvio D MaletSpainAnna Fali UNQUALIFIED
Leon I WhobreyJapanAnna Fali NEW
David O FerenczFranceAnna Fali NEGOTIATION
Wickens Z DarakjyJapanAmy Elsner QUALIFIED
Sinclair A MacleadCanadaStephen Shaw NEW
Jennifer U BriddickCanadaStephen Shaw RENEWAL
Morrow N RutaUnited KingdomAmy Elsner UNQUALIFIED
Cody V TollnerJapanStephen Shaw PROPOSAL
Misaki T AlbaresSpainAsiya Javayant RENEWAL
Johnson D NestleRussiaBernardo Dominic RENEWAL
Stacey W MacleadJapanAsiya Javayant PROPOSAL
Wickens F GauchoFranceBernardo Dominic NEGOTIATION
Adams M ShinkoBrazilIvan Magalhaes NEGOTIATION
Juan L FerenczAustraliaStephen Shaw RENEWAL
Adams A GlickItalyBernardo Dominic UNQUALIFIED
Francesco A FlosiCanadaAnna Fali PROPOSAL
Kadeem P SlusarskiUnited KingdomXuxue Feng QUALIFIED
Chavez S PoquetteGermanyElwin Sharvill RENEWAL
Emily S DarakjyUnited KingdomIoni Bowcher UNQUALIFIED
Juan J RoysterRussiaAnna Fali NEGOTIATION
Izzy W IturbideRussiaAnna Fali PROPOSAL
David E ButtGermanyElwin Sharvill NEW
Deepesh Q StockhamJapanAsiya Javayant UNQUALIFIED
Jennifer P OstroskyItalyOnyama Limba UNQUALIFIED
Wickens F MacleadGermanyAnna Fali NEW
Adams T WieserAustraliaIvan Magalhaes NEGOTIATION
Arvin L PoquetteRussiaElwin Sharvill RENEWAL
Clifford V DilliardCanadaStephen Shaw QUALIFIED
Mujtaba X CampainFranceIvan Magalhaes QUALIFIED
Sinclair Y CaudyAustraliaIvan Magalhaes NEW
Francesco V RoysterUnited KingdomBernardo Dominic RENEWAL
Smith M WaycottIndiaIvan Magalhaes RENEWAL
James R KuskoItalyAmy Elsner QUALIFIED
Salvatore M SergiSpainStephen Shaw RENEWAL
Julie X WaycottItalyIvan Magalhaes QUALIFIED
Mayumi H ButtAustraliaIoni Bowcher QUALIFIED
Adams E WaycottIndiaIoni Bowcher PROPOSAL
Maria J KolmetzRussiaBernardo Dominic NEGOTIATION
Jefferson V CaldareraCanadaStephen Shaw NEGOTIATION
Clifford Q RoysterCanadaAsiya Javayant NEW
Smith F RulapaughBrazilAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro H InouyeRussiaAmy Elsner RENEWAL
James N AlbaresBrazilAnna Fali RENEWAL
Leja Q DilliardUnited KingdomXuxue Feng RENEWAL
Alejandro B AlbaresGermanyAmy Elsner NEW
Claire H ChuiIndiaAsiya Javayant QUALIFIED
Ricardo Z MorascaUnited KingdomOnyama Limba NEGOTIATION
Deepesh H SchemmerFranceXuxue Feng NEW
Jeanfrancois K PoquetteUnited KingdomIoni Bowcher QUALIFIED
Jones H WhobreyIndiaAmy Elsner PROPOSAL
Maria V VocelkaIndiaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio S PerinJapan2026-06-24Buckley Miller Wright NEGOTIATION82Xuxue Feng
1001Cody R ButtRussia2026-07-22Chapman, Ross E Esq RENEWAL82Asiya Javayant
1002Smith T StensethRussia2026-06-29Morlong Associates NEW20Xuxue Feng
1003Alejandro A PoquetteItaly2026-07-16Chanay, Jeffrey A Esq UNQUALIFIED54Onyama Limba
1004Ashley L RulapaughJapan2026-06-24Feltz Printing Service QUALIFIED66Xuxue Feng
1005Antonio L BologniaGermany2026-07-10Chanay, Jeffrey A Esq UNQUALIFIED93Anna Fali
1006Maisha W GillianBrazil2026-07-13Morlong Associates NEGOTIATION64Ioni Bowcher
1007Isabel L GarufiUnited Kingdom2026-07-21Rangoni Of Florence RENEWAL42Ivan Magalhaes
1008Cody R CaldareraBrazil2026-07-09Buckley Miller Wright PROPOSAL91Amy Elsner
1009Tony J OstroskySpain2026-07-17Commercial Press NEGOTIATION71Ioni Bowcher
1010Ricardo B MacleadBrazil2026-06-25Buckley Miller Wright RENEWAL9Xuxue Feng
1011Cody U DarakjyRussia2026-07-18Printing Dimensions NEW28Ivan Magalhaes
1012Nicolas A CaudyAustralia2026-07-13Morlong Associates RENEWAL9Stephen Shaw
1013Ricardo N BriddickSpain2026-07-20Chanay, Jeffrey A Esq NEW13Ioni Bowcher
1014Munro P PaprockiGermany2026-07-07Printing Dimensions PROPOSAL68Xuxue Feng
1015Rodrigues P MacleadItaly2026-06-29Benton, John B Jr QUALIFIED32Anna Fali
1016Murillo H RulapaughCanada2026-07-08Benton, John B Jr NEW5Onyama Limba
1017Kadeem J BowleyAustralia2026-07-17Rangoni Of Florence NEGOTIATION81Onyama Limba
1018Salvatore M MarrierGermany2026-07-08Commercial Press UNQUALIFIED30Stephen Shaw
1019Faith Q GlickItaly2026-06-30Morlong Associates UNQUALIFIED37Asiya Javayant
1020Deepesh W ChuiFrance2026-07-04Chapman, Ross E Esq NEW55Stephen Shaw
1021Emily M BowleyAustralia2026-06-24Chemel, James L Cpa QUALIFIED56Onyama Limba
1022Murillo Y RoysterBrazil2026-07-02Printing Dimensions UNQUALIFIED89Xuxue Feng
1023Faith S SlusarskiCanada2026-07-18Feltz Printing Service NEW74Ioni Bowcher
1024David S RutaUnited Kingdom2026-07-06Buckley Miller Wright PROPOSAL32Asiya Javayant
1025Chavez V ChuiIndia2026-06-29Chapman, Ross E Esq UNQUALIFIED92Bernardo Dominic
1026Leja N DilliardRussia2026-07-16Benton, John B Jr UNQUALIFIED77Xuxue Feng
1027Kadeem U AlbaresCanada2026-06-25Dorl, James J Esq NEW18Asiya Javayant
1028Salvatore U CampainFrance2026-07-21Benton, John B Jr NEW64Ivan Magalhaes
1029Sinclair B MaletBrazil2026-06-25Rousseaux, Michael Esq PROPOSAL13Ivan Magalhaes
1030Faith E KuskoItaly2026-07-15Dorl, James J Esq UNQUALIFIED53Bernardo Dominic
1031Octavia M TollnerIndia2026-07-18Chapman, Ross E Esq QUALIFIED75Stephen Shaw
1032Ivar R CaudyGermany2026-07-02Printing Dimensions RENEWAL88Stephen Shaw
1033Smith M IturbideItaly2026-07-06Morlong Associates UNQUALIFIED64Amy Elsner
1034Greenwood O CaudyIndia2026-07-01Truhlar And Truhlar Attys NEW22Elwin Sharvill
1035Ricardo J NestleSpain2026-06-26Commercial Press RENEWAL35Asiya Javayant
1036Aditya G AlbaresSpain2026-06-30Benton, John B Jr NEGOTIATION55Xuxue Feng
1037Jones K BriddickGermany2026-07-12Chanay, Jeffrey A Esq QUALIFIED55Bernardo Dominic
1038Claire V KuskoSpain2026-07-18Dorl, James J Esq PROPOSAL54Anna Fali
1039Alejandro E FlosiBrazil2026-06-27King, Christopher A Esq UNQUALIFIED70Ioni Bowcher
1040Jennifer G NickaCanada2026-06-27Morlong Associates QUALIFIED42Ioni Bowcher
1041Morrow B DilliardItaly2026-06-29Truhlar And Truhlar Attys UNQUALIFIED40Amy Elsner
1042Kaitlin F ButtJapan2026-07-11King, Christopher A Esq UNQUALIFIED87Bernardo Dominic
1043Alejandro X DilliardCanada2026-07-06Chapman, Ross E Esq RENEWAL91Bernardo Dominic
1044Johnson N GarufiAustralia2026-06-24Commercial Press RENEWAL29Amy Elsner
1045Juan E NickaIndia2026-07-15Rangoni Of Florence NEW46Ioni Bowcher
1046Chavez X OldroydGermany2026-07-04King, Christopher A Esq QUALIFIED24Ioni Bowcher
1047Arvin S GarufiBrazil2026-07-14Chanay, Jeffrey A Esq QUALIFIED34Ivan Magalhaes
1048David V DoeJapan2026-07-11Rangoni Of Florence NEW95Xuxue Feng
1049Aika V PerinGermany2026-06-27Chemel, James L Cpa PROPOSAL82Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Claire W MacleadIndiaOnyama Limba NEW
Deepesh Y StockhamSpainAsiya Javayant NEGOTIATION
Adams Y GlickJapanAmy Elsner UNQUALIFIED
Misaki F NestleItalyAsiya Javayant PROPOSAL
Izzy D RutaAustraliaIvan Magalhaes PROPOSAL
Claire A TollnerSpainAsiya Javayant QUALIFIED
Octavia R WhobreyBrazilElwin Sharvill PROPOSAL
Johnson D RimIndiaAnna Fali QUALIFIED
Wickens Y BriddickSpainBernardo Dominic PROPOSAL
Adams G VenereUnited KingdomOnyama Limba PROPOSAL
Leja Q WieserSpainBernardo Dominic QUALIFIED
Misaki D DoeIndiaXuxue Feng PROPOSAL
Aruna X KuskoAustraliaAnna Fali NEW
Leja B KuskoCanadaIvan Magalhaes UNQUALIFIED
Wickens G ButtFranceIvan Magalhaes QUALIFIED
Costa A CampainFranceIvan Magalhaes NEW
Maisha G BriddickCanadaAsiya Javayant UNQUALIFIED
Jeanfrancois T CaudyBrazilXuxue Feng QUALIFIED
Aditya L PoquetteFranceAsiya Javayant RENEWAL
Smith L GlickGermanyElwin Sharvill UNQUALIFIED
Jennifer O FerenczAustraliaOnyama Limba QUALIFIED
James V PoquetteArgentinaElwin Sharvill QUALIFIED
Julie B RimAustraliaAmy Elsner UNQUALIFIED
Maisha E FlosiArgentinaIoni Bowcher NEW
Munro O VocelkaRussiaAmy Elsner NEGOTIATION
Misaki R ChuiGermanyAnna Fali QUALIFIED
Munro O KolmetzBrazilXuxue Feng UNQUALIFIED
Cody I WhobreyGermanyBernardo Dominic RENEWAL
Ivar N MorascaGermanyAsiya Javayant RENEWAL
Mayumi J AmigonIndiaBernardo Dominic RENEWAL
Jennifer W KuskoJapanElwin Sharvill RENEWAL
Costa E CaldareraItalyAsiya Javayant RENEWAL
Emily Q AlbaresAustraliaOnyama Limba QUALIFIED
Stacey H ButtCanadaAmy Elsner UNQUALIFIED
Darci S AmigonUnited KingdomIvan Magalhaes QUALIFIED
Cody P AlbaresFranceStephen Shaw PROPOSAL
Isabel H VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Smith M VocelkaUnited KingdomOnyama Limba NEGOTIATION
Kaitlin S VenereFranceAsiya Javayant NEW
David S ChuiSpainIoni Bowcher NEW
Nicolas K RulapaughFranceXuxue Feng NEW
Aditya B StockhamArgentinaElwin Sharvill UNQUALIFIED
Leon F ShinkoRussiaStephen Shaw NEW
Julie L NickaUnited KingdomXuxue Feng NEGOTIATION
Tony Y FollerItalyAmy Elsner QUALIFIED
Faith T FerenczJapanAnna Fali NEW
Greenwood P MaletFranceIoni Bowcher QUALIFIED
Stacey H StockhamJapanXuxue Feng UNQUALIFIED
Jennifer E OstroskyAustraliaBernardo Dominic RENEWAL
Alejandro D ChuiAustraliaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Wickens V Shinko
Silvio Y Ferencz
Stacey Y Ferencz
Leon P Malet
Arvin T Flosi
Morrow Z Rulapaugh
Deepesh G Royster
Jefferson I Doe
Jennifer F Paprocki
Silvio E Slusarski
Salvatore E Gillian
Rodrigues V Briddick
Izzy R Caldarera
Aruna F Bowley
Octavia N Malet
Antonio U Poquette
Aruna H Bolognia
Alejandro G Morasca
Alejandro X Kolmetz
Jeanfrancois P Rulapaugh
Aditya F Campain
Juan R Amigon
Faith A Saylors
Clifford A Flosi
Jefferson Q Nicka
Salvatore E Maclead
Aika H Gillian
Adams O Morasca
Francesco J Venere
Ricardo R Garufi
David F Schemmer
Wickens A Poquette
Alejandro X Rulapaugh
Claire K Royster
Juan T Chui
Darci O Schemmer
Ashley G Venere
Ivar M Morasca
Faith M Briddick
Antonio E Foller
Johnson D Bowley
Smith G Royster
Silvio E Rim
Faith X Oldroyd
Clifford B Rulapaugh
Stacey N Briddick
Ivar X Ferencz
Julie X Rulapaugh
Costa Z Sergi
Jennifer X Flosi
IdCountryDate
1000France2026-07-21
1001Germany2026-07-06
1002Germany2026-07-05
1003Brazil2026-06-27
1004India2026-07-18
1005Canada2026-07-21
1006Japan2026-07-01
1007United Kingdom2026-06-30
1008United Kingdom2026-06-24
1009Canada2026-07-22
1010Japan2026-06-29
1011Australia2026-07-12
1012Italy2026-07-02
1013France2026-06-29
1014Argentina2026-06-30
1015Australia2026-06-24
1016United Kingdom2026-06-26
1017India2026-06-30
1018Argentina2026-07-12
1019Spain2026-07-01
1020India2026-07-09
1021Italy2026-07-02
1022Japan2026-07-20
1023Germany2026-07-05
1024Australia2026-07-12
1025Russia2026-06-26
1026Australia2026-07-23
1027Japan2026-06-30
1028Russia2026-07-21
1029Canada2026-07-05
1030Italy2026-07-20
1031Italy2026-07-01
1032France2026-07-11
1033Australia2026-06-25
1034Brazil2026-07-16
1035Canada2026-06-28
1036Argentina2026-07-10
1037France2026-07-09
1038Russia2026-07-13
1039Japan2026-07-11
1040France2026-07-04
1041Australia2026-07-01
1042Canada2026-07-17
1043Brazil2026-07-17
1044Italy2026-07-04
1045Italy2026-06-30
1046Canada2026-07-04
1047Australia2026-07-17
1048Russia2026-07-21
1049Spain2026-06-29

On-Demand Data

NameIdCountryDate
Julie Q Paprocki1000United Kingdom2026-07-01
Aditya I Rim1001France2026-07-08
Jefferson J Waycott1002France2026-07-11
Mujtaba U Nicka1003Spain2026-07-20
Murillo Q Amigon1004India2026-07-21
Antonio A Darakjy1005Australia2026-07-02
Arvin V Malet1006Japan2026-07-15
Aruna N Foller1007India2026-07-05
Emily N Butt1008Brazil2026-06-26
Kaitlin B Doe1009Russia2026-07-13
Johnson T Waycott1010Canada2026-07-19
Francesco U Shinko1011Italy2026-07-15
Nicolas X Stockham1012Argentina2026-07-06
Juan T Rulapaugh1013Italy2026-07-01
Isabel X Nicka1014Australia2026-07-17
Greenwood L Ostrosky1015Spain2026-07-20
Cody K Amigon1016Italy2026-07-11
Adams W Poquette1017Brazil2026-06-30
Johnson I Doe1018France2026-07-14
Cody C Ferencz1019Italy2026-07-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie W NickaCanadaElwin Sharvill NEGOTIATION
Aika T MacleadCanadaXuxue Feng QUALIFIED
Maria W OstroskyAustraliaAnna Fali PROPOSAL
Morrow Q WhobreyCanadaIvan Magalhaes UNQUALIFIED
Leja B DoeJapanAnna Fali NEW
Misaki X OldroydCanadaAmy Elsner RENEWAL
Murillo I InouyeArgentinaOnyama Limba QUALIFIED
Juan Y ShinkoFranceIoni Bowcher PROPOSAL
Murillo P IturbideIndiaOnyama Limba PROPOSAL
Alejandro Z GauchoUnited KingdomAmy Elsner NEW
Julie V RulapaughAustraliaOnyama Limba UNQUALIFIED
Aruna Y MacleadRussiaStephen Shaw UNQUALIFIED
Chavez U GillianRussiaStephen Shaw NEGOTIATION
Johnson Y PerinGermanyAmy Elsner UNQUALIFIED
Rodrigues I RimUnited KingdomXuxue Feng UNQUALIFIED
Darci S VenereSpainElwin Sharvill UNQUALIFIED
Mayumi U OstroskyIndiaAsiya Javayant RENEWAL
Ashley J DoeArgentinaAmy Elsner RENEWAL
Aditya N PerinArgentinaXuxue Feng RENEWAL
Ricardo T MaletUnited KingdomIvan Magalhaes NEW
Smith J MaletGermanyAsiya Javayant NEW
Murillo F SlusarskiIndiaOnyama Limba UNQUALIFIED
Julie S FlosiFranceIoni Bowcher RENEWAL
Morrow R ButtBrazilAsiya Javayant RENEWAL
Tony G AmigonGermanyStephen Shaw NEW
Julie Q SchemmerItalyElwin Sharvill NEW
Jones U FlosiIndiaAsiya Javayant RENEWAL
Chavez Z WaycottIndiaIvan Magalhaes QUALIFIED
Munro A KolmetzBrazilOnyama Limba NEW
Tony V MaletRussiaBernardo Dominic NEW
Mayumi J DilliardIndiaXuxue Feng UNQUALIFIED
Kadeem M ButtGermanyXuxue Feng PROPOSAL
Rodrigues G NickaArgentinaOnyama Limba QUALIFIED
Izzy T NestleCanadaIvan Magalhaes QUALIFIED
Chavez B SlusarskiUnited KingdomIvan Magalhaes RENEWAL
Isabel A RoysterGermanyAsiya Javayant PROPOSAL
Leja H ChuiArgentinaAsiya Javayant RENEWAL
Maria B GauchoArgentinaOnyama Limba RENEWAL
Darci Q WaycottItalyAsiya Javayant QUALIFIED
Juan X MarrierRussiaElwin 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>