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
Kadeem H ChuiRussiaXuxue Feng QUALIFIED
Mujtaba Q KolmetzUnited KingdomXuxue Feng NEGOTIATION
Maria R DoeItalyIvan Magalhaes NEGOTIATION
Leja S DoeUnited KingdomIvan Magalhaes RENEWAL
Maisha X CaudyItalyOnyama Limba PROPOSAL
Maisha O GarufiIndiaAsiya Javayant RENEWAL
Aruna F RoysterArgentinaBernardo Dominic PROPOSAL
Izzy Q InouyeCanadaElwin Sharvill PROPOSAL
Mujtaba Q VenereCanadaIoni Bowcher NEGOTIATION
Ashley D FerenczBrazilBernardo Dominic RENEWAL
Mujtaba U OstroskyRussiaXuxue Feng UNQUALIFIED
Murillo N FerenczIndiaStephen Shaw QUALIFIED
Claire K BriddickAustraliaOnyama Limba RENEWAL
Rodrigues U RoysterRussiaAmy Elsner NEW
Faith M BriddickIndiaAsiya Javayant NEGOTIATION
Costa Z ShinkoRussiaElwin Sharvill RENEWAL
Mujtaba I VocelkaArgentinaStephen Shaw PROPOSAL
Jeanfrancois E IturbideArgentinaAsiya Javayant NEGOTIATION
Claire J OldroydBrazilBernardo Dominic UNQUALIFIED
Mayumi V FerenczIndiaXuxue Feng NEW
Jefferson D CaldareraBrazilOnyama Limba PROPOSAL
Nicolas F FerenczItalyIvan Magalhaes QUALIFIED
Aika I GlickRussiaOnyama Limba RENEWAL
Ricardo Y FollerItalyAsiya Javayant NEGOTIATION
Clifford O GauchoBrazilStephen Shaw PROPOSAL
Leon A KuskoGermanyIvan Magalhaes QUALIFIED
Aditya A SergiAustraliaXuxue Feng NEGOTIATION
Misaki H MorascaItalyAmy Elsner NEGOTIATION
Octavia Q MorascaJapanOnyama Limba UNQUALIFIED
Leja J ButtItalyOnyama Limba QUALIFIED
Leon T SlusarskiCanadaAsiya Javayant UNQUALIFIED
Jefferson F FlosiFranceAsiya Javayant RENEWAL
Jefferson B TollnerAustraliaBernardo Dominic NEGOTIATION
Leon S DarakjyRussiaIvan Magalhaes PROPOSAL
Greenwood N ShinkoCanadaAmy Elsner RENEWAL
Smith O GarufiGermanyXuxue Feng NEW
Jefferson R GlickCanadaAsiya Javayant NEW
Clifford F PoquetteGermanyStephen Shaw QUALIFIED
Deepesh B TollnerJapanAnna Fali NEGOTIATION
Ivar U RulapaughSpainOnyama Limba UNQUALIFIED
Maisha N WieserIndiaIvan Magalhaes UNQUALIFIED
Kaitlin I KuskoUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair B NickaSpainAmy Elsner NEW
Deepesh Y CampainAustraliaBernardo Dominic UNQUALIFIED
Stacey N OldroydIndiaIvan Magalhaes NEW
Claire B MacleadUnited KingdomAsiya Javayant NEGOTIATION
Sinclair I MaletSpainIvan Magalhaes NEW
Julie N KuskoRussiaElwin Sharvill NEW
Clifford N FollerRussiaAsiya Javayant NEW
Octavia U MacleadSpainBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Stacey X DarakjyUnited KingdomIvan Magalhaes UNQUALIFIED
Silvio Z RulapaughUnited KingdomAnna Fali NEW
Leon P AmigonFranceXuxue Feng QUALIFIED
Claire I StockhamFranceOnyama Limba RENEWAL
Ivar R SlusarskiGermanyBernardo Dominic UNQUALIFIED
Ashley C TollnerFranceStephen Shaw QUALIFIED
Jeanfrancois H RoysterAustraliaXuxue Feng NEGOTIATION
Smith A GillianJapanIoni Bowcher RENEWAL
Leja N FlosiArgentinaOnyama Limba QUALIFIED
Murillo X NickaIndiaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan M MarrierUnited Kingdom2026-08-02Feltz Printing Service UNQUALIFIED5Asiya Javayant
1001Jeanfrancois X DilliardUnited Kingdom2026-07-23Dorl, James J Esq RENEWAL25Ivan Magalhaes
1002Sinclair C OldroydFrance2026-07-21Rousseaux, Michael Esq PROPOSAL85Onyama Limba
1003Leon T PerinAustralia2026-07-21King, Christopher A Esq NEGOTIATION25Bernardo Dominic
1004Julie N SlusarskiCanada2026-07-30Printing Dimensions UNQUALIFIED39Ioni Bowcher
1005Octavia Y MaletSpain2026-08-02Truhlar And Truhlar Attys NEGOTIATION16Bernardo Dominic
1006James O ShinkoSpain2026-07-19Dorl, James J Esq NEW63Amy Elsner
1007Tony X AlbaresFrance2026-07-09King, Christopher A Esq NEW5Elwin Sharvill
1008David D SaylorsItaly2026-07-29Commercial Press NEGOTIATION0Ivan Magalhaes
1009Izzy H AmigonFrance2026-07-12Rousseaux, Michael Esq RENEWAL73Bernardo Dominic
1010Stacey M WaycottAustralia2026-07-29King, Christopher A Esq PROPOSAL34Stephen Shaw
1011Arvin B BologniaFrance2026-07-10Chanay, Jeffrey A Esq NEGOTIATION72Bernardo Dominic
1012Juan T MorascaCanada2026-07-15Chemel, James L Cpa NEW98Stephen Shaw
1013Leja S DarakjyIndia2026-07-24Dorl, James J Esq QUALIFIED82Bernardo Dominic
1014Salvatore W PoquetteGermany2026-07-10Feltz Printing Service NEW33Anna Fali
1015Maria O WaycottFrance2026-08-02Chapman, Ross E Esq QUALIFIED39Ioni Bowcher
1016Munro S FerenczSpain2026-07-10Benton, John B Jr NEW48Amy Elsner
1017Maisha Z DarakjyJapan2026-07-10Feltz Printing Service UNQUALIFIED1Ivan Magalhaes
1018Faith F KuskoItaly2026-08-06Rangoni Of Florence PROPOSAL47Asiya Javayant
1019Misaki V SchemmerArgentina2026-07-24Chemel, James L Cpa PROPOSAL80Stephen Shaw
1020Jennifer R PoquetteAustralia2026-07-27Feiner Bros QUALIFIED0Bernardo Dominic
1021Maria S BologniaAustralia2026-08-05Feiner Bros QUALIFIED58Bernardo Dominic
1022Jennifer O MorascaItaly2026-08-05Feltz Printing Service RENEWAL47Anna Fali
1023Mayumi O WhobreyAustralia2026-07-09Truhlar And Truhlar Attys UNQUALIFIED66Onyama Limba
1024Mayumi C FollerFrance2026-07-11Feltz Printing Service NEGOTIATION34Xuxue Feng
1025Leja L OstroskySpain2026-07-19Dorl, James J Esq UNQUALIFIED44Ivan Magalhaes
1026Arvin X WieserAustralia2026-07-17King, Christopher A Esq PROPOSAL9Anna Fali
1027Costa Q FlosiItaly2026-07-31Feltz Printing Service NEGOTIATION88Asiya Javayant
1028Mayumi P GarufiItaly2026-08-03Dorl, James J Esq UNQUALIFIED29Elwin Sharvill
1029Nicolas B WhobreyItaly2026-08-01Buckley Miller Wright QUALIFIED14Amy Elsner
1030Deepesh Z ShinkoCanada2026-07-31Buckley Miller Wright PROPOSAL6Amy Elsner
1031Deepesh A WieserArgentina2026-07-30Morlong Associates RENEWAL79Asiya Javayant
1032Jones X SlusarskiJapan2026-07-14Feltz Printing Service PROPOSAL92Ioni Bowcher
1033Jeanfrancois O SaylorsUnited Kingdom2026-07-26Feiner Bros NEGOTIATION83Anna Fali
1034Julie H BowleyItaly2026-07-23Commercial Press RENEWAL67Ivan Magalhaes
1035Costa C RutaFrance2026-07-12Chanay, Jeffrey A Esq RENEWAL70Bernardo Dominic
1036Salvatore W BologniaJapan2026-07-20Dorl, James J Esq QUALIFIED82Anna Fali
1037Munro C GillianGermany2026-07-17Truhlar And Truhlar Attys PROPOSAL80Elwin Sharvill
1038Deepesh Q IturbideAustralia2026-07-09Truhlar And Truhlar Attys UNQUALIFIED56Amy Elsner
1039Aika O MarrierIndia2026-07-29King, Christopher A Esq NEGOTIATION18Anna Fali
1040Deepesh X StensethFrance2026-07-15Truhlar And Truhlar Attys NEGOTIATION30Stephen Shaw
1041Faith L VocelkaCanada2026-07-13Benton, John B Jr NEW95Ioni Bowcher
1042Greenwood S DoeIndia2026-08-02Buckley Miller Wright PROPOSAL17Amy Elsner
1043Jennifer L NestleArgentina2026-07-30King, Christopher A Esq NEGOTIATION32Onyama Limba
1044Aruna H PerinJapan2026-07-22Truhlar And Truhlar Attys NEGOTIATION45Anna Fali
1045Deepesh S TollnerItaly2026-08-03Benton, John B Jr NEGOTIATION60Bernardo Dominic
1046Clifford J ShinkoUnited Kingdom2026-07-22Feltz Printing Service UNQUALIFIED43Asiya Javayant
1047Ivar S PerinBrazil2026-07-26Rangoni Of Florence NEW83Ioni Bowcher
1048Jefferson G MacleadBrazil2026-07-26Dorl, James J Esq PROPOSAL16Xuxue Feng
1049James B InouyeAustralia2026-07-30Feiner Bros RENEWAL83Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Deepesh K TollnerCanadaXuxue Feng QUALIFIED
Maisha O FlosiIndiaIoni Bowcher RENEWAL
Adams A SchemmerIndiaOnyama Limba NEW
Arvin B FerenczGermanyBernardo Dominic NEGOTIATION
Octavia K RimItalyStephen Shaw UNQUALIFIED
Salvatore Q RulapaughFranceBernardo Dominic QUALIFIED
Kaitlin L NestleUnited KingdomXuxue Feng QUALIFIED
Leja V PaprockiJapanAsiya Javayant UNQUALIFIED
Antonio C GillianGermanyStephen Shaw PROPOSAL
Cody G RoysterSpainAsiya Javayant PROPOSAL
Adams Y DarakjyArgentinaXuxue Feng NEW
Claire A GauchoGermanyOnyama Limba UNQUALIFIED
Greenwood K SergiJapanStephen Shaw RENEWAL
Stacey H WhobreyUnited KingdomAmy Elsner PROPOSAL
Adams R GauchoGermanyIvan Magalhaes UNQUALIFIED
Izzy L InouyeBrazilAnna Fali UNQUALIFIED
Aika S GlickGermanyXuxue Feng PROPOSAL
Cody Y RulapaughSpainIoni Bowcher RENEWAL
Julie F AlbaresJapanBernardo Dominic NEW
Smith U GillianUnited KingdomIoni Bowcher PROPOSAL
Maria X RimSpainBernardo Dominic QUALIFIED
Maisha X WaycottCanadaBernardo Dominic PROPOSAL
Wickens S SlusarskiArgentinaAnna Fali UNQUALIFIED
Juan D FigeroaAustraliaElwin Sharvill PROPOSAL
David R InouyeItalyElwin Sharvill QUALIFIED
Greenwood O TollnerRussiaElwin Sharvill NEW
Mujtaba B BriddickBrazilXuxue Feng UNQUALIFIED
Wickens K RulapaughGermanyBernardo Dominic NEW
Maria E GauchoAustraliaElwin Sharvill PROPOSAL
Rodrigues A RulapaughJapanElwin Sharvill PROPOSAL
James A MaletFranceAmy Elsner RENEWAL
Clifford F RutaItalyAmy Elsner UNQUALIFIED
Leon Z DilliardAustraliaStephen Shaw RENEWAL
Morrow B MaletJapanIvan Magalhaes RENEWAL
Juan V SaylorsSpainStephen Shaw UNQUALIFIED
Maria Y PaprockiBrazilAnna Fali NEW
Julie N ChuiIndiaAsiya Javayant RENEWAL
Julie D SchemmerGermanyElwin Sharvill RENEWAL
Isabel H RulapaughArgentinaElwin Sharvill UNQUALIFIED
Nicolas K StockhamCanadaBernardo Dominic NEGOTIATION
Aika O FollerFranceAmy Elsner PROPOSAL
Smith S KuskoCanadaIvan Magalhaes NEGOTIATION
Greenwood I VocelkaItalyStephen Shaw PROPOSAL
Maisha K FollerArgentinaXuxue Feng QUALIFIED
Isabel K BologniaIndiaAnna Fali QUALIFIED
Maria J WaycottUnited KingdomIvan Magalhaes NEGOTIATION
Julie K GillianGermanyAmy Elsner NEW
Aditya C BowleyBrazilXuxue Feng QUALIFIED
David I ChuiRussiaIoni Bowcher QUALIFIED
Jennifer S DarakjyUnited KingdomElwin Sharvill RENEWAL
Frozen Columns
Name
Morrow K Ferencz
Morrow R Tollner
Munro Z Tollner
Maria W Butt
Julie E Perin
Clifford T Gillian
Leja J Waycott
Clifford P Vocelka
Morrow Q Malet
Johnson V Slusarski
Deepesh Q Slusarski
Sinclair O Figeroa
Arvin F Paprocki
Julie W Bolognia
Faith T Nestle
Maria B Amigon
Smith F Albares
Jefferson O Ostrosky
Rodrigues E Stockham
Julie O Caldarera
Alejandro Y Dilliard
Aditya A Gaucho
Kaitlin T Whobrey
Aruna H Stockham
Clifford U Paprocki
Jefferson B Tollner
Jones U Ruta
Greenwood J Perin
Sinclair L Waycott
Ivar D Saylors
Deepesh K Stenseth
Wickens J Marrier
Darci X Saylors
Clifford C Ostrosky
Aika L Tollner
Leon J Rim
Adams J Perin
Jones A Kusko
Morrow I Ferencz
Mujtaba Y Flosi
Tony J Nestle
Stacey N Venere
Greenwood T Malet
Arvin I Dilliard
Kadeem O Garufi
Arvin D Whobrey
David N Vocelka
Munro E Venere
Claire I Ostrosky
Ivar U Saylors
IdCountryDate
1000France2026-07-29
1001Brazil2026-07-09
1002Germany2026-07-15
1003Russia2026-07-25
1004Germany2026-07-19
1005Argentina2026-07-20
1006United Kingdom2026-07-22
1007Russia2026-07-18
1008Japan2026-07-16
1009Spain2026-08-03
1010Spain2026-08-06
1011Italy2026-08-03
1012Argentina2026-07-11
1013India2026-08-02
1014Italy2026-07-29
1015Italy2026-08-03
1016Russia2026-07-24
1017France2026-07-27
1018Australia2026-07-16
1019Germany2026-07-30
1020Spain2026-07-10
1021Italy2026-08-06
1022Argentina2026-07-10
1023Germany2026-07-15
1024Japan2026-07-08
1025Russia2026-07-17
1026United Kingdom2026-07-28
1027Spain2026-08-02
1028Italy2026-07-27
1029Brazil2026-07-26
1030Japan2026-08-03
1031Canada2026-07-14
1032Australia2026-07-31
1033India2026-08-04
1034United Kingdom2026-07-26
1035Germany2026-08-04
1036Canada2026-07-21
1037Canada2026-07-22
1038Japan2026-07-26
1039Germany2026-07-13
1040France2026-07-11
1041Japan2026-07-30
1042Brazil2026-07-08
1043Spain2026-07-21
1044Japan2026-08-06
1045United Kingdom2026-08-06
1046Germany2026-07-17
1047Canada2026-07-17
1048France2026-07-30
1049Japan2026-07-09

On-Demand Data

NameIdCountryDate
Ricardo Z Figeroa1000United Kingdom2026-07-31
Emily L Gillian1001Japan2026-07-09
Tony I Waycott1002India2026-08-05
James V Caldarera1003India2026-07-11
Tony Q Flosi1004Canada2026-07-14
Antonio N Wieser1005Japan2026-07-21
Aditya S Ostrosky1006Germany2026-07-11
Costa G Nicka1007Canada2026-07-21
Munro M Chui1008Australia2026-08-01
Ashley H Venere1009Spain2026-07-09
Salvatore N Schemmer1010Spain2026-07-10
Misaki F Oldroyd1011Australia2026-07-13
Jefferson T Stockham1012Australia2026-07-14
Misaki R Doe1013Germany2026-07-15
Mayumi O Campain1014France2026-07-13
Kaitlin S Bolognia1015United Kingdom2026-07-14
Mayumi Q Wieser1016Australia2026-07-25
James D Doe1017Canada2026-07-19
Mayumi H Vocelka1018Australia2026-07-17
Clifford J Tollner1019Canada2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo J MarrierItalyAmy Elsner UNQUALIFIED
Morrow U ButtCanadaBernardo Dominic RENEWAL
Antonio E BologniaIndiaAmy Elsner UNQUALIFIED
Alejandro R CaudyIndiaBernardo Dominic RENEWAL
Costa M OstroskyRussiaXuxue Feng UNQUALIFIED
Salvatore G WhobreyCanadaIoni Bowcher UNQUALIFIED
Jeanfrancois Z VenereUnited KingdomAnna Fali PROPOSAL
Jennifer T SaylorsSpainAsiya Javayant RENEWAL
Juan L StockhamCanadaAsiya Javayant PROPOSAL
Izzy M CaudyRussiaStephen Shaw NEGOTIATION
Arvin E MaletArgentinaAnna Fali UNQUALIFIED
Murillo B KuskoFranceAsiya Javayant QUALIFIED
Tony H FlosiRussiaAnna Fali PROPOSAL
Munro W BowleyJapanElwin Sharvill NEW
Antonio D ShinkoFranceBernardo Dominic PROPOSAL
Faith Z RimItalyIvan Magalhaes RENEWAL
Johnson G ChuiIndiaElwin Sharvill NEW
Julie I WaycottIndiaAmy Elsner QUALIFIED
Juan R GillianIndiaAnna Fali UNQUALIFIED
Ivar I OstroskyItalyAnna Fali RENEWAL
Maisha I PoquetteJapanElwin Sharvill QUALIFIED
Aruna X PaprockiCanadaAsiya Javayant NEGOTIATION
Sinclair B RulapaughSpainBernardo Dominic RENEWAL
Nicolas D GarufiGermanyElwin Sharvill QUALIFIED
Leon O CaldareraJapanElwin Sharvill QUALIFIED
Octavia Z MarrierArgentinaXuxue Feng PROPOSAL
Ashley B VocelkaRussiaIvan Magalhaes PROPOSAL
Munro N StensethFranceAsiya Javayant PROPOSAL
Kadeem Q CaudyCanadaAsiya Javayant RENEWAL
Greenwood W FerenczArgentinaStephen Shaw NEW
Nicolas Z RimIndiaIoni Bowcher NEGOTIATION
Aika X DilliardBrazilElwin Sharvill UNQUALIFIED
Isabel L FollerFranceElwin Sharvill UNQUALIFIED
Morrow M AmigonArgentinaElwin Sharvill NEW
Julie C SlusarskiRussiaElwin Sharvill RENEWAL
Silvio P SlusarskiIndiaIoni Bowcher NEW
Leon T PoquetteCanadaOnyama Limba NEW
Adams L GauchoSpainAmy Elsner NEGOTIATION
Alejandro D InouyeJapanAsiya Javayant PROPOSAL
Julie C CaudyUnited KingdomStephen Shaw 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>