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
Antonio O CaudyAustraliaOnyama Limba PROPOSAL
Misaki W OldroydAustraliaStephen Shaw NEGOTIATION
Aika D SchemmerUnited KingdomStephen Shaw PROPOSAL
Juan K CaudyCanadaAmy Elsner PROPOSAL
Nicolas L AmigonAustraliaStephen Shaw UNQUALIFIED
Smith P MarrierGermanyAnna Fali RENEWAL
Aruna S CaudyAustraliaAmy Elsner NEGOTIATION
Sinclair X TollnerFranceElwin Sharvill PROPOSAL
Julie J RulapaughRussiaElwin Sharvill NEGOTIATION
Stacey G CaudyCanadaElwin Sharvill RENEWAL
Morrow K DarakjyFranceBernardo Dominic NEW
Emily T SaylorsGermanyElwin Sharvill UNQUALIFIED
Salvatore I GlickAustraliaXuxue Feng PROPOSAL
Silvio W StensethRussiaAsiya Javayant QUALIFIED
Ivar A RoysterBrazilIoni Bowcher UNQUALIFIED
Julie U RimBrazilXuxue Feng PROPOSAL
Deepesh N ButtBrazilStephen Shaw PROPOSAL
David Q AmigonUnited KingdomStephen Shaw UNQUALIFIED
Costa Q StockhamJapanAmy Elsner NEW
Leja H SaylorsSpainOnyama Limba UNQUALIFIED
Clifford L SlusarskiRussiaOnyama Limba NEW
Darci N MorascaArgentinaAnna Fali RENEWAL
Misaki M SchemmerItalyBernardo Dominic UNQUALIFIED
Tony K IturbideRussiaElwin Sharvill UNQUALIFIED
Maisha Z GlickCanadaBernardo Dominic NEGOTIATION
Stacey R GauchoFranceIoni Bowcher RENEWAL
Munro A FollerAustraliaStephen Shaw NEW
Murillo O RimUnited KingdomElwin Sharvill RENEWAL
Greenwood J FlosiBrazilStephen Shaw QUALIFIED
Jeanfrancois D BowleyCanadaBernardo Dominic NEW
Salvatore Z FigeroaBrazilElwin Sharvill NEW
Ashley E GlickBrazilIvan Magalhaes NEGOTIATION
Costa V ChuiItalyXuxue Feng UNQUALIFIED
Antonio U SchemmerAustraliaAmy Elsner RENEWAL
Aika S PaprockiBrazilBernardo Dominic PROPOSAL
Munro X MorascaArgentinaAsiya Javayant QUALIFIED
Maisha T InouyeGermanyElwin Sharvill QUALIFIED
David H SchemmerCanadaBernardo Dominic NEGOTIATION
Faith L MacleadBrazilElwin Sharvill UNQUALIFIED
Isabel Z RimRussiaAmy Elsner PROPOSAL
Ashley B StensethFranceXuxue Feng NEW
Jefferson E OstroskyBrazilXuxue Feng PROPOSAL
Francesco P NickaItalyXuxue Feng RENEWAL
Tony F CaldareraGermanyStephen Shaw QUALIFIED
Jones Q RulapaughItalyElwin Sharvill NEW
Jefferson Z MaletAustraliaAsiya Javayant UNQUALIFIED
Wickens C SaylorsIndiaAsiya Javayant RENEWAL
Sinclair Q WaycottRussiaStephen Shaw QUALIFIED
Aika N VenereUnited KingdomAmy Elsner QUALIFIED
Kaitlin P RulapaughItalyIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Rodrigues L WaycottFranceAsiya Javayant UNQUALIFIED
Leja L GlickItalyAmy Elsner NEW
Claire S DilliardFranceXuxue Feng QUALIFIED
Wickens J GlickCanadaIvan Magalhaes UNQUALIFIED
Leja Z RoysterAustraliaIoni Bowcher PROPOSAL
Jeanfrancois Z MaletFranceXuxue Feng QUALIFIED
Murillo E MorascaGermanyAmy Elsner UNQUALIFIED
Clifford D RoysterIndiaBernardo Dominic UNQUALIFIED
Kaitlin X CaudyArgentinaElwin Sharvill RENEWAL
Greenwood A WhobreyBrazilIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio N TollnerCanada2026-08-09Morlong Associates NEW52Stephen Shaw
1001Costa P NestleAustralia2026-08-11Feltz Printing Service QUALIFIED71Ioni Bowcher
1002Mujtaba J VocelkaGermany2026-08-22Buckley Miller Wright QUALIFIED74Ivan Magalhaes
1003Emily W ButtRussia2026-08-06Rangoni Of Florence NEGOTIATION69Ioni Bowcher
1004Nicolas V ShinkoRussia2026-07-26Chemel, James L Cpa QUALIFIED44Ivan Magalhaes
1005Aruna D OldroydJapan2026-08-05Chapman, Ross E Esq NEGOTIATION74Anna Fali
1006Claire A MorascaJapan2026-08-19Rangoni Of Florence RENEWAL69Xuxue Feng
1007Johnson L DilliardJapan2026-08-13Commercial Press NEGOTIATION91Amy Elsner
1008Antonio F CaldareraFrance2026-08-02Benton, John B Jr NEGOTIATION10Asiya Javayant
1009Chavez M StockhamArgentina2026-08-10Commercial Press QUALIFIED53Ioni Bowcher
1010Jones Y CaudyRussia2026-08-16Printing Dimensions NEW74Stephen Shaw
1011Costa F RulapaughBrazil2026-08-05Chapman, Ross E Esq NEW95Anna Fali
1012Ricardo L VocelkaJapan2026-08-17Benton, John B Jr NEGOTIATION5Ioni Bowcher
1013Ivar G PerinRussia2026-08-02Feltz Printing Service PROPOSAL54Ioni Bowcher
1014Johnson V MaletSpain2026-08-03Buckley Miller Wright RENEWAL78Stephen Shaw
1015Silvio Q ButtUnited Kingdom2026-08-21Chapman, Ross E Esq RENEWAL47Stephen Shaw
1016Greenwood A IturbideCanada2026-08-17Chemel, James L Cpa UNQUALIFIED85Asiya Javayant
1017Kadeem I SergiSpain2026-08-09Dorl, James J Esq NEW98Onyama Limba
1018Isabel U MarrierArgentina2026-07-29Printing Dimensions PROPOSAL54Ivan Magalhaes
1019Arvin D WhobreySpain2026-08-16Truhlar And Truhlar Attys PROPOSAL70Stephen Shaw
1020Mujtaba P BriddickSpain2026-08-04Chapman, Ross E Esq NEW75Ivan Magalhaes
1021Mujtaba Y RimGermany2026-07-26Printing Dimensions PROPOSAL25Onyama Limba
1022Aditya Y VenereIndia2026-08-04Dorl, James J Esq PROPOSAL6Bernardo Dominic
1023Jeanfrancois X StockhamGermany2026-08-21Chanay, Jeffrey A Esq NEW84Ioni Bowcher
1024Nicolas M PaprockiIndia2026-08-08Truhlar And Truhlar Attys PROPOSAL5Anna Fali
1025Rodrigues B RoysterIndia2026-08-18Feltz Printing Service QUALIFIED48Anna Fali
1026Darci G VocelkaAustralia2026-08-19Benton, John B Jr UNQUALIFIED9Xuxue Feng
1027Emily N CaudyCanada2026-08-15Chapman, Ross E Esq NEW70Onyama Limba
1028Salvatore D FlosiAustralia2026-08-19Morlong Associates UNQUALIFIED89Stephen Shaw
1029Wickens M AmigonItaly2026-08-19Rousseaux, Michael Esq UNQUALIFIED74Anna Fali
1030Kaitlin A GlickJapan2026-07-24Printing Dimensions NEGOTIATION44Onyama Limba
1031Aika P KolmetzItaly2026-07-30Truhlar And Truhlar Attys RENEWAL3Ioni Bowcher
1032Octavia T PoquetteCanada2026-08-07Chemel, James L Cpa NEW77Elwin Sharvill
1033Julie S AmigonGermany2026-07-27Dorl, James J Esq RENEWAL14Ivan Magalhaes
1034Chavez G AlbaresFrance2026-08-09Benton, John B Jr QUALIFIED97Bernardo Dominic
1035Tony H DoeIndia2026-07-24Chanay, Jeffrey A Esq UNQUALIFIED83Stephen Shaw
1036Adams W PaprockiFrance2026-08-20Chemel, James L Cpa PROPOSAL63Stephen Shaw
1037Aruna Z GauchoUnited Kingdom2026-08-09Feltz Printing Service NEW60Stephen Shaw
1038Costa Z CaldareraSpain2026-07-26Buckley Miller Wright RENEWAL51Amy Elsner
1039Silvio O ChuiGermany2026-07-28Buckley Miller Wright PROPOSAL1Bernardo Dominic
1040Wickens S GauchoFrance2026-08-05Rousseaux, Michael Esq RENEWAL61Bernardo Dominic
1041Kadeem C BriddickIndia2026-07-29Chanay, Jeffrey A Esq NEGOTIATION7Ivan Magalhaes
1042Salvatore J CaudyArgentina2026-08-17Truhlar And Truhlar Attys NEW89Elwin Sharvill
1043Morrow V ChuiRussia2026-08-18Rangoni Of Florence UNQUALIFIED83Ioni Bowcher
1044Leja T AmigonRussia2026-07-24Chapman, Ross E Esq QUALIFIED16Ivan Magalhaes
1045Silvio G CampainUnited Kingdom2026-08-06Printing Dimensions RENEWAL89Asiya Javayant
1046Ivar F BologniaItaly2026-08-04Benton, John B Jr QUALIFIED81Bernardo Dominic
1047Costa C CampainItaly2026-08-12Buckley Miller Wright UNQUALIFIED80Ivan Magalhaes
1048Misaki D DoeArgentina2026-08-19King, Christopher A Esq UNQUALIFIED26Elwin Sharvill
1049Ivar I MaletAustralia2026-08-09Dorl, James J Esq UNQUALIFIED17Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Izzy N FerenczUnited KingdomBernardo Dominic UNQUALIFIED
Aditya M AlbaresUnited KingdomOnyama Limba NEW
Sinclair V WaycottIndiaAnna Fali RENEWAL
Deepesh F AmigonCanadaAnna Fali NEGOTIATION
Maria X VocelkaJapanElwin Sharvill NEW
Greenwood X KuskoFranceOnyama Limba QUALIFIED
Cody U MarrierCanadaElwin Sharvill NEW
Ashley E RoysterSpainStephen Shaw UNQUALIFIED
Aruna X PoquetteRussiaOnyama Limba NEW
Rodrigues P CaudyIndiaOnyama Limba RENEWAL
Stacey X RutaFranceBernardo Dominic NEW
Rodrigues A MorascaArgentinaIvan Magalhaes NEW
Misaki B MacleadIndiaIoni Bowcher RENEWAL
Jeanfrancois C ButtRussiaAmy Elsner RENEWAL
Arvin S DarakjyAustraliaXuxue Feng NEW
Nicolas G MorascaFranceAmy Elsner RENEWAL
Aika X TollnerJapanAnna Fali NEGOTIATION
Costa X BologniaGermanyXuxue Feng UNQUALIFIED
Smith E PoquetteIndiaAnna Fali UNQUALIFIED
Alejandro E DarakjyBrazilIvan Magalhaes QUALIFIED
Nicolas Q PoquetteCanadaAsiya Javayant UNQUALIFIED
Emily W MarrierJapanOnyama Limba RENEWAL
Juan P AmigonFranceXuxue Feng NEW
Munro V BologniaArgentinaAnna Fali NEW
Munro N BowleyItalyXuxue Feng UNQUALIFIED
Octavia I KolmetzItalyBernardo Dominic QUALIFIED
Silvio L GlickFranceStephen Shaw UNQUALIFIED
Adams R VenereUnited KingdomAnna Fali PROPOSAL
Deepesh W StockhamBrazilAmy Elsner RENEWAL
Morrow L KuskoAustraliaIoni Bowcher NEW
Faith K ShinkoGermanyIvan Magalhaes QUALIFIED
Aruna C MaletJapanAnna Fali UNQUALIFIED
Costa O DarakjySpainIoni Bowcher NEW
Juan O DilliardBrazilIvan Magalhaes QUALIFIED
Jeanfrancois S GlickCanadaElwin Sharvill QUALIFIED
Costa E OldroydGermanyStephen Shaw PROPOSAL
Darci L SergiCanadaElwin Sharvill QUALIFIED
Jennifer X GarufiGermanyAsiya Javayant QUALIFIED
Antonio S StensethIndiaStephen Shaw NEGOTIATION
David W WieserArgentinaStephen Shaw PROPOSAL
Silvio H KolmetzBrazilAmy Elsner NEGOTIATION
Kadeem I SergiGermanyBernardo Dominic NEW
Tony R WhobreySpainBernardo Dominic NEGOTIATION
Kaitlin X CaldareraIndiaAmy Elsner PROPOSAL
Nicolas C SchemmerRussiaIvan Magalhaes QUALIFIED
Greenwood S RoysterJapanStephen Shaw PROPOSAL
Emily T RoysterSpainIvan Magalhaes PROPOSAL
Sinclair B OstroskyItalyAsiya Javayant NEGOTIATION
Costa H FigeroaItalyAnna Fali RENEWAL
Claire B ChuiRussiaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Jones P Amigon
Leon Y Butt
Mayumi E Doe
Arvin U Ostrosky
Clifford P Briddick
Salvatore I Poquette
Isabel T Stenseth
Leon S Stockham
Arvin V Bolognia
Jones X Figeroa
Claire J Shinko
Alejandro W Tollner
Maria Q Nestle
Mujtaba L Nicka
Sinclair A Schemmer
Nicolas X Caldarera
Jones O Nestle
Clifford S Bowley
Aditya H Flosi
David P Vocelka
Adams C Doe
James I Iturbide
Faith Y Bowley
Jennifer S Nestle
Leon Y Foller
Izzy D Ruta
Mayumi L Foller
Francesco A Slusarski
Smith L Campain
Leon U Poquette
Ricardo I Royster
Munro H Nestle
Emily P Malet
Adams L Ferencz
Aika B Caudy
Aditya T Shinko
Claire T Flosi
Aruna A Maclead
Leon Q Garufi
Clifford A Marrier
James P Foller
Rodrigues Q Sergi
Mayumi G Bolognia
Alejandro G Paprocki
Jones F Amigon
Ricardo P Perin
Leja X Stockham
Clifford D Stockham
Antonio D Bolognia
Mayumi N Wieser
IdCountryDate
1000Brazil2026-08-14
1001Italy2026-08-03
1002Australia2026-08-02
1003Germany2026-08-08
1004Argentina2026-08-14
1005India2026-08-14
1006United Kingdom2026-08-14
1007Russia2026-08-21
1008Argentina2026-08-08
1009Russia2026-08-05
1010India2026-08-15
1011Australia2026-07-24
1012Russia2026-08-14
1013Brazil2026-08-16
1014Germany2026-07-27
1015Germany2026-08-20
1016France2026-08-16
1017Japan2026-08-06
1018Brazil2026-07-26
1019Russia2026-08-12
1020Germany2026-08-13
1021Canada2026-08-18
1022Argentina2026-07-28
1023United Kingdom2026-08-22
1024Argentina2026-08-21
1025Japan2026-08-05
1026Spain2026-07-29
1027Japan2026-08-20
1028United Kingdom2026-08-21
1029Canada2026-07-28
1030India2026-08-22
1031Japan2026-07-24
1032Japan2026-08-18
1033Germany2026-08-05
1034Canada2026-08-16
1035Italy2026-08-07
1036Brazil2026-08-18
1037Spain2026-08-15
1038Argentina2026-08-20
1039Japan2026-07-27
1040United Kingdom2026-08-06
1041Spain2026-08-12
1042Australia2026-07-29
1043Italy2026-08-18
1044Italy2026-08-07
1045India2026-07-31
1046Brazil2026-07-31
1047Russia2026-08-14
1048Argentina2026-08-01
1049United Kingdom2026-08-07

On-Demand Data

NameIdCountryDate
Aika G Ostrosky1000France2026-08-12
Salvatore D Poquette1001United Kingdom2026-08-19
Greenwood A Doe1002Argentina2026-08-09
Salvatore H Perin1003Japan2026-07-29
Ashley C Malet1004Germany2026-08-08
Julie L Stenseth1005Australia2026-08-06
Mujtaba G Nicka1006Argentina2026-08-03
Smith H Flosi1007France2026-07-31
Deepesh V Inouye1008Brazil2026-08-04
Salvatore B Figeroa1009Italy2026-08-10
Cody I Tollner1010Canada2026-08-11
David M Tollner1011Spain2026-08-05
Wickens K Caudy1012United Kingdom2026-07-26
Nicolas E Waycott1013France2026-08-17
Arvin B Glick1014United Kingdom2026-08-03
Antonio U Sergi1015Australia2026-08-04
Jennifer H Kusko1016Russia2026-07-29
Chavez H Maclead1017Russia2026-07-25
Julie U Schemmer1018Spain2026-08-16
Ivar R Flosi1019Brazil2026-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem J InouyeRussiaOnyama Limba QUALIFIED
Misaki F TollnerSpainBernardo Dominic QUALIFIED
Aika F RutaFranceElwin Sharvill QUALIFIED
Leon M StensethJapanIvan Magalhaes UNQUALIFIED
Maisha H GauchoIndiaAnna Fali QUALIFIED
Leja F OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Johnson Z KuskoArgentinaIvan Magalhaes PROPOSAL
Jennifer K GillianAustraliaAsiya Javayant PROPOSAL
David P StensethIndiaStephen Shaw QUALIFIED
Kaitlin R PoquetteUnited KingdomIoni Bowcher QUALIFIED
Rodrigues I SlusarskiBrazilAsiya Javayant RENEWAL
Adams N RimSpainIoni Bowcher NEW
Greenwood K StensethUnited KingdomAnna Fali PROPOSAL
Emily H NestleRussiaAmy Elsner QUALIFIED
Mujtaba N KolmetzSpainElwin Sharvill RENEWAL
Izzy L WhobreyJapanAnna Fali QUALIFIED
David Y InouyeCanadaXuxue Feng PROPOSAL
Octavia P DarakjyIndiaOnyama Limba RENEWAL
Nicolas A MarrierSpainElwin Sharvill NEW
Morrow U WieserRussiaOnyama Limba UNQUALIFIED
Smith A BologniaAustraliaIoni Bowcher NEGOTIATION
Leja O BowleyCanadaStephen Shaw PROPOSAL
Kaitlin S DarakjyAustraliaXuxue Feng NEW
Sinclair Q GlickRussiaBernardo Dominic NEGOTIATION
Rodrigues U BowleyJapanIvan Magalhaes NEW
Maisha U VocelkaBrazilAsiya Javayant RENEWAL
Jennifer K DoeFranceStephen Shaw QUALIFIED
Aditya I GlickArgentinaBernardo Dominic NEW
Alejandro O OstroskyJapanStephen Shaw NEW
Smith Z ChuiArgentinaBernardo Dominic UNQUALIFIED
Emily Y OstroskyIndiaOnyama Limba QUALIFIED
James E IturbideItalyStephen Shaw NEGOTIATION
Claire H IturbideArgentinaOnyama Limba RENEWAL
Sinclair X KuskoArgentinaAmy Elsner PROPOSAL
Maisha A SergiRussiaStephen Shaw QUALIFIED
Munro J CaldareraGermanyAmy Elsner PROPOSAL
Costa W BriddickItalyIoni Bowcher PROPOSAL
Jefferson M StockhamItalyIvan Magalhaes RENEWAL
Ricardo F GillianAustraliaXuxue Feng NEGOTIATION
Ricardo L FerenczAustraliaAnna Fali 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>