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
Kaitlin U GlickJapanAsiya Javayant UNQUALIFIED
Isabel V KolmetzSpainAsiya Javayant PROPOSAL
Kaitlin D MaletItalyAsiya Javayant PROPOSAL
Isabel A MarrierJapanXuxue Feng RENEWAL
Stacey X MorascaUnited KingdomIoni Bowcher QUALIFIED
Jennifer Z AmigonRussiaBernardo Dominic UNQUALIFIED
Jones S FigeroaRussiaAsiya Javayant QUALIFIED
Costa R NickaArgentinaIoni Bowcher NEW
Claire Q OstroskyUnited KingdomOnyama Limba PROPOSAL
Emily T MorascaGermanyAmy Elsner NEGOTIATION
Jennifer Z CampainBrazilAsiya Javayant PROPOSAL
Leon Q ChuiFranceOnyama Limba PROPOSAL
Silvio S VenereUnited KingdomIvan Magalhaes RENEWAL
Antonio O ChuiRussiaElwin Sharvill QUALIFIED
Darci J IturbideItalyAsiya Javayant QUALIFIED
Murillo J PaprockiGermanyAmy Elsner NEW
Deepesh C RutaGermanyBernardo Dominic PROPOSAL
Silvio W ChuiItalyXuxue Feng RENEWAL
Jones K IturbideRussiaAmy Elsner UNQUALIFIED
Isabel A OstroskyFranceIvan Magalhaes RENEWAL
Kaitlin O CampainIndiaAsiya Javayant PROPOSAL
Silvio P FlosiJapanAnna Fali NEGOTIATION
Kadeem F GarufiItalyOnyama Limba QUALIFIED
Aika A ChuiFranceOnyama Limba NEGOTIATION
Maisha I SlusarskiItalyStephen Shaw PROPOSAL
Morrow H VocelkaRussiaStephen Shaw NEW
Kaitlin L ButtCanadaOnyama Limba UNQUALIFIED
Silvio M VocelkaAustraliaAsiya Javayant NEGOTIATION
Francesco Q FlosiCanadaIoni Bowcher NEGOTIATION
Mujtaba G FlosiGermanyAnna Fali NEW
Murillo C KuskoJapanIvan Magalhaes RENEWAL
Mujtaba B FlosiGermanyIvan Magalhaes UNQUALIFIED
Leon H FollerFranceIvan Magalhaes UNQUALIFIED
Wickens Y AmigonAustraliaOnyama Limba UNQUALIFIED
Isabel G MacleadRussiaIvan Magalhaes RENEWAL
Munro O SchemmerArgentinaIoni Bowcher PROPOSAL
Tony R DilliardArgentinaBernardo Dominic UNQUALIFIED
Claire X WaycottItalyAmy Elsner NEW
Smith O VenereFranceXuxue Feng QUALIFIED
Sinclair Q SchemmerItalyAmy Elsner NEGOTIATION
Francesco C NickaSpainAnna Fali PROPOSAL
Mayumi W ChuiBrazilAsiya Javayant PROPOSAL
Nicolas R FlosiSpainIoni Bowcher QUALIFIED
Adams E ButtGermanyBernardo Dominic NEW
Ashley D NickaJapanIoni Bowcher PROPOSAL
Johnson K WaycottUnited KingdomAnna Fali NEW
Jones G SchemmerSpainBernardo Dominic RENEWAL
Izzy B NestleJapanIoni Bowcher PROPOSAL
Jennifer U MaletRussiaIoni Bowcher NEW
Kaitlin Z BologniaIndiaStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Stacey R MaletArgentinaStephen Shaw NEW
Faith X PerinRussiaAsiya Javayant RENEWAL
Wickens Z PaprockiJapanXuxue Feng NEW
Murillo T SlusarskiGermanyIoni Bowcher RENEWAL
Ivar K InouyeBrazilAmy Elsner NEGOTIATION
Salvatore B FerenczIndiaIvan Magalhaes PROPOSAL
David L InouyeFranceAsiya Javayant NEGOTIATION
Izzy J PoquetteGermanyAmy Elsner NEGOTIATION
Kaitlin X WaycottBrazilOnyama Limba NEGOTIATION
Nicolas C FollerFranceElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro Z DilliardFrance2026-07-03Commercial Press QUALIFIED33Anna Fali
1001Misaki F BriddickRussia2026-07-16Rangoni Of Florence RENEWAL50Anna Fali
1002Johnson Q RimAustralia2026-07-20Feltz Printing Service UNQUALIFIED3Ivan Magalhaes
1003Alejandro G NickaSpain2026-07-06Benton, John B Jr NEW47Amy Elsner
1004James H FollerFrance2026-06-26Chemel, James L Cpa RENEWAL34Anna Fali
1005Aditya M RimBrazil2026-06-27Printing Dimensions PROPOSAL40Onyama Limba
1006Costa P AmigonFrance2026-07-18Chemel, James L Cpa NEW94Stephen Shaw
1007Tony W WaycottCanada2026-07-15Chemel, James L Cpa QUALIFIED43Anna Fali
1008Johnson J CaudyCanada2026-07-23Buckley Miller Wright NEW92Elwin Sharvill
1009Costa B AmigonGermany2026-07-04Truhlar And Truhlar Attys NEW50Asiya Javayant
1010Murillo G FigeroaArgentina2026-07-21Rousseaux, Michael Esq PROPOSAL38Ivan Magalhaes
1011Arvin U GillianFrance2026-07-05Rangoni Of Florence NEW10Bernardo Dominic
1012Salvatore G FigeroaIndia2026-07-08Chanay, Jeffrey A Esq NEW67Ioni Bowcher
1013Leja L GarufiSpain2026-07-17Feiner Bros UNQUALIFIED30Stephen Shaw
1014Aditya U KuskoUnited Kingdom2026-06-28Feltz Printing Service NEGOTIATION62Elwin Sharvill
1015Smith U ShinkoJapan2026-07-11Benton, John B Jr NEW40Xuxue Feng
1016Tony K FerenczIndia2026-07-16Morlong Associates PROPOSAL99Stephen Shaw
1017Sinclair Y FlosiAustralia2026-07-17Rangoni Of Florence RENEWAL2Ioni Bowcher
1018Salvatore J TollnerUnited Kingdom2026-07-14Buckley Miller Wright UNQUALIFIED12Anna Fali
1019Chavez P SlusarskiBrazil2026-07-06Morlong Associates UNQUALIFIED14Asiya Javayant
1020Juan U OldroydFrance2026-07-11Truhlar And Truhlar Attys QUALIFIED68Stephen Shaw
1021Ashley N RoysterItaly2026-07-18Rangoni Of Florence UNQUALIFIED41Elwin Sharvill
1022Ricardo R FerenczRussia2026-06-26Buckley Miller Wright QUALIFIED26Bernardo Dominic
1023Kaitlin U BriddickCanada2026-07-02Chanay, Jeffrey A Esq NEW72Bernardo Dominic
1024Claire E RimRussia2026-06-29Rousseaux, Michael Esq QUALIFIED16Asiya Javayant
1025Juan V DarakjyArgentina2026-06-26King, Christopher A Esq NEGOTIATION93Ivan Magalhaes
1026Adams S BriddickCanada2026-07-19Rousseaux, Michael Esq QUALIFIED32Xuxue Feng
1027Johnson R PerinSpain2026-07-23Buckley Miller Wright RENEWAL71Anna Fali
1028Jeanfrancois J RoysterGermany2026-07-07King, Christopher A Esq UNQUALIFIED95Onyama Limba
1029Isabel M DilliardJapan2026-06-26Rangoni Of Florence NEGOTIATION16Amy Elsner
1030Cody M MaletRussia2026-07-04Rangoni Of Florence PROPOSAL96Stephen Shaw
1031Maria F AlbaresItaly2026-07-01Dorl, James J Esq PROPOSAL55Ioni Bowcher
1032James A FlosiRussia2026-07-03Feiner Bros QUALIFIED26Anna Fali
1033Claire K CaudyFrance2026-07-10Chanay, Jeffrey A Esq NEW19Amy Elsner
1034Izzy M DoeUnited Kingdom2026-07-16Rousseaux, Michael Esq PROPOSAL53Onyama Limba
1035Kaitlin K AlbaresArgentina2026-07-02Printing Dimensions PROPOSAL64Xuxue Feng
1036Adams V KuskoIndia2026-07-12Chapman, Ross E Esq NEGOTIATION80Asiya Javayant
1037Arvin V IturbideSpain2026-07-22Buckley Miller Wright QUALIFIED80Xuxue Feng
1038Cody Z InouyeFrance2026-07-19Commercial Press RENEWAL44Elwin Sharvill
1039Maria S IturbideUnited Kingdom2026-07-08Feltz Printing Service UNQUALIFIED41Xuxue Feng
1040Stacey Y DarakjyAustralia2026-07-08Chemel, James L Cpa RENEWAL4Amy Elsner
1041Adams W BowleyGermany2026-07-05Benton, John B Jr UNQUALIFIED4Ioni Bowcher
1042Sinclair U RoysterUnited Kingdom2026-07-14Printing Dimensions RENEWAL72Elwin Sharvill
1043Morrow W MaletSpain2026-07-15Buckley Miller Wright QUALIFIED39Stephen Shaw
1044Ivar B WieserCanada2026-07-18Chapman, Ross E Esq RENEWAL41Asiya Javayant
1045Johnson Y BriddickCanada2026-07-03Benton, John B Jr NEGOTIATION25Anna Fali
1046Johnson O MaletRussia2026-07-17Buckley Miller Wright NEW5Elwin Sharvill
1047Isabel G SergiJapan2026-07-07Feltz Printing Service RENEWAL98Onyama Limba
1048Emily G FerenczArgentina2026-07-19Feltz Printing Service PROPOSAL28Ivan Magalhaes
1049Ashley S MacleadArgentina2026-07-01Buckley Miller Wright NEGOTIATION61Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois D IturbideBrazilStephen Shaw QUALIFIED
Ashley O MacleadBrazilIoni Bowcher UNQUALIFIED
Murillo Z DarakjyArgentinaOnyama Limba NEGOTIATION
Cody L ChuiRussiaAsiya Javayant UNQUALIFIED
Julie D MarrierBrazilOnyama Limba NEW
Rodrigues G AmigonBrazilIvan Magalhaes PROPOSAL
Kadeem Q FollerArgentinaAnna Fali RENEWAL
Tony R RoysterIndiaIvan Magalhaes NEW
Clifford A StensethSpainAnna Fali UNQUALIFIED
Deepesh O AlbaresSpainOnyama Limba NEGOTIATION
Morrow I MarrierIndiaBernardo Dominic PROPOSAL
Isabel B DilliardAustraliaIvan Magalhaes PROPOSAL
Kadeem V CaldareraIndiaAmy Elsner QUALIFIED
Leja B AmigonRussiaIvan Magalhaes QUALIFIED
Morrow B CaldareraUnited KingdomAmy Elsner RENEWAL
James H GlickCanadaBernardo Dominic UNQUALIFIED
Antonio E RimIndiaElwin Sharvill NEGOTIATION
Jeanfrancois M NestleIndiaAsiya Javayant QUALIFIED
Claire E GauchoCanadaBernardo Dominic RENEWAL
Darci U DarakjyCanadaIoni Bowcher NEW
Isabel K DoeBrazilAmy Elsner NEGOTIATION
Leja X ChuiIndiaIvan Magalhaes NEGOTIATION
Ashley C SchemmerBrazilIvan Magalhaes NEGOTIATION
Darci U SergiCanadaXuxue Feng PROPOSAL
Aruna U StockhamArgentinaAsiya Javayant RENEWAL
Aditya V OstroskyArgentinaElwin Sharvill UNQUALIFIED
Emily X RimFranceIoni Bowcher PROPOSAL
Leon W MorascaBrazilIvan Magalhaes PROPOSAL
Jefferson R CaldareraItalyAnna Fali PROPOSAL
Emily D GillianCanadaIoni Bowcher PROPOSAL
Emily X CaldareraFranceStephen Shaw UNQUALIFIED
Deepesh M PoquetteIndiaBernardo Dominic QUALIFIED
Cody W ButtCanadaIoni Bowcher QUALIFIED
Aditya L SaylorsItalyAmy Elsner NEGOTIATION
Greenwood Y RutaFranceAmy Elsner UNQUALIFIED
Antonio O FollerRussiaAnna Fali UNQUALIFIED
David W CaldareraFranceBernardo Dominic RENEWAL
James R BologniaArgentinaElwin Sharvill UNQUALIFIED
Sinclair E PoquetteBrazilXuxue Feng NEGOTIATION
Stacey D GlickGermanyOnyama Limba RENEWAL
Salvatore S PoquetteGermanyElwin Sharvill UNQUALIFIED
Ashley B MaletGermanyAnna Fali NEW
Ivar A FollerBrazilBernardo Dominic PROPOSAL
Sinclair A MaletRussiaAsiya Javayant PROPOSAL
Octavia P WaycottFranceBernardo Dominic QUALIFIED
Ashley G PerinIndiaBernardo Dominic PROPOSAL
Mayumi O ChuiUnited KingdomIoni Bowcher UNQUALIFIED
Julie D IturbideIndiaIoni Bowcher NEGOTIATION
Kadeem A RimUnited KingdomAmy Elsner RENEWAL
Morrow O GarufiJapanAsiya Javayant NEGOTIATION
Frozen Columns
Name
Ricardo R Schemmer
Aditya A Maclead
Antonio Y Amigon
Juan D Dilliard
Salvatore K Poquette
Wickens H Ruta
Leja R Campain
Jones G Ostrosky
Chavez N Marrier
Costa C Garufi
Mujtaba G Campain
David Z Oldroyd
Aruna C Oldroyd
James L Albares
Morrow S Amigon
Darci N Briddick
Maisha L Inouye
Octavia L Slusarski
Cody Q Butt
Aika X Sergi
Misaki Z Waycott
Murillo O Venere
Johnson Q Kolmetz
Murillo V Amigon
James L Waycott
Kadeem P Garufi
Maisha W Schemmer
Emily Z Darakjy
Aika C Iturbide
Jones B Saylors
Julie V Paprocki
Kaitlin K Bolognia
Juan P Nicka
Isabel Y Butt
Juan E Chui
Rodrigues T Gillian
Adams W Chui
Wickens S Campain
Deepesh G Gillian
Maisha Q Chui
Octavia W Malet
Aditya B Iturbide
Johnson Q Garufi
Claire D Iturbide
Emily R Royster
Deepesh R Sergi
Morrow G Bowley
Darci N Wieser
Aruna A Campain
Adams N Campain
IdCountryDate
1000Russia2026-07-19
1001France2026-07-08
1002Russia2026-07-20
1003Italy2026-07-09
1004France2026-07-21
1005Japan2026-06-27
1006Australia2026-07-16
1007France2026-06-30
1008Australia2026-06-29
1009Australia2026-07-12
1010Italy2026-07-03
1011Italy2026-07-15
1012Italy2026-07-04
1013Spain2026-06-29
1014Australia2026-07-21
1015Brazil2026-07-08
1016Brazil2026-07-04
1017Brazil2026-07-04
1018India2026-06-25
1019India2026-06-25
1020Russia2026-07-22
1021United Kingdom2026-07-01
1022India2026-07-05
1023France2026-06-25
1024United Kingdom2026-07-19
1025United Kingdom2026-07-02
1026United Kingdom2026-07-06
1027Brazil2026-07-10
1028Brazil2026-06-25
1029Japan2026-07-17
1030Australia2026-07-07
1031Japan2026-06-26
1032Brazil2026-07-22
1033Australia2026-07-04
1034United Kingdom2026-07-12
1035Italy2026-06-30
1036Australia2026-07-04
1037Italy2026-07-03
1038France2026-07-08
1039Japan2026-07-23
1040Japan2026-07-16
1041Japan2026-07-18
1042France2026-07-09
1043United Kingdom2026-07-13
1044Japan2026-07-12
1045Russia2026-06-25
1046Brazil2026-06-27
1047United Kingdom2026-06-30
1048Brazil2026-06-27
1049India2026-07-16

On-Demand Data

NameIdCountryDate
Antonio W Oldroyd1000Australia2026-07-12
Maria F Amigon1001Germany2026-06-30
Mayumi K Malet1002India2026-07-07
Clifford C Venere1003Germany2026-07-06
Mujtaba Q Foller1004Japan2026-07-21
David V Figeroa1005Germany2026-07-22
Francesco L Caldarera1006Japan2026-07-16
Salvatore F Poquette1007Argentina2026-07-13
Jennifer Y Schemmer1008Spain2026-07-07
Murillo U Vocelka1009Australia2026-07-03
Silvio B Rim1010Brazil2026-07-24
Darci K Doe1011Australia2026-07-07
Sinclair W Chui1012Argentina2026-07-19
Maria P Whobrey1013Spain2026-07-16
David I Kolmetz1014Italy2026-07-23
David C Nestle1015Japan2026-07-05
Arvin C Ostrosky1016Spain2026-06-26
Johnson B Flosi1017India2026-07-16
Costa B Caldarera1018Brazil2026-06-26
Emily J Malet1019Argentina2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem F StensethRussiaXuxue Feng UNQUALIFIED
Sinclair G CampainFranceIoni Bowcher RENEWAL
Octavia S ShinkoGermanyXuxue Feng UNQUALIFIED
Octavia U WaycottCanadaIoni Bowcher NEGOTIATION
Deepesh Y SergiFranceAmy Elsner PROPOSAL
Misaki C OstroskyFranceBernardo Dominic QUALIFIED
Ashley P MaletItalyIoni Bowcher UNQUALIFIED
Emily M AlbaresAustraliaStephen Shaw NEGOTIATION
Izzy V GillianArgentinaAnna Fali PROPOSAL
Aditya A WhobreyFranceAsiya Javayant QUALIFIED
Jones E MarrierArgentinaBernardo Dominic NEW
Ashley P RoysterBrazilElwin Sharvill PROPOSAL
Juan U DoeFranceAsiya Javayant NEW
Julie M RutaCanadaAmy Elsner NEW
Octavia N BologniaRussiaOnyama Limba PROPOSAL
Chavez N CampainRussiaStephen Shaw PROPOSAL
Smith R VocelkaSpainAmy Elsner NEW
Clifford F GarufiSpainAmy Elsner QUALIFIED
Octavia K KolmetzBrazilAmy Elsner UNQUALIFIED
Isabel A StensethArgentinaElwin Sharvill UNQUALIFIED
Deepesh G FlosiJapanAnna Fali PROPOSAL
Antonio U TollnerCanadaStephen Shaw UNQUALIFIED
Isabel P FerenczItalyAnna Fali NEW
Alejandro Q DarakjyRussiaOnyama Limba NEW
Aditya N KuskoArgentinaAsiya Javayant NEGOTIATION
Deepesh N VocelkaGermanyOnyama Limba RENEWAL
Rodrigues Y AlbaresGermanyBernardo Dominic PROPOSAL
Darci R VenereUnited KingdomAsiya Javayant QUALIFIED
Tony M IturbideRussiaAnna Fali UNQUALIFIED
Leon S RulapaughItalyAnna Fali RENEWAL
Jefferson C WaycottSpainAmy Elsner NEGOTIATION
Morrow T SchemmerArgentinaAmy Elsner UNQUALIFIED
Ivar T ShinkoFranceXuxue Feng NEW
Aika O RulapaughArgentinaAsiya Javayant QUALIFIED
Izzy J CaudyFranceElwin Sharvill NEGOTIATION
Stacey T IturbideJapanAmy Elsner QUALIFIED
Morrow M NestleFranceAsiya Javayant RENEWAL
Clifford Z OstroskySpainElwin Sharvill QUALIFIED
Tony N PoquetteArgentinaStephen Shaw PROPOSAL
Darci M SaylorsGermanyIvan Magalhaes 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>