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
Juan K GarufiArgentinaElwin Sharvill RENEWAL
Adams L GlickGermanyIvan Magalhaes UNQUALIFIED
Costa O BologniaGermanyAsiya Javayant NEW
Salvatore F ChuiFranceIoni Bowcher NEGOTIATION
Jennifer I CaudyAustraliaAmy Elsner PROPOSAL
Morrow E InouyeRussiaIoni Bowcher NEGOTIATION
Costa E TollnerRussiaElwin Sharvill RENEWAL
Arvin V FigeroaBrazilBernardo Dominic UNQUALIFIED
Greenwood P CaldareraArgentinaOnyama Limba RENEWAL
Ashley C FerenczGermanyAsiya Javayant PROPOSAL
Silvio S RimItalyOnyama Limba QUALIFIED
Jones G DoeJapanAsiya Javayant RENEWAL
Leon M StockhamArgentinaBernardo Dominic RENEWAL
Cody C RulapaughCanadaAmy Elsner PROPOSAL
James K MarrierUnited KingdomIvan Magalhaes PROPOSAL
Isabel O AmigonJapanIvan Magalhaes QUALIFIED
Kadeem L SergiCanadaOnyama Limba UNQUALIFIED
Deepesh W OstroskyIndiaAsiya Javayant PROPOSAL
Izzy J ButtJapanXuxue Feng NEGOTIATION
Salvatore S SaylorsJapanElwin Sharvill RENEWAL
Aditya X FlosiGermanyIvan Magalhaes RENEWAL
Rodrigues P BriddickIndiaElwin Sharvill NEW
Jones P SlusarskiFranceElwin Sharvill PROPOSAL
Claire T BologniaSpainIvan Magalhaes RENEWAL
Silvio S AlbaresFranceIvan Magalhaes NEGOTIATION
Adams Z AlbaresRussiaElwin Sharvill QUALIFIED
Ashley S OstroskyBrazilIoni Bowcher PROPOSAL
Ricardo D BriddickIndiaAmy Elsner RENEWAL
Alejandro L DarakjyUnited KingdomOnyama Limba QUALIFIED
Wickens A DoeFranceStephen Shaw RENEWAL
Aruna G MaletSpainStephen Shaw NEGOTIATION
Cody S KolmetzIndiaOnyama Limba NEW
Claire H WaycottItalyAsiya Javayant PROPOSAL
Darci Y AmigonArgentinaBernardo Dominic RENEWAL
Claire S VocelkaFranceAnna Fali RENEWAL
Izzy O BriddickItalyAnna Fali RENEWAL
James I PerinFranceAsiya Javayant PROPOSAL
Johnson T ShinkoJapanOnyama Limba UNQUALIFIED
Maisha F WieserArgentinaIoni Bowcher NEGOTIATION
Ivar X MarrierRussiaAsiya Javayant PROPOSAL
Aruna T PoquetteUnited KingdomBernardo Dominic NEW
Ivar T CaldareraCanadaAmy Elsner PROPOSAL
Isabel P FollerRussiaAsiya Javayant NEW
Munro C SlusarskiGermanyElwin Sharvill QUALIFIED
Rodrigues E GauchoJapanAsiya Javayant QUALIFIED
Antonio F FlosiJapanOnyama Limba PROPOSAL
Julie L MaletAustraliaStephen Shaw UNQUALIFIED
Julie U IturbideItalyElwin Sharvill NEW
Sinclair M InouyeCanadaAmy Elsner RENEWAL
Sinclair E CaldareraCanadaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aditya B KolmetzItalyElwin Sharvill NEGOTIATION
Jennifer F TollnerRussiaStephen Shaw PROPOSAL
Kaitlin S OldroydUnited KingdomAsiya Javayant QUALIFIED
Salvatore G ChuiCanadaAsiya Javayant QUALIFIED
Ivar X MaletItalyIoni Bowcher NEW
Leja E NestleGermanyAnna Fali NEGOTIATION
Darci U FollerUnited KingdomAsiya Javayant RENEWAL
Costa Z WieserJapanBernardo Dominic RENEWAL
Murillo U InouyeSpainAmy Elsner NEGOTIATION
Johnson X RoysterFranceIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens W ButtBrazil2025-06-07Morlong Associates NEW36Ivan Magalhaes
1001Leja B StensethFrance2025-05-29Benton, John B Jr PROPOSAL16Elwin Sharvill
1002Maria N BowleyItaly2025-05-23Feltz Printing Service NEW59Ioni Bowcher
1003Juan V CaldareraIndia2025-05-30Dorl, James J Esq PROPOSAL76Amy Elsner
1004Emily C StensethCanada2025-05-25Chapman, Ross E Esq NEW39Bernardo Dominic
1005Claire B GillianJapan2025-05-18Feiner Bros PROPOSAL6Ioni Bowcher
1006Stacey O ShinkoRussia2025-05-26Printing Dimensions QUALIFIED50Bernardo Dominic
1007Misaki J CampainCanada2025-05-16Chapman, Ross E Esq NEGOTIATION48Ioni Bowcher
1008Jefferson H VocelkaAustralia2025-05-31Buckley Miller Wright UNQUALIFIED15Ioni Bowcher
1009Jefferson F AlbaresJapan2025-06-14Morlong Associates NEW95Ioni Bowcher
1010Aruna W AmigonArgentina2025-06-03Feltz Printing Service PROPOSAL76Xuxue Feng
1011Silvio W MaletUnited Kingdom2025-06-03King, Christopher A Esq NEGOTIATION9Ioni Bowcher
1012Nicolas A FlosiItaly2025-06-05Chanay, Jeffrey A Esq UNQUALIFIED52Bernardo Dominic
1013Francesco E KolmetzIndia2025-06-13Chemel, James L Cpa RENEWAL99Onyama Limba
1014Salvatore O VocelkaSpain2025-05-29Rousseaux, Michael Esq NEW47Onyama Limba
1015Mujtaba X VenereBrazil2025-05-21Dorl, James J Esq NEW69Anna Fali
1016Nicolas N PoquetteJapan2025-05-18Rousseaux, Michael Esq PROPOSAL53Ivan Magalhaes
1017Cody Y CaldareraGermany2025-05-21Feiner Bros UNQUALIFIED78Xuxue Feng
1018Aika L ChuiBrazil2025-05-31Feiner Bros UNQUALIFIED6Asiya Javayant
1019Salvatore Q AlbaresJapan2025-05-18Truhlar And Truhlar Attys PROPOSAL22Asiya Javayant
1020Kaitlin Q RulapaughGermany2025-05-24Morlong Associates QUALIFIED28Ioni Bowcher
1021Leja W GillianSpain2025-05-18Buckley Miller Wright QUALIFIED76Xuxue Feng
1022Greenwood G FollerRussia2025-05-16Commercial Press RENEWAL77Stephen Shaw
1023Ricardo H FigeroaUnited Kingdom2025-06-01Chapman, Ross E Esq RENEWAL54Anna Fali
1024Kadeem M DilliardArgentina2025-06-04Rousseaux, Michael Esq RENEWAL38Asiya Javayant
1025Deepesh Q RulapaughGermany2025-06-06Rousseaux, Michael Esq QUALIFIED44Ioni Bowcher
1026Morrow B StockhamItaly2025-05-21Benton, John B Jr RENEWAL65Ivan Magalhaes
1027Claire Q RimAustralia2025-05-19Truhlar And Truhlar Attys UNQUALIFIED34Xuxue Feng
1028Isabel B GlickRussia2025-06-06King, Christopher A Esq RENEWAL69Bernardo Dominic
1029Julie F InouyeAustralia2025-05-23Chanay, Jeffrey A Esq NEW63Bernardo Dominic
1030Francesco E GauchoUnited Kingdom2025-05-21Feltz Printing Service UNQUALIFIED36Asiya Javayant
1031Tony X CaldareraSpain2025-05-22Rangoni Of Florence PROPOSAL14Asiya Javayant
1032Mayumi I RutaFrance2025-06-13Rangoni Of Florence NEW51Ioni Bowcher
1033Maisha L FerenczCanada2025-05-18Feltz Printing Service NEGOTIATION62Amy Elsner
1034Tony F BowleyIndia2025-05-24Rangoni Of Florence NEGOTIATION19Amy Elsner
1035Stacey B StockhamAustralia2025-05-28Chanay, Jeffrey A Esq RENEWAL10Ivan Magalhaes
1036Ricardo Q PerinAustralia2025-06-09Buckley Miller Wright NEGOTIATION46Ivan Magalhaes
1037Mujtaba O WhobreyJapan2025-05-21Chemel, James L Cpa PROPOSAL93Anna Fali
1038Arvin U PerinArgentina2025-05-30Truhlar And Truhlar Attys RENEWAL76Anna Fali
1039Salvatore K CaldareraRussia2025-06-06Buckley Miller Wright UNQUALIFIED75Stephen Shaw
1040Tony X WhobreyBrazil2025-06-12Rousseaux, Michael Esq NEGOTIATION85Anna Fali
1041Morrow X PoquetteAustralia2025-05-21Dorl, James J Esq RENEWAL33Asiya Javayant
1042Mujtaba M BologniaArgentina2025-05-26Feltz Printing Service QUALIFIED83Xuxue Feng
1043Deepesh R FigeroaGermany2025-06-04King, Christopher A Esq PROPOSAL47Asiya Javayant
1044Darci V ShinkoFrance2025-06-04Truhlar And Truhlar Attys QUALIFIED89Elwin Sharvill
1045Silvio E SaylorsSpain2025-06-06King, Christopher A Esq RENEWAL30Ivan Magalhaes
1046Murillo L NestleIndia2025-05-16Chemel, James L Cpa UNQUALIFIED58Asiya Javayant
1047Chavez R PaprockiUnited Kingdom2025-05-18Feiner Bros RENEWAL21Stephen Shaw
1048Jefferson P RoysterIndia2025-06-14Dorl, James J Esq NEGOTIATION12Bernardo Dominic
1049Salvatore Z PoquetteFrance2025-06-05Rousseaux, Michael Esq NEW28Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Nicolas N NickaRussiaStephen Shaw PROPOSAL
Salvatore Z SchemmerJapanIvan Magalhaes PROPOSAL
Morrow Z IturbideSpainAsiya Javayant UNQUALIFIED
Murillo I VenereRussiaXuxue Feng UNQUALIFIED
Leja I BologniaFranceAsiya Javayant NEW
Mayumi P PoquetteSpainIvan Magalhaes UNQUALIFIED
Salvatore U GlickGermanyXuxue Feng RENEWAL
Kaitlin O SlusarskiItalyElwin Sharvill PROPOSAL
Ricardo Z AmigonRussiaOnyama Limba RENEWAL
Aika B GauchoItalyOnyama Limba QUALIFIED
Murillo W BriddickItalyStephen Shaw NEGOTIATION
Mayumi B FollerBrazilOnyama Limba NEGOTIATION
Claire H GillianJapanAnna Fali RENEWAL
Clifford G GlickCanadaOnyama Limba NEW
Emily B NestleArgentinaXuxue Feng NEGOTIATION
Isabel N ChuiItalyAnna Fali RENEWAL
Wickens U BologniaArgentinaIvan Magalhaes NEW
Morrow F CaudyIndiaElwin Sharvill QUALIFIED
Sinclair J StensethArgentinaBernardo Dominic RENEWAL
Kaitlin L RulapaughRussiaAsiya Javayant NEW
David I BowleyUnited KingdomIoni Bowcher UNQUALIFIED
Munro K AlbaresRussiaAsiya Javayant PROPOSAL
Isabel V MacleadJapanOnyama Limba NEW
Sinclair P ButtFranceBernardo Dominic RENEWAL
Kadeem W FollerItalyOnyama Limba PROPOSAL
Adams F PoquetteArgentinaAsiya Javayant PROPOSAL
Octavia V FlosiIndiaAsiya Javayant NEW
Ricardo U PaprockiIndiaStephen Shaw NEW
Aika L MarrierJapanAsiya Javayant UNQUALIFIED
Izzy O FerenczUnited KingdomXuxue Feng RENEWAL
Ashley N NestleRussiaAsiya Javayant PROPOSAL
Emily T WieserUnited KingdomIvan Magalhaes RENEWAL
Jennifer E NickaUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin L AmigonCanadaIvan Magalhaes NEW
Sinclair M CaudyItalyIvan Magalhaes NEGOTIATION
Isabel S VenereBrazilAmy Elsner UNQUALIFIED
David P AmigonCanadaXuxue Feng NEGOTIATION
Rodrigues R VocelkaJapanBernardo Dominic UNQUALIFIED
Munro O GauchoUnited KingdomElwin Sharvill QUALIFIED
Tony B BowleyRussiaAsiya Javayant RENEWAL
Isabel F CaldareraBrazilIvan Magalhaes RENEWAL
James J PoquetteRussiaStephen Shaw QUALIFIED
Antonio A FerenczSpainAmy Elsner PROPOSAL
Morrow I RutaFranceAmy Elsner UNQUALIFIED
Aditya Q MarrierArgentinaXuxue Feng PROPOSAL
Leja B SlusarskiItalyStephen Shaw NEW
Faith I MarrierUnited KingdomElwin Sharvill QUALIFIED
Morrow W GauchoSpainElwin Sharvill RENEWAL
Leon I InouyeBrazilXuxue Feng QUALIFIED
David O PoquetteJapanIvan Magalhaes RENEWAL
Frozen Columns
Name
Darci K Nicka
Cody Z Inouye
Faith S Ferencz
Johnson L Nicka
Mayumi B Nicka
Cody U Royster
Leon L Royster
Faith E Sergi
Octavia H Saylors
Leon N Iturbide
David G Bowley
Antonio J Flosi
Faith J Poquette
Maisha N Nestle
Cody A Malet
Adams B Nicka
Nicolas L Tollner
Wickens R Malet
Tony E Campain
Juan K Figeroa
Aruna K Chui
Munro Q Glick
Adams X Wieser
Munro B Flosi
Wickens H Ferencz
Wickens N Morasca
Kadeem H Whobrey
Kaitlin U Figeroa
Izzy X Doe
Jennifer U Tollner
Maisha T Amigon
Antonio M Stenseth
Greenwood F Inouye
Wickens T Figeroa
James N Glick
Kadeem Z Waycott
Leon B Inouye
Aika E Caudy
Deepesh N Gillian
Maisha V Campain
Ashley J Gaucho
Emily G Rulapaugh
Juan L Nestle
Sinclair X Malet
Emily G Paprocki
Julie G Doe
Adams W Albares
Nicolas C Flosi
Jones Z Whobrey
Faith M Whobrey
IdCountryDate
1000Brazil2025-06-12
1001Australia2025-05-31
1002Australia2025-06-14
1003Russia2025-06-08
1004Italy2025-06-11
1005United Kingdom2025-06-08
1006Argentina2025-05-22
1007Germany2025-06-09
1008Argentina2025-05-31
1009Australia2025-06-08
1010Brazil2025-05-17
1011Italy2025-05-25
1012Russia2025-05-28
1013India2025-05-19
1014India2025-06-01
1015Russia2025-06-02
1016Spain2025-05-28
1017India2025-06-07
1018Australia2025-06-01
1019India2025-05-26
1020Italy2025-06-03
1021France2025-06-07
1022Brazil2025-05-18
1023Australia2025-06-09
1024Germany2025-05-16
1025Argentina2025-06-03
1026Germany2025-06-06
1027United Kingdom2025-06-08
1028United Kingdom2025-05-31
1029United Kingdom2025-05-18
1030United Kingdom2025-05-17
1031Spain2025-05-31
1032Germany2025-06-02
1033Spain2025-06-12
1034France2025-06-08
1035France2025-06-01
1036France2025-05-26
1037Italy2025-06-14
1038Germany2025-06-11
1039Australia2025-05-21
1040Russia2025-05-29
1041Brazil2025-05-21
1042Japan2025-05-23
1043Russia2025-06-06
1044Australia2025-06-13
1045Germany2025-05-31
1046Germany2025-06-02
1047Italy2025-05-28
1048Russia2025-05-19
1049Spain2025-06-06

On-Demand Data

NameIdCountryDate
Clifford Y Bolognia1000Spain2025-06-09
Francesco O Garufi1001Spain2025-05-23
Chavez T Waycott1002Italy2025-05-26
Aika G Inouye1003France2025-05-21
Aruna N Gillian1004Brazil2025-05-23
Jones L Royster1005Italy2025-05-30
Johnson D Shinko1006Russia2025-06-05
Ivar Y Royster1007Germany2025-06-05
Kadeem F Poquette1008Russia2025-05-23
Rodrigues D Malet1009Brazil2025-05-20
Clifford Q Poquette1010Australia2025-05-17
Francesco R Kusko1011United Kingdom2025-06-14
Tony I Caldarera1012Spain2025-06-05
Aika I Kolmetz1013United Kingdom2025-05-22
Rodrigues C Saylors1014Russia2025-06-05
Deepesh Z Kusko1015Australia2025-05-31
Jeanfrancois K Slusarski1016Spain2025-05-25
Jefferson W Perin1017United Kingdom2025-06-04
Arvin Q Ostrosky1018Italy2025-06-11
Salvatore I Marrier1019Argentina2025-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow P MaletItalyXuxue Feng QUALIFIED
James N AmigonJapanIvan Magalhaes NEW
Francesco C WhobreyJapanAnna Fali RENEWAL
Stacey M ButtAustraliaAnna Fali QUALIFIED
Maria U StensethItalyOnyama Limba NEGOTIATION
Aruna W MorascaSpainBernardo Dominic RENEWAL
Aditya A AlbaresIndiaStephen Shaw UNQUALIFIED
Maria W GauchoRussiaIvan Magalhaes NEGOTIATION
Wickens G RoysterFranceAnna Fali UNQUALIFIED
Jefferson E FigeroaAustraliaBernardo Dominic NEW
Maisha U FollerSpainElwin Sharvill QUALIFIED
Darci Y NickaAustraliaXuxue Feng RENEWAL
Alejandro U FigeroaCanadaAmy Elsner RENEWAL
Tony R SchemmerItalyAmy Elsner RENEWAL
Faith B IturbideSpainBernardo Dominic NEGOTIATION
Rodrigues S RulapaughUnited KingdomAsiya Javayant NEGOTIATION
Salvatore M ChuiArgentinaAnna Fali NEGOTIATION
Maisha N ChuiCanadaAmy Elsner QUALIFIED
Juan W RoysterItalyElwin Sharvill NEGOTIATION
Johnson E BriddickIndiaBernardo Dominic NEW
Darci B ButtCanadaOnyama Limba PROPOSAL
Stacey L SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Cody D OldroydGermanyAmy Elsner NEW
Emily O SaylorsArgentinaAsiya Javayant NEW
Faith K AlbaresItalyIoni Bowcher UNQUALIFIED
Morrow J BowleyAustraliaStephen Shaw PROPOSAL
Julie B SlusarskiItalyOnyama Limba NEGOTIATION
Octavia J OstroskyIndiaElwin Sharvill UNQUALIFIED
Cody M FlosiBrazilStephen Shaw NEGOTIATION
Mujtaba M GauchoGermanyAnna Fali UNQUALIFIED
Darci H KolmetzFranceElwin Sharvill UNQUALIFIED
Johnson G RulapaughGermanyAnna Fali QUALIFIED
Arvin X FigeroaAustraliaAsiya Javayant NEW
Nicolas W PerinRussiaAnna Fali NEGOTIATION
Costa K MaletRussiaIvan Magalhaes NEW
Sinclair V FigeroaItalyXuxue Feng NEW
Wickens V RulapaughCanadaIvan Magalhaes PROPOSAL
Greenwood F SchemmerGermanyAnna Fali RENEWAL
Izzy W MorascaUnited KingdomAmy Elsner QUALIFIED
Izzy D StockhamIndiaElwin Sharvill PROPOSAL

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