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 X KuskoIndiaElwin Sharvill PROPOSAL
Faith B InouyeRussiaAsiya Javayant NEGOTIATION
Nicolas P FigeroaFranceStephen Shaw UNQUALIFIED
David B StockhamCanadaBernardo Dominic RENEWAL
Sinclair B WhobreyUnited KingdomXuxue Feng NEGOTIATION
Murillo I BologniaGermanyOnyama Limba UNQUALIFIED
Sinclair Z VocelkaIndiaOnyama Limba NEW
Leon L GarufiArgentinaAsiya Javayant UNQUALIFIED
Darci U CaldareraSpainBernardo Dominic RENEWAL
Julie L IturbideFranceAmy Elsner QUALIFIED
Murillo Y BriddickJapanStephen Shaw RENEWAL
Maria Z WieserAustraliaAnna Fali UNQUALIFIED
Leon P BriddickJapanXuxue Feng NEW
Ashley H VocelkaJapanOnyama Limba QUALIFIED
Alejandro W PerinJapanXuxue Feng NEGOTIATION
Smith B OldroydArgentinaStephen Shaw PROPOSAL
Costa Y MaletArgentinaXuxue Feng RENEWAL
Tony N StockhamBrazilOnyama Limba NEGOTIATION
Octavia W SaylorsGermanyAsiya Javayant NEGOTIATION
Emily K TollnerSpainIoni Bowcher UNQUALIFIED
Stacey T CaldareraArgentinaAnna Fali QUALIFIED
Leja K PaprockiArgentinaIoni Bowcher RENEWAL
Leon I CampainCanadaOnyama Limba NEW
Izzy K SergiBrazilOnyama Limba NEW
Misaki L RutaBrazilIoni Bowcher NEW
Jennifer S CaudyBrazilIvan Magalhaes PROPOSAL
Leon H AmigonCanadaAnna Fali QUALIFIED
Maisha R DarakjyArgentinaElwin Sharvill RENEWAL
James U SchemmerBrazilStephen Shaw NEGOTIATION
Faith T GillianItalyOnyama Limba RENEWAL
Salvatore Y StockhamArgentinaIvan Magalhaes PROPOSAL
Isabel Q OldroydItalyIvan Magalhaes NEGOTIATION
Deepesh F RoysterSpainBernardo Dominic RENEWAL
Claire X BowleyFranceAsiya Javayant QUALIFIED
Salvatore I StensethFranceXuxue Feng QUALIFIED
Aruna A StensethRussiaIvan Magalhaes PROPOSAL
Greenwood W ShinkoCanadaAsiya Javayant NEW
Nicolas E MorascaArgentinaOnyama Limba NEGOTIATION
Emily T SergiIndiaAsiya Javayant QUALIFIED
Munro V GillianArgentinaAmy Elsner UNQUALIFIED
Johnson X NestleItalyAsiya Javayant NEGOTIATION
Stacey T StensethGermanyIvan Magalhaes RENEWAL
Isabel W ButtSpainAsiya Javayant NEGOTIATION
David Z InouyeBrazilAmy Elsner UNQUALIFIED
Misaki O VocelkaAustraliaElwin Sharvill RENEWAL
Antonio R GlickIndiaElwin Sharvill NEGOTIATION
Francesco T ShinkoSpainIvan Magalhaes QUALIFIED
Murillo F MarrierCanadaIvan Magalhaes PROPOSAL
Jefferson F AlbaresGermanyStephen Shaw NEGOTIATION
Kadeem C FlosiCanadaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Adams T DoeAustraliaXuxue Feng PROPOSAL
Johnson U RulapaughArgentinaXuxue Feng QUALIFIED
Antonio E InouyeFranceBernardo Dominic PROPOSAL
Cody N TollnerBrazilXuxue Feng NEW
Clifford C KolmetzBrazilAmy Elsner QUALIFIED
Emily Q KuskoRussiaXuxue Feng RENEWAL
Aika B RimItalyStephen Shaw UNQUALIFIED
Ashley N ChuiFranceIoni Bowcher PROPOSAL
Francesco M FollerCanadaXuxue Feng UNQUALIFIED
Nicolas Y BologniaSpainBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones U StensethAustralia2026-07-17Chemel, James L Cpa PROPOSAL49Amy Elsner
1001Julie T GlickBrazil2026-07-16Rousseaux, Michael Esq RENEWAL89Bernardo Dominic
1002Jennifer G StensethRussia2026-07-09Feiner Bros NEW88Xuxue Feng
1003Rodrigues C RulapaughFrance2026-07-18Dorl, James J Esq NEGOTIATION30Amy Elsner
1004Nicolas C WaycottIndia2026-07-23Feltz Printing Service QUALIFIED72Ioni Bowcher
1005Costa Q PerinItaly2026-07-08Dorl, James J Esq NEW0Onyama Limba
1006Stacey H InouyeGermany2026-07-23Feltz Printing Service PROPOSAL48Ivan Magalhaes
1007Jeanfrancois V KolmetzArgentina2026-07-10Buckley Miller Wright RENEWAL2Ioni Bowcher
1008Johnson W ShinkoRussia2026-07-02Rangoni Of Florence NEGOTIATION21Amy Elsner
1009Tony H IturbideItaly2026-07-10Feiner Bros PROPOSAL50Xuxue Feng
1010Salvatore H NickaRussia2026-07-19Feiner Bros QUALIFIED2Ivan Magalhaes
1011Rodrigues D GillianGermany2026-07-23Chapman, Ross E Esq UNQUALIFIED41Bernardo Dominic
1012Ricardo K OstroskyJapan2026-07-16Printing Dimensions RENEWAL39Ioni Bowcher
1013Ivar C RutaSpain2026-07-19Truhlar And Truhlar Attys NEW20Anna Fali
1014Adams A StockhamCanada2026-07-04Chapman, Ross E Esq PROPOSAL51Onyama Limba
1015Arvin P ShinkoIndia2026-07-05Buckley Miller Wright UNQUALIFIED85Amy Elsner
1016Kaitlin R MaletAustralia2026-07-15Dorl, James J Esq NEGOTIATION10Asiya Javayant
1017Mujtaba A FollerRussia2026-07-04Benton, John B Jr NEGOTIATION40Amy Elsner
1018Tony K BowleyFrance2026-07-28Benton, John B Jr PROPOSAL91Anna Fali
1019Kaitlin X DilliardCanada2026-07-19Chemel, James L Cpa NEGOTIATION24Stephen Shaw
1020Ricardo Y BriddickFrance2026-07-02King, Christopher A Esq PROPOSAL22Ioni Bowcher
1021Cody Y GlickJapan2026-07-01Chanay, Jeffrey A Esq PROPOSAL77Anna Fali
1022Munro P GlickArgentina2026-07-18Rangoni Of Florence PROPOSAL41Ioni Bowcher
1023Tony S VocelkaArgentina2026-07-06Chanay, Jeffrey A Esq RENEWAL86Asiya Javayant
1024Emily S WhobreyUnited Kingdom2026-07-16Dorl, James J Esq NEGOTIATION98Anna Fali
1025Aika N MaletFrance2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED76Stephen Shaw
1026Jefferson Z RimGermany2026-07-17Morlong Associates NEW83Bernardo Dominic
1027Kaitlin A MaletAustralia2026-06-30Rangoni Of Florence QUALIFIED45Anna Fali
1028Francesco E RutaItaly2026-07-22Printing Dimensions NEW55Ivan Magalhaes
1029Aruna T SchemmerFrance2026-07-16Chanay, Jeffrey A Esq RENEWAL95Anna Fali
1030Alejandro W CampainSpain2026-07-04King, Christopher A Esq UNQUALIFIED3Bernardo Dominic
1031Faith R BriddickUnited Kingdom2026-07-02Printing Dimensions NEGOTIATION99Stephen Shaw
1032Leja H SaylorsIndia2026-07-11Chapman, Ross E Esq PROPOSAL69Anna Fali
1033James S GauchoGermany2026-07-05Feiner Bros RENEWAL10Amy Elsner
1034Aditya T DilliardIndia2026-06-30Dorl, James J Esq NEGOTIATION30Asiya Javayant
1035Tony B WaycottFrance2026-07-18Rousseaux, Michael Esq PROPOSAL92Amy Elsner
1036Rodrigues W CaldareraSpain2026-07-12Commercial Press QUALIFIED97Elwin Sharvill
1037Maisha D WhobreyGermany2026-07-29Printing Dimensions UNQUALIFIED76Onyama Limba
1038Kadeem O IturbideRussia2026-07-08Rangoni Of Florence RENEWAL54Stephen Shaw
1039Kaitlin D AlbaresRussia2026-07-04Rousseaux, Michael Esq RENEWAL92Asiya Javayant
1040Isabel P FlosiSpain2026-07-04Commercial Press PROPOSAL64Ivan Magalhaes
1041Misaki H WieserItaly2026-07-01Morlong Associates UNQUALIFIED22Xuxue Feng
1042Stacey N DoeBrazil2026-07-19Morlong Associates NEGOTIATION3Ioni Bowcher
1043Darci I RimCanada2026-07-13Feiner Bros PROPOSAL11Amy Elsner
1044Adams U ShinkoCanada2026-07-08Morlong Associates PROPOSAL99Stephen Shaw
1045Greenwood W ChuiItaly2026-07-01Chanay, Jeffrey A Esq PROPOSAL18Xuxue Feng
1046Wickens I SlusarskiGermany2026-07-22Chapman, Ross E Esq PROPOSAL57Ioni Bowcher
1047Wickens G OldroydFrance2026-07-10King, Christopher A Esq PROPOSAL86Ioni Bowcher
1048Greenwood S TollnerItaly2026-07-16Morlong Associates PROPOSAL57Onyama Limba
1049Chavez I StockhamJapan2026-07-04King, Christopher A Esq NEW2Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Johnson G RimJapanAsiya Javayant UNQUALIFIED
Claire R AmigonArgentinaXuxue Feng PROPOSAL
Costa L GillianArgentinaBernardo Dominic PROPOSAL
Julie Q CaldareraItalyOnyama Limba NEGOTIATION
Octavia L StensethRussiaStephen Shaw RENEWAL
Maria H NestleJapanIoni Bowcher PROPOSAL
Nicolas E MacleadArgentinaIvan Magalhaes UNQUALIFIED
Leon K SchemmerArgentinaAsiya Javayant NEW
Ricardo D DoeAustraliaIoni Bowcher QUALIFIED
Costa G CaldareraItalyStephen Shaw NEGOTIATION
Claire X SlusarskiRussiaXuxue Feng QUALIFIED
Morrow S StensethArgentinaXuxue Feng RENEWAL
Jones S CaudyRussiaOnyama Limba PROPOSAL
Ashley T CaudyJapanIoni Bowcher PROPOSAL
Izzy S AlbaresSpainStephen Shaw UNQUALIFIED
Munro B DarakjyAustraliaIvan Magalhaes RENEWAL
Ivar S PaprockiGermanyOnyama Limba RENEWAL
Kaitlin Q SaylorsAustraliaOnyama Limba NEW
Jones Z NickaAustraliaAsiya Javayant NEGOTIATION
Smith T DoeFranceElwin Sharvill QUALIFIED
Antonio H RimIndiaStephen Shaw PROPOSAL
Ricardo G CampainJapanBernardo Dominic NEW
Octavia J NestleBrazilXuxue Feng NEW
Jefferson J NestleArgentinaIoni Bowcher PROPOSAL
Deepesh G GarufiArgentinaIoni Bowcher QUALIFIED
Juan X BologniaJapanAmy Elsner NEW
James A BologniaJapanAnna Fali RENEWAL
Julie F MaletSpainAmy Elsner RENEWAL
Darci C MaletItalyXuxue Feng QUALIFIED
Smith C StensethIndiaOnyama Limba UNQUALIFIED
Leon A BologniaArgentinaElwin Sharvill PROPOSAL
Tony J BowleyRussiaAsiya Javayant UNQUALIFIED
Maria I NickaBrazilAsiya Javayant PROPOSAL
Leja K MacleadSpainAmy Elsner QUALIFIED
Aika Z OstroskyGermanyAsiya Javayant UNQUALIFIED
Costa X StensethGermanyAmy Elsner NEW
Juan F GarufiArgentinaAnna Fali NEW
Greenwood K OstroskyGermanyAnna Fali PROPOSAL
Jennifer E AlbaresJapanOnyama Limba RENEWAL
Ashley O BowleyJapanXuxue Feng QUALIFIED
Morrow L RimCanadaElwin Sharvill NEW
Silvio G GarufiArgentinaOnyama Limba RENEWAL
Johnson B FerenczUnited KingdomAnna Fali NEW
Aika Q DilliardJapanStephen Shaw NEGOTIATION
Mayumi K WhobreyCanadaIoni Bowcher PROPOSAL
Kaitlin D PerinIndiaStephen Shaw PROPOSAL
Francesco Q RimIndiaAmy Elsner NEW
Mujtaba U GauchoGermanyAnna Fali NEW
Deepesh P GillianItalyXuxue Feng NEGOTIATION
Greenwood F SlusarskiFranceAnna Fali NEGOTIATION
Frozen Columns
Name
Rodrigues T Gaucho
Johnson L Slusarski
Jefferson F Darakjy
Izzy O Royster
Alejandro X Inouye
Sinclair W Oldroyd
Jennifer X Sergi
Clifford K Maclead
Jeanfrancois J Shinko
Juan S Garufi
Ashley H Slusarski
Jefferson M Morasca
Antonio W Chui
Kadeem D Kolmetz
Kadeem F Bolognia
Maisha R Caudy
Alejandro Q Rim
Mujtaba H Glick
Munro C Inouye
Octavia T Maclead
Murillo D Nicka
Ricardo U Slusarski
Aruna J Schemmer
Aditya A Foller
Misaki N Tollner
Silvio O Nicka
Maria U Bowley
Mujtaba A Ruta
Murillo B Venere
Leon X Butt
Darci Q Saylors
Darci R Garufi
Mayumi I Ostrosky
Juan Z Kusko
Mujtaba U Sergi
Jones O Chui
Mujtaba R Garufi
Misaki Q Oldroyd
Leon K Albares
Deepesh J Wieser
Rodrigues A Royster
Mayumi L Venere
Isabel T Briddick
Kaitlin H Foller
Leon I Malet
Jennifer G Rulapaugh
Kaitlin X Ferencz
Aditya H Caudy
Leon G Morasca
Salvatore X Flosi
IdCountryDate
1000Brazil2026-07-22
1001Germany2026-07-08
1002Italy2026-07-03
1003Russia2026-07-06
1004Germany2026-07-05
1005Russia2026-07-03
1006India2026-07-04
1007France2026-07-22
1008Japan2026-07-01
1009Germany2026-07-29
1010United Kingdom2026-07-10
1011Canada2026-07-10
1012Germany2026-07-14
1013Japan2026-07-18
1014Brazil2026-07-01
1015Spain2026-07-04
1016France2026-07-08
1017Japan2026-07-02
1018Australia2026-07-24
1019Italy2026-07-18
1020Argentina2026-07-05
1021Argentina2026-07-21
1022Japan2026-07-10
1023Japan2026-07-01
1024Australia2026-07-05
1025Spain2026-07-26
1026Canada2026-07-23
1027Germany2026-07-21
1028Germany2026-07-13
1029Germany2026-07-21
1030Canada2026-07-21
1031Japan2026-07-17
1032Italy2026-07-16
1033Brazil2026-07-09
1034Australia2026-07-25
1035Spain2026-07-29
1036Brazil2026-07-06
1037United Kingdom2026-07-01
1038Argentina2026-07-24
1039France2026-07-07
1040Spain2026-07-04
1041India2026-07-01
1042Brazil2026-07-06
1043Japan2026-07-23
1044Canada2026-07-14
1045Brazil2026-07-09
1046Japan2026-07-11
1047Germany2026-07-01
1048India2026-07-03
1049United Kingdom2026-07-14

On-Demand Data

NameIdCountryDate
Leja A Ruta1000Japan2026-07-13
Nicolas U Bowley1001Canada2026-07-03
Salvatore C Malet1002Argentina2026-07-22
Claire W Poquette1003Brazil2026-07-08
Murillo Y Chui1004Germany2026-07-29
Octavia C Nicka1005India2026-07-15
Emily O Glick1006Australia2026-07-26
Juan W Tollner1007United Kingdom2026-07-28
Jennifer C Tollner1008Australia2026-07-24
Smith T Rim1009India2026-07-05
Antonio J Whobrey1010Spain2026-07-23
Aditya N Slusarski1011India2026-07-11
Morrow K Nicka1012Brazil2026-07-06
Rodrigues D Rulapaugh1013France2026-07-06
Silvio X Saylors1014Spain2026-07-08
Claire C Darakjy1015Japan2026-07-01
Faith B Paprocki1016United Kingdom2026-07-09
Ashley W Iturbide1017Italy2026-07-09
Ivar I Chui1018Japan2026-07-20
Jones N Schemmer1019India2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio P KolmetzSpainIoni Bowcher NEGOTIATION
Stacey P FollerJapanElwin Sharvill UNQUALIFIED
Alejandro U AmigonFranceAsiya Javayant UNQUALIFIED
Murillo J MorascaIndiaOnyama Limba PROPOSAL
Octavia K CaudyGermanyIvan Magalhaes UNQUALIFIED
Munro A IturbideJapanElwin Sharvill RENEWAL
Adams Q SlusarskiGermanyOnyama Limba UNQUALIFIED
David O BologniaGermanyElwin Sharvill RENEWAL
Johnson C PoquetteCanadaIvan Magalhaes UNQUALIFIED
Ashley C RoysterBrazilElwin Sharvill UNQUALIFIED
Morrow K StensethJapanIoni Bowcher NEW
Aditya W VocelkaSpainIoni Bowcher NEGOTIATION
Ashley C KolmetzAustraliaXuxue Feng QUALIFIED
Claire P PerinArgentinaAmy Elsner NEW
Izzy S AlbaresRussiaXuxue Feng RENEWAL
Wickens Z WieserArgentinaOnyama Limba QUALIFIED
Mayumi V ButtCanadaAsiya Javayant PROPOSAL
Johnson C FlosiBrazilAnna Fali NEW
Misaki M KolmetzJapanIoni Bowcher NEGOTIATION
Aditya F RimCanadaIvan Magalhaes PROPOSAL
Murillo B KolmetzBrazilXuxue Feng QUALIFIED
Munro P RutaCanadaIvan Magalhaes PROPOSAL
Francesco W NestleSpainAsiya Javayant RENEWAL
Munro P MarrierRussiaIoni Bowcher NEGOTIATION
Stacey M RulapaughFranceAnna Fali PROPOSAL
Octavia V ChuiBrazilXuxue Feng PROPOSAL
Jones S FigeroaArgentinaAnna Fali UNQUALIFIED
Ashley L InouyeSpainStephen Shaw UNQUALIFIED
Aditya Z PaprockiFranceStephen Shaw NEW
David B WhobreyIndiaXuxue Feng QUALIFIED
Arvin F VenereArgentinaStephen Shaw NEGOTIATION
Costa Q KuskoAustraliaIoni Bowcher RENEWAL
Darci K SlusarskiIndiaXuxue Feng NEW
Darci K CaudySpainIoni Bowcher NEGOTIATION
Maisha P WieserFranceBernardo Dominic NEGOTIATION
Juan O CaudyGermanyIoni Bowcher QUALIFIED
Clifford Y SlusarskiGermanyElwin Sharvill QUALIFIED
Aditya U GillianIndiaOnyama Limba UNQUALIFIED
Costa G ChuiUnited KingdomBernardo Dominic PROPOSAL
Kaitlin Z BologniaGermanyIvan Magalhaes 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>