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
Leja T CampainBrazilBernardo Dominic NEW
Adams U PaprockiGermanyElwin Sharvill PROPOSAL
Emily J ButtBrazilIoni Bowcher NEGOTIATION
David P ShinkoAustraliaIvan Magalhaes UNQUALIFIED
Ricardo A MarrierIndiaStephen Shaw QUALIFIED
Ashley R ButtIndiaAmy Elsner UNQUALIFIED
Kadeem Y PerinUnited KingdomXuxue Feng RENEWAL
Francesco D CampainBrazilOnyama Limba QUALIFIED
David J GauchoUnited KingdomIvan Magalhaes QUALIFIED
Ricardo R IturbideArgentinaAnna Fali QUALIFIED
Adams C AlbaresGermanyElwin Sharvill QUALIFIED
Octavia U FlosiGermanyBernardo Dominic RENEWAL
Ivar H SaylorsUnited KingdomIvan Magalhaes NEW
Chavez C InouyeRussiaAnna Fali PROPOSAL
Clifford N FlosiItalyIoni Bowcher NEW
Faith D DarakjyCanadaIoni Bowcher NEW
Aruna A WhobreyCanadaAmy Elsner NEW
Jones H FlosiCanadaIoni Bowcher NEGOTIATION
Rodrigues I PoquetteFranceOnyama Limba UNQUALIFIED
Kadeem J WhobreyAustraliaBernardo Dominic RENEWAL
Faith P ChuiJapanOnyama Limba QUALIFIED
Francesco Z KuskoUnited KingdomAmy Elsner NEGOTIATION
Maisha M FlosiBrazilAsiya Javayant NEW
Jones K DilliardCanadaOnyama Limba UNQUALIFIED
Nicolas N DarakjyIndiaIoni Bowcher UNQUALIFIED
Murillo X KuskoBrazilAnna Fali PROPOSAL
Stacey E WaycottAustraliaAnna Fali PROPOSAL
Francesco R SchemmerBrazilIvan Magalhaes NEGOTIATION
Juan E OldroydUnited KingdomAsiya Javayant NEW
Antonio X RoysterSpainIvan Magalhaes NEW
Izzy P StensethItalyIvan Magalhaes QUALIFIED
Salvatore K FollerFranceElwin Sharvill UNQUALIFIED
Francesco Y CaldareraAustraliaElwin Sharvill RENEWAL
Mujtaba D AmigonAustraliaXuxue Feng PROPOSAL
Izzy U FollerAustraliaBernardo Dominic PROPOSAL
Chavez K MacleadSpainAnna Fali PROPOSAL
Nicolas O MacleadIndiaXuxue Feng NEGOTIATION
Adams A MorascaItalyOnyama Limba PROPOSAL
Sinclair U KolmetzFranceIoni Bowcher RENEWAL
Mayumi C BowleyGermanyBernardo Dominic NEW
Salvatore T KolmetzAustraliaStephen Shaw NEGOTIATION
Adams G GauchoUnited KingdomStephen Shaw NEGOTIATION
Juan B GlickBrazilBernardo Dominic PROPOSAL
Aika D InouyeBrazilElwin Sharvill NEW
Alejandro A RulapaughSpainAsiya Javayant RENEWAL
Francesco U DilliardSpainAsiya Javayant QUALIFIED
Wickens E RoysterItalyStephen Shaw UNQUALIFIED
Leja M StockhamArgentinaBernardo Dominic RENEWAL
Costa K SlusarskiJapanIvan Magalhaes RENEWAL
Ricardo D GlickSpainIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci O MarrierItalyAmy Elsner PROPOSAL
Murillo A OstroskyFranceXuxue Feng UNQUALIFIED
Johnson M BowleyAustraliaOnyama Limba PROPOSAL
Maisha C InouyeRussiaIoni Bowcher QUALIFIED
Ashley N NestleItalyBernardo Dominic NEGOTIATION
Mayumi H WhobreyCanadaAsiya Javayant QUALIFIED
Julie J CaldareraIndiaIvan Magalhaes QUALIFIED
Cody N FlosiJapanStephen Shaw UNQUALIFIED
Tony O FollerFranceAnna Fali PROPOSAL
Deepesh C TollnerFranceBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David E InouyeItaly2026-07-27Printing Dimensions UNQUALIFIED55Asiya Javayant
1001James V FlosiSpain2026-08-03Commercial Press UNQUALIFIED45Bernardo Dominic
1002Arvin E MarrierCanada2026-08-05Morlong Associates PROPOSAL51Anna Fali
1003Maria K FerenczSpain2026-08-18Feiner Bros UNQUALIFIED11Stephen Shaw
1004Aika E NestleSpain2026-08-07Chemel, James L Cpa UNQUALIFIED60Stephen Shaw
1005Misaki C CaudyArgentina2026-08-08Dorl, James J Esq PROPOSAL77Xuxue Feng
1006Ashley S FigeroaUnited Kingdom2026-08-08Chemel, James L Cpa QUALIFIED47Asiya Javayant
1007Tony E InouyeUnited Kingdom2026-07-27Chemel, James L Cpa QUALIFIED91Asiya Javayant
1008Ricardo L FigeroaCanada2026-08-09Rangoni Of Florence RENEWAL2Bernardo Dominic
1009Maisha J GillianBrazil2026-08-04Feiner Bros UNQUALIFIED71Anna Fali
1010Aruna V SaylorsJapan2026-08-17Benton, John B Jr UNQUALIFIED2Elwin Sharvill
1011Greenwood M GauchoCanada2026-08-01Dorl, James J Esq QUALIFIED73Anna Fali
1012Jefferson L ShinkoSpain2026-08-13Chanay, Jeffrey A Esq NEGOTIATION98Asiya Javayant
1013Leja E ChuiIndia2026-08-19Commercial Press NEGOTIATION59Asiya Javayant
1014Arvin I FigeroaAustralia2026-08-20Buckley Miller Wright UNQUALIFIED24Xuxue Feng
1015David U CaldareraJapan2026-07-27Chemel, James L Cpa NEGOTIATION90Asiya Javayant
1016Jones D WieserSpain2026-08-18Morlong Associates RENEWAL29Elwin Sharvill
1017Sinclair G DoeCanada2026-08-20Buckley Miller Wright RENEWAL86Onyama Limba
1018Mayumi U ShinkoFrance2026-08-01Morlong Associates QUALIFIED66Asiya Javayant
1019Munro Q FerenczIndia2026-07-30Printing Dimensions UNQUALIFIED37Ivan Magalhaes
1020Julie G ShinkoJapan2026-08-03Feltz Printing Service PROPOSAL55Elwin Sharvill
1021Aruna H MaletFrance2026-08-07Truhlar And Truhlar Attys PROPOSAL21Onyama Limba
1022Francesco M SergiFrance2026-08-17King, Christopher A Esq NEGOTIATION41Bernardo Dominic
1023Chavez A FollerRussia2026-08-04Truhlar And Truhlar Attys QUALIFIED38Xuxue Feng
1024Emily G NickaArgentina2026-08-16Commercial Press UNQUALIFIED58Elwin Sharvill
1025Aruna U DilliardArgentina2026-08-19Chanay, Jeffrey A Esq QUALIFIED15Stephen Shaw
1026Maisha J SaylorsAustralia2026-08-22Printing Dimensions PROPOSAL59Asiya Javayant
1027Salvatore U PaprockiJapan2026-08-21Chanay, Jeffrey A Esq RENEWAL51Xuxue Feng
1028Ivar U VenereFrance2026-08-07Benton, John B Jr UNQUALIFIED34Asiya Javayant
1029Aditya N SlusarskiIndia2026-08-12Feiner Bros UNQUALIFIED57Onyama Limba
1030Darci O InouyeRussia2026-07-31Chemel, James L Cpa NEW51Onyama Limba
1031Antonio N WaycottItaly2026-08-07Chemel, James L Cpa PROPOSAL36Amy Elsner
1032Jones F AmigonBrazil2026-07-25Chanay, Jeffrey A Esq PROPOSAL37Amy Elsner
1033Ivar C RulapaughSpain2026-08-17Feltz Printing Service RENEWAL30Xuxue Feng
1034Izzy S FlosiRussia2026-08-05Feiner Bros NEW71Amy Elsner
1035Smith L CaudyCanada2026-07-27Rousseaux, Michael Esq NEGOTIATION5Ioni Bowcher
1036Misaki B PaprockiAustralia2026-07-31Printing Dimensions PROPOSAL80Amy Elsner
1037Adams D AlbaresSpain2026-08-21Chemel, James L Cpa QUALIFIED47Elwin Sharvill
1038Emily E PoquetteItaly2026-08-18King, Christopher A Esq UNQUALIFIED4Stephen Shaw
1039Costa F MarrierGermany2026-07-30Chanay, Jeffrey A Esq NEW22Ivan Magalhaes
1040Octavia C OldroydSpain2026-08-18Feltz Printing Service RENEWAL21Asiya Javayant
1041Antonio G MarrierItaly2026-08-08Buckley Miller Wright UNQUALIFIED70Elwin Sharvill
1042Octavia S StockhamRussia2026-08-12Truhlar And Truhlar Attys PROPOSAL78Xuxue Feng
1043Jennifer H ChuiCanada2026-08-11Truhlar And Truhlar Attys NEGOTIATION5Ioni Bowcher
1044Jeanfrancois T BriddickIndia2026-08-13Benton, John B Jr UNQUALIFIED23Elwin Sharvill
1045Darci S VenereUnited Kingdom2026-08-21King, Christopher A Esq UNQUALIFIED88Ioni Bowcher
1046Arvin S MaletCanada2026-08-11King, Christopher A Esq NEW50Onyama Limba
1047Munro C VocelkaCanada2026-08-10Feltz Printing Service NEGOTIATION96Amy Elsner
1048Aika P PerinArgentina2026-07-30Chanay, Jeffrey A Esq PROPOSAL25Anna Fali
1049Greenwood N VocelkaItaly2026-08-04Dorl, James J Esq RENEWAL26Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Sinclair Z ChuiIndiaAmy Elsner NEGOTIATION
Isabel K BriddickFranceIoni Bowcher RENEWAL
James O KolmetzUnited KingdomElwin Sharvill NEGOTIATION
Jefferson D DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Costa F GillianUnited KingdomAmy Elsner NEW
Ricardo E KolmetzArgentinaBernardo Dominic PROPOSAL
Isabel L MorascaFranceAsiya Javayant RENEWAL
Jeanfrancois Z BologniaArgentinaIvan Magalhaes RENEWAL
Antonio R WaycottCanadaXuxue Feng NEW
Deepesh P DilliardJapanAsiya Javayant PROPOSAL
Arvin T TollnerRussiaXuxue Feng UNQUALIFIED
Octavia U MacleadFranceAsiya Javayant QUALIFIED
Jeanfrancois F VocelkaIndiaAnna Fali RENEWAL
Ricardo V InouyeIndiaAnna Fali UNQUALIFIED
Murillo B KolmetzIndiaIoni Bowcher PROPOSAL
Jones Z RutaGermanyAnna Fali UNQUALIFIED
Cody V FerenczUnited KingdomOnyama Limba UNQUALIFIED
Aditya Z FigeroaBrazilOnyama Limba RENEWAL
Octavia U BriddickCanadaStephen Shaw RENEWAL
Julie U KolmetzSpainBernardo Dominic RENEWAL
Emily R DoeUnited KingdomAsiya Javayant NEW
Salvatore W TollnerGermanyIvan Magalhaes NEW
Jefferson C CaldareraFranceAnna Fali RENEWAL
Jennifer V FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Salvatore D RimRussiaAnna Fali UNQUALIFIED
James O ChuiItalyAsiya Javayant RENEWAL
Misaki U GarufiArgentinaStephen Shaw NEW
Jeanfrancois X MacleadRussiaAnna Fali PROPOSAL
Chavez Y ChuiBrazilAsiya Javayant PROPOSAL
Chavez I GillianSpainOnyama Limba NEGOTIATION
Greenwood V MarrierArgentinaIvan Magalhaes PROPOSAL
Murillo L KolmetzGermanyIvan Magalhaes RENEWAL
Leon P OstroskyFranceBernardo Dominic PROPOSAL
Emily Y PaprockiJapanIvan Magalhaes PROPOSAL
Chavez W OstroskyAustraliaIvan Magalhaes NEGOTIATION
Antonio Y WieserBrazilElwin Sharvill NEW
Ricardo K AmigonBrazilElwin Sharvill NEW
Morrow H WhobreySpainStephen Shaw RENEWAL
Greenwood S RoysterSpainXuxue Feng QUALIFIED
Murillo F ChuiAustraliaElwin Sharvill PROPOSAL
Clifford T WieserIndiaElwin Sharvill NEGOTIATION
Julie J GarufiIndiaAsiya Javayant NEW
Rodrigues E GlickUnited KingdomAmy Elsner UNQUALIFIED
Maisha G CampainItalyAmy Elsner UNQUALIFIED
Cody F NickaRussiaOnyama Limba PROPOSAL
Darci C IturbideIndiaElwin Sharvill RENEWAL
Jones C AmigonSpainAnna Fali PROPOSAL
Adams I WieserUnited KingdomBernardo Dominic QUALIFIED
Ivar P RulapaughArgentinaXuxue Feng NEGOTIATION
Misaki V GlickSpainAmy Elsner NEW
Frozen Columns
Name
Salvatore S Poquette
Maisha R Darakjy
Adams T Butt
Greenwood H Gaucho
Claire A Whobrey
Morrow G Slusarski
Arvin B Doe
Nicolas F Inouye
Jeanfrancois X Rim
Smith H Rulapaugh
David H Venere
Jeanfrancois I Whobrey
Silvio T Paprocki
Juan G Kusko
Salvatore J Figeroa
Aditya C Gaucho
Chavez N Tollner
Darci P Chui
Morrow N Whobrey
Mayumi T Gillian
Greenwood H Caldarera
Salvatore J Iturbide
Munro J Tollner
Ashley T Figeroa
Aditya G Darakjy
Juan W Iturbide
Misaki E Poquette
Aika P Ferencz
Nicolas S Iturbide
Jennifer M Shinko
Francesco B Campain
Izzy N Figeroa
Sinclair F Gaucho
Claire Q Whobrey
Ricardo Q Amigon
Juan M Caldarera
Arvin W Saylors
Silvio G Albares
Faith G Rulapaugh
Kaitlin Y Iturbide
David P Sergi
Ashley J Sergi
Nicolas K Waycott
Leon S Rim
Jeanfrancois U Stockham
Nicolas Q Maclead
Faith Y Malet
Cody Q Saylors
Chavez N Malet
Jones R Ferencz
IdCountryDate
1000Japan2026-08-03
1001Japan2026-07-26
1002United Kingdom2026-08-20
1003France2026-08-03
1004Russia2026-08-15
1005Italy2026-08-18
1006Germany2026-08-04
1007France2026-08-16
1008Russia2026-08-14
1009Germany2026-08-01
1010Brazil2026-08-22
1011France2026-08-09
1012Australia2026-08-20
1013Spain2026-07-25
1014France2026-08-16
1015Spain2026-08-05
1016Japan2026-08-09
1017Canada2026-07-31
1018Argentina2026-07-25
1019Russia2026-07-27
1020Italy2026-07-25
1021India2026-08-19
1022United Kingdom2026-07-28
1023Australia2026-08-14
1024France2026-07-31
1025Italy2026-08-11
1026India2026-08-09
1027Brazil2026-08-08
1028Russia2026-08-14
1029Brazil2026-08-02
1030Australia2026-08-08
1031Japan2026-08-14
1032Japan2026-08-16
1033United Kingdom2026-08-06
1034India2026-08-02
1035Australia2026-08-19
1036Argentina2026-08-18
1037Russia2026-07-27
1038Russia2026-07-25
1039India2026-08-12
1040Canada2026-07-28
1041Russia2026-08-15
1042Spain2026-07-28
1043Russia2026-08-09
1044Russia2026-08-08
1045Germany2026-08-10
1046Italy2026-08-20
1047France2026-08-15
1048Spain2026-07-29
1049Australia2026-07-31

On-Demand Data

NameIdCountryDate
James U Glick1000Spain2026-07-25
Johnson J Campain1001Brazil2026-07-26
Arvin X Doe1002India2026-08-16
Jefferson X Nicka1003United Kingdom2026-08-21
Octavia A Briddick1004Japan2026-08-19
Aika G Foller1005Russia2026-08-09
Sinclair Q Bolognia1006Japan2026-08-21
Morrow R Dilliard1007Brazil2026-08-20
Tony P Inouye1008Brazil2026-08-05
Chavez W Doe1009Brazil2026-07-27
Deepesh L Royster1010Japan2026-08-22
Octavia Q Morasca1011Argentina2026-08-07
Faith I Chui1012Brazil2026-08-14
Stacey E Caldarera1013Argentina2026-08-21
Faith A Rulapaugh1014Japan2026-07-30
Arvin D Inouye1015United Kingdom2026-08-10
Greenwood Z Schemmer1016France2026-08-21
Ashley S Sergi1017Spain2026-07-31
Adams D Gaucho1018Brazil2026-08-09
Ivar X Schemmer1019Russia2026-08-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel D PaprockiBrazilXuxue Feng UNQUALIFIED
Murillo I BowleyJapanOnyama Limba NEW
Sinclair V PoquetteItalyStephen Shaw NEGOTIATION
James N StockhamItalyStephen Shaw RENEWAL
Izzy M MorascaRussiaAmy Elsner RENEWAL
Ivar I GillianAustraliaElwin Sharvill QUALIFIED
Morrow Z SlusarskiIndiaIoni Bowcher PROPOSAL
Munro R RulapaughArgentinaOnyama Limba QUALIFIED
Jefferson F MorascaIndiaAmy Elsner QUALIFIED
Sinclair U BriddickSpainBernardo Dominic NEGOTIATION
Wickens Z RutaCanadaAmy Elsner QUALIFIED
Leja G PoquetteJapanXuxue Feng NEGOTIATION
Ivar B RimFranceXuxue Feng NEW
Isabel X KolmetzCanadaElwin Sharvill QUALIFIED
Morrow M MaletSpainOnyama Limba PROPOSAL
Arvin H RulapaughJapanAnna Fali NEGOTIATION
Leon U NestleAustraliaElwin Sharvill RENEWAL
Chavez P NestleSpainAmy Elsner PROPOSAL
Isabel Q MaletFranceElwin Sharvill NEGOTIATION
Salvatore Y ChuiFranceStephen Shaw UNQUALIFIED
Morrow A BowleyGermanyAsiya Javayant PROPOSAL
Julie J SaylorsJapanAnna Fali RENEWAL
Silvio X KuskoRussiaAnna Fali NEW
Francesco P OstroskyFranceAsiya Javayant PROPOSAL
Antonio I PerinBrazilStephen Shaw RENEWAL
Alejandro P VenereItalyIvan Magalhaes RENEWAL
Arvin V FerenczItalyAmy Elsner UNQUALIFIED
Izzy K CaldareraCanadaXuxue Feng UNQUALIFIED
Julie K DoeUnited KingdomBernardo Dominic UNQUALIFIED
Aditya W RutaSpainOnyama Limba PROPOSAL
Greenwood Z OldroydJapanElwin Sharvill QUALIFIED
Jennifer B ButtUnited KingdomStephen Shaw QUALIFIED
Octavia J SlusarskiUnited KingdomIvan Magalhaes PROPOSAL
Francesco O ChuiItalyIvan Magalhaes NEGOTIATION
Jones H DilliardSpainStephen Shaw QUALIFIED
Aruna Y StockhamArgentinaIvan Magalhaes RENEWAL
Octavia A DilliardIndiaIvan Magalhaes PROPOSAL
Wickens V OldroydFranceAmy Elsner UNQUALIFIED
Mujtaba K DoeUnited KingdomAsiya Javayant NEW
David Q FollerFranceAnna Fali NEW

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