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
Cody Y GillianCanadaAnna Fali UNQUALIFIED
Alejandro S BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy P FerenczJapanAnna Fali NEGOTIATION
Salvatore Z DoeGermanyIoni Bowcher PROPOSAL
Mujtaba U RulapaughJapanIoni Bowcher PROPOSAL
Ricardo J InouyeFranceAmy Elsner NEW
Octavia H MaletItalyAmy Elsner RENEWAL
Nicolas K WhobreyCanadaElwin Sharvill NEGOTIATION
Ivar Z RulapaughUnited KingdomElwin Sharvill NEW
Rodrigues O RulapaughItalyAnna Fali QUALIFIED
Mujtaba Y CaldareraUnited KingdomAnna Fali NEW
Julie O RutaItalyElwin Sharvill RENEWAL
Johnson T BologniaSpainBernardo Dominic UNQUALIFIED
Jennifer L DoeBrazilXuxue Feng RENEWAL
Smith I DoeItalyStephen Shaw NEW
Ivar Y NickaIndiaAsiya Javayant NEGOTIATION
Emily V BologniaItalyAsiya Javayant UNQUALIFIED
Izzy F VenereUnited KingdomStephen Shaw RENEWAL
Francesco V WaycottUnited KingdomAmy Elsner RENEWAL
Aika Y NickaAustraliaBernardo Dominic NEGOTIATION
Leja S ShinkoRussiaBernardo Dominic PROPOSAL
Maria F AmigonAustraliaAnna Fali UNQUALIFIED
Francesco K MaletIndiaOnyama Limba PROPOSAL
Costa Y RulapaughArgentinaIvan Magalhaes QUALIFIED
Darci F SlusarskiGermanyIoni Bowcher UNQUALIFIED
Clifford O SchemmerUnited KingdomAnna Fali UNQUALIFIED
Murillo D GauchoJapanIoni Bowcher UNQUALIFIED
Ashley A VenereSpainIoni Bowcher QUALIFIED
Claire N PaprockiBrazilXuxue Feng QUALIFIED
Tony X OstroskyIndiaXuxue Feng NEW
Izzy I GillianGermanyOnyama Limba RENEWAL
Julie C MaletCanadaAmy Elsner PROPOSAL
Jennifer K BologniaJapanIvan Magalhaes QUALIFIED
Mujtaba X FlosiFranceIvan Magalhaes NEW
Juan T PaprockiRussiaAsiya Javayant RENEWAL
Silvio S StensethJapanBernardo Dominic NEW
Greenwood I StockhamArgentinaIoni Bowcher NEW
Leon S WaycottArgentinaAmy Elsner RENEWAL
Munro J NestleIndiaBernardo Dominic PROPOSAL
Johnson H NestleRussiaAnna Fali UNQUALIFIED
Antonio I WieserSpainAsiya Javayant NEGOTIATION
Aika P GillianCanadaBernardo Dominic RENEWAL
Smith Z NickaGermanyBernardo Dominic NEW
Isabel O SaylorsRussiaXuxue Feng RENEWAL
Jeanfrancois T KuskoArgentinaBernardo Dominic PROPOSAL
Octavia H ChuiSpainXuxue Feng QUALIFIED
Claire L AlbaresJapanAsiya Javayant UNQUALIFIED
Aditya X WieserJapanElwin Sharvill RENEWAL
Jeanfrancois Z GarufiFranceIoni Bowcher RENEWAL
Chavez T StockhamIndiaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Julie X StockhamIndiaAsiya Javayant NEGOTIATION
Arvin Z MaletItalyXuxue Feng NEW
Jefferson B IturbideRussiaElwin Sharvill PROPOSAL
Jennifer R FlosiArgentinaAsiya Javayant QUALIFIED
Stacey Q RulapaughGermanyElwin Sharvill NEGOTIATION
Jones V ChuiCanadaStephen Shaw RENEWAL
Jones W BologniaBrazilElwin Sharvill PROPOSAL
Aika X MarrierArgentinaAsiya Javayant RENEWAL
Rodrigues S ChuiIndiaOnyama Limba RENEWAL
Maisha R MorascaArgentinaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco K OldroydCanada2026-07-20Rangoni Of Florence PROPOSAL63Asiya Javayant
1001Rodrigues Y SaylorsAustralia2026-08-08King, Christopher A Esq NEW7Xuxue Feng
1002Greenwood K DarakjyArgentina2026-08-05Feiner Bros UNQUALIFIED69Asiya Javayant
1003Isabel I FigeroaRussia2026-07-14Chemel, James L Cpa PROPOSAL45Xuxue Feng
1004Faith G PaprockiRussia2026-07-14Feiner Bros QUALIFIED95Asiya Javayant
1005Jones D KolmetzGermany2026-07-12Chemel, James L Cpa QUALIFIED70Amy Elsner
1006Kaitlin H SlusarskiRussia2026-07-17Buckley Miller Wright RENEWAL13Elwin Sharvill
1007Greenwood Z InouyeFrance2026-07-25Feltz Printing Service UNQUALIFIED67Ivan Magalhaes
1008Aika G GlickSpain2026-07-30Feiner Bros QUALIFIED41Ioni Bowcher
1009Sinclair D MorascaSpain2026-07-22King, Christopher A Esq RENEWAL56Amy Elsner
1010Claire O IturbideCanada2026-07-19Printing Dimensions NEGOTIATION54Ioni Bowcher
1011Octavia V MorascaJapan2026-07-15Chemel, James L Cpa QUALIFIED6Asiya Javayant
1012Faith H BologniaRussia2026-07-27Commercial Press NEW80Elwin Sharvill
1013Nicolas G OldroydSpain2026-08-02Benton, John B Jr NEW33Anna Fali
1014Chavez T NickaItaly2026-08-09Buckley Miller Wright UNQUALIFIED19Elwin Sharvill
1015Arvin F KolmetzIndia2026-07-24Benton, John B Jr PROPOSAL78Elwin Sharvill
1016Maisha E AmigonAustralia2026-07-15Buckley Miller Wright RENEWAL21Anna Fali
1017Cody I CaudyItaly2026-07-13Morlong Associates RENEWAL80Asiya Javayant
1018Isabel Z RimItaly2026-08-08Commercial Press PROPOSAL97Asiya Javayant
1019Francesco M VocelkaFrance2026-08-09Rousseaux, Michael Esq NEW9Elwin Sharvill
1020Maisha E ChuiFrance2026-08-01Buckley Miller Wright QUALIFIED96Amy Elsner
1021James Z KuskoBrazil2026-07-20Commercial Press PROPOSAL33Amy Elsner
1022Darci T MorascaArgentina2026-07-22Truhlar And Truhlar Attys QUALIFIED55Ivan Magalhaes
1023Darci M MarrierIndia2026-07-29Truhlar And Truhlar Attys NEGOTIATION8Ivan Magalhaes
1024Faith K MorascaArgentina2026-07-21Feiner Bros RENEWAL39Asiya Javayant
1025Rodrigues U GillianRussia2026-08-08Morlong Associates RENEWAL80Elwin Sharvill
1026Jones S PerinUnited Kingdom2026-07-31Dorl, James J Esq PROPOSAL28Xuxue Feng
1027Munro J GillianUnited Kingdom2026-07-13Commercial Press NEGOTIATION8Anna Fali
1028Julie V StockhamIndia2026-07-22Printing Dimensions PROPOSAL47Onyama Limba
1029Aditya Z AlbaresItaly2026-07-25Rangoni Of Florence RENEWAL43Asiya Javayant
1030Misaki A MaletAustralia2026-07-19Feiner Bros RENEWAL96Amy Elsner
1031Izzy M RimSpain2026-07-28Buckley Miller Wright NEGOTIATION43Elwin Sharvill
1032Murillo F RimItaly2026-07-17Feiner Bros UNQUALIFIED72Ivan Magalhaes
1033Adams F FlosiAustralia2026-07-27Feiner Bros NEW14Asiya Javayant
1034Greenwood G GauchoIndia2026-08-03Chapman, Ross E Esq UNQUALIFIED11Anna Fali
1035Maisha L FollerItaly2026-07-25King, Christopher A Esq NEW18Onyama Limba
1036Leja Q VocelkaSpain2026-07-14Rangoni Of Florence UNQUALIFIED99Ivan Magalhaes
1037Morrow J MaletGermany2026-08-06Truhlar And Truhlar Attys NEW85Amy Elsner
1038Jones Z WaycottUnited Kingdom2026-07-21Chanay, Jeffrey A Esq UNQUALIFIED41Amy Elsner
1039Munro O RutaIndia2026-08-09Rangoni Of Florence UNQUALIFIED63Elwin Sharvill
1040Stacey Y BriddickSpain2026-07-23Printing Dimensions NEW77Asiya Javayant
1041Greenwood G SergiCanada2026-08-01Commercial Press RENEWAL17Ioni Bowcher
1042Greenwood R WaycottGermany2026-07-30Rangoni Of Florence PROPOSAL73Asiya Javayant
1043Ricardo E MorascaItaly2026-07-12Feltz Printing Service PROPOSAL96Ivan Magalhaes
1044Johnson E WaycottGermany2026-07-13Morlong Associates NEGOTIATION11Bernardo Dominic
1045James V OstroskyBrazil2026-08-04Chapman, Ross E Esq NEW8Stephen Shaw
1046Aruna L ButtGermany2026-07-20Rangoni Of Florence UNQUALIFIED18Onyama Limba
1047Adams U RulapaughGermany2026-07-16King, Christopher A Esq UNQUALIFIED52Xuxue Feng
1048Kadeem F RutaJapan2026-07-12Chemel, James L Cpa PROPOSAL22Ivan Magalhaes
1049Isabel K StensethJapan2026-08-03Rangoni Of Florence UNQUALIFIED82Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jones X NickaBrazilAnna Fali NEGOTIATION
Clifford P PoquetteRussiaXuxue Feng QUALIFIED
Wickens T ShinkoAustraliaElwin Sharvill NEGOTIATION
Kadeem M CaudyIndiaIvan Magalhaes NEW
Izzy B CampainArgentinaOnyama Limba UNQUALIFIED
Mujtaba R RimItalyStephen Shaw NEGOTIATION
Leja A PaprockiIndiaOnyama Limba NEGOTIATION
Emily B PerinAustraliaIoni Bowcher UNQUALIFIED
Munro K MorascaItalyElwin Sharvill NEW
Antonio A ChuiJapanXuxue Feng NEGOTIATION
Wickens Y KuskoJapanBernardo Dominic PROPOSAL
Nicolas S GlickAustraliaIvan Magalhaes UNQUALIFIED
Silvio T ChuiGermanyStephen Shaw NEW
James Q NickaCanadaOnyama Limba PROPOSAL
Leon H CampainAustraliaStephen Shaw NEGOTIATION
Deepesh U SchemmerRussiaAsiya Javayant NEW
Ivar P SergiBrazilXuxue Feng QUALIFIED
Mujtaba N DilliardGermanyAmy Elsner NEW
Chavez V GauchoItalyAsiya Javayant QUALIFIED
Salvatore T CaldareraJapanAmy Elsner NEW
David O FlosiGermanyStephen Shaw RENEWAL
Leon T OldroydRussiaIoni Bowcher PROPOSAL
Francesco E PerinFranceOnyama Limba QUALIFIED
Octavia Y FollerUnited KingdomXuxue Feng NEW
Julie S OstroskyIndiaAmy Elsner QUALIFIED
James Q RutaRussiaAsiya Javayant UNQUALIFIED
Juan J MorascaBrazilXuxue Feng QUALIFIED
Ashley X ShinkoSpainIvan Magalhaes PROPOSAL
Costa G DarakjyJapanIoni Bowcher QUALIFIED
Aditya N ButtCanadaAmy Elsner NEW
Chavez Q KuskoGermanyIoni Bowcher NEGOTIATION
Cody I WaycottUnited KingdomAsiya Javayant UNQUALIFIED
Morrow S RutaCanadaAsiya Javayant UNQUALIFIED
James N MorascaBrazilStephen Shaw NEGOTIATION
Kaitlin V ShinkoItalyIvan Magalhaes QUALIFIED
Izzy U SchemmerSpainIvan Magalhaes PROPOSAL
Darci J KolmetzGermanyStephen Shaw UNQUALIFIED
Johnson L WieserAustraliaStephen Shaw UNQUALIFIED
Ashley H StensethFranceStephen Shaw NEW
David K OstroskyGermanyIvan Magalhaes NEW
David Y BologniaJapanIvan Magalhaes QUALIFIED
Stacey W NickaGermanyIoni Bowcher PROPOSAL
Claire D RimIndiaElwin Sharvill UNQUALIFIED
Smith H RutaUnited KingdomIvan Magalhaes QUALIFIED
Aditya N NestleIndiaOnyama Limba RENEWAL
Mujtaba V StockhamCanadaIoni Bowcher UNQUALIFIED
Leon X WhobreyJapanXuxue Feng NEW
Antonio K RoysterJapanXuxue Feng QUALIFIED
David J RimBrazilElwin Sharvill NEGOTIATION
Deepesh A GarufiUnited KingdomStephen Shaw QUALIFIED
Frozen Columns
Name
Faith H Campain
Darci Y Nicka
Antonio R Shinko
Kaitlin F Tollner
Chavez F Shinko
Costa Z Nestle
Ricardo N Poquette
Jefferson S Rim
Misaki W Wieser
Leja R Wieser
Munro Z Caldarera
Deepesh M Slusarski
Smith G Darakjy
Claire A Saylors
Morrow E Stockham
Francesco M Poquette
Chavez I Ruta
Aika N Perin
Antonio C Malet
Ashley H Ferencz
Jones W Oldroyd
Jennifer Y Malet
Leja L Slusarski
Jeanfrancois M Poquette
Ricardo N Foller
Greenwood I Gillian
Leja L Ferencz
Deepesh U Wieser
Aruna Y Tollner
Darci O Marrier
Mujtaba A Rim
Misaki S Gillian
Jones U Caudy
Mayumi I Briddick
Johnson K Doe
Smith E Oldroyd
Claire Q Chui
Jones H Ostrosky
Jennifer K Ferencz
Morrow E Rulapaugh
Maria Z Oldroyd
Chavez C Amigon
Rodrigues M Rim
Antonio W Bolognia
Jones D Vocelka
Izzy X Perin
Misaki W Poquette
James D Campain
Faith P Garufi
Silvio K Rim
IdCountryDate
1000Spain2026-07-12
1001Japan2026-07-19
1002Japan2026-07-28
1003Spain2026-07-20
1004Brazil2026-07-18
1005Argentina2026-08-07
1006Argentina2026-08-03
1007Australia2026-07-22
1008Germany2026-07-13
1009Germany2026-07-21
1010Spain2026-07-15
1011Russia2026-07-17
1012United Kingdom2026-08-06
1013Germany2026-07-31
1014India2026-08-06
1015Australia2026-07-16
1016Germany2026-07-25
1017Germany2026-07-13
1018Russia2026-07-17
1019Australia2026-07-28
1020Argentina2026-07-24
1021France2026-07-24
1022United Kingdom2026-07-18
1023United Kingdom2026-08-05
1024India2026-07-28
1025Spain2026-07-29
1026Japan2026-07-17
1027Italy2026-07-15
1028India2026-07-18
1029India2026-07-21
1030Japan2026-07-19
1031Italy2026-07-16
1032Germany2026-07-12
1033United Kingdom2026-07-17
1034Argentina2026-08-06
1035India2026-07-12
1036United Kingdom2026-08-03
1037Canada2026-08-01
1038United Kingdom2026-07-25
1039Germany2026-07-27
1040Spain2026-07-17
1041Brazil2026-07-16
1042Spain2026-07-17
1043Canada2026-07-20
1044Japan2026-08-01
1045United Kingdom2026-07-17
1046Brazil2026-07-29
1047Germany2026-08-03
1048Japan2026-07-18
1049Germany2026-07-18

On-Demand Data

NameIdCountryDate
Maisha J Perin1000Canada2026-07-28
Octavia O Perin1001United Kingdom2026-07-21
Stacey Y Waycott1002Australia2026-07-15
Emily F Darakjy1003Japan2026-07-25
Arvin V Schemmer1004Argentina2026-07-25
Julie F Caudy1005Spain2026-07-17
Isabel H Bowley1006Japan2026-07-16
Mujtaba F Briddick1007Russia2026-07-20
Leja M Gaucho1008Brazil2026-08-08
Maisha N Kusko1009France2026-07-11
Juan R Foller1010France2026-08-04
Munro U Nicka1011Russia2026-07-14
Mujtaba X Figeroa1012Italy2026-07-26
Ivar J Darakjy1013Brazil2026-08-07
Ricardo K Flosi1014Canada2026-08-06
Munro G Inouye1015France2026-07-29
Greenwood K Dilliard1016United Kingdom2026-07-21
Faith X Oldroyd1017Brazil2026-07-30
Arvin F Morasca1018Canada2026-07-22
Faith Q Figeroa1019United Kingdom2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci D ButtBrazilXuxue Feng RENEWAL
Leon D KuskoJapanElwin Sharvill NEW
Morrow W SaylorsIndiaAsiya Javayant RENEWAL
Ashley L WieserUnited KingdomIoni Bowcher NEGOTIATION
Tony E AmigonItalyOnyama Limba PROPOSAL
Jennifer O GillianItalyAsiya Javayant NEGOTIATION
Aditya Z SchemmerAustraliaBernardo Dominic RENEWAL
Antonio W IturbideArgentinaBernardo Dominic QUALIFIED
Leon B CaldareraUnited KingdomElwin Sharvill RENEWAL
Nicolas D StockhamJapanAmy Elsner NEW
Ashley L MaletItalyAsiya Javayant PROPOSAL
Maisha R DarakjySpainAsiya Javayant QUALIFIED
Salvatore C RutaAustraliaXuxue Feng UNQUALIFIED
Kaitlin E DoeGermanyIoni Bowcher NEGOTIATION
Ashley R RoysterIndiaOnyama Limba PROPOSAL
Wickens O WhobreyCanadaAsiya Javayant RENEWAL
Ivar I CaldareraFranceStephen Shaw RENEWAL
Octavia R CampainCanadaAmy Elsner UNQUALIFIED
Ivar I GlickArgentinaXuxue Feng QUALIFIED
Adams N NestleItalyElwin Sharvill NEW
Emily N KuskoRussiaAsiya Javayant PROPOSAL
Mayumi S KolmetzCanadaStephen Shaw NEW
Arvin L DoeFranceXuxue Feng RENEWAL
Julie L MaletJapanXuxue Feng NEGOTIATION
Juan A MarrierJapanBernardo Dominic QUALIFIED
Faith N MaletRussiaAsiya Javayant PROPOSAL
Aika L MarrierRussiaOnyama Limba RENEWAL
Ashley X RutaSpainAmy Elsner QUALIFIED
Izzy U NickaGermanyIoni Bowcher NEW
Leon L SaylorsBrazilAnna Fali QUALIFIED
Emily Q BologniaAustraliaElwin Sharvill RENEWAL
Misaki V RimGermanyBernardo Dominic QUALIFIED
Arvin J NickaArgentinaBernardo Dominic PROPOSAL
Misaki R FollerArgentinaElwin Sharvill QUALIFIED
Morrow T MorascaFranceElwin Sharvill NEW
Smith S WaycottJapanIvan Magalhaes QUALIFIED
Adams M MaletJapanOnyama Limba NEW
Emily U MarrierItalyIvan Magalhaes RENEWAL
Arvin Q SaylorsRussiaElwin Sharvill RENEWAL
Aika M FigeroaItalyIoni Bowcher 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>