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
Stacey N GauchoSpainIoni Bowcher RENEWAL
Isabel I PerinFranceAmy Elsner NEGOTIATION
Kaitlin O MaletCanadaIvan Magalhaes PROPOSAL
Claire E TollnerJapanIvan Magalhaes RENEWAL
Munro R CaudyRussiaIvan Magalhaes NEW
Ricardo E AlbaresBrazilElwin Sharvill UNQUALIFIED
Wickens J SlusarskiJapanBernardo Dominic PROPOSAL
Johnson M IturbideGermanyAsiya Javayant QUALIFIED
Clifford N GauchoRussiaAnna Fali QUALIFIED
Julie B VenereFranceAsiya Javayant NEGOTIATION
Antonio V CaudyUnited KingdomAsiya Javayant NEW
Leja W FerenczAustraliaAnna Fali NEGOTIATION
Octavia J RutaSpainAmy Elsner NEW
Greenwood A IturbideCanadaAsiya Javayant NEGOTIATION
Adams A GlickIndiaIvan Magalhaes NEGOTIATION
Sinclair S IturbideSpainStephen Shaw NEW
Johnson S KolmetzItalyStephen Shaw RENEWAL
Rodrigues D ButtAustraliaXuxue Feng QUALIFIED
Sinclair S StensethJapanIvan Magalhaes NEW
Maria I FollerUnited KingdomElwin Sharvill NEW
Clifford J RutaSpainAsiya Javayant NEGOTIATION
Juan S KuskoItalyIoni Bowcher QUALIFIED
Aika V FigeroaAustraliaIoni Bowcher UNQUALIFIED
Morrow P ButtAustraliaIoni Bowcher NEW
Jeanfrancois P KolmetzCanadaAmy Elsner PROPOSAL
Deepesh T AmigonFranceOnyama Limba UNQUALIFIED
Kadeem F CaudySpainIoni Bowcher RENEWAL
Alejandro G MarrierArgentinaBernardo Dominic QUALIFIED
Clifford T DoeItalyElwin Sharvill QUALIFIED
Costa Z OstroskyJapanBernardo Dominic UNQUALIFIED
Darci S ChuiUnited KingdomAmy Elsner PROPOSAL
Faith T AlbaresCanadaIvan Magalhaes PROPOSAL
Antonio Y MaletIndiaBernardo Dominic NEW
Darci W FlosiCanadaBernardo Dominic NEW
Stacey G MaletGermanyOnyama Limba PROPOSAL
Faith D MarrierArgentinaIvan Magalhaes RENEWAL
David N DilliardFranceElwin Sharvill NEW
Deepesh D FerenczArgentinaOnyama Limba NEW
Leja W GarufiItalyAmy Elsner NEW
Cody S ShinkoRussiaStephen Shaw NEW
Isabel Z PaprockiArgentinaAnna Fali QUALIFIED
Kadeem L DilliardFranceOnyama Limba QUALIFIED
Kaitlin Q PerinUnited KingdomBernardo Dominic NEW
Octavia W CaldareraBrazilOnyama Limba NEW
Octavia E SergiAustraliaIvan Magalhaes PROPOSAL
David I BologniaArgentinaAsiya Javayant NEW
Cody A DarakjyItalyStephen Shaw NEGOTIATION
Jennifer K OldroydAustraliaAmy Elsner UNQUALIFIED
Kadeem G DarakjyJapanBernardo Dominic QUALIFIED
Arvin W ShinkoItalyAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Cody I CampainItalyIoni Bowcher NEW
Jennifer U CaldareraBrazilAmy Elsner RENEWAL
Aditya F MaletSpainIvan Magalhaes NEW
Smith Y BowleyRussiaAnna Fali NEGOTIATION
Jennifer J RutaAustraliaBernardo Dominic RENEWAL
Adams P FigeroaGermanyAnna Fali NEGOTIATION
Aditya Z MaletCanadaAmy Elsner NEGOTIATION
Morrow Z TollnerCanadaAnna Fali UNQUALIFIED
Aditya L PaprockiArgentinaIvan Magalhaes PROPOSAL
Misaki Q WieserItalyElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley W TollnerBrazil2026-07-20Rousseaux, Michael Esq RENEWAL79Stephen Shaw
1001Julie K KolmetzCanada2026-07-05Chapman, Ross E Esq PROPOSAL90Elwin Sharvill
1002Kadeem Q MaletRussia2026-07-20Feltz Printing Service NEGOTIATION38Amy Elsner
1003Leon P PoquetteUnited Kingdom2026-07-16Commercial Press NEGOTIATION74Elwin Sharvill
1004Juan G MorascaIndia2026-07-05Buckley Miller Wright PROPOSAL71Onyama Limba
1005Francesco W DoeArgentina2026-07-12Rousseaux, Michael Esq UNQUALIFIED63Bernardo Dominic
1006Misaki N MacleadSpain2026-07-19Rangoni Of Florence UNQUALIFIED72Xuxue Feng
1007Mujtaba N SchemmerRussia2026-07-12Printing Dimensions UNQUALIFIED12Anna Fali
1008Izzy A CampainItaly2026-06-24Chanay, Jeffrey A Esq QUALIFIED20Bernardo Dominic
1009Jennifer E RimRussia2026-07-22Dorl, James J Esq NEW3Anna Fali
1010Leja M FollerUnited Kingdom2026-07-11Chanay, Jeffrey A Esq QUALIFIED75Anna Fali
1011Morrow E SaylorsRussia2026-07-22Feiner Bros NEGOTIATION73Amy Elsner
1012Juan C PoquetteCanada2026-07-14Chemel, James L Cpa RENEWAL16Asiya Javayant
1013Munro W DarakjyAustralia2026-07-08King, Christopher A Esq QUALIFIED11Bernardo Dominic
1014Johnson P KuskoCanada2026-07-20Rousseaux, Michael Esq QUALIFIED91Stephen Shaw
1015Francesco K FollerSpain2026-07-08Commercial Press QUALIFIED20Stephen Shaw
1016Darci Q FigeroaRussia2026-06-28Rousseaux, Michael Esq NEGOTIATION9Onyama Limba
1017Deepesh B WieserJapan2026-07-09Feiner Bros NEW89Bernardo Dominic
1018Octavia Y ChuiAustralia2026-07-10Buckley Miller Wright RENEWAL79Stephen Shaw
1019Morrow R AmigonItaly2026-07-19Chapman, Ross E Esq NEW60Anna Fali
1020Smith X PerinItaly2026-07-03Chemel, James L Cpa RENEWAL43Ivan Magalhaes
1021Mayumi M CaudyRussia2026-06-29Printing Dimensions PROPOSAL67Anna Fali
1022Deepesh V SaylorsGermany2026-07-15Rangoni Of Florence PROPOSAL13Anna Fali
1023Claire V StensethSpain2026-07-10Buckley Miller Wright UNQUALIFIED6Asiya Javayant
1024Chavez H MacleadUnited Kingdom2026-07-01Truhlar And Truhlar Attys NEGOTIATION73Ioni Bowcher
1025Morrow U ButtArgentina2026-06-30Chanay, Jeffrey A Esq PROPOSAL28Xuxue Feng
1026Johnson W CaudyFrance2026-07-22Chapman, Ross E Esq RENEWAL16Anna Fali
1027Smith X GillianAustralia2026-06-23Chapman, Ross E Esq QUALIFIED51Amy Elsner
1028Ivar O WhobreyRussia2026-07-20Feltz Printing Service NEGOTIATION0Stephen Shaw
1029Costa R BowleyRussia2026-07-04Chanay, Jeffrey A Esq PROPOSAL39Onyama Limba
1030Claire B ShinkoAustralia2026-06-29Benton, John B Jr NEW44Stephen Shaw
1031Jones X OldroydAustralia2026-07-02Morlong Associates NEGOTIATION55Xuxue Feng
1032Murillo A PerinFrance2026-07-01Feiner Bros RENEWAL36Bernardo Dominic
1033Jennifer X NickaBrazil2026-07-15Rangoni Of Florence UNQUALIFIED86Xuxue Feng
1034Leon J RoysterSpain2026-07-17Benton, John B Jr RENEWAL23Bernardo Dominic
1035Murillo H NestleArgentina2026-07-10Benton, John B Jr PROPOSAL33Ivan Magalhaes
1036Aika G VocelkaSpain2026-07-18Chemel, James L Cpa NEW75Asiya Javayant
1037Kadeem D RimUnited Kingdom2026-07-16King, Christopher A Esq NEW98Amy Elsner
1038Johnson R NickaUnited Kingdom2026-07-21Benton, John B Jr UNQUALIFIED2Stephen Shaw
1039Jennifer B MaletBrazil2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED34Elwin Sharvill
1040Clifford E GlickRussia2026-07-22King, Christopher A Esq PROPOSAL89Stephen Shaw
1041Costa O KuskoGermany2026-07-22Chemel, James L Cpa NEGOTIATION31Amy Elsner
1042Wickens H CaudySpain2026-07-05Chemel, James L Cpa PROPOSAL82Ivan Magalhaes
1043Aruna M VocelkaFrance2026-06-24Dorl, James J Esq QUALIFIED52Ioni Bowcher
1044Leon G BowleyArgentina2026-07-15Rangoni Of Florence NEGOTIATION58Elwin Sharvill
1045Rodrigues P BowleyUnited Kingdom2026-07-06Chemel, James L Cpa NEW75Amy Elsner
1046Leon A PaprockiRussia2026-07-06Chemel, James L Cpa NEGOTIATION66Xuxue Feng
1047Jones Z VocelkaFrance2026-07-05Chemel, James L Cpa NEGOTIATION81Bernardo Dominic
1048Cody X RutaFrance2026-07-04Buckley Miller Wright QUALIFIED95Anna Fali
1049Octavia K IturbideGermany2026-07-21Dorl, James J Esq UNQUALIFIED63Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Salvatore F SlusarskiFranceAmy Elsner QUALIFIED
Greenwood Z DilliardCanadaIoni Bowcher PROPOSAL
Silvio Y ChuiAustraliaStephen Shaw UNQUALIFIED
Nicolas R CaudyAustraliaAsiya Javayant UNQUALIFIED
Rodrigues T RulapaughFranceAsiya Javayant NEW
Isabel I ChuiArgentinaAmy Elsner PROPOSAL
Costa P CampainFranceElwin Sharvill PROPOSAL
Cody R NickaIndiaAmy Elsner UNQUALIFIED
Adams O RoysterItalyXuxue Feng RENEWAL
Ivar B NickaArgentinaElwin Sharvill QUALIFIED
Stacey T WhobreyCanadaAmy Elsner QUALIFIED
Tony B WhobreyBrazilOnyama Limba QUALIFIED
Salvatore H PaprockiIndiaAsiya Javayant UNQUALIFIED
Leon N RulapaughFranceXuxue Feng PROPOSAL
Deepesh S DarakjySpainAmy Elsner RENEWAL
Faith M MaletGermanyIoni Bowcher RENEWAL
Aditya X FlosiArgentinaXuxue Feng RENEWAL
Stacey V SaylorsSpainAsiya Javayant UNQUALIFIED
Misaki X RoysterArgentinaIoni Bowcher RENEWAL
Leon F SlusarskiJapanXuxue Feng NEGOTIATION
Silvio A BriddickSpainStephen Shaw QUALIFIED
Ricardo P FigeroaJapanXuxue Feng NEGOTIATION
David O RimUnited KingdomXuxue Feng NEGOTIATION
Jennifer S VenereGermanyStephen Shaw PROPOSAL
Octavia B BologniaCanadaBernardo Dominic RENEWAL
Ivar C WieserGermanyIvan Magalhaes QUALIFIED
Silvio F PoquetteUnited KingdomBernardo Dominic NEW
Jennifer S RimArgentinaElwin Sharvill QUALIFIED
Jennifer R MarrierSpainAmy Elsner RENEWAL
Morrow O FlosiSpainXuxue Feng NEW
Faith G VenereFranceBernardo Dominic NEGOTIATION
Ashley D DarakjyItalyIvan Magalhaes PROPOSAL
Mujtaba B DilliardArgentinaOnyama Limba NEGOTIATION
Aditya C VocelkaSpainOnyama Limba UNQUALIFIED
Stacey U CampainSpainOnyama Limba NEGOTIATION
Jones P NickaFranceStephen Shaw UNQUALIFIED
Jennifer V FigeroaSpainBernardo Dominic RENEWAL
Sinclair D BologniaGermanyXuxue Feng UNQUALIFIED
Alejandro D RutaRussiaBernardo Dominic QUALIFIED
Greenwood A RoysterRussiaBernardo Dominic RENEWAL
Greenwood E GarufiItalyAmy Elsner NEW
Alejandro Y StockhamJapanStephen Shaw UNQUALIFIED
Munro Q MaletCanadaAsiya Javayant NEW
Kaitlin K GarufiAustraliaAmy Elsner PROPOSAL
Aruna E SaylorsItalyIoni Bowcher UNQUALIFIED
Isabel F CaldareraUnited KingdomAnna Fali NEGOTIATION
Chavez F MarrierCanadaElwin Sharvill QUALIFIED
Jeanfrancois E SlusarskiIndiaOnyama Limba RENEWAL
Costa U StockhamBrazilAsiya Javayant NEGOTIATION
Maria X RulapaughArgentinaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Juan F Malet
Jones I Briddick
Ivar D Stenseth
Nicolas H Maclead
Antonio P Iturbide
Silvio C Dilliard
Munro H Garufi
Octavia Q Malet
Octavia A Doe
Jefferson M Stockham
Claire E Ruta
Leja Z Glick
Juan M Campain
Francesco G Shinko
Kadeem U Stockham
Emily A Saylors
Chavez U Gaucho
Maria B Gillian
Maisha V Chui
Kadeem J Briddick
Rodrigues L Bowley
Faith W Gaucho
Arvin V Stockham
Faith J Inouye
Munro E Wieser
Arvin A Glick
Silvio Q Foller
Jefferson M Morasca
Leja X Flosi
Arvin D Marrier
Aika X Bowley
Julie H Iturbide
Jefferson F Dilliard
Jefferson M Perin
Mayumi D Inouye
Juan X Gillian
Chavez L Wieser
Ashley B Paprocki
Aditya Y Kusko
Isabel R Malet
Morrow O Venere
Mujtaba L Shinko
Clifford R Shinko
Ivar S Sergi
Leja C Caldarera
Tony T Schemmer
Aika E Slusarski
Cody R Rim
Greenwood I Butt
Claire G Ruta
IdCountryDate
1000Italy2026-07-16
1001Spain2026-07-05
1002Brazil2026-07-06
1003Brazil2026-07-05
1004Germany2026-07-17
1005Italy2026-07-05
1006Brazil2026-07-20
1007Argentina2026-07-21
1008Japan2026-07-08
1009Russia2026-06-25
1010Japan2026-07-20
1011United Kingdom2026-06-25
1012France2026-06-25
1013India2026-07-11
1014Australia2026-07-08
1015Canada2026-07-06
1016United Kingdom2026-07-07
1017Germany2026-07-02
1018France2026-07-22
1019Spain2026-06-25
1020Argentina2026-06-24
1021Argentina2026-07-01
1022Brazil2026-07-10
1023Germany2026-06-29
1024Canada2026-07-14
1025Australia2026-07-06
1026Australia2026-07-15
1027Canada2026-06-28
1028Australia2026-07-19
1029India2026-07-16
1030Canada2026-07-03
1031Russia2026-07-05
1032Brazil2026-07-21
1033Argentina2026-07-18
1034United Kingdom2026-07-21
1035Spain2026-07-09
1036Italy2026-07-10
1037Australia2026-06-23
1038Russia2026-07-11
1039Germany2026-07-14
1040Russia2026-07-03
1041Spain2026-07-07
1042Spain2026-07-15
1043Spain2026-07-03
1044Australia2026-07-15
1045Japan2026-07-10
1046Russia2026-06-26
1047United Kingdom2026-07-08
1048Canada2026-07-22
1049Australia2026-06-23

On-Demand Data

NameIdCountryDate
Stacey C Rulapaugh1000Russia2026-07-07
Antonio W Gillian1001Russia2026-07-21
Antonio Q Royster1002Spain2026-07-10
Juan A Gillian1003Australia2026-07-05
Ivar T Tollner1004Brazil2026-07-10
Sinclair Z Malet1005Canada2026-07-19
Faith F Amigon1006Germany2026-07-06
Izzy V Nestle1007France2026-07-10
Mayumi X Slusarski1008Italy2026-06-30
Leon K Oldroyd1009United Kingdom2026-06-27
Mujtaba R Ruta1010Italy2026-07-21
Ricardo A Briddick1011Germany2026-07-01
Darci Q Chui1012India2026-06-23
Mayumi D Shinko1013United Kingdom2026-07-02
Ashley T Briddick1014Australia2026-07-21
Mujtaba L Garufi1015Italy2026-07-02
Antonio Q Venere1016United Kingdom2026-07-14
Nicolas X Schemmer1017Australia2026-07-01
Antonio L Bowley1018Germany2026-07-21
Sinclair U Campain1019United Kingdom2026-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo T MaletAustraliaXuxue Feng RENEWAL
Juan V SaylorsCanadaIoni Bowcher UNQUALIFIED
Smith M BowleyCanadaStephen Shaw UNQUALIFIED
Arvin O WhobreyRussiaIvan Magalhaes UNQUALIFIED
Arvin K IturbideUnited KingdomAmy Elsner PROPOSAL
Salvatore M BologniaRussiaOnyama Limba UNQUALIFIED
Stacey U ShinkoCanadaAmy Elsner QUALIFIED
Clifford X NickaItalyAnna Fali PROPOSAL
Silvio G VocelkaGermanyAmy Elsner NEGOTIATION
James X CaldareraRussiaAsiya Javayant NEGOTIATION
Murillo K GlickGermanyIoni Bowcher RENEWAL
Tony O DilliardRussiaElwin Sharvill NEW
Juan Z MaletBrazilStephen Shaw UNQUALIFIED
Adams M GarufiCanadaElwin Sharvill QUALIFIED
Costa Z BowleyAustraliaXuxue Feng RENEWAL
Kadeem I CaldareraSpainOnyama Limba NEGOTIATION
Leja G CampainRussiaAsiya Javayant UNQUALIFIED
Julie P RimJapanIoni Bowcher NEGOTIATION
Aika M SergiAustraliaElwin Sharvill UNQUALIFIED
Aruna L BriddickFranceStephen Shaw NEW
Aruna I ChuiArgentinaAsiya Javayant NEW
Isabel O NickaIndiaOnyama Limba UNQUALIFIED
Izzy O ShinkoAustraliaAnna Fali QUALIFIED
James J StensethJapanXuxue Feng UNQUALIFIED
Wickens N ChuiUnited KingdomStephen Shaw NEW
Tony I WieserJapanBernardo Dominic NEW
Salvatore L CampainJapanBernardo Dominic UNQUALIFIED
Aditya U BowleyUnited KingdomAsiya Javayant RENEWAL
Julie E TollnerArgentinaAmy Elsner PROPOSAL
Jeanfrancois O MacleadGermanyAsiya Javayant QUALIFIED
Antonio S MaletRussiaXuxue Feng NEGOTIATION
Emily Y ChuiUnited KingdomAnna Fali RENEWAL
Claire T CaudyItalyAmy Elsner RENEWAL
Aditya I DoeIndiaXuxue Feng UNQUALIFIED
Tony V BologniaIndiaBernardo Dominic QUALIFIED
Leon Q MaletSpainXuxue Feng PROPOSAL
Murillo D AlbaresAustraliaAsiya Javayant NEW
Jennifer B PerinArgentinaBernardo Dominic QUALIFIED
Claire J PoquetteUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh U BriddickJapanAnna Fali 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>