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
Octavia Q FigeroaCanadaIoni Bowcher NEGOTIATION
Smith J MaletArgentinaIoni Bowcher UNQUALIFIED
Leja M VocelkaAustraliaIoni Bowcher NEGOTIATION
Munro K OstroskyBrazilBernardo Dominic PROPOSAL
Salvatore Y MaletArgentinaBernardo Dominic NEW
Wickens W SlusarskiItalyStephen Shaw NEW
Jeanfrancois A ChuiBrazilStephen Shaw NEW
Izzy T FlosiArgentinaAsiya Javayant QUALIFIED
Claire I PoquetteGermanyIvan Magalhaes RENEWAL
Octavia I WieserCanadaBernardo Dominic NEGOTIATION
Munro K CampainAustraliaAnna Fali QUALIFIED
Chavez I CaudyAustraliaIoni Bowcher NEGOTIATION
Murillo H FigeroaRussiaAnna Fali NEGOTIATION
Ricardo P FollerCanadaIvan Magalhaes PROPOSAL
Jones H OstroskySpainAmy Elsner NEGOTIATION
Maisha A SergiAustraliaElwin Sharvill PROPOSAL
Greenwood T FigeroaBrazilOnyama Limba UNQUALIFIED
Jennifer F ButtAustraliaXuxue Feng QUALIFIED
Isabel X VocelkaCanadaAsiya Javayant NEGOTIATION
Alejandro O DoeCanadaAsiya Javayant RENEWAL
Emily U SergiIndiaBernardo Dominic RENEWAL
Aditya U SchemmerIndiaOnyama Limba NEW
Maria K AlbaresItalyStephen Shaw NEW
Chavez Q RulapaughJapanAmy Elsner PROPOSAL
Mujtaba O VenereArgentinaAnna Fali NEW
Claire P DilliardAustraliaIvan Magalhaes RENEWAL
James Z ChuiArgentinaIvan Magalhaes PROPOSAL
Tony P PaprockiUnited KingdomAmy Elsner NEGOTIATION
Ricardo V IturbideSpainStephen Shaw QUALIFIED
Maisha A SlusarskiJapanAmy Elsner RENEWAL
Wickens G CaudyItalyStephen Shaw NEGOTIATION
David V CaudyRussiaAnna Fali RENEWAL
Silvio W MorascaArgentinaAnna Fali NEW
Leja M SergiIndiaAmy Elsner NEW
Izzy S BologniaSpainAnna Fali PROPOSAL
Aika A SergiCanadaAsiya Javayant RENEWAL
Maria F AmigonItalyBernardo Dominic RENEWAL
Leja H VenereArgentinaAsiya Javayant UNQUALIFIED
Ashley H CaldareraAustraliaBernardo Dominic NEGOTIATION
Ricardo U OldroydJapanAmy Elsner RENEWAL
Adams T FollerUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin Q AmigonJapanIvan Magalhaes UNQUALIFIED
Silvio R RulapaughFranceAnna Fali UNQUALIFIED
Smith K BowleyBrazilAsiya Javayant RENEWAL
Adams X WhobreyRussiaAmy Elsner NEW
Jefferson S FlosiGermanyStephen Shaw NEW
Nicolas D SaylorsItalyOnyama Limba RENEWAL
Maisha N AlbaresFranceAnna Fali QUALIFIED
Nicolas U KuskoSpainStephen Shaw RENEWAL
Aruna F StockhamItalyElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
David Y KuskoAustraliaElwin Sharvill RENEWAL
Maisha X GarufiCanadaXuxue Feng QUALIFIED
Cody T GlickIndiaAmy Elsner NEGOTIATION
Kaitlin Y AmigonItalyIoni Bowcher UNQUALIFIED
Clifford U MaletGermanyAmy Elsner PROPOSAL
Leon K ShinkoArgentinaElwin Sharvill QUALIFIED
Francesco N NickaJapanAsiya Javayant QUALIFIED
Ashley M DarakjyArgentinaAsiya Javayant NEW
Tony M RutaSpainElwin Sharvill NEGOTIATION
Arvin H FigeroaArgentinaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois I SlusarskiIndia2025-05-31Truhlar And Truhlar Attys QUALIFIED15Elwin Sharvill
1001Murillo N MarrierItaly2025-05-26Printing Dimensions RENEWAL14Bernardo Dominic
1002Clifford X SaylorsGermany2025-06-14Truhlar And Truhlar Attys NEGOTIATION18Xuxue Feng
1003Antonio B RoysterIndia2025-06-04Feltz Printing Service UNQUALIFIED91Amy Elsner
1004Munro N CampainUnited Kingdom2025-06-07Chemel, James L Cpa PROPOSAL41Bernardo Dominic
1005Isabel D BologniaItaly2025-06-13Truhlar And Truhlar Attys QUALIFIED68Ioni Bowcher
1006Claire J RimCanada2025-05-25Feiner Bros RENEWAL29Xuxue Feng
1007Maria J SergiSpain2025-05-21Rangoni Of Florence NEGOTIATION46Xuxue Feng
1008Mayumi H RutaAustralia2025-05-31Printing Dimensions UNQUALIFIED45Elwin Sharvill
1009James Q OldroydJapan2025-06-12Feltz Printing Service RENEWAL77Anna Fali
1010Ashley G BriddickJapan2025-05-22King, Christopher A Esq NEGOTIATION89Asiya Javayant
1011Isabel V CaldareraIndia2025-06-08Printing Dimensions UNQUALIFIED95Xuxue Feng
1012Alejandro B StockhamGermany2025-05-27Rangoni Of Florence UNQUALIFIED17Xuxue Feng
1013Murillo F FlosiRussia2025-05-17Feltz Printing Service NEGOTIATION83Stephen Shaw
1014Munro Q DarakjyUnited Kingdom2025-06-09Printing Dimensions QUALIFIED4Ioni Bowcher
1015Leja Z CaudyGermany2025-06-14Chemel, James L Cpa QUALIFIED85Stephen Shaw
1016Silvio W WhobreyBrazil2025-05-30Morlong Associates QUALIFIED81Ioni Bowcher
1017Murillo O CaudyAustralia2025-06-14Dorl, James J Esq NEW33Asiya Javayant
1018David D FollerIndia2025-05-30Truhlar And Truhlar Attys RENEWAL23Ivan Magalhaes
1019Emily Z MarrierRussia2025-05-28Printing Dimensions PROPOSAL26Ivan Magalhaes
1020Mujtaba N DoeFrance2025-06-12Benton, John B Jr PROPOSAL66Elwin Sharvill
1021Jefferson C StensethJapan2025-06-09Dorl, James J Esq UNQUALIFIED86Ivan Magalhaes
1022Silvio U PaprockiItaly2025-06-03Printing Dimensions NEGOTIATION21Stephen Shaw
1023Maisha A KolmetzAustralia2025-06-13Feltz Printing Service RENEWAL55Onyama Limba
1024Stacey N CampainGermany2025-05-17King, Christopher A Esq PROPOSAL25Stephen Shaw
1025Wickens C FigeroaAustralia2025-06-08Morlong Associates QUALIFIED42Bernardo Dominic
1026Misaki B ButtArgentina2025-05-20Commercial Press UNQUALIFIED15Asiya Javayant
1027Mujtaba E GarufiFrance2025-05-23Commercial Press NEGOTIATION55Stephen Shaw
1028Johnson N WieserIndia2025-06-01Feltz Printing Service PROPOSAL25Stephen Shaw
1029Juan W InouyeFrance2025-05-24Chanay, Jeffrey A Esq RENEWAL60Ioni Bowcher
1030Deepesh A DilliardGermany2025-05-27Rangoni Of Florence QUALIFIED1Ioni Bowcher
1031Julie Y SaylorsUnited Kingdom2025-06-07King, Christopher A Esq UNQUALIFIED59Asiya Javayant
1032Claire S NickaArgentina2025-05-22Chanay, Jeffrey A Esq QUALIFIED4Anna Fali
1033Julie R OldroydAustralia2025-06-02Commercial Press NEGOTIATION98Ivan Magalhaes
1034Cody I ChuiFrance2025-06-12Rousseaux, Michael Esq NEGOTIATION90Elwin Sharvill
1035David A VenereItaly2025-05-24Printing Dimensions QUALIFIED84Stephen Shaw
1036Costa A GlickIndia2025-06-11Truhlar And Truhlar Attys NEGOTIATION39Asiya Javayant
1037Arvin Q VocelkaItaly2025-06-15Feiner Bros PROPOSAL41Asiya Javayant
1038Juan G KolmetzSpain2025-05-30Feltz Printing Service UNQUALIFIED42Xuxue Feng
1039Rodrigues X InouyeSpain2025-05-20Rousseaux, Michael Esq NEGOTIATION86Onyama Limba
1040Smith S GlickJapan2025-06-13Feiner Bros PROPOSAL43Amy Elsner
1041Aika P InouyeGermany2025-06-13Morlong Associates PROPOSAL38Ioni Bowcher
1042Silvio K GillianJapan2025-06-03Buckley Miller Wright UNQUALIFIED70Bernardo Dominic
1043Chavez J WaycottCanada2025-06-02Chapman, Ross E Esq RENEWAL27Elwin Sharvill
1044Francesco B PaprockiAustralia2025-05-25Feiner Bros NEW56Ivan Magalhaes
1045Ashley N InouyeArgentina2025-05-20Chemel, James L Cpa PROPOSAL75Ivan Magalhaes
1046Faith H GarufiArgentina2025-06-13Morlong Associates QUALIFIED67Anna Fali
1047Clifford N MaletArgentina2025-06-08Buckley Miller Wright UNQUALIFIED27Asiya Javayant
1048Tony G CampainCanada2025-05-28Morlong Associates QUALIFIED60Xuxue Feng
1049Jones M AmigonAustralia2025-06-03Feiner Bros UNQUALIFIED3Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Silvio D MarrierGermanyAnna Fali PROPOSAL
Ivar N SlusarskiAustraliaXuxue Feng NEW
Rodrigues J InouyeItalyBernardo Dominic QUALIFIED
Arvin R CaldareraUnited KingdomAsiya Javayant NEW
Rodrigues U SergiRussiaAsiya Javayant NEGOTIATION
Maria H SchemmerJapanIvan Magalhaes QUALIFIED
Octavia U SaylorsFranceAmy Elsner PROPOSAL
Jeanfrancois R GarufiGermanyAmy Elsner RENEWAL
Leon W WhobreyJapanAmy Elsner RENEWAL
Costa U VocelkaItalyAmy Elsner NEW
Chavez A CaudyJapanElwin Sharvill NEW
Sinclair A MacleadArgentinaStephen Shaw NEGOTIATION
Arvin J DarakjyBrazilAsiya Javayant NEGOTIATION
Greenwood L KuskoGermanyAsiya Javayant UNQUALIFIED
Darci G PoquetteFranceOnyama Limba NEW
Jefferson A RoysterJapanElwin Sharvill QUALIFIED
Murillo N FigeroaSpainStephen Shaw PROPOSAL
Cody X ButtSpainOnyama Limba UNQUALIFIED
Isabel H BowleyBrazilIoni Bowcher RENEWAL
Munro E InouyeSpainAnna Fali NEW
Julie D GarufiIndiaIvan Magalhaes PROPOSAL
Nicolas B DoeUnited KingdomOnyama Limba RENEWAL
Costa Z CaldareraGermanyOnyama Limba PROPOSAL
Jeanfrancois P PoquetteCanadaAnna Fali QUALIFIED
Stacey W ChuiSpainIoni Bowcher RENEWAL
Clifford E WaycottCanadaAmy Elsner NEGOTIATION
Maria U ButtJapanXuxue Feng QUALIFIED
Sinclair M GauchoGermanyElwin Sharvill NEW
Kadeem X MacleadGermanyIoni Bowcher NEGOTIATION
Nicolas J GarufiRussiaIoni Bowcher PROPOSAL
Deepesh I RutaUnited KingdomXuxue Feng NEW
Chavez N FollerGermanyElwin Sharvill UNQUALIFIED
Salvatore W CaudyArgentinaElwin Sharvill NEGOTIATION
Misaki I MorascaAustraliaAsiya Javayant RENEWAL
Sinclair G MacleadAustraliaAmy Elsner UNQUALIFIED
Sinclair K SlusarskiIndiaStephen Shaw UNQUALIFIED
Octavia B ChuiUnited KingdomOnyama Limba RENEWAL
Chavez B InouyeFranceStephen Shaw UNQUALIFIED
Jones D MaletUnited KingdomOnyama Limba NEGOTIATION
Emily A FigeroaIndiaElwin Sharvill NEGOTIATION
Kaitlin B GarufiIndiaElwin Sharvill UNQUALIFIED
Ivar D SlusarskiJapanIvan Magalhaes NEGOTIATION
Mujtaba N AlbaresCanadaAmy Elsner PROPOSAL
Cody D FollerItalyAnna Fali RENEWAL
Costa X MarrierGermanyAnna Fali QUALIFIED
Izzy W FollerAustraliaBernardo Dominic UNQUALIFIED
Leon R ShinkoSpainAnna Fali RENEWAL
Tony N InouyeAustraliaIvan Magalhaes RENEWAL
Kaitlin W SergiItalyAnna Fali QUALIFIED
Ivar V WieserRussiaAsiya Javayant QUALIFIED
Frozen Columns
Name
Nicolas O Bolognia
Stacey S Malet
Jones U Darakjy
Wickens J Wieser
Chavez Q Stenseth
Aika U Rim
Aditya Z Nicka
Maria Z Maclead
Wickens F Saylors
Arvin L Rulapaugh
Darci V Maclead
Aditya W Maclead
Ricardo R Doe
Claire T Ferencz
Ivar R Waycott
Stacey R Garufi
Darci G Foller
Jennifer Y Perin
David I Waycott
Adams O Schemmer
Jefferson M Butt
Leon K Tollner
Greenwood B Tollner
Faith T Oldroyd
Aruna H Maclead
Aika C Briddick
Silvio B Caldarera
Emily T Whobrey
Jones Y Nestle
Jeanfrancois X Rulapaugh
Costa H Wieser
Greenwood V Oldroyd
Tony W Marrier
Chavez C Vocelka
Chavez E Rulapaugh
Misaki N Slusarski
Aika H Whobrey
James D Gillian
James S Poquette
Misaki C Stenseth
Darci G Darakjy
Chavez V Dilliard
Nicolas C Whobrey
Salvatore L Foller
Maria I Vocelka
Jefferson V Figeroa
David W Darakjy
Maria S Wieser
Wickens S Stockham
James S Foller
IdCountryDate
1000Australia2025-06-09
1001Spain2025-05-28
1002Russia2025-06-05
1003India2025-05-30
1004India2025-06-11
1005Germany2025-06-01
1006Italy2025-05-26
1007United Kingdom2025-06-12
1008Argentina2025-05-26
1009Italy2025-06-03
1010Spain2025-05-26
1011Spain2025-06-11
1012Italy2025-06-11
1013Spain2025-05-29
1014Spain2025-06-15
1015India2025-06-06
1016Russia2025-06-12
1017Spain2025-06-04
1018Australia2025-05-26
1019Spain2025-06-05
1020Russia2025-06-13
1021Italy2025-06-14
1022India2025-06-07
1023India2025-05-17
1024France2025-05-28
1025India2025-05-18
1026India2025-06-10
1027Japan2025-05-29
1028United Kingdom2025-06-12
1029United Kingdom2025-06-09
1030Spain2025-05-19
1031United Kingdom2025-05-26
1032Japan2025-05-30
1033Japan2025-06-01
1034India2025-06-04
1035Argentina2025-06-08
1036Germany2025-05-22
1037Brazil2025-06-13
1038Germany2025-06-07
1039Australia2025-06-11
1040Argentina2025-05-26
1041India2025-06-09
1042Canada2025-05-24
1043Italy2025-05-28
1044Spain2025-05-18
1045United Kingdom2025-06-12
1046Germany2025-06-14
1047Russia2025-05-27
1048Australia2025-06-13
1049Canada2025-06-15

On-Demand Data

NameIdCountryDate
Jennifer E Garufi1000India2025-06-09
Aditya C Ostrosky1001Germany2025-05-18
James D Foller1002United Kingdom2025-06-02
Costa T Oldroyd1003Brazil2025-06-15
Rodrigues Y Slusarski1004United Kingdom2025-05-30
Faith L Malet1005Spain2025-06-09
James B Figeroa1006Russia2025-06-03
Izzy N Rulapaugh1007Germany2025-06-15
Jefferson E Nicka1008Germany2025-05-25
Kaitlin E Garufi1009Russia2025-05-18
David W Chui1010Brazil2025-06-07
Silvio P Wieser1011Australia2025-06-10
Rodrigues V Sergi1012Italy2025-06-01
Deepesh G Stockham1013Germany2025-05-30
Costa S Oldroyd1014Spain2025-05-31
Cody J Dilliard1015Japan2025-06-02
Kaitlin E Paprocki1016Russia2025-06-08
Greenwood I Garufi1017Argentina2025-05-19
Ivar S Caldarera1018Argentina2025-05-22
Ricardo O Amigon1019Italy2025-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez B RulapaughGermanyOnyama Limba QUALIFIED
Aditya C MaletSpainBernardo Dominic QUALIFIED
Ricardo O BriddickRussiaXuxue Feng RENEWAL
Deepesh H WaycottBrazilIoni Bowcher NEW
Julie C VocelkaGermanyElwin Sharvill RENEWAL
Kaitlin J RutaGermanyXuxue Feng RENEWAL
Tony K VocelkaJapanStephen Shaw NEW
Stacey W OldroydAustraliaIoni Bowcher RENEWAL
Stacey Z RimBrazilAmy Elsner RENEWAL
Misaki S PaprockiBrazilXuxue Feng UNQUALIFIED
Jefferson H SlusarskiUnited KingdomXuxue Feng NEW
Stacey X IturbideItalyBernardo Dominic NEW
Jones B InouyeSpainOnyama Limba RENEWAL
Jeanfrancois F RulapaughFranceAmy Elsner UNQUALIFIED
Mayumi Z MaletBrazilIoni Bowcher PROPOSAL
Aruna L KolmetzAustraliaStephen Shaw UNQUALIFIED
Smith Z VocelkaUnited KingdomElwin Sharvill PROPOSAL
Ivar S DarakjyIndiaAsiya Javayant NEW
Izzy Y FlosiUnited KingdomStephen Shaw QUALIFIED
Jones Q AlbaresArgentinaAnna Fali NEGOTIATION
Octavia J CampainGermanyStephen Shaw PROPOSAL
Julie T MaletAustraliaOnyama Limba NEGOTIATION
Kadeem B BriddickIndiaAsiya Javayant NEGOTIATION
Maisha T SergiBrazilAsiya Javayant NEW
Antonio R InouyeRussiaElwin Sharvill QUALIFIED
Silvio C MaletBrazilAnna Fali NEW
Wickens Z ButtFranceStephen Shaw NEGOTIATION
Johnson B WieserAustraliaOnyama Limba NEGOTIATION
Adams J BologniaArgentinaElwin Sharvill NEW
Deepesh N NickaJapanIoni Bowcher NEW
Claire D FlosiIndiaIoni Bowcher QUALIFIED
Ricardo Z KolmetzJapanXuxue Feng UNQUALIFIED
Alejandro Y AlbaresSpainXuxue Feng UNQUALIFIED
Juan T KolmetzGermanyAmy Elsner UNQUALIFIED
Ashley E VenereJapanOnyama Limba QUALIFIED
Deepesh R CampainBrazilIvan Magalhaes PROPOSAL
Munro F MaletBrazilAnna Fali UNQUALIFIED
Jeanfrancois H CaudyCanadaIvan Magalhaes PROPOSAL
Ricardo V FerenczItalyAnna Fali NEGOTIATION
Ashley J FerenczJapanElwin Sharvill QUALIFIED

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