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
Silvio F MaletUnited KingdomBernardo Dominic RENEWAL
Wickens E MorascaFranceXuxue Feng UNQUALIFIED
Nicolas V SchemmerIndiaIvan Magalhaes UNQUALIFIED
Munro F AmigonIndiaElwin Sharvill UNQUALIFIED
Maisha A PerinArgentinaIvan Magalhaes NEGOTIATION
Isabel V RoysterUnited KingdomAnna Fali UNQUALIFIED
Kaitlin S KolmetzBrazilAmy Elsner PROPOSAL
Smith T KuskoItalyAsiya Javayant QUALIFIED
Emily F CampainFranceXuxue Feng QUALIFIED
Jennifer E AlbaresGermanyElwin Sharvill UNQUALIFIED
Maisha V MaletFranceAnna Fali NEGOTIATION
Francesco M PerinAustraliaStephen Shaw UNQUALIFIED
Mujtaba R AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Claire P FigeroaCanadaBernardo Dominic UNQUALIFIED
Murillo V SaylorsJapanXuxue Feng NEGOTIATION
Aditya F SchemmerBrazilAsiya Javayant PROPOSAL
Jones R CaldareraBrazilElwin Sharvill PROPOSAL
Maisha M BologniaSpainAnna Fali QUALIFIED
Jones M SchemmerAustraliaXuxue Feng UNQUALIFIED
Julie V WhobreySpainAsiya Javayant UNQUALIFIED
Jones H SlusarskiCanadaBernardo Dominic NEGOTIATION
Kaitlin T ShinkoGermanyAsiya Javayant UNQUALIFIED
Tony U RoysterRussiaElwin Sharvill PROPOSAL
Faith S InouyeItalyStephen Shaw NEGOTIATION
Aruna D FerenczJapanOnyama Limba NEGOTIATION
Isabel K WieserBrazilOnyama Limba QUALIFIED
Isabel C MarrierArgentinaAnna Fali NEW
James F VocelkaGermanyIoni Bowcher UNQUALIFIED
Silvio O FollerFranceOnyama Limba QUALIFIED
Isabel L AmigonUnited KingdomElwin Sharvill UNQUALIFIED
Nicolas T OstroskyJapanAnna Fali QUALIFIED
Chavez Q MaletBrazilAnna Fali QUALIFIED
Ivar X PerinBrazilStephen Shaw QUALIFIED
Chavez J KolmetzGermanyElwin Sharvill NEW
Greenwood O MarrierBrazilAsiya Javayant RENEWAL
Costa R StensethUnited KingdomIoni Bowcher QUALIFIED
Mujtaba P MarrierAustraliaBernardo Dominic RENEWAL
Murillo F WaycottSpainElwin Sharvill NEW
Francesco C CampainItalyXuxue Feng RENEWAL
Chavez A CaldareraRussiaAsiya Javayant NEW
Kaitlin J ChuiArgentinaAnna Fali QUALIFIED
Salvatore I MaletItalyAsiya Javayant PROPOSAL
Silvio V SaylorsCanadaOnyama Limba QUALIFIED
Alejandro F InouyeFranceElwin Sharvill NEGOTIATION
Mujtaba C MarrierAustraliaElwin Sharvill RENEWAL
Murillo Z RimUnited KingdomStephen Shaw NEW
Deepesh K WieserBrazilIoni Bowcher UNQUALIFIED
Tony T AmigonRussiaIvan Magalhaes NEGOTIATION
David S NickaSpainElwin Sharvill UNQUALIFIED
Leja S StockhamAustraliaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Maria S FlosiArgentinaBernardo Dominic NEGOTIATION
Jefferson N KuskoSpainStephen Shaw NEW
Nicolas X SlusarskiFranceAsiya Javayant UNQUALIFIED
Kadeem X MacleadCanadaOnyama Limba RENEWAL
Chavez R MacleadItalyXuxue Feng NEGOTIATION
Rodrigues G PaprockiGermanyBernardo Dominic QUALIFIED
Claire V PaprockiSpainElwin Sharvill UNQUALIFIED
Mayumi G BowleyAustraliaBernardo Dominic RENEWAL
Smith L RoysterIndiaElwin Sharvill PROPOSAL
Ashley M KuskoFranceOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily T StockhamItaly2026-08-12Rousseaux, Michael Esq UNQUALIFIED18Asiya Javayant
1001Jennifer C MaletJapan2026-07-25Chemel, James L Cpa QUALIFIED76Amy Elsner
1002Morrow M InouyeArgentina2026-08-10Truhlar And Truhlar Attys NEGOTIATION20Xuxue Feng
1003David P StensethUnited Kingdom2026-08-02Rousseaux, Michael Esq UNQUALIFIED71Ioni Bowcher
1004Morrow A BologniaCanada2026-07-17Truhlar And Truhlar Attys PROPOSAL17Ivan Magalhaes
1005Aditya J ShinkoIndia2026-08-01Buckley Miller Wright UNQUALIFIED33Asiya Javayant
1006Kadeem P SchemmerBrazil2026-07-29Rousseaux, Michael Esq RENEWAL44Bernardo Dominic
1007James B FollerItaly2026-08-14Chemel, James L Cpa RENEWAL41Bernardo Dominic
1008Mujtaba C CaudyIndia2026-07-19Chemel, James L Cpa QUALIFIED39Amy Elsner
1009Jennifer N FlosiJapan2026-07-19Rousseaux, Michael Esq PROPOSAL33Bernardo Dominic
1010Misaki I PerinSpain2026-08-03Rousseaux, Michael Esq PROPOSAL66Amy Elsner
1011James V GarufiGermany2026-07-31Chapman, Ross E Esq RENEWAL88Xuxue Feng
1012Smith A CampainFrance2026-08-13Morlong Associates RENEWAL67Elwin Sharvill
1013Arvin C GlickGermany2026-07-26Morlong Associates UNQUALIFIED65Amy Elsner
1014Ricardo M NestleSpain2026-08-13Commercial Press UNQUALIFIED5Ioni Bowcher
1015Johnson K MaletBrazil2026-07-26Rousseaux, Michael Esq PROPOSAL82Stephen Shaw
1016Maisha C GillianIndia2026-07-30Chapman, Ross E Esq NEW8Asiya Javayant
1017David H PerinAustralia2026-08-06Buckley Miller Wright RENEWAL27Onyama Limba
1018Ashley N FerenczJapan2026-07-18Rousseaux, Michael Esq RENEWAL59Xuxue Feng
1019Deepesh H FlosiCanada2026-07-29Buckley Miller Wright QUALIFIED22Stephen Shaw
1020Ricardo V RutaBrazil2026-07-21Printing Dimensions NEW39Onyama Limba
1021Silvio C FigeroaAustralia2026-07-28Feiner Bros PROPOSAL21Ioni Bowcher
1022Smith C MorascaCanada2026-07-20Chapman, Ross E Esq NEGOTIATION25Onyama Limba
1023Aika K OldroydGermany2026-08-01Printing Dimensions UNQUALIFIED85Ioni Bowcher
1024Greenwood K MacleadArgentina2026-08-03King, Christopher A Esq QUALIFIED62Ioni Bowcher
1025Aditya P RimRussia2026-07-22King, Christopher A Esq NEGOTIATION28Anna Fali
1026Jones N MaletFrance2026-08-12Rousseaux, Michael Esq RENEWAL82Asiya Javayant
1027Antonio M RoysterArgentina2026-07-19King, Christopher A Esq RENEWAL11Stephen Shaw
1028Jeanfrancois E InouyeBrazil2026-08-02Commercial Press PROPOSAL69Bernardo Dominic
1029Adams C WhobreyRussia2026-08-13Rousseaux, Michael Esq RENEWAL94Ioni Bowcher
1030Sinclair P DoeArgentina2026-08-10Chapman, Ross E Esq PROPOSAL88Asiya Javayant
1031Rodrigues M KuskoUnited Kingdom2026-08-12Dorl, James J Esq QUALIFIED9Xuxue Feng
1032David S NestleRussia2026-07-22Rousseaux, Michael Esq NEGOTIATION70Xuxue Feng
1033Antonio P BowleySpain2026-07-25Truhlar And Truhlar Attys UNQUALIFIED81Elwin Sharvill
1034Jeanfrancois L MacleadCanada2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED31Ivan Magalhaes
1035Maisha A ChuiJapan2026-08-08Chanay, Jeffrey A Esq NEGOTIATION76Onyama Limba
1036Costa Z MorascaRussia2026-07-28Morlong Associates UNQUALIFIED68Bernardo Dominic
1037Maisha Y InouyeFrance2026-07-23Chemel, James L Cpa PROPOSAL42Asiya Javayant
1038Adams L SchemmerIndia2026-08-07Commercial Press UNQUALIFIED3Amy Elsner
1039Jennifer H FlosiArgentina2026-07-20Printing Dimensions NEW61Amy Elsner
1040Mayumi Y OstroskyFrance2026-07-18Truhlar And Truhlar Attys NEW56Asiya Javayant
1041Rodrigues N DarakjyIndia2026-07-22Feltz Printing Service UNQUALIFIED91Anna Fali
1042Wickens B DoeCanada2026-08-04Chapman, Ross E Esq NEGOTIATION95Bernardo Dominic
1043Sinclair O IturbideIndia2026-08-05Commercial Press NEW99Asiya Javayant
1044Greenwood Y DoeAustralia2026-08-08Rangoni Of Florence QUALIFIED97Anna Fali
1045Silvio B DarakjyAustralia2026-08-13Dorl, James J Esq NEW76Amy Elsner
1046Smith F MacleadBrazil2026-07-26Feiner Bros RENEWAL81Elwin Sharvill
1047Leon S FerenczCanada2026-07-16Morlong Associates PROPOSAL15Anna Fali
1048Octavia N RimCanada2026-07-29Feiner Bros RENEWAL35Ivan Magalhaes
1049Johnson W GlickArgentina2026-07-30Feltz Printing Service NEGOTIATION17Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Juan I RutaAustraliaOnyama Limba NEGOTIATION
Ivar E MacleadItalyOnyama Limba QUALIFIED
Leja D ChuiJapanXuxue Feng QUALIFIED
James R MorascaJapanIoni Bowcher PROPOSAL
Deepesh Y SlusarskiSpainAsiya Javayant QUALIFIED
Chavez X KuskoBrazilIvan Magalhaes RENEWAL
Aruna E PerinItalyAmy Elsner NEGOTIATION
Kadeem G DilliardAustraliaAsiya Javayant PROPOSAL
Jeanfrancois B AmigonIndiaElwin Sharvill QUALIFIED
Silvio N DarakjyCanadaElwin Sharvill NEGOTIATION
Leon L OldroydGermanyIoni Bowcher UNQUALIFIED
Chavez X KuskoItalyIoni Bowcher RENEWAL
Wickens R PaprockiFranceXuxue Feng RENEWAL
David S WhobreyArgentinaIoni Bowcher QUALIFIED
Aditya H BologniaCanadaAmy Elsner RENEWAL
Kaitlin X WaycottRussiaStephen Shaw NEGOTIATION
Antonio D NickaSpainIoni Bowcher NEGOTIATION
Stacey V RoysterUnited KingdomBernardo Dominic RENEWAL
Tony W WieserArgentinaAnna Fali QUALIFIED
Leon K VocelkaSpainXuxue Feng NEGOTIATION
Francesco Z DilliardArgentinaIvan Magalhaes NEW
Costa A WaycottBrazilOnyama Limba NEGOTIATION
Costa S MarrierSpainOnyama Limba PROPOSAL
Wickens L GillianGermanyElwin Sharvill RENEWAL
Smith W GarufiCanadaAsiya Javayant NEGOTIATION
Mayumi Q FollerArgentinaXuxue Feng NEW
Mayumi Y WaycottFranceAsiya Javayant UNQUALIFIED
Kadeem H RoysterJapanAnna Fali PROPOSAL
Mujtaba Z GarufiArgentinaIoni Bowcher PROPOSAL
Leja P RulapaughBrazilAnna Fali UNQUALIFIED
Maria V CampainSpainXuxue Feng UNQUALIFIED
Chavez E MorascaAustraliaIvan Magalhaes QUALIFIED
Salvatore D NestleGermanyAmy Elsner NEW
Julie I AmigonItalyIvan Magalhaes RENEWAL
Arvin H OldroydUnited KingdomAsiya Javayant NEGOTIATION
Aditya R BowleyFranceOnyama Limba NEW
Darci M KuskoFranceStephen Shaw UNQUALIFIED
Maisha I GillianIndiaXuxue Feng QUALIFIED
Ashley D CaudyItalyAmy Elsner PROPOSAL
Deepesh H SchemmerIndiaIoni Bowcher NEW
Izzy B ButtItalyXuxue Feng QUALIFIED
Munro O ChuiArgentinaIoni Bowcher NEGOTIATION
Wickens K KolmetzGermanyXuxue Feng QUALIFIED
Ashley U OldroydFranceAnna Fali QUALIFIED
Leja M GauchoArgentinaIoni Bowcher PROPOSAL
Maisha C FigeroaFranceOnyama Limba QUALIFIED
Mujtaba Q CaldareraBrazilBernardo Dominic RENEWAL
Mujtaba M CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro W KuskoJapanAsiya Javayant PROPOSAL
Rodrigues Z RutaBrazilBernardo Dominic PROPOSAL
Frozen Columns
Name
Antonio N Figeroa
Jones Y Butt
Rodrigues H Maclead
Jeanfrancois K Slusarski
Ashley A Paprocki
Mujtaba J Ruta
Chavez T Slusarski
Francesco D Foller
Ivar N Whobrey
Smith Z Stockham
Morrow H Malet
Jefferson G Whobrey
James J Paprocki
Aditya O Caldarera
Smith H Sergi
Isabel N Dilliard
Antonio C Bowley
Murillo X Whobrey
Isabel S Schemmer
Kadeem C Ferencz
Rodrigues G Sergi
Kaitlin X Sergi
Darci Z Malet
Greenwood I Chui
Octavia M Doe
Emily Y Rim
Kadeem S Waycott
Chavez B Chui
Murillo L Glick
Aika Y Rulapaugh
Arvin Q Stenseth
David Q Stockham
Cody S Bolognia
Adams B Glick
Cody L Caldarera
Izzy X Schemmer
Leon X Foller
Antonio K Chui
Arvin Z Inouye
Aika I Shinko
Salvatore U Nicka
Kaitlin K Kusko
Munro B Gillian
Leja J Sergi
Isabel B Stenseth
Jones Q Gillian
Juan E Campain
Kaitlin K Iturbide
Francesco T Chui
Leon K Venere
IdCountryDate
1000France2026-08-11
1001Australia2026-08-09
1002Canada2026-07-28
1003Spain2026-07-31
1004Japan2026-07-27
1005Canada2026-07-31
1006Germany2026-08-05
1007Spain2026-08-01
1008Japan2026-08-07
1009Brazil2026-07-28
1010Canada2026-08-12
1011Germany2026-08-02
1012France2026-07-22
1013Australia2026-08-02
1014Canada2026-08-09
1015Italy2026-07-19
1016Brazil2026-07-31
1017France2026-08-04
1018Japan2026-08-03
1019Argentina2026-08-06
1020Brazil2026-08-01
1021Argentina2026-07-18
1022Canada2026-08-07
1023Japan2026-08-11
1024Spain2026-08-09
1025Australia2026-07-20
1026Australia2026-08-09
1027Brazil2026-08-07
1028Russia2026-07-31
1029United Kingdom2026-08-12
1030Canada2026-07-31
1031France2026-07-30
1032Australia2026-08-08
1033United Kingdom2026-07-30
1034India2026-07-25
1035Russia2026-08-05
1036Spain2026-08-06
1037France2026-07-17
1038India2026-08-13
1039Canada2026-07-21
1040India2026-07-18
1041Australia2026-07-22
1042Spain2026-07-23
1043Spain2026-07-29
1044Russia2026-08-05
1045Brazil2026-08-12
1046Australia2026-07-30
1047Japan2026-08-13
1048Canada2026-08-11
1049Germany2026-08-12

On-Demand Data

NameIdCountryDate
Izzy B Campain1000Spain2026-07-16
Silvio L Bolognia1001United Kingdom2026-08-14
Rodrigues N Kusko1002Russia2026-07-30
Chavez R Nicka1003India2026-08-04
Johnson C Schemmer1004United Kingdom2026-07-26
Octavia F Bolognia1005Canada2026-07-24
Stacey N Gaucho1006France2026-07-23
Kadeem X Stockham1007Japan2026-07-24
Kadeem M Venere1008Germany2026-07-29
Octavia U Marrier1009Italy2026-07-28
Izzy S Ruta1010United Kingdom2026-07-23
Leon T Butt1011Russia2026-08-04
Mayumi K Shinko1012Germany2026-08-07
Salvatore F Perin1013Canada2026-07-30
Claire U Schemmer1014Brazil2026-07-24
Darci O Iturbide1015Brazil2026-08-03
David H Ferencz1016Germany2026-07-18
Maria R Caldarera1017Canada2026-07-27
Munro K Gaucho1018Germany2026-07-27
Kaitlin Z Campain1019Spain2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya I MorascaGermanyElwin Sharvill RENEWAL
Aruna J IturbideFranceAmy Elsner RENEWAL
Darci A AlbaresGermanyIoni Bowcher UNQUALIFIED
Tony N AmigonFranceAmy Elsner NEW
Isabel O BowleyArgentinaOnyama Limba PROPOSAL
Claire Y ButtJapanStephen Shaw NEW
Johnson T VocelkaUnited KingdomXuxue Feng RENEWAL
Francesco B MaletItalyIoni Bowcher PROPOSAL
Tony I WhobreyRussiaBernardo Dominic RENEWAL
Munro H MaletBrazilXuxue Feng UNQUALIFIED
Kadeem U DilliardFranceStephen Shaw PROPOSAL
Salvatore E TollnerAustraliaXuxue Feng QUALIFIED
Murillo I BriddickCanadaAnna Fali RENEWAL
David L RutaRussiaElwin Sharvill NEGOTIATION
Mujtaba H RoysterRussiaAnna Fali NEW
Mayumi F WhobreyFranceAsiya Javayant RENEWAL
Misaki W StockhamCanadaXuxue Feng RENEWAL
Alejandro R IturbideGermanyIoni Bowcher RENEWAL
Isabel J DoeUnited KingdomAnna Fali RENEWAL
Aruna O NickaRussiaIoni Bowcher QUALIFIED
Izzy T RoysterArgentinaBernardo Dominic QUALIFIED
Clifford V GlickJapanAnna Fali RENEWAL
Ivar V AmigonJapanBernardo Dominic QUALIFIED
Jennifer H DoeItalyOnyama Limba QUALIFIED
Aditya O BriddickCanadaBernardo Dominic PROPOSAL
Kadeem I ChuiBrazilAnna Fali QUALIFIED
Maisha K SchemmerCanadaAmy Elsner RENEWAL
Mujtaba Y IturbideRussiaAnna Fali QUALIFIED
Ashley T PerinSpainAnna Fali QUALIFIED
James P SaylorsSpainAmy Elsner QUALIFIED
Salvatore R PerinGermanyIvan Magalhaes RENEWAL
Jefferson T SchemmerUnited KingdomBernardo Dominic PROPOSAL
Munro X WieserCanadaIvan Magalhaes UNQUALIFIED
Chavez P IturbideRussiaBernardo Dominic UNQUALIFIED
Misaki S SergiIndiaBernardo Dominic PROPOSAL
Ivar F IturbideSpainAnna Fali PROPOSAL
Deepesh I CaldareraAustraliaIoni Bowcher PROPOSAL
Leon Q BowleyArgentinaAmy Elsner PROPOSAL
Emily O PoquetteRussiaIvan Magalhaes NEW
Mujtaba I TollnerItalyElwin Sharvill NEGOTIATION

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