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
James A FerenczGermanyIoni Bowcher UNQUALIFIED
Murillo J FollerGermanyIoni Bowcher RENEWAL
Maria J KuskoFranceOnyama Limba NEW
Aika V InouyeArgentinaXuxue Feng QUALIFIED
Arvin F RimJapanStephen Shaw QUALIFIED
Francesco Z SlusarskiSpainBernardo Dominic QUALIFIED
Juan I WhobreyArgentinaElwin Sharvill NEGOTIATION
Claire G KuskoAustraliaAmy Elsner QUALIFIED
Izzy U RimRussiaAsiya Javayant QUALIFIED
Murillo J OstroskyFranceAnna Fali UNQUALIFIED
Silvio Z NestleIndiaAmy Elsner PROPOSAL
Greenwood Q ButtItalyOnyama Limba NEGOTIATION
Misaki S MacleadItalyBernardo Dominic RENEWAL
Johnson X PerinIndiaIvan Magalhaes QUALIFIED
Darci F BowleyGermanyIvan Magalhaes RENEWAL
Juan J AmigonAustraliaBernardo Dominic NEGOTIATION
Leja O RutaItalyElwin Sharvill PROPOSAL
Greenwood N CaudyRussiaXuxue Feng NEGOTIATION
Stacey C OstroskyBrazilElwin Sharvill PROPOSAL
Silvio N SaylorsGermanyElwin Sharvill QUALIFIED
Ricardo Q GarufiJapanIoni Bowcher NEW
Leja C AlbaresCanadaBernardo Dominic NEW
Silvio E GillianBrazilAsiya Javayant NEW
Smith E KuskoIndiaAsiya Javayant NEGOTIATION
Emily W PaprockiCanadaAsiya Javayant RENEWAL
Alejandro U CaudyBrazilIvan Magalhaes NEW
Deepesh G CampainJapanAsiya Javayant NEW
Jones N FerenczBrazilAnna Fali UNQUALIFIED
Ashley F PaprockiArgentinaAnna Fali NEW
Emily T OstroskySpainElwin Sharvill NEW
Silvio Z BologniaArgentinaBernardo Dominic NEW
Mujtaba I PoquetteSpainElwin Sharvill NEGOTIATION
Izzy G GauchoItalyIoni Bowcher NEW
Isabel T DarakjyRussiaIvan Magalhaes QUALIFIED
Ricardo N VenereUnited KingdomAmy Elsner NEW
Arvin T RimArgentinaAsiya Javayant NEGOTIATION
Mujtaba C DilliardAustraliaBernardo Dominic QUALIFIED
Faith N ButtCanadaIoni Bowcher RENEWAL
Tony A GauchoBrazilAsiya Javayant NEW
Morrow Q BriddickSpainElwin Sharvill NEGOTIATION
Ricardo D KolmetzAustraliaAmy Elsner RENEWAL
Chavez X NickaAustraliaOnyama Limba NEW
Antonio C GillianIndiaAmy Elsner QUALIFIED
Maisha V VenereRussiaBernardo Dominic NEGOTIATION
Francesco X MorascaJapanStephen Shaw NEW
Aditya E AlbaresJapanStephen Shaw RENEWAL
Silvio J GarufiSpainAnna Fali NEW
Leja X ButtUnited KingdomIoni Bowcher PROPOSAL
Aruna D SlusarskiIndiaAsiya Javayant NEGOTIATION
Francesco E MaletSpainXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Silvio D SaylorsGermanyXuxue Feng PROPOSAL
Arvin R InouyeSpainAnna Fali UNQUALIFIED
Silvio E MaletUnited KingdomXuxue Feng RENEWAL
Darci A KuskoRussiaIvan Magalhaes QUALIFIED
Kadeem G NestleBrazilIoni Bowcher NEW
Claire A OldroydItalyOnyama Limba PROPOSAL
Jefferson N DarakjyBrazilBernardo Dominic UNQUALIFIED
Wickens F BriddickItalyOnyama Limba RENEWAL
Greenwood Z StensethBrazilIvan Magalhaes QUALIFIED
Octavia S AlbaresIndiaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem L SchemmerGermany2026-06-14Chapman, Ross E Esq PROPOSAL64Amy Elsner
1001Munro Z GlickSpain2026-06-07Commercial Press UNQUALIFIED95Stephen Shaw
1002Antonio U DilliardIndia2026-06-19Printing Dimensions NEW96Ioni Bowcher
1003James G FerenczAustralia2026-06-02Feiner Bros QUALIFIED20Amy Elsner
1004Kaitlin Q KuskoSpain2026-06-11Morlong Associates UNQUALIFIED83Xuxue Feng
1005Clifford Q GillianUnited Kingdom2026-06-21Dorl, James J Esq PROPOSAL91Asiya Javayant
1006Leja O VenereArgentina2026-06-23Rangoni Of Florence NEGOTIATION58Anna Fali
1007Ashley S PoquetteArgentina2026-06-06Printing Dimensions NEW79Anna Fali
1008Ricardo B BologniaCanada2026-06-02Chemel, James L Cpa UNQUALIFIED90Asiya Javayant
1009Claire W SlusarskiGermany2026-06-20Rangoni Of Florence NEW12Elwin Sharvill
1010Rodrigues P DoeJapan2026-06-07Dorl, James J Esq NEGOTIATION97Amy Elsner
1011Mayumi S AlbaresAustralia2026-06-17Feiner Bros NEGOTIATION12Onyama Limba
1012Francesco G DarakjyGermany2026-06-14Benton, John B Jr UNQUALIFIED91Onyama Limba
1013Juan Z KuskoAustralia2026-06-05Commercial Press NEGOTIATION24Bernardo Dominic
1014Clifford F ShinkoArgentina2026-07-01Feltz Printing Service NEW43Ivan Magalhaes
1015Leon V CampainFrance2026-06-22Chanay, Jeffrey A Esq NEGOTIATION54Stephen Shaw
1016Maisha O CampainArgentina2026-06-27Chanay, Jeffrey A Esq NEGOTIATION50Ivan Magalhaes
1017Costa V NickaUnited Kingdom2026-06-27Dorl, James J Esq NEGOTIATION35Anna Fali
1018Jennifer K RimFrance2026-06-24Truhlar And Truhlar Attys RENEWAL49Anna Fali
1019Julie Y RulapaughFrance2026-06-09King, Christopher A Esq QUALIFIED31Asiya Javayant
1020Rodrigues W SergiAustralia2026-06-28Buckley Miller Wright NEW76Amy Elsner
1021Silvio O CaldareraJapan2026-06-17Morlong Associates PROPOSAL9Anna Fali
1022Clifford P CaldareraJapan2026-06-13Benton, John B Jr RENEWAL45Ivan Magalhaes
1023Emily Q DoeUnited Kingdom2026-06-26Feltz Printing Service QUALIFIED33Ivan Magalhaes
1024Stacey I StockhamIndia2026-06-07Chanay, Jeffrey A Esq RENEWAL71Xuxue Feng
1025Juan G RulapaughUnited Kingdom2026-06-02Chapman, Ross E Esq PROPOSAL68Ivan Magalhaes
1026Alejandro H WhobreyFrance2026-06-30Chemel, James L Cpa PROPOSAL83Elwin Sharvill
1027Maria Y GillianIndia2026-06-11Rousseaux, Michael Esq NEW42Onyama Limba
1028Francesco E RulapaughSpain2026-06-09Morlong Associates PROPOSAL29Anna Fali
1029Francesco E ChuiItaly2026-06-29Rousseaux, Michael Esq QUALIFIED75Amy Elsner
1030Faith B RoysterSpain2026-06-15Commercial Press QUALIFIED58Anna Fali
1031Juan K GlickAustralia2026-06-29King, Christopher A Esq PROPOSAL36Anna Fali
1032Isabel A CaldareraFrance2026-06-09Benton, John B Jr NEW14Onyama Limba
1033Maria I KolmetzGermany2026-06-20Rousseaux, Michael Esq RENEWAL6Ioni Bowcher
1034Morrow Z InouyeArgentina2026-06-09Chanay, Jeffrey A Esq UNQUALIFIED2Stephen Shaw
1035Ivar H MorascaFrance2026-07-01Chapman, Ross E Esq UNQUALIFIED8Asiya Javayant
1036Alejandro A PaprockiSpain2026-06-02Chemel, James L Cpa PROPOSAL92Anna Fali
1037Wickens I ShinkoGermany2026-06-13Dorl, James J Esq NEGOTIATION28Asiya Javayant
1038Izzy Y DarakjyArgentina2026-06-14Dorl, James J Esq QUALIFIED67Bernardo Dominic
1039Stacey N OstroskyAustralia2026-06-22Chanay, Jeffrey A Esq RENEWAL27Amy Elsner
1040David U GlickUnited Kingdom2026-06-03Chanay, Jeffrey A Esq UNQUALIFIED17Xuxue Feng
1041Mayumi J PoquetteJapan2026-06-02Rousseaux, Michael Esq QUALIFIED57Asiya Javayant
1042Ashley H WhobreyJapan2026-06-15Commercial Press UNQUALIFIED51Stephen Shaw
1043Adams I ChuiIndia2026-06-26Benton, John B Jr QUALIFIED4Ivan Magalhaes
1044Johnson V OldroydRussia2026-06-28Feiner Bros NEGOTIATION78Amy Elsner
1045Isabel X BriddickRussia2026-06-02Chapman, Ross E Esq QUALIFIED86Ivan Magalhaes
1046Jones I GlickGermany2026-06-28Benton, John B Jr NEGOTIATION62Amy Elsner
1047Leja G WhobreyCanada2026-06-04Feiner Bros QUALIFIED36Elwin Sharvill
1048Silvio A PerinFrance2026-06-26Truhlar And Truhlar Attys QUALIFIED75Stephen Shaw
1049Wickens K AlbaresCanada2026-06-07Chapman, Ross E Esq QUALIFIED34Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Faith Z FollerItalyIvan Magalhaes RENEWAL
Jefferson K StockhamRussiaAmy Elsner RENEWAL
Costa I CampainAustraliaElwin Sharvill QUALIFIED
Arvin W FigeroaFranceAnna Fali RENEWAL
Johnson P KuskoAustraliaOnyama Limba NEW
Arvin B IturbideArgentinaStephen Shaw PROPOSAL
Jennifer N GauchoJapanBernardo Dominic UNQUALIFIED
Octavia Z SaylorsUnited KingdomXuxue Feng RENEWAL
Mayumi S StockhamUnited KingdomOnyama Limba QUALIFIED
Antonio S RutaArgentinaAsiya Javayant QUALIFIED
Wickens I KolmetzBrazilBernardo Dominic PROPOSAL
Munro K FlosiJapanOnyama Limba NEW
James A FlosiGermanyAsiya Javayant NEW
Jennifer A NickaFranceIvan Magalhaes QUALIFIED
Nicolas X OstroskyArgentinaAmy Elsner RENEWAL
Arvin C InouyeGermanyAnna Fali NEW
Ashley R NestleIndiaElwin Sharvill RENEWAL
Jennifer P ShinkoCanadaIvan Magalhaes QUALIFIED
Smith Y DilliardSpainIoni Bowcher UNQUALIFIED
Maria E GarufiIndiaStephen Shaw RENEWAL
Maisha G MaletIndiaAmy Elsner PROPOSAL
Darci Q ButtUnited KingdomOnyama Limba UNQUALIFIED
Clifford Z StockhamItalyBernardo Dominic NEW
Claire I SlusarskiGermanyIvan Magalhaes RENEWAL
Aruna Q StockhamRussiaAsiya Javayant PROPOSAL
Silvio S FigeroaGermanyAnna Fali UNQUALIFIED
Isabel E OstroskySpainIoni Bowcher QUALIFIED
Leja H FerenczCanadaAmy Elsner PROPOSAL
Costa Q BowleyCanadaAsiya Javayant QUALIFIED
Antonio C BriddickRussiaAmy Elsner PROPOSAL
Deepesh U DarakjySpainAnna Fali UNQUALIFIED
Maisha K CaudyGermanyOnyama Limba UNQUALIFIED
Tony C OstroskyJapanElwin Sharvill NEW
Adams M BologniaAustraliaXuxue Feng NEGOTIATION
David V DoeSpainAnna Fali UNQUALIFIED
Chavez F BowleyIndiaAnna Fali QUALIFIED
Tony W MaletRussiaXuxue Feng NEW
Sinclair D GlickJapanXuxue Feng RENEWAL
Cody S TollnerGermanyStephen Shaw QUALIFIED
Kadeem Q IturbideUnited KingdomIoni Bowcher QUALIFIED
Kadeem F MaletGermanyXuxue Feng RENEWAL
Mayumi G MorascaBrazilOnyama Limba QUALIFIED
Faith R DoeArgentinaStephen Shaw RENEWAL
Aika G AmigonIndiaStephen Shaw NEGOTIATION
Munro T SlusarskiIndiaIvan Magalhaes NEGOTIATION
Kadeem U BriddickAustraliaOnyama Limba RENEWAL
Jeanfrancois F IturbideGermanyIoni Bowcher PROPOSAL
Izzy G KuskoArgentinaIvan Magalhaes RENEWAL
Stacey I SlusarskiGermanyBernardo Dominic PROPOSAL
Leja U MaletGermanyXuxue Feng NEW
Frozen Columns
Name
Aditya R Figeroa
Arvin M Nestle
Ricardo A Vocelka
Juan I Maclead
Tony Y Iturbide
David E Waycott
Costa M Dilliard
Morrow Z Doe
Maria V Glick
Jennifer P Iturbide
Cody B Schemmer
Johnson D Caldarera
Nicolas Q Inouye
Murillo N Glick
Izzy Q Ruta
Ricardo R Kolmetz
Juan E Poquette
Faith C Gillian
Silvio P Glick
Kadeem T Briddick
Jones K Foller
Emily K Flosi
Munro V Malet
Jones H Ruta
Adams X Malet
Tony U Venere
Greenwood E Sergi
Jones V Malet
Morrow A Kusko
Mujtaba X Bolognia
Leon S Schemmer
Misaki A Kolmetz
Tony V Waycott
Greenwood T Paprocki
Nicolas E Rulapaugh
Cody O Foller
Silvio H Briddick
Johnson M Caldarera
Murillo W Schemmer
Rodrigues W Figeroa
Leja Y Perin
Jefferson X Rulapaugh
Chavez T Chui
Claire V Sergi
James U Gillian
Cody C Figeroa
Johnson P Nicka
Mayumi L Butt
Greenwood W Caudy
Juan V Waycott
IdCountryDate
1000Argentina2026-06-15
1001Argentina2026-06-27
1002Italy2026-06-11
1003Russia2026-06-13
1004Brazil2026-06-18
1005Australia2026-06-05
1006Germany2026-06-28
1007Brazil2026-07-01
1008Italy2026-06-04
1009Argentina2026-06-02
1010Argentina2026-06-28
1011India2026-06-06
1012France2026-06-09
1013France2026-06-10
1014Australia2026-06-30
1015United Kingdom2026-06-11
1016Japan2026-06-09
1017Argentina2026-07-01
1018Japan2026-06-02
1019Canada2026-06-11
1020Brazil2026-06-08
1021Japan2026-06-13
1022France2026-06-11
1023Argentina2026-06-30
1024Australia2026-06-20
1025Australia2026-06-28
1026Japan2026-06-29
1027Japan2026-06-30
1028Italy2026-06-25
1029Japan2026-06-28
1030United Kingdom2026-06-16
1031Spain2026-06-19
1032France2026-06-23
1033United Kingdom2026-06-18
1034Brazil2026-06-26
1035Japan2026-06-18
1036Japan2026-06-12
1037Spain2026-06-19
1038Russia2026-06-13
1039Italy2026-06-06
1040Japan2026-06-28
1041France2026-06-25
1042Argentina2026-06-06
1043Argentina2026-06-07
1044France2026-06-12
1045Canada2026-06-30
1046Italy2026-06-18
1047Italy2026-06-05
1048India2026-06-02
1049Spain2026-07-01

On-Demand Data

NameIdCountryDate
Jeanfrancois G Bowley1000Australia2026-06-04
Deepesh M Schemmer1001Russia2026-06-09
Maria S Figeroa1002Argentina2026-06-25
Julie A Ferencz1003India2026-06-26
Antonio X Poquette1004Australia2026-06-08
Darci T Amigon1005Canada2026-06-08
Alejandro B Chui1006Australia2026-06-02
Jennifer V Iturbide1007France2026-06-18
Misaki K Saylors1008Japan2026-06-15
Darci Q Sergi1009France2026-06-17
Adams M Caldarera1010Brazil2026-06-18
Tony G Perin1011Spain2026-06-16
Jeanfrancois L Schemmer1012Spain2026-06-28
Aika N Chui1013India2026-06-14
Antonio U Shinko1014Japan2026-06-24
Jefferson X Kolmetz1015Argentina2026-06-26
Jones I Stockham1016Spain2026-06-12
Aruna W Oldroyd1017Australia2026-07-01
Julie V Flosi1018Argentina2026-06-14
Greenwood G Nicka1019Canada2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford L NickaItalyOnyama Limba NEGOTIATION
Adams T RulapaughItalyIoni Bowcher QUALIFIED
Emily L VenereGermanyAnna Fali RENEWAL
Nicolas U DilliardSpainStephen Shaw UNQUALIFIED
Maria X PoquetteCanadaBernardo Dominic NEW
James K IturbideGermanyAmy Elsner QUALIFIED
Francesco M AmigonGermanyElwin Sharvill QUALIFIED
Jefferson F MaletIndiaOnyama Limba PROPOSAL
Jeanfrancois M SlusarskiAustraliaIoni Bowcher RENEWAL
Costa W BologniaArgentinaIoni Bowcher QUALIFIED
Kadeem X BriddickBrazilIoni Bowcher PROPOSAL
Stacey Z DarakjyIndiaAmy Elsner QUALIFIED
Jefferson B GillianAustraliaIoni Bowcher RENEWAL
Jefferson B KuskoJapanBernardo Dominic QUALIFIED
Kadeem L WieserRussiaXuxue Feng UNQUALIFIED
David R VenereAustraliaXuxue Feng NEW
Octavia D InouyeIndiaAmy Elsner NEGOTIATION
Sinclair Z BologniaFranceIvan Magalhaes QUALIFIED
Rodrigues Q SaylorsSpainOnyama Limba PROPOSAL
Darci E WieserAustraliaBernardo Dominic RENEWAL
Stacey K WhobreyAustraliaAmy Elsner NEGOTIATION
Cody U ChuiFranceIvan Magalhaes NEW
Nicolas Q KuskoBrazilBernardo Dominic QUALIFIED
Leon M SlusarskiBrazilAsiya Javayant UNQUALIFIED
Isabel M SlusarskiArgentinaAmy Elsner RENEWAL
Silvio V InouyeItalyStephen Shaw NEW
Darci O WhobreyRussiaIoni Bowcher QUALIFIED
Claire P TollnerAustraliaIvan Magalhaes NEW
Tony S DarakjySpainAnna Fali NEGOTIATION
Murillo U RoysterIndiaElwin Sharvill QUALIFIED
Nicolas L FigeroaIndiaXuxue Feng NEW
Ashley J DoeRussiaOnyama Limba UNQUALIFIED
Leja M AmigonFranceIvan Magalhaes UNQUALIFIED
Morrow Q KolmetzJapanStephen Shaw QUALIFIED
Maisha N CaldareraFranceXuxue Feng PROPOSAL
Misaki M BologniaGermanyAsiya Javayant UNQUALIFIED
Nicolas S SlusarskiIndiaElwin Sharvill QUALIFIED
Nicolas W FlosiSpainIoni Bowcher NEGOTIATION
Jeanfrancois G KolmetzItalyAsiya Javayant RENEWAL
Maria T GlickUnited KingdomIoni Bowcher 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>