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
Darci Z PerinItalyAnna Fali NEGOTIATION
Munro Z PoquetteIndiaOnyama Limba PROPOSAL
Kaitlin N MorascaJapanXuxue Feng QUALIFIED
Ricardo E SaylorsIndiaIvan Magalhaes QUALIFIED
Stacey N RutaJapanAnna Fali NEW
Morrow V BriddickBrazilAmy Elsner NEGOTIATION
Jones Q DarakjyCanadaAmy Elsner NEGOTIATION
Mayumi Q WaycottIndiaAnna Fali NEW
Claire F GillianCanadaBernardo Dominic QUALIFIED
Aruna G MorascaUnited KingdomBernardo Dominic RENEWAL
Murillo O SergiIndiaStephen Shaw PROPOSAL
Morrow N WhobreyUnited KingdomStephen Shaw PROPOSAL
Deepesh E RoysterJapanAmy Elsner QUALIFIED
Maria X VocelkaItalyIoni Bowcher PROPOSAL
Stacey F MorascaRussiaIoni Bowcher QUALIFIED
Alejandro F NickaIndiaIvan Magalhaes UNQUALIFIED
Ashley N IturbideAustraliaOnyama Limba NEW
Nicolas R VenereRussiaAnna Fali UNQUALIFIED
Aika Y FigeroaJapanXuxue Feng NEW
Emily X CaudyAustraliaAsiya Javayant RENEWAL
Misaki F RutaUnited KingdomXuxue Feng NEGOTIATION
Deepesh M RimBrazilXuxue Feng RENEWAL
Wickens Q BologniaItalyIoni Bowcher QUALIFIED
Octavia H BriddickFranceAnna Fali NEGOTIATION
Kaitlin S DoeSpainIvan Magalhaes QUALIFIED
Costa T DilliardRussiaIoni Bowcher UNQUALIFIED
Ivar G WieserRussiaIoni Bowcher RENEWAL
Kadeem Q MorascaBrazilOnyama Limba QUALIFIED
Kadeem J SchemmerSpainAmy Elsner UNQUALIFIED
Adams B GlickItalyXuxue Feng QUALIFIED
Costa E RimRussiaAsiya Javayant PROPOSAL
Arvin F BowleyRussiaIvan Magalhaes QUALIFIED
Cody C TollnerItalyElwin Sharvill NEW
James V StockhamCanadaAnna Fali RENEWAL
Mayumi S BologniaCanadaElwin Sharvill QUALIFIED
Nicolas S NickaGermanyStephen Shaw RENEWAL
Costa O RutaRussiaElwin Sharvill NEGOTIATION
Juan O AmigonItalyElwin Sharvill NEW
Rodrigues F FollerSpainAmy Elsner NEGOTIATION
Jennifer A GarufiFranceBernardo Dominic PROPOSAL
Costa I OldroydUnited KingdomBernardo Dominic NEW
Octavia D SaylorsFranceXuxue Feng PROPOSAL
Antonio W StockhamFranceOnyama Limba UNQUALIFIED
Sinclair Z KuskoJapanElwin Sharvill UNQUALIFIED
Emily X GarufiCanadaBernardo Dominic NEGOTIATION
Salvatore T OstroskyIndiaOnyama Limba UNQUALIFIED
Wickens J OstroskyArgentinaIoni Bowcher PROPOSAL
Rodrigues B StensethAustraliaIvan Magalhaes PROPOSAL
Greenwood C ShinkoItalyElwin Sharvill NEGOTIATION
Greenwood M DarakjyArgentinaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues Q SchemmerItalyAmy Elsner NEW
Silvio I FerenczBrazilIvan Magalhaes PROPOSAL
Smith M OldroydFranceIvan Magalhaes PROPOSAL
Jones X CaudyCanadaIoni Bowcher NEW
Francesco W GillianAustraliaIoni Bowcher QUALIFIED
Rodrigues P PaprockiGermanyAmy Elsner NEGOTIATION
Kadeem V NickaArgentinaOnyama Limba QUALIFIED
Jefferson O WhobreyGermanyAnna Fali NEGOTIATION
Jeanfrancois U VenereGermanyIoni Bowcher RENEWAL
Alejandro L InouyeItalyAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio O MaletGermany2026-08-11Feiner Bros NEW76Ioni Bowcher
1001Salvatore L RimSpain2026-08-01Chemel, James L Cpa UNQUALIFIED10Anna Fali
1002Rodrigues Y MarrierAustralia2026-08-22Feiner Bros RENEWAL42Anna Fali
1003Chavez O DoeRussia2026-08-17Truhlar And Truhlar Attys RENEWAL60Stephen Shaw
1004Adams Z FerenczSpain2026-07-30Rousseaux, Michael Esq NEW35Xuxue Feng
1005Juan N GauchoUnited Kingdom2026-08-20Feltz Printing Service NEGOTIATION41Ioni Bowcher
1006Aika L AlbaresRussia2026-08-21Rousseaux, Michael Esq NEGOTIATION96Asiya Javayant
1007Julie P MarrierGermany2026-08-04Rangoni Of Florence PROPOSAL18Stephen Shaw
1008Alejandro R KuskoIndia2026-08-21Rousseaux, Michael Esq QUALIFIED2Stephen Shaw
1009Smith C GauchoBrazil2026-08-16King, Christopher A Esq RENEWAL48Ioni Bowcher
1010Emily A NestleRussia2026-08-06Benton, John B Jr RENEWAL96Ioni Bowcher
1011Jennifer Z FollerGermany2026-08-03King, Christopher A Esq NEW79Amy Elsner
1012Ricardo V GlickJapan2026-08-14Buckley Miller Wright NEW99Asiya Javayant
1013Darci Q SaylorsFrance2026-08-24Rousseaux, Michael Esq NEGOTIATION71Xuxue Feng
1014Jefferson V KolmetzUnited Kingdom2026-08-01Truhlar And Truhlar Attys NEW47Elwin Sharvill
1015Mujtaba Q CaldareraGermany2026-08-20Feiner Bros UNQUALIFIED95Ivan Magalhaes
1016Adams F MarrierJapan2026-08-16Printing Dimensions RENEWAL87Ivan Magalhaes
1017Jennifer Q CaudyBrazil2026-08-02Printing Dimensions QUALIFIED7Ioni Bowcher
1018Aika H GauchoBrazil2026-08-22Chapman, Ross E Esq NEW63Bernardo Dominic
1019Faith X SchemmerJapan2026-08-21Truhlar And Truhlar Attys RENEWAL79Bernardo Dominic
1020Misaki A DoeUnited Kingdom2026-08-20Chapman, Ross E Esq PROPOSAL1Onyama Limba
1021Silvio Q StensethIndia2026-08-01Morlong Associates RENEWAL95Ivan Magalhaes
1022Izzy I PoquetteRussia2026-08-22Feltz Printing Service UNQUALIFIED4Elwin Sharvill
1023Murillo F MorascaBrazil2026-08-05Printing Dimensions QUALIFIED19Xuxue Feng
1024Stacey D FerenczAustralia2026-08-02Dorl, James J Esq PROPOSAL75Anna Fali
1025Ivar L SlusarskiCanada2026-08-19Rousseaux, Michael Esq NEW2Onyama Limba
1026Aika C StensethUnited Kingdom2026-08-21Chapman, Ross E Esq NEGOTIATION31Xuxue Feng
1027Leja W WhobreyUnited Kingdom2026-08-07Feiner Bros RENEWAL70Ioni Bowcher
1028Munro Y DoeFrance2026-08-02Chanay, Jeffrey A Esq NEW29Amy Elsner
1029Alejandro Z PaprockiAustralia2026-08-07Morlong Associates QUALIFIED38Anna Fali
1030Adams I VenereSpain2026-08-09Dorl, James J Esq RENEWAL48Xuxue Feng
1031Alejandro B StockhamSpain2026-08-05Printing Dimensions NEGOTIATION15Onyama Limba
1032Izzy Y NickaSpain2026-08-26Dorl, James J Esq QUALIFIED70Amy Elsner
1033Alejandro E PaprockiFrance2026-08-26Feltz Printing Service PROPOSAL28Amy Elsner
1034Mayumi D NestleGermany2026-08-20Buckley Miller Wright RENEWAL91Xuxue Feng
1035Julie Y ShinkoCanada2026-08-25Rangoni Of Florence NEW73Xuxue Feng
1036Salvatore P ShinkoAustralia2026-08-18Feltz Printing Service PROPOSAL2Ioni Bowcher
1037Antonio Q RutaFrance2026-08-17Chapman, Ross E Esq RENEWAL52Anna Fali
1038Julie N BriddickUnited Kingdom2026-07-29Morlong Associates QUALIFIED13Amy Elsner
1039David B FigeroaArgentina2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED41Amy Elsner
1040Costa Z MaletBrazil2026-08-08Feiner Bros UNQUALIFIED55Stephen Shaw
1041Izzy H PerinRussia2026-08-19Chanay, Jeffrey A Esq NEGOTIATION89Ivan Magalhaes
1042Izzy E GauchoItaly2026-08-15Feltz Printing Service NEGOTIATION67Ivan Magalhaes
1043Stacey P InouyeBrazil2026-08-23Truhlar And Truhlar Attys NEGOTIATION63Xuxue Feng
1044Johnson Q VocelkaUnited Kingdom2026-08-06Printing Dimensions NEGOTIATION11Stephen Shaw
1045Leon Y BologniaFrance2026-08-23Chanay, Jeffrey A Esq RENEWAL39Bernardo Dominic
1046Jones U BologniaSpain2026-08-27Rousseaux, Michael Esq RENEWAL86Onyama Limba
1047Juan T VenereBrazil2026-08-24Feltz Printing Service NEW40Onyama Limba
1048Isabel X SergiBrazil2026-07-31Truhlar And Truhlar Attys PROPOSAL21Ioni Bowcher
1049Misaki D GlickItaly2026-08-13Rousseaux, Michael Esq NEW20Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Antonio K PoquetteGermanyBernardo Dominic NEGOTIATION
Antonio P StensethRussiaAmy Elsner QUALIFIED
Mayumi D MaletGermanyIoni Bowcher RENEWAL
Leon E StensethSpainBernardo Dominic PROPOSAL
Cody G WaycottCanadaBernardo Dominic PROPOSAL
Salvatore G PoquetteUnited KingdomXuxue Feng NEW
Maisha D BologniaJapanBernardo Dominic NEGOTIATION
Silvio I SlusarskiRussiaIvan Magalhaes NEGOTIATION
Juan H PoquetteSpainXuxue Feng UNQUALIFIED
Cody B PoquetteGermanyAsiya Javayant PROPOSAL
Kadeem Z RoysterCanadaAsiya Javayant PROPOSAL
Aditya F RoysterFranceIoni Bowcher NEW
Greenwood C GillianIndiaAnna Fali RENEWAL
Jeanfrancois J DoeGermanyIoni Bowcher RENEWAL
Alejandro W FollerRussiaAsiya Javayant UNQUALIFIED
Mayumi G RoysterRussiaXuxue Feng PROPOSAL
Julie P VenereGermanyOnyama Limba PROPOSAL
Izzy H AlbaresBrazilAmy Elsner NEGOTIATION
Maisha V CaldareraItalyElwin Sharvill RENEWAL
Darci Q InouyeRussiaAnna Fali NEGOTIATION
Antonio E WhobreyItalyXuxue Feng NEW
Wickens N IturbideFranceAmy Elsner RENEWAL
Aruna U RulapaughItalyAsiya Javayant QUALIFIED
Jones X ShinkoRussiaAsiya Javayant UNQUALIFIED
Francesco Q InouyeUnited KingdomAnna Fali NEW
Johnson U VocelkaIndiaIoni Bowcher UNQUALIFIED
Alejandro I RutaCanadaElwin Sharvill NEGOTIATION
Darci N GlickBrazilIvan Magalhaes QUALIFIED
Octavia E BriddickBrazilIvan Magalhaes QUALIFIED
Mujtaba S OldroydCanadaAnna Fali UNQUALIFIED
Alejandro K MarrierCanadaAsiya Javayant NEGOTIATION
Nicolas R NestleArgentinaAmy Elsner QUALIFIED
Morrow W BologniaArgentinaBernardo Dominic PROPOSAL
Ashley D BriddickRussiaOnyama Limba NEW
Jefferson Y FigeroaAustraliaAsiya Javayant NEGOTIATION
Nicolas N GillianCanadaXuxue Feng UNQUALIFIED
Costa R FigeroaCanadaAsiya Javayant RENEWAL
Munro R FollerRussiaElwin Sharvill PROPOSAL
Clifford V OldroydBrazilOnyama Limba NEW
Kaitlin C CaldareraSpainIoni Bowcher PROPOSAL
Salvatore P ButtRussiaOnyama Limba QUALIFIED
Jeanfrancois L OstroskyIndiaXuxue Feng NEW
Octavia P NickaAustraliaAsiya Javayant NEW
Kaitlin O VocelkaAustraliaIoni Bowcher NEGOTIATION
Ashley Z IturbideBrazilAmy Elsner NEW
David Y SlusarskiGermanyIvan Magalhaes NEGOTIATION
Cody A RulapaughAustraliaAsiya Javayant QUALIFIED
Rodrigues H MaletJapanStephen Shaw NEGOTIATION
Cody O SergiCanadaAmy Elsner NEW
Johnson B CaldareraUnited KingdomIoni Bowcher RENEWAL
Frozen Columns
Name
Aditya W Rulapaugh
Mujtaba W Albares
Julie M Caldarera
Smith G Poquette
Maisha R Maclead
Aika D Nicka
Francesco K Perin
Silvio Y Kusko
Jennifer Q Maclead
Clifford J Kolmetz
Wickens Z Paprocki
Faith B Amigon
Claire A Figeroa
Mayumi M Venere
Emily R Glick
Aika I Schemmer
Mayumi M Slusarski
Kadeem M Albares
David D Gillian
Aruna E Sergi
Jefferson C Flosi
Claire O Inouye
Faith K Figeroa
Arvin J Wieser
Sinclair G Shinko
Maria C Albares
Kadeem G Slusarski
Aika D Poquette
Aruna K Chui
Isabel H Whobrey
Deepesh G Saylors
Antonio T Darakjy
Sinclair G Chui
Mujtaba I Kusko
James Q Rulapaugh
Morrow L Stenseth
Francesco Y Caldarera
Julie H Stenseth
Silvio K Chui
Aika W Figeroa
Johnson L Nestle
David W Bowley
James O Gaucho
Claire N Morasca
Murillo N Kusko
Deepesh W Iturbide
James P Garufi
Rodrigues Q Amigon
Tony F Malet
Jones U Figeroa
IdCountryDate
1000Spain2026-08-13
1001Brazil2026-08-06
1002Russia2026-08-07
1003Australia2026-08-18
1004India2026-07-31
1005Italy2026-08-23
1006Germany2026-08-04
1007India2026-08-04
1008Germany2026-08-14
1009Brazil2026-08-12
1010India2026-08-20
1011Italy2026-08-22
1012Germany2026-08-18
1013Japan2026-08-15
1014India2026-08-21
1015Germany2026-08-25
1016Spain2026-07-30
1017Spain2026-08-21
1018Italy2026-08-24
1019Spain2026-08-01
1020Australia2026-08-17
1021Brazil2026-08-25
1022Canada2026-08-23
1023France2026-08-24
1024France2026-08-07
1025India2026-08-03
1026United Kingdom2026-08-18
1027India2026-08-23
1028Russia2026-07-29
1029Argentina2026-08-03
1030Japan2026-08-17
1031France2026-08-12
1032Italy2026-08-26
1033Russia2026-08-21
1034Canada2026-08-13
1035Russia2026-08-17
1036Brazil2026-08-02
1037Japan2026-08-05
1038United Kingdom2026-08-17
1039Germany2026-08-23
1040Canada2026-08-02
1041Russia2026-08-27
1042Japan2026-08-23
1043Spain2026-08-15
1044Australia2026-08-11
1045Canada2026-08-16
1046Japan2026-07-29
1047India2026-08-07
1048Japan2026-07-31
1049Japan2026-08-22

On-Demand Data

NameIdCountryDate
Leja E Malet1000United Kingdom2026-08-06
Tony W Schemmer1001United Kingdom2026-08-11
Ashley D Venere1002Japan2026-08-20
Silvio W Bowley1003United Kingdom2026-08-15
Murillo O Paprocki1004Spain2026-08-14
Alejandro Z Darakjy1005Spain2026-08-20
Maisha X Rim1006Brazil2026-08-09
Mujtaba V Foller1007Brazil2026-08-09
Octavia W Malet1008Russia2026-08-23
Jennifer D Shinko1009United Kingdom2026-08-06
David U Nestle1010India2026-08-01
Jennifer K Chui1011India2026-08-17
David M Inouye1012Spain2026-08-27
Darci G Perin1013Japan2026-08-03
Clifford V Perin1014India2026-08-06
Johnson P Briddick1015Canada2026-08-22
Chavez T Malet1016Brazil2026-08-20
Aika H Stockham1017Canada2026-08-20
Tony S Doe1018Russia2026-08-02
Maisha N Amigon1019France2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria H CampainGermanyStephen Shaw UNQUALIFIED
Smith R NestleCanadaStephen Shaw QUALIFIED
Octavia R DilliardArgentinaAmy Elsner PROPOSAL
Chavez G RimJapanXuxue Feng NEW
Deepesh A GauchoBrazilStephen Shaw NEW
Munro C ChuiJapanAnna Fali PROPOSAL
Antonio G NestleRussiaElwin Sharvill PROPOSAL
Ricardo B PerinAustraliaIoni Bowcher PROPOSAL
Leon N RimCanadaIvan Magalhaes PROPOSAL
Jennifer S StockhamUnited KingdomBernardo Dominic UNQUALIFIED
Juan A FerenczItalyIoni Bowcher NEGOTIATION
Mujtaba Y GauchoUnited KingdomBernardo Dominic NEW
Aditya J BowleyArgentinaStephen Shaw RENEWAL
Salvatore R StensethCanadaXuxue Feng UNQUALIFIED
Murillo T WaycottRussiaAmy Elsner NEGOTIATION
Nicolas D StockhamSpainOnyama Limba QUALIFIED
Stacey I MaletJapanAnna Fali PROPOSAL
James X FigeroaJapanXuxue Feng RENEWAL
Maria Q CaldareraCanadaAnna Fali QUALIFIED
Chavez V AlbaresIndiaIoni Bowcher PROPOSAL
Mayumi F VenereArgentinaOnyama Limba RENEWAL
Aruna J RoysterItalyElwin Sharvill NEW
Leja T RoysterUnited KingdomXuxue Feng UNQUALIFIED
Isabel I DoeAustraliaXuxue Feng NEGOTIATION
Clifford I IturbideJapanStephen Shaw UNQUALIFIED
Aruna V FlosiItalyIvan Magalhaes QUALIFIED
Tony I OstroskyCanadaOnyama Limba NEW
Ashley S FlosiAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba F FigeroaRussiaXuxue Feng RENEWAL
Juan O CaldareraAustraliaElwin Sharvill RENEWAL
Ashley V SchemmerGermanyStephen Shaw PROPOSAL
Izzy Z TollnerGermanyBernardo Dominic NEW
Faith M MaletRussiaBernardo Dominic PROPOSAL
Aditya Q PerinIndiaElwin Sharvill NEW
Clifford R FigeroaCanadaIvan Magalhaes NEGOTIATION
Kadeem L VenereRussiaAsiya Javayant PROPOSAL
Aruna S MaletItalyElwin Sharvill UNQUALIFIED
Arvin B OldroydFranceAnna Fali UNQUALIFIED
Smith Q ChuiSpainBernardo Dominic NEGOTIATION
Izzy X MarrierRussiaOnyama Limba 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>