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
Mujtaba K RulapaughItalyBernardo Dominic PROPOSAL
Sinclair J RulapaughGermanyIoni Bowcher UNQUALIFIED
James L InouyeUnited KingdomIvan Magalhaes NEW
Kaitlin M GarufiUnited KingdomAnna Fali QUALIFIED
David R VocelkaItalyIoni Bowcher QUALIFIED
Adams M SlusarskiItalyOnyama Limba PROPOSAL
Munro I StensethGermanyAsiya Javayant QUALIFIED
Silvio P WhobreySpainElwin Sharvill NEW
Deepesh L KolmetzIndiaElwin Sharvill PROPOSAL
Smith C StockhamRussiaXuxue Feng RENEWAL
Wickens A RimArgentinaStephen Shaw NEW
Munro C KuskoIndiaAsiya Javayant NEW
Sinclair I MarrierUnited KingdomStephen Shaw PROPOSAL
Aruna K WhobreyCanadaAnna Fali PROPOSAL
Darci L CaldareraBrazilAnna Fali PROPOSAL
Claire D NickaArgentinaAmy Elsner RENEWAL
Arvin R AlbaresSpainIvan Magalhaes QUALIFIED
Jennifer B OstroskyArgentinaStephen Shaw RENEWAL
Aika R GarufiItalyStephen Shaw UNQUALIFIED
Emily W FlosiBrazilStephen Shaw PROPOSAL
Emily F BologniaBrazilStephen Shaw NEGOTIATION
Deepesh G WhobreyIndiaIoni Bowcher NEW
Jennifer Z IturbideGermanyAsiya Javayant NEW
Darci W VenereIndiaIvan Magalhaes UNQUALIFIED
James B BologniaAustraliaStephen Shaw NEGOTIATION
Jennifer H BriddickUnited KingdomElwin Sharvill NEW
Maria H ButtGermanyBernardo Dominic NEW
Adams B AmigonCanadaAsiya Javayant NEW
Jeanfrancois X GarufiCanadaXuxue Feng QUALIFIED
Arvin K BowleyBrazilAsiya Javayant QUALIFIED
Mayumi P FollerUnited KingdomIoni Bowcher QUALIFIED
Murillo I AlbaresIndiaXuxue Feng UNQUALIFIED
Claire R RutaArgentinaStephen Shaw UNQUALIFIED
Faith Z VenereFranceIvan Magalhaes RENEWAL
Octavia A VocelkaBrazilOnyama Limba RENEWAL
Arvin E GillianRussiaAsiya Javayant UNQUALIFIED
Francesco U DoeIndiaAnna Fali RENEWAL
Leja H DarakjyGermanyAnna Fali NEGOTIATION
Chavez J AmigonRussiaAnna Fali NEW
Chavez V CaldareraUnited KingdomAsiya Javayant NEW
Kadeem S CampainArgentinaXuxue Feng NEW
Leon J FlosiArgentinaStephen Shaw PROPOSAL
Kadeem I GillianJapanBernardo Dominic QUALIFIED
Silvio S StensethItalyBernardo Dominic RENEWAL
Jefferson N CampainItalyStephen Shaw NEGOTIATION
Kaitlin R BologniaJapanBernardo Dominic NEW
Maisha U DarakjyRussiaAsiya Javayant NEGOTIATION
Silvio T RulapaughUnited KingdomBernardo Dominic QUALIFIED
Cody E FollerUnited KingdomAmy Elsner UNQUALIFIED
Cody O DoeArgentinaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody P FlosiItalyAnna Fali PROPOSAL
Adams A OstroskyJapanXuxue Feng NEGOTIATION
Izzy T PoquetteCanadaXuxue Feng RENEWAL
Darci B WhobreyJapanAnna Fali UNQUALIFIED
Alejandro D IturbideUnited KingdomAsiya Javayant NEGOTIATION
Isabel U RimBrazilIoni Bowcher RENEWAL
Aruna G WieserJapanXuxue Feng QUALIFIED
Leon F CampainRussiaAmy Elsner UNQUALIFIED
Adams T GarufiIndiaAnna Fali NEGOTIATION
Aditya A DilliardCanadaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria F DoeArgentina2026-07-16Morlong Associates UNQUALIFIED73Elwin Sharvill
1001Silvio I PoquetteBrazil2026-07-18Dorl, James J Esq UNQUALIFIED31Anna Fali
1002Octavia D NestleAustralia2026-07-16Feiner Bros PROPOSAL13Onyama Limba
1003Francesco P ChuiItaly2026-07-27King, Christopher A Esq QUALIFIED58Asiya Javayant
1004Jones I IturbideJapan2026-07-19Chemel, James L Cpa RENEWAL51Stephen Shaw
1005Arvin S SchemmerUnited Kingdom2026-08-08Rangoni Of Florence RENEWAL70Onyama Limba
1006Isabel U CaudyCanada2026-08-05Benton, John B Jr NEW92Ioni Bowcher
1007David N GlickSpain2026-07-12Chapman, Ross E Esq PROPOSAL13Onyama Limba
1008Izzy A OldroydUnited Kingdom2026-07-14Truhlar And Truhlar Attys NEW4Onyama Limba
1009Leon T ChuiItaly2026-07-10Feltz Printing Service UNQUALIFIED42Bernardo Dominic
1010Francesco B SaylorsFrance2026-07-14Truhlar And Truhlar Attys QUALIFIED7Asiya Javayant
1011Silvio M SaylorsJapan2026-07-20Feltz Printing Service RENEWAL24Stephen Shaw
1012Ivar D ChuiBrazil2026-07-22Rangoni Of Florence PROPOSAL96Stephen Shaw
1013Johnson F GarufiIndia2026-07-31Commercial Press UNQUALIFIED1Ivan Magalhaes
1014Julie Y WieserBrazil2026-07-17Morlong Associates NEGOTIATION25Anna Fali
1015David P StockhamSpain2026-07-27Dorl, James J Esq NEGOTIATION75Asiya Javayant
1016Wickens G DarakjySpain2026-08-02Chanay, Jeffrey A Esq UNQUALIFIED22Onyama Limba
1017Greenwood Z SlusarskiAustralia2026-07-21Truhlar And Truhlar Attys QUALIFIED28Stephen Shaw
1018Jones I VenereJapan2026-08-01Truhlar And Truhlar Attys PROPOSAL42Ivan Magalhaes
1019Nicolas C BowleyArgentina2026-07-18Morlong Associates NEW35Onyama Limba
1020Cody M NestleAustralia2026-08-01Feiner Bros QUALIFIED70Ioni Bowcher
1021Maria L SergiSpain2026-07-24Buckley Miller Wright UNQUALIFIED55Xuxue Feng
1022Leja R OldroydRussia2026-07-26Chapman, Ross E Esq NEW60Stephen Shaw
1023Cody X RoysterAustralia2026-07-16Buckley Miller Wright NEW1Anna Fali
1024Francesco M AlbaresGermany2026-07-17Chapman, Ross E Esq UNQUALIFIED78Ioni Bowcher
1025Izzy A ChuiBrazil2026-07-30Rangoni Of Florence NEW17Asiya Javayant
1026Darci J RoysterSpain2026-08-03Rousseaux, Michael Esq QUALIFIED55Ioni Bowcher
1027Isabel Y SchemmerFrance2026-07-23Feiner Bros PROPOSAL46Asiya Javayant
1028Greenwood A CampainJapan2026-08-06King, Christopher A Esq NEGOTIATION23Elwin Sharvill
1029Clifford Y RutaCanada2026-08-01Chapman, Ross E Esq PROPOSAL39Stephen Shaw
1030Arvin K MaletItaly2026-07-18Benton, John B Jr NEW66Elwin Sharvill
1031Sinclair V FlosiArgentina2026-07-11King, Christopher A Esq RENEWAL26Stephen Shaw
1032Claire W FerenczBrazil2026-08-03Morlong Associates PROPOSAL64Bernardo Dominic
1033Darci Q FlosiGermany2026-07-17Dorl, James J Esq RENEWAL9Elwin Sharvill
1034Ivar H MaletIndia2026-07-23King, Christopher A Esq QUALIFIED97Amy Elsner
1035Tony G GlickRussia2026-07-21Rangoni Of Florence UNQUALIFIED9Anna Fali
1036Nicolas J OstroskyRussia2026-07-28Feltz Printing Service QUALIFIED15Ioni Bowcher
1037Misaki Z SlusarskiGermany2026-07-23Feltz Printing Service PROPOSAL58Elwin Sharvill
1038Jeanfrancois D DoeUnited Kingdom2026-07-21Buckley Miller Wright PROPOSAL2Asiya Javayant
1039Antonio Y DarakjyItaly2026-07-10Chapman, Ross E Esq RENEWAL12Anna Fali
1040Greenwood N GlickUnited Kingdom2026-08-07Chemel, James L Cpa UNQUALIFIED26Ivan Magalhaes
1041Salvatore H SlusarskiRussia2026-07-11Dorl, James J Esq NEW50Elwin Sharvill
1042Tony N GarufiCanada2026-07-23Dorl, James J Esq NEGOTIATION50Onyama Limba
1043Rodrigues P KuskoIndia2026-07-13Feiner Bros RENEWAL52Anna Fali
1044Costa G FigeroaIndia2026-07-29Truhlar And Truhlar Attys PROPOSAL17Stephen Shaw
1045Emily J DarakjyFrance2026-07-10King, Christopher A Esq PROPOSAL33Anna Fali
1046Jeanfrancois O CaldareraAustralia2026-08-05Rangoni Of Florence QUALIFIED55Onyama Limba
1047Arvin X TollnerAustralia2026-08-06Dorl, James J Esq NEW6Ivan Magalhaes
1048Leja I FigeroaArgentina2026-08-07Feltz Printing Service NEGOTIATION83Bernardo Dominic
1049Sinclair Y FlosiAustralia2026-08-01Chanay, Jeffrey A Esq PROPOSAL3Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Julie C SlusarskiItalyIoni Bowcher NEGOTIATION
Kadeem I WhobreySpainAnna Fali NEGOTIATION
Jefferson O KuskoArgentinaStephen Shaw NEW
Aruna A AmigonRussiaAsiya Javayant NEGOTIATION
Jennifer I MaletCanadaStephen Shaw RENEWAL
Izzy I WieserGermanyAsiya Javayant UNQUALIFIED
Wickens G RimSpainBernardo Dominic NEW
Silvio Z VocelkaGermanyAnna Fali NEGOTIATION
Julie M IturbideItalyXuxue Feng NEGOTIATION
Izzy L FerenczFranceAmy Elsner QUALIFIED
Jennifer L WhobreyUnited KingdomStephen Shaw UNQUALIFIED
David Q FlosiRussiaAmy Elsner PROPOSAL
Smith Z NickaFranceBernardo Dominic RENEWAL
Jeanfrancois I CaldareraSpainIoni Bowcher NEGOTIATION
Izzy F ShinkoArgentinaIvan Magalhaes RENEWAL
Faith A FigeroaSpainAmy Elsner NEW
Munro S SlusarskiItalyXuxue Feng PROPOSAL
Darci T NestleFranceXuxue Feng NEGOTIATION
Stacey V StensethJapanStephen Shaw NEGOTIATION
Greenwood H AlbaresAustraliaAsiya Javayant NEW
Nicolas S ShinkoArgentinaElwin Sharvill QUALIFIED
Juan H MaletCanadaElwin Sharvill NEW
Jefferson S BriddickJapanAsiya Javayant QUALIFIED
Mujtaba N SchemmerItalyStephen Shaw NEW
Ashley D MacleadGermanyXuxue Feng QUALIFIED
Alejandro N ChuiAustraliaAsiya Javayant QUALIFIED
Jones N OstroskyIndiaIvan Magalhaes QUALIFIED
Adams E DilliardIndiaIvan Magalhaes QUALIFIED
Johnson T ChuiSpainStephen Shaw NEGOTIATION
Cody G WhobreyUnited KingdomXuxue Feng NEGOTIATION
Maisha U MarrierArgentinaElwin Sharvill NEGOTIATION
Morrow R AlbaresGermanyStephen Shaw NEW
Nicolas K RoysterUnited KingdomIvan Magalhaes UNQUALIFIED
Emily E MorascaSpainStephen Shaw NEW
Jeanfrancois I DarakjyItalyElwin Sharvill UNQUALIFIED
Silvio N FollerAustraliaAmy Elsner NEGOTIATION
Misaki O BologniaRussiaAmy Elsner NEW
David O OldroydIndiaAmy Elsner RENEWAL
Munro M ButtUnited KingdomBernardo Dominic RENEWAL
Kadeem X InouyeAustraliaAsiya Javayant NEGOTIATION
Greenwood Q CampainAustraliaIoni Bowcher PROPOSAL
Deepesh U SlusarskiSpainAsiya Javayant NEW
Deepesh Y GarufiRussiaBernardo Dominic PROPOSAL
Chavez Y GarufiItalyIoni Bowcher QUALIFIED
Jones Q IturbideRussiaIvan Magalhaes NEW
Leon C StockhamFranceAnna Fali NEGOTIATION
Sinclair K ButtIndiaIvan Magalhaes NEGOTIATION
Rodrigues U GlickIndiaAsiya Javayant UNQUALIFIED
Jones Q BriddickGermanyBernardo Dominic NEGOTIATION
Aditya I FerenczSpainIoni Bowcher RENEWAL
Frozen Columns
Name
Jefferson M Caldarera
Ricardo K Schemmer
Faith Q Glick
Murillo O Gaucho
Juan A Caudy
Juan K Stenseth
Nicolas H Rim
Greenwood Y Nicka
Leon U Kolmetz
James W Schemmer
Greenwood I Ferencz
Maisha A Waycott
Darci M Schemmer
Aika Q Garufi
Kaitlin N Chui
Maria A Figeroa
Rodrigues B Amigon
Emily D Nestle
Clifford K Malet
James D Malet
Octavia L Nicka
Jennifer A Bowley
Munro P Caldarera
David F Gaucho
Morrow X Saylors
Mayumi D Campain
Cody R Iturbide
Jefferson U Kusko
Costa J Slusarski
Juan Z Bowley
Nicolas R Butt
Juan Z Amigon
Darci T Stenseth
Claire Q Gaucho
Arvin I Kusko
Faith U Malet
Kaitlin T Dilliard
Faith N Venere
Munro S Perin
Ricardo A Caldarera
Tony H Tollner
Arvin L Doe
Salvatore M Rim
Jones M Tollner
Leja V Kusko
Juan Y Glick
Misaki P Bowley
Rodrigues R Bolognia
Smith U Glick
Jefferson G Waycott
IdCountryDate
1000France2026-07-28
1001Brazil2026-07-10
1002Germany2026-07-30
1003Japan2026-08-02
1004India2026-07-12
1005Italy2026-07-23
1006Australia2026-08-07
1007Russia2026-08-03
1008Russia2026-07-31
1009Spain2026-07-19
1010Spain2026-08-04
1011Brazil2026-07-29
1012France2026-08-03
1013Argentina2026-07-22
1014Spain2026-07-24
1015France2026-08-08
1016Italy2026-07-29
1017Italy2026-07-21
1018France2026-07-21
1019Russia2026-07-30
1020France2026-07-28
1021Argentina2026-07-30
1022Japan2026-07-30
1023United Kingdom2026-07-28
1024Spain2026-07-21
1025Spain2026-07-18
1026Canada2026-07-13
1027France2026-08-05
1028Spain2026-08-04
1029France2026-07-11
1030Spain2026-07-10
1031Australia2026-07-15
1032United Kingdom2026-07-14
1033Brazil2026-08-05
1034Russia2026-08-03
1035Russia2026-07-31
1036Japan2026-08-03
1037Spain2026-07-27
1038Canada2026-07-21
1039Japan2026-07-26
1040Spain2026-07-21
1041Brazil2026-08-06
1042France2026-07-17
1043Russia2026-07-30
1044Argentina2026-08-06
1045Italy2026-07-29
1046United Kingdom2026-07-10
1047Russia2026-07-30
1048Spain2026-07-15
1049Germany2026-07-13

On-Demand Data

NameIdCountryDate
Ivar N Bolognia1000Japan2026-08-04
Izzy V Schemmer1001Australia2026-08-03
Francesco X Dilliard1002Germany2026-07-17
Murillo G Wieser1003Canada2026-08-04
Kadeem T Tollner1004Japan2026-07-15
Arvin Y Vocelka1005India2026-08-06
Johnson O Poquette1006Italy2026-07-13
Alejandro C Flosi1007France2026-08-08
Sinclair A Nestle1008United Kingdom2026-08-02
Jeanfrancois E Waycott1009Spain2026-07-30
Arvin U Paprocki1010France2026-07-30
Jennifer F Saylors1011United Kingdom2026-07-17
Leon F Nestle1012Brazil2026-07-29
Arvin B Kusko1013Canada2026-07-13
Juan D Royster1014Brazil2026-07-30
Aruna J Doe1015Russia2026-07-11
Aruna L Ruta1016Germany2026-08-08
Aditya K Morasca1017Argentina2026-07-17
Emily A Glick1018Italy2026-07-29
Aruna W Wieser1019Russia2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika B CampainIndiaAnna Fali NEGOTIATION
Mujtaba C BowleyBrazilXuxue Feng NEGOTIATION
Claire L KuskoArgentinaAnna Fali RENEWAL
Leon L StensethFranceXuxue Feng NEGOTIATION
Smith C GillianArgentinaIvan Magalhaes QUALIFIED
Ashley Y CampainCanadaElwin Sharvill QUALIFIED
Isabel K WieserArgentinaOnyama Limba QUALIFIED
Mayumi C KolmetzCanadaElwin Sharvill RENEWAL
Deepesh S WieserGermanyAmy Elsner NEGOTIATION
Ricardo T CaldareraGermanyAnna Fali PROPOSAL
Alejandro K SchemmerJapanAsiya Javayant NEW
Antonio M KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Stacey X DilliardAustraliaBernardo Dominic UNQUALIFIED
Silvio D SchemmerIndiaStephen Shaw QUALIFIED
Clifford R GauchoAustraliaIoni Bowcher UNQUALIFIED
Stacey E FollerFranceIvan Magalhaes RENEWAL
Leja P WaycottUnited KingdomStephen Shaw NEGOTIATION
Misaki H CaudyJapanAsiya Javayant NEW
Leja R PerinIndiaBernardo Dominic NEGOTIATION
David A AlbaresFranceIvan Magalhaes NEW
Rodrigues M FigeroaItalyIoni Bowcher NEGOTIATION
Deepesh C SaylorsIndiaElwin Sharvill RENEWAL
Salvatore S TollnerAustraliaBernardo Dominic NEGOTIATION
Francesco S StensethCanadaElwin Sharvill UNQUALIFIED
Jennifer I RutaUnited KingdomStephen Shaw RENEWAL
Cody M CampainJapanAnna Fali RENEWAL
Emily W MarrierUnited KingdomAmy Elsner QUALIFIED
Smith X BowleyItalyBernardo Dominic NEW
David S ShinkoItalyElwin Sharvill NEGOTIATION
Julie S SchemmerSpainIoni Bowcher UNQUALIFIED
Ivar Y RutaJapanBernardo Dominic PROPOSAL
Nicolas F StensethGermanyStephen Shaw QUALIFIED
Alejandro M WieserAustraliaElwin Sharvill RENEWAL
Murillo V PaprockiArgentinaStephen Shaw RENEWAL
Johnson U WhobreyItalyOnyama Limba NEGOTIATION
Francesco B PerinUnited KingdomBernardo Dominic RENEWAL
Munro L DoeIndiaAmy Elsner QUALIFIED
Cody Q TollnerCanadaXuxue Feng PROPOSAL
Costa C RulapaughCanadaAnna Fali RENEWAL
Silvio D GillianJapanAmy Elsner 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>