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
Cody M IturbideBrazilXuxue Feng QUALIFIED
Jefferson S DarakjyJapanIvan Magalhaes UNQUALIFIED
Misaki A KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Silvio P CaudyCanadaAnna Fali RENEWAL
Jones E InouyeAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba Y WieserUnited KingdomXuxue Feng QUALIFIED
Jefferson S DarakjyGermanyAnna Fali NEGOTIATION
Jeanfrancois T AmigonRussiaOnyama Limba UNQUALIFIED
Mayumi Z GauchoFranceIoni Bowcher NEW
Emily A MarrierBrazilStephen Shaw UNQUALIFIED
Tony B SchemmerJapanIvan Magalhaes RENEWAL
James L TollnerFranceOnyama Limba RENEWAL
Nicolas U ShinkoAustraliaAsiya Javayant NEW
Antonio H FollerItalyAnna Fali RENEWAL
Salvatore T AlbaresBrazilIoni Bowcher NEGOTIATION
Maria X WaycottJapanXuxue Feng RENEWAL
Jones M MarrierGermanyXuxue Feng QUALIFIED
Isabel J OstroskyUnited KingdomAmy Elsner PROPOSAL
Francesco D InouyeAustraliaStephen Shaw NEGOTIATION
Costa P CampainUnited KingdomIoni Bowcher UNQUALIFIED
Misaki A BowleyGermanyIvan Magalhaes PROPOSAL
Silvio F SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Francesco N WieserRussiaStephen Shaw QUALIFIED
Jennifer T FlosiJapanElwin Sharvill UNQUALIFIED
Kaitlin V SlusarskiSpainAnna Fali NEW
Jennifer G RimCanadaAnna Fali NEGOTIATION
Morrow L DarakjyArgentinaIoni Bowcher QUALIFIED
Darci I KuskoGermanyIoni Bowcher NEGOTIATION
Octavia Y DarakjyUnited KingdomOnyama Limba PROPOSAL
Maisha N SchemmerArgentinaIvan Magalhaes QUALIFIED
Aika N KolmetzArgentinaAsiya Javayant PROPOSAL
Ivar O FerenczJapanAmy Elsner NEGOTIATION
David F AmigonArgentinaAnna Fali UNQUALIFIED
Wickens S NickaIndiaIvan Magalhaes QUALIFIED
Murillo Q FerenczItalyElwin Sharvill UNQUALIFIED
Aruna D SaylorsIndiaOnyama Limba NEW
Leon R AlbaresArgentinaBernardo Dominic RENEWAL
Leon P GarufiIndiaAsiya Javayant QUALIFIED
Alejandro P MaletJapanAnna Fali QUALIFIED
Julie R KuskoItalyIoni Bowcher UNQUALIFIED
Faith D StockhamRussiaAmy Elsner RENEWAL
Nicolas T RulapaughJapanBernardo Dominic RENEWAL
Isabel M OstroskyCanadaOnyama Limba RENEWAL
Clifford Q ChuiGermanyElwin Sharvill QUALIFIED
Aditya W MaletCanadaIvan Magalhaes QUALIFIED
Chavez U InouyeCanadaIoni Bowcher RENEWAL
Clifford L NickaUnited KingdomIoni Bowcher PROPOSAL
Faith I CaldareraAustraliaXuxue Feng PROPOSAL
Leja E OldroydItalyOnyama Limba UNQUALIFIED
Emily Z NickaUnited KingdomXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Alejandro D ShinkoGermanyXuxue Feng QUALIFIED
Antonio O WieserItalyIoni Bowcher NEW
Alejandro G PoquetteSpainStephen Shaw RENEWAL
Aditya I SlusarskiJapanIoni Bowcher NEGOTIATION
Kadeem N MarrierFranceAnna Fali NEGOTIATION
Sinclair F FerenczSpainElwin Sharvill RENEWAL
Emily J BologniaSpainAnna Fali UNQUALIFIED
Maisha U PerinGermanyAsiya Javayant UNQUALIFIED
Misaki K FerenczItalyBernardo Dominic UNQUALIFIED
Julie F StockhamCanadaAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro A SchemmerFrance2026-08-03Commercial Press QUALIFIED37Ioni Bowcher
1001James L WaycottFrance2026-07-16Feiner Bros UNQUALIFIED6Amy Elsner
1002Misaki F FlosiArgentina2026-07-24Feltz Printing Service NEGOTIATION13Stephen Shaw
1003Maisha J WhobreyBrazil2026-07-31Rangoni Of Florence NEGOTIATION87Ioni Bowcher
1004Salvatore W VenereItaly2026-07-11Feltz Printing Service UNQUALIFIED13Ioni Bowcher
1005Mujtaba M SlusarskiSpain2026-08-01Feltz Printing Service NEGOTIATION55Onyama Limba
1006David N MorascaBrazil2026-07-26Rangoni Of Florence NEW70Onyama Limba
1007Cody Z DilliardIndia2026-07-13King, Christopher A Esq NEW55Ioni Bowcher
1008Adams U KolmetzIndia2026-07-24Chemel, James L Cpa NEGOTIATION37Xuxue Feng
1009Mujtaba J IturbideFrance2026-07-26Feiner Bros PROPOSAL13Elwin Sharvill
1010Aditya M GillianGermany2026-07-23Chanay, Jeffrey A Esq PROPOSAL21Xuxue Feng
1011Nicolas E FollerUnited Kingdom2026-07-05Rangoni Of Florence NEGOTIATION22Amy Elsner
1012James A FollerBrazil2026-07-16Commercial Press QUALIFIED22Elwin Sharvill
1013Smith C DilliardFrance2026-07-14Chemel, James L Cpa NEW23Elwin Sharvill
1014Morrow B SaylorsRussia2026-07-11Truhlar And Truhlar Attys QUALIFIED57Ioni Bowcher
1015Ricardo F GarufiFrance2026-07-08Dorl, James J Esq PROPOSAL58Ivan Magalhaes
1016Juan X IturbideArgentina2026-07-17Feiner Bros QUALIFIED84Onyama Limba
1017Deepesh A GarufiSpain2026-07-05Rousseaux, Michael Esq RENEWAL36Ivan Magalhaes
1018Clifford S GarufiAustralia2026-07-22King, Christopher A Esq PROPOSAL55Ivan Magalhaes
1019Cody Y BologniaCanada2026-07-13Feltz Printing Service RENEWAL71Asiya Javayant
1020Jones J GillianBrazil2026-07-16Benton, John B Jr RENEWAL70Ivan Magalhaes
1021Cody P AmigonIndia2026-07-12Rangoni Of Florence PROPOSAL55Xuxue Feng
1022Julie W GauchoGermany2026-07-17Chanay, Jeffrey A Esq NEGOTIATION45Ivan Magalhaes
1023Cody P GarufiBrazil2026-07-25Printing Dimensions NEGOTIATION12Stephen Shaw
1024Jefferson B GauchoFrance2026-07-07Rousseaux, Michael Esq PROPOSAL65Onyama Limba
1025David E PoquetteFrance2026-07-11Printing Dimensions RENEWAL16Amy Elsner
1026Rodrigues D ChuiFrance2026-07-27Rousseaux, Michael Esq UNQUALIFIED18Xuxue Feng
1027Ricardo R ChuiItaly2026-07-08Chemel, James L Cpa RENEWAL27Ivan Magalhaes
1028Stacey Q PerinSpain2026-07-08Morlong Associates QUALIFIED34Stephen Shaw
1029Tony O CaldareraArgentina2026-07-25Chapman, Ross E Esq RENEWAL49Anna Fali
1030Jeanfrancois R DilliardGermany2026-07-07Chemel, James L Cpa RENEWAL70Anna Fali
1031Misaki C MaletArgentina2026-07-24Rousseaux, Michael Esq RENEWAL16Bernardo Dominic
1032Maria J RulapaughSpain2026-07-14Benton, John B Jr PROPOSAL84Ioni Bowcher
1033Murillo Y CaudyCanada2026-07-25Chapman, Ross E Esq UNQUALIFIED22Onyama Limba
1034Jeanfrancois X MaletCanada2026-07-18Benton, John B Jr UNQUALIFIED50Bernardo Dominic
1035Maria G FollerJapan2026-07-29Chemel, James L Cpa NEGOTIATION67Bernardo Dominic
1036Nicolas V FlosiItaly2026-07-16Printing Dimensions UNQUALIFIED91Ivan Magalhaes
1037Johnson P AmigonCanada2026-07-22Rousseaux, Michael Esq UNQUALIFIED20Onyama Limba
1038Mayumi H NickaItaly2026-07-12Rousseaux, Michael Esq RENEWAL5Anna Fali
1039Mayumi Q ShinkoJapan2026-07-21Feiner Bros NEW28Ioni Bowcher
1040Maisha Z OldroydCanada2026-07-14Commercial Press PROPOSAL29Ioni Bowcher
1041Jeanfrancois Y PoquetteBrazil2026-07-26Chemel, James L Cpa NEGOTIATION43Ioni Bowcher
1042Morrow M InouyeBrazil2026-07-29Commercial Press RENEWAL74Anna Fali
1043Octavia K TollnerIndia2026-07-19Printing Dimensions PROPOSAL1Asiya Javayant
1044Darci R StensethJapan2026-08-02Dorl, James J Esq NEW58Bernardo Dominic
1045Leon P FlosiJapan2026-08-03Morlong Associates UNQUALIFIED60Ioni Bowcher
1046Julie K WhobreyArgentina2026-07-11Feiner Bros RENEWAL49Stephen Shaw
1047Chavez K VenereFrance2026-07-17Chapman, Ross E Esq UNQUALIFIED64Onyama Limba
1048Jennifer E PerinIndia2026-07-20Printing Dimensions QUALIFIED82Onyama Limba
1049James H MaletUnited Kingdom2026-08-01Buckley Miller Wright UNQUALIFIED53Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Ivar Z StockhamGermanyIvan Magalhaes NEGOTIATION
Chavez L GarufiBrazilAsiya Javayant RENEWAL
Munro K GillianAustraliaBernardo Dominic UNQUALIFIED
Arvin B NestleCanadaXuxue Feng PROPOSAL
Julie P DarakjyItalyIoni Bowcher RENEWAL
James W SlusarskiCanadaStephen Shaw NEW
Silvio H WaycottJapanIoni Bowcher NEW
Izzy R IturbideRussiaIoni Bowcher RENEWAL
Emily L CampainIndiaBernardo Dominic PROPOSAL
Julie U CaldareraJapanOnyama Limba QUALIFIED
Juan B AmigonIndiaAnna Fali NEW
Costa O FigeroaUnited KingdomStephen Shaw QUALIFIED
Maria G DarakjyArgentinaAnna Fali NEGOTIATION
Silvio E BriddickIndiaStephen Shaw RENEWAL
Smith V FollerAustraliaXuxue Feng UNQUALIFIED
Alejandro I SaylorsBrazilAsiya Javayant UNQUALIFIED
Aika U SlusarskiArgentinaOnyama Limba NEW
Antonio M TollnerGermanyAsiya Javayant PROPOSAL
Jones D RimIndiaElwin Sharvill UNQUALIFIED
Ricardo G ShinkoRussiaAnna Fali RENEWAL
Smith J BriddickUnited KingdomElwin Sharvill NEW
Faith Y BriddickFranceIvan Magalhaes NEW
Jeanfrancois P WhobreyItalyAsiya Javayant NEGOTIATION
Sinclair A TollnerItalyStephen Shaw PROPOSAL
Julie C RimIndiaElwin Sharvill RENEWAL
Maisha U MarrierFranceBernardo Dominic NEGOTIATION
Chavez O AlbaresCanadaAmy Elsner PROPOSAL
Ivar M KolmetzItalyBernardo Dominic UNQUALIFIED
David Y FlosiGermanyAsiya Javayant NEW
Mayumi V MaletFranceAsiya Javayant UNQUALIFIED
Ivar I RutaCanadaBernardo Dominic NEW
Munro U CaudyFranceXuxue Feng NEW
Ashley R RoysterBrazilStephen Shaw RENEWAL
Leja B RoysterArgentinaAsiya Javayant UNQUALIFIED
Claire X OstroskyBrazilAmy Elsner RENEWAL
Arvin S GauchoFranceOnyama Limba QUALIFIED
Isabel V FlosiRussiaBernardo Dominic RENEWAL
Nicolas V TollnerItalyAsiya Javayant NEW
Kadeem J MaletIndiaAsiya Javayant NEGOTIATION
Julie B WhobreyRussiaAnna Fali RENEWAL
Chavez L ShinkoFranceAsiya Javayant UNQUALIFIED
Cody T FerenczFranceAnna Fali NEGOTIATION
Rodrigues S RoysterAustraliaOnyama Limba NEGOTIATION
Stacey E WaycottGermanyAnna Fali RENEWAL
Greenwood S AlbaresArgentinaAmy Elsner RENEWAL
David H DilliardFranceXuxue Feng PROPOSAL
Johnson N CaldareraArgentinaAnna Fali QUALIFIED
Claire N GillianSpainElwin Sharvill NEW
Jeanfrancois S MaletItalyBernardo Dominic PROPOSAL
Rodrigues Y VocelkaAustraliaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Rodrigues G Wieser
Rodrigues Q Ferencz
Smith I Perin
Tony F Paprocki
Aika I Nicka
Misaki I Darakjy
Juan W Perin
Johnson E Marrier
Antonio V Whobrey
Octavia L Rulapaugh
Juan P Butt
Mayumi T Nestle
Francesco F Chui
Ashley X Nestle
Greenwood O Ruta
Mujtaba V Waycott
Mujtaba I Royster
Alejandro C Tollner
Emily X Iturbide
Emily P Figeroa
Silvio A Inouye
Octavia M Shinko
Mayumi V Oldroyd
Mayumi U Caldarera
Kaitlin W Perin
Rodrigues G Perin
Ivar L Waycott
Jeanfrancois R Morasca
Faith R Rim
Arvin E Darakjy
Deepesh E Nicka
Morrow U Figeroa
Leon P Kusko
Arvin U Albares
Izzy H Waycott
Antonio Z Tollner
Maisha L Sergi
Mujtaba Q Schemmer
Jennifer K Venere
Tony E Inouye
Johnson P Kusko
David K Royster
Claire E Caudy
Kadeem D Caudy
Jeanfrancois B Nicka
Morrow U Ferencz
Aruna E Nicka
Ricardo X Oldroyd
Salvatore H Ferencz
Ashley M Shinko
IdCountryDate
1000Russia2026-07-25
1001Germany2026-07-18
1002Germany2026-07-10
1003Spain2026-08-01
1004Argentina2026-07-07
1005Russia2026-07-31
1006Australia2026-07-29
1007Argentina2026-08-03
1008Russia2026-07-23
1009United Kingdom2026-07-14
1010India2026-07-23
1011Australia2026-07-14
1012Canada2026-07-09
1013India2026-07-31
1014Spain2026-07-25
1015United Kingdom2026-07-12
1016Canada2026-07-19
1017Italy2026-07-12
1018India2026-07-15
1019Russia2026-08-02
1020Spain2026-07-26
1021Spain2026-07-11
1022Argentina2026-07-25
1023Canada2026-08-03
1024Germany2026-07-07
1025France2026-08-02
1026Australia2026-07-16
1027Germany2026-07-26
1028France2026-07-10
1029United Kingdom2026-07-11
1030United Kingdom2026-07-31
1031United Kingdom2026-07-12
1032Germany2026-07-12
1033France2026-07-15
1034France2026-07-10
1035Spain2026-07-05
1036Brazil2026-07-09
1037Canada2026-07-22
1038Spain2026-07-09
1039India2026-07-15
1040Brazil2026-07-12
1041United Kingdom2026-07-18
1042Brazil2026-07-29
1043Italy2026-07-31
1044Canada2026-07-12
1045Canada2026-07-08
1046Argentina2026-07-14
1047Italy2026-07-16
1048Germany2026-07-25
1049India2026-07-07

On-Demand Data

NameIdCountryDate
Antonio S Nicka1000Australia2026-07-26
Morrow B Gillian1001Australia2026-07-20
Aika V Gaucho1002Brazil2026-07-20
Aruna K Saylors1003Argentina2026-07-15
Mujtaba B Darakjy1004United Kingdom2026-07-14
Chavez R Sergi1005Germany2026-07-12
James S Rim1006Argentina2026-07-30
David Y Whobrey1007Australia2026-07-28
Aruna W Paprocki1008Australia2026-07-25
Isabel F Royster1009Germany2026-08-03
Aruna M Iturbide1010Italy2026-07-25
Ashley N Chui1011France2026-07-27
Wickens M Slusarski1012Australia2026-07-29
Antonio C Kolmetz1013Argentina2026-07-19
Misaki S Tollner1014Canada2026-07-05
Misaki Q Rim1015Australia2026-07-08
Morrow N Inouye1016France2026-07-06
Deepesh M Kusko1017France2026-07-06
Claire B Albares1018Japan2026-08-02
Jennifer H Shinko1019France2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco A CampainCanadaBernardo Dominic PROPOSAL
Jefferson A MacleadRussiaAsiya Javayant PROPOSAL
Isabel X GarufiRussiaBernardo Dominic NEW
Costa A KolmetzItalyIoni Bowcher NEW
Alejandro G NestleUnited KingdomAnna Fali NEGOTIATION
Jeanfrancois F ShinkoArgentinaIvan Magalhaes NEW
Maisha L ButtGermanyIvan Magalhaes NEGOTIATION
Silvio S AmigonFranceElwin Sharvill NEW
Arvin H MaletAustraliaBernardo Dominic PROPOSAL
Antonio R StockhamAustraliaOnyama Limba UNQUALIFIED
Julie Y IturbideArgentinaAsiya Javayant NEW
Misaki L SergiGermanyAsiya Javayant QUALIFIED
Morrow Y InouyeRussiaAmy Elsner PROPOSAL
Ashley J MaletArgentinaAsiya Javayant UNQUALIFIED
Smith O StockhamBrazilIoni Bowcher UNQUALIFIED
James F CaldareraGermanyIvan Magalhaes UNQUALIFIED
Adams F SergiItalyXuxue Feng PROPOSAL
Kaitlin U MaletAustraliaXuxue Feng QUALIFIED
James U ChuiJapanOnyama Limba QUALIFIED
James X PaprockiRussiaStephen Shaw NEW
Aika W PaprockiJapanBernardo Dominic PROPOSAL
Salvatore C BowleySpainIvan Magalhaes NEGOTIATION
Cody D FerenczUnited KingdomBernardo Dominic PROPOSAL
Maisha X FollerBrazilXuxue Feng QUALIFIED
Julie K DarakjyJapanAmy Elsner RENEWAL
Alejandro K RimUnited KingdomAsiya Javayant PROPOSAL
Sinclair V PerinCanadaIvan Magalhaes NEW
Leja F StockhamRussiaBernardo Dominic QUALIFIED
Francesco P OstroskyFranceAnna Fali PROPOSAL
Sinclair H IturbideItalyXuxue Feng UNQUALIFIED
Juan S CaudyFranceAnna Fali NEGOTIATION
Maria R CaldareraCanadaIoni Bowcher NEW
Adams P IturbideSpainOnyama Limba RENEWAL
Darci M WaycottItalyIvan Magalhaes RENEWAL
Ricardo K GarufiFranceOnyama Limba RENEWAL
Costa V IturbideIndiaAsiya Javayant NEW
Arvin Q DoeGermanyIoni Bowcher RENEWAL
Izzy V FigeroaArgentinaStephen Shaw NEGOTIATION
Chavez C InouyeItalyXuxue Feng UNQUALIFIED
Francesco T DoeCanadaXuxue Feng 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>