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
Antonio W SaylorsFranceElwin Sharvill QUALIFIED
Munro E StensethCanadaAsiya Javayant PROPOSAL
Antonio S BologniaJapanStephen Shaw NEGOTIATION
Silvio E FollerSpainBernardo Dominic RENEWAL
Leon W RimGermanyAnna Fali UNQUALIFIED
Chavez D SlusarskiSpainOnyama Limba NEW
Mujtaba C ShinkoItalyOnyama Limba NEGOTIATION
Alejandro T FigeroaSpainIoni Bowcher UNQUALIFIED
Costa G GlickCanadaXuxue Feng NEW
Julie K GillianGermanyElwin Sharvill RENEWAL
Costa P KuskoUnited KingdomIoni Bowcher RENEWAL
Tony G DoeCanadaIvan Magalhaes NEW
Octavia J ButtJapanOnyama Limba NEW
Salvatore W RutaUnited KingdomIoni Bowcher QUALIFIED
Alejandro B FerenczRussiaIoni Bowcher PROPOSAL
Arvin G SaylorsItalyXuxue Feng PROPOSAL
David I BologniaBrazilAnna Fali RENEWAL
Mujtaba D DoeJapanElwin Sharvill PROPOSAL
Stacey Z StensethRussiaOnyama Limba RENEWAL
Leon X WieserSpainOnyama Limba PROPOSAL
Ashley C BologniaItalyStephen Shaw NEGOTIATION
Chavez Q ShinkoFranceAsiya Javayant NEW
Arvin L FlosiBrazilBernardo Dominic NEGOTIATION
Mujtaba B StensethRussiaAmy Elsner NEGOTIATION
Jeanfrancois T BriddickBrazilAsiya Javayant NEW
Arvin B GarufiCanadaXuxue Feng RENEWAL
Maria R InouyeUnited KingdomIvan Magalhaes NEGOTIATION
Francesco U ButtItalyAnna Fali NEGOTIATION
Silvio F GauchoSpainIvan Magalhaes RENEWAL
Alejandro J RulapaughBrazilAnna Fali QUALIFIED
Chavez Q RutaSpainBernardo Dominic RENEWAL
Adams C BriddickJapanAnna Fali RENEWAL
Antonio C DoeFranceBernardo Dominic UNQUALIFIED
Tony Z StockhamFranceAnna Fali PROPOSAL
Deepesh Q GillianItalyIoni Bowcher NEW
Jones F VenereAustraliaXuxue Feng RENEWAL
Julie N ButtItalyStephen Shaw UNQUALIFIED
Faith Q RulapaughArgentinaBernardo Dominic NEW
Maisha Y MarrierArgentinaAmy Elsner UNQUALIFIED
Silvio F SaylorsIndiaAnna Fali PROPOSAL
James R PoquetteJapanXuxue Feng NEW
James Y GarufiArgentinaBernardo Dominic RENEWAL
Kaitlin E PoquetteArgentinaBernardo Dominic NEW
Octavia H FerenczArgentinaElwin Sharvill NEW
Ricardo A GauchoItalyAmy Elsner UNQUALIFIED
Faith R BologniaCanadaOnyama Limba UNQUALIFIED
Clifford O VocelkaAustraliaIoni Bowcher PROPOSAL
Rodrigues U GarufiCanadaAmy Elsner NEW
Ivar C ChuiSpainElwin Sharvill NEW
Leon R OldroydIndiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Wickens A AlbaresCanadaAmy Elsner PROPOSAL
Kadeem R PoquetteRussiaAsiya Javayant NEW
David K AmigonAustraliaBernardo Dominic QUALIFIED
Leon J ShinkoGermanyOnyama Limba QUALIFIED
Deepesh V ChuiAustraliaStephen Shaw NEW
Adams R CaudyJapanOnyama Limba UNQUALIFIED
Julie R CampainGermanyIvan Magalhaes NEGOTIATION
Murillo T PerinAustraliaIvan Magalhaes RENEWAL
Wickens Z WieserCanadaAsiya Javayant PROPOSAL
Aruna I MacleadGermanyBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon N CaldareraAustralia2026-08-12Chemel, James L Cpa RENEWAL18Xuxue Feng
1001Leja C SlusarskiArgentina2026-08-22Rousseaux, Michael Esq NEGOTIATION53Stephen Shaw
1002Aika F PerinJapan2026-08-17Rangoni Of Florence RENEWAL62Asiya Javayant
1003Sinclair C MaletAustralia2026-08-09Feiner Bros UNQUALIFIED4Bernardo Dominic
1004Kaitlin M ShinkoBrazil2026-08-10Feiner Bros PROPOSAL24Amy Elsner
1005Aruna Z CampainArgentina2026-08-26Rousseaux, Michael Esq RENEWAL9Amy Elsner
1006David T CampainArgentina2026-08-03Morlong Associates RENEWAL17Anna Fali
1007Aika Y BowleyUnited Kingdom2026-08-30Feiner Bros QUALIFIED5Amy Elsner
1008Claire K FerenczBrazil2026-08-09Rousseaux, Michael Esq UNQUALIFIED77Asiya Javayant
1009Arvin G FollerUnited Kingdom2026-08-22Commercial Press NEGOTIATION78Anna Fali
1010Stacey N GillianArgentina2026-08-03Printing Dimensions NEW79Xuxue Feng
1011Adams R MacleadItaly2026-08-28Chemel, James L Cpa RENEWAL91Anna Fali
1012Jeanfrancois Q WieserGermany2026-08-13Commercial Press PROPOSAL86Bernardo Dominic
1013David B MorascaCanada2026-08-18King, Christopher A Esq RENEWAL73Amy Elsner
1014James L BriddickFrance2026-08-16Chemel, James L Cpa NEGOTIATION66Onyama Limba
1015Jones Y BologniaUnited Kingdom2026-08-12Rangoni Of Florence PROPOSAL16Stephen Shaw
1016Cody D DarakjyArgentina2026-08-28Chemel, James L Cpa UNQUALIFIED6Onyama Limba
1017Wickens Y GillianItaly2026-08-09Printing Dimensions NEW60Bernardo Dominic
1018Clifford E RutaSpain2026-08-16Dorl, James J Esq QUALIFIED95Anna Fali
1019Antonio H NestleJapan2026-08-16Feltz Printing Service UNQUALIFIED34Anna Fali
1020Faith G NestleRussia2026-08-06Feltz Printing Service UNQUALIFIED85Anna Fali
1021Greenwood T SlusarskiSpain2026-08-22Chemel, James L Cpa NEGOTIATION66Elwin Sharvill
1022Cody D GillianArgentina2026-08-27Chanay, Jeffrey A Esq PROPOSAL57Bernardo Dominic
1023Isabel A MarrierCanada2026-08-30Rousseaux, Michael Esq PROPOSAL8Stephen Shaw
1024Mujtaba A MorascaFrance2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED83Anna Fali
1025Claire K GillianIndia2026-08-08Rangoni Of Florence UNQUALIFIED17Xuxue Feng
1026Izzy Y RutaJapan2026-08-25Rangoni Of Florence UNQUALIFIED1Onyama Limba
1027Costa Z OldroydSpain2026-08-12Benton, John B Jr QUALIFIED47Bernardo Dominic
1028Faith Z BologniaArgentina2026-08-18Rousseaux, Michael Esq NEW50Onyama Limba
1029Kadeem H MacleadJapan2026-08-16Chapman, Ross E Esq NEW77Xuxue Feng
1030Leon H AlbaresUnited Kingdom2026-08-11Feiner Bros UNQUALIFIED48Asiya Javayant
1031Nicolas V VenereSpain2026-08-05King, Christopher A Esq QUALIFIED78Elwin Sharvill
1032Nicolas W KolmetzBrazil2026-08-06Feiner Bros RENEWAL93Ivan Magalhaes
1033Misaki I BowleyArgentina2026-08-22Rousseaux, Michael Esq UNQUALIFIED55Amy Elsner
1034Rodrigues U VocelkaIndia2026-08-18Rousseaux, Michael Esq QUALIFIED50Ioni Bowcher
1035Antonio H CaudySpain2026-08-31Printing Dimensions PROPOSAL59Xuxue Feng
1036Salvatore W RutaAustralia2026-08-05King, Christopher A Esq NEGOTIATION92Anna Fali
1037Aruna H NestleBrazil2026-08-03Morlong Associates NEGOTIATION26Stephen Shaw
1038Isabel P StensethJapan2026-08-03Rangoni Of Florence RENEWAL31Ivan Magalhaes
1039Stacey S BowleySpain2026-08-28Feiner Bros UNQUALIFIED57Ioni Bowcher
1040Isabel T TollnerGermany2026-08-23King, Christopher A Esq NEGOTIATION33Ivan Magalhaes
1041Wickens M AmigonArgentina2026-08-29Benton, John B Jr PROPOSAL8Asiya Javayant
1042Leon F SlusarskiAustralia2026-08-08King, Christopher A Esq PROPOSAL46Anna Fali
1043Aika H DarakjyFrance2026-08-16Printing Dimensions NEGOTIATION68Anna Fali
1044Juan D FigeroaRussia2026-08-17Commercial Press UNQUALIFIED77Xuxue Feng
1045Kaitlin O GillianGermany2026-08-31Chapman, Ross E Esq RENEWAL81Asiya Javayant
1046Deepesh Y GlickBrazil2026-08-18Feiner Bros UNQUALIFIED73Amy Elsner
1047Salvatore L MaletBrazil2026-08-13Benton, John B Jr NEW34Onyama Limba
1048Salvatore F BriddickGermany2026-08-13Benton, John B Jr NEW13Ioni Bowcher
1049Alejandro T WaycottBrazil2026-08-04Rousseaux, Michael Esq NEW59Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Leja D BowleyFranceIoni Bowcher NEW
Mayumi I GlickBrazilXuxue Feng NEW
Ivar E FigeroaAustraliaIoni Bowcher UNQUALIFIED
Jones V ButtItalyXuxue Feng PROPOSAL
Johnson I DilliardAustraliaAsiya Javayant NEW
Mayumi C SaylorsArgentinaXuxue Feng NEGOTIATION
Costa H GillianItalyXuxue Feng UNQUALIFIED
Costa U GlickItalyAsiya Javayant RENEWAL
Mayumi O RimSpainAmy Elsner NEGOTIATION
David O IturbideBrazilElwin Sharvill NEW
Jefferson I NestleItalyOnyama Limba NEGOTIATION
Claire M MarrierUnited KingdomAnna Fali PROPOSAL
Alejandro Q CampainUnited KingdomOnyama Limba RENEWAL
Kadeem H ShinkoBrazilElwin Sharvill NEGOTIATION
Wickens V StockhamRussiaAsiya Javayant RENEWAL
Costa C DilliardCanadaAsiya Javayant QUALIFIED
Leja B WieserGermanyAmy Elsner UNQUALIFIED
Rodrigues H ChuiAustraliaXuxue Feng PROPOSAL
Jefferson Y SlusarskiArgentinaStephen Shaw UNQUALIFIED
Alejandro A GlickJapanIoni Bowcher RENEWAL
Mayumi S RulapaughFranceBernardo Dominic QUALIFIED
Leja T IturbideSpainAsiya Javayant PROPOSAL
Francesco X SlusarskiJapanAmy Elsner NEW
Rodrigues O FigeroaBrazilAnna Fali NEW
Jennifer N RimArgentinaOnyama Limba NEW
Cody Z GauchoItalyStephen Shaw PROPOSAL
Darci F StensethItalyAnna Fali QUALIFIED
Greenwood Q WaycottJapanAnna Fali UNQUALIFIED
Kaitlin C KolmetzUnited KingdomAnna Fali PROPOSAL
Maria S CaldareraRussiaIoni Bowcher PROPOSAL
David H GillianCanadaIvan Magalhaes PROPOSAL
Maria L PerinRussiaBernardo Dominic NEW
Darci B StockhamGermanyBernardo Dominic NEGOTIATION
Nicolas Z RutaUnited KingdomAsiya Javayant QUALIFIED
Kadeem N KuskoBrazilElwin Sharvill RENEWAL
Aditya E FigeroaCanadaElwin Sharvill PROPOSAL
Octavia J NestleFranceAsiya Javayant QUALIFIED
Clifford S MacleadUnited KingdomXuxue Feng PROPOSAL
Sinclair I RutaItalyOnyama Limba PROPOSAL
Aika P RutaGermanyIoni Bowcher RENEWAL
Johnson J MacleadUnited KingdomAsiya Javayant NEGOTIATION
Murillo D NickaAustraliaBernardo Dominic QUALIFIED
Munro O OstroskyFranceXuxue Feng RENEWAL
Aruna Z PerinArgentinaXuxue Feng NEGOTIATION
Antonio I MaletIndiaBernardo Dominic PROPOSAL
Stacey I StockhamAustraliaIoni Bowcher NEW
Johnson V BowleyAustraliaXuxue Feng QUALIFIED
Cody I FerenczItalyAsiya Javayant NEGOTIATION
Antonio C DarakjyAustraliaXuxue Feng NEW
Julie Y ChuiJapanXuxue Feng QUALIFIED
Frozen Columns
Name
Murillo X Shinko
Deepesh A Whobrey
James Y Bowley
Cody V Flosi
Emily Y Gaucho
Darci I Venere
Jeanfrancois C Dilliard
Deepesh K Saylors
Mayumi E Marrier
Greenwood F Iturbide
Munro P Ferencz
Jones I Bolognia
Wickens E Kolmetz
Octavia D Butt
Chavez M Iturbide
Misaki E Malet
David W Caudy
Octavia Y Malet
Faith W Tollner
Ricardo C Waycott
Claire T Morasca
Sinclair K Figeroa
Leja K Gaucho
Tony N Kusko
Stacey U Ferencz
Maisha E Foller
Jefferson A Glick
Clifford K Albares
Julie G Venere
Murillo S Foller
Cody I Oldroyd
Mujtaba P Ruta
Izzy Z Darakjy
Chavez Y Saylors
Ashley Y Dilliard
Leon J Albares
Johnson E Gaucho
Leon I Shinko
Rodrigues A Chui
Maisha T Maclead
Jennifer U Bowley
Smith U Ostrosky
Silvio X Sergi
Costa Y Shinko
Ashley A Tollner
Cody A Gillian
Kaitlin I Campain
Chavez S Darakjy
Octavia H Saylors
Maria R Inouye
IdCountryDate
1000Germany2026-08-07
1001Russia2026-08-09
1002Brazil2026-08-18
1003Australia2026-08-13
1004United Kingdom2026-08-05
1005Spain2026-08-10
1006Spain2026-08-22
1007France2026-08-10
1008Australia2026-08-03
1009India2026-08-08
1010India2026-08-18
1011United Kingdom2026-08-09
1012Russia2026-08-19
1013Germany2026-08-23
1014United Kingdom2026-08-17
1015United Kingdom2026-08-15
1016Argentina2026-08-29
1017Australia2026-08-21
1018Italy2026-08-06
1019Argentina2026-08-02
1020Spain2026-08-22
1021Spain2026-08-04
1022Australia2026-08-05
1023Brazil2026-08-21
1024Japan2026-08-09
1025Canada2026-08-26
1026Argentina2026-08-14
1027Australia2026-08-02
1028Japan2026-08-11
1029Canada2026-08-28
1030India2026-08-14
1031Italy2026-08-22
1032France2026-08-07
1033Japan2026-08-16
1034Germany2026-08-28
1035Spain2026-08-21
1036Brazil2026-08-19
1037Germany2026-08-20
1038United Kingdom2026-08-12
1039France2026-08-23
1040India2026-08-25
1041India2026-08-30
1042India2026-08-21
1043Argentina2026-08-06
1044Russia2026-08-07
1045United Kingdom2026-08-26
1046Spain2026-08-20
1047Canada2026-08-05
1048Italy2026-08-27
1049United Kingdom2026-08-10

On-Demand Data

NameIdCountryDate
Costa M Glick1000Russia2026-08-15
Misaki F Gaucho1001Canada2026-08-23
Isabel L Wieser1002Germany2026-08-11
Emily I Morasca1003India2026-08-09
Deepesh D Caldarera1004Russia2026-08-26
Nicolas R Gillian1005Germany2026-08-19
Juan T Maclead1006France2026-08-24
Sinclair U Caudy1007Russia2026-08-18
Leon H Paprocki1008United Kingdom2026-08-22
Leon F Doe1009Argentina2026-08-26
Aditya R Dilliard1010Argentina2026-08-26
Smith X Ferencz1011Australia2026-08-25
Emily M Schemmer1012Italy2026-08-03
Francesco P Flosi1013France2026-08-22
Emily P Albares1014Spain2026-08-10
Juan J Schemmer1015Italy2026-08-18
Murillo N Waycott1016Australia2026-08-21
Claire A Malet1017Spain2026-08-08
Deepesh Z Waycott1018Japan2026-08-19
Nicolas W Rulapaugh1019Australia2026-08-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar V ChuiUnited KingdomIoni Bowcher NEW
Munro Z VocelkaCanadaAnna Fali RENEWAL
Kaitlin V InouyeItalyXuxue Feng NEGOTIATION
Leja C DarakjyBrazilIoni Bowcher RENEWAL
Antonio F KolmetzBrazilElwin Sharvill RENEWAL
Isabel K SergiGermanyStephen Shaw RENEWAL
Murillo J MacleadCanadaXuxue Feng QUALIFIED
Leon Y OldroydUnited KingdomIoni Bowcher PROPOSAL
Aika M ChuiIndiaStephen Shaw QUALIFIED
James L SaylorsGermanyAmy Elsner UNQUALIFIED
Emily Y SchemmerUnited KingdomXuxue Feng PROPOSAL
Aruna S SergiCanadaIvan Magalhaes NEGOTIATION
Smith P GauchoArgentinaIvan Magalhaes PROPOSAL
Munro K FerenczAustraliaBernardo Dominic QUALIFIED
Juan B DoeAustraliaOnyama Limba QUALIFIED
Kaitlin O CampainSpainBernardo Dominic UNQUALIFIED
Claire E FerenczItalyIoni Bowcher UNQUALIFIED
Jones F ChuiSpainIoni Bowcher RENEWAL
Wickens W RulapaughIndiaBernardo Dominic QUALIFIED
Sinclair T FlosiJapanXuxue Feng QUALIFIED
Greenwood Q ShinkoArgentinaXuxue Feng UNQUALIFIED
Smith U WieserUnited KingdomAsiya Javayant RENEWAL
Munro H WieserAustraliaAmy Elsner NEW
Faith X RoysterUnited KingdomAmy Elsner NEGOTIATION
Emily O OstroskyCanadaBernardo Dominic QUALIFIED
Octavia O GillianArgentinaAmy Elsner RENEWAL
Costa L VenereUnited KingdomBernardo Dominic UNQUALIFIED
Maria B InouyeFranceAsiya Javayant NEW
Aika I RulapaughIndiaStephen Shaw NEW
Ivar Q NestleSpainOnyama Limba PROPOSAL
Nicolas K ShinkoUnited KingdomOnyama Limba NEGOTIATION
Kaitlin A MaletSpainStephen Shaw PROPOSAL
Julie I WieserCanadaIoni Bowcher QUALIFIED
Munro U MarrierJapanBernardo Dominic UNQUALIFIED
Tony B SlusarskiBrazilStephen Shaw NEGOTIATION
Ashley I MarrierSpainIvan Magalhaes PROPOSAL
Leja Z BologniaSpainOnyama Limba RENEWAL
Greenwood B StockhamAustraliaOnyama Limba PROPOSAL
Emily P GillianGermanyOnyama Limba NEW
Kaitlin Z AmigonArgentinaAsiya Javayant 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>