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
Ivar F IturbideArgentinaElwin Sharvill NEW
James Z DarakjyArgentinaXuxue Feng QUALIFIED
Greenwood K InouyeRussiaAmy Elsner UNQUALIFIED
Cody U CampainGermanyAmy Elsner QUALIFIED
Clifford H MacleadArgentinaStephen Shaw QUALIFIED
Misaki A KuskoGermanyXuxue Feng UNQUALIFIED
Juan Z ShinkoUnited KingdomIoni Bowcher NEGOTIATION
Ashley H GillianCanadaXuxue Feng PROPOSAL
Murillo P AmigonJapanIoni Bowcher NEGOTIATION
Emily S RulapaughSpainXuxue Feng PROPOSAL
Aruna K InouyeUnited KingdomBernardo Dominic NEGOTIATION
David P AlbaresSpainAnna Fali QUALIFIED
Jennifer G FollerIndiaAmy Elsner PROPOSAL
Misaki R MaletUnited KingdomAmy Elsner UNQUALIFIED
Smith R BowleyIndiaAmy Elsner NEGOTIATION
Rodrigues R DoeSpainAmy Elsner UNQUALIFIED
Costa C ChuiJapanAsiya Javayant RENEWAL
Mayumi L DilliardRussiaIvan Magalhaes UNQUALIFIED
Octavia N FigeroaRussiaStephen Shaw NEW
Mujtaba V CaudyRussiaIoni Bowcher NEW
Wickens T BologniaAustraliaElwin Sharvill NEGOTIATION
Mujtaba Y AlbaresSpainXuxue Feng PROPOSAL
Silvio W CaldareraUnited KingdomElwin Sharvill UNQUALIFIED
Maisha B ChuiFranceIoni Bowcher RENEWAL
Mujtaba P GlickUnited KingdomXuxue Feng RENEWAL
Jefferson O FigeroaJapanStephen Shaw UNQUALIFIED
Jefferson W WieserAustraliaStephen Shaw NEGOTIATION
Kaitlin Q MacleadSpainBernardo Dominic UNQUALIFIED
Misaki Z SlusarskiItalyXuxue Feng NEGOTIATION
Greenwood D RimIndiaElwin Sharvill RENEWAL
Leon G PaprockiGermanyElwin Sharvill NEGOTIATION
Francesco Z VocelkaItalyIvan Magalhaes NEGOTIATION
Mayumi F StensethCanadaElwin Sharvill PROPOSAL
Leon F MorascaUnited KingdomIoni Bowcher QUALIFIED
Mayumi H DarakjyAustraliaBernardo Dominic NEW
Claire J ChuiBrazilIoni Bowcher PROPOSAL
Ricardo E FollerSpainAmy Elsner PROPOSAL
Antonio G OldroydItalyStephen Shaw UNQUALIFIED
Stacey Q BowleyRussiaOnyama Limba RENEWAL
Greenwood I ButtArgentinaStephen Shaw NEW
Leja W GillianJapanAmy Elsner NEW
Smith R VenereJapanAnna Fali NEGOTIATION
Rodrigues V GlickArgentinaElwin Sharvill NEW
Deepesh X CampainGermanyAmy Elsner NEW
Emily L FlosiSpainIoni Bowcher RENEWAL
Alejandro K InouyeAustraliaAnna Fali QUALIFIED
Munro D OldroydFranceAsiya Javayant QUALIFIED
Rodrigues R FerenczArgentinaAsiya Javayant RENEWAL
Leja O SchemmerBrazilElwin Sharvill QUALIFIED
Aditya H FigeroaSpainOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Aditya O DilliardBrazilBernardo Dominic PROPOSAL
Chavez K KolmetzArgentinaAnna Fali RENEWAL
Darci G BologniaRussiaAsiya Javayant NEGOTIATION
Darci J MaletSpainAmy Elsner NEW
Aditya T FigeroaCanadaOnyama Limba QUALIFIED
Ricardo R OldroydUnited KingdomElwin Sharvill RENEWAL
Darci B VenereFranceElwin Sharvill NEW
Francesco E KolmetzSpainOnyama Limba UNQUALIFIED
Jones T WieserItalyAmy Elsner UNQUALIFIED
Ivar V RulapaughArgentinaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David A KuskoGermany2026-06-12Dorl, James J Esq NEW80Anna Fali
1001Ricardo G SchemmerFrance2026-06-18Chemel, James L Cpa NEGOTIATION24Amy Elsner
1002Tony O SergiGermany2026-06-04Feltz Printing Service NEW86Amy Elsner
1003Ashley B GillianCanada2026-06-24King, Christopher A Esq QUALIFIED90Onyama Limba
1004Aruna X MaletBrazil2026-06-18Truhlar And Truhlar Attys NEGOTIATION95Stephen Shaw
1005David Y GillianGermany2026-06-16Truhlar And Truhlar Attys RENEWAL68Ioni Bowcher
1006Leja J MorascaJapan2026-06-17Feiner Bros RENEWAL77Xuxue Feng
1007Munro N VenereUnited Kingdom2026-06-19Commercial Press PROPOSAL6Amy Elsner
1008Isabel T RutaBrazil2026-06-20Feiner Bros UNQUALIFIED19Ivan Magalhaes
1009Munro Y GillianJapan2026-06-20Chapman, Ross E Esq RENEWAL47Onyama Limba
1010Tony X MaletSpain2026-06-09Chemel, James L Cpa UNQUALIFIED50Amy Elsner
1011Isabel I OldroydCanada2026-06-26Printing Dimensions NEGOTIATION48Asiya Javayant
1012Faith I NestleBrazil2026-06-10Chanay, Jeffrey A Esq RENEWAL26Ioni Bowcher
1013Aika S VocelkaIndia2026-06-28Feiner Bros QUALIFIED83Xuxue Feng
1014Costa E RoysterFrance2026-06-09Truhlar And Truhlar Attys NEW43Ivan Magalhaes
1015James Y FerenczBrazil2026-06-29Dorl, James J Esq PROPOSAL31Onyama Limba
1016Darci V AmigonArgentina2026-06-12Chanay, Jeffrey A Esq UNQUALIFIED77Asiya Javayant
1017Maria K CaldareraCanada2026-06-14Buckley Miller Wright UNQUALIFIED32Stephen Shaw
1018Mayumi C RutaUnited Kingdom2026-06-14Feltz Printing Service NEW74Bernardo Dominic
1019Rodrigues D PaprockiIndia2026-07-02Rousseaux, Michael Esq NEW54Stephen Shaw
1020Octavia F ChuiJapan2026-06-19Feltz Printing Service PROPOSAL55Onyama Limba
1021Juan M PoquetteCanada2026-06-26Printing Dimensions RENEWAL99Bernardo Dominic
1022Chavez I KuskoGermany2026-06-08Dorl, James J Esq UNQUALIFIED83Anna Fali
1023Faith E GillianRussia2026-06-04Dorl, James J Esq QUALIFIED32Ivan Magalhaes
1024Emily N AmigonSpain2026-06-22Rousseaux, Michael Esq UNQUALIFIED45Onyama Limba
1025Rodrigues J FerenczCanada2026-06-08Chemel, James L Cpa NEGOTIATION62Xuxue Feng
1026Jefferson S OldroydGermany2026-07-03Feiner Bros RENEWAL19Ivan Magalhaes
1027Adams J PoquetteFrance2026-06-09Chemel, James L Cpa UNQUALIFIED2Bernardo Dominic
1028Darci G NestleJapan2026-06-20Benton, John B Jr RENEWAL90Ioni Bowcher
1029Misaki E RimJapan2026-06-27Morlong Associates NEW43Asiya Javayant
1030Aruna P KolmetzFrance2026-06-08Truhlar And Truhlar Attys NEGOTIATION5Elwin Sharvill
1031Ivar T WieserItaly2026-06-29Morlong Associates NEW68Stephen Shaw
1032Aditya A SchemmerJapan2026-06-21Chemel, James L Cpa PROPOSAL90Elwin Sharvill
1033Jennifer A MarrierIndia2026-06-11Feltz Printing Service PROPOSAL41Amy Elsner
1034Antonio B ButtBrazil2026-06-24Feiner Bros NEW7Xuxue Feng
1035Johnson O TollnerRussia2026-06-15Rangoni Of Florence QUALIFIED67Ivan Magalhaes
1036Costa U IturbideJapan2026-06-18Dorl, James J Esq UNQUALIFIED43Asiya Javayant
1037Leja V SchemmerItaly2026-06-24Morlong Associates QUALIFIED32Elwin Sharvill
1038Octavia T StockhamGermany2026-06-30Commercial Press UNQUALIFIED14Ioni Bowcher
1039Ashley U OstroskyGermany2026-07-02Morlong Associates NEW26Anna Fali
1040Alejandro L RulapaughSpain2026-06-14Chanay, Jeffrey A Esq UNQUALIFIED7Anna Fali
1041David O AmigonGermany2026-07-03Truhlar And Truhlar Attys RENEWAL50Amy Elsner
1042Greenwood V AmigonGermany2026-06-08Printing Dimensions PROPOSAL71Xuxue Feng
1043Darci Q IturbideRussia2026-06-07Chanay, Jeffrey A Esq NEW19Ioni Bowcher
1044Jennifer Q ButtJapan2026-06-22Printing Dimensions NEGOTIATION54Elwin Sharvill
1045Wickens I PaprockiBrazil2026-06-17Feltz Printing Service QUALIFIED90Ioni Bowcher
1046Mujtaba K DoeBrazil2026-06-27Morlong Associates UNQUALIFIED32Amy Elsner
1047Juan V NickaIndia2026-07-02Feltz Printing Service RENEWAL78Elwin Sharvill
1048Aruna I GillianUnited Kingdom2026-06-06Chanay, Jeffrey A Esq NEW60Ivan Magalhaes
1049David Q ChuiFrance2026-07-02Commercial Press NEW93Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aditya O NestleSpainAnna Fali QUALIFIED
Rodrigues Q OldroydCanadaBernardo Dominic NEGOTIATION
Maria W NestleJapanIvan Magalhaes QUALIFIED
Mayumi P StockhamFranceElwin Sharvill NEGOTIATION
Salvatore T SaylorsSpainIoni Bowcher NEW
James R MorascaRussiaOnyama Limba UNQUALIFIED
Costa Z BologniaJapanXuxue Feng NEGOTIATION
Wickens D CampainGermanyAnna Fali UNQUALIFIED
James Q MaletUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin P GillianIndiaIoni Bowcher NEW
Jennifer V RimIndiaAsiya Javayant UNQUALIFIED
Maisha G BowleyArgentinaBernardo Dominic QUALIFIED
Leon G FerenczUnited KingdomIoni Bowcher NEW
Nicolas W BowleyArgentinaStephen Shaw QUALIFIED
Leon R GauchoFranceAsiya Javayant NEGOTIATION
Aditya U AlbaresGermanyAnna Fali NEGOTIATION
Aruna H FerenczRussiaStephen Shaw UNQUALIFIED
Misaki E SaylorsRussiaIoni Bowcher QUALIFIED
Emily F PoquetteArgentinaElwin Sharvill NEW
Munro T NestleUnited KingdomXuxue Feng PROPOSAL
Leja H StockhamSpainIoni Bowcher NEW
Tony O AmigonUnited KingdomXuxue Feng QUALIFIED
Leon F MorascaIndiaIvan Magalhaes NEW
Julie G PerinSpainAnna Fali NEGOTIATION
Rodrigues X GillianAustraliaStephen Shaw PROPOSAL
James M StensethGermanyAmy Elsner NEW
Adams A InouyeJapanBernardo Dominic NEW
Costa O MacleadGermanyAsiya Javayant UNQUALIFIED
Stacey R ButtSpainIoni Bowcher NEW
Kaitlin G ButtIndiaAnna Fali NEGOTIATION
Mujtaba L GillianArgentinaAnna Fali NEW
Johnson X PerinJapanXuxue Feng NEGOTIATION
Kadeem B VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Tony S SchemmerAustraliaAsiya Javayant NEW
David X SchemmerGermanyIoni Bowcher RENEWAL
Clifford I IturbideAustraliaBernardo Dominic NEGOTIATION
Claire K MorascaArgentinaAnna Fali UNQUALIFIED
Emily A MacleadSpainIoni Bowcher UNQUALIFIED
Alejandro N SlusarskiRussiaAsiya Javayant QUALIFIED
Sinclair T AlbaresFranceAmy Elsner NEGOTIATION
Maria C FigeroaGermanyAnna Fali UNQUALIFIED
Maisha L MarrierBrazilElwin Sharvill QUALIFIED
Mayumi H CaldareraItalyAsiya Javayant UNQUALIFIED
Silvio I GauchoItalyElwin Sharvill UNQUALIFIED
Cody K DoeSpainAmy Elsner NEW
Maisha G FollerFranceStephen Shaw NEGOTIATION
Morrow R DarakjyCanadaXuxue Feng NEW
Nicolas C WhobreyJapanIoni Bowcher UNQUALIFIED
Leja Z RoysterItalyIoni Bowcher QUALIFIED
Chavez V FlosiRussiaAnna Fali PROPOSAL
Frozen Columns
Name
Greenwood I Rulapaugh
Stacey E Venere
Isabel Q Nicka
Kaitlin X Caudy
Faith Q Amigon
Maisha W Wieser
Mujtaba T Campain
Ashley G Bowley
Mujtaba C Caudy
Mayumi W Malet
Juan T Caldarera
Adams O Bowley
Aruna H Albares
Chavez X Figeroa
Octavia P Gillian
Izzy B Gaucho
Leon G Slusarski
Stacey W Stenseth
Emily K Venere
Aruna I Slusarski
Silvio F Oldroyd
Murillo C Wieser
Mayumi E Oldroyd
Costa G Gaucho
Francesco J Vocelka
Johnson H Caldarera
Ivar J Albares
Darci T Poquette
Misaki A Ostrosky
Jennifer Q Caldarera
Murillo C Gaucho
Ricardo P Chui
Aruna S Campain
Aditya U Stockham
Aika Y Perin
Francesco L Amigon
James N Poquette
Izzy N Saylors
Deepesh L Inouye
Stacey Y Caldarera
Claire O Saylors
Ivar F Albares
Kadeem A Vocelka
Stacey G Glick
Morrow N Poquette
Misaki M Whobrey
Kadeem I Morasca
Francesco P Albares
Isabel X Marrier
Clifford B Perin
IdCountryDate
1000United Kingdom2026-06-14
1001Germany2026-06-26
1002Australia2026-06-11
1003Brazil2026-06-04
1004Russia2026-06-12
1005Japan2026-07-03
1006Australia2026-06-24
1007Brazil2026-06-16
1008Brazil2026-06-20
1009India2026-06-23
1010Canada2026-06-29
1011India2026-06-06
1012Germany2026-06-11
1013Australia2026-06-12
1014Brazil2026-06-12
1015India2026-06-10
1016Spain2026-06-28
1017Argentina2026-06-19
1018Japan2026-07-03
1019Germany2026-06-13
1020Japan2026-07-03
1021Germany2026-06-05
1022Australia2026-06-25
1023Spain2026-06-20
1024Australia2026-06-05
1025Brazil2026-07-03
1026India2026-06-12
1027Germany2026-06-04
1028India2026-06-09
1029France2026-06-15
1030Italy2026-06-13
1031France2026-06-14
1032Brazil2026-07-03
1033India2026-06-10
1034Canada2026-07-01
1035Japan2026-06-12
1036Spain2026-06-17
1037India2026-06-08
1038Germany2026-06-23
1039Russia2026-06-15
1040Japan2026-06-28
1041Germany2026-06-12
1042Germany2026-06-08
1043Canada2026-06-23
1044France2026-06-09
1045Brazil2026-06-05
1046Canada2026-06-05
1047Italy2026-07-03
1048Japan2026-06-10
1049Argentina2026-06-06

On-Demand Data

NameIdCountryDate
Ricardo A Inouye1000Canada2026-06-28
Smith S Saylors1001France2026-07-03
Jennifer M Bowley1002India2026-06-07
Munro J Gillian1003Canada2026-06-08
Chavez I Poquette1004Canada2026-06-10
Adams S Rulapaugh1005Germany2026-06-27
Jennifer O Darakjy1006Canada2026-07-02
Costa O Gillian1007Argentina2026-06-12
Francesco B Amigon1008Russia2026-06-09
Claire V Kolmetz1009India2026-06-27
Kadeem S Ferencz1010Japan2026-06-07
Aditya P Iturbide1011Spain2026-06-11
Jeanfrancois Q Chui1012Brazil2026-06-07
Misaki D Stenseth1013Italy2026-06-19
Ricardo T Whobrey1014Australia2026-06-23
Isabel M Stockham1015Canada2026-06-17
Leja H Vocelka1016India2026-06-20
Jeanfrancois C Marrier1017India2026-06-10
Sinclair S Royster1018United Kingdom2026-06-22
Leon V Iturbide1019United Kingdom2026-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams O MarrierFranceAsiya Javayant UNQUALIFIED
Chavez T MaletBrazilOnyama Limba UNQUALIFIED
Misaki M GlickUnited KingdomBernardo Dominic PROPOSAL
Murillo Y GauchoIndiaElwin Sharvill UNQUALIFIED
Jefferson T MarrierArgentinaAmy Elsner NEW
Wickens P BowleyUnited KingdomAmy Elsner NEGOTIATION
Julie Q FigeroaCanadaIoni Bowcher NEW
Misaki U SergiBrazilIoni Bowcher NEGOTIATION
Costa H BologniaCanadaAsiya Javayant UNQUALIFIED
Jennifer J KuskoSpainIvan Magalhaes NEW
Antonio U NickaArgentinaElwin Sharvill PROPOSAL
Munro J ChuiBrazilStephen Shaw NEGOTIATION
Wickens R DilliardCanadaElwin Sharvill RENEWAL
Leja K PaprockiBrazilAmy Elsner NEW
Morrow V SaylorsJapanOnyama Limba NEGOTIATION
Jefferson E MaletIndiaBernardo Dominic PROPOSAL
Faith U WaycottRussiaOnyama Limba RENEWAL
Julie J CaudyUnited KingdomAnna Fali NEW
Wickens H PoquetteItalyAmy Elsner PROPOSAL
Jones L CaudyAustraliaAmy Elsner NEGOTIATION
Leja U VocelkaAustraliaIoni Bowcher RENEWAL
James B FollerRussiaAnna Fali NEW
James A VocelkaFranceAnna Fali PROPOSAL
Chavez J SergiCanadaIoni Bowcher UNQUALIFIED
Izzy U WhobreyJapanXuxue Feng RENEWAL
Antonio Y MaletUnited KingdomIoni Bowcher QUALIFIED
Clifford G SlusarskiAustraliaOnyama Limba NEW
Aika S PerinAustraliaAnna Fali NEW
Jennifer H NestleCanadaIvan Magalhaes PROPOSAL
Smith N PoquetteSpainXuxue Feng NEGOTIATION
Jones V MaletAustraliaBernardo Dominic UNQUALIFIED
Antonio B SlusarskiIndiaAnna Fali NEGOTIATION
Aika V PaprockiIndiaElwin Sharvill RENEWAL
Tony L PaprockiGermanyOnyama Limba NEGOTIATION
Mujtaba Z WieserSpainAmy Elsner UNQUALIFIED
Leon M RutaAustraliaAsiya Javayant UNQUALIFIED
Mujtaba B CaldareraAustraliaIvan Magalhaes UNQUALIFIED
Ashley D RutaUnited KingdomIoni Bowcher RENEWAL
Sinclair P GarufiBrazilXuxue Feng RENEWAL
Octavia S MaletArgentinaAmy Elsner RENEWAL

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