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
Adams H VenereJapanBernardo Dominic NEGOTIATION
Ashley M IturbideSpainBernardo Dominic NEW
Stacey Y NestleCanadaAsiya Javayant NEGOTIATION
Rodrigues V TollnerSpainAnna Fali QUALIFIED
Rodrigues X NickaIndiaAsiya Javayant NEGOTIATION
Maria C PerinArgentinaOnyama Limba NEW
Silvio X InouyeFranceAsiya Javayant QUALIFIED
Leon B SaylorsCanadaIvan Magalhaes RENEWAL
Julie H InouyeIndiaIoni Bowcher PROPOSAL
Antonio W BologniaFranceBernardo Dominic UNQUALIFIED
Misaki U TollnerIndiaStephen Shaw PROPOSAL
Faith U PoquetteGermanyBernardo Dominic PROPOSAL
Octavia B BriddickFranceElwin Sharvill UNQUALIFIED
Maisha Q PaprockiGermanyXuxue Feng PROPOSAL
David Y RimCanadaAmy Elsner PROPOSAL
Jennifer L MorascaJapanAnna Fali UNQUALIFIED
Ashley K SergiSpainAmy Elsner RENEWAL
Mayumi D KuskoSpainAmy Elsner QUALIFIED
Darci V GarufiArgentinaOnyama Limba QUALIFIED
Alejandro I FigeroaIndiaAsiya Javayant RENEWAL
Sinclair M DarakjyItalyIoni Bowcher RENEWAL
Maisha F SchemmerJapanAmy Elsner UNQUALIFIED
Ashley R OstroskyRussiaStephen Shaw NEGOTIATION
Chavez Y InouyeItalyXuxue Feng NEGOTIATION
David Q MaletGermanyIvan Magalhaes NEW
Kaitlin Y RulapaughCanadaOnyama Limba QUALIFIED
Wickens C MarrierRussiaStephen Shaw QUALIFIED
Adams I OstroskySpainBernardo Dominic PROPOSAL
Leon U RoysterIndiaStephen Shaw QUALIFIED
Izzy M GauchoUnited KingdomOnyama Limba NEW
Mayumi J GillianBrazilIoni Bowcher RENEWAL
Jeanfrancois R NestleGermanyElwin Sharvill QUALIFIED
Izzy D MacleadCanadaAnna Fali NEGOTIATION
Morrow X IturbideFranceAnna Fali QUALIFIED
Antonio N PoquetteRussiaAnna Fali QUALIFIED
Juan H MaletGermanyXuxue Feng PROPOSAL
Maria Z RutaFranceAmy Elsner NEW
Octavia D SlusarskiGermanyIoni Bowcher NEGOTIATION
Clifford Q SlusarskiAustraliaAnna Fali NEGOTIATION
Sinclair O MaletGermanyIvan Magalhaes NEW
Maisha J FigeroaGermanyXuxue Feng PROPOSAL
Maisha U ChuiUnited KingdomIvan Magalhaes QUALIFIED
Deepesh N OstroskyBrazilIvan Magalhaes QUALIFIED
Arvin B InouyeBrazilAsiya Javayant PROPOSAL
Faith O FigeroaCanadaStephen Shaw NEW
Morrow W FerenczCanadaOnyama Limba QUALIFIED
Jefferson H SlusarskiBrazilAsiya Javayant NEGOTIATION
David S KuskoBrazilIoni Bowcher UNQUALIFIED
Nicolas W FollerJapanStephen Shaw NEGOTIATION
Ivar M ChuiSpainAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Izzy N NickaJapanElwin Sharvill QUALIFIED
Murillo G RutaBrazilOnyama Limba NEGOTIATION
Silvio A VocelkaSpainAmy Elsner UNQUALIFIED
Darci R WhobreyGermanyAmy Elsner RENEWAL
Munro X SergiIndiaStephen Shaw QUALIFIED
Faith X BriddickAustraliaIvan Magalhaes UNQUALIFIED
Jefferson R BowleyUnited KingdomBernardo Dominic QUALIFIED
Ashley O OldroydFranceAmy Elsner RENEWAL
Alejandro R AmigonUnited KingdomBernardo Dominic PROPOSAL
Maisha N OstroskyAustraliaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro C AmigonBrazil2026-07-23Feiner Bros PROPOSAL27Onyama Limba
1001Mayumi B CaudyRussia2026-06-29Feiner Bros NEW15Bernardo Dominic
1002Kadeem A FlosiArgentina2026-07-11Rousseaux, Michael Esq NEW98Elwin Sharvill
1003Emily T RutaAustralia2026-07-11Dorl, James J Esq PROPOSAL3Stephen Shaw
1004Mayumi U FlosiRussia2026-07-11Printing Dimensions NEW57Elwin Sharvill
1005Misaki C MaletBrazil2026-06-30Chapman, Ross E Esq NEGOTIATION80Xuxue Feng
1006Nicolas H KolmetzFrance2026-07-25Dorl, James J Esq NEW67Amy Elsner
1007Cody P StockhamCanada2026-07-03Buckley Miller Wright PROPOSAL9Bernardo Dominic
1008Munro M AlbaresJapan2026-07-01Feltz Printing Service RENEWAL70Bernardo Dominic
1009Jones K FollerAustralia2026-07-14Dorl, James J Esq UNQUALIFIED12Ioni Bowcher
1010Izzy J RutaSpain2026-07-24Truhlar And Truhlar Attys NEW49Ioni Bowcher
1011Kadeem J MaletArgentina2026-07-01Truhlar And Truhlar Attys PROPOSAL88Ioni Bowcher
1012Jennifer M StensethAustralia2026-07-12Buckley Miller Wright PROPOSAL60Amy Elsner
1013Mujtaba Y CampainUnited Kingdom2026-07-04Rangoni Of Florence QUALIFIED1Onyama Limba
1014Smith V ChuiAustralia2026-07-05Buckley Miller Wright RENEWAL74Amy Elsner
1015James Q MacleadSpain2026-07-19Feiner Bros QUALIFIED64Xuxue Feng
1016Aruna O WhobreyGermany2026-07-21Dorl, James J Esq QUALIFIED8Anna Fali
1017Clifford U RulapaughSpain2026-07-24Dorl, James J Esq QUALIFIED25Anna Fali
1018Jones T SlusarskiSpain2026-07-25Chanay, Jeffrey A Esq RENEWAL32Stephen Shaw
1019Silvio Q VocelkaSpain2026-07-19Chemel, James L Cpa NEGOTIATION24Asiya Javayant
1020Morrow I VenereFrance2026-07-11Feltz Printing Service QUALIFIED8Amy Elsner
1021Adams H DilliardFrance2026-06-30Morlong Associates NEW71Elwin Sharvill
1022Kadeem H ChuiFrance2026-07-27Chemel, James L Cpa QUALIFIED80Onyama Limba
1023Costa P DarakjyCanada2026-07-20Feltz Printing Service RENEWAL13Amy Elsner
1024Jefferson C CampainIndia2026-07-25Morlong Associates QUALIFIED61Xuxue Feng
1025Aruna G NickaJapan2026-07-22Rousseaux, Michael Esq UNQUALIFIED66Asiya Javayant
1026Octavia K TollnerCanada2026-07-16Commercial Press UNQUALIFIED78Stephen Shaw
1027Leja N GauchoSpain2026-07-07Rangoni Of Florence NEW5Ioni Bowcher
1028Maisha D TollnerRussia2026-07-03Chapman, Ross E Esq PROPOSAL91Asiya Javayant
1029Ricardo P MarrierSpain2026-07-10Chanay, Jeffrey A Esq NEW30Onyama Limba
1030Alejandro F CaldareraJapan2026-07-25Benton, John B Jr QUALIFIED37Stephen Shaw
1031Claire Y BologniaCanada2026-07-20Chapman, Ross E Esq UNQUALIFIED8Ioni Bowcher
1032Leon K KolmetzUnited Kingdom2026-07-13Chemel, James L Cpa NEGOTIATION16Anna Fali
1033Aruna O OstroskyFrance2026-07-18Chanay, Jeffrey A Esq UNQUALIFIED3Asiya Javayant
1034Emily N VenereGermany2026-07-13Morlong Associates QUALIFIED26Stephen Shaw
1035Kaitlin B ButtItaly2026-07-02Dorl, James J Esq PROPOSAL52Elwin Sharvill
1036Leja Q CaudyRussia2026-07-14Chemel, James L Cpa NEGOTIATION6Amy Elsner
1037Maria A MaletFrance2026-07-23Printing Dimensions UNQUALIFIED63Asiya Javayant
1038Aruna T FigeroaSpain2026-07-28King, Christopher A Esq RENEWAL68Asiya Javayant
1039Ashley O SlusarskiRussia2026-07-05Rousseaux, Michael Esq NEW76Xuxue Feng
1040Kaitlin Z GillianFrance2026-07-26King, Christopher A Esq PROPOSAL24Ioni Bowcher
1041Arvin X WaycottRussia2026-07-04Chapman, Ross E Esq PROPOSAL18Anna Fali
1042Maisha Y NestleGermany2026-07-06Buckley Miller Wright RENEWAL65Elwin Sharvill
1043Francesco X AlbaresGermany2026-07-01Chemel, James L Cpa RENEWAL40Bernardo Dominic
1044Octavia I VocelkaRussia2026-07-01Chanay, Jeffrey A Esq PROPOSAL12Asiya Javayant
1045Stacey G MarrierCanada2026-07-06Rangoni Of Florence NEW78Xuxue Feng
1046Johnson V BriddickGermany2026-07-06Dorl, James J Esq NEGOTIATION31Stephen Shaw
1047Misaki T BologniaUnited Kingdom2026-07-01Chemel, James L Cpa NEGOTIATION4Amy Elsner
1048Johnson M RulapaughSpain2026-07-09Printing Dimensions NEGOTIATION63Anna Fali
1049Alejandro A RimCanada2026-07-25Rousseaux, Michael Esq QUALIFIED53Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Smith I NestleArgentinaAsiya Javayant RENEWAL
Maisha H WhobreyFranceAsiya Javayant QUALIFIED
Clifford S VocelkaGermanyAsiya Javayant PROPOSAL
Jennifer N BriddickUnited KingdomXuxue Feng NEW
Rodrigues L VocelkaRussiaOnyama Limba PROPOSAL
Sinclair E DoeBrazilOnyama Limba NEGOTIATION
Alejandro N ButtSpainIoni Bowcher NEW
James E DoeJapanAmy Elsner RENEWAL
Maria V VenereGermanyAsiya Javayant UNQUALIFIED
Clifford K ShinkoIndiaOnyama Limba PROPOSAL
Tony W BologniaBrazilAsiya Javayant NEGOTIATION
Stacey P SergiRussiaBernardo Dominic UNQUALIFIED
Johnson Q RimGermanyIoni Bowcher QUALIFIED
Juan L OldroydRussiaOnyama Limba NEGOTIATION
Kadeem L KuskoFranceAmy Elsner RENEWAL
Deepesh W VocelkaIndiaAnna Fali PROPOSAL
Jefferson S AmigonFranceBernardo Dominic PROPOSAL
Faith Y BriddickArgentinaElwin Sharvill UNQUALIFIED
Arvin R SaylorsAustraliaAmy Elsner NEGOTIATION
Kadeem L StockhamItalyIvan Magalhaes RENEWAL
Arvin V PerinArgentinaOnyama Limba NEW
Arvin G IturbideBrazilBernardo Dominic RENEWAL
Mujtaba A ButtUnited KingdomIvan Magalhaes NEW
Sinclair E ButtIndiaStephen Shaw NEW
Izzy D InouyeSpainElwin Sharvill PROPOSAL
Kadeem G KolmetzAustraliaAmy Elsner NEGOTIATION
Costa S CaldareraUnited KingdomIoni Bowcher QUALIFIED
Arvin I RulapaughBrazilIoni Bowcher NEW
Nicolas U CaldareraBrazilXuxue Feng QUALIFIED
Silvio V WhobreyGermanyBernardo Dominic QUALIFIED
Isabel D ButtAustraliaIoni Bowcher NEW
David L SchemmerIndiaStephen Shaw NEW
Faith C KolmetzSpainXuxue Feng UNQUALIFIED
Nicolas Y MaletJapanIoni Bowcher QUALIFIED
Cody Y RimRussiaIvan Magalhaes NEGOTIATION
Izzy I SlusarskiBrazilXuxue Feng RENEWAL
Greenwood W GarufiSpainOnyama Limba RENEWAL
Wickens I FigeroaRussiaXuxue Feng NEW
Aika E FollerUnited KingdomAnna Fali UNQUALIFIED
Jennifer A InouyeUnited KingdomAmy Elsner PROPOSAL
Aditya H StockhamBrazilElwin Sharvill QUALIFIED
Chavez J KolmetzBrazilStephen Shaw NEGOTIATION
Jennifer W FigeroaUnited KingdomBernardo Dominic RENEWAL
Kaitlin J AmigonIndiaXuxue Feng PROPOSAL
Morrow N KolmetzUnited KingdomElwin Sharvill NEW
Misaki V RulapaughRussiaIvan Magalhaes NEW
Murillo N MaletArgentinaElwin Sharvill NEGOTIATION
Rodrigues H NickaSpainElwin Sharvill QUALIFIED
Rodrigues Y KuskoAustraliaElwin Sharvill NEGOTIATION
Greenwood S BriddickJapanStephen Shaw RENEWAL
Frozen Columns
Name
Kaitlin S Wieser
Stacey X Whobrey
Costa A Bowley
Chavez K Perin
Smith B Sergi
Darci C Whobrey
Julie V Stockham
Tony J Briddick
Silvio Z Stenseth
Julie M Darakjy
Arvin S Flosi
Isabel E Stockham
Chavez A Albares
Jennifer A Paprocki
Costa I Glick
Claire Y Shinko
Munro D Poquette
Murillo U Gillian
Jones V Whobrey
Emily P Rim
Octavia X Figeroa
Claire I Gillian
Rodrigues R Dilliard
Costa U Shinko
Antonio G Gillian
Claire M Kolmetz
Maisha K Maclead
Francesco S Figeroa
Ivar U Campain
Maisha V Schemmer
Adams H Flosi
Nicolas O Stenseth
Faith N Bolognia
Francesco V Venere
Claire T Bolognia
Jones H Vocelka
Alejandro M Flosi
Francesco X Oldroyd
Darci X Amigon
Maisha Y Stenseth
Jeanfrancois Q Bolognia
David Z Amigon
Tony S Bowley
Sinclair O Royster
Aruna O Sergi
Leja R Albares
Alejandro I Caudy
Jones C Albares
Tony Y Garufi
Tony X Malet
IdCountryDate
1000Spain2026-07-09
1001Australia2026-07-23
1002Canada2026-07-12
1003Japan2026-07-26
1004Spain2026-07-24
1005Brazil2026-07-25
1006India2026-07-12
1007Italy2026-07-18
1008Argentina2026-07-07
1009Australia2026-07-02
1010Germany2026-07-26
1011India2026-07-11
1012Argentina2026-07-06
1013Australia2026-06-29
1014Argentina2026-07-23
1015Russia2026-07-15
1016Spain2026-07-14
1017Australia2026-07-25
1018Spain2026-07-06
1019Russia2026-07-20
1020Italy2026-07-25
1021Australia2026-07-18
1022Italy2026-07-06
1023Germany2026-06-30
1024Argentina2026-07-24
1025Germany2026-06-30
1026Brazil2026-07-03
1027Italy2026-07-02
1028France2026-06-29
1029Russia2026-07-27
1030Brazil2026-07-17
1031Germany2026-07-25
1032Brazil2026-07-25
1033India2026-07-27
1034France2026-07-25
1035United Kingdom2026-07-24
1036Russia2026-07-24
1037Spain2026-07-09
1038Japan2026-07-13
1039Germany2026-07-01
1040Australia2026-07-12
1041India2026-07-05
1042Argentina2026-07-05
1043Italy2026-07-20
1044Argentina2026-07-16
1045India2026-06-29
1046Canada2026-07-09
1047France2026-07-15
1048Australia2026-07-25
1049Russia2026-07-19

On-Demand Data

NameIdCountryDate
Sinclair T Royster1000Brazil2026-06-29
Misaki W Foller1001United Kingdom2026-07-20
Greenwood U Iturbide1002Australia2026-07-09
Aika Y Sergi1003Germany2026-07-24
Cody Y Rim1004Russia2026-07-20
Misaki U Perin1005Brazil2026-07-03
Antonio E Bowley1006Argentina2026-07-07
Mujtaba C Stenseth1007Argentina2026-07-14
Cody B Dilliard1008Australia2026-07-01
Kaitlin O Glick1009Russia2026-07-01
Murillo V Stenseth1010Germany2026-07-17
Johnson H Kolmetz1011United Kingdom2026-07-28
Misaki F Ruta1012Spain2026-07-25
Octavia M Maclead1013Japan2026-06-30
Arvin K Iturbide1014Canada2026-07-15
Smith R Whobrey1015Canada2026-07-16
Clifford D Iturbide1016United Kingdom2026-07-16
Sinclair N Chui1017Argentina2026-07-10
Isabel A Morasca1018Japan2026-07-21
Claire M Saylors1019Australia2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams C PaprockiAustraliaOnyama Limba RENEWAL
Izzy V BriddickAustraliaOnyama Limba NEW
Silvio S SchemmerFranceAnna Fali QUALIFIED
Ricardo W ChuiGermanyIvan Magalhaes NEGOTIATION
Kaitlin H WhobreyJapanAmy Elsner UNQUALIFIED
Nicolas T BowleyJapanIoni Bowcher NEGOTIATION
Morrow M RulapaughItalyStephen Shaw NEW
Juan E DoeJapanOnyama Limba QUALIFIED
Claire F AmigonJapanIvan Magalhaes UNQUALIFIED
Rodrigues G ButtBrazilAnna Fali RENEWAL
Morrow H CaldareraIndiaBernardo Dominic PROPOSAL
Clifford Z StockhamJapanIvan Magalhaes NEW
David Z PaprockiJapanStephen Shaw RENEWAL
Smith L FollerCanadaIoni Bowcher PROPOSAL
Izzy J FigeroaSpainStephen Shaw UNQUALIFIED
Deepesh S SlusarskiItalyIoni Bowcher NEW
Darci G GillianIndiaIvan Magalhaes NEGOTIATION
Adams W DarakjySpainElwin Sharvill NEGOTIATION
Kadeem X SaylorsItalyAmy Elsner RENEWAL
Adams Z IturbideAustraliaAmy Elsner UNQUALIFIED
Deepesh P SergiArgentinaAmy Elsner PROPOSAL
Cody Q MaletItalyXuxue Feng NEGOTIATION
Jeanfrancois D NestleJapanIvan Magalhaes NEGOTIATION
Tony R MarrierJapanBernardo Dominic RENEWAL
Emily Y MacleadCanadaOnyama Limba PROPOSAL
Deepesh R VenereUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez P RimFranceAsiya Javayant NEW
Jennifer T CampainCanadaIvan Magalhaes UNQUALIFIED
Munro M InouyeGermanyElwin Sharvill PROPOSAL
Misaki V VocelkaSpainOnyama Limba NEGOTIATION
Alejandro Q GillianGermanyAmy Elsner QUALIFIED
Adams F CaudyCanadaXuxue Feng RENEWAL
Morrow W AmigonFranceAmy Elsner PROPOSAL
Darci R CaudyRussiaOnyama Limba PROPOSAL
Deepesh S NickaGermanyBernardo Dominic NEGOTIATION
Maisha P ButtSpainAnna Fali RENEWAL
Leja Z VenereBrazilAmy Elsner PROPOSAL
Ashley F WieserSpainStephen Shaw RENEWAL
James I DilliardGermanyIvan Magalhaes NEW
Stacey P WieserItalyAmy Elsner NEW

<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>