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
Chavez F KolmetzFranceAsiya Javayant NEW
Darci W SaylorsBrazilAnna Fali RENEWAL
Octavia V WieserBrazilBernardo Dominic RENEWAL
Munro O DoeGermanyXuxue Feng UNQUALIFIED
Julie R PerinAustraliaAsiya Javayant QUALIFIED
Maria S GarufiIndiaStephen Shaw NEW
Smith E FlosiItalyOnyama Limba QUALIFIED
Jennifer B KolmetzArgentinaAnna Fali QUALIFIED
Emily K KuskoAustraliaAmy Elsner QUALIFIED
James R MorascaIndiaXuxue Feng PROPOSAL
Sinclair E SlusarskiUnited KingdomAmy Elsner NEGOTIATION
Silvio D BriddickJapanStephen Shaw RENEWAL
Tony V DarakjyBrazilOnyama Limba NEW
Greenwood I NestleAustraliaAmy Elsner NEGOTIATION
Aruna Z PaprockiArgentinaXuxue Feng UNQUALIFIED
Mujtaba O WhobreyGermanyIvan Magalhaes RENEWAL
Silvio D WaycottCanadaIvan Magalhaes NEW
Adams V BowleySpainElwin Sharvill QUALIFIED
Jones K CaudyCanadaOnyama Limba NEW
Misaki G OstroskyAustraliaOnyama Limba UNQUALIFIED
Johnson R AmigonGermanyAnna Fali RENEWAL
Juan A KolmetzItalyAmy Elsner UNQUALIFIED
Ivar K FollerCanadaAmy Elsner PROPOSAL
Antonio G NickaBrazilAsiya Javayant PROPOSAL
David C SlusarskiGermanyOnyama Limba RENEWAL
Sinclair P InouyeFranceStephen Shaw NEW
Octavia I SchemmerBrazilAsiya Javayant NEW
Munro K AlbaresFranceStephen Shaw QUALIFIED
James B RoysterIndiaIvan Magalhaes QUALIFIED
Morrow X RoysterRussiaBernardo Dominic RENEWAL
Clifford P MorascaSpainAnna Fali NEGOTIATION
Adams V SchemmerAustraliaAnna Fali RENEWAL
Mujtaba L KolmetzCanadaAnna Fali PROPOSAL
Leon S VenereSpainIoni Bowcher RENEWAL
Isabel M DilliardArgentinaAsiya Javayant RENEWAL
Chavez A CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Adams I DarakjyArgentinaBernardo Dominic PROPOSAL
Maisha G AmigonFranceXuxue Feng RENEWAL
Alejandro B MacleadFranceXuxue Feng PROPOSAL
Octavia Z VocelkaArgentinaElwin Sharvill RENEWAL
Rodrigues K CampainRussiaElwin Sharvill UNQUALIFIED
Smith Z MaletRussiaAsiya Javayant NEGOTIATION
Smith A IturbideRussiaAnna Fali UNQUALIFIED
Emily A SaylorsUnited KingdomBernardo Dominic RENEWAL
Greenwood Q GarufiIndiaElwin Sharvill PROPOSAL
Aditya U BowleyItalyAnna Fali QUALIFIED
Wickens K GarufiGermanyElwin Sharvill PROPOSAL
Morrow W ChuiGermanyIvan Magalhaes NEGOTIATION
Ivar L MacleadRussiaElwin Sharvill QUALIFIED
Maisha E VenereCanadaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ashley J FlosiUnited KingdomAmy Elsner RENEWAL
Murillo R ButtRussiaAsiya Javayant NEW
Greenwood N PerinIndiaAsiya Javayant NEGOTIATION
Ricardo V NestleGermanyStephen Shaw NEW
Wickens K NickaItalyIvan Magalhaes RENEWAL
Mayumi V NickaBrazilAnna Fali QUALIFIED
Octavia Y WhobreyCanadaOnyama Limba NEW
Ricardo A VocelkaSpainXuxue Feng RENEWAL
Maria N TollnerRussiaXuxue Feng NEW
Kaitlin B MaletSpainAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo P MacleadIndia2026-07-16Rousseaux, Michael Esq UNQUALIFIED24Bernardo Dominic
1001Aditya J GillianBrazil2026-07-06Feiner Bros PROPOSAL35Stephen Shaw
1002Silvio R WieserAustralia2026-07-17Rousseaux, Michael Esq QUALIFIED46Asiya Javayant
1003Kadeem J CampainBrazil2026-07-26Truhlar And Truhlar Attys UNQUALIFIED39Amy Elsner
1004Leon Q CaldareraJapan2026-07-29Truhlar And Truhlar Attys RENEWAL79Asiya Javayant
1005Aika K KuskoAustralia2026-07-06Commercial Press RENEWAL48Bernardo Dominic
1006Adams R FollerJapan2026-07-17Buckley Miller Wright RENEWAL79Elwin Sharvill
1007Misaki Z WhobreyUnited Kingdom2026-07-27Buckley Miller Wright QUALIFIED90Anna Fali
1008Julie X SlusarskiFrance2026-07-05Chanay, Jeffrey A Esq NEW57Xuxue Feng
1009Arvin W WieserCanada2026-07-11King, Christopher A Esq NEGOTIATION82Amy Elsner
1010Munro E StensethAustralia2026-07-12Benton, John B Jr PROPOSAL77Anna Fali
1011Johnson R VenereArgentina2026-07-03Morlong Associates NEW85Stephen Shaw
1012Nicolas W AmigonGermany2026-07-13Feiner Bros NEGOTIATION52Stephen Shaw
1013Mujtaba C KuskoAustralia2026-07-14Printing Dimensions RENEWAL40Elwin Sharvill
1014Aika H FollerJapan2026-07-18Rangoni Of Florence PROPOSAL62Xuxue Feng
1015Mujtaba S PerinUnited Kingdom2026-07-21Dorl, James J Esq PROPOSAL53Ioni Bowcher
1016Aika S FerenczAustralia2026-07-07Rangoni Of Florence NEW55Ioni Bowcher
1017Ivar A TollnerUnited Kingdom2026-07-05Benton, John B Jr UNQUALIFIED49Anna Fali
1018Claire M NickaCanada2026-07-02Rangoni Of Florence NEGOTIATION35Ivan Magalhaes
1019Francesco Q RulapaughItaly2026-07-04Printing Dimensions QUALIFIED20Anna Fali
1020Julie W KolmetzUnited Kingdom2026-07-05King, Christopher A Esq QUALIFIED14Stephen Shaw
1021Sinclair J IturbideGermany2026-07-11Chemel, James L Cpa UNQUALIFIED80Xuxue Feng
1022Clifford P ButtJapan2026-07-20Truhlar And Truhlar Attys NEGOTIATION72Onyama Limba
1023Jones V GillianRussia2026-07-16Truhlar And Truhlar Attys NEW20Xuxue Feng
1024Julie I SlusarskiJapan2026-07-16Chapman, Ross E Esq QUALIFIED79Xuxue Feng
1025Deepesh Z CaudyRussia2026-07-23Truhlar And Truhlar Attys QUALIFIED82Ioni Bowcher
1026Deepesh T BowleyBrazil2026-07-24Rangoni Of Florence NEW15Stephen Shaw
1027Cody A MorascaUnited Kingdom2026-07-24Chapman, Ross E Esq QUALIFIED72Ioni Bowcher
1028Greenwood I GauchoFrance2026-07-27Chapman, Ross E Esq QUALIFIED52Xuxue Feng
1029Octavia D OstroskyArgentina2026-07-20Benton, John B Jr UNQUALIFIED63Asiya Javayant
1030Mayumi B TollnerIndia2026-07-28Buckley Miller Wright UNQUALIFIED66Asiya Javayant
1031Emily C VenereUnited Kingdom2026-07-21Rangoni Of Florence NEGOTIATION59Anna Fali
1032Leon T CaldareraBrazil2026-07-18Chapman, Ross E Esq NEW75Ioni Bowcher
1033Kadeem B SaylorsArgentina2026-07-06Printing Dimensions NEGOTIATION3Onyama Limba
1034Jones P InouyeBrazil2026-07-28Chemel, James L Cpa QUALIFIED89Asiya Javayant
1035Costa J OldroydSpain2026-07-06Buckley Miller Wright PROPOSAL68Anna Fali
1036Adams A KolmetzGermany2026-07-05Chanay, Jeffrey A Esq NEW75Xuxue Feng
1037Murillo N SlusarskiAustralia2026-07-10King, Christopher A Esq UNQUALIFIED88Amy Elsner
1038Jeanfrancois V RutaJapan2026-07-01Morlong Associates RENEWAL18Onyama Limba
1039Mujtaba P MaletFrance2026-07-21Feltz Printing Service PROPOSAL27Bernardo Dominic
1040Maisha S GauchoAustralia2026-07-20Chemel, James L Cpa PROPOSAL64Stephen Shaw
1041Greenwood P SaylorsUnited Kingdom2026-07-29Benton, John B Jr PROPOSAL55Bernardo Dominic
1042Isabel S RoysterFrance2026-07-16King, Christopher A Esq NEGOTIATION96Ivan Magalhaes
1043Aika R FlosiUnited Kingdom2026-07-19Dorl, James J Esq NEGOTIATION61Bernardo Dominic
1044Ashley I WieserItaly2026-07-21Chemel, James L Cpa RENEWAL28Stephen Shaw
1045Murillo G KuskoFrance2026-07-05Dorl, James J Esq UNQUALIFIED11Anna Fali
1046Jennifer M MacleadAustralia2026-07-01Chemel, James L Cpa PROPOSAL91Bernardo Dominic
1047Adams Z MaletBrazil2026-07-22Commercial Press QUALIFIED38Onyama Limba
1048Aditya Q CaldareraUnited Kingdom2026-07-30Chemel, James L Cpa QUALIFIED34Amy Elsner
1049Misaki Z KolmetzIndia2026-07-25Buckley Miller Wright NEGOTIATION57Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Isabel D BriddickRussiaIoni Bowcher UNQUALIFIED
Julie A PaprockiSpainXuxue Feng QUALIFIED
Mayumi N GarufiSpainAsiya Javayant PROPOSAL
Kadeem A StockhamUnited KingdomIoni Bowcher NEW
Kaitlin Z FollerArgentinaStephen Shaw RENEWAL
Rodrigues M VenereItalyIvan Magalhaes UNQUALIFIED
Arvin B AlbaresArgentinaIoni Bowcher NEGOTIATION
Misaki O RimGermanyElwin Sharvill NEGOTIATION
Costa N VenereItalyElwin Sharvill PROPOSAL
Murillo D OldroydGermanyBernardo Dominic NEW
Antonio G KolmetzSpainStephen Shaw NEGOTIATION
Maisha U GillianGermanyIvan Magalhaes RENEWAL
Jennifer S MaletGermanyStephen Shaw NEGOTIATION
Izzy Q CaldareraSpainAsiya Javayant PROPOSAL
Jefferson E VocelkaFranceElwin Sharvill RENEWAL
Francesco Q WhobreyIndiaAsiya Javayant NEW
Ashley J BriddickUnited KingdomOnyama Limba QUALIFIED
Greenwood S ChuiUnited KingdomStephen Shaw UNQUALIFIED
Juan S FlosiRussiaAnna Fali NEW
Leon O PoquetteArgentinaBernardo Dominic RENEWAL
Munro L CaldareraAustraliaXuxue Feng RENEWAL
Arvin P DoeArgentinaElwin Sharvill QUALIFIED
Juan G DilliardGermanyXuxue Feng UNQUALIFIED
David Y BriddickJapanIoni Bowcher PROPOSAL
Costa F FollerSpainIoni Bowcher QUALIFIED
Aruna S SergiIndiaOnyama Limba QUALIFIED
Juan Q DarakjyBrazilAsiya Javayant NEGOTIATION
Alejandro B DarakjySpainAsiya Javayant NEGOTIATION
Izzy B SchemmerRussiaBernardo Dominic NEGOTIATION
Alejandro U VocelkaFranceStephen Shaw QUALIFIED
Greenwood F MorascaRussiaIoni Bowcher QUALIFIED
Ashley P BologniaFranceOnyama Limba QUALIFIED
Clifford K OstroskyItalyIoni Bowcher QUALIFIED
Smith Y PaprockiGermanyIoni Bowcher NEGOTIATION
Stacey N PaprockiItalyStephen Shaw PROPOSAL
Mujtaba C RutaArgentinaIoni Bowcher UNQUALIFIED
Claire P ChuiCanadaBernardo Dominic RENEWAL
Mayumi U AlbaresIndiaAnna Fali NEW
Antonio Z ChuiGermanyElwin Sharvill NEGOTIATION
Faith O KolmetzArgentinaAnna Fali PROPOSAL
Maria Z WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
Maria N RutaItalyAsiya Javayant NEW
Francesco S RutaIndiaElwin Sharvill NEW
Stacey I GauchoCanadaBernardo Dominic NEW
Cody K SlusarskiFranceBernardo Dominic NEGOTIATION
Deepesh H PerinArgentinaAsiya Javayant NEGOTIATION
Izzy W MaletBrazilIoni Bowcher NEW
Clifford I SchemmerSpainElwin Sharvill NEGOTIATION
Ricardo I VocelkaSpainAnna Fali RENEWAL
Adams Q WieserJapanAnna Fali NEW
Frozen Columns
Name
Ivar M Rulapaugh
Cody R Whobrey
Clifford M Maclead
Emily Z Malet
Deepesh E Sergi
Nicolas J Gillian
Francesco P Paprocki
Cody A Ruta
James G Caldarera
Morrow W Kolmetz
Cody D Wieser
Jones P Figeroa
Darci C Dilliard
Leon B Butt
Tony H Paprocki
Misaki Z Ferencz
Leon T Royster
Morrow V Slusarski
Wickens C Kusko
Darci B Garufi
Jones B Waycott
Rodrigues R Oldroyd
Rodrigues P Tollner
Costa H Stenseth
Maria A Flosi
Juan Z Vocelka
Mayumi I Campain
Rodrigues D Malet
Aruna L Vocelka
Smith W Ferencz
Rodrigues Z Ostrosky
Tony B Paprocki
Ricardo P Whobrey
James H Doe
Chavez V Caldarera
Darci I Morasca
Murillo K Kolmetz
Isabel Y Slusarski
Costa J Stenseth
Emily O Marrier
Wickens E Whobrey
Mujtaba C Gillian
Octavia G Gaucho
Antonio Q Venere
Francesco Z Paprocki
Smith J Nicka
Johnson Z Wieser
Mayumi M Chui
Jeanfrancois H Briddick
Julie A Dilliard
IdCountryDate
1000India2026-07-01
1001Brazil2026-07-03
1002Italy2026-07-30
1003Argentina2026-07-11
1004India2026-07-07
1005Spain2026-07-08
1006Italy2026-07-08
1007Australia2026-07-16
1008Canada2026-07-25
1009Germany2026-07-06
1010Russia2026-07-19
1011Brazil2026-07-08
1012Germany2026-07-20
1013Australia2026-07-27
1014Italy2026-07-24
1015Japan2026-07-20
1016Australia2026-07-10
1017Japan2026-07-04
1018France2026-07-03
1019Japan2026-07-25
1020Spain2026-07-16
1021Australia2026-07-21
1022France2026-07-25
1023Russia2026-07-23
1024Australia2026-07-28
1025Brazil2026-07-13
1026Japan2026-07-13
1027Argentina2026-07-12
1028United Kingdom2026-07-22
1029Japan2026-07-18
1030Australia2026-07-15
1031Brazil2026-07-16
1032Argentina2026-07-30
1033Germany2026-07-08
1034Italy2026-07-10
1035France2026-07-03
1036United Kingdom2026-07-01
1037India2026-07-14
1038Japan2026-07-13
1039Russia2026-07-15
1040Japan2026-07-10
1041United Kingdom2026-07-24
1042France2026-07-14
1043Brazil2026-07-01
1044Spain2026-07-21
1045Australia2026-07-20
1046Japan2026-07-19
1047Russia2026-07-26
1048India2026-07-21
1049Japan2026-07-03

On-Demand Data

NameIdCountryDate
Clifford Q Schemmer1000Russia2026-07-25
Juan P Nicka1001Italy2026-07-19
Jefferson M Rulapaugh1002Canada2026-07-29
Sinclair Z Glick1003Russia2026-07-29
Jeanfrancois T Iturbide1004Brazil2026-07-01
Izzy A Nestle1005Australia2026-07-05
Arvin Q Oldroyd1006Argentina2026-07-30
Leja M Bolognia1007Russia2026-07-19
David B Glick1008Brazil2026-07-09
Mujtaba O Malet1009Brazil2026-07-04
Ivar H Kolmetz1010Argentina2026-07-03
Salvatore W Dilliard1011Japan2026-07-26
Claire X Oldroyd1012Germany2026-07-27
Deepesh X Bowley1013Italy2026-07-16
Aruna Y Figeroa1014Spain2026-07-26
Jones B Amigon1015Japan2026-07-15
Ivar U Foller1016India2026-07-09
Arvin N Rulapaugh1017Russia2026-07-29
Maria G Garufi1018India2026-07-11
Morrow P Rim1019United Kingdom2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony S VocelkaFranceElwin Sharvill RENEWAL
Leon B AlbaresFranceBernardo Dominic PROPOSAL
Alejandro H DoeGermanyAnna Fali PROPOSAL
Kaitlin E WaycottJapanElwin Sharvill PROPOSAL
Mujtaba P TollnerIndiaIvan Magalhaes QUALIFIED
Darci U MacleadArgentinaIvan Magalhaes NEW
Aruna R MarrierUnited KingdomBernardo Dominic QUALIFIED
Leja C FerenczSpainIvan Magalhaes PROPOSAL
Kaitlin N FollerArgentinaIoni Bowcher PROPOSAL
Johnson B StockhamArgentinaIoni Bowcher NEW
Arvin H MacleadItalyIoni Bowcher RENEWAL
Tony U ShinkoItalyIoni Bowcher UNQUALIFIED
Salvatore Y KolmetzRussiaIvan Magalhaes RENEWAL
Jefferson S CaldareraBrazilElwin Sharvill UNQUALIFIED
Juan Q RulapaughArgentinaXuxue Feng RENEWAL
Chavez J RoysterGermanyOnyama Limba PROPOSAL
Jefferson X RutaJapanOnyama Limba QUALIFIED
Deepesh Q FigeroaUnited KingdomAmy Elsner PROPOSAL
Misaki A SchemmerBrazilAnna Fali QUALIFIED
Aditya F IturbideRussiaStephen Shaw NEW
Misaki L CaldareraJapanAnna Fali NEW
Wickens F NickaSpainBernardo Dominic NEW
Octavia G WaycottFranceIvan Magalhaes NEW
Aruna I DarakjyBrazilIoni Bowcher UNQUALIFIED
Rodrigues F MacleadRussiaElwin Sharvill PROPOSAL
Mujtaba I BologniaGermanyOnyama Limba NEGOTIATION
Morrow O KolmetzItalyXuxue Feng UNQUALIFIED
Chavez B StockhamArgentinaIvan Magalhaes UNQUALIFIED
Emily O RoysterFranceAsiya Javayant QUALIFIED
Morrow S GlickFranceOnyama Limba PROPOSAL
Chavez U InouyeArgentinaStephen Shaw QUALIFIED
Morrow E BowleyJapanAnna Fali NEGOTIATION
Jones H AmigonAustraliaAmy Elsner PROPOSAL
Kadeem T DilliardRussiaBernardo Dominic PROPOSAL
Greenwood B BriddickJapanXuxue Feng PROPOSAL
Murillo E GillianUnited KingdomBernardo Dominic RENEWAL
Nicolas J RimSpainElwin Sharvill UNQUALIFIED
Salvatore Y FigeroaFranceStephen Shaw QUALIFIED
Jones T GauchoIndiaIoni Bowcher QUALIFIED
Kaitlin U RulapaughAustraliaIoni Bowcher 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>