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
Octavia N IturbideRussiaElwin Sharvill NEW
Darci L VocelkaGermanyOnyama Limba NEW
Sinclair W NickaSpainIvan Magalhaes QUALIFIED
Julie U FlosiIndiaStephen Shaw QUALIFIED
Deepesh V CampainIndiaAnna Fali NEGOTIATION
Nicolas N FlosiIndiaAmy Elsner RENEWAL
Francesco G NestleUnited KingdomAmy Elsner NEGOTIATION
Octavia G InouyeFranceStephen Shaw UNQUALIFIED
James E CaudySpainBernardo Dominic NEGOTIATION
Octavia B MacleadBrazilXuxue Feng PROPOSAL
Kaitlin R ButtCanadaIvan Magalhaes UNQUALIFIED
Greenwood D CampainAustraliaIvan Magalhaes PROPOSAL
Rodrigues Y MorascaRussiaAmy Elsner QUALIFIED
Julie L MaletCanadaAsiya Javayant UNQUALIFIED
Misaki J WhobreyArgentinaElwin Sharvill QUALIFIED
Jeanfrancois T DilliardArgentinaElwin Sharvill RENEWAL
Murillo X RoysterAustraliaBernardo Dominic UNQUALIFIED
Faith Q RoysterSpainElwin Sharvill QUALIFIED
Clifford T AmigonUnited KingdomStephen Shaw UNQUALIFIED
Jennifer P SchemmerUnited KingdomIvan Magalhaes RENEWAL
Faith E StensethGermanyIoni Bowcher QUALIFIED
Mayumi N GillianAustraliaAsiya Javayant RENEWAL
Ashley S WhobreyGermanyIvan Magalhaes RENEWAL
Jones M VenereIndiaIoni Bowcher NEGOTIATION
Cody U CampainItalyBernardo Dominic NEW
Francesco W RoysterCanadaStephen Shaw NEGOTIATION
Deepesh Y OldroydBrazilOnyama Limba PROPOSAL
Claire H ChuiSpainOnyama Limba NEW
Stacey D VocelkaJapanXuxue Feng QUALIFIED
Jones L WaycottSpainAmy Elsner UNQUALIFIED
Antonio X GlickArgentinaAmy Elsner PROPOSAL
Emily S IturbideSpainAnna Fali RENEWAL
Jones S FerenczRussiaAsiya Javayant UNQUALIFIED
Cody O BowleyRussiaElwin Sharvill NEW
Mayumi G NickaJapanOnyama Limba RENEWAL
Octavia A IturbideSpainAsiya Javayant RENEWAL
Tony C SaylorsFranceAmy Elsner RENEWAL
Ricardo B WaycottArgentinaAmy Elsner NEGOTIATION
Leja B BologniaCanadaOnyama Limba PROPOSAL
Misaki M BowleySpainAsiya Javayant QUALIFIED
Salvatore J FerenczBrazilElwin Sharvill RENEWAL
Ricardo N FollerArgentinaBernardo Dominic NEGOTIATION
Greenwood T WaycottIndiaAmy Elsner PROPOSAL
Leja O SchemmerJapanBernardo Dominic RENEWAL
Ivar W PaprockiItalyBernardo Dominic UNQUALIFIED
Kaitlin F GarufiIndiaIvan Magalhaes RENEWAL
Ashley Y IturbideUnited KingdomAsiya Javayant PROPOSAL
Isabel T OstroskyIndiaAsiya Javayant PROPOSAL
Deepesh M FollerAustraliaXuxue Feng QUALIFIED
Sinclair Y GlickRussiaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Adams Q PerinArgentinaStephen Shaw NEW
Jones E FlosiUnited KingdomIvan Magalhaes NEGOTIATION
Deepesh R GlickBrazilAmy Elsner QUALIFIED
Mujtaba G TollnerJapanOnyama Limba NEGOTIATION
Sinclair R CampainRussiaIvan Magalhaes QUALIFIED
Cody Y StockhamCanadaOnyama Limba UNQUALIFIED
Murillo O FerenczUnited KingdomXuxue Feng PROPOSAL
Faith Y IturbideCanadaAnna Fali RENEWAL
Smith B FigeroaUnited KingdomBernardo Dominic UNQUALIFIED
Claire W PerinSpainIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan T AlbaresFrance2025-05-12King, Christopher A Esq PROPOSAL68Ivan Magalhaes
1001Izzy J ButtSpain2025-04-30Commercial Press NEGOTIATION72Stephen Shaw
1002Aruna Y SchemmerFrance2025-05-09Rousseaux, Michael Esq PROPOSAL30Ivan Magalhaes
1003Salvatore G StockhamBrazil2025-05-02Feiner Bros PROPOSAL51Anna Fali
1004Leja S AlbaresJapan2025-04-30Chemel, James L Cpa PROPOSAL21Onyama Limba
1005Juan H WieserGermany2025-05-06Dorl, James J Esq NEW31Ivan Magalhaes
1006Stacey Z RulapaughFrance2025-05-05Chapman, Ross E Esq QUALIFIED24Ivan Magalhaes
1007Ricardo P PoquetteFrance2025-05-06Feiner Bros UNQUALIFIED53Bernardo Dominic
1008Jennifer Y RoysterAustralia2025-05-12Rousseaux, Michael Esq UNQUALIFIED44Bernardo Dominic
1009Alejandro R BowleySpain2025-04-25Feltz Printing Service NEW96Xuxue Feng
1010Jefferson W MorascaJapan2025-04-28Printing Dimensions NEGOTIATION45Xuxue Feng
1011Cody M FerenczUnited Kingdom2025-05-08Commercial Press PROPOSAL47Xuxue Feng
1012Faith H FerenczSpain2025-05-13Buckley Miller Wright NEGOTIATION84Anna Fali
1013Faith T VocelkaUnited Kingdom2025-05-03Buckley Miller Wright QUALIFIED9Stephen Shaw
1014Greenwood T RimRussia2025-04-21Buckley Miller Wright QUALIFIED52Asiya Javayant
1015Kadeem D VocelkaBrazil2025-04-18Feiner Bros PROPOSAL67Asiya Javayant
1016Misaki F GillianArgentina2025-04-21Benton, John B Jr UNQUALIFIED19Bernardo Dominic
1017Emily K RoysterSpain2025-04-20Chemel, James L Cpa UNQUALIFIED28Ioni Bowcher
1018Smith N FlosiAustralia2025-05-01Chapman, Ross E Esq RENEWAL39Anna Fali
1019Wickens Y MorascaIndia2025-04-18Feltz Printing Service RENEWAL14Asiya Javayant
1020Cody Y GauchoUnited Kingdom2025-04-20Rangoni Of Florence NEGOTIATION60Stephen Shaw
1021Ricardo T TollnerBrazil2025-05-04King, Christopher A Esq UNQUALIFIED15Anna Fali
1022Deepesh U RutaGermany2025-04-14Dorl, James J Esq QUALIFIED57Onyama Limba
1023Mayumi S TollnerRussia2025-04-27Rangoni Of Florence UNQUALIFIED63Ivan Magalhaes
1024Sinclair W DarakjyFrance2025-04-23Chemel, James L Cpa NEGOTIATION86Bernardo Dominic
1025Leja R BowleyUnited Kingdom2025-05-10Chanay, Jeffrey A Esq RENEWAL51Ivan Magalhaes
1026Faith F KolmetzIndia2025-04-17Chapman, Ross E Esq PROPOSAL42Ioni Bowcher
1027Morrow H SergiJapan2025-05-05Chanay, Jeffrey A Esq QUALIFIED54Elwin Sharvill
1028Jeanfrancois E KolmetzGermany2025-05-11Chanay, Jeffrey A Esq NEGOTIATION74Stephen Shaw
1029Faith I ShinkoFrance2025-04-27Rousseaux, Michael Esq NEW48Ivan Magalhaes
1030Julie O SaylorsItaly2025-04-18Feltz Printing Service QUALIFIED40Bernardo Dominic
1031Misaki F RimCanada2025-05-02Rangoni Of Florence NEGOTIATION70Anna Fali
1032Alejandro S OldroydUnited Kingdom2025-05-02King, Christopher A Esq QUALIFIED70Anna Fali
1033Nicolas C GauchoSpain2025-04-14King, Christopher A Esq QUALIFIED21Xuxue Feng
1034Munro X MaletArgentina2025-04-24Printing Dimensions RENEWAL77Stephen Shaw
1035Antonio Y ButtGermany2025-05-10Feltz Printing Service QUALIFIED38Amy Elsner
1036Emily W AmigonArgentina2025-05-10Rangoni Of Florence NEGOTIATION73Amy Elsner
1037Misaki S MacleadBrazil2025-05-13King, Christopher A Esq RENEWAL52Anna Fali
1038Leja I BriddickAustralia2025-04-22King, Christopher A Esq PROPOSAL34Elwin Sharvill
1039Greenwood W AmigonAustralia2025-04-26Benton, John B Jr NEGOTIATION92Asiya Javayant
1040Costa N DoeCanada2025-05-12Chapman, Ross E Esq NEGOTIATION4Ivan Magalhaes
1041Mujtaba N OldroydCanada2025-05-05Truhlar And Truhlar Attys RENEWAL86Anna Fali
1042Claire M NickaSpain2025-04-14Chapman, Ross E Esq PROPOSAL90Onyama Limba
1043David G KolmetzGermany2025-05-08Truhlar And Truhlar Attys NEGOTIATION86Ioni Bowcher
1044Smith M GillianGermany2025-05-11Rousseaux, Michael Esq UNQUALIFIED22Ioni Bowcher
1045Johnson Q CaldareraJapan2025-04-18Benton, John B Jr NEGOTIATION7Stephen Shaw
1046Aika R RulapaughGermany2025-04-26Feiner Bros NEGOTIATION28Amy Elsner
1047Costa O RoysterRussia2025-04-25Chanay, Jeffrey A Esq RENEWAL87Stephen Shaw
1048Mujtaba L ChuiSpain2025-05-01Truhlar And Truhlar Attys RENEWAL25Bernardo Dominic
1049Smith U DilliardUnited Kingdom2025-04-20Morlong Associates PROPOSAL59Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Adams A RoysterIndiaElwin Sharvill UNQUALIFIED
Chavez T SergiIndiaXuxue Feng NEW
Ashley B StockhamRussiaXuxue Feng UNQUALIFIED
Silvio L FerenczGermanyIoni Bowcher UNQUALIFIED
David I CaldareraGermanyBernardo Dominic NEGOTIATION
Aditya D MaletItalyIvan Magalhaes QUALIFIED
Jones P KuskoUnited KingdomElwin Sharvill PROPOSAL
Salvatore B ChuiArgentinaAsiya Javayant UNQUALIFIED
Octavia L SergiGermanyBernardo Dominic PROPOSAL
Sinclair M SergiAustraliaIoni Bowcher UNQUALIFIED
Deepesh P WhobreyBrazilStephen Shaw QUALIFIED
Aditya B GillianIndiaIoni Bowcher UNQUALIFIED
Salvatore J DarakjyIndiaElwin Sharvill NEW
Tony L AmigonBrazilElwin Sharvill PROPOSAL
Morrow N StensethSpainBernardo Dominic NEGOTIATION
Jefferson J CaudyIndiaXuxue Feng RENEWAL
Maria U BowleyAustraliaAsiya Javayant NEW
Juan U NestleJapanElwin Sharvill UNQUALIFIED
Jones E AlbaresAustraliaBernardo Dominic RENEWAL
Aditya B AmigonIndiaAnna Fali UNQUALIFIED
Leon L MorascaItalyIvan Magalhaes NEGOTIATION
Silvio R DilliardArgentinaElwin Sharvill QUALIFIED
James G WieserRussiaAnna Fali UNQUALIFIED
Antonio J GlickAustraliaStephen Shaw NEGOTIATION
Julie H WaycottIndiaElwin Sharvill NEGOTIATION
Ricardo F DilliardItalyBernardo Dominic RENEWAL
Cody N TollnerArgentinaStephen Shaw NEW
Adams C GauchoCanadaElwin Sharvill PROPOSAL
Kadeem R IturbideJapanXuxue Feng NEW
Leon I FlosiArgentinaOnyama Limba UNQUALIFIED
Aruna B PoquetteArgentinaAmy Elsner NEGOTIATION
Stacey F OldroydIndiaAsiya Javayant UNQUALIFIED
Adams O WieserFranceElwin Sharvill PROPOSAL
Izzy L SlusarskiRussiaXuxue Feng UNQUALIFIED
Emily P ButtArgentinaBernardo Dominic RENEWAL
Jefferson Y RoysterItalyAsiya Javayant RENEWAL
Smith Y DarakjyCanadaIvan Magalhaes NEGOTIATION
Leja P GarufiAustraliaElwin Sharvill QUALIFIED
Francesco U ShinkoItalyAmy Elsner NEW
Rodrigues A GillianCanadaIoni Bowcher QUALIFIED
Antonio Z RoysterAustraliaBernardo Dominic NEGOTIATION
Aika I VocelkaFranceBernardo Dominic PROPOSAL
Kadeem B PaprockiSpainAsiya Javayant NEW
David J GarufiCanadaAsiya Javayant UNQUALIFIED
Leon L FigeroaAustraliaBernardo Dominic RENEWAL
Ashley I RutaCanadaBernardo Dominic PROPOSAL
Maria L RoysterSpainIvan Magalhaes NEW
Maisha A StensethItalyBernardo Dominic NEW
Aika M MaletItalyElwin Sharvill NEW
Nicolas C FollerJapanAnna Fali RENEWAL
Frozen Columns
Name
Jennifer Y Iturbide
Jeanfrancois T Wieser
Sinclair X Amigon
David S Chui
Aditya Z Dilliard
Misaki H Butt
Tony O Doe
Salvatore C Doe
Kaitlin N Ruta
Deepesh S Ruta
Jeanfrancois O Paprocki
Aruna V Morasca
David W Garufi
Wickens X Ostrosky
Ivar U Butt
Wickens M Oldroyd
Alejandro I Maclead
James S Bowley
Clifford W Bolognia
Julie H Rim
Isabel K Inouye
Wickens W Paprocki
Rodrigues Q Bolognia
Munro C Flosi
Nicolas G Kusko
Aditya T Malet
Rodrigues Y Wieser
Maria C Royster
Aruna C Gillian
Aruna W Malet
Arvin C Flosi
Ricardo B Gillian
Faith G Gillian
Darci T Stockham
Leja A Malet
Emily F Stenseth
Ricardo Q Bowley
Julie A Briddick
Jefferson D Figeroa
Aditya P Dilliard
Tony A Amigon
Munro Z Malet
Cody Z Rim
Juan W Malet
Aditya V Venere
Aruna F Bolognia
James K Stenseth
Cody I Butt
Izzy R Caldarera
Johnson Z Albares
IdCountryDate
1000India2025-05-06
1001Canada2025-05-02
1002India2025-04-14
1003Russia2025-05-05
1004United Kingdom2025-05-01
1005Australia2025-05-08
1006Canada2025-04-24
1007Canada2025-05-09
1008United Kingdom2025-05-03
1009Italy2025-04-29
1010Germany2025-04-26
1011Australia2025-05-07
1012Spain2025-05-03
1013France2025-04-22
1014Japan2025-05-12
1015Argentina2025-05-06
1016Brazil2025-05-11
1017Russia2025-05-02
1018Germany2025-04-30
1019Australia2025-04-18
1020Argentina2025-05-10
1021Russia2025-04-14
1022Brazil2025-04-21
1023Canada2025-05-13
1024Japan2025-04-20
1025Brazil2025-04-14
1026Argentina2025-05-05
1027Russia2025-05-10
1028Spain2025-05-08
1029Canada2025-04-24
1030United Kingdom2025-05-13
1031India2025-05-07
1032Germany2025-05-07
1033Argentina2025-05-10
1034Spain2025-05-02
1035France2025-05-10
1036India2025-04-16
1037Australia2025-04-28
1038Brazil2025-04-30
1039France2025-04-27
1040Italy2025-05-13
1041Australia2025-05-05
1042Australia2025-05-11
1043Italy2025-04-18
1044Italy2025-04-26
1045Germany2025-05-07
1046United Kingdom2025-05-05
1047Japan2025-05-01
1048United Kingdom2025-04-20
1049Germany2025-05-07

On-Demand Data

NameIdCountryDate
Mujtaba G Tollner1000Russia2025-04-30
Francesco I Dilliard1001France2025-05-08
Cody Q Gillian1002Canada2025-04-22
Ivar Q Iturbide1003United Kingdom2025-04-27
Mujtaba P Schemmer1004United Kingdom2025-05-12
Costa C Ruta1005France2025-04-29
Ashley A Marrier1006Canada2025-04-28
Darci E Amigon1007Italy2025-05-02
Juan Y Tollner1008Australia2025-05-11
Maisha D Venere1009India2025-05-08
Emily P Foller1010Brazil2025-04-29
Jeanfrancois B Stockham1011United Kingdom2025-05-13
Leja B Venere1012Germany2025-04-17
Juan V Paprocki1013Australia2025-04-14
Francesco Q Gaucho1014France2025-04-27
Misaki X Flosi1015United Kingdom2025-05-12
Julie U Stenseth1016Australia2025-05-02
Tony T Gillian1017Australia2025-04-20
Wickens R Bowley1018Italy2025-05-02
James K Briddick1019India2025-05-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio F GauchoRussiaBernardo Dominic RENEWAL
Jeanfrancois D GillianJapanOnyama Limba NEW
Wickens Z OstroskyArgentinaBernardo Dominic PROPOSAL
Salvatore Q OldroydBrazilElwin Sharvill NEW
Jeanfrancois I MarrierFranceStephen Shaw NEGOTIATION
Clifford T ButtIndiaAmy Elsner PROPOSAL
Misaki L FollerAustraliaIvan Magalhaes NEW
Jones I GauchoBrazilOnyama Limba QUALIFIED
Isabel R IturbideGermanyAsiya Javayant NEW
Maisha A GlickIndiaOnyama Limba NEW
Ricardo S RimIndiaAsiya Javayant PROPOSAL
Rodrigues I StockhamIndiaIoni Bowcher NEW
Johnson L PaprockiItalyIvan Magalhaes RENEWAL
Wickens T DoeArgentinaAsiya Javayant UNQUALIFIED
Isabel M MacleadCanadaElwin Sharvill QUALIFIED
Maria N GillianItalyAmy Elsner NEGOTIATION
James S OstroskyAustraliaOnyama Limba NEGOTIATION
Jennifer G MorascaBrazilAmy Elsner RENEWAL
Darci Y AmigonCanadaAmy Elsner RENEWAL
Aika Y RoysterAustraliaIoni Bowcher UNQUALIFIED
Faith R SlusarskiAustraliaIvan Magalhaes RENEWAL
Alejandro G FigeroaFranceIvan Magalhaes PROPOSAL
Tony F PoquetteBrazilOnyama Limba NEGOTIATION
Adams T DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
Juan J PaprockiCanadaBernardo Dominic UNQUALIFIED
Leon V RulapaughArgentinaAmy Elsner PROPOSAL
Wickens H MaletUnited KingdomOnyama Limba UNQUALIFIED
Cody H KuskoCanadaAsiya Javayant UNQUALIFIED
Emily A KuskoJapanOnyama Limba RENEWAL
Francesco M AlbaresIndiaIvan Magalhaes RENEWAL
Izzy M RulapaughAustraliaIoni Bowcher QUALIFIED
Jeanfrancois G NestleJapanStephen Shaw NEW
Kadeem P TollnerFranceAnna Fali NEGOTIATION
Morrow A GillianUnited KingdomStephen Shaw UNQUALIFIED
Johnson R SchemmerArgentinaAsiya Javayant QUALIFIED
Leja U FerenczAustraliaBernardo Dominic RENEWAL
Nicolas O NestleArgentinaOnyama Limba PROPOSAL
Salvatore H SergiItalyAmy Elsner NEW
Mujtaba D ButtCanadaAmy Elsner NEGOTIATION
Nicolas D SlusarskiItalyOnyama Limba 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>