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
Aika O KolmetzUnited KingdomStephen Shaw NEW
Darci A OldroydFranceIoni Bowcher NEGOTIATION
Juan M TollnerCanadaIvan Magalhaes NEGOTIATION
Juan A StockhamAustraliaStephen Shaw NEW
Tony D StockhamFranceXuxue Feng UNQUALIFIED
Octavia F WhobreyRussiaStephen Shaw QUALIFIED
Julie N OldroydFranceStephen Shaw NEW
Isabel E BologniaSpainAmy Elsner NEW
Isabel D IturbideBrazilXuxue Feng PROPOSAL
Izzy Y BowleyItalyStephen Shaw RENEWAL
Emily L DoeRussiaAsiya Javayant RENEWAL
Costa R OstroskyArgentinaBernardo Dominic PROPOSAL
Juan I BowleySpainAnna Fali QUALIFIED
Emily J CampainRussiaAnna Fali RENEWAL
Clifford C MaletJapanIoni Bowcher RENEWAL
Ricardo S SchemmerArgentinaElwin Sharvill QUALIFIED
Leja G PoquetteRussiaXuxue Feng RENEWAL
Smith X CaudyFranceStephen Shaw NEW
Clifford F OldroydJapanElwin Sharvill NEGOTIATION
James Y InouyeAustraliaOnyama Limba NEGOTIATION
Isabel M NickaArgentinaAnna Fali PROPOSAL
Salvatore D OstroskyGermanyAmy Elsner RENEWAL
Maria R KuskoArgentinaOnyama Limba UNQUALIFIED
Aruna Y AmigonIndiaIoni Bowcher NEW
Smith E NestleGermanyStephen Shaw RENEWAL
Kadeem G StockhamArgentinaAmy Elsner PROPOSAL
Izzy O CaldareraItalyElwin Sharvill PROPOSAL
Munro H GauchoBrazilXuxue Feng RENEWAL
Darci H CaudyRussiaAnna Fali PROPOSAL
Mujtaba G MacleadJapanElwin Sharvill NEGOTIATION
Chavez N WhobreyBrazilIoni Bowcher QUALIFIED
Maisha R MaletItalyElwin Sharvill PROPOSAL
Johnson B MorascaAustraliaStephen Shaw RENEWAL
Francesco G OldroydSpainStephen Shaw NEGOTIATION
Antonio O CaudyUnited KingdomAsiya Javayant NEGOTIATION
Antonio O WaycottSpainOnyama Limba UNQUALIFIED
Clifford E GauchoSpainAsiya Javayant NEW
James C FerenczSpainAmy Elsner QUALIFIED
Aruna O MacleadIndiaAsiya Javayant PROPOSAL
Cody U FollerGermanyOnyama Limba NEW
Isabel I ShinkoAustraliaXuxue Feng QUALIFIED
Clifford P GarufiRussiaIvan Magalhaes QUALIFIED
Izzy O MarrierFranceAmy Elsner RENEWAL
Jefferson T CaldareraGermanyElwin Sharvill NEW
Juan Q GarufiItalyIoni Bowcher QUALIFIED
Aika E GauchoBrazilAsiya Javayant UNQUALIFIED
Adams T IturbideSpainXuxue Feng NEGOTIATION
Costa L KuskoIndiaAsiya Javayant PROPOSAL
Ricardo G RoysterAustraliaBernardo Dominic QUALIFIED
Munro Q PaprockiSpainAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Nicolas U PaprockiGermanyOnyama Limba RENEWAL
Sinclair F FlosiGermanyBernardo Dominic QUALIFIED
Silvio K StensethArgentinaAmy Elsner NEGOTIATION
Jones Z FollerAustraliaStephen Shaw NEW
Francesco H WhobreyBrazilElwin Sharvill NEW
Kadeem M MarrierUnited KingdomAsiya Javayant NEGOTIATION
Octavia Y StockhamBrazilStephen Shaw QUALIFIED
Mujtaba Q ShinkoIndiaAnna Fali QUALIFIED
Leja W MorascaAustraliaElwin Sharvill UNQUALIFIED
David S OldroydJapanAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan C FigeroaSpain2026-08-07King, Christopher A Esq QUALIFIED63Ioni Bowcher
1001Emily M VocelkaSpain2026-07-31Chanay, Jeffrey A Esq RENEWAL81Elwin Sharvill
1002Costa D GlickSpain2026-08-10Buckley Miller Wright NEGOTIATION30Elwin Sharvill
1003Claire U PerinCanada2026-08-17Dorl, James J Esq QUALIFIED27Xuxue Feng
1004Faith P ButtBrazil2026-08-15Morlong Associates UNQUALIFIED58Elwin Sharvill
1005Stacey R InouyeFrance2026-08-26Rangoni Of Florence UNQUALIFIED47Onyama Limba
1006Darci M KolmetzFrance2026-08-18Chemel, James L Cpa RENEWAL73Elwin Sharvill
1007Jefferson C AlbaresBrazil2026-08-19Truhlar And Truhlar Attys NEW94Ivan Magalhaes
1008Jeanfrancois P RulapaughArgentina2026-08-17Benton, John B Jr RENEWAL23Ivan Magalhaes
1009Faith F CampainIndia2026-08-23Buckley Miller Wright UNQUALIFIED27Anna Fali
1010Greenwood D CaudyAustralia2026-08-23Feltz Printing Service QUALIFIED0Ivan Magalhaes
1011Alejandro X DilliardCanada2026-08-02King, Christopher A Esq UNQUALIFIED61Onyama Limba
1012Juan H WhobreySpain2026-08-03Commercial Press UNQUALIFIED31Amy Elsner
1013Salvatore R BologniaAustralia2026-08-18Dorl, James J Esq RENEWAL46Asiya Javayant
1014Julie C WieserFrance2026-08-08Chemel, James L Cpa PROPOSAL83Stephen Shaw
1015Maisha J DarakjyUnited Kingdom2026-08-11Feltz Printing Service UNQUALIFIED24Elwin Sharvill
1016Mayumi D IturbideJapan2026-08-24King, Christopher A Esq QUALIFIED83Anna Fali
1017Sinclair O KolmetzIndia2026-08-02Rangoni Of Florence QUALIFIED93Onyama Limba
1018Jeanfrancois Z KuskoIndia2026-08-07Morlong Associates NEGOTIATION63Stephen Shaw
1019Mujtaba V WieserCanada2026-08-02King, Christopher A Esq PROPOSAL31Asiya Javayant
1020Claire I InouyeItaly2026-08-17Chemel, James L Cpa PROPOSAL44Ioni Bowcher
1021Mayumi G PerinIndia2026-08-07Printing Dimensions NEGOTIATION33Bernardo Dominic
1022Claire R PaprockiUnited Kingdom2026-08-07Chapman, Ross E Esq UNQUALIFIED5Onyama Limba
1023Maisha H KolmetzUnited Kingdom2026-08-12Chapman, Ross E Esq NEW48Ioni Bowcher
1024Isabel W NickaSpain2026-08-20Feiner Bros UNQUALIFIED3Anna Fali
1025Leon J FerenczSpain2026-08-08Dorl, James J Esq QUALIFIED81Stephen Shaw
1026Nicolas Y CampainAustralia2026-08-24Feltz Printing Service NEW92Bernardo Dominic
1027Mayumi U GlickArgentina2026-08-06Morlong Associates RENEWAL36Stephen Shaw
1028Stacey D OstroskyArgentina2026-08-06Feiner Bros NEGOTIATION17Ioni Bowcher
1029Mujtaba M MaletItaly2026-08-15Chemel, James L Cpa PROPOSAL6Ioni Bowcher
1030Leon R FlosiArgentina2026-08-17Chanay, Jeffrey A Esq NEGOTIATION66Onyama Limba
1031Izzy Q VocelkaJapan2026-08-22Chanay, Jeffrey A Esq NEGOTIATION7Amy Elsner
1032Ricardo N GillianAustralia2026-08-23King, Christopher A Esq RENEWAL2Elwin Sharvill
1033Salvatore I GillianIndia2026-08-27Rangoni Of Florence UNQUALIFIED49Stephen Shaw
1034Emily B FlosiRussia2026-08-09Rangoni Of Florence NEW78Amy Elsner
1035Jeanfrancois Y GlickSpain2026-08-22Dorl, James J Esq NEGOTIATION61Ioni Bowcher
1036Jeanfrancois R AmigonJapan2026-08-23Feltz Printing Service QUALIFIED2Amy Elsner
1037Mujtaba H VenereIndia2026-08-04Feiner Bros RENEWAL29Onyama Limba
1038Adams Y IturbideItaly2026-08-07Feltz Printing Service RENEWAL47Amy Elsner
1039Emily L AmigonJapan2026-08-15Benton, John B Jr QUALIFIED78Bernardo Dominic
1040Leon W RutaRussia2026-08-16Chapman, Ross E Esq QUALIFIED72Onyama Limba
1041David V BriddickJapan2026-08-22Chemel, James L Cpa QUALIFIED87Onyama Limba
1042Leja M MaletUnited Kingdom2026-08-13Feltz Printing Service RENEWAL80Ivan Magalhaes
1043Leja F SergiBrazil2026-08-13Chanay, Jeffrey A Esq QUALIFIED11Bernardo Dominic
1044Juan S TollnerCanada2026-08-06Dorl, James J Esq PROPOSAL27Asiya Javayant
1045Claire N ShinkoIndia2026-08-05Rousseaux, Michael Esq NEW75Bernardo Dominic
1046Smith B NestleRussia2026-08-26Printing Dimensions NEGOTIATION86Xuxue Feng
1047Nicolas K TollnerCanada2026-08-05Truhlar And Truhlar Attys RENEWAL43Bernardo Dominic
1048Juan G BologniaJapan2026-08-22Chemel, James L Cpa RENEWAL80Xuxue Feng
1049Maria Z VenereCanada2026-08-21Chanay, Jeffrey A Esq NEGOTIATION37Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois Y MorascaGermanyElwin Sharvill QUALIFIED
Mayumi X MaletFranceStephen Shaw NEGOTIATION
Octavia M FlosiIndiaElwin Sharvill RENEWAL
Isabel E BowleyJapanIoni Bowcher NEW
Isabel V SergiItalyXuxue Feng RENEWAL
Murillo O BriddickFranceAsiya Javayant QUALIFIED
Leon W CaldareraJapanAsiya Javayant NEW
Costa W SchemmerFranceIoni Bowcher UNQUALIFIED
Faith V VocelkaUnited KingdomIoni Bowcher UNQUALIFIED
Antonio V FlosiBrazilAmy Elsner NEGOTIATION
Silvio D SchemmerJapanIoni Bowcher NEGOTIATION
Arvin O PaprockiGermanyAmy Elsner PROPOSAL
Silvio T GlickAustraliaStephen Shaw NEGOTIATION
Jennifer O CampainIndiaIoni Bowcher UNQUALIFIED
Wickens D OstroskyIndiaElwin Sharvill PROPOSAL
Leon E NickaIndiaBernardo Dominic UNQUALIFIED
Maisha R OldroydCanadaAnna Fali UNQUALIFIED
Salvatore U RutaArgentinaIvan Magalhaes RENEWAL
Maisha I MorascaJapanOnyama Limba QUALIFIED
Maisha Y GillianIndiaXuxue Feng RENEWAL
Emily M RimCanadaIoni Bowcher NEW
Sinclair B BowleyFranceIoni Bowcher NEW
Jeanfrancois T IturbideArgentinaStephen Shaw QUALIFIED
Faith U SergiFranceIoni Bowcher PROPOSAL
Arvin Y InouyeAustraliaAsiya Javayant RENEWAL
Mayumi N OldroydGermanyStephen Shaw UNQUALIFIED
Salvatore I MarrierUnited KingdomIoni Bowcher PROPOSAL
Rodrigues E PerinJapanIvan Magalhaes NEGOTIATION
Adams V ButtCanadaAnna Fali NEW
Morrow R PerinItalyIvan Magalhaes QUALIFIED
Aditya P RulapaughIndiaIoni Bowcher NEGOTIATION
Jones X GillianFranceXuxue Feng NEW
Rodrigues Z ShinkoBrazilElwin Sharvill NEGOTIATION
Tony P VocelkaGermanyAsiya Javayant RENEWAL
Isabel B BowleyCanadaIvan Magalhaes RENEWAL
Isabel N RimArgentinaIoni Bowcher QUALIFIED
Arvin M VenereAustraliaIvan Magalhaes NEGOTIATION
Antonio Q MacleadItalyIvan Magalhaes PROPOSAL
Alejandro X VocelkaAustraliaBernardo Dominic NEGOTIATION
Emily F DilliardGermanyAnna Fali NEW
Kaitlin F IturbideItalyXuxue Feng QUALIFIED
Juan O WieserGermanyBernardo Dominic NEGOTIATION
Octavia I RutaFranceIoni Bowcher RENEWAL
Darci U RimArgentinaAmy Elsner QUALIFIED
Antonio I GarufiSpainIvan Magalhaes QUALIFIED
Izzy Z PaprockiBrazilIvan Magalhaes UNQUALIFIED
Arvin P CampainUnited KingdomAnna Fali NEW
Mayumi J IturbideRussiaAnna Fali NEW
Aika D MaletSpainOnyama Limba QUALIFIED
Maria R DilliardItalyOnyama Limba PROPOSAL
Frozen Columns
Name
Jeanfrancois Z Rulapaugh
Jefferson T Waycott
Sinclair P Oldroyd
Johnson H Gaucho
Nicolas S Campain
Octavia Y Tollner
Kaitlin R Butt
Ashley M Malet
Maisha U Kolmetz
Cody W Marrier
Kadeem W Morasca
Juan Q Oldroyd
David F Bolognia
Francesco K Kolmetz
Leja G Gillian
Maisha D Rulapaugh
Mayumi Y Whobrey
Costa F Schemmer
Maria R Saylors
Misaki G Iturbide
Ashley O Chui
Ashley X Bowley
Isabel N Perin
Emily M Malet
Juan Q Gillian
Juan T Stockham
Johnson B Ferencz
Johnson G Oldroyd
Nicolas W Kolmetz
Jones W Sergi
Munro S Bolognia
Wickens A Poquette
Leja Z Campain
Ivar Z Inouye
Smith J Oldroyd
Tony D Caldarera
Silvio J Ruta
Aditya U Stenseth
James M Vocelka
Stacey Z Kolmetz
Francesco V Perin
Tony I Rulapaugh
Jeanfrancois N Nicka
Adams B Shinko
Izzy N Darakjy
Jefferson I Gaucho
Salvatore W Saylors
Rodrigues E Vocelka
Ivar U Flosi
Claire D Perin
IdCountryDate
1000Australia2026-08-03
1001Argentina2026-08-22
1002Germany2026-08-16
1003Italy2026-08-18
1004India2026-08-15
1005Australia2026-08-06
1006India2026-08-02
1007Argentina2026-08-25
1008Italy2026-08-14
1009Argentina2026-08-25
1010Argentina2026-08-22
1011India2026-08-12
1012Argentina2026-07-31
1013United Kingdom2026-08-21
1014Germany2026-08-28
1015Argentina2026-08-06
1016United Kingdom2026-08-08
1017Russia2026-08-19
1018Argentina2026-08-12
1019Germany2026-08-11
1020Russia2026-08-10
1021Australia2026-08-18
1022Russia2026-08-24
1023Argentina2026-08-25
1024United Kingdom2026-08-15
1025Argentina2026-08-22
1026United Kingdom2026-08-20
1027Italy2026-08-10
1028United Kingdom2026-08-23
1029Canada2026-08-04
1030Argentina2026-08-21
1031France2026-08-25
1032Canada2026-08-27
1033Argentina2026-08-03
1034France2026-08-01
1035Spain2026-08-11
1036Spain2026-08-04
1037Germany2026-08-17
1038Australia2026-08-17
1039Canada2026-08-20
1040United Kingdom2026-08-23
1041Brazil2026-08-25
1042Australia2026-08-12
1043Russia2026-08-13
1044India2026-08-22
1045Australia2026-08-13
1046Russia2026-08-07
1047Spain2026-08-01
1048Japan2026-08-13
1049Canada2026-08-11

On-Demand Data

NameIdCountryDate
Leon C Foller1000Argentina2026-08-23
Arvin C Iturbide1001Canada2026-08-29
Jeanfrancois B Shinko1002Argentina2026-08-06
Arvin Q Marrier1003Australia2026-08-19
Sinclair J Albares1004Canada2026-08-10
Isabel Y Malet1005Spain2026-08-06
Claire L Paprocki1006United Kingdom2026-08-06
Salvatore D Dilliard1007Italy2026-08-22
Leja M Royster1008Argentina2026-08-15
Faith I Malet1009Brazil2026-08-01
Kaitlin E Glick1010Spain2026-08-20
Stacey A Perin1011Canada2026-08-07
Silvio J Royster1012France2026-08-14
Aruna G Venere1013Australia2026-08-27
Johnson G Venere1014Canada2026-08-09
Mayumi I Nestle1015Spain2026-08-13
Kadeem C Royster1016Australia2026-08-23
Misaki T Sergi1017Spain2026-08-02
Salvatore V Ostrosky1018Australia2026-08-18
Emily A Gaucho1019United Kingdom2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia N BowleyAustraliaAmy Elsner NEGOTIATION
Alejandro F IturbideArgentinaAsiya Javayant RENEWAL
Alejandro K SergiUnited KingdomIoni Bowcher RENEWAL
David N GarufiIndiaIoni Bowcher NEW
Silvio T BologniaJapanStephen Shaw PROPOSAL
Arvin P FlosiFranceXuxue Feng RENEWAL
Greenwood Z SlusarskiBrazilAmy Elsner NEGOTIATION
Kadeem A SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Misaki W SergiJapanOnyama Limba PROPOSAL
Munro V IturbideArgentinaIoni Bowcher NEGOTIATION
Francesco K InouyeUnited KingdomStephen Shaw QUALIFIED
Salvatore V CaldareraIndiaIoni Bowcher UNQUALIFIED
Alejandro R MaletJapanAsiya Javayant UNQUALIFIED
Cody B RoysterRussiaOnyama Limba UNQUALIFIED
James G WaycottAustraliaXuxue Feng NEGOTIATION
Silvio W CampainUnited KingdomXuxue Feng RENEWAL
Mujtaba K BowleyItalyIoni Bowcher QUALIFIED
Salvatore Y GlickAustraliaElwin Sharvill NEW
Greenwood X BowleyGermanyAnna Fali NEW
James E BowleyFranceBernardo Dominic UNQUALIFIED
Salvatore V VenereUnited KingdomStephen Shaw PROPOSAL
Isabel L SlusarskiBrazilOnyama Limba NEGOTIATION
Tony E MaletUnited KingdomAnna Fali NEW
Juan T MaletSpainOnyama Limba NEGOTIATION
David L NestleIndiaBernardo Dominic NEGOTIATION
Murillo B WieserIndiaIoni Bowcher NEGOTIATION
Arvin P MarrierGermanyXuxue Feng UNQUALIFIED
Smith F ChuiIndiaAmy Elsner QUALIFIED
Ivar R GillianUnited KingdomIvan Magalhaes UNQUALIFIED
Leon X RoysterFranceAsiya Javayant RENEWAL
Mayumi C ChuiUnited KingdomAnna Fali QUALIFIED
Tony I GillianSpainAnna Fali RENEWAL
Greenwood E MaletItalyOnyama Limba RENEWAL
Aditya O MaletJapanXuxue Feng QUALIFIED
Arvin F StensethIndiaOnyama Limba UNQUALIFIED
Rodrigues O MaletFranceElwin Sharvill NEW
Wickens H OldroydFranceAmy Elsner PROPOSAL
Antonio C VenereUnited KingdomIvan Magalhaes QUALIFIED
Smith A BriddickArgentinaOnyama Limba UNQUALIFIED
Ricardo C StockhamFranceXuxue Feng 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>