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
James J AmigonJapanAnna Fali RENEWAL
Leon P FlosiRussiaIoni Bowcher NEW
Faith H CaldareraItalyElwin Sharvill NEW
Aruna G NickaItalyBernardo Dominic PROPOSAL
Wickens I SergiSpainAmy Elsner PROPOSAL
Deepesh J FigeroaArgentinaXuxue Feng RENEWAL
Francesco X IturbideArgentinaBernardo Dominic NEW
Mujtaba T CaudyFranceAsiya Javayant NEW
Claire X RoysterAustraliaIoni Bowcher NEGOTIATION
James X SchemmerJapanXuxue Feng NEGOTIATION
David Y BologniaCanadaAnna Fali QUALIFIED
Munro X OstroskyRussiaAmy Elsner RENEWAL
Tony R AlbaresArgentinaIvan Magalhaes QUALIFIED
Costa Z AlbaresCanadaAsiya Javayant RENEWAL
Leon F KolmetzSpainStephen Shaw NEW
Ivar D DilliardSpainAmy Elsner NEW
Mujtaba G KuskoGermanyXuxue Feng NEW
Ivar G PaprockiItalyAnna Fali NEGOTIATION
Aditya E BologniaArgentinaBernardo Dominic UNQUALIFIED
Mujtaba F MaletJapanAnna Fali QUALIFIED
Jefferson X StockhamAustraliaXuxue Feng RENEWAL
David J PoquetteIndiaIvan Magalhaes QUALIFIED
Johnson S InouyeJapanStephen Shaw PROPOSAL
Tony K DilliardRussiaStephen Shaw NEW
Jones Y ShinkoRussiaAsiya Javayant UNQUALIFIED
Aika B GauchoCanadaStephen Shaw RENEWAL
Murillo L AmigonIndiaAnna Fali RENEWAL
Murillo G KolmetzArgentinaIvan Magalhaes NEW
Cody F AmigonCanadaStephen Shaw NEGOTIATION
Mujtaba M FigeroaBrazilIvan Magalhaes NEGOTIATION
Mayumi T WhobreyArgentinaXuxue Feng QUALIFIED
Isabel D RutaFranceStephen Shaw QUALIFIED
Maisha E WieserItalyAnna Fali PROPOSAL
Kadeem R CampainItalyIoni Bowcher NEW
David Z CaldareraArgentinaBernardo Dominic PROPOSAL
Ricardo Z ButtRussiaStephen Shaw NEW
Cody A RulapaughSpainAmy Elsner RENEWAL
Murillo Y FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Mujtaba F DoeFranceAsiya Javayant QUALIFIED
Juan U DarakjyItalyAnna Fali QUALIFIED
Greenwood T ButtArgentinaAnna Fali NEGOTIATION
Tony I OstroskyBrazilAsiya Javayant UNQUALIFIED
Jennifer H BologniaUnited KingdomIvan Magalhaes PROPOSAL
Emily T DarakjySpainElwin Sharvill RENEWAL
Jennifer Z ShinkoGermanyIoni Bowcher UNQUALIFIED
Aruna C VocelkaCanadaBernardo Dominic UNQUALIFIED
James P InouyeIndiaBernardo Dominic QUALIFIED
Aika P FerenczJapanXuxue Feng RENEWAL
Jennifer O SlusarskiArgentinaStephen Shaw NEW
Julie I ButtBrazilAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem G ChuiBrazilElwin Sharvill NEW
Francesco X VenereCanadaOnyama Limba NEGOTIATION
Octavia T MaletJapanXuxue Feng UNQUALIFIED
Faith L VocelkaBrazilBernardo Dominic PROPOSAL
Alejandro S PerinIndiaOnyama Limba RENEWAL
Ashley G CampainItalyBernardo Dominic NEGOTIATION
Julie B DoeBrazilStephen Shaw RENEWAL
Chavez A WhobreySpainIoni Bowcher PROPOSAL
Johnson L WieserItalyIoni Bowcher UNQUALIFIED
Costa X DoeUnited KingdomIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore H PoquetteGermany2026-07-26Chemel, James L Cpa NEGOTIATION36Ioni Bowcher
1001Octavia L WaycottIndia2026-06-29Dorl, James J Esq RENEWAL74Amy Elsner
1002Octavia G FerenczAustralia2026-07-04Printing Dimensions PROPOSAL82Ivan Magalhaes
1003Greenwood S VocelkaCanada2026-07-08Truhlar And Truhlar Attys UNQUALIFIED1Onyama Limba
1004Mayumi U ShinkoRussia2026-07-01Chemel, James L Cpa RENEWAL19Elwin Sharvill
1005Stacey I WieserJapan2026-07-21Chanay, Jeffrey A Esq NEW58Amy Elsner
1006Wickens E PoquetteCanada2026-07-18Truhlar And Truhlar Attys RENEWAL9Amy Elsner
1007Octavia O NickaBrazil2026-07-05Feiner Bros UNQUALIFIED14Ioni Bowcher
1008Tony A AlbaresAustralia2026-07-26Chapman, Ross E Esq PROPOSAL8Stephen Shaw
1009Mujtaba T RutaItaly2026-07-03Buckley Miller Wright QUALIFIED30Asiya Javayant
1010Deepesh I BowleyArgentina2026-07-07Dorl, James J Esq RENEWAL96Ivan Magalhaes
1011Adams C PaprockiSpain2026-07-24King, Christopher A Esq QUALIFIED59Ivan Magalhaes
1012Greenwood F MacleadArgentina2026-07-05Chemel, James L Cpa NEW42Ivan Magalhaes
1013Aruna H RulapaughJapan2026-07-20Commercial Press NEW85Amy Elsner
1014Arvin U KuskoAustralia2026-07-01Morlong Associates QUALIFIED54Ioni Bowcher
1015Greenwood E AmigonCanada2026-07-21Truhlar And Truhlar Attys PROPOSAL58Asiya Javayant
1016Darci G VocelkaRussia2026-07-13Dorl, James J Esq RENEWAL95Bernardo Dominic
1017Murillo U AmigonUnited Kingdom2026-07-17Truhlar And Truhlar Attys QUALIFIED61Amy Elsner
1018Clifford A SlusarskiUnited Kingdom2026-07-25Benton, John B Jr RENEWAL27Amy Elsner
1019Jeanfrancois I SchemmerGermany2026-06-28Benton, John B Jr RENEWAL77Stephen Shaw
1020Jeanfrancois Z MaletJapan2026-07-19Morlong Associates NEW36Xuxue Feng
1021Ashley F PaprockiSpain2026-07-07Benton, John B Jr PROPOSAL17Elwin Sharvill
1022Mujtaba H BologniaIndia2026-07-08Truhlar And Truhlar Attys RENEWAL22Anna Fali
1023Leja S TollnerAustralia2026-07-17Feiner Bros UNQUALIFIED42Ioni Bowcher
1024Kaitlin W RoysterRussia2026-07-17Rousseaux, Michael Esq QUALIFIED43Asiya Javayant
1025Smith A RimAustralia2026-07-27Chemel, James L Cpa RENEWAL49Onyama Limba
1026Misaki K RimUnited Kingdom2026-07-11Feltz Printing Service QUALIFIED41Bernardo Dominic
1027Ashley D StockhamJapan2026-07-17Rousseaux, Michael Esq PROPOSAL49Elwin Sharvill
1028Costa D DarakjySpain2026-07-10Truhlar And Truhlar Attys PROPOSAL14Amy Elsner
1029Aruna Q MaletCanada2026-07-18Truhlar And Truhlar Attys UNQUALIFIED11Onyama Limba
1030Munro O CaudyAustralia2026-07-12Rousseaux, Michael Esq UNQUALIFIED95Bernardo Dominic
1031Munro S NestleArgentina2026-07-04Truhlar And Truhlar Attys PROPOSAL8Xuxue Feng
1032Arvin O SlusarskiSpain2026-07-13Truhlar And Truhlar Attys PROPOSAL8Bernardo Dominic
1033Johnson O VocelkaBrazil2026-07-02Commercial Press UNQUALIFIED59Bernardo Dominic
1034Aditya P OstroskyArgentina2026-07-01Benton, John B Jr QUALIFIED25Anna Fali
1035Aika D WaycottRussia2026-07-11Feltz Printing Service QUALIFIED75Amy Elsner
1036Clifford G ShinkoGermany2026-06-30Dorl, James J Esq NEW79Xuxue Feng
1037Sinclair E ShinkoCanada2026-07-19Chemel, James L Cpa QUALIFIED66Xuxue Feng
1038James F NickaFrance2026-07-25Feltz Printing Service NEW30Asiya Javayant
1039Maria D StockhamRussia2026-07-12Commercial Press QUALIFIED30Bernardo Dominic
1040Leon V StensethRussia2026-07-23Dorl, James J Esq RENEWAL77Xuxue Feng
1041Adams B GillianRussia2026-07-24Printing Dimensions PROPOSAL32Bernardo Dominic
1042Tony K WhobreyUnited Kingdom2026-07-04Commercial Press RENEWAL52Xuxue Feng
1043Francesco Q AlbaresUnited Kingdom2026-07-27Benton, John B Jr QUALIFIED77Ioni Bowcher
1044Izzy L RoysterItaly2026-07-22Feltz Printing Service PROPOSAL21Ioni Bowcher
1045Deepesh K ChuiSpain2026-07-24King, Christopher A Esq PROPOSAL50Amy Elsner
1046Maisha F RimSpain2026-06-29Truhlar And Truhlar Attys UNQUALIFIED89Ioni Bowcher
1047Morrow M VocelkaUnited Kingdom2026-07-01Dorl, James J Esq UNQUALIFIED82Amy Elsner
1048Sinclair S RimArgentina2026-07-02King, Christopher A Esq UNQUALIFIED71Bernardo Dominic
1049Isabel T MarrierItaly2026-07-14Commercial Press UNQUALIFIED44Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Darci N WhobreyAustraliaElwin Sharvill NEGOTIATION
Jones R PerinItalyAmy Elsner RENEWAL
Ivar G CampainGermanyIvan Magalhaes RENEWAL
Ricardo U KolmetzIndiaElwin Sharvill QUALIFIED
Jones P FigeroaCanadaAmy Elsner RENEWAL
Johnson V CaudySpainOnyama Limba RENEWAL
Nicolas U CaldareraArgentinaAsiya Javayant UNQUALIFIED
Jefferson U StockhamUnited KingdomXuxue Feng NEW
Nicolas L MarrierFranceStephen Shaw PROPOSAL
Maria M RoysterIndiaBernardo Dominic UNQUALIFIED
Nicolas K GillianSpainXuxue Feng NEGOTIATION
Misaki I CaudyUnited KingdomBernardo Dominic NEW
Emily J FigeroaArgentinaElwin Sharvill QUALIFIED
Aika N CaldareraGermanyAmy Elsner PROPOSAL
Antonio P StensethSpainAsiya Javayant RENEWAL
Murillo H WhobreyBrazilIvan Magalhaes QUALIFIED
Sinclair S GarufiCanadaBernardo Dominic PROPOSAL
James U BriddickCanadaIoni Bowcher UNQUALIFIED
Silvio U CaldareraAustraliaIoni Bowcher NEW
Maisha G WieserItalyAsiya Javayant QUALIFIED
Darci O MarrierFranceOnyama Limba PROPOSAL
Smith T NestleItalyIvan Magalhaes PROPOSAL
Wickens S AlbaresAustraliaIvan Magalhaes PROPOSAL
Murillo G OstroskyItalyBernardo Dominic QUALIFIED
Maria F AmigonFranceOnyama Limba UNQUALIFIED
Antonio O MaletUnited KingdomAsiya Javayant UNQUALIFIED
Aruna X GauchoArgentinaBernardo Dominic NEGOTIATION
Kadeem I ChuiGermanyAmy Elsner UNQUALIFIED
Claire F VocelkaItalyOnyama Limba UNQUALIFIED
Ricardo O AlbaresIndiaIvan Magalhaes QUALIFIED
Darci R WhobreyGermanyOnyama Limba NEGOTIATION
Kaitlin V RutaGermanyXuxue Feng QUALIFIED
Ricardo Q MacleadJapanIvan Magalhaes UNQUALIFIED
Jones V VenereIndiaElwin Sharvill RENEWAL
Octavia Q MaletItalyOnyama Limba UNQUALIFIED
Greenwood S NickaItalyBernardo Dominic NEGOTIATION
Faith T GillianBrazilXuxue Feng PROPOSAL
Jennifer R SergiJapanBernardo Dominic QUALIFIED
Mayumi H IturbideIndiaElwin Sharvill NEGOTIATION
Kadeem X GarufiGermanyElwin Sharvill RENEWAL
Nicolas P DoeCanadaIoni Bowcher PROPOSAL
Morrow D MaletCanadaElwin Sharvill NEGOTIATION
Misaki W BowleyRussiaIoni Bowcher QUALIFIED
Ivar L FigeroaBrazilAmy Elsner NEW
Isabel Y SchemmerCanadaElwin Sharvill RENEWAL
Octavia K IturbideCanadaIoni Bowcher NEW
Sinclair C MacleadAustraliaStephen Shaw QUALIFIED
Jones M OstroskyRussiaIoni Bowcher UNQUALIFIED
Stacey Z MaletIndiaIvan Magalhaes UNQUALIFIED
Antonio G AmigonAustraliaBernardo Dominic PROPOSAL
Frozen Columns
Name
Octavia Y Saylors
Ashley L Albares
James V Vocelka
Claire A Butt
Silvio M Whobrey
Aruna E Rim
Octavia E Foller
Jefferson A Marrier
Nicolas C Chui
Jones R Saylors
Alejandro F Stockham
Kaitlin N Perin
Silvio I Nestle
Adams E Caudy
Rodrigues K Glick
Kaitlin N Glick
Rodrigues E Kolmetz
Leja T Inouye
Kaitlin S Ruta
Octavia K Malet
Izzy X Wieser
Izzy N Maclead
Antonio C Marrier
Tony Q Kusko
Costa S Wieser
Darci I Venere
Octavia B Flosi
Aruna Z Wieser
Nicolas K Maclead
Costa O Slusarski
Smith X Inouye
Claire W Morasca
Murillo M Rim
Jefferson H Nestle
Aika O Dilliard
Smith C Figeroa
Deepesh P Gaucho
Alejandro D Paprocki
Stacey V Butt
Emily R Poquette
Aditya B Schemmer
Silvio U Ferencz
Jeanfrancois P Caldarera
Smith T Darakjy
Ashley S Malet
Octavia Z Paprocki
Munro S Ruta
Faith O Maclead
Mayumi Y Ruta
Nicolas H Whobrey
IdCountryDate
1000Brazil2026-07-12
1001Australia2026-07-17
1002Australia2026-07-24
1003Brazil2026-07-07
1004Argentina2026-06-30
1005Argentina2026-07-12
1006Russia2026-07-08
1007Australia2026-07-06
1008Germany2026-07-10
1009Italy2026-07-04
1010Australia2026-07-14
1011Italy2026-07-08
1012Russia2026-07-13
1013France2026-07-24
1014Canada2026-07-11
1015Japan2026-07-09
1016Australia2026-07-26
1017United Kingdom2026-07-21
1018Japan2026-07-10
1019United Kingdom2026-07-13
1020Brazil2026-07-15
1021Australia2026-07-16
1022Japan2026-06-28
1023Canada2026-06-29
1024Canada2026-07-22
1025United Kingdom2026-07-19
1026Spain2026-07-12
1027Brazil2026-07-18
1028Japan2026-07-16
1029Russia2026-06-30
1030Australia2026-07-08
1031Spain2026-07-05
1032Australia2026-07-10
1033France2026-07-21
1034Germany2026-07-06
1035Germany2026-07-05
1036Brazil2026-07-22
1037Argentina2026-07-27
1038India2026-07-18
1039Germany2026-07-14
1040Canada2026-07-15
1041Canada2026-07-06
1042Japan2026-07-11
1043France2026-07-23
1044United Kingdom2026-07-15
1045Australia2026-07-23
1046Brazil2026-07-12
1047Brazil2026-07-24
1048United Kingdom2026-07-17
1049Argentina2026-07-07

On-Demand Data

NameIdCountryDate
Maria H Bolognia1000Brazil2026-07-10
Kaitlin C Stenseth1001Italy2026-07-02
Octavia F Slusarski1002Canada2026-07-11
Wickens T Ruta1003France2026-07-04
Rodrigues Y Saylors1004Italy2026-06-29
Silvio S Sergi1005Japan2026-07-16
Adams E Nicka1006Japan2026-07-19
Mayumi Z Nestle1007Canada2026-07-17
Chavez V Whobrey1008France2026-07-24
Octavia P Bolognia1009France2026-07-15
Alejandro U Briddick1010Germany2026-06-29
Murillo L Dilliard1011Russia2026-07-10
Smith W Marrier1012Russia2026-07-24
Ivar C Caldarera1013Canada2026-07-02
Clifford Q Garufi1014United Kingdom2026-07-03
Juan G Whobrey1015Russia2026-07-19
Claire U Whobrey1016Germany2026-07-25
Julie Y Inouye1017Germany2026-07-25
Kadeem L Inouye1018Russia2026-06-30
Chavez V Darakjy1019Australia2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire B GillianGermanyAnna Fali QUALIFIED
Costa L RoysterGermanyAnna Fali PROPOSAL
Aditya O WieserUnited KingdomXuxue Feng NEGOTIATION
Stacey Q DarakjyRussiaAsiya Javayant PROPOSAL
David E DoeJapanOnyama Limba UNQUALIFIED
Antonio R CaldareraFranceAmy Elsner UNQUALIFIED
Jones Y ButtRussiaOnyama Limba QUALIFIED
Sinclair C BriddickIndiaAnna Fali QUALIFIED
Adams Y NickaAustraliaAnna Fali QUALIFIED
Claire P RoysterArgentinaBernardo Dominic RENEWAL
Smith P VenereSpainAmy Elsner RENEWAL
Maria B GarufiGermanyElwin Sharvill PROPOSAL
Julie W SaylorsJapanAsiya Javayant RENEWAL
Faith I ChuiRussiaAsiya Javayant QUALIFIED
David B ButtBrazilOnyama Limba NEGOTIATION
Arvin K OstroskySpainIoni Bowcher NEGOTIATION
Salvatore O ButtFranceAnna Fali NEGOTIATION
Costa T MacleadItalyAmy Elsner NEW
Clifford V WhobreyItalyIoni Bowcher RENEWAL
Wickens K AlbaresUnited KingdomIoni Bowcher RENEWAL
Tony Z InouyeGermanyStephen Shaw UNQUALIFIED
Arvin V PoquetteCanadaAsiya Javayant NEW
Tony P WhobreyIndiaAnna Fali PROPOSAL
Kaitlin B MarrierItalyIoni Bowcher UNQUALIFIED
Alejandro Y GillianCanadaIvan Magalhaes QUALIFIED
Deepesh R KuskoSpainAnna Fali QUALIFIED
Darci I TollnerBrazilAnna Fali UNQUALIFIED
Alejandro E NestleRussiaIoni Bowcher NEW
Mujtaba O CaldareraBrazilXuxue Feng RENEWAL
Cody P NestleRussiaElwin Sharvill QUALIFIED
Aika H CampainItalyAsiya Javayant QUALIFIED
Murillo L RoysterBrazilElwin Sharvill NEW
Costa F KuskoArgentinaIvan Magalhaes PROPOSAL
James A SchemmerUnited KingdomIoni Bowcher NEW
Sinclair Z AmigonUnited KingdomAnna Fali QUALIFIED
Alejandro L GarufiFranceOnyama Limba NEW
Johnson C ChuiItalyXuxue Feng QUALIFIED
Alejandro W NickaItalyIvan Magalhaes QUALIFIED
Izzy X WhobreyAustraliaStephen Shaw PROPOSAL
Ricardo N WaycottFranceIoni Bowcher UNQUALIFIED

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