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
Darci S AmigonAustraliaXuxue Feng QUALIFIED
Maisha Z FlosiUnited KingdomOnyama Limba NEW
Wickens Q MaletAustraliaAmy Elsner QUALIFIED
Izzy A FollerItalyElwin Sharvill NEW
Kaitlin O KolmetzUnited KingdomXuxue Feng NEGOTIATION
Isabel M MorascaIndiaAmy Elsner NEW
Ivar F WieserBrazilXuxue Feng QUALIFIED
Alejandro A BologniaCanadaIoni Bowcher NEGOTIATION
Juan C TollnerAustraliaStephen Shaw NEGOTIATION
Costa U PaprockiFranceOnyama Limba UNQUALIFIED
Jennifer V MaletGermanyAnna Fali NEW
Smith G CaudyGermanyXuxue Feng PROPOSAL
Jones C MacleadRussiaBernardo Dominic PROPOSAL
Alejandro S ButtIndiaStephen Shaw QUALIFIED
Jennifer X CampainSpainAnna Fali RENEWAL
Nicolas N DarakjyArgentinaBernardo Dominic QUALIFIED
Murillo C GlickIndiaIvan Magalhaes NEW
Aruna O WieserSpainIvan Magalhaes NEW
Isabel N BowleyUnited KingdomBernardo Dominic PROPOSAL
Ashley P KuskoAustraliaStephen Shaw NEW
Clifford D SlusarskiCanadaBernardo Dominic UNQUALIFIED
Ricardo T KuskoJapanAsiya Javayant NEW
Mujtaba G GauchoJapanAsiya Javayant NEGOTIATION
Darci T WieserUnited KingdomAmy Elsner UNQUALIFIED
Aditya X CaldareraAustraliaStephen Shaw NEW
Ivar D RoysterItalyOnyama Limba QUALIFIED
Antonio B FerenczArgentinaOnyama Limba QUALIFIED
Jennifer J PaprockiAustraliaBernardo Dominic NEGOTIATION
Ashley B RoysterFranceOnyama Limba NEW
James P RimAustraliaAmy Elsner QUALIFIED
Ashley C TollnerIndiaAsiya Javayant NEW
David W MaletFranceAnna Fali PROPOSAL
Izzy G OstroskyIndiaOnyama Limba UNQUALIFIED
Ivar R StockhamBrazilElwin Sharvill QUALIFIED
Morrow M BologniaSpainElwin Sharvill UNQUALIFIED
Smith K BowleyAustraliaOnyama Limba PROPOSAL
Francesco G FollerBrazilElwin Sharvill NEW
Murillo E NestleCanadaAsiya Javayant QUALIFIED
Johnson S MaletCanadaBernardo Dominic QUALIFIED
Octavia M OstroskyBrazilIoni Bowcher RENEWAL
Johnson F InouyeFranceIoni Bowcher QUALIFIED
Claire O GlickFranceStephen Shaw NEGOTIATION
Greenwood F WhobreySpainAnna Fali NEW
Cody A AmigonUnited KingdomElwin Sharvill PROPOSAL
Ricardo V PerinBrazilAnna Fali UNQUALIFIED
Tony D AmigonAustraliaElwin Sharvill RENEWAL
Costa J PaprockiItalyElwin Sharvill NEGOTIATION
Aruna L ChuiGermanyAsiya Javayant NEW
Darci J NickaSpainElwin Sharvill RENEWAL
Claire U GillianItalyIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aruna Z NestleSpainOnyama Limba NEGOTIATION
Kaitlin T CaudyItalyXuxue Feng QUALIFIED
David I StockhamCanadaBernardo Dominic QUALIFIED
Deepesh Z ChuiUnited KingdomAmy Elsner RENEWAL
Murillo X DoeUnited KingdomStephen Shaw PROPOSAL
Julie C RutaIndiaElwin Sharvill RENEWAL
Greenwood F StensethGermanyAnna Fali PROPOSAL
Morrow Z StockhamArgentinaIvan Magalhaes QUALIFIED
Morrow C GauchoAustraliaAsiya Javayant NEW
Mayumi J BologniaItalyIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa Q GauchoGermany2026-07-26Chanay, Jeffrey A Esq NEGOTIATION49Onyama Limba
1001Smith C PaprockiArgentina2026-07-31Rousseaux, Michael Esq UNQUALIFIED40Ioni Bowcher
1002Johnson A KuskoArgentina2026-08-02Rousseaux, Michael Esq QUALIFIED97Ioni Bowcher
1003Kadeem A ButtIndia2026-07-30Buckley Miller Wright QUALIFIED7Elwin Sharvill
1004Maisha E SlusarskiBrazil2026-08-14Chanay, Jeffrey A Esq NEGOTIATION12Stephen Shaw
1005Claire M SaylorsGermany2026-07-27Rousseaux, Michael Esq NEW71Ioni Bowcher
1006Deepesh R DarakjyFrance2026-08-13Chemel, James L Cpa PROPOSAL26Ivan Magalhaes
1007Emily A MaletSpain2026-08-10Benton, John B Jr NEGOTIATION96Ioni Bowcher
1008Nicolas C DilliardUnited Kingdom2026-08-01Feltz Printing Service QUALIFIED65Onyama Limba
1009Julie U SaylorsIndia2026-07-23Rousseaux, Michael Esq QUALIFIED96Elwin Sharvill
1010Salvatore V MorascaBrazil2026-08-15Chemel, James L Cpa NEGOTIATION13Ivan Magalhaes
1011Aruna J VocelkaIndia2026-08-01Feiner Bros NEW38Ioni Bowcher
1012Tony L PerinGermany2026-07-25Rangoni Of Florence QUALIFIED39Elwin Sharvill
1013Kaitlin W BowleyJapan2026-08-07King, Christopher A Esq NEGOTIATION42Amy Elsner
1014Antonio O FigeroaFrance2026-07-28Chemel, James L Cpa UNQUALIFIED51Asiya Javayant
1015James V ShinkoArgentina2026-08-09King, Christopher A Esq PROPOSAL71Xuxue Feng
1016Leon U WaycottJapan2026-07-23Chanay, Jeffrey A Esq QUALIFIED83Elwin Sharvill
1017Ivar U DilliardFrance2026-07-20Commercial Press RENEWAL27Elwin Sharvill
1018Jefferson Z BologniaIndia2026-07-30Morlong Associates QUALIFIED65Stephen Shaw
1019Maisha C DoeGermany2026-08-01Rangoni Of Florence NEGOTIATION55Elwin Sharvill
1020Antonio F BologniaAustralia2026-08-14Benton, John B Jr NEW51Xuxue Feng
1021Costa G BologniaFrance2026-08-01Commercial Press NEGOTIATION55Stephen Shaw
1022Tony S SergiBrazil2026-08-14Truhlar And Truhlar Attys UNQUALIFIED91Asiya Javayant
1023Cody B TollnerSpain2026-08-01Dorl, James J Esq PROPOSAL66Xuxue Feng
1024Faith K WhobreyAustralia2026-08-10Truhlar And Truhlar Attys PROPOSAL65Anna Fali
1025Munro R FerenczSpain2026-07-23Feiner Bros PROPOSAL42Onyama Limba
1026Maisha E OstroskyRussia2026-08-01Rangoni Of Florence UNQUALIFIED93Asiya Javayant
1027Julie G MarrierRussia2026-08-07Benton, John B Jr NEW83Elwin Sharvill
1028David R CampainIndia2026-08-16Benton, John B Jr UNQUALIFIED4Elwin Sharvill
1029Izzy Y PaprockiCanada2026-08-14King, Christopher A Esq QUALIFIED50Anna Fali
1030Kadeem K VocelkaItaly2026-08-11Feiner Bros QUALIFIED15Stephen Shaw
1031Sinclair V DilliardSpain2026-08-16Truhlar And Truhlar Attys NEW9Onyama Limba
1032Stacey V NestleUnited Kingdom2026-07-25Truhlar And Truhlar Attys NEW95Anna Fali
1033Ivar Z OldroydAustralia2026-08-05Truhlar And Truhlar Attys NEW43Ioni Bowcher
1034Ricardo U NickaFrance2026-08-05Chemel, James L Cpa NEGOTIATION71Xuxue Feng
1035Octavia O VocelkaSpain2026-08-04Feiner Bros RENEWAL0Anna Fali
1036Alejandro O PaprockiJapan2026-07-30Dorl, James J Esq PROPOSAL36Anna Fali
1037Jeanfrancois J CampainFrance2026-07-22Rousseaux, Michael Esq NEGOTIATION68Onyama Limba
1038Aditya R MacleadItaly2026-08-13Feiner Bros RENEWAL94Onyama Limba
1039Isabel S NickaItaly2026-07-24Chanay, Jeffrey A Esq PROPOSAL7Onyama Limba
1040Isabel W SchemmerCanada2026-08-16Morlong Associates NEW53Onyama Limba
1041Mujtaba R SlusarskiFrance2026-08-02Dorl, James J Esq NEW74Onyama Limba
1042Silvio W StockhamBrazil2026-08-07Chemel, James L Cpa NEGOTIATION61Elwin Sharvill
1043Jefferson C PerinUnited Kingdom2026-07-25Printing Dimensions NEW4Amy Elsner
1044Maria Y AlbaresSpain2026-08-07Dorl, James J Esq NEW15Onyama Limba
1045Izzy L FerenczAustralia2026-08-11Morlong Associates NEGOTIATION38Amy Elsner
1046Leon W ShinkoItaly2026-07-20Rousseaux, Michael Esq PROPOSAL47Xuxue Feng
1047Alejandro K FerenczIndia2026-07-19Feiner Bros RENEWAL30Xuxue Feng
1048Aditya F AlbaresCanada2026-08-15Printing Dimensions QUALIFIED49Stephen Shaw
1049David T ButtSpain2026-07-30Feiner Bros RENEWAL7Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maisha K VocelkaCanadaElwin Sharvill RENEWAL
Sinclair K GarufiIndiaAnna Fali NEW
Salvatore M FerenczRussiaIvan Magalhaes QUALIFIED
Maria C NickaArgentinaElwin Sharvill QUALIFIED
Smith Q ShinkoUnited KingdomXuxue Feng NEGOTIATION
Munro D PoquetteAustraliaStephen Shaw NEGOTIATION
Jennifer P WhobreyBrazilAmy Elsner QUALIFIED
Chavez Z DoeGermanyBernardo Dominic RENEWAL
Mayumi R PaprockiSpainStephen Shaw PROPOSAL
Francesco X FollerIndiaAsiya Javayant NEGOTIATION
Darci Q RimIndiaXuxue Feng NEW
Chavez X FollerCanadaAsiya Javayant UNQUALIFIED
Ivar V GillianAustraliaIoni Bowcher RENEWAL
Tony Y PaprockiItalyAnna Fali NEW
Ricardo M GillianItalyIoni Bowcher QUALIFIED
Julie I AmigonJapanAnna Fali NEW
Smith K NickaUnited KingdomIoni Bowcher NEGOTIATION
Cody J SlusarskiAustraliaIoni Bowcher RENEWAL
Aika W GarufiJapanBernardo Dominic QUALIFIED
Tony M DarakjyBrazilAsiya Javayant UNQUALIFIED
Ricardo F GlickJapanOnyama Limba QUALIFIED
Smith R FollerArgentinaOnyama Limba QUALIFIED
James D IturbideUnited KingdomBernardo Dominic PROPOSAL
Mayumi I StensethCanadaOnyama Limba UNQUALIFIED
Juan J GlickRussiaAmy Elsner RENEWAL
Chavez F MarrierArgentinaAsiya Javayant NEGOTIATION
Francesco S GauchoUnited KingdomAmy Elsner NEW
Clifford Q TollnerBrazilElwin Sharvill PROPOSAL
Greenwood G RulapaughCanadaElwin Sharvill NEW
Morrow X StockhamAustraliaXuxue Feng NEW
Jefferson S FlosiUnited KingdomAnna Fali PROPOSAL
Arvin C GillianGermanyElwin Sharvill RENEWAL
Ivar A AlbaresGermanyElwin Sharvill QUALIFIED
Aditya C GlickGermanyOnyama Limba NEW
Jones M PerinCanadaIoni Bowcher RENEWAL
Mayumi A WieserUnited KingdomXuxue Feng UNQUALIFIED
Alejandro D VocelkaJapanAnna Fali PROPOSAL
Deepesh Y OstroskyGermanyStephen Shaw NEGOTIATION
Aruna W RoysterGermanyIoni Bowcher NEW
Ashley B PerinAustraliaOnyama Limba QUALIFIED
Stacey Y PoquetteAustraliaStephen Shaw NEGOTIATION
Deepesh D CaudyGermanyElwin Sharvill UNQUALIFIED
Aika N CampainAustraliaIvan Magalhaes NEGOTIATION
Aika M CampainGermanyAsiya Javayant UNQUALIFIED
James P PerinItalyAmy Elsner PROPOSAL
Leon F MacleadSpainElwin Sharvill NEGOTIATION
Morrow F FlosiRussiaAsiya Javayant PROPOSAL
Munro H MaletArgentinaAsiya Javayant NEW
Tony K GauchoCanadaXuxue Feng RENEWAL
Leja U VocelkaCanadaXuxue Feng RENEWAL
Frozen Columns
Name
Ricardo K Bolognia
David U Ostrosky
Smith C Amigon
Octavia R Bowley
Ivar X Campain
Jones W Ruta
Misaki X Ruta
Jennifer Y Gillian
Kadeem S Nicka
Kaitlin N Inouye
Isabel L Malet
Arvin P Slusarski
Jones R Campain
Ashley M Rim
Izzy F Wieser
Leon E Bowley
Leja P Perin
Arvin R Campain
Johnson B Briddick
Jones X Shinko
Mujtaba T Campain
Wickens H Vocelka
Munro X Doe
Ricardo G Paprocki
Aruna P Sergi
Greenwood S Shinko
Silvio K Caldarera
Rodrigues J Waycott
Kadeem X Doe
Mayumi T Malet
Emily E Gaucho
Francesco K Nicka
Ivar B Campain
Silvio S Amigon
Octavia S Darakjy
Chavez F Nicka
Arvin C Wieser
Salvatore I Doe
Octavia X Bolognia
Jeanfrancois W Iturbide
Deepesh B Perin
Francesco G Rulapaugh
Morrow N Gaucho
Darci Z Ostrosky
Wickens A Oldroyd
Aditya G Shinko
Misaki B Caldarera
Rodrigues M Paprocki
Aika P Perin
Costa M Paprocki
IdCountryDate
1000Spain2026-08-13
1001Japan2026-07-22
1002Russia2026-08-03
1003France2026-07-28
1004Japan2026-07-27
1005Japan2026-08-05
1006India2026-08-10
1007France2026-07-25
1008France2026-07-28
1009Canada2026-08-09
1010Canada2026-08-06
1011United Kingdom2026-08-02
1012Argentina2026-08-16
1013Italy2026-07-19
1014Spain2026-08-11
1015Australia2026-07-24
1016France2026-07-26
1017Japan2026-08-09
1018Argentina2026-08-09
1019Argentina2026-07-28
1020Spain2026-08-06
1021Argentina2026-07-24
1022Italy2026-08-17
1023United Kingdom2026-07-25
1024Argentina2026-07-26
1025Germany2026-07-20
1026Argentina2026-07-27
1027Russia2026-08-02
1028Italy2026-08-16
1029Canada2026-07-31
1030Australia2026-08-09
1031Brazil2026-07-26
1032Spain2026-07-23
1033Japan2026-08-03
1034France2026-08-14
1035Australia2026-07-28
1036Spain2026-08-04
1037Spain2026-08-11
1038India2026-08-16
1039India2026-08-12
1040Spain2026-08-12
1041Australia2026-08-09
1042Italy2026-07-26
1043Spain2026-07-26
1044Japan2026-07-24
1045Spain2026-08-06
1046United Kingdom2026-08-13
1047Argentina2026-07-19
1048Canada2026-08-03
1049Spain2026-07-27

On-Demand Data

NameIdCountryDate
Aditya A Figeroa1000Spain2026-07-20
Greenwood Q Ferencz1001France2026-08-10
Deepesh W Kusko1002Spain2026-08-10
Ivar R Marrier1003Canada2026-08-11
Deepesh Q Garufi1004Argentina2026-08-17
Greenwood L Morasca1005Brazil2026-07-24
Stacey I Royster1006Russia2026-08-12
Octavia H Briddick1007Canada2026-07-31
Isabel C Royster1008Spain2026-08-04
Isabel Q Amigon1009Italy2026-07-30
Juan R Campain1010United Kingdom2026-07-24
Rodrigues L Briddick1011Argentina2026-08-03
Cody G Gaucho1012Japan2026-07-22
Arvin C Ferencz1013Brazil2026-08-16
Juan F Foller1014Italy2026-08-05
Silvio G Kolmetz1015Japan2026-08-06
Claire I Nicka1016France2026-08-12
Francesco Q Schemmer1017Russia2026-08-01
Ivar D Sergi1018Japan2026-07-23
Jones E Garufi1019Canada2026-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci W CampainJapanIvan Magalhaes RENEWAL
Alejandro F RutaIndiaIoni Bowcher NEGOTIATION
Claire T NestleBrazilElwin Sharvill RENEWAL
Chavez Y InouyeAustraliaIvan Magalhaes QUALIFIED
Ricardo V ChuiItalyOnyama Limba UNQUALIFIED
Claire G WhobreyIndiaAmy Elsner QUALIFIED
David O BriddickIndiaOnyama Limba NEW
Kadeem Q CampainBrazilAsiya Javayant NEW
Jeanfrancois P BologniaUnited KingdomAsiya Javayant NEW
Alejandro K GillianCanadaIoni Bowcher NEGOTIATION
Julie U BriddickItalyAmy Elsner NEGOTIATION
Kadeem G ButtRussiaElwin Sharvill RENEWAL
Alejandro U DarakjyGermanyElwin Sharvill RENEWAL
Kaitlin Q FerenczGermanyOnyama Limba NEGOTIATION
Chavez A PoquetteSpainXuxue Feng NEW
Misaki T NestleIndiaStephen Shaw PROPOSAL
Kaitlin F AmigonIndiaStephen Shaw NEGOTIATION
Jeanfrancois Y GillianIndiaOnyama Limba RENEWAL
Greenwood V WaycottSpainAnna Fali RENEWAL
Smith L SaylorsJapanStephen Shaw PROPOSAL
Mayumi X SaylorsIndiaStephen Shaw QUALIFIED
Silvio W FollerAustraliaOnyama Limba NEGOTIATION
Arvin W WhobreyBrazilElwin Sharvill UNQUALIFIED
Morrow O WaycottUnited KingdomBernardo Dominic UNQUALIFIED
Maisha I FlosiFranceAnna Fali NEGOTIATION
Mujtaba B RutaCanadaXuxue Feng RENEWAL
Silvio W DilliardUnited KingdomAsiya Javayant RENEWAL
Smith W MarrierUnited KingdomElwin Sharvill PROPOSAL
David D WaycottRussiaXuxue Feng UNQUALIFIED
Silvio F CaudyFranceIoni Bowcher NEGOTIATION
Nicolas H DilliardGermanyXuxue Feng NEW
Mujtaba H IturbideItalyIvan Magalhaes NEW
Rodrigues Z BriddickItalyAmy Elsner UNQUALIFIED
Deepesh H IturbideCanadaBernardo Dominic PROPOSAL
Adams E FlosiUnited KingdomIoni Bowcher RENEWAL
Rodrigues K RulapaughArgentinaElwin Sharvill UNQUALIFIED
Aika N SchemmerRussiaElwin Sharvill NEGOTIATION
Emily L DarakjyBrazilOnyama Limba QUALIFIED
Juan F SaylorsItalyXuxue Feng RENEWAL
Emily M DilliardItalyOnyama Limba 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>