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
Leja Q WieserAustraliaAsiya Javayant PROPOSAL
Alejandro U AlbaresSpainBernardo Dominic NEW
Sinclair D GarufiUnited KingdomStephen Shaw RENEWAL
Greenwood M ButtIndiaIoni Bowcher PROPOSAL
Jones F KuskoGermanyStephen Shaw NEW
Jeanfrancois K FlosiRussiaIoni Bowcher NEW
Costa H AlbaresJapanBernardo Dominic UNQUALIFIED
Leja R OstroskyJapanIoni Bowcher UNQUALIFIED
Adams A VenereGermanyAsiya Javayant PROPOSAL
Munro E CaudyAustraliaIoni Bowcher PROPOSAL
Johnson N ChuiFranceStephen Shaw PROPOSAL
Sinclair B OstroskyRussiaIoni Bowcher RENEWAL
Clifford A GarufiSpainAsiya Javayant NEGOTIATION
Murillo C ButtGermanyIvan Magalhaes QUALIFIED
Jefferson Y NestleCanadaOnyama Limba NEW
Sinclair H IturbideFranceElwin Sharvill RENEWAL
Ivar P VocelkaSpainStephen Shaw NEW
Darci K MacleadGermanyElwin Sharvill QUALIFIED
Jeanfrancois B DarakjyUnited KingdomAsiya Javayant NEW
Kadeem O ShinkoGermanyAsiya Javayant NEW
Ashley A GauchoUnited KingdomAnna Fali NEGOTIATION
Faith N RimRussiaStephen Shaw QUALIFIED
Emily Q RulapaughFranceOnyama Limba QUALIFIED
Cody G StensethArgentinaBernardo Dominic RENEWAL
Maisha X GillianArgentinaStephen Shaw RENEWAL
Deepesh H RimRussiaXuxue Feng QUALIFIED
Salvatore N NickaArgentinaAsiya Javayant RENEWAL
Octavia Q GauchoFranceBernardo Dominic QUALIFIED
Maisha F NickaIndiaOnyama Limba UNQUALIFIED
Aika O MarrierAustraliaBernardo Dominic RENEWAL
Octavia V OldroydCanadaAmy Elsner UNQUALIFIED
Nicolas M AlbaresCanadaAmy Elsner NEW
Leon Y DilliardSpainIvan Magalhaes NEGOTIATION
Alejandro L PoquetteUnited KingdomXuxue Feng PROPOSAL
Greenwood L GarufiUnited KingdomStephen Shaw UNQUALIFIED
Smith Q PerinGermanyXuxue Feng PROPOSAL
Darci G PerinRussiaBernardo Dominic RENEWAL
Ricardo M MacleadBrazilIvan Magalhaes QUALIFIED
Maisha F StockhamItalyIvan Magalhaes RENEWAL
Leja O NestleIndiaAsiya Javayant QUALIFIED
Clifford E ButtSpainStephen Shaw UNQUALIFIED
Jeanfrancois I AmigonAustraliaAmy Elsner RENEWAL
Octavia P IturbideIndiaAsiya Javayant NEGOTIATION
Faith I DilliardAustraliaIoni Bowcher RENEWAL
Emily B PerinFranceIoni Bowcher QUALIFIED
Clifford X StockhamBrazilStephen Shaw NEGOTIATION
Ashley H FerenczArgentinaElwin Sharvill NEW
Aditya S VenereIndiaAmy Elsner RENEWAL
Cody K MacleadItalyAsiya Javayant QUALIFIED
Mujtaba A SergiAustraliaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Antonio C DoeRussiaStephen Shaw QUALIFIED
Jones G SchemmerGermanyElwin Sharvill NEGOTIATION
Nicolas G SchemmerBrazilXuxue Feng UNQUALIFIED
Maisha I RoysterSpainIvan Magalhaes PROPOSAL
Salvatore W SchemmerIndiaAmy Elsner UNQUALIFIED
Cody B VocelkaAustraliaIoni Bowcher NEW
Sinclair V CaudyAustraliaIvan Magalhaes NEW
Misaki U SaylorsAustraliaStephen Shaw PROPOSAL
Antonio L KolmetzFranceXuxue Feng RENEWAL
Silvio G KuskoCanadaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith L FlosiIndia2026-07-11Commercial Press PROPOSAL51Ioni Bowcher
1001Morrow N GarufiRussia2026-07-12Chapman, Ross E Esq QUALIFIED79Asiya Javayant
1002Maria V SergiBrazil2026-07-13Printing Dimensions QUALIFIED20Onyama Limba
1003Alejandro U WhobreyIndia2026-07-16Rangoni Of Florence UNQUALIFIED5Ioni Bowcher
1004Morrow N CampainAustralia2026-07-10Printing Dimensions UNQUALIFIED15Asiya Javayant
1005Mujtaba N WaycottItaly2026-07-07Commercial Press NEGOTIATION18Elwin Sharvill
1006Aika Q AmigonFrance2026-07-11Commercial Press NEGOTIATION59Elwin Sharvill
1007Morrow X MaletCanada2026-07-18Feltz Printing Service RENEWAL10Anna Fali
1008Leon C VocelkaJapan2026-07-21Morlong Associates PROPOSAL90Anna Fali
1009Ashley F IturbideBrazil2026-06-27King, Christopher A Esq PROPOSAL60Elwin Sharvill
1010Adams G MorascaIndia2026-07-08Feltz Printing Service QUALIFIED99Stephen Shaw
1011Sinclair F FollerUnited Kingdom2026-07-15Chapman, Ross E Esq RENEWAL70Ivan Magalhaes
1012Darci B BologniaUnited Kingdom2026-06-22Feiner Bros NEW15Onyama Limba
1013James G MorascaUnited Kingdom2026-07-10Printing Dimensions RENEWAL98Stephen Shaw
1014James S MorascaSpain2026-06-22Chapman, Ross E Esq RENEWAL91Anna Fali
1015Jones N InouyeUnited Kingdom2026-07-06Dorl, James J Esq RENEWAL41Anna Fali
1016Kaitlin S TollnerFrance2026-06-24Commercial Press RENEWAL29Bernardo Dominic
1017Maisha M MaletItaly2026-07-13Feiner Bros NEW73Ioni Bowcher
1018Jefferson W MaletAustralia2026-07-03Feiner Bros NEGOTIATION79Onyama Limba
1019Aruna O BowleyBrazil2026-07-14Chapman, Ross E Esq RENEWAL94Ioni Bowcher
1020Jefferson E DilliardCanada2026-06-24Benton, John B Jr NEW3Elwin Sharvill
1021Octavia K PaprockiCanada2026-07-01Feiner Bros UNQUALIFIED84Bernardo Dominic
1022Smith V AmigonAustralia2026-07-12Morlong Associates NEGOTIATION13Ioni Bowcher
1023Cody Z FerenczJapan2026-06-26Rangoni Of Florence NEGOTIATION14Ivan Magalhaes
1024Nicolas J SchemmerRussia2026-07-16Morlong Associates UNQUALIFIED89Ivan Magalhaes
1025Nicolas R BowleyUnited Kingdom2026-07-11King, Christopher A Esq NEW33Amy Elsner
1026Wickens J PerinGermany2026-07-08Chemel, James L Cpa NEGOTIATION29Onyama Limba
1027Chavez Y MaletSpain2026-07-10Chanay, Jeffrey A Esq NEGOTIATION74Xuxue Feng
1028Jennifer K SaylorsItaly2026-06-23Benton, John B Jr UNQUALIFIED22Bernardo Dominic
1029Jones L WieserArgentina2026-07-17Feiner Bros QUALIFIED9Elwin Sharvill
1030Leja T IturbideRussia2026-06-25Feiner Bros RENEWAL8Ioni Bowcher
1031Aika X CaldareraJapan2026-07-08King, Christopher A Esq UNQUALIFIED89Bernardo Dominic
1032Costa Y AlbaresCanada2026-07-19Buckley Miller Wright PROPOSAL9Ivan Magalhaes
1033David P VocelkaAustralia2026-07-03Feltz Printing Service NEGOTIATION74Ivan Magalhaes
1034David C MaletArgentina2026-07-11Buckley Miller Wright UNQUALIFIED6Ioni Bowcher
1035Wickens P DoeGermany2026-06-23Benton, John B Jr UNQUALIFIED19Xuxue Feng
1036Wickens M VocelkaAustralia2026-07-11Chemel, James L Cpa QUALIFIED47Stephen Shaw
1037Ivar L KuskoRussia2026-07-18Feiner Bros UNQUALIFIED64Ioni Bowcher
1038Sinclair K MacleadFrance2026-07-08Truhlar And Truhlar Attys RENEWAL87Bernardo Dominic
1039Izzy F DoeArgentina2026-06-23Morlong Associates QUALIFIED39Xuxue Feng
1040Rodrigues U MarrierArgentina2026-06-27Chemel, James L Cpa PROPOSAL75Xuxue Feng
1041Greenwood V ShinkoCanada2026-07-03Commercial Press RENEWAL75Bernardo Dominic
1042Kaitlin I VocelkaJapan2026-07-02Printing Dimensions NEGOTIATION95Xuxue Feng
1043Ricardo K BriddickJapan2026-07-09Morlong Associates NEGOTIATION79Asiya Javayant
1044Maria W VenereSpain2026-07-03Feiner Bros PROPOSAL87Ivan Magalhaes
1045Leon X SaylorsArgentina2026-07-11King, Christopher A Esq PROPOSAL25Amy Elsner
1046Kadeem H BologniaArgentina2026-07-14Feltz Printing Service RENEWAL45Bernardo Dominic
1047Alejandro M StockhamRussia2026-07-20Chanay, Jeffrey A Esq NEGOTIATION5Onyama Limba
1048Juan T MorascaGermany2026-07-17Feltz Printing Service QUALIFIED83Bernardo Dominic
1049Kadeem A MarrierFrance2026-07-17Feiner Bros NEGOTIATION54Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jennifer Y SaylorsRussiaBernardo Dominic PROPOSAL
Darci D GauchoUnited KingdomElwin Sharvill RENEWAL
Maria V BowleyFranceAmy Elsner NEGOTIATION
Maria N OstroskyAustraliaAmy Elsner NEW
Greenwood J DarakjyIndiaBernardo Dominic RENEWAL
Munro P MarrierUnited KingdomAmy Elsner NEW
Faith T RimRussiaIvan Magalhaes NEW
Maisha U NickaArgentinaStephen Shaw PROPOSAL
Deepesh C GauchoArgentinaAnna Fali PROPOSAL
Arvin C StensethJapanStephen Shaw NEW
Julie H WaycottSpainAnna Fali UNQUALIFIED
Alejandro O SergiRussiaStephen Shaw NEW
Silvio R NickaItalyOnyama Limba UNQUALIFIED
Deepesh L KolmetzSpainBernardo Dominic UNQUALIFIED
Arvin Q MaletArgentinaAmy Elsner UNQUALIFIED
Kadeem G DarakjyJapanAmy Elsner RENEWAL
Jeanfrancois R StockhamSpainAmy Elsner UNQUALIFIED
Mujtaba J GlickFranceAsiya Javayant NEGOTIATION
Adams E SchemmerUnited KingdomStephen Shaw PROPOSAL
Costa E WaycottRussiaStephen Shaw NEW
Ricardo K NickaUnited KingdomIoni Bowcher NEGOTIATION
Clifford Y VenereFranceBernardo Dominic NEW
Julie I ChuiAustraliaElwin Sharvill RENEWAL
Leon H IturbideArgentinaXuxue Feng NEGOTIATION
Claire B WhobreyAustraliaOnyama Limba NEW
Jeanfrancois A WaycottRussiaIoni Bowcher UNQUALIFIED
James D AlbaresBrazilIvan Magalhaes UNQUALIFIED
Antonio D MacleadItalyStephen Shaw RENEWAL
Leon Y MorascaUnited KingdomElwin Sharvill RENEWAL
James A VocelkaBrazilAsiya Javayant UNQUALIFIED
Kadeem I GarufiFranceElwin Sharvill QUALIFIED
Arvin H VenereItalyIoni Bowcher NEGOTIATION
Costa Y DilliardIndiaStephen Shaw NEW
Jones H ButtItalyElwin Sharvill NEGOTIATION
Rodrigues Y RimSpainStephen Shaw RENEWAL
Izzy Q MarrierItalyIvan Magalhaes UNQUALIFIED
Juan W SchemmerCanadaOnyama Limba PROPOSAL
Costa N VenereCanadaAmy Elsner PROPOSAL
Emily T RutaItalyOnyama Limba NEGOTIATION
Salvatore D MaletUnited KingdomXuxue Feng NEW
Aruna Q FigeroaIndiaIvan Magalhaes RENEWAL
Aruna Q CaldareraFranceAsiya Javayant QUALIFIED
Munro J CampainArgentinaAmy Elsner PROPOSAL
Mayumi V PerinIndiaIvan Magalhaes NEW
Nicolas U KolmetzBrazilStephen Shaw UNQUALIFIED
Kadeem M FigeroaSpainOnyama Limba NEGOTIATION
Nicolas T ShinkoBrazilAmy Elsner NEW
Arvin D GarufiAustraliaXuxue Feng NEGOTIATION
Adams Y GlickBrazilOnyama Limba QUALIFIED
Emily C FollerAustraliaIvan Magalhaes RENEWAL
Frozen Columns
Name
Arvin F Maclead
Maisha H Sergi
Jennifer Q Maclead
Jeanfrancois E Chui
Aika N Gaucho
Aika Z Nicka
Misaki B Nicka
Jones I Whobrey
Maisha E Rim
Faith O Briddick
Antonio E Gaucho
Misaki N Paprocki
Mujtaba A Wieser
Murillo M Flosi
Kaitlin P Malet
Clifford Q Marrier
Faith U Ostrosky
Salvatore R Stockham
Aruna U Vocelka
Aditya I Maclead
Tony N Tollner
Tony N Dilliard
Juan H Royster
Faith S Butt
Isabel R Caldarera
James M Venere
Clifford F Caudy
Jones L Kusko
Salvatore F Glick
Kadeem B Darakjy
Faith G Gillian
Nicolas L Saylors
Claire W Gaucho
Salvatore P Whobrey
Clifford L Oldroyd
Greenwood U Vocelka
Jeanfrancois E Whobrey
Johnson L Waycott
Aika C Glick
Salvatore Y Chui
Darci V Rulapaugh
Chavez Q Rulapaugh
Arvin F Darakjy
Adams M Ostrosky
Greenwood G Inouye
Leja J Gillian
Jones X Iturbide
Munro V Bolognia
Maria P Stockham
James X Kusko
IdCountryDate
1000Argentina2026-07-02
1001United Kingdom2026-07-17
1002Russia2026-07-20
1003Japan2026-07-10
1004France2026-07-14
1005Italy2026-07-20
1006Italy2026-06-28
1007Germany2026-07-12
1008Canada2026-07-01
1009Canada2026-06-30
1010Germany2026-07-01
1011United Kingdom2026-07-17
1012Argentina2026-06-24
1013Germany2026-07-13
1014Brazil2026-07-11
1015Canada2026-07-19
1016India2026-07-01
1017United Kingdom2026-07-08
1018Brazil2026-07-12
1019United Kingdom2026-06-29
1020Russia2026-06-28
1021Germany2026-06-29
1022Canada2026-06-23
1023France2026-07-16
1024France2026-07-05
1025Russia2026-06-26
1026Argentina2026-07-03
1027France2026-07-08
1028Brazil2026-07-05
1029Australia2026-06-25
1030India2026-07-20
1031Russia2026-07-05
1032Brazil2026-07-08
1033United Kingdom2026-07-13
1034Germany2026-06-28
1035Italy2026-07-05
1036Japan2026-07-11
1037United Kingdom2026-07-07
1038Japan2026-07-20
1039Japan2026-07-11
1040Canada2026-06-29
1041Australia2026-07-21
1042Canada2026-06-29
1043Argentina2026-07-16
1044Canada2026-07-07
1045Russia2026-07-13
1046Argentina2026-07-14
1047Canada2026-07-17
1048Italy2026-07-08
1049Germany2026-07-04

On-Demand Data

NameIdCountryDate
Munro L Gillian1000Germany2026-07-04
Cody A Inouye1001France2026-07-06
Rodrigues U Poquette1002France2026-07-17
Ricardo T Schemmer1003Argentina2026-07-14
Munro A Marrier1004Germany2026-07-19
Leon S Nicka1005India2026-07-04
Francesco V Inouye1006Spain2026-06-30
Ivar M Flosi1007India2026-06-22
Mujtaba K Gillian1008France2026-07-12
Emily R Butt1009Russia2026-07-02
Isabel Q Iturbide1010Spain2026-07-09
Wickens X Stockham1011France2026-06-26
Chavez I Oldroyd1012Japan2026-06-28
Wickens Y Gillian1013Italy2026-07-02
Francesco M Garufi1014Australia2026-07-19
Ricardo B Foller1015United Kingdom2026-07-11
James A Poquette1016Canada2026-06-26
Maria N Vocelka1017United Kingdom2026-06-25
Jones W Doe1018Italy2026-06-26
Clifford S Albares1019United Kingdom2026-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily E FlosiBrazilIvan Magalhaes NEGOTIATION
Cody N NickaRussiaAnna Fali QUALIFIED
Clifford Z MorascaIndiaIoni Bowcher RENEWAL
Aruna O KolmetzCanadaOnyama Limba NEW
Stacey A SaylorsGermanyIvan Magalhaes NEW
Adams Y DarakjyFranceXuxue Feng RENEWAL
Jennifer K InouyeIndiaXuxue Feng QUALIFIED
Morrow V DoeArgentinaXuxue Feng RENEWAL
Ivar H BologniaRussiaBernardo Dominic PROPOSAL
Smith Y KolmetzJapanIoni Bowcher NEW
Claire Q OldroydSpainIoni Bowcher NEW
Aruna S SlusarskiFranceIvan Magalhaes RENEWAL
Adams U RimRussiaAnna Fali RENEWAL
Aruna L IturbideSpainElwin Sharvill QUALIFIED
James A FollerBrazilOnyama Limba PROPOSAL
Jefferson L RutaIndiaAmy Elsner NEGOTIATION
Deepesh G DarakjyArgentinaAsiya Javayant NEW
Kadeem E AlbaresIndiaBernardo Dominic NEW
Mayumi C PoquetteArgentinaAmy Elsner NEGOTIATION
Leon B GauchoCanadaAnna Fali UNQUALIFIED
Clifford U WieserArgentinaStephen Shaw NEGOTIATION
Wickens G FlosiFranceIoni Bowcher PROPOSAL
Ricardo K GillianRussiaIoni Bowcher RENEWAL
Clifford P SaylorsArgentinaOnyama Limba RENEWAL
Clifford D RulapaughJapanAnna Fali PROPOSAL
Mujtaba A MaletBrazilIoni Bowcher QUALIFIED
Chavez J RimJapanElwin Sharvill NEGOTIATION
Aditya I RimItalyXuxue Feng UNQUALIFIED
Misaki J IturbideJapanBernardo Dominic QUALIFIED
Octavia M GauchoAustraliaBernardo Dominic QUALIFIED
Claire E DoeSpainElwin Sharvill NEGOTIATION
Mujtaba S ChuiSpainIoni Bowcher UNQUALIFIED
Johnson L SchemmerBrazilOnyama Limba QUALIFIED
Jones A WieserFranceXuxue Feng PROPOSAL
Aditya K MorascaSpainIvan Magalhaes RENEWAL
Jennifer K AlbaresArgentinaOnyama Limba QUALIFIED
Julie P AmigonArgentinaIvan Magalhaes PROPOSAL
Adams J RoysterBrazilBernardo Dominic PROPOSAL
Adams W ShinkoUnited KingdomIoni Bowcher RENEWAL
Mujtaba Q DoeIndiaStephen Shaw 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>