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
Maria N BowleyBrazilElwin Sharvill QUALIFIED
Clifford W VenereRussiaXuxue Feng RENEWAL
Aditya F IturbideIndiaElwin Sharvill UNQUALIFIED
Kaitlin V BriddickBrazilAsiya Javayant NEGOTIATION
Darci I SaylorsIndiaIvan Magalhaes UNQUALIFIED
Faith D StensethAustraliaAmy Elsner NEW
Aditya Z FlosiJapanStephen Shaw NEGOTIATION
Smith D ButtArgentinaIvan Magalhaes PROPOSAL
James F StockhamGermanyAsiya Javayant NEGOTIATION
Ivar Y TollnerJapanIoni Bowcher RENEWAL
Aditya G IturbideBrazilOnyama Limba UNQUALIFIED
Tony M PerinFranceIoni Bowcher PROPOSAL
Smith K BowleyFranceStephen Shaw NEW
Tony X RimJapanAmy Elsner NEW
Misaki E KuskoCanadaOnyama Limba UNQUALIFIED
Jones G WieserJapanIoni Bowcher PROPOSAL
Darci E MacleadItalyIoni Bowcher NEGOTIATION
Clifford O SergiUnited KingdomIoni Bowcher QUALIFIED
Darci I BowleySpainIvan Magalhaes NEW
Salvatore H OstroskyCanadaIoni Bowcher RENEWAL
Jefferson G KuskoCanadaBernardo Dominic PROPOSAL
Adams G GauchoArgentinaAsiya Javayant NEGOTIATION
Jones F AmigonArgentinaStephen Shaw NEW
Costa K FlosiFranceElwin Sharvill RENEWAL
Misaki E PaprockiSpainOnyama Limba NEGOTIATION
Stacey V AmigonFranceBernardo Dominic NEW
Claire I WhobreyRussiaXuxue Feng NEW
Isabel N BowleySpainIvan Magalhaes RENEWAL
Juan Z SlusarskiArgentinaOnyama Limba NEGOTIATION
Izzy V TollnerIndiaAnna Fali UNQUALIFIED
Johnson X OldroydArgentinaAsiya Javayant UNQUALIFIED
Rodrigues A AlbaresBrazilBernardo Dominic QUALIFIED
Cody Z AlbaresArgentinaBernardo Dominic QUALIFIED
Francesco S MaletCanadaAmy Elsner RENEWAL
Antonio B WhobreyJapanIvan Magalhaes QUALIFIED
Claire S CaudyBrazilOnyama Limba NEW
Silvio L MaletBrazilOnyama Limba NEGOTIATION
Munro N CaudyUnited KingdomAnna Fali NEGOTIATION
Jefferson J SaylorsRussiaAsiya Javayant NEW
Aruna S GarufiUnited KingdomAnna Fali UNQUALIFIED
Mujtaba S MaletFranceAnna Fali UNQUALIFIED
Kaitlin X SergiAustraliaAmy Elsner NEGOTIATION
Salvatore Y MorascaUnited KingdomElwin Sharvill NEGOTIATION
Arvin H ShinkoUnited KingdomOnyama Limba NEW
David R NestleCanadaStephen Shaw PROPOSAL
Jefferson D VenereUnited KingdomAmy Elsner UNQUALIFIED
Johnson K CaudyBrazilBernardo Dominic NEGOTIATION
Munro C OstroskyJapanAnna Fali NEGOTIATION
Jennifer M CaldareraUnited KingdomStephen Shaw NEW
Nicolas X FigeroaFranceAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Alejandro O FigeroaUnited KingdomElwin Sharvill NEGOTIATION
Maria X MarrierItalyBernardo Dominic NEGOTIATION
Jeanfrancois T RutaRussiaXuxue Feng RENEWAL
Wickens J ChuiJapanOnyama Limba PROPOSAL
Jones E MarrierUnited KingdomAmy Elsner PROPOSAL
Izzy E InouyeUnited KingdomIvan Magalhaes QUALIFIED
Salvatore G SlusarskiAustraliaAnna Fali PROPOSAL
Claire P MarrierUnited KingdomAmy Elsner PROPOSAL
Wickens M OstroskyRussiaAnna Fali NEGOTIATION
Smith K RulapaughIndiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James U DoeAustralia2026-08-05King, Christopher A Esq QUALIFIED7Amy Elsner
1001Costa M DoeIndia2026-07-29Dorl, James J Esq RENEWAL52Elwin Sharvill
1002Costa O GillianUnited Kingdom2026-08-02Chapman, Ross E Esq NEGOTIATION58Xuxue Feng
1003Wickens Y StockhamSpain2026-07-23Chapman, Ross E Esq QUALIFIED88Onyama Limba
1004Nicolas Z CaudySpain2026-07-27Rangoni Of Florence NEGOTIATION6Amy Elsner
1005Jones I DoeAustralia2026-08-02King, Christopher A Esq UNQUALIFIED30Bernardo Dominic
1006Kadeem Q SlusarskiFrance2026-07-29Benton, John B Jr RENEWAL7Ioni Bowcher
1007Emily A GarufiAustralia2026-08-03Chemel, James L Cpa QUALIFIED90Elwin Sharvill
1008Juan P DilliardSpain2026-08-03Rangoni Of Florence RENEWAL38Ivan Magalhaes
1009Juan L FerenczGermany2026-08-15Rousseaux, Michael Esq NEGOTIATION65Anna Fali
1010Juan H RutaIndia2026-08-07Chapman, Ross E Esq QUALIFIED18Asiya Javayant
1011Wickens M DarakjyBrazil2026-07-30Buckley Miller Wright PROPOSAL7Ioni Bowcher
1012Johnson X FlosiJapan2026-07-28Chemel, James L Cpa QUALIFIED80Bernardo Dominic
1013Mujtaba F MorascaRussia2026-08-11Truhlar And Truhlar Attys PROPOSAL54Elwin Sharvill
1014Arvin G AlbaresArgentina2026-08-17Printing Dimensions RENEWAL37Amy Elsner
1015David Z MaletIndia2026-08-13Chemel, James L Cpa NEW28Bernardo Dominic
1016Antonio E SlusarskiIndia2026-07-26Buckley Miller Wright QUALIFIED67Anna Fali
1017Salvatore N NestleItaly2026-08-17Morlong Associates QUALIFIED19Ivan Magalhaes
1018Darci L SlusarskiJapan2026-08-10Chemel, James L Cpa NEW39Bernardo Dominic
1019Juan U RoysterGermany2026-08-06Dorl, James J Esq PROPOSAL48Anna Fali
1020Nicolas C MarrierBrazil2026-08-15King, Christopher A Esq NEW36Stephen Shaw
1021Mayumi N RoysterBrazil2026-08-08King, Christopher A Esq PROPOSAL62Onyama Limba
1022Aditya X GillianBrazil2026-08-09Rousseaux, Michael Esq RENEWAL22Xuxue Feng
1023Maisha C TollnerAustralia2026-08-09Chapman, Ross E Esq PROPOSAL73Ioni Bowcher
1024Greenwood L WaycottItaly2026-08-04Chemel, James L Cpa UNQUALIFIED31Onyama Limba
1025Leja L IturbideCanada2026-07-25Benton, John B Jr UNQUALIFIED48Onyama Limba
1026Cody T NestleBrazil2026-08-15King, Christopher A Esq NEW61Ivan Magalhaes
1027Wickens J GarufiAustralia2026-08-12King, Christopher A Esq NEW20Stephen Shaw
1028Tony P IturbideItaly2026-08-13King, Christopher A Esq PROPOSAL8Anna Fali
1029Costa M PoquetteBrazil2026-08-20Feiner Bros UNQUALIFIED29Onyama Limba
1030Jefferson N GillianSpain2026-08-03Truhlar And Truhlar Attys PROPOSAL32Amy Elsner
1031Adams H KuskoIndia2026-08-16Rousseaux, Michael Esq PROPOSAL72Ivan Magalhaes
1032Julie D BologniaSpain2026-08-18Feltz Printing Service QUALIFIED75Xuxue Feng
1033Octavia V RoysterArgentina2026-08-17Rangoni Of Florence UNQUALIFIED88Ioni Bowcher
1034Isabel R GillianSpain2026-08-10Dorl, James J Esq QUALIFIED74Anna Fali
1035Emily Z MaletSpain2026-08-20Chapman, Ross E Esq PROPOSAL52Asiya Javayant
1036Misaki G GillianIndia2026-08-04Chanay, Jeffrey A Esq QUALIFIED7Asiya Javayant
1037Tony S InouyeUnited Kingdom2026-08-21Morlong Associates PROPOSAL81Stephen Shaw
1038Wickens H DarakjyJapan2026-08-19Rangoni Of Florence PROPOSAL64Xuxue Feng
1039Aditya H ChuiSpain2026-08-21Benton, John B Jr RENEWAL58Onyama Limba
1040Arvin Z GarufiUnited Kingdom2026-08-14Commercial Press NEW46Ivan Magalhaes
1041Leja S OstroskyCanada2026-08-18Chapman, Ross E Esq NEW31Bernardo Dominic
1042Ashley C RulapaughItaly2026-07-29Printing Dimensions QUALIFIED60Ivan Magalhaes
1043Stacey O TollnerJapan2026-08-13Rangoni Of Florence NEGOTIATION38Ioni Bowcher
1044Smith S WaycottJapan2026-08-06Feltz Printing Service NEW60Ivan Magalhaes
1045Izzy Z WieserIndia2026-08-03Buckley Miller Wright NEW25Ivan Magalhaes
1046Jennifer D RutaJapan2026-07-25Feiner Bros UNQUALIFIED50Anna Fali
1047Alejandro O CampainItaly2026-08-18King, Christopher A Esq PROPOSAL54Ivan Magalhaes
1048Jeanfrancois I NickaGermany2026-08-16Feiner Bros PROPOSAL94Stephen Shaw
1049Faith P DarakjyIndia2026-07-23Dorl, James J Esq RENEWAL79Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ricardo B BowleyBrazilAmy Elsner UNQUALIFIED
Aika L SaylorsIndiaAmy Elsner QUALIFIED
Jones U PoquetteCanadaIoni Bowcher UNQUALIFIED
Izzy W AmigonJapanAsiya Javayant NEW
Clifford Q DoeUnited KingdomIoni Bowcher RENEWAL
Morrow A PoquetteCanadaBernardo Dominic UNQUALIFIED
Julie D MacleadAustraliaOnyama Limba PROPOSAL
Smith V KuskoAustraliaStephen Shaw UNQUALIFIED
Francesco N GillianFranceAmy Elsner RENEWAL
Ivar Z OldroydGermanyBernardo Dominic NEGOTIATION
Jennifer D SlusarskiItalyBernardo Dominic QUALIFIED
Kaitlin N TollnerCanadaBernardo Dominic QUALIFIED
Silvio L MacleadGermanyAsiya Javayant NEW
Kaitlin B PaprockiSpainAnna Fali PROPOSAL
Francesco F WieserArgentinaIvan Magalhaes PROPOSAL
Nicolas Q GillianJapanIoni Bowcher NEGOTIATION
Deepesh X MorascaArgentinaBernardo Dominic UNQUALIFIED
Mayumi Z VenereUnited KingdomAmy Elsner NEGOTIATION
Darci Q BowleySpainAmy Elsner RENEWAL
Greenwood O PoquetteIndiaAmy Elsner NEGOTIATION
Kaitlin P StensethAustraliaAnna Fali UNQUALIFIED
Ivar Q GauchoIndiaStephen Shaw NEGOTIATION
Nicolas V RutaIndiaOnyama Limba NEGOTIATION
Tony U RimCanadaStephen Shaw RENEWAL
Kaitlin K MorascaFranceIoni Bowcher QUALIFIED
David E DarakjyAustraliaElwin Sharvill PROPOSAL
Stacey M FigeroaSpainIvan Magalhaes NEW
Cody G KuskoCanadaStephen Shaw NEW
Jones J FerenczItalyBernardo Dominic RENEWAL
Arvin U MorascaUnited KingdomXuxue Feng UNQUALIFIED
Jones W ChuiSpainElwin Sharvill QUALIFIED
Jones I VenereJapanAsiya Javayant UNQUALIFIED
Darci W StensethRussiaAmy Elsner NEW
Johnson X VocelkaJapanIoni Bowcher RENEWAL
Stacey X WieserGermanyIvan Magalhaes UNQUALIFIED
Munro O FerenczUnited KingdomXuxue Feng RENEWAL
Stacey Q GlickCanadaOnyama Limba UNQUALIFIED
Jennifer X BriddickAustraliaAsiya Javayant NEGOTIATION
Ivar N VocelkaUnited KingdomAmy Elsner NEW
Juan W StensethUnited KingdomIvan Magalhaes NEW
Jefferson M DoeRussiaStephen Shaw NEGOTIATION
Antonio Q NickaBrazilIvan Magalhaes NEGOTIATION
Sinclair D SlusarskiRussiaAsiya Javayant PROPOSAL
Silvio G GlickItalyBernardo Dominic QUALIFIED
Tony D FlosiGermanyXuxue Feng QUALIFIED
Isabel F RulapaughBrazilAmy Elsner RENEWAL
Misaki X BologniaCanadaIoni Bowcher NEW
Wickens Y FerenczCanadaOnyama Limba PROPOSAL
Aika V KuskoJapanXuxue Feng PROPOSAL
Maisha N WieserAustraliaIvan Magalhaes PROPOSAL
Frozen Columns
Name
Kaitlin J Ostrosky
Darci R Nestle
Deepesh C Saylors
Faith Y Marrier
Tony Z Whobrey
Francesco D Maclead
Stacey H Glick
Juan Z Oldroyd
Alejandro U Venere
Faith D Maclead
Deepesh C Kusko
Isabel O Figeroa
Chavez F Wieser
Arvin X Rulapaugh
Mayumi A Gillian
Mayumi C Butt
Aruna X Slusarski
Leon I Doe
Ivar E Darakjy
Costa K Bolognia
Kaitlin U Doe
Costa H Bolognia
Aditya R Malet
Misaki H Rulapaugh
Mayumi M Venere
Darci O Darakjy
Wickens Y Waycott
Clifford F Foller
Mujtaba B Royster
Costa Z Foller
Ricardo W Caldarera
Greenwood Z Tollner
Sinclair B Nestle
Jeanfrancois F Schemmer
Emily S Royster
Aika D Marrier
Jones G Ruta
Clifford F Ferencz
Maria M Campain
Murillo Y Ruta
Aika G Morasca
Nicolas V Bowley
Ricardo F Oldroyd
Morrow Q Darakjy
Deepesh C Garufi
Aditya B Schemmer
Jones B Chui
Greenwood B Waycott
Jennifer K Gillian
Francesco U Tollner
IdCountryDate
1000Argentina2026-08-09
1001Spain2026-08-20
1002Australia2026-07-27
1003Russia2026-07-27
1004Brazil2026-07-25
1005Japan2026-08-16
1006United Kingdom2026-08-02
1007Germany2026-08-11
1008Italy2026-07-29
1009United Kingdom2026-08-17
1010France2026-08-21
1011Italy2026-08-13
1012Australia2026-07-26
1013United Kingdom2026-08-08
1014Russia2026-07-28
1015Spain2026-07-24
1016Japan2026-08-16
1017Australia2026-08-02
1018Argentina2026-07-29
1019Australia2026-08-01
1020United Kingdom2026-08-07
1021Argentina2026-08-12
1022India2026-08-10
1023Japan2026-07-25
1024India2026-08-10
1025Japan2026-08-03
1026Canada2026-08-17
1027Spain2026-07-26
1028Russia2026-07-27
1029Japan2026-08-10
1030Italy2026-08-05
1031India2026-08-09
1032Russia2026-08-12
1033Russia2026-08-12
1034Spain2026-07-24
1035Russia2026-08-05
1036United Kingdom2026-08-10
1037United Kingdom2026-07-25
1038United Kingdom2026-07-30
1039Russia2026-07-26
1040Spain2026-08-04
1041France2026-07-27
1042Australia2026-07-25
1043France2026-08-17
1044Germany2026-07-24
1045Spain2026-08-16
1046Germany2026-08-06
1047France2026-08-06
1048Russia2026-08-16
1049Argentina2026-08-04

On-Demand Data

NameIdCountryDate
Nicolas S Figeroa1000Japan2026-07-27
Julie A Rim1001Russia2026-08-17
Ivar O Albares1002Canada2026-08-14
Jeanfrancois W Shinko1003Canada2026-08-01
Emily M Doe1004Argentina2026-08-17
Morrow N Poquette1005Russia2026-08-21
Maria B Whobrey1006United Kingdom2026-08-06
Antonio P Ruta1007India2026-07-26
Adams X Flosi1008Australia2026-08-04
Jefferson G Ruta1009Italy2026-08-07
Jennifer V Foller1010United Kingdom2026-08-02
Clifford C Malet1011Russia2026-08-17
Adams D Venere1012Germany2026-08-03
Faith E Bolognia1013United Kingdom2026-08-05
Cody E Doe1014Japan2026-08-04
Tony Q Caldarera1015Italy2026-08-13
Arvin T Chui1016Italy2026-08-08
Adams Q Sergi1017France2026-08-10
Jefferson Y Iturbide1018Russia2026-07-25
Silvio Z Rulapaugh1019France2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood I PoquetteUnited KingdomElwin Sharvill QUALIFIED
Cody Q MorascaItalyElwin Sharvill NEW
Octavia E GlickFranceIvan Magalhaes QUALIFIED
Cody Y SlusarskiGermanyElwin Sharvill RENEWAL
Adams I InouyeCanadaIvan Magalhaes NEW
Kaitlin L RutaBrazilStephen Shaw UNQUALIFIED
Isabel N BowleyArgentinaStephen Shaw NEW
Greenwood O CaldareraCanadaAmy Elsner NEW
Costa A RutaRussiaXuxue Feng NEW
Costa S PerinUnited KingdomAsiya Javayant NEGOTIATION
Juan O MaletBrazilIoni Bowcher UNQUALIFIED
Antonio M MarrierAustraliaStephen Shaw PROPOSAL
Murillo I WhobreyGermanyIvan Magalhaes RENEWAL
Salvatore K FerenczAustraliaIvan Magalhaes UNQUALIFIED
James I DarakjyGermanyAnna Fali PROPOSAL
Ivar B AmigonIndiaAsiya Javayant NEGOTIATION
Juan F BologniaIndiaOnyama Limba UNQUALIFIED
Octavia G GauchoUnited KingdomStephen Shaw UNQUALIFIED
Aruna G GauchoRussiaAnna Fali UNQUALIFIED
Alejandro E NestleFranceStephen Shaw NEW
Clifford M PaprockiCanadaAmy Elsner PROPOSAL
Chavez K OldroydRussiaAnna Fali NEGOTIATION
Aruna U OldroydItalyAmy Elsner NEW
Jeanfrancois L RulapaughRussiaStephen Shaw NEGOTIATION
Julie P MarrierAustraliaElwin Sharvill QUALIFIED
Maisha J GlickJapanBernardo Dominic NEGOTIATION
Julie M VocelkaAustraliaBernardo Dominic NEGOTIATION
Leon W TollnerUnited KingdomAnna Fali RENEWAL
Maisha C SchemmerGermanyIoni Bowcher RENEWAL
Ashley X PerinJapanAnna Fali NEW
Darci O SaylorsFranceAmy Elsner NEGOTIATION
Izzy D GauchoSpainAnna Fali NEGOTIATION
Costa L ChuiArgentinaIoni Bowcher UNQUALIFIED
Claire Z BriddickAustraliaAsiya Javayant QUALIFIED
Antonio G RulapaughBrazilBernardo Dominic NEGOTIATION
Kadeem B GauchoBrazilBernardo Dominic UNQUALIFIED
Wickens O FigeroaBrazilXuxue Feng PROPOSAL
Darci E FigeroaItalyIoni Bowcher UNQUALIFIED
Deepesh T SlusarskiJapanIvan Magalhaes QUALIFIED
Rodrigues J RimUnited KingdomStephen Shaw PROPOSAL

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