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 A StensethIndiaIoni Bowcher NEW
David E IturbideGermanyIoni Bowcher RENEWAL
Sinclair K StockhamIndiaXuxue Feng NEGOTIATION
Mujtaba S FigeroaBrazilAnna Fali RENEWAL
Maria R FigeroaJapanOnyama Limba UNQUALIFIED
Isabel F BologniaGermanyOnyama Limba RENEWAL
Ivar N WaycottAustraliaStephen Shaw NEGOTIATION
Sinclair B WaycottRussiaIoni Bowcher UNQUALIFIED
Nicolas O PerinUnited KingdomAmy Elsner NEGOTIATION
Alejandro O CampainSpainBernardo Dominic PROPOSAL
Francesco E VenereSpainXuxue Feng RENEWAL
Wickens X MorascaRussiaBernardo Dominic UNQUALIFIED
Octavia W VenereIndiaBernardo Dominic NEW
Ricardo J TollnerCanadaBernardo Dominic NEW
Cody T OstroskyIndiaElwin Sharvill QUALIFIED
Jefferson Q StensethCanadaOnyama Limba NEW
Jeanfrancois A MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Izzy K PaprockiSpainXuxue Feng NEGOTIATION
Costa M CaldareraBrazilXuxue Feng NEGOTIATION
Smith J FigeroaCanadaIoni Bowcher NEGOTIATION
Leja M PaprockiCanadaIvan Magalhaes NEW
Nicolas H MorascaJapanAmy Elsner NEW
Maria P SergiBrazilAsiya Javayant PROPOSAL
Aruna U VenereBrazilAmy Elsner PROPOSAL
James Q CaudyFranceAmy Elsner UNQUALIFIED
Deepesh F FigeroaGermanyOnyama Limba PROPOSAL
Nicolas G VenereFranceOnyama Limba RENEWAL
Isabel O WhobreyFranceElwin Sharvill UNQUALIFIED
Smith O FlosiBrazilIoni Bowcher RENEWAL
Maisha G SchemmerUnited KingdomOnyama Limba NEW
Ricardo A WaycottUnited KingdomXuxue Feng NEW
Aika R StockhamFranceStephen Shaw RENEWAL
Chavez R KolmetzBrazilIoni Bowcher UNQUALIFIED
Leon I SlusarskiArgentinaStephen Shaw NEW
Munro Z BologniaIndiaBernardo Dominic NEW
Ashley Y ChuiIndiaXuxue Feng UNQUALIFIED
Stacey S BriddickJapanIvan Magalhaes RENEWAL
Maisha I SaylorsRussiaStephen Shaw RENEWAL
Ashley S KolmetzBrazilAmy Elsner QUALIFIED
Costa B AlbaresRussiaAsiya Javayant NEW
Ashley Y BriddickFranceBernardo Dominic NEGOTIATION
Clifford W KuskoRussiaXuxue Feng PROPOSAL
Aruna L FlosiFranceBernardo Dominic PROPOSAL
Salvatore C RoysterRussiaStephen Shaw NEGOTIATION
James U MorascaAustraliaAmy Elsner NEGOTIATION
Jones O MaletRussiaAmy Elsner QUALIFIED
Darci U PerinIndiaElwin Sharvill RENEWAL
Silvio A GillianCanadaAsiya Javayant NEW
Wickens H FollerUnited KingdomOnyama Limba PROPOSAL
Faith A OstroskyRussiaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin V SaylorsJapanBernardo Dominic PROPOSAL
Mayumi T TollnerBrazilAmy Elsner PROPOSAL
Octavia R DoeItalyStephen Shaw PROPOSAL
Faith F FigeroaAustraliaOnyama Limba PROPOSAL
Aditya H BowleyFranceAmy Elsner NEGOTIATION
Adams U RutaCanadaXuxue Feng QUALIFIED
Leon D VocelkaSpainXuxue Feng NEW
Murillo J MorascaJapanOnyama Limba UNQUALIFIED
Isabel L ShinkoBrazilIoni Bowcher QUALIFIED
Silvio Q GillianJapanAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco X FigeroaCanada2026-07-28Benton, John B Jr UNQUALIFIED90Stephen Shaw
1001Kaitlin V StockhamUnited Kingdom2026-07-31Morlong Associates NEW42Amy Elsner
1002Jones V MorascaSpain2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED83Stephen Shaw
1003Wickens O RimSpain2026-08-16Printing Dimensions UNQUALIFIED92Anna Fali
1004Ivar Y MorascaFrance2026-08-03Chanay, Jeffrey A Esq UNQUALIFIED86Elwin Sharvill
1005Wickens S MaletGermany2026-07-23King, Christopher A Esq PROPOSAL98Amy Elsner
1006Jennifer J FlosiBrazil2026-08-11Dorl, James J Esq RENEWAL95Ivan Magalhaes
1007Mujtaba I SlusarskiBrazil2026-07-26Chemel, James L Cpa QUALIFIED3Bernardo Dominic
1008Chavez Z DilliardAustralia2026-07-30Buckley Miller Wright QUALIFIED78Ioni Bowcher
1009Wickens O MacleadItaly2026-08-05Chanay, Jeffrey A Esq NEW98Xuxue Feng
1010Jennifer K WhobreySpain2026-08-09Commercial Press UNQUALIFIED80Ivan Magalhaes
1011Rodrigues U DarakjyJapan2026-08-19Truhlar And Truhlar Attys NEW7Xuxue Feng
1012Julie B FlosiUnited Kingdom2026-07-26Chapman, Ross E Esq QUALIFIED62Xuxue Feng
1013Maria C IturbideUnited Kingdom2026-08-07Buckley Miller Wright PROPOSAL59Stephen Shaw
1014Kaitlin K MarrierIndia2026-07-23Feltz Printing Service QUALIFIED24Bernardo Dominic
1015Cody G MorascaJapan2026-07-31Chemel, James L Cpa RENEWAL41Ivan Magalhaes
1016Aruna I ButtItaly2026-07-24Feiner Bros NEW85Onyama Limba
1017Smith B CampainRussia2026-08-04Morlong Associates NEW12Asiya Javayant
1018Smith R BowleyBrazil2026-07-26Morlong Associates UNQUALIFIED33Stephen Shaw
1019Silvio R CampainRussia2026-08-05Commercial Press UNQUALIFIED4Elwin Sharvill
1020James H GarufiCanada2026-08-05Morlong Associates UNQUALIFIED77Bernardo Dominic
1021Silvio M NickaCanada2026-07-27King, Christopher A Esq QUALIFIED14Ioni Bowcher
1022James M KolmetzUnited Kingdom2026-08-18Chemel, James L Cpa RENEWAL33Ioni Bowcher
1023Ricardo B SlusarskiUnited Kingdom2026-08-17Printing Dimensions RENEWAL95Bernardo Dominic
1024Greenwood W StensethJapan2026-07-25King, Christopher A Esq PROPOSAL71Elwin Sharvill
1025Salvatore W AlbaresItaly2026-08-19Chanay, Jeffrey A Esq NEGOTIATION32Stephen Shaw
1026Salvatore S RutaSpain2026-07-29Dorl, James J Esq PROPOSAL33Elwin Sharvill
1027Chavez Q FollerAustralia2026-08-04Feiner Bros PROPOSAL46Bernardo Dominic
1028Ricardo J IturbideAustralia2026-08-09Buckley Miller Wright QUALIFIED87Asiya Javayant
1029Salvatore J StockhamJapan2026-08-17Chanay, Jeffrey A Esq QUALIFIED95Anna Fali
1030Faith G PoquetteJapan2026-07-22Printing Dimensions UNQUALIFIED86Xuxue Feng
1031Mujtaba T WaycottSpain2026-08-16Commercial Press RENEWAL31Asiya Javayant
1032Claire K AmigonGermany2026-08-11Chanay, Jeffrey A Esq NEW7Ioni Bowcher
1033Leon G StockhamSpain2026-07-28Commercial Press RENEWAL10Ivan Magalhaes
1034Leon L OstroskyIndia2026-08-18Feiner Bros NEW15Elwin Sharvill
1035Misaki L MacleadItaly2026-08-01Rousseaux, Michael Esq NEGOTIATION53Elwin Sharvill
1036Chavez L PerinJapan2026-08-06Feltz Printing Service RENEWAL81Anna Fali
1037Tony U SchemmerSpain2026-08-04King, Christopher A Esq PROPOSAL80Xuxue Feng
1038Aditya Y MarrierUnited Kingdom2026-07-29King, Christopher A Esq QUALIFIED49Bernardo Dominic
1039Leja F MaletGermany2026-08-16Morlong Associates PROPOSAL97Onyama Limba
1040Morrow M BologniaSpain2026-07-22Chemel, James L Cpa NEW42Ioni Bowcher
1041Adams W DarakjyGermany2026-07-31Feltz Printing Service RENEWAL28Asiya Javayant
1042Darci M SlusarskiAustralia2026-07-24Chapman, Ross E Esq QUALIFIED61Ivan Magalhaes
1043Faith T GlickBrazil2026-07-26King, Christopher A Esq PROPOSAL72Bernardo Dominic
1044Antonio L KolmetzRussia2026-07-28Feiner Bros QUALIFIED51Asiya Javayant
1045Aruna R AmigonBrazil2026-08-16Dorl, James J Esq QUALIFIED76Amy Elsner
1046Leja R KuskoArgentina2026-08-18Chanay, Jeffrey A Esq QUALIFIED90Amy Elsner
1047Tony V SchemmerGermany2026-08-09Dorl, James J Esq QUALIFIED6Anna Fali
1048Maria D MarrierItaly2026-08-20Truhlar And Truhlar Attys RENEWAL49Stephen Shaw
1049Stacey O FlosiAustralia2026-08-20Rousseaux, Michael Esq RENEWAL25Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aditya X DarakjyArgentinaIoni Bowcher UNQUALIFIED
Kadeem T MorascaAustraliaIvan Magalhaes RENEWAL
Greenwood R DoeJapanElwin Sharvill RENEWAL
Kadeem H CampainFranceAmy Elsner NEGOTIATION
Antonio S WaycottSpainElwin Sharvill NEGOTIATION
Wickens R SchemmerGermanyOnyama Limba UNQUALIFIED
Silvio N BriddickGermanyIvan Magalhaes PROPOSAL
Adams M RoysterBrazilBernardo Dominic UNQUALIFIED
Rodrigues T CaudyItalyXuxue Feng PROPOSAL
Costa B GauchoFranceOnyama Limba UNQUALIFIED
Tony F TollnerBrazilAnna Fali NEGOTIATION
Mayumi G NestleAustraliaBernardo Dominic UNQUALIFIED
Nicolas A CaudyUnited KingdomElwin Sharvill RENEWAL
Rodrigues D CaldareraBrazilAmy Elsner NEW
Johnson L ButtUnited KingdomElwin Sharvill NEW
Jones I PaprockiAustraliaElwin Sharvill RENEWAL
Sinclair M NickaUnited KingdomBernardo Dominic UNQUALIFIED
Aika D MorascaBrazilAnna Fali UNQUALIFIED
James E MorascaBrazilIoni Bowcher RENEWAL
Stacey N RutaFranceAmy Elsner QUALIFIED
Ashley V AlbaresArgentinaIoni Bowcher NEW
David V MaletGermanyStephen Shaw UNQUALIFIED
Octavia Q MarrierSpainStephen Shaw NEW
Alejandro D ChuiSpainBernardo Dominic NEGOTIATION
Jefferson X GauchoSpainBernardo Dominic NEGOTIATION
Claire T RimIndiaElwin Sharvill NEGOTIATION
Munro Z BriddickRussiaBernardo Dominic UNQUALIFIED
Murillo F GlickBrazilAsiya Javayant NEGOTIATION
Misaki Y RutaArgentinaIoni Bowcher UNQUALIFIED
Sinclair D WieserIndiaElwin Sharvill PROPOSAL
Morrow R OstroskyArgentinaBernardo Dominic QUALIFIED
Antonio W InouyeSpainAsiya Javayant NEGOTIATION
Smith R RulapaughFranceAmy Elsner RENEWAL
Octavia S DarakjyUnited KingdomBernardo Dominic NEGOTIATION
Tony I CampainGermanyAnna Fali PROPOSAL
Ivar L KuskoAustraliaAsiya Javayant QUALIFIED
Aditya O OldroydSpainOnyama Limba RENEWAL
Morrow U StockhamIndiaAsiya Javayant PROPOSAL
Octavia T PoquetteGermanyBernardo Dominic NEGOTIATION
Jefferson F RulapaughJapanIvan Magalhaes NEGOTIATION
Aruna S PerinArgentinaOnyama Limba NEW
Mujtaba S AlbaresGermanyIvan Magalhaes RENEWAL
Costa L CaudyArgentinaIoni Bowcher NEGOTIATION
Wickens W RutaItalyIvan Magalhaes NEGOTIATION
Maisha T RoysterIndiaOnyama Limba RENEWAL
David C WieserCanadaElwin Sharvill UNQUALIFIED
Izzy T RoysterAustraliaAmy Elsner RENEWAL
Adams H CaudyBrazilAmy Elsner QUALIFIED
Stacey M OstroskyFranceAnna Fali UNQUALIFIED
Murillo Z StockhamUnited KingdomStephen Shaw UNQUALIFIED
Frozen Columns
Name
Antonio F Bolognia
Jeanfrancois D Bowley
Francesco C Albares
Alejandro W Glick
Chavez H Inouye
Darci F Paprocki
Adams Y Schemmer
Sinclair R Inouye
Nicolas G Campain
Wickens I Nestle
Jones Z Maclead
Greenwood C Gillian
Maisha I Flosi
Sinclair W Shinko
Faith J Morasca
Maisha I Bowley
Arvin W Kusko
Murillo A Butt
Jennifer B Venere
Mujtaba Y Caudy
Johnson U Paprocki
Arvin H Flosi
Antonio S Waycott
Deepesh P Maclead
Deepesh G Paprocki
Cody V Stockham
Jefferson J Rulapaugh
Faith Y Darakjy
Salvatore Y Caldarera
Julie B Glick
Rodrigues N Sergi
Clifford N Schemmer
Aika P Ostrosky
Ricardo S Whobrey
Misaki W Whobrey
Jefferson Q Nestle
Nicolas X Stockham
Leja K Campain
Johnson T Ferencz
Jefferson I Waycott
Francesco X Oldroyd
Kadeem P Shinko
Deepesh I Gillian
Emily B Whobrey
Misaki P Butt
Smith L Whobrey
Ashley B Iturbide
Munro L Wieser
Jennifer V Marrier
Aruna Q Saylors
IdCountryDate
1000United Kingdom2026-08-19
1001Australia2026-07-30
1002Germany2026-08-08
1003Russia2026-07-31
1004Japan2026-08-15
1005United Kingdom2026-07-24
1006Australia2026-08-10
1007Italy2026-07-24
1008Italy2026-08-10
1009France2026-08-19
1010Brazil2026-08-08
1011France2026-08-14
1012Germany2026-08-12
1013France2026-08-17
1014Canada2026-08-12
1015India2026-08-09
1016Australia2026-08-07
1017Spain2026-08-09
1018Spain2026-08-15
1019Italy2026-07-23
1020Argentina2026-07-30
1021France2026-08-06
1022Spain2026-08-16
1023United Kingdom2026-08-10
1024Spain2026-08-18
1025India2026-07-25
1026Australia2026-07-22
1027Italy2026-08-10
1028United Kingdom2026-07-27
1029France2026-07-26
1030Brazil2026-08-20
1031Argentina2026-07-30
1032Italy2026-08-07
1033Germany2026-08-12
1034Spain2026-08-08
1035Japan2026-07-23
1036United Kingdom2026-08-05
1037Germany2026-08-14
1038Canada2026-07-23
1039Italy2026-08-19
1040Japan2026-07-27
1041France2026-07-30
1042Italy2026-08-06
1043Argentina2026-08-20
1044France2026-08-06
1045Spain2026-08-01
1046Australia2026-08-03
1047Australia2026-08-10
1048Brazil2026-08-16
1049Germany2026-07-24

On-Demand Data

NameIdCountryDate
Silvio V Schemmer1000Germany2026-08-07
Wickens H Caldarera1001Russia2026-08-04
Aruna S Vocelka1002Japan2026-07-29
Wickens G Shinko1003Japan2026-07-31
Juan G Foller1004Spain2026-07-22
Emily F Butt1005Germany2026-08-20
Mujtaba W Gaucho1006India2026-07-31
Octavia E Dilliard1007Brazil2026-08-04
Salvatore M Oldroyd1008Argentina2026-08-14
Wickens O Oldroyd1009Italy2026-08-05
Francesco T Marrier1010France2026-08-16
Emily I Figeroa1011India2026-08-11
Isabel T Perin1012Spain2026-07-26
Izzy H Glick1013Italy2026-08-18
Leja C Flosi1014India2026-07-30
Jones E Rim1015United Kingdom2026-07-29
Maria S Amigon1016Canada2026-08-10
Izzy I Foller1017Australia2026-08-06
Leon E Waycott1018Japan2026-08-19
Costa Z Perin1019France2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood N DarakjyFranceAmy Elsner RENEWAL
Ivar J AlbaresGermanyElwin Sharvill RENEWAL
Deepesh D FlosiIndiaBernardo Dominic NEGOTIATION
Rodrigues U PaprockiAustraliaXuxue Feng QUALIFIED
Johnson Q GlickGermanyXuxue Feng NEGOTIATION
Wickens T DoeIndiaOnyama Limba QUALIFIED
Alejandro E GlickFranceAmy Elsner NEW
Clifford H OstroskyArgentinaIoni Bowcher RENEWAL
Clifford H DilliardUnited KingdomElwin Sharvill NEW
Nicolas W StensethUnited KingdomBernardo Dominic NEGOTIATION
David S MacleadIndiaIoni Bowcher PROPOSAL
Murillo H MarrierRussiaAnna Fali QUALIFIED
Francesco S NestleAustraliaIoni Bowcher NEGOTIATION
Aruna E CaudyCanadaXuxue Feng QUALIFIED
Greenwood A RimBrazilBernardo Dominic QUALIFIED
Arvin N PerinSpainAmy Elsner UNQUALIFIED
Mayumi M ButtGermanyIvan Magalhaes RENEWAL
Mujtaba Q OldroydJapanIoni Bowcher RENEWAL
Clifford W OldroydSpainIoni Bowcher NEW
Isabel Y DilliardIndiaIoni Bowcher UNQUALIFIED
David T AlbaresCanadaAmy Elsner NEW
Mujtaba H BriddickFranceIoni Bowcher NEW
Francesco H DarakjyGermanyXuxue Feng RENEWAL
Leon B WieserAustraliaOnyama Limba QUALIFIED
Octavia P BriddickUnited KingdomOnyama Limba PROPOSAL
Jennifer B MaletAustraliaBernardo Dominic RENEWAL
Johnson L ChuiRussiaIoni Bowcher NEW
Johnson V AlbaresArgentinaAsiya Javayant PROPOSAL
Clifford W GillianBrazilIoni Bowcher QUALIFIED
Deepesh Q StensethItalyElwin Sharvill PROPOSAL
Kaitlin K DarakjyArgentinaBernardo Dominic UNQUALIFIED
Mayumi T AlbaresArgentinaAsiya Javayant PROPOSAL
Wickens G MarrierCanadaStephen Shaw NEW
Antonio W SchemmerJapanXuxue Feng NEW
Misaki Y DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Jones Q FollerJapanBernardo Dominic RENEWAL
Aruna S ShinkoCanadaIvan Magalhaes NEGOTIATION
Faith J PoquetteRussiaAsiya Javayant UNQUALIFIED
Aditya A MorascaGermanyBernardo Dominic PROPOSAL
Silvio D GauchoItalyAmy Elsner QUALIFIED

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