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
Aika F RimJapanAsiya Javayant PROPOSAL
Ashley E GlickFranceOnyama Limba NEW
Faith H MaletAustraliaXuxue Feng UNQUALIFIED
Aika D GillianArgentinaXuxue Feng NEW
Julie I PoquetteSpainBernardo Dominic NEW
Smith R MacleadSpainAnna Fali PROPOSAL
Sinclair B NickaArgentinaOnyama Limba RENEWAL
Claire Y RulapaughItalyAsiya Javayant RENEWAL
Wickens P DilliardRussiaElwin Sharvill PROPOSAL
Maria C WhobreyItalyIoni Bowcher NEW
Chavez C RulapaughIndiaElwin Sharvill QUALIFIED
Maria I RutaUnited KingdomXuxue Feng PROPOSAL
Faith B FerenczUnited KingdomXuxue Feng NEGOTIATION
Costa Q OstroskyBrazilAmy Elsner PROPOSAL
Stacey O AlbaresIndiaOnyama Limba PROPOSAL
Deepesh U MacleadGermanyIoni Bowcher PROPOSAL
Murillo Q BologniaItalyIoni Bowcher NEW
Claire X FlosiAustraliaElwin Sharvill PROPOSAL
Deepesh Y FlosiBrazilElwin Sharvill PROPOSAL
Leja W BowleyUnited KingdomXuxue Feng PROPOSAL
Wickens V DilliardSpainIvan Magalhaes NEGOTIATION
Johnson E SergiAustraliaIvan Magalhaes NEGOTIATION
Clifford H CaudyCanadaIoni Bowcher PROPOSAL
Stacey J WaycottArgentinaAmy Elsner UNQUALIFIED
Alejandro H SlusarskiItalyAsiya Javayant QUALIFIED
Alejandro G SergiBrazilElwin Sharvill UNQUALIFIED
Aditya Y OstroskyJapanAnna Fali NEGOTIATION
Alejandro D DarakjyRussiaXuxue Feng RENEWAL
Jeanfrancois V DoeItalyAmy Elsner NEW
Ivar T OldroydJapanIvan Magalhaes UNQUALIFIED
Jefferson I RulapaughItalyAmy Elsner NEW
Chavez H AlbaresJapanStephen Shaw UNQUALIFIED
Misaki S DilliardArgentinaBernardo Dominic UNQUALIFIED
Mujtaba F PoquetteBrazilAsiya Javayant UNQUALIFIED
Arvin X SchemmerItalyAnna Fali NEGOTIATION
Stacey O CaudySpainAsiya Javayant UNQUALIFIED
Chavez P SchemmerAustraliaXuxue Feng NEW
Darci W DilliardCanadaAmy Elsner UNQUALIFIED
Deepesh X BowleyItalyAmy Elsner QUALIFIED
Octavia G OldroydAustraliaXuxue Feng NEW
Misaki G BowleyGermanyIoni Bowcher PROPOSAL
Morrow Q MacleadArgentinaOnyama Limba QUALIFIED
Costa X DilliardCanadaStephen Shaw PROPOSAL
Antonio E StockhamSpainAmy Elsner PROPOSAL
Aruna A NickaGermanyAnna Fali UNQUALIFIED
Nicolas M BologniaSpainAnna Fali RENEWAL
Aditya K SergiGermanyAsiya Javayant NEGOTIATION
Aika W RimJapanBernardo Dominic QUALIFIED
Maria X RoysterUnited KingdomAmy Elsner QUALIFIED
Maisha U PerinItalyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin S CaldareraRussiaAsiya Javayant RENEWAL
Mayumi F NickaIndiaXuxue Feng NEW
Clifford C FerenczUnited KingdomOnyama Limba PROPOSAL
Deepesh V CaudyIndiaAmy Elsner NEW
Arvin W RutaRussiaXuxue Feng NEW
Greenwood G SlusarskiArgentinaOnyama Limba QUALIFIED
Julie E GarufiItalyIoni Bowcher RENEWAL
Claire M CaldareraItalyElwin Sharvill NEGOTIATION
Antonio P InouyeBrazilIoni Bowcher NEW
Maisha Q FerenczArgentinaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer N VenereAustralia2025-04-17King, Christopher A Esq QUALIFIED49Anna Fali
1001Rodrigues L MaletUnited Kingdom2025-05-02Chapman, Ross E Esq NEGOTIATION54Ioni Bowcher
1002Isabel P FollerArgentina2025-04-15Commercial Press UNQUALIFIED81Ivan Magalhaes
1003Julie M OstroskySpain2025-04-18Chemel, James L Cpa NEW66Amy Elsner
1004Emily N PoquetteAustralia2025-04-19Chapman, Ross E Esq NEW86Ivan Magalhaes
1005Kadeem Y WieserFrance2025-04-15Commercial Press QUALIFIED3Anna Fali
1006Nicolas K ShinkoCanada2025-04-30Benton, John B Jr QUALIFIED58Anna Fali
1007Salvatore I WaycottUnited Kingdom2025-04-07Feltz Printing Service RENEWAL16Anna Fali
1008Johnson C RoysterItaly2025-05-01Printing Dimensions QUALIFIED76Amy Elsner
1009Jeanfrancois A GlickArgentina2025-04-23Benton, John B Jr NEGOTIATION45Bernardo Dominic
1010Francesco R RimItaly2025-04-09Chanay, Jeffrey A Esq NEGOTIATION81Elwin Sharvill
1011Tony Y MaletGermany2025-04-04Commercial Press QUALIFIED1Stephen Shaw
1012Julie L IturbideCanada2025-04-13Dorl, James J Esq NEW33Onyama Limba
1013Wickens S PoquetteArgentina2025-04-08Truhlar And Truhlar Attys NEW15Bernardo Dominic
1014Julie J ButtJapan2025-04-21Printing Dimensions NEGOTIATION34Bernardo Dominic
1015Sinclair G NestleGermany2025-04-11Dorl, James J Esq QUALIFIED48Ivan Magalhaes
1016Maria P CaudyRussia2025-04-26Rangoni Of Florence PROPOSAL47Bernardo Dominic
1017Salvatore Z DilliardItaly2025-04-12Commercial Press RENEWAL90Asiya Javayant
1018Leon A BowleyFrance2025-05-02Feltz Printing Service QUALIFIED91Amy Elsner
1019David W CaudyJapan2025-04-25Printing Dimensions RENEWAL79Ioni Bowcher
1020Ivar K VocelkaGermany2025-04-11Morlong Associates UNQUALIFIED50Bernardo Dominic
1021Antonio F SlusarskiFrance2025-04-13King, Christopher A Esq RENEWAL90Amy Elsner
1022Stacey G FlosiAustralia2025-04-20Feltz Printing Service QUALIFIED61Elwin Sharvill
1023Smith A PaprockiRussia2025-04-19Rangoni Of Florence UNQUALIFIED82Stephen Shaw
1024Emily R RulapaughRussia2025-04-25Chanay, Jeffrey A Esq RENEWAL3Amy Elsner
1025Silvio M KuskoCanada2025-05-02Chapman, Ross E Esq PROPOSAL37Anna Fali
1026Tony E BologniaGermany2025-04-27Commercial Press NEW78Elwin Sharvill
1027Murillo Y MorascaItaly2025-04-11Buckley Miller Wright NEGOTIATION65Onyama Limba
1028Aditya Y TollnerSpain2025-04-18Printing Dimensions UNQUALIFIED56Xuxue Feng
1029Aditya L ShinkoCanada2025-04-13Chapman, Ross E Esq RENEWAL83Ivan Magalhaes
1030Deepesh L StockhamIndia2025-04-13King, Christopher A Esq NEGOTIATION59Onyama Limba
1031Jones S BologniaIndia2025-04-29Chapman, Ross E Esq NEW20Anna Fali
1032Octavia D RimRussia2025-04-08Morlong Associates NEGOTIATION59Xuxue Feng
1033Juan N RutaCanada2025-04-24Rousseaux, Michael Esq NEGOTIATION2Asiya Javayant
1034Ivar C PaprockiIndia2025-04-24King, Christopher A Esq NEGOTIATION88Xuxue Feng
1035Antonio Y RulapaughJapan2025-04-09Commercial Press QUALIFIED68Ioni Bowcher
1036Maria R StockhamUnited Kingdom2025-04-15Printing Dimensions UNQUALIFIED73Stephen Shaw
1037Jennifer J TollnerCanada2025-04-06Dorl, James J Esq NEW91Onyama Limba
1038Cody F DilliardUnited Kingdom2025-04-22Printing Dimensions QUALIFIED52Ioni Bowcher
1039Deepesh E StockhamSpain2025-04-11Rousseaux, Michael Esq NEGOTIATION4Stephen Shaw
1040Kaitlin X GarufiJapan2025-04-23Commercial Press RENEWAL6Ivan Magalhaes
1041Arvin Q PoquetteRussia2025-04-16Rangoni Of Florence NEGOTIATION99Amy Elsner
1042Jeanfrancois V RutaCanada2025-04-29Morlong Associates UNQUALIFIED33Asiya Javayant
1043Isabel B RoysterSpain2025-05-01Chapman, Ross E Esq NEW3Elwin Sharvill
1044Maria C MacleadCanada2025-04-15Truhlar And Truhlar Attys RENEWAL29Asiya Javayant
1045Kaitlin F InouyeAustralia2025-04-11Commercial Press RENEWAL50Anna Fali
1046Francesco D GlickBrazil2025-04-12Chanay, Jeffrey A Esq UNQUALIFIED3Bernardo Dominic
1047Munro M RimRussia2025-04-25Rousseaux, Michael Esq NEW26Elwin Sharvill
1048Costa D FigeroaAustralia2025-04-30Rousseaux, Michael Esq QUALIFIED14Bernardo Dominic
1049Smith U SergiItaly2025-04-28Printing Dimensions RENEWAL8Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Munro V StensethRussiaAsiya Javayant NEGOTIATION
Juan B OstroskyRussiaIoni Bowcher PROPOSAL
Alejandro Y FigeroaGermanyStephen Shaw NEW
Jones D PoquetteBrazilAmy Elsner PROPOSAL
Alejandro L RutaCanadaAsiya Javayant UNQUALIFIED
Salvatore O SlusarskiCanadaOnyama Limba QUALIFIED
Adams E TollnerBrazilIoni Bowcher NEGOTIATION
Clifford M OstroskyAustraliaIoni Bowcher RENEWAL
Ivar P VenereArgentinaAnna Fali QUALIFIED
Arvin F WhobreyBrazilStephen Shaw NEGOTIATION
Adams S SaylorsRussiaXuxue Feng UNQUALIFIED
Julie C ButtSpainIoni Bowcher PROPOSAL
Jefferson Z SaylorsBrazilIoni Bowcher QUALIFIED
Johnson S OldroydArgentinaOnyama Limba RENEWAL
Rodrigues U WieserAustraliaBernardo Dominic PROPOSAL
Mujtaba N NestleRussiaIoni Bowcher RENEWAL
Wickens B MaletIndiaIvan Magalhaes RENEWAL
Cody H ChuiBrazilIvan Magalhaes RENEWAL
Cody T MacleadSpainAsiya Javayant RENEWAL
Faith P MacleadIndiaElwin Sharvill UNQUALIFIED
Juan Y KuskoCanadaXuxue Feng NEW
Leja R WaycottCanadaAsiya Javayant RENEWAL
Sinclair V SergiIndiaOnyama Limba NEGOTIATION
Rodrigues N VenereBrazilXuxue Feng NEW
Maisha P WieserIndiaIvan Magalhaes NEW
Rodrigues E MarrierSpainBernardo Dominic NEW
Chavez D CaudyJapanAsiya Javayant RENEWAL
Ashley Q MorascaItalyAsiya Javayant NEW
Jefferson W RulapaughIndiaXuxue Feng NEGOTIATION
David S OstroskyAustraliaIoni Bowcher RENEWAL
Salvatore A WhobreyUnited KingdomIoni Bowcher NEGOTIATION
David K GlickUnited KingdomAsiya Javayant NEGOTIATION
Nicolas Y ChuiArgentinaIvan Magalhaes QUALIFIED
Darci S GillianGermanyStephen Shaw RENEWAL
Julie W RulapaughFranceAmy Elsner RENEWAL
Alejandro A MarrierSpainElwin Sharvill RENEWAL
Cody E ChuiSpainXuxue Feng NEW
Munro T BriddickSpainBernardo Dominic NEW
Morrow V FlosiUnited KingdomXuxue Feng UNQUALIFIED
Leon A IturbideIndiaAnna Fali NEGOTIATION
Juan I MaletArgentinaXuxue Feng PROPOSAL
Faith X PoquetteCanadaOnyama Limba UNQUALIFIED
Murillo Y WieserGermanyAmy Elsner NEW
Johnson W StensethItalyIoni Bowcher RENEWAL
Jennifer U DoeAustraliaIvan Magalhaes PROPOSAL
Morrow N RulapaughIndiaElwin Sharvill UNQUALIFIED
Isabel S NestleFranceAmy Elsner NEW
Octavia K ButtJapanAsiya Javayant RENEWAL
Darci M ShinkoBrazilAmy Elsner NEW
Jefferson O PerinUnited KingdomAnna Fali RENEWAL
Frozen Columns
Name
Wickens E Glick
Arvin F Perin
Emily W Foller
Aditya B Ruta
Aditya R Nestle
Kaitlin Y Chui
Munro L Caldarera
Ricardo I Ruta
Alejandro H Campain
David Y Campain
Ivar K Dilliard
Murillo C Stenseth
Alejandro X Perin
Isabel S Ostrosky
Sinclair P Schemmer
Johnson J Kolmetz
Jones Z Perin
Jennifer H Caudy
Ivar N Rulapaugh
Aruna T Kolmetz
Salvatore Z Bolognia
Julie V Albares
Arvin N Bolognia
Munro G Garufi
David K Morasca
Izzy X Poquette
Francesco P Perin
Silvio K Whobrey
Isabel X Slusarski
Maria W Briddick
Nicolas S Oldroyd
Emily Q Malet
Cody M Amigon
Clifford X Ostrosky
Adams U Whobrey
Adams H Ostrosky
Chavez Z Briddick
Stacey D Slusarski
Aruna J Briddick
James S Dilliard
Cody M Campain
Greenwood U Ostrosky
Claire T Marrier
Ashley M Maclead
Maisha H Nestle
Kaitlin A Figeroa
Stacey E Campain
Rodrigues M Malet
Munro C Gaucho
David X Paprocki
IdCountryDate
1000India2025-04-15
1001France2025-04-28
1002Germany2025-04-24
1003Italy2025-04-08
1004Russia2025-04-28
1005Spain2025-04-06
1006Argentina2025-04-26
1007Japan2025-04-05
1008Canada2025-04-24
1009Spain2025-04-28
1010Australia2025-04-12
1011Australia2025-04-13
1012India2025-04-24
1013Argentina2025-04-15
1014United Kingdom2025-04-30
1015Australia2025-05-02
1016Italy2025-04-10
1017France2025-04-12
1018France2025-04-22
1019Japan2025-04-10
1020Italy2025-04-06
1021Russia2025-04-28
1022Spain2025-04-07
1023Russia2025-04-09
1024Japan2025-04-30
1025Italy2025-04-09
1026Australia2025-04-16
1027Canada2025-04-30
1028Russia2025-04-04
1029United Kingdom2025-04-10
1030Spain2025-04-09
1031Argentina2025-04-22
1032Spain2025-04-14
1033Brazil2025-04-28
1034Russia2025-04-06
1035Germany2025-04-14
1036Japan2025-05-01
1037Germany2025-04-14
1038United Kingdom2025-04-11
1039Germany2025-04-21
1040Canada2025-04-22
1041Argentina2025-05-02
1042Italy2025-04-29
1043Australia2025-04-13
1044Brazil2025-04-22
1045Russia2025-04-08
1046France2025-04-04
1047Brazil2025-04-13
1048Brazil2025-04-08
1049Russia2025-04-03

On-Demand Data

NameIdCountryDate
Francesco J Albares1000India2025-04-07
Aditya L Tollner1001Australia2025-04-21
Sinclair U Saylors1002Spain2025-04-04
Darci B Briddick1003Japan2025-04-23
Tony G Stockham1004Canada2025-04-15
Jefferson A Foller1005Russia2025-04-21
Aditya J Sergi1006Canada2025-04-04
Murillo C Briddick1007Germany2025-05-02
Wickens U Gaucho1008Japan2025-04-22
Jennifer K Vocelka1009United Kingdom2025-04-14
Smith U Royster1010Japan2025-04-03
Jennifer S Inouye1011Australia2025-04-10
Clifford L Kusko1012Brazil2025-04-22
Mayumi L Perin1013Canada2025-04-14
Ashley R Stenseth1014Italy2025-04-08
Jones D Inouye1015Brazil2025-04-13
Juan M Bowley1016Argentina2025-04-23
Morrow T Slusarski1017Australia2025-04-14
Jennifer U Rim1018India2025-04-19
Adams A Kusko1019Japan2025-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones T CaldareraArgentinaAnna Fali NEGOTIATION
Mayumi H StensethUnited KingdomIvan Magalhaes RENEWAL
Octavia K PerinAustraliaElwin Sharvill RENEWAL
Ashley L GillianCanadaElwin Sharvill NEGOTIATION
Mayumi S MacleadIndiaXuxue Feng PROPOSAL
Murillo J CaudyRussiaElwin Sharvill UNQUALIFIED
David K RimRussiaBernardo Dominic QUALIFIED
Sinclair F OstroskyIndiaIvan Magalhaes PROPOSAL
Greenwood M MorascaAustraliaOnyama Limba NEGOTIATION
Mayumi W AlbaresSpainOnyama Limba RENEWAL
Kaitlin Q OstroskyIndiaBernardo Dominic RENEWAL
Darci Z StensethRussiaIvan Magalhaes PROPOSAL
Claire Y RimRussiaAnna Fali UNQUALIFIED
Isabel I AlbaresBrazilIoni Bowcher NEGOTIATION
Antonio I PoquetteUnited KingdomAmy Elsner PROPOSAL
Chavez O MaletFranceAnna Fali UNQUALIFIED
Antonio G MorascaFranceIoni Bowcher UNQUALIFIED
Leon R CampainGermanyXuxue Feng NEGOTIATION
Silvio U SchemmerSpainAmy Elsner UNQUALIFIED
Ashley Q RoysterJapanStephen Shaw RENEWAL
Leon F RutaArgentinaXuxue Feng NEGOTIATION
Ivar P BologniaCanadaXuxue Feng NEW
Cody Y AlbaresRussiaElwin Sharvill QUALIFIED
Jefferson X RutaItalyXuxue Feng NEW
Deepesh B RoysterFranceXuxue Feng NEGOTIATION
Deepesh R WhobreyAustraliaAnna Fali UNQUALIFIED
Aditya K MaletItalyOnyama Limba QUALIFIED
Aditya D PaprockiSpainOnyama Limba RENEWAL
Maisha P AlbaresCanadaStephen Shaw UNQUALIFIED
Munro T BologniaAustraliaElwin Sharvill RENEWAL
James B KuskoAustraliaAmy Elsner UNQUALIFIED
Deepesh A StensethJapanBernardo Dominic RENEWAL
Munro P PaprockiAustraliaOnyama Limba QUALIFIED
Darci Y WhobreyArgentinaElwin Sharvill PROPOSAL
Emily L BriddickJapanXuxue Feng QUALIFIED
Greenwood B CaudyUnited KingdomElwin Sharvill RENEWAL
Maria T StensethItalyAmy Elsner PROPOSAL
Murillo G KuskoArgentinaStephen Shaw PROPOSAL
Ashley E MaletItalyAnna Fali NEW
Aditya B SergiJapanXuxue 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>