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
Cody L DarakjyIndiaAnna Fali QUALIFIED
Silvio X RutaJapanStephen Shaw PROPOSAL
Salvatore I PerinBrazilBernardo Dominic RENEWAL
Jones A SlusarskiUnited KingdomBernardo Dominic UNQUALIFIED
Darci L MacleadArgentinaAmy Elsner QUALIFIED
Izzy E FollerGermanyBernardo Dominic NEGOTIATION
James C ChuiArgentinaAnna Fali NEGOTIATION
Aika U GarufiJapanStephen Shaw NEW
Aruna N SchemmerIndiaXuxue Feng PROPOSAL
Francesco H ChuiAustraliaElwin Sharvill RENEWAL
Sinclair Y NestleRussiaElwin Sharvill QUALIFIED
David R ChuiJapanBernardo Dominic QUALIFIED
Kadeem U DilliardRussiaOnyama Limba PROPOSAL
Greenwood H AlbaresBrazilIvan Magalhaes PROPOSAL
Adams D MarrierBrazilAnna Fali RENEWAL
Kadeem V IturbideAustraliaIoni Bowcher PROPOSAL
Francesco H GillianIndiaElwin Sharvill NEW
Nicolas K NickaGermanyIoni Bowcher NEGOTIATION
Adams T WaycottJapanStephen Shaw QUALIFIED
Ashley M InouyeRussiaIvan Magalhaes QUALIFIED
Ashley B PaprockiIndiaAmy Elsner QUALIFIED
Smith Q PaprockiAustraliaAmy Elsner QUALIFIED
Morrow X ButtSpainAsiya Javayant NEGOTIATION
Ivar H BowleyGermanyElwin Sharvill PROPOSAL
Misaki W IturbideCanadaAmy Elsner NEGOTIATION
Francesco V SchemmerFranceElwin Sharvill RENEWAL
Antonio B WieserItalyAnna Fali NEGOTIATION
Maisha P CampainRussiaStephen Shaw UNQUALIFIED
Aruna M GillianSpainIoni Bowcher NEW
Stacey F DoeRussiaAsiya Javayant NEGOTIATION
Adams R RoysterSpainOnyama Limba PROPOSAL
Leja V StensethJapanIvan Magalhaes NEGOTIATION
Ivar E NickaIndiaXuxue Feng NEW
Emily A OstroskyJapanAsiya Javayant PROPOSAL
Francesco Z ChuiFranceXuxue Feng UNQUALIFIED
Kaitlin R ChuiAustraliaIvan Magalhaes UNQUALIFIED
Maria U CampainIndiaAmy Elsner QUALIFIED
Julie T StensethGermanyOnyama Limba UNQUALIFIED
Rodrigues O AmigonBrazilAsiya Javayant UNQUALIFIED
James I GauchoJapanOnyama Limba QUALIFIED
Misaki F BologniaFranceAmy Elsner UNQUALIFIED
Smith R RoysterIndiaIoni Bowcher PROPOSAL
Izzy T RulapaughCanadaAsiya Javayant PROPOSAL
Emily R CaudyBrazilAsiya Javayant UNQUALIFIED
Emily Z VocelkaSpainElwin Sharvill RENEWAL
Ashley Y SaylorsBrazilAmy Elsner RENEWAL
Juan J TollnerGermanyOnyama Limba QUALIFIED
Rodrigues I RoysterFranceAnna Fali PROPOSAL
Deepesh M InouyeFranceXuxue Feng RENEWAL
Antonio P ShinkoArgentinaXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Mujtaba I CaudyBrazilBernardo Dominic RENEWAL
Aditya O MacleadUnited KingdomAmy Elsner QUALIFIED
Greenwood Y PerinIndiaXuxue Feng PROPOSAL
Arvin J KuskoFranceIvan Magalhaes NEGOTIATION
Antonio G RulapaughCanadaStephen Shaw NEGOTIATION
Cody W SlusarskiIndiaAsiya Javayant UNQUALIFIED
Smith S DarakjyUnited KingdomAsiya Javayant RENEWAL
Claire C MarrierJapanStephen Shaw QUALIFIED
Jefferson I TollnerCanadaAsiya Javayant PROPOSAL
Maisha E PaprockiCanadaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley D KuskoIndia2026-07-01Rousseaux, Michael Esq PROPOSAL82Amy Elsner
1001Izzy S CaudyBrazil2026-07-07Feltz Printing Service NEGOTIATION92Ioni Bowcher
1002Mayumi M SlusarskiGermany2026-07-04Dorl, James J Esq NEGOTIATION44Ivan Magalhaes
1003Aruna Z OstroskyFrance2026-06-17Rangoni Of Florence PROPOSAL68Stephen Shaw
1004Emily H PoquetteJapan2026-06-19Printing Dimensions PROPOSAL39Stephen Shaw
1005Francesco N WhobreyUnited Kingdom2026-07-02Dorl, James J Esq UNQUALIFIED37Xuxue Feng
1006Emily P WaycottRussia2026-06-22Chapman, Ross E Esq PROPOSAL61Xuxue Feng
1007Nicolas H OldroydCanada2026-06-15Buckley Miller Wright RENEWAL3Elwin Sharvill
1008Faith C MaletRussia2026-06-23Commercial Press UNQUALIFIED93Asiya Javayant
1009Johnson M SaylorsRussia2026-06-29Morlong Associates UNQUALIFIED42Ioni Bowcher
1010Munro Y BriddickArgentina2026-07-05Dorl, James J Esq RENEWAL70Stephen Shaw
1011Salvatore R WhobreyRussia2026-07-06Chapman, Ross E Esq RENEWAL47Elwin Sharvill
1012Emily I OstroskyGermany2026-07-09King, Christopher A Esq PROPOSAL22Asiya Javayant
1013Kaitlin J VenereFrance2026-06-28Printing Dimensions RENEWAL8Bernardo Dominic
1014Adams G MaletAustralia2026-06-17Chanay, Jeffrey A Esq RENEWAL86Ivan Magalhaes
1015Deepesh L BologniaJapan2026-06-23King, Christopher A Esq QUALIFIED88Asiya Javayant
1016Antonio A BowleyIndia2026-06-12Chemel, James L Cpa QUALIFIED95Xuxue Feng
1017Cody J PerinFrance2026-06-27Chapman, Ross E Esq UNQUALIFIED50Asiya Javayant
1018Wickens Q SchemmerBrazil2026-06-19Feltz Printing Service NEW40Bernardo Dominic
1019Arvin R FigeroaIndia2026-06-22Rousseaux, Michael Esq RENEWAL48Amy Elsner
1020Isabel L GlickBrazil2026-07-09Commercial Press UNQUALIFIED33Xuxue Feng
1021Juan T GauchoBrazil2026-06-19Buckley Miller Wright PROPOSAL34Amy Elsner
1022Rodrigues H DarakjyGermany2026-06-26Rousseaux, Michael Esq NEGOTIATION44Bernardo Dominic
1023Sinclair U OldroydItaly2026-06-15Chanay, Jeffrey A Esq RENEWAL88Bernardo Dominic
1024Greenwood I RoysterFrance2026-07-11Truhlar And Truhlar Attys NEW3Stephen Shaw
1025Faith J FerenczAustralia2026-06-22Rousseaux, Michael Esq NEW54Ivan Magalhaes
1026Morrow K RutaBrazil2026-07-05Chemel, James L Cpa RENEWAL47Amy Elsner
1027Alejandro K RimItaly2026-07-10Buckley Miller Wright NEW39Amy Elsner
1028Jennifer O FerenczSpain2026-07-06Printing Dimensions NEGOTIATION8Xuxue Feng
1029Johnson W AmigonIndia2026-06-19Morlong Associates NEW9Stephen Shaw
1030Costa A WhobreyBrazil2026-07-05Rangoni Of Florence NEGOTIATION81Ioni Bowcher
1031Johnson E SlusarskiCanada2026-07-06Buckley Miller Wright QUALIFIED28Anna Fali
1032Costa Z GarufiJapan2026-07-06Dorl, James J Esq NEW94Stephen Shaw
1033Silvio K TollnerSpain2026-06-12Rangoni Of Florence NEW75Bernardo Dominic
1034Leja J KolmetzJapan2026-07-02Truhlar And Truhlar Attys NEW35Ioni Bowcher
1035Emily A VocelkaIndia2026-06-28Truhlar And Truhlar Attys PROPOSAL18Bernardo Dominic
1036Costa P AmigonAustralia2026-06-17Dorl, James J Esq RENEWAL14Xuxue Feng
1037Jones N StockhamArgentina2026-06-22King, Christopher A Esq PROPOSAL0Amy Elsner
1038Jefferson V OstroskyBrazil2026-07-05Benton, John B Jr NEGOTIATION85Asiya Javayant
1039Francesco N CaldareraRussia2026-07-09Chanay, Jeffrey A Esq RENEWAL65Xuxue Feng
1040Ivar O BriddickFrance2026-07-06Commercial Press PROPOSAL21Asiya Javayant
1041Costa B KuskoSpain2026-06-21Chanay, Jeffrey A Esq QUALIFIED49Asiya Javayant
1042Darci V ButtSpain2026-07-09Printing Dimensions NEW9Onyama Limba
1043Ivar J ButtGermany2026-07-03Truhlar And Truhlar Attys NEW11Onyama Limba
1044Antonio G CaudyArgentina2026-06-20Morlong Associates PROPOSAL65Elwin Sharvill
1045Greenwood J WhobreyJapan2026-06-22Benton, John B Jr NEW73Ivan Magalhaes
1046Nicolas K FerenczUnited Kingdom2026-06-17Benton, John B Jr RENEWAL2Ioni Bowcher
1047Ricardo W KuskoCanada2026-06-29Benton, John B Jr UNQUALIFIED77Onyama Limba
1048Misaki U NestleFrance2026-06-28Truhlar And Truhlar Attys NEGOTIATION87Anna Fali
1049Clifford P WhobreyArgentina2026-06-27Buckley Miller Wright NEW62Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Emily N OldroydJapanOnyama Limba NEGOTIATION
Jefferson G ShinkoBrazilAnna Fali NEGOTIATION
Rodrigues R ShinkoItalyIoni Bowcher QUALIFIED
Kadeem U AlbaresCanadaIoni Bowcher UNQUALIFIED
Octavia P DilliardBrazilAmy Elsner UNQUALIFIED
Julie M MarrierAustraliaElwin Sharvill NEGOTIATION
Emily E PaprockiUnited KingdomStephen Shaw NEGOTIATION
Kadeem C RutaItalyAmy Elsner UNQUALIFIED
David G FigeroaArgentinaIvan Magalhaes QUALIFIED
Jones T RimFranceAmy Elsner NEW
Maisha D InouyeFranceIvan Magalhaes UNQUALIFIED
Misaki C DoeAustraliaIoni Bowcher NEGOTIATION
Nicolas H GlickCanadaAsiya Javayant NEGOTIATION
Mayumi U MacleadJapanXuxue Feng NEW
Munro S MorascaJapanAmy Elsner UNQUALIFIED
Maisha Q FollerCanadaOnyama Limba UNQUALIFIED
Izzy O BowleyItalyOnyama Limba RENEWAL
Costa L SchemmerFranceBernardo Dominic NEGOTIATION
Ivar U TollnerCanadaBernardo Dominic PROPOSAL
Morrow Z OldroydGermanyAmy Elsner RENEWAL
Wickens G FlosiGermanyXuxue Feng RENEWAL
Johnson I MarrierBrazilIvan Magalhaes UNQUALIFIED
Antonio J FlosiIndiaAmy Elsner NEGOTIATION
Stacey M StensethArgentinaOnyama Limba NEW
Ashley N VocelkaAustraliaIoni Bowcher PROPOSAL
Aruna S MaletIndiaAnna Fali QUALIFIED
Emily C ButtItalyBernardo Dominic NEGOTIATION
Mayumi M WhobreyCanadaOnyama Limba QUALIFIED
Sinclair D SchemmerFranceElwin Sharvill QUALIFIED
Ashley U VocelkaFranceElwin Sharvill QUALIFIED
Mayumi Z PerinUnited KingdomBernardo Dominic NEW
Jeanfrancois J GarufiItalyAmy Elsner NEGOTIATION
Munro N KolmetzAustraliaIoni Bowcher PROPOSAL
Smith C RutaArgentinaXuxue Feng NEW
Greenwood F RutaArgentinaOnyama Limba PROPOSAL
Johnson A FlosiIndiaElwin Sharvill UNQUALIFIED
Johnson A OldroydJapanAnna Fali RENEWAL
Johnson K MaletAustraliaXuxue Feng RENEWAL
David B NestleIndiaIvan Magalhaes NEGOTIATION
Silvio P GillianUnited KingdomAmy Elsner QUALIFIED
Juan O GauchoArgentinaBernardo Dominic NEW
Ricardo G AmigonAustraliaElwin Sharvill RENEWAL
Darci I MarrierIndiaBernardo Dominic QUALIFIED
Mujtaba L GlickUnited KingdomStephen Shaw UNQUALIFIED
Chavez H FollerSpainAnna Fali UNQUALIFIED
Deepesh O PerinGermanyElwin Sharvill UNQUALIFIED
Francesco D MaletArgentinaBernardo Dominic NEW
Isabel S PerinFranceStephen Shaw QUALIFIED
Salvatore A StensethSpainBernardo Dominic NEW
Greenwood S MaletCanadaBernardo Dominic RENEWAL
Frozen Columns
Name
Jennifer O Glick
Julie V Albares
Arvin N Morasca
Maisha I Malet
Cody R Vocelka
Sinclair B Whobrey
Mayumi N Stenseth
Kaitlin T Gillian
David Z Sergi
Silvio W Vocelka
Claire C Shinko
Deepesh R Royster
Faith T Inouye
Chavez R Malet
Ivar Q Inouye
Darci X Ferencz
Maisha Q Butt
Maisha O Oldroyd
Kaitlin B Nestle
Aditya M Perin
Faith V Schemmer
Costa K Garufi
Arvin W Caldarera
Faith G Chui
Alejandro N Venere
Isabel M Gillian
Claire Y Tollner
Greenwood Y Paprocki
Misaki R Caldarera
Munro K Waycott
Darci O Nicka
Leja N Bowley
Cody G Glick
Aika A Iturbide
Mujtaba D Foller
Antonio R Paprocki
Octavia D Garufi
Cody B Perin
Octavia N Slusarski
Rodrigues W Briddick
Munro Q Albares
Costa A Perin
Aruna N Bowley
Jennifer A Stenseth
Jennifer S Amigon
Antonio V Darakjy
Francesco W Garufi
Julie O Stenseth
Jennifer Y Glick
Julie O Rim
IdCountryDate
1000India2026-06-28
1001Argentina2026-07-01
1002India2026-06-13
1003Spain2026-07-02
1004India2026-07-02
1005France2026-06-26
1006India2026-06-21
1007Russia2026-06-29
1008United Kingdom2026-06-29
1009Canada2026-06-19
1010France2026-07-11
1011Germany2026-06-25
1012Australia2026-06-12
1013United Kingdom2026-06-15
1014Brazil2026-06-24
1015Australia2026-06-14
1016India2026-06-27
1017Spain2026-06-30
1018Germany2026-06-13
1019Canada2026-07-06
1020Australia2026-06-23
1021Italy2026-07-09
1022Japan2026-07-09
1023Brazil2026-07-11
1024United Kingdom2026-07-05
1025Russia2026-06-25
1026India2026-06-22
1027India2026-06-16
1028Germany2026-07-01
1029Japan2026-06-16
1030United Kingdom2026-07-02
1031India2026-06-29
1032Japan2026-06-16
1033Italy2026-07-09
1034Canada2026-06-22
1035Spain2026-06-28
1036France2026-06-29
1037Australia2026-06-30
1038Canada2026-06-30
1039Spain2026-07-06
1040India2026-06-18
1041Spain2026-06-15
1042India2026-06-14
1043Russia2026-06-19
1044Russia2026-06-30
1045Australia2026-07-08
1046Argentina2026-06-18
1047Spain2026-06-25
1048France2026-07-05
1049Italy2026-07-02

On-Demand Data

NameIdCountryDate
Jeanfrancois B Bolognia1000Spain2026-06-17
Murillo I Saylors1001France2026-07-04
Octavia H Kolmetz1002Canada2026-06-22
David Y Waycott1003India2026-07-05
Julie F Doe1004Argentina2026-07-01
Mujtaba F Perin1005Germany2026-06-13
Izzy K Poquette1006Germany2026-06-14
Kaitlin T Gillian1007France2026-06-25
Chavez M Stenseth1008Spain2026-07-07
Antonio T Waycott1009Australia2026-06-26
Kaitlin J Gillian1010Australia2026-06-23
Mujtaba D Rim1011India2026-06-23
Sinclair B Chui1012Brazil2026-06-26
Leja K Nicka1013Spain2026-06-20
Morrow X Garufi1014Russia2026-07-07
Murillo L Bowley1015Japan2026-06-15
Kadeem U Butt1016Brazil2026-07-04
Emily Y Kolmetz1017Australia2026-06-13
Munro I Foller1018India2026-06-12
Aruna W Bolognia1019Italy2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire G DarakjyFranceIoni Bowcher NEW
Aika Z WieserUnited KingdomIvan Magalhaes UNQUALIFIED
Julie M BowleyJapanOnyama Limba NEW
Leja C WaycottRussiaAsiya Javayant NEW
Leja O MorascaBrazilXuxue Feng RENEWAL
Smith M DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Kaitlin X ButtIndiaBernardo Dominic PROPOSAL
Maisha F WaycottGermanyIvan Magalhaes RENEWAL
Faith X GarufiBrazilElwin Sharvill NEGOTIATION
Ashley V PoquetteJapanStephen Shaw QUALIFIED
Misaki G SaylorsCanadaXuxue Feng QUALIFIED
Deepesh V DoeJapanAsiya Javayant UNQUALIFIED
Munro X RimArgentinaElwin Sharvill QUALIFIED
Claire D GillianGermanyAmy Elsner PROPOSAL
James I AlbaresArgentinaIvan Magalhaes RENEWAL
Sinclair Z MarrierCanadaIoni Bowcher PROPOSAL
Isabel N MorascaIndiaAsiya Javayant RENEWAL
Wickens D DilliardRussiaXuxue Feng NEW
Mayumi V OldroydSpainIoni Bowcher PROPOSAL
Aditya G PaprockiArgentinaIoni Bowcher NEGOTIATION
Faith E MaletJapanElwin Sharvill NEGOTIATION
Jeanfrancois Y MorascaSpainBernardo Dominic UNQUALIFIED
Costa A DilliardFranceAsiya Javayant NEW
Chavez X WaycottUnited KingdomStephen Shaw NEW
Salvatore O CaudyItalyXuxue Feng UNQUALIFIED
Octavia M MorascaJapanAsiya Javayant PROPOSAL
Greenwood D MacleadCanadaAsiya Javayant NEW
Costa L BologniaBrazilAsiya Javayant RENEWAL
Adams Q MorascaItalyStephen Shaw PROPOSAL
Ivar Y MacleadBrazilAmy Elsner RENEWAL
Wickens I RoysterRussiaAmy Elsner QUALIFIED
Cody V FlosiRussiaBernardo Dominic NEGOTIATION
Adams A MaletCanadaStephen Shaw QUALIFIED
Deepesh Z WhobreySpainOnyama Limba NEGOTIATION
Antonio U OstroskyBrazilOnyama Limba UNQUALIFIED
Kaitlin R KolmetzJapanOnyama Limba QUALIFIED
Jeanfrancois X IturbideBrazilAnna Fali RENEWAL
Salvatore K RulapaughCanadaXuxue Feng NEGOTIATION
Leja S WaycottItalyOnyama Limba NEW
Claire U MaletGermanyXuxue Feng NEW

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