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
Murillo F MarrierAustraliaAmy Elsner UNQUALIFIED
Aika F GauchoFranceXuxue Feng PROPOSAL
Antonio O IturbideBrazilIoni Bowcher RENEWAL
Octavia C WhobreyArgentinaAsiya Javayant NEW
Francesco A WaycottItalyXuxue Feng NEW
Leja Q GarufiJapanStephen Shaw NEGOTIATION
Aruna I MaletAustraliaIvan Magalhaes RENEWAL
Nicolas M AmigonItalyXuxue Feng NEGOTIATION
Maria T RutaCanadaXuxue Feng UNQUALIFIED
Antonio B OstroskyFranceIvan Magalhaes UNQUALIFIED
Alejandro B FollerUnited KingdomIvan Magalhaes QUALIFIED
Adams I FerenczSpainStephen Shaw PROPOSAL
Ashley A KuskoRussiaIoni Bowcher PROPOSAL
Kadeem X OstroskyBrazilElwin Sharvill NEW
Misaki O PerinJapanOnyama Limba QUALIFIED
Isabel V FollerAustraliaIoni Bowcher RENEWAL
James W IturbideCanadaAmy Elsner PROPOSAL
Sinclair I FlosiJapanXuxue Feng NEW
Wickens L ShinkoItalyIoni Bowcher UNQUALIFIED
Francesco U DoeRussiaStephen Shaw PROPOSAL
Smith K BriddickArgentinaIvan Magalhaes UNQUALIFIED
Silvio B AmigonCanadaXuxue Feng UNQUALIFIED
Wickens F PaprockiArgentinaStephen Shaw NEGOTIATION
Jennifer S RoysterGermanyElwin Sharvill QUALIFIED
James D IturbideArgentinaBernardo Dominic QUALIFIED
Maisha H OldroydGermanyOnyama Limba QUALIFIED
Aruna N GillianFranceBernardo Dominic NEW
Maria E OstroskyIndiaAnna Fali NEW
Aruna G NestleRussiaOnyama Limba UNQUALIFIED
Chavez O WhobreyAustraliaOnyama Limba QUALIFIED
Silvio P IturbideIndiaAsiya Javayant QUALIFIED
Morrow B TollnerItalyOnyama Limba RENEWAL
Arvin J DarakjyItalyOnyama Limba PROPOSAL
Kaitlin H MaletItalyOnyama Limba UNQUALIFIED
Ricardo I GlickCanadaAmy Elsner NEGOTIATION
Antonio N RulapaughFranceAsiya Javayant PROPOSAL
Aruna W BowleyCanadaOnyama Limba UNQUALIFIED
Ricardo P PerinUnited KingdomIvan Magalhaes QUALIFIED
Adams Y StockhamSpainXuxue Feng NEW
Wickens B FollerFranceStephen Shaw RENEWAL
Ashley D SergiAustraliaElwin Sharvill PROPOSAL
Claire O MaletBrazilXuxue Feng NEGOTIATION
Ashley C FlosiSpainIvan Magalhaes QUALIFIED
Costa Y SergiCanadaAmy Elsner RENEWAL
Julie H FigeroaCanadaBernardo Dominic NEW
Juan G GlickFranceOnyama Limba UNQUALIFIED
Francesco A RulapaughFranceAnna Fali NEW
Tony W PerinRussiaAmy Elsner NEW
Ashley N NestleGermanyIoni Bowcher UNQUALIFIED
Isabel V FlosiJapanAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Adams S AlbaresRussiaElwin Sharvill NEGOTIATION
Leon L SergiArgentinaOnyama Limba QUALIFIED
James Z KolmetzGermanyAmy Elsner PROPOSAL
David X WaycottAustraliaBernardo Dominic PROPOSAL
Greenwood X FollerAustraliaElwin Sharvill RENEWAL
Wickens I RulapaughItalyXuxue Feng RENEWAL
James H GlickBrazilBernardo Dominic UNQUALIFIED
Aika R FigeroaJapanStephen Shaw PROPOSAL
Salvatore Y MarrierUnited KingdomAnna Fali QUALIFIED
Nicolas W StockhamSpainAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya S RimJapan2026-07-31Commercial Press UNQUALIFIED83Asiya Javayant
1001Silvio D VenereRussia2026-08-16Rangoni Of Florence RENEWAL49Asiya Javayant
1002Greenwood A FlosiBrazil2026-08-09Rousseaux, Michael Esq NEGOTIATION65Asiya Javayant
1003Misaki O GauchoUnited Kingdom2026-08-04Rousseaux, Michael Esq PROPOSAL92Elwin Sharvill
1004Morrow G DilliardBrazil2026-08-20Benton, John B Jr NEGOTIATION35Anna Fali
1005Izzy T StockhamRussia2026-08-05Buckley Miller Wright NEW34Anna Fali
1006Adams Z CaldareraCanada2026-08-01Feiner Bros NEGOTIATION2Onyama Limba
1007Adams W TollnerFrance2026-08-20Commercial Press NEW67Anna Fali
1008Isabel L CaldareraCanada2026-08-10Commercial Press RENEWAL39Asiya Javayant
1009Kaitlin U ButtItaly2026-08-19Commercial Press RENEWAL26Amy Elsner
1010Ricardo Z BowleyGermany2026-08-19Buckley Miller Wright UNQUALIFIED36Onyama Limba
1011Mujtaba U FollerSpain2026-08-02Buckley Miller Wright QUALIFIED45Anna Fali
1012Misaki U FlosiGermany2026-08-03Feltz Printing Service NEW77Amy Elsner
1013Maria X OstroskyBrazil2026-08-11Commercial Press UNQUALIFIED57Ioni Bowcher
1014Mujtaba T GarufiRussia2026-08-24Chanay, Jeffrey A Esq RENEWAL39Ioni Bowcher
1015Maisha G KuskoIndia2026-08-20Feiner Bros UNQUALIFIED87Onyama Limba
1016Kaitlin I NestleUnited Kingdom2026-08-23Truhlar And Truhlar Attys QUALIFIED53Asiya Javayant
1017Munro R PerinUnited Kingdom2026-08-20Benton, John B Jr NEGOTIATION70Ioni Bowcher
1018Faith P InouyeCanada2026-07-31Benton, John B Jr RENEWAL59Anna Fali
1019Salvatore E NickaJapan2026-08-14Chapman, Ross E Esq RENEWAL12Anna Fali
1020Ivar U FlosiCanada2026-08-11Rangoni Of Florence UNQUALIFIED34Elwin Sharvill
1021Mujtaba C FlosiJapan2026-08-17Commercial Press NEGOTIATION57Amy Elsner
1022Maisha U DoeAustralia2026-08-16Chemel, James L Cpa QUALIFIED47Asiya Javayant
1023Octavia S FlosiRussia2026-08-05Feiner Bros PROPOSAL0Bernardo Dominic
1024Rodrigues E BriddickBrazil2026-08-02Buckley Miller Wright PROPOSAL82Elwin Sharvill
1025Aditya S RimItaly2026-08-21Feiner Bros NEW30Asiya Javayant
1026Aika C AlbaresGermany2026-08-22Chanay, Jeffrey A Esq QUALIFIED66Asiya Javayant
1027Jefferson D IturbideRussia2026-08-03Buckley Miller Wright NEGOTIATION90Asiya Javayant
1028Wickens G CampainItaly2026-08-05Feltz Printing Service NEGOTIATION58Onyama Limba
1029Murillo Y WieserIndia2026-08-02King, Christopher A Esq NEW54Anna Fali
1030Darci F ShinkoArgentina2026-07-30Chemel, James L Cpa QUALIFIED62Elwin Sharvill
1031Jennifer H KolmetzItaly2026-08-21Dorl, James J Esq PROPOSAL56Asiya Javayant
1032Emily Y OstroskyJapan2026-08-14Truhlar And Truhlar Attys PROPOSAL60Amy Elsner
1033Murillo P SlusarskiItaly2026-08-28Morlong Associates NEGOTIATION55Bernardo Dominic
1034Adams B NestleCanada2026-08-24Chemel, James L Cpa PROPOSAL21Onyama Limba
1035Murillo F MarrierItaly2026-08-23King, Christopher A Esq PROPOSAL70Ivan Magalhaes
1036Jones D GarufiIndia2026-08-28Chanay, Jeffrey A Esq UNQUALIFIED97Stephen Shaw
1037Kaitlin M GauchoItaly2026-08-08Chemel, James L Cpa UNQUALIFIED6Ivan Magalhaes
1038Clifford A WieserItaly2026-08-11Rangoni Of Florence NEGOTIATION28Amy Elsner
1039Maria B PoquetteFrance2026-08-06Morlong Associates RENEWAL42Amy Elsner
1040David F BologniaCanada2026-08-03Chemel, James L Cpa RENEWAL43Ioni Bowcher
1041Rodrigues Y AmigonAustralia2026-07-31Commercial Press PROPOSAL36Asiya Javayant
1042Silvio G BriddickIndia2026-08-09Rangoni Of Florence UNQUALIFIED74Xuxue Feng
1043Arvin Z BowleyUnited Kingdom2026-08-10Printing Dimensions PROPOSAL56Anna Fali
1044David B CaldareraItaly2026-08-28Buckley Miller Wright UNQUALIFIED73Stephen Shaw
1045Salvatore J RoysterBrazil2026-08-15Feiner Bros NEGOTIATION68Onyama Limba
1046Leja J RutaIndia2026-08-19Commercial Press UNQUALIFIED47Amy Elsner
1047Cody R SergiIndia2026-08-17Morlong Associates QUALIFIED82Xuxue Feng
1048Clifford K PerinIndia2026-08-23Benton, John B Jr NEGOTIATION56Elwin Sharvill
1049Emily U ButtSpain2026-08-08Truhlar And Truhlar Attys QUALIFIED44Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jefferson T GillianUnited KingdomElwin Sharvill NEW
Jennifer G MarrierJapanIvan Magalhaes UNQUALIFIED
Kadeem R RimSpainElwin Sharvill UNQUALIFIED
Jennifer R SergiSpainBernardo Dominic PROPOSAL
Aditya Z CaudyAustraliaOnyama Limba UNQUALIFIED
Johnson A TollnerBrazilIvan Magalhaes QUALIFIED
Clifford G InouyeGermanyAnna Fali NEW
Ricardo B VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin G KuskoBrazilAmy Elsner UNQUALIFIED
Misaki S TollnerSpainAnna Fali RENEWAL
James C DoeItalyAmy Elsner UNQUALIFIED
Tony I RutaItalyAsiya Javayant QUALIFIED
Maisha Y MaletSpainBernardo Dominic RENEWAL
Izzy U WaycottGermanyAnna Fali PROPOSAL
James Y RulapaughRussiaAnna Fali NEW
Leon Y DilliardFranceStephen Shaw PROPOSAL
Isabel U AmigonIndiaIvan Magalhaes RENEWAL
Jennifer U PoquetteRussiaBernardo Dominic PROPOSAL
Emily H StensethAustraliaAmy Elsner NEW
Sinclair X RoysterAustraliaOnyama Limba QUALIFIED
Nicolas H WieserAustraliaAnna Fali UNQUALIFIED
Leon A PerinUnited KingdomAmy Elsner PROPOSAL
Mayumi B AlbaresGermanyAnna Fali PROPOSAL
Munro Y NickaJapanIvan Magalhaes QUALIFIED
Deepesh P ChuiRussiaXuxue Feng RENEWAL
Greenwood L SaylorsItalyStephen Shaw NEGOTIATION
Deepesh U StockhamBrazilAmy Elsner QUALIFIED
Sinclair P RimJapanAnna Fali UNQUALIFIED
Jeanfrancois X FlosiAustraliaIoni Bowcher UNQUALIFIED
Faith N WhobreyCanadaAsiya Javayant UNQUALIFIED
Leon C BowleyFranceAnna Fali NEGOTIATION
Smith Q GlickSpainAmy Elsner RENEWAL
Wickens G BriddickItalyStephen Shaw PROPOSAL
Rodrigues U GillianAustraliaAnna Fali RENEWAL
Izzy L OstroskySpainAnna Fali NEW
Mayumi J SaylorsUnited KingdomIoni Bowcher QUALIFIED
Emily A OldroydFranceBernardo Dominic QUALIFIED
Aika L SchemmerJapanIvan Magalhaes PROPOSAL
Smith Q WieserRussiaIoni Bowcher PROPOSAL
Leon E ChuiIndiaStephen Shaw PROPOSAL
Julie D DoeItalyAsiya Javayant NEW
Jefferson T SergiFranceOnyama Limba RENEWAL
Kaitlin Q WaycottAustraliaBernardo Dominic NEGOTIATION
Johnson G DilliardUnited KingdomXuxue Feng RENEWAL
Jeanfrancois G MarrierJapanElwin Sharvill UNQUALIFIED
Stacey Z ButtArgentinaAsiya Javayant QUALIFIED
David D CaudyRussiaElwin Sharvill UNQUALIFIED
Morrow Y WaycottSpainXuxue Feng NEW
Maria B MacleadSpainIvan Magalhaes RENEWAL
Arvin S NickaGermanyElwin Sharvill QUALIFIED
Frozen Columns
Name
Arvin W Sergi
Stacey O Dilliard
Deepesh C Perin
Wickens J Waycott
James C Caudy
Aditya K Flosi
Aruna B Darakjy
Johnson V Dilliard
Johnson Q Royster
Sinclair P Doe
Nicolas D Rim
Claire R Dilliard
Ashley O Slusarski
Antonio K Ruta
Wickens R Dilliard
Smith A Venere
Chavez G Malet
Leja F Figeroa
Greenwood E Morasca
Emily V Waycott
Tony I Amigon
Morrow Z Malet
James Z Garufi
Nicolas J Butt
Wickens B Ostrosky
Cody C Bowley
Costa O Amigon
Antonio G Foller
Rodrigues I Amigon
Ivar O Inouye
Leja F Morasca
Costa Y Kolmetz
Clifford W Albares
Murillo U Wieser
Antonio S Whobrey
Munro I Waycott
Ashley O Briddick
Ivar K Dilliard
Clifford Q Campain
David M Oldroyd
Silvio U Oldroyd
Aruna O Waycott
Arvin G Saylors
Ashley U Sergi
Misaki Q Gillian
Aditya B Malet
Isabel D Butt
Leon F Stenseth
Octavia M Doe
Clifford G Shinko
IdCountryDate
1000India2026-08-02
1001Germany2026-08-25
1002Russia2026-08-05
1003United Kingdom2026-08-09
1004Australia2026-08-08
1005France2026-08-21
1006Spain2026-08-21
1007Australia2026-08-12
1008Italy2026-07-31
1009United Kingdom2026-08-27
1010Japan2026-08-22
1011Japan2026-08-15
1012Italy2026-08-09
1013Italy2026-07-30
1014Canada2026-08-22
1015Canada2026-08-22
1016Spain2026-08-20
1017Italy2026-07-30
1018France2026-08-05
1019Russia2026-08-19
1020Argentina2026-08-15
1021Germany2026-08-20
1022Italy2026-08-14
1023Italy2026-08-28
1024Spain2026-08-06
1025Germany2026-08-20
1026India2026-08-22
1027Australia2026-08-11
1028Brazil2026-08-28
1029Russia2026-08-18
1030Australia2026-08-15
1031Australia2026-08-13
1032Argentina2026-07-30
1033Japan2026-08-05
1034Canada2026-08-24
1035France2026-08-18
1036Brazil2026-08-06
1037Brazil2026-08-01
1038United Kingdom2026-08-20
1039Argentina2026-07-31
1040India2026-08-23
1041Spain2026-08-22
1042United Kingdom2026-07-30
1043Japan2026-08-20
1044Brazil2026-08-09
1045Australia2026-08-02
1046Russia2026-08-02
1047Argentina2026-08-19
1048Germany2026-08-20
1049Canada2026-07-31

On-Demand Data

NameIdCountryDate
Leja L Gaucho1000Germany2026-08-03
Cody S Whobrey1001Spain2026-08-12
Misaki R Kolmetz1002Japan2026-08-07
Salvatore U Tollner1003Russia2026-08-13
Antonio G Schemmer1004United Kingdom2026-08-04
Tony M Schemmer1005Japan2026-07-30
Leon B Chui1006Germany2026-08-14
David P Vocelka1007Brazil2026-08-16
Juan O Malet1008Spain2026-08-08
Silvio P Schemmer1009Australia2026-07-31
James P Bolognia1010Brazil2026-08-13
Ricardo U Chui1011Argentina2026-08-07
Kaitlin R Ferencz1012Argentina2026-08-18
Stacey G Gaucho1013Brazil2026-08-07
Ricardo D Bowley1014Russia2026-08-06
Silvio P Gillian1015Japan2026-08-11
Aruna H Perin1016Italy2026-08-04
Kadeem L Foller1017Spain2026-08-14
Morrow V Albares1018Spain2026-08-16
Maria A Figeroa1019United Kingdom2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha X OstroskyBrazilElwin Sharvill NEGOTIATION
David H VocelkaCanadaAsiya Javayant NEW
Kaitlin C FigeroaIndiaIoni Bowcher QUALIFIED
Maisha O MaletRussiaAnna Fali PROPOSAL
Faith E FigeroaJapanOnyama Limba PROPOSAL
Juan W WaycottJapanStephen Shaw UNQUALIFIED
Adams Q OldroydArgentinaAmy Elsner NEGOTIATION
James C AlbaresAustraliaBernardo Dominic NEW
Stacey S CaldareraIndiaAnna Fali NEGOTIATION
Faith C RutaCanadaIvan Magalhaes NEGOTIATION
Johnson K RoysterCanadaXuxue Feng PROPOSAL
Mayumi N MaletAustraliaAmy Elsner UNQUALIFIED
Jeanfrancois V RimCanadaAmy Elsner NEW
Smith M OstroskyCanadaAmy Elsner NEW
Cody C VocelkaArgentinaAmy Elsner PROPOSAL
Aditya P BriddickBrazilAnna Fali NEW
Isabel A StockhamRussiaStephen Shaw RENEWAL
James G FigeroaRussiaAnna Fali PROPOSAL
Isabel O RulapaughIndiaIoni Bowcher PROPOSAL
Jeanfrancois A ShinkoArgentinaElwin Sharvill RENEWAL
Arvin I GarufiIndiaStephen Shaw QUALIFIED
Smith M SlusarskiArgentinaIoni Bowcher UNQUALIFIED
Cody H RimFranceOnyama Limba UNQUALIFIED
Maria T WieserItalyXuxue Feng RENEWAL
Faith R RoysterBrazilIvan Magalhaes PROPOSAL
Jones W RutaCanadaAsiya Javayant PROPOSAL
Cody T BologniaIndiaXuxue Feng NEW
Aruna Q CaudyBrazilAmy Elsner RENEWAL
Antonio C CampainBrazilXuxue Feng UNQUALIFIED
Murillo S OldroydRussiaElwin Sharvill QUALIFIED
Aruna Z WhobreyFranceIoni Bowcher PROPOSAL
Alejandro F FollerIndiaElwin Sharvill RENEWAL
Adams I OldroydAustraliaAsiya Javayant QUALIFIED
David M SaylorsItalyStephen Shaw UNQUALIFIED
David J FerenczSpainAnna Fali PROPOSAL
Isabel F BologniaGermanyStephen Shaw RENEWAL
Francesco E DarakjyBrazilAnna Fali UNQUALIFIED
Morrow M OldroydSpainAnna Fali RENEWAL
Tony B WieserCanadaXuxue Feng RENEWAL
Izzy O FlosiRussiaBernardo Dominic 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>