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
Smith F DarakjyAustraliaAnna Fali NEGOTIATION
Emily E GarufiItalyStephen Shaw RENEWAL
Ricardo P AmigonIndiaAsiya Javayant RENEWAL
Maisha I RutaUnited KingdomElwin Sharvill NEW
Aika C FigeroaUnited KingdomOnyama Limba RENEWAL
Wickens Y PaprockiArgentinaAsiya Javayant PROPOSAL
Isabel J CaudyFranceIoni Bowcher NEGOTIATION
Julie I AlbaresGermanyStephen Shaw UNQUALIFIED
Darci F MorascaArgentinaAnna Fali NEW
Julie D GlickJapanStephen Shaw RENEWAL
Tony A ShinkoIndiaBernardo Dominic NEW
Leon A MorascaIndiaXuxue Feng UNQUALIFIED
Johnson U MacleadIndiaXuxue Feng NEGOTIATION
James B GillianArgentinaBernardo Dominic PROPOSAL
Johnson T VenereIndiaIvan Magalhaes RENEWAL
Antonio L OstroskySpainIoni Bowcher UNQUALIFIED
Greenwood B AmigonGermanyIoni Bowcher RENEWAL
Emily K PoquetteArgentinaIvan Magalhaes RENEWAL
Mayumi X CaldareraGermanyIvan Magalhaes UNQUALIFIED
Ashley H InouyeCanadaStephen Shaw UNQUALIFIED
Sinclair U ButtBrazilXuxue Feng RENEWAL
Alejandro R SergiJapanAmy Elsner NEW
Wickens M MaletGermanyElwin Sharvill NEW
Chavez Y PaprockiArgentinaIvan Magalhaes NEW
Ashley L OldroydAustraliaBernardo Dominic UNQUALIFIED
Isabel N SchemmerAustraliaAnna Fali QUALIFIED
David X CampainJapanIvan Magalhaes RENEWAL
Alejandro E MorascaSpainIoni Bowcher UNQUALIFIED
Silvio B ChuiIndiaXuxue Feng QUALIFIED
Sinclair M CaldareraBrazilStephen Shaw UNQUALIFIED
Alejandro X SchemmerItalyIvan Magalhaes UNQUALIFIED
Silvio Q DoeFranceAnna Fali NEW
Jefferson A MacleadBrazilBernardo Dominic RENEWAL
Cody G MacleadArgentinaAmy Elsner NEGOTIATION
Maria Z AlbaresAustraliaAsiya Javayant QUALIFIED
David A WhobreyFranceStephen Shaw QUALIFIED
Wickens G MorascaCanadaIoni Bowcher UNQUALIFIED
Jones O OldroydFranceXuxue Feng QUALIFIED
Jeanfrancois E BologniaFranceAsiya Javayant RENEWAL
Smith Y BowleySpainIoni Bowcher NEW
Wickens I WieserUnited KingdomIvan Magalhaes NEW
Murillo N NickaIndiaIvan Magalhaes NEW
Stacey P CaudyUnited KingdomOnyama Limba PROPOSAL
Antonio N MaletArgentinaAmy Elsner QUALIFIED
Octavia D OldroydArgentinaIvan Magalhaes UNQUALIFIED
Johnson F OstroskyUnited KingdomIvan Magalhaes RENEWAL
Greenwood I ShinkoRussiaStephen Shaw UNQUALIFIED
Jeanfrancois A StensethAustraliaStephen Shaw RENEWAL
Isabel T AmigonCanadaElwin Sharvill PROPOSAL
Ashley W GillianBrazilAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Wickens C WaycottItalyStephen Shaw PROPOSAL
Maria Y RimGermanyStephen Shaw UNQUALIFIED
Mayumi V VocelkaItalyAnna Fali UNQUALIFIED
Murillo L WhobreyBrazilAsiya Javayant PROPOSAL
Jefferson U PerinJapanOnyama Limba NEGOTIATION
Darci S GillianJapanXuxue Feng NEW
Aditya V ButtAustraliaAnna Fali NEW
Arvin T NestleUnited KingdomStephen Shaw QUALIFIED
Izzy P CaldareraIndiaIoni Bowcher NEGOTIATION
Juan A WhobreyJapanElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony F TollnerIndia2026-06-24Chemel, James L Cpa RENEWAL5Onyama Limba
1001Sinclair U PaprockiGermany2026-06-14Rousseaux, Michael Esq NEGOTIATION76Ivan Magalhaes
1002Maria P CaldareraAustralia2026-06-24Feltz Printing Service RENEWAL47Ivan Magalhaes
1003Murillo T BriddickBrazil2026-07-01Chemel, James L Cpa UNQUALIFIED35Amy Elsner
1004Stacey K MacleadGermany2026-06-10Morlong Associates PROPOSAL51Asiya Javayant
1005Stacey D VenereUnited Kingdom2026-06-26Rangoni Of Florence NEGOTIATION48Stephen Shaw
1006Adams G PerinJapan2026-06-12Dorl, James J Esq NEW17Asiya Javayant
1007Izzy Q KuskoCanada2026-06-08Chanay, Jeffrey A Esq RENEWAL59Onyama Limba
1008Alejandro P WieserUnited Kingdom2026-06-09Chemel, James L Cpa RENEWAL70Asiya Javayant
1009Salvatore V OstroskyAustralia2026-06-20Feiner Bros NEGOTIATION81Ioni Bowcher
1010James E KuskoBrazil2026-06-11Dorl, James J Esq UNQUALIFIED45Amy Elsner
1011Alejandro M FigeroaAustralia2026-06-27Benton, John B Jr QUALIFIED68Onyama Limba
1012Faith V MarrierJapan2026-06-04Rangoni Of Florence QUALIFIED84Xuxue Feng
1013Murillo Q CaudyCanada2026-06-25Feltz Printing Service RENEWAL5Stephen Shaw
1014Salvatore N MaletCanada2026-06-16Commercial Press NEW91Bernardo Dominic
1015Claire C AmigonIndia2026-06-20Feiner Bros QUALIFIED30Bernardo Dominic
1016Jones C WieserUnited Kingdom2026-07-02Printing Dimensions NEW72Xuxue Feng
1017Arvin E FollerArgentina2026-06-13Benton, John B Jr UNQUALIFIED74Elwin Sharvill
1018David X RimRussia2026-06-22Printing Dimensions QUALIFIED68Asiya Javayant
1019Cody Z PaprockiGermany2026-06-27Rangoni Of Florence QUALIFIED39Ivan Magalhaes
1020Aruna F DoeAustralia2026-06-22Commercial Press UNQUALIFIED78Stephen Shaw
1021Maria I DarakjyIndia2026-07-01Dorl, James J Esq QUALIFIED34Xuxue Feng
1022Ivar J KuskoFrance2026-06-24King, Christopher A Esq UNQUALIFIED49Elwin Sharvill
1023Mujtaba D PaprockiAustralia2026-06-14Dorl, James J Esq NEGOTIATION34Xuxue Feng
1024Munro X BowleyGermany2026-06-22Truhlar And Truhlar Attys RENEWAL34Xuxue Feng
1025Mujtaba X MaletFrance2026-06-14Rousseaux, Michael Esq UNQUALIFIED36Xuxue Feng
1026Aika S PerinRussia2026-06-26Rousseaux, Michael Esq QUALIFIED65Amy Elsner
1027Clifford I DilliardCanada2026-06-04Benton, John B Jr RENEWAL1Anna Fali
1028Leon T ButtGermany2026-06-27Rousseaux, Michael Esq PROPOSAL19Elwin Sharvill
1029Jefferson C FerenczFrance2026-06-17Feiner Bros RENEWAL51Bernardo Dominic
1030Jeanfrancois C CaldareraItaly2026-06-26Commercial Press NEGOTIATION36Elwin Sharvill
1031Deepesh Y RoysterJapan2026-06-22Printing Dimensions QUALIFIED67Ivan Magalhaes
1032Clifford U AlbaresIndia2026-06-28Rousseaux, Michael Esq PROPOSAL39Onyama Limba
1033Sinclair B RulapaughJapan2026-06-15Printing Dimensions UNQUALIFIED54Ivan Magalhaes
1034Cody D MacleadJapan2026-06-21Feltz Printing Service RENEWAL47Ioni Bowcher
1035Emily D CaldareraCanada2026-06-15Benton, John B Jr NEGOTIATION80Ivan Magalhaes
1036Ivar M MorascaIndia2026-06-06King, Christopher A Esq NEGOTIATION39Stephen Shaw
1037Tony J DarakjyUnited Kingdom2026-06-20Dorl, James J Esq PROPOSAL76Ioni Bowcher
1038Arvin D SergiArgentina2026-06-28Feltz Printing Service RENEWAL82Asiya Javayant
1039Jennifer H NickaGermany2026-06-09Buckley Miller Wright PROPOSAL60Ioni Bowcher
1040Leon Q NickaJapan2026-06-21Dorl, James J Esq PROPOSAL76Onyama Limba
1041Kadeem G RulapaughBrazil2026-06-25Chanay, Jeffrey A Esq RENEWAL25Bernardo Dominic
1042Sinclair W StensethItaly2026-07-01Feltz Printing Service QUALIFIED74Ivan Magalhaes
1043Mujtaba Z IturbideCanada2026-06-25Chanay, Jeffrey A Esq NEW61Asiya Javayant
1044Izzy T PoquetteItaly2026-06-19Chemel, James L Cpa RENEWAL59Onyama Limba
1045Greenwood T DarakjyGermany2026-06-09Feiner Bros RENEWAL42Anna Fali
1046Leon H BowleyGermany2026-06-11Feiner Bros UNQUALIFIED71Onyama Limba
1047Ashley G OstroskySpain2026-06-20King, Christopher A Esq UNQUALIFIED62Anna Fali
1048Jennifer S WaycottUnited Kingdom2026-06-19Truhlar And Truhlar Attys NEGOTIATION43Asiya Javayant
1049Jefferson U SergiCanada2026-06-28Feiner Bros QUALIFIED63Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Nicolas P VenereBrazilAnna Fali UNQUALIFIED
Munro K ChuiRussiaXuxue Feng QUALIFIED
David S RoysterArgentinaElwin Sharvill PROPOSAL
Francesco Z VocelkaBrazilAnna Fali QUALIFIED
Kadeem O ChuiSpainStephen Shaw PROPOSAL
Mujtaba Q VenereBrazilElwin Sharvill PROPOSAL
Ashley V FlosiUnited KingdomIvan Magalhaes UNQUALIFIED
Jones J RutaFranceIvan Magalhaes NEW
James H ButtGermanyOnyama Limba UNQUALIFIED
Adams U ButtCanadaIvan Magalhaes UNQUALIFIED
Nicolas Z KuskoBrazilStephen Shaw UNQUALIFIED
Stacey L FlosiGermanyOnyama Limba QUALIFIED
Julie U WieserRussiaAmy Elsner RENEWAL
Juan X CampainAustraliaAmy Elsner NEW
Greenwood W GlickGermanyIvan Magalhaes UNQUALIFIED
Maria O DoeArgentinaAnna Fali UNQUALIFIED
Darci M BriddickCanadaBernardo Dominic NEGOTIATION
Kaitlin F GarufiUnited KingdomIoni Bowcher NEW
Arvin T GlickUnited KingdomAnna Fali NEW
David Z FollerFranceAmy Elsner UNQUALIFIED
Adams Q PoquetteGermanyElwin Sharvill NEGOTIATION
Tony I GlickItalyAmy Elsner NEW
Maria Q SaylorsJapanOnyama Limba PROPOSAL
Salvatore B ShinkoRussiaElwin Sharvill QUALIFIED
Sinclair S RutaRussiaStephen Shaw RENEWAL
Rodrigues S DoeAustraliaElwin Sharvill NEGOTIATION
Aika T OstroskyAustraliaIoni Bowcher QUALIFIED
Maria R MacleadCanadaOnyama Limba RENEWAL
Adams O DilliardArgentinaAsiya Javayant NEGOTIATION
Kadeem L RoysterIndiaIvan Magalhaes UNQUALIFIED
Aika M NickaRussiaOnyama Limba NEW
Isabel Y SergiGermanyIoni Bowcher QUALIFIED
Julie S InouyeCanadaAnna Fali QUALIFIED
Aika B AmigonRussiaStephen Shaw PROPOSAL
Ricardo S BriddickRussiaElwin Sharvill QUALIFIED
Alejandro C ChuiRussiaAmy Elsner NEGOTIATION
Isabel M GarufiUnited KingdomAmy Elsner RENEWAL
Emily I DarakjyFranceOnyama Limba RENEWAL
Maria H CaudySpainIoni Bowcher QUALIFIED
Juan B ButtAustraliaElwin Sharvill NEGOTIATION
Darci Y FlosiJapanXuxue Feng RENEWAL
Mayumi E ShinkoAustraliaAmy Elsner PROPOSAL
Octavia H SchemmerGermanyBernardo Dominic NEW
Deepesh D GlickArgentinaAsiya Javayant RENEWAL
Izzy F InouyeCanadaIoni Bowcher QUALIFIED
Antonio X WaycottUnited KingdomXuxue Feng UNQUALIFIED
Jones L SlusarskiUnited KingdomBernardo Dominic NEW
Octavia P WaycottBrazilOnyama Limba QUALIFIED
Tony O AlbaresAustraliaBernardo Dominic RENEWAL
Jones P RoysterBrazilIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Aika W Darakjy
James B Glick
Nicolas G Marrier
Leon G Poquette
Francesco L Garufi
Isabel U Malet
Mayumi Q Foller
Johnson W Whobrey
Maria B Stenseth
Clifford V Malet
Francesco E Kolmetz
Adams K Ruta
Chavez J Campain
Izzy T Sergi
Clifford D Oldroyd
Morrow L Wieser
Emily H Rim
Cody H Glick
Jefferson G Wieser
Adams C Nicka
Nicolas G Vocelka
Kadeem B Slusarski
Chavez D Amigon
David K Gaucho
Kaitlin Y Inouye
Isabel P Doe
Juan W Ruta
Leon A Saylors
Kaitlin V Foller
Johnson J Stockham
Leon N Dilliard
Deepesh H Venere
Octavia R Maclead
Aditya U Foller
Misaki O Wieser
Deepesh P Kusko
Misaki S Nicka
Misaki V Whobrey
Ivar W Stockham
Misaki W Stockham
Jefferson Z Kolmetz
Kaitlin F Venere
Francesco X Schemmer
Adams E Stenseth
Silvio L Butt
Rodrigues W Dilliard
Chavez O Tollner
Ashley K Shinko
Arvin N Ferencz
Juan Y Dilliard
IdCountryDate
1000Italy2026-06-18
1001Spain2026-06-16
1002Japan2026-06-19
1003Italy2026-06-06
1004Argentina2026-06-27
1005Canada2026-06-14
1006United Kingdom2026-06-13
1007Russia2026-06-30
1008Brazil2026-06-17
1009Italy2026-06-28
1010Spain2026-06-08
1011India2026-06-10
1012Italy2026-06-23
1013France2026-06-05
1014Brazil2026-06-19
1015Germany2026-06-14
1016Russia2026-06-06
1017India2026-06-04
1018Australia2026-06-27
1019Brazil2026-06-27
1020Australia2026-06-25
1021Argentina2026-06-12
1022Brazil2026-06-30
1023Japan2026-06-08
1024Italy2026-06-29
1025Germany2026-07-02
1026Spain2026-06-20
1027France2026-06-26
1028India2026-06-17
1029Japan2026-06-09
1030Spain2026-06-06
1031Brazil2026-06-24
1032Spain2026-06-25
1033India2026-06-19
1034Brazil2026-06-06
1035Brazil2026-06-12
1036Japan2026-06-09
1037India2026-06-19
1038Russia2026-06-06
1039Japan2026-06-25
1040Brazil2026-06-17
1041Spain2026-06-08
1042Argentina2026-06-14
1043United Kingdom2026-06-14
1044Russia2026-07-01
1045Brazil2026-06-26
1046Germany2026-06-29
1047Japan2026-06-11
1048Japan2026-06-08
1049Argentina2026-07-02

On-Demand Data

NameIdCountryDate
Maisha Y Waycott1000United Kingdom2026-06-24
James F Kusko1001Germany2026-06-09
Cody V Marrier1002Brazil2026-06-13
Faith K Tollner1003Brazil2026-06-22
Stacey X Nestle1004India2026-06-15
Alejandro X Kusko1005Spain2026-06-23
Stacey V Butt1006Argentina2026-06-10
Jones Z Darakjy1007Argentina2026-06-12
James W Caudy1008Brazil2026-06-09
David J Flosi1009Germany2026-07-01
Smith V Royster1010Australia2026-06-12
Mayumi Y Maclead1011Australia2026-06-23
Cody G Poquette1012Argentina2026-06-13
Aditya H Foller1013Argentina2026-06-11
Morrow Z Kusko1014United Kingdom2026-06-19
Silvio B Inouye1015France2026-06-26
Costa L Inouye1016Russia2026-06-07
Juan L Stockham1017Canada2026-07-01
Juan Y Nestle1018Spain2026-06-20
Darci I Gillian1019Brazil2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar V MorascaUnited KingdomAmy Elsner UNQUALIFIED
Aruna A MarrierIndiaAmy Elsner NEW
Aditya N SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
Johnson B GauchoFranceIvan Magalhaes QUALIFIED
Juan C CampainCanadaAnna Fali NEGOTIATION
Ivar M VocelkaCanadaAmy Elsner QUALIFIED
Rodrigues W MorascaIndiaOnyama Limba NEGOTIATION
Aika J FerenczRussiaBernardo Dominic UNQUALIFIED
Leon O AmigonRussiaAnna Fali QUALIFIED
Silvio L BowleyItalyIvan Magalhaes NEGOTIATION
Johnson U MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Cody K AlbaresBrazilIoni Bowcher NEGOTIATION
Mayumi J DilliardUnited KingdomElwin Sharvill NEW
Ashley M ChuiAustraliaAmy Elsner NEGOTIATION
Aditya O MorascaGermanyElwin Sharvill NEGOTIATION
Morrow O CaldareraBrazilStephen Shaw NEW
Ricardo E StensethJapanXuxue Feng UNQUALIFIED
Wickens H NickaAustraliaXuxue Feng PROPOSAL
Murillo K TollnerUnited KingdomElwin Sharvill QUALIFIED
Munro D MaletGermanyElwin Sharvill NEGOTIATION
Arvin E ChuiSpainAsiya Javayant PROPOSAL
Deepesh I DoeUnited KingdomIoni Bowcher NEGOTIATION
Johnson T FigeroaCanadaStephen Shaw QUALIFIED
Morrow G ChuiIndiaXuxue Feng UNQUALIFIED
Clifford S CampainSpainAmy Elsner NEW
Ricardo D NestleAustraliaAnna Fali QUALIFIED
Misaki G WhobreyBrazilIoni Bowcher NEGOTIATION
Antonio Q OstroskyJapanElwin Sharvill NEW
James F WieserJapanAsiya Javayant QUALIFIED
Sinclair N GauchoRussiaIoni Bowcher NEGOTIATION
Sinclair Y VenereUnited KingdomXuxue Feng UNQUALIFIED
Aruna T WieserGermanyAsiya Javayant UNQUALIFIED
Jefferson D PoquetteRussiaAsiya Javayant RENEWAL
Tony F VocelkaItalyAsiya Javayant RENEWAL
Mujtaba U WaycottAustraliaXuxue Feng PROPOSAL
Munro I MacleadIndiaAmy Elsner UNQUALIFIED
Leon A IturbideCanadaBernardo Dominic RENEWAL
Jones D StensethRussiaIoni Bowcher QUALIFIED
Octavia K NestleIndiaAsiya Javayant UNQUALIFIED
Ivar D AlbaresGermanyAsiya Javayant 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>