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
Cody Q WaycottAustraliaAmy Elsner PROPOSAL
Jefferson L BologniaItalyAmy Elsner NEGOTIATION
Misaki A BologniaGermanyBernardo Dominic UNQUALIFIED
Ricardo J DoeFranceElwin Sharvill NEW
Sinclair V SlusarskiCanadaAnna Fali UNQUALIFIED
Aruna Q RoysterSpainIvan Magalhaes NEGOTIATION
Greenwood W BriddickIndiaElwin Sharvill NEGOTIATION
Wickens E PoquetteArgentinaAmy Elsner RENEWAL
Leja T CampainCanadaAmy Elsner NEW
Salvatore X GillianBrazilElwin Sharvill PROPOSAL
Munro Q FigeroaGermanyAnna Fali RENEWAL
Jennifer B InouyeJapanBernardo Dominic RENEWAL
James X FigeroaFranceOnyama Limba UNQUALIFIED
Isabel E DilliardArgentinaAsiya Javayant NEGOTIATION
Jennifer L OldroydItalyStephen Shaw UNQUALIFIED
Salvatore F FerenczIndiaStephen Shaw RENEWAL
Leon C MorascaAustraliaIoni Bowcher NEGOTIATION
Maria B InouyeBrazilStephen Shaw NEGOTIATION
Chavez W ButtIndiaBernardo Dominic PROPOSAL
Costa G FlosiSpainAsiya Javayant RENEWAL
Sinclair Y SergiRussiaAsiya Javayant PROPOSAL
Jennifer K DarakjyJapanBernardo Dominic NEW
Johnson G StockhamJapanOnyama Limba QUALIFIED
Munro X BowleyGermanyStephen Shaw PROPOSAL
Stacey T MaletItalyOnyama Limba RENEWAL
Mayumi O KolmetzArgentinaElwin Sharvill NEGOTIATION
Maria D NickaAustraliaIvan Magalhaes NEGOTIATION
Faith W AlbaresJapanStephen Shaw UNQUALIFIED
Morrow C DoeCanadaBernardo Dominic QUALIFIED
Aruna Y FlosiBrazilAsiya Javayant UNQUALIFIED
Jones F MacleadAustraliaStephen Shaw RENEWAL
Johnson X ChuiAustraliaBernardo Dominic NEGOTIATION
Faith U FerenczUnited KingdomAmy Elsner UNQUALIFIED
Ashley H BriddickItalyElwin Sharvill NEW
Rodrigues A RimRussiaXuxue Feng PROPOSAL
Arvin L GillianRussiaBernardo Dominic NEW
Nicolas R BologniaCanadaStephen Shaw NEGOTIATION
Sinclair N ChuiJapanIvan Magalhaes NEGOTIATION
Silvio E PerinUnited KingdomAmy Elsner UNQUALIFIED
Ivar P ShinkoArgentinaIvan Magalhaes PROPOSAL
James B BowleyIndiaXuxue Feng NEGOTIATION
Arvin I KolmetzRussiaIvan Magalhaes NEGOTIATION
Julie S FerenczItalyOnyama Limba QUALIFIED
Antonio Q MorascaArgentinaOnyama Limba PROPOSAL
Alejandro J DarakjyAustraliaAmy Elsner NEGOTIATION
Isabel I IturbideFranceIoni Bowcher RENEWAL
Jones F PerinFranceIvan Magalhaes NEGOTIATION
Misaki Z GillianUnited KingdomXuxue Feng PROPOSAL
Leon R FerenczAustraliaIvan Magalhaes PROPOSAL
Johnson G FlosiItalyAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens Y WieserGermanyIvan Magalhaes PROPOSAL
Smith O DarakjyBrazilAnna Fali UNQUALIFIED
Mujtaba N OldroydIndiaElwin Sharvill UNQUALIFIED
Darci B AmigonBrazilBernardo Dominic RENEWAL
Silvio T WhobreyFranceAsiya Javayant RENEWAL
Nicolas E BowleyCanadaAnna Fali QUALIFIED
Sinclair M DoeFranceIoni Bowcher RENEWAL
Claire Z BowleyIndiaStephen Shaw RENEWAL
Chavez X ChuiCanadaOnyama Limba RENEWAL
Octavia G KolmetzItalyElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson I GillianBrazil2026-07-12Benton, John B Jr NEGOTIATION34Anna Fali
1001Faith I DilliardJapan2026-06-19Commercial Press NEGOTIATION88Bernardo Dominic
1002Jeanfrancois I NestleUnited Kingdom2026-07-15Chanay, Jeffrey A Esq NEGOTIATION61Xuxue Feng
1003Costa S CaudyUnited Kingdom2026-06-21Dorl, James J Esq PROPOSAL86Anna Fali
1004Faith U PerinFrance2026-07-03Commercial Press UNQUALIFIED96Asiya Javayant
1005Mayumi E GillianArgentina2026-06-18Chapman, Ross E Esq PROPOSAL66Ioni Bowcher
1006Isabel R ShinkoArgentina2026-07-15Feiner Bros RENEWAL95Stephen Shaw
1007Izzy P WieserAustralia2026-06-22Chanay, Jeffrey A Esq UNQUALIFIED75Asiya Javayant
1008Jefferson G VenereJapan2026-07-04Chapman, Ross E Esq PROPOSAL36Onyama Limba
1009Leon F MorascaArgentina2026-07-15Chapman, Ross E Esq PROPOSAL65Asiya Javayant
1010Mayumi Q DilliardAustralia2026-06-18Commercial Press RENEWAL4Onyama Limba
1011Morrow S KolmetzItaly2026-06-24Chanay, Jeffrey A Esq RENEWAL36Ivan Magalhaes
1012Jones I GarufiAustralia2026-07-03Morlong Associates QUALIFIED26Onyama Limba
1013Ashley K RoysterCanada2026-06-21Chapman, Ross E Esq NEGOTIATION91Elwin Sharvill
1014Alejandro H MaletJapan2026-06-26Rousseaux, Michael Esq UNQUALIFIED41Elwin Sharvill
1015Maria H DilliardArgentina2026-07-07King, Christopher A Esq UNQUALIFIED31Stephen Shaw
1016Ashley Q KolmetzIndia2026-06-19Rousseaux, Michael Esq PROPOSAL76Onyama Limba
1017Adams O DoeArgentina2026-07-15Buckley Miller Wright NEGOTIATION99Ivan Magalhaes
1018Aika Y FlosiRussia2026-07-01Rousseaux, Michael Esq PROPOSAL61Elwin Sharvill
1019Cody G MaletIndia2026-07-01Chanay, Jeffrey A Esq RENEWAL53Ivan Magalhaes
1020Smith K VenereJapan2026-07-14Rousseaux, Michael Esq NEW92Stephen Shaw
1021David Y SaylorsUnited Kingdom2026-06-22Morlong Associates UNQUALIFIED66Elwin Sharvill
1022Arvin B RutaRussia2026-07-15Chemel, James L Cpa NEGOTIATION63Ioni Bowcher
1023Kadeem R FollerCanada2026-07-11Feltz Printing Service NEW1Anna Fali
1024Maisha N MorascaCanada2026-06-25Feiner Bros NEW44Ivan Magalhaes
1025Silvio A SergiBrazil2026-06-21Truhlar And Truhlar Attys NEW7Ioni Bowcher
1026David O BologniaAustralia2026-07-01Commercial Press QUALIFIED44Ivan Magalhaes
1027James H StensethBrazil2026-07-08Commercial Press RENEWAL86Anna Fali
1028Leja N PaprockiSpain2026-06-28Rousseaux, Michael Esq NEGOTIATION30Ioni Bowcher
1029Greenwood J BriddickItaly2026-07-01King, Christopher A Esq RENEWAL89Onyama Limba
1030Darci Z ButtArgentina2026-07-16Rousseaux, Michael Esq QUALIFIED21Xuxue Feng
1031Francesco B GillianFrance2026-06-21Feiner Bros NEGOTIATION49Onyama Limba
1032Jennifer I OstroskyRussia2026-06-19Morlong Associates PROPOSAL95Bernardo Dominic
1033David C WieserIndia2026-06-22Printing Dimensions NEW79Elwin Sharvill
1034Jones G PaprockiRussia2026-06-27Chanay, Jeffrey A Esq PROPOSAL10Xuxue Feng
1035Darci Q MorascaIndia2026-06-28Chemel, James L Cpa RENEWAL50Anna Fali
1036Francesco Z SlusarskiJapan2026-07-03King, Christopher A Esq NEW15Anna Fali
1037Stacey I WieserIndia2026-07-04Chemel, James L Cpa UNQUALIFIED97Asiya Javayant
1038Maisha C VenereFrance2026-07-08Feltz Printing Service NEGOTIATION1Stephen Shaw
1039Adams Y StockhamItaly2026-07-01Morlong Associates PROPOSAL40Xuxue Feng
1040Ricardo S FlosiCanada2026-07-17Rangoni Of Florence RENEWAL96Onyama Limba
1041Wickens K NickaJapan2026-07-08King, Christopher A Esq RENEWAL50Stephen Shaw
1042Arvin G MorascaCanada2026-07-08Feltz Printing Service PROPOSAL47Xuxue Feng
1043Leja L WhobreyAustralia2026-06-19Feltz Printing Service NEW52Onyama Limba
1044Darci S NestleArgentina2026-06-22Benton, John B Jr PROPOSAL38Elwin Sharvill
1045Murillo D WaycottItaly2026-06-26Chanay, Jeffrey A Esq RENEWAL52Ioni Bowcher
1046Costa S NickaGermany2026-07-02Feltz Printing Service QUALIFIED2Ioni Bowcher
1047Faith J FigeroaBrazil2026-06-21Rangoni Of Florence UNQUALIFIED41Stephen Shaw
1048Izzy R SaylorsIndia2026-07-15Truhlar And Truhlar Attys NEW49Ivan Magalhaes
1049David N MorascaGermany2026-07-14Rangoni Of Florence QUALIFIED20Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Faith Y BriddickCanadaStephen Shaw NEW
Chavez Z FigeroaRussiaXuxue Feng UNQUALIFIED
Murillo Q InouyeUnited KingdomIoni Bowcher PROPOSAL
Alejandro J OstroskyAustraliaXuxue Feng UNQUALIFIED
Smith B SergiJapanStephen Shaw NEGOTIATION
Smith J MorascaIndiaAsiya Javayant RENEWAL
Murillo Y MacleadRussiaAmy Elsner RENEWAL
Francesco Y GarufiUnited KingdomStephen Shaw QUALIFIED
Morrow L MorascaFranceElwin Sharvill NEGOTIATION
Stacey C OstroskyIndiaAnna Fali PROPOSAL
Jefferson L PaprockiGermanyOnyama Limba NEW
Aruna X SaylorsUnited KingdomElwin Sharvill PROPOSAL
Antonio V VocelkaBrazilStephen Shaw QUALIFIED
Izzy G PaprockiUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow N PoquetteIndiaIoni Bowcher RENEWAL
Jennifer N DilliardGermanyIvan Magalhaes NEGOTIATION
Juan G CaldareraBrazilIoni Bowcher UNQUALIFIED
Octavia S GarufiItalyElwin Sharvill NEW
James W FollerAustraliaAnna Fali RENEWAL
Rodrigues L SchemmerFranceXuxue Feng QUALIFIED
Nicolas Q CampainFranceAnna Fali RENEWAL
Octavia Z MacleadFranceBernardo Dominic RENEWAL
Costa C ChuiAustraliaBernardo Dominic QUALIFIED
Isabel F FigeroaArgentinaBernardo Dominic UNQUALIFIED
Cody J AmigonGermanyAsiya Javayant PROPOSAL
Murillo B CaldareraGermanyOnyama Limba NEW
Octavia W ButtItalyElwin Sharvill QUALIFIED
Ashley O NickaItalyIvan Magalhaes QUALIFIED
Kadeem A CaldareraGermanyAnna Fali NEGOTIATION
Aika E SergiUnited KingdomElwin Sharvill PROPOSAL
Kaitlin C SaylorsSpainBernardo Dominic NEGOTIATION
Munro W SlusarskiAustraliaOnyama Limba NEW
Nicolas R BriddickBrazilIoni Bowcher UNQUALIFIED
Deepesh B KuskoFranceElwin Sharvill NEGOTIATION
Arvin H SergiSpainIvan Magalhaes UNQUALIFIED
Mujtaba I MaletAustraliaBernardo Dominic QUALIFIED
Smith M ShinkoJapanIoni Bowcher PROPOSAL
Ricardo I MorascaItalyElwin Sharvill NEGOTIATION
Leon S GlickArgentinaXuxue Feng QUALIFIED
Deepesh E ChuiArgentinaAmy Elsner NEGOTIATION
Ivar L DoeSpainElwin Sharvill PROPOSAL
Maria K FollerJapanIoni Bowcher RENEWAL
Sinclair L FollerGermanyIoni Bowcher RENEWAL
Morrow X MacleadArgentinaStephen Shaw RENEWAL
Smith X AlbaresItalyStephen Shaw UNQUALIFIED
James U TollnerItalyAsiya Javayant UNQUALIFIED
Nicolas T TollnerAustraliaStephen Shaw NEW
Maria U RoysterIndiaElwin Sharvill UNQUALIFIED
Silvio Z FerenczRussiaAmy Elsner QUALIFIED
Nicolas T StensethJapanXuxue Feng PROPOSAL
Frozen Columns
Name
Leon M Doe
Juan W Marrier
Chavez M Bolognia
Kadeem F Perin
James C Maclead
Sinclair F Slusarski
Silvio U Sergi
Leon Y Oldroyd
Claire O Paprocki
Salvatore D Paprocki
Ashley Q Schemmer
Mayumi P Glick
Ricardo L Waycott
Aruna W Campain
Maria O Venere
Francesco A Flosi
Leon S Stenseth
Morrow Z Sergi
Leon H Waycott
Jones Z Inouye
Silvio B Sergi
Sinclair V Caudy
Greenwood O Malet
Leon T Rulapaugh
Nicolas X Albares
Munro A Marrier
Murillo S Inouye
Isabel I Royster
Ashley D Nestle
Sinclair D Darakjy
Maria S Tollner
Ashley W Glick
Jones M Maclead
Jeanfrancois M Butt
Octavia Z Albares
Greenwood E Ostrosky
Arvin Y Albares
Jefferson F Rulapaugh
Smith S Ruta
Morrow N Dilliard
Leon O Royster
Johnson G Bowley
Kadeem A Royster
Clifford B Darakjy
Kaitlin M Venere
Munro W Ferencz
Maria J Nestle
Salvatore W Gillian
Smith T Flosi
Clifford I Schemmer
IdCountryDate
1000Spain2026-06-19
1001India2026-06-24
1002Germany2026-07-15
1003Argentina2026-06-19
1004Germany2026-06-30
1005Argentina2026-07-10
1006France2026-06-25
1007Canada2026-07-10
1008India2026-07-17
1009India2026-06-26
1010Canada2026-07-05
1011Germany2026-07-09
1012Spain2026-06-23
1013France2026-06-25
1014Germany2026-07-03
1015Spain2026-06-27
1016Canada2026-07-06
1017Germany2026-06-29
1018Italy2026-07-04
1019Germany2026-06-28
1020Canada2026-07-14
1021Australia2026-06-27
1022Brazil2026-07-14
1023India2026-07-06
1024Spain2026-07-10
1025Argentina2026-06-24
1026Germany2026-07-04
1027Japan2026-06-29
1028Germany2026-06-18
1029Japan2026-06-20
1030United Kingdom2026-07-17
1031Russia2026-06-22
1032Australia2026-06-28
1033United Kingdom2026-06-18
1034Spain2026-07-05
1035Argentina2026-07-01
1036Spain2026-07-14
1037United Kingdom2026-07-07
1038Japan2026-07-15
1039Italy2026-06-20
1040Japan2026-06-29
1041France2026-07-05
1042United Kingdom2026-07-08
1043United Kingdom2026-06-24
1044India2026-07-05
1045Germany2026-07-03
1046Germany2026-07-01
1047France2026-06-25
1048Canada2026-07-05
1049Canada2026-06-24

On-Demand Data

NameIdCountryDate
Octavia B Poquette1000Russia2026-06-20
Arvin U Flosi1001Australia2026-07-12
Jennifer T Iturbide1002Australia2026-07-04
Arvin E Perin1003Spain2026-06-25
Jones W Morasca1004India2026-07-12
Wickens R Foller1005Italy2026-07-11
Arvin Q Stockham1006Spain2026-06-27
Munro H Inouye1007Canada2026-06-30
Munro U Butt1008Brazil2026-07-07
Wickens C Albares1009Brazil2026-07-07
Jeanfrancois D Royster1010United Kingdom2026-06-29
Morrow M Kolmetz1011Russia2026-06-22
Cody Z Figeroa1012Brazil2026-06-23
James P Oldroyd1013India2026-06-22
Maria Y Albares1014United Kingdom2026-07-03
Alejandro U Caudy1015Russia2026-07-02
Munro X Slusarski1016Australia2026-07-16
Juan X Bolognia1017Brazil2026-06-21
Claire M Garufi1018Argentina2026-06-21
Morrow K Amigon1019United Kingdom2026-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair M NestleRussiaIvan Magalhaes QUALIFIED
Kadeem Q CaldareraSpainAmy Elsner PROPOSAL
Greenwood S RoysterArgentinaAnna Fali NEW
Jones W GlickSpainElwin Sharvill RENEWAL
Jeanfrancois X DilliardRussiaAsiya Javayant QUALIFIED
Arvin Z RutaSpainOnyama Limba NEGOTIATION
Leon B MacleadCanadaIvan Magalhaes UNQUALIFIED
Leon B VocelkaUnited KingdomAmy Elsner RENEWAL
Nicolas V CampainArgentinaIvan Magalhaes QUALIFIED
Salvatore U BologniaRussiaXuxue Feng UNQUALIFIED
Salvatore Y MaletFranceElwin Sharvill PROPOSAL
Greenwood J BowleyFranceIvan Magalhaes QUALIFIED
Claire N OstroskyAustraliaAnna Fali UNQUALIFIED
Octavia D InouyeBrazilElwin Sharvill NEGOTIATION
Faith Q DilliardArgentinaIoni Bowcher PROPOSAL
Kaitlin Q ShinkoBrazilXuxue Feng PROPOSAL
Johnson P PoquetteFranceXuxue Feng QUALIFIED
Leon T SaylorsSpainXuxue Feng UNQUALIFIED
Ivar Z TollnerCanadaOnyama Limba UNQUALIFIED
Johnson I BowleySpainAsiya Javayant NEW
Antonio Q VocelkaAustraliaElwin Sharvill RENEWAL
Salvatore R FollerItalyAmy Elsner PROPOSAL
David P StockhamSpainElwin Sharvill UNQUALIFIED
Stacey S OldroydItalyXuxue Feng PROPOSAL
Aruna K PaprockiBrazilOnyama Limba RENEWAL
Aditya O AmigonFranceAnna Fali RENEWAL
Leon F IturbideFranceAnna Fali UNQUALIFIED
Johnson L InouyeFranceAsiya Javayant NEW
Isabel E BriddickRussiaXuxue Feng RENEWAL
Isabel S WieserAustraliaXuxue Feng PROPOSAL
Munro W StensethCanadaBernardo Dominic NEW
Stacey E PerinAustraliaIvan Magalhaes NEGOTIATION
Alejandro Y SlusarskiAustraliaAsiya Javayant QUALIFIED
Aika E IturbideSpainAsiya Javayant RENEWAL
Juan L StockhamGermanyStephen Shaw UNQUALIFIED
Aika Z RimAustraliaAnna Fali PROPOSAL
Wickens R FerenczRussiaXuxue Feng UNQUALIFIED
Misaki E RimBrazilBernardo Dominic RENEWAL
Salvatore X StensethItalyIvan Magalhaes UNQUALIFIED
Kaitlin Y DoeUnited KingdomAmy Elsner NEGOTIATION

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