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
Mujtaba S PaprockiFranceBernardo Dominic NEGOTIATION
Alejandro E DilliardBrazilAmy Elsner NEW
Francesco P NickaRussiaAsiya Javayant UNQUALIFIED
Clifford P PoquetteUnited KingdomOnyama Limba UNQUALIFIED
Adams N OstroskyFranceAmy Elsner RENEWAL
Munro T CaldareraArgentinaAmy Elsner NEGOTIATION
Ashley L ButtSpainStephen Shaw NEGOTIATION
Misaki C CaudyUnited KingdomXuxue Feng NEW
Adams X DoeIndiaElwin Sharvill PROPOSAL
Ivar L GillianItalyAsiya Javayant QUALIFIED
Murillo K RoysterFranceAsiya Javayant RENEWAL
Nicolas B FollerItalyElwin Sharvill PROPOSAL
Francesco N VocelkaRussiaAsiya Javayant NEGOTIATION
Silvio E WhobreyUnited KingdomStephen Shaw RENEWAL
Nicolas E ChuiItalyAnna Fali RENEWAL
Chavez N GauchoUnited KingdomAnna Fali RENEWAL
Silvio D StockhamArgentinaXuxue Feng RENEWAL
Maisha U KuskoArgentinaIoni Bowcher UNQUALIFIED
Jeanfrancois Q BologniaUnited KingdomIvan Magalhaes NEW
Alejandro J InouyeIndiaAmy Elsner NEW
Leja C VenereCanadaOnyama Limba UNQUALIFIED
Alejandro T RulapaughJapanIoni Bowcher UNQUALIFIED
Isabel S FollerItalyAmy Elsner RENEWAL
Jefferson U OldroydUnited KingdomXuxue Feng UNQUALIFIED
Jennifer N SaylorsGermanyIvan Magalhaes NEW
Adams M ChuiIndiaStephen Shaw RENEWAL
Mayumi M ShinkoAustraliaAnna Fali NEW
Leja E WhobreyUnited KingdomStephen Shaw RENEWAL
Cody Q SchemmerAustraliaAnna Fali NEGOTIATION
Adams V TollnerRussiaBernardo Dominic QUALIFIED
Murillo X VocelkaSpainIoni Bowcher QUALIFIED
Greenwood K DarakjySpainXuxue Feng RENEWAL
Julie L CaudySpainElwin Sharvill RENEWAL
Costa B TollnerRussiaIoni Bowcher RENEWAL
Chavez D ChuiSpainAmy Elsner RENEWAL
Julie R GlickBrazilAsiya Javayant NEW
Antonio I DoeArgentinaAmy Elsner NEGOTIATION
Francesco G GauchoFranceAmy Elsner RENEWAL
Adams W DilliardSpainXuxue Feng NEW
Claire D IturbideCanadaAmy Elsner QUALIFIED
David V CaldareraBrazilBernardo Dominic PROPOSAL
Greenwood E ChuiFranceXuxue Feng RENEWAL
Maria L PoquetteItalyXuxue Feng NEGOTIATION
Alejandro U InouyeUnited KingdomAnna Fali NEGOTIATION
Clifford U FigeroaJapanStephen Shaw NEGOTIATION
Rodrigues E NestleFranceOnyama Limba NEGOTIATION
David I FigeroaIndiaAnna Fali QUALIFIED
Nicolas O PaprockiRussiaOnyama Limba QUALIFIED
Leja R FlosiGermanyElwin Sharvill PROPOSAL
Smith K ButtJapanIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin I SaylorsSpainStephen Shaw QUALIFIED
Octavia N PoquetteArgentinaElwin Sharvill QUALIFIED
Johnson V BologniaSpainIoni Bowcher QUALIFIED
Aditya R AmigonGermanyAmy Elsner PROPOSAL
Murillo I StockhamGermanyElwin Sharvill RENEWAL
Deepesh A WaycottGermanyStephen Shaw RENEWAL
Tony Z GlickArgentinaElwin Sharvill NEGOTIATION
Clifford A PaprockiIndiaOnyama Limba PROPOSAL
Salvatore N BologniaSpainXuxue Feng NEGOTIATION
Wickens I ButtSpainStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia F ButtSpain2026-07-27Morlong Associates RENEWAL5Onyama Limba
1001Clifford S DilliardJapan2026-08-03Truhlar And Truhlar Attys RENEWAL66Ioni Bowcher
1002Arvin F TollnerGermany2026-07-24King, Christopher A Esq PROPOSAL70Elwin Sharvill
1003Ricardo D AlbaresItaly2026-07-22Morlong Associates UNQUALIFIED72Bernardo Dominic
1004Jeanfrancois P PaprockiItaly2026-07-19Rousseaux, Michael Esq RENEWAL79Stephen Shaw
1005Faith R RoysterFrance2026-07-15Chemel, James L Cpa RENEWAL77Ivan Magalhaes
1006Jeanfrancois S SergiAustralia2026-07-31Chapman, Ross E Esq UNQUALIFIED4Ivan Magalhaes
1007Octavia N InouyeCanada2026-08-01Feltz Printing Service UNQUALIFIED75Amy Elsner
1008Smith D WaycottJapan2026-07-05King, Christopher A Esq QUALIFIED11Ioni Bowcher
1009Izzy Z RutaArgentina2026-07-26Morlong Associates RENEWAL18Asiya Javayant
1010Jones T PerinJapan2026-07-28Commercial Press RENEWAL60Xuxue Feng
1011Octavia S RulapaughIndia2026-07-20Chapman, Ross E Esq RENEWAL13Onyama Limba
1012James G RoysterRussia2026-07-19Benton, John B Jr NEW0Anna Fali
1013Aruna M ChuiGermany2026-07-09King, Christopher A Esq NEGOTIATION29Stephen Shaw
1014Munro I MaletGermany2026-07-07King, Christopher A Esq NEW25Xuxue Feng
1015Ricardo T BologniaGermany2026-07-07King, Christopher A Esq UNQUALIFIED79Amy Elsner
1016Tony X GillianFrance2026-07-24Buckley Miller Wright NEGOTIATION69Bernardo Dominic
1017Wickens X InouyeCanada2026-07-28Feltz Printing Service PROPOSAL5Bernardo Dominic
1018Aditya S FlosiSpain2026-07-12Printing Dimensions QUALIFIED17Ioni Bowcher
1019Greenwood R PaprockiBrazil2026-07-28Buckley Miller Wright NEGOTIATION26Anna Fali
1020Murillo I MorascaSpain2026-07-19Feiner Bros RENEWAL79Onyama Limba
1021Tony B BologniaIndia2026-07-23Dorl, James J Esq NEW6Stephen Shaw
1022Munro H KuskoArgentina2026-07-21Feltz Printing Service RENEWAL31Bernardo Dominic
1023Munro T CampainArgentina2026-07-06King, Christopher A Esq PROPOSAL72Ivan Magalhaes
1024Juan G NickaJapan2026-07-06Truhlar And Truhlar Attys NEGOTIATION68Amy Elsner
1025Maria E OldroydGermany2026-08-03Morlong Associates PROPOSAL2Xuxue Feng
1026Greenwood Q SergiItaly2026-07-27Chapman, Ross E Esq PROPOSAL93Bernardo Dominic
1027Tony J PerinItaly2026-07-14King, Christopher A Esq QUALIFIED1Amy Elsner
1028Antonio A GarufiItaly2026-07-28Feiner Bros UNQUALIFIED26Bernardo Dominic
1029Sinclair G SergiUnited Kingdom2026-07-10Morlong Associates NEGOTIATION76Onyama Limba
1030Ashley L PaprockiArgentina2026-07-19Printing Dimensions RENEWAL15Elwin Sharvill
1031Alejandro X RoysterItaly2026-07-13Benton, John B Jr PROPOSAL16Amy Elsner
1032Francesco Z OstroskyAustralia2026-07-14Buckley Miller Wright PROPOSAL34Onyama Limba
1033Jefferson H ShinkoGermany2026-07-19Rangoni Of Florence RENEWAL25Asiya Javayant
1034Tony L SergiSpain2026-07-09Chanay, Jeffrey A Esq PROPOSAL42Bernardo Dominic
1035Jefferson S AmigonGermany2026-07-18Feltz Printing Service UNQUALIFIED69Onyama Limba
1036Leon A VocelkaSpain2026-07-18Dorl, James J Esq PROPOSAL46Stephen Shaw
1037Jeanfrancois D PaprockiItaly2026-07-06Chapman, Ross E Esq NEGOTIATION83Amy Elsner
1038Aditya O FollerFrance2026-07-28Rousseaux, Michael Esq NEW7Stephen Shaw
1039Jeanfrancois I GillianAustralia2026-07-20Chanay, Jeffrey A Esq NEW99Elwin Sharvill
1040Jennifer W KuskoUnited Kingdom2026-07-16Dorl, James J Esq PROPOSAL59Xuxue Feng
1041Aika Y BriddickJapan2026-07-17King, Christopher A Esq RENEWAL53Ivan Magalhaes
1042Munro W BriddickRussia2026-07-15Chemel, James L Cpa PROPOSAL9Asiya Javayant
1043Morrow M CaudyItaly2026-07-25Morlong Associates PROPOSAL2Ivan Magalhaes
1044Deepesh C MaletAustralia2026-08-01Chemel, James L Cpa UNQUALIFIED21Onyama Limba
1045Antonio O WaycottUnited Kingdom2026-07-20Commercial Press RENEWAL15Xuxue Feng
1046Johnson F VocelkaSpain2026-07-10Truhlar And Truhlar Attys NEW79Stephen Shaw
1047Aika N StensethAustralia2026-07-14Truhlar And Truhlar Attys NEW77Ioni Bowcher
1048Claire O PoquetteFrance2026-07-28King, Christopher A Esq NEGOTIATION98Ioni Bowcher
1049Greenwood Q MaletRussia2026-07-18Chemel, James L Cpa UNQUALIFIED39Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Claire S FerenczGermanyOnyama Limba RENEWAL
Jones Z MorascaItalyElwin Sharvill NEGOTIATION
Murillo W ShinkoBrazilIvan Magalhaes UNQUALIFIED
Darci P ChuiFranceAsiya Javayant UNQUALIFIED
Aditya K RutaRussiaElwin Sharvill NEW
Leon N ShinkoItalyStephen Shaw NEGOTIATION
Jones C StensethItalyIvan Magalhaes RENEWAL
Jones F WieserBrazilBernardo Dominic PROPOSAL
Ricardo K DarakjyBrazilIvan Magalhaes PROPOSAL
David H MaletGermanyAnna Fali QUALIFIED
Cody H MaletIndiaIoni Bowcher NEW
Smith H InouyeFranceIvan Magalhaes PROPOSAL
Antonio R KuskoArgentinaElwin Sharvill NEGOTIATION
Misaki W RutaFranceOnyama Limba UNQUALIFIED
Octavia Y GauchoJapanXuxue Feng UNQUALIFIED
Aika O RutaCanadaAsiya Javayant NEW
Clifford A VenereGermanyIvan Magalhaes NEW
Izzy Q MarrierBrazilAnna Fali QUALIFIED
Murillo H StockhamUnited KingdomElwin Sharvill PROPOSAL
Salvatore H BowleyBrazilAnna Fali QUALIFIED
Costa A FerenczIndiaIoni Bowcher NEW
Emily M VenereArgentinaIoni Bowcher UNQUALIFIED
Maria Y IturbideUnited KingdomAmy Elsner QUALIFIED
Francesco C KuskoBrazilIvan Magalhaes RENEWAL
Wickens O WieserAustraliaStephen Shaw QUALIFIED
James K CaldareraUnited KingdomXuxue Feng UNQUALIFIED
Johnson L GauchoSpainAsiya Javayant RENEWAL
Leja R WhobreyFranceElwin Sharvill NEW
Julie S AmigonItalyAsiya Javayant UNQUALIFIED
Antonio K RulapaughBrazilXuxue Feng RENEWAL
Smith T CaudyRussiaOnyama Limba UNQUALIFIED
Izzy H GillianIndiaElwin Sharvill RENEWAL
Leja M DilliardAustraliaBernardo Dominic UNQUALIFIED
James A GauchoFranceBernardo Dominic NEW
Costa N ShinkoUnited KingdomStephen Shaw RENEWAL
Jones A GauchoGermanyAmy Elsner PROPOSAL
David B FigeroaRussiaStephen Shaw NEGOTIATION
Nicolas C FollerAustraliaAnna Fali PROPOSAL
Claire X MacleadGermanyAnna Fali QUALIFIED
Munro Q SergiJapanAnna Fali QUALIFIED
Mayumi U FigeroaIndiaXuxue Feng NEGOTIATION
David Z IturbideIndiaAmy Elsner PROPOSAL
Jefferson H DarakjyItalyAsiya Javayant UNQUALIFIED
Greenwood N KuskoGermanyAnna Fali RENEWAL
Costa H MaletCanadaIoni Bowcher UNQUALIFIED
Maria F SaylorsFranceOnyama Limba QUALIFIED
Mayumi B ChuiSpainXuxue Feng RENEWAL
Chavez C GillianIndiaElwin Sharvill NEW
David Z DarakjyItalyAnna Fali NEW
David P PoquetteRussiaBernardo Dominic QUALIFIED
Frozen Columns
Name
Mayumi H Campain
Jones Z Flosi
Wickens O Foller
Antonio O Nestle
Johnson D Flosi
Jefferson X Vocelka
Ivar G Vocelka
Arvin G Whobrey
Jefferson K Glick
Wickens R Butt
Morrow M Campain
Deepesh O Butt
Silvio A Saylors
Emily Z Flosi
Murillo L Caldarera
Costa K Campain
Antonio I Gaucho
Alejandro K Campain
Arvin Q Albares
Aika W Gaucho
Darci U Morasca
Ricardo W Doe
Ashley R Wieser
Munro R Flosi
Jones W Venere
Juan A Marrier
Clifford I Inouye
Kadeem V Kusko
Salvatore A Kolmetz
Chavez E Malet
Deepesh T Nestle
Morrow F Caudy
Sinclair E Whobrey
Jones D Butt
Kaitlin T Shinko
Deepesh R Inouye
Salvatore A Paprocki
Adams S Rulapaugh
Chavez V Whobrey
Tony N Caldarera
Nicolas P Rim
Stacey R Shinko
Antonio E Marrier
Izzy P Caudy
Octavia J Wieser
Clifford Y Garufi
Faith L Oldroyd
Wickens O Foller
Jefferson I Briddick
Maria X Caldarera
IdCountryDate
1000Spain2026-07-21
1001India2026-07-28
1002Canada2026-07-17
1003Italy2026-07-19
1004Japan2026-07-23
1005Japan2026-07-19
1006Brazil2026-07-09
1007France2026-07-26
1008Argentina2026-07-25
1009Argentina2026-07-10
1010Russia2026-07-23
1011India2026-07-28
1012Brazil2026-07-06
1013Spain2026-07-29
1014United Kingdom2026-08-03
1015Argentina2026-08-03
1016France2026-07-14
1017Germany2026-08-03
1018United Kingdom2026-07-18
1019Brazil2026-07-28
1020India2026-07-18
1021Japan2026-07-08
1022Japan2026-07-20
1023United Kingdom2026-07-16
1024France2026-07-27
1025Brazil2026-07-22
1026Brazil2026-07-05
1027Brazil2026-07-12
1028Australia2026-07-07
1029Brazil2026-07-22
1030France2026-07-11
1031Canada2026-07-28
1032Canada2026-08-02
1033France2026-07-19
1034Canada2026-07-25
1035India2026-07-28
1036Germany2026-07-21
1037Canada2026-07-10
1038Spain2026-08-01
1039Italy2026-07-30
1040Germany2026-07-25
1041Japan2026-07-06
1042Brazil2026-07-20
1043Japan2026-07-31
1044Russia2026-07-13
1045France2026-07-15
1046Argentina2026-07-30
1047Spain2026-07-23
1048Canada2026-07-18
1049Canada2026-08-03

On-Demand Data

NameIdCountryDate
Silvio Y Oldroyd1000Canada2026-07-29
Chavez P Tollner1001Spain2026-07-22
Kadeem E Tollner1002Spain2026-07-22
Misaki P Rim1003France2026-07-24
Leon T Flosi1004France2026-07-11
Leon A Nestle1005Brazil2026-08-02
Faith W Royster1006Italy2026-07-19
Maria V Rulapaugh1007Spain2026-07-08
Antonio K Briddick1008Spain2026-08-03
Mujtaba R Chui1009Japan2026-07-16
Deepesh P Sergi1010Spain2026-08-02
Rodrigues P Nicka1011Japan2026-07-19
Kaitlin A Oldroyd1012Spain2026-07-06
Aditya L Albares1013Argentina2026-07-17
Jones X Shinko1014Brazil2026-07-05
Murillo Z Briddick1015Canada2026-08-03
Darci R Wieser1016Spain2026-07-27
Greenwood U Poquette1017Canada2026-07-13
Nicolas W Rulapaugh1018Spain2026-07-05
Nicolas F Rulapaugh1019France2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio X MaletCanadaXuxue Feng NEGOTIATION
Leon Y WieserArgentinaStephen Shaw UNQUALIFIED
Misaki W SchemmerIndiaStephen Shaw QUALIFIED
Silvio K InouyeArgentinaOnyama Limba UNQUALIFIED
Aika K BologniaJapanIvan Magalhaes NEGOTIATION
Rodrigues P DilliardFranceIvan Magalhaes NEGOTIATION
Cody O WaycottUnited KingdomOnyama Limba QUALIFIED
Jefferson G AlbaresJapanAmy Elsner NEGOTIATION
Smith D SchemmerFranceAnna Fali PROPOSAL
Chavez R FerenczCanadaAmy Elsner QUALIFIED
Aika K RutaRussiaBernardo Dominic RENEWAL
Aditya X GarufiItalyBernardo Dominic QUALIFIED
Kadeem S OstroskySpainIoni Bowcher UNQUALIFIED
Francesco V WhobreyIndiaStephen Shaw UNQUALIFIED
Faith O BowleyJapanBernardo Dominic UNQUALIFIED
Morrow R OldroydUnited KingdomAmy Elsner UNQUALIFIED
Wickens P BriddickBrazilElwin Sharvill NEGOTIATION
Aditya X RutaItalyStephen Shaw NEGOTIATION
Misaki K PerinGermanyBernardo Dominic RENEWAL
Antonio X ChuiArgentinaStephen Shaw NEW
Smith X AlbaresFranceOnyama Limba UNQUALIFIED
Isabel R StockhamFranceIoni Bowcher RENEWAL
Jennifer B SaylorsAustraliaBernardo Dominic PROPOSAL
Greenwood V RoysterArgentinaIoni Bowcher QUALIFIED
Jeanfrancois P KuskoBrazilAsiya Javayant QUALIFIED
Silvio N RulapaughArgentinaAnna Fali NEGOTIATION
Aditya L MaletAustraliaElwin Sharvill PROPOSAL
Leja D PaprockiJapanAnna Fali PROPOSAL
Silvio L SlusarskiBrazilAsiya Javayant UNQUALIFIED
Misaki P DilliardRussiaIvan Magalhaes QUALIFIED
Rodrigues Z WaycottIndiaXuxue Feng RENEWAL
Morrow J MaletItalyAmy Elsner PROPOSAL
Octavia R ChuiArgentinaAsiya Javayant QUALIFIED
Isabel G WaycottCanadaOnyama Limba PROPOSAL
Greenwood A WhobreyUnited KingdomOnyama Limba RENEWAL
Greenwood X ChuiFranceAmy Elsner RENEWAL
Sinclair K IturbideCanadaOnyama Limba NEGOTIATION
Salvatore T GillianArgentinaIoni Bowcher NEW
Maria B GillianIndiaAmy Elsner PROPOSAL
Jeanfrancois S DarakjyUnited KingdomXuxue Feng QUALIFIED

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