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
Isabel L CampainRussiaAnna Fali RENEWAL
Murillo Q FerenczBrazilOnyama Limba NEW
Izzy N CaldareraArgentinaStephen Shaw NEW
Clifford A RimIndiaStephen Shaw RENEWAL
Johnson D BowleyIndiaAmy Elsner QUALIFIED
David B CampainBrazilIvan Magalhaes QUALIFIED
Ashley A NickaArgentinaXuxue Feng QUALIFIED
Francesco T SaylorsFranceStephen Shaw NEGOTIATION
Misaki F FerenczJapanIvan Magalhaes NEGOTIATION
Antonio O InouyeArgentinaAnna Fali QUALIFIED
Tony J DoeArgentinaIvan Magalhaes NEW
Maria G NestleAustraliaAsiya Javayant NEGOTIATION
Cody N RoysterCanadaOnyama Limba NEW
Faith J DilliardRussiaStephen Shaw UNQUALIFIED
Leja G KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Faith B RimRussiaBernardo Dominic NEGOTIATION
Francesco F FlosiArgentinaIvan Magalhaes NEW
Silvio J GlickArgentinaAsiya Javayant RENEWAL
Smith I FerenczJapanElwin Sharvill NEW
Faith T FollerCanadaIoni Bowcher NEGOTIATION
Izzy N BologniaSpainAmy Elsner QUALIFIED
Adams E RimFranceAmy Elsner UNQUALIFIED
Smith N ButtItalyOnyama Limba NEGOTIATION
Stacey U CaudyBrazilAmy Elsner NEW
David L StensethGermanyIvan Magalhaes UNQUALIFIED
Salvatore U VocelkaSpainAmy Elsner NEW
Mayumi I OldroydBrazilXuxue Feng NEGOTIATION
Darci O StockhamRussiaIoni Bowcher PROPOSAL
Ivar O AmigonFranceAsiya Javayant NEW
Kaitlin L WaycottFranceIvan Magalhaes RENEWAL
James L MaletCanadaAmy Elsner UNQUALIFIED
Arvin L OldroydIndiaAmy Elsner NEGOTIATION
Johnson Y TollnerGermanyStephen Shaw UNQUALIFIED
Isabel W PerinIndiaIoni Bowcher NEGOTIATION
Emily P DarakjyItalyAnna Fali QUALIFIED
Julie G MaletGermanyOnyama Limba NEW
Juan F SergiRussiaBernardo Dominic RENEWAL
Antonio C CaldareraSpainAsiya Javayant QUALIFIED
Salvatore H MarrierArgentinaStephen Shaw QUALIFIED
Kadeem X WieserJapanXuxue Feng RENEWAL
Aika V FlosiUnited KingdomStephen Shaw PROPOSAL
Munro T GarufiUnited KingdomAmy Elsner UNQUALIFIED
Ricardo U BriddickIndiaBernardo Dominic UNQUALIFIED
Nicolas H WaycottJapanAmy Elsner UNQUALIFIED
Isabel H RulapaughRussiaIoni Bowcher NEGOTIATION
Ashley X CaudyBrazilAnna Fali PROPOSAL
Tony Y SlusarskiAustraliaXuxue Feng QUALIFIED
Sinclair M ChuiIndiaAnna Fali QUALIFIED
Mayumi R WhobreyCanadaAsiya Javayant PROPOSAL
Jones Y GillianFranceOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh O DarakjyCanadaXuxue Feng QUALIFIED
Jefferson A PaprockiJapanAmy Elsner PROPOSAL
Wickens T StockhamIndiaOnyama Limba PROPOSAL
Costa G CaudyAustraliaAnna Fali NEW
Greenwood Z MaletRussiaIoni Bowcher NEGOTIATION
Kaitlin O BowleyCanadaOnyama Limba PROPOSAL
Maisha R GlickCanadaElwin Sharvill UNQUALIFIED
Leon J PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Faith D MaletUnited KingdomIoni Bowcher NEGOTIATION
Leja Z OldroydArgentinaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy E SchemmerJapan2026-06-25Printing Dimensions PROPOSAL68Elwin Sharvill
1001Munro E ShinkoFrance2026-06-29Chemel, James L Cpa RENEWAL8Ivan Magalhaes
1002Adams N KuskoSpain2026-06-17Truhlar And Truhlar Attys RENEWAL33Stephen Shaw
1003Costa C MacleadGermany2026-06-27Buckley Miller Wright NEW2Elwin Sharvill
1004Cody F RulapaughItaly2026-06-20Chapman, Ross E Esq RENEWAL12Ivan Magalhaes
1005Aruna I CampainGermany2026-06-17Rousseaux, Michael Esq UNQUALIFIED32Xuxue Feng
1006Aruna W NickaCanada2026-06-17Chapman, Ross E Esq QUALIFIED36Stephen Shaw
1007Alejandro W NickaCanada2026-06-09Rousseaux, Michael Esq PROPOSAL78Elwin Sharvill
1008Johnson I ShinkoCanada2026-06-05Dorl, James J Esq UNQUALIFIED94Ivan Magalhaes
1009Maria B CaldareraUnited Kingdom2026-06-27Feltz Printing Service RENEWAL74Asiya Javayant
1010Misaki K KuskoAustralia2026-06-09Feltz Printing Service RENEWAL65Xuxue Feng
1011Aditya B OstroskyItaly2026-06-03Morlong Associates PROPOSAL2Onyama Limba
1012Murillo M StensethRussia2026-06-18Truhlar And Truhlar Attys RENEWAL52Anna Fali
1013Claire B InouyeIndia2026-06-18Commercial Press RENEWAL18Bernardo Dominic
1014Aditya A IturbideJapan2026-06-16Morlong Associates QUALIFIED69Ioni Bowcher
1015David B PerinItaly2026-06-17Feltz Printing Service NEW55Stephen Shaw
1016Leon V GarufiIndia2026-06-28Dorl, James J Esq RENEWAL37Amy Elsner
1017Arvin W RutaSpain2026-06-26Morlong Associates UNQUALIFIED42Stephen Shaw
1018Emily X OstroskyGermany2026-06-14Printing Dimensions NEW88Anna Fali
1019Greenwood M FigeroaItaly2026-06-12Chanay, Jeffrey A Esq NEGOTIATION5Onyama Limba
1020Aruna S ChuiAustralia2026-06-02Commercial Press NEW93Bernardo Dominic
1021Silvio W RimSpain2026-06-17Buckley Miller Wright RENEWAL51Anna Fali
1022Ashley R BowleyFrance2026-07-01Feiner Bros PROPOSAL13Onyama Limba
1023Leon I GarufiFrance2026-06-24Buckley Miller Wright NEGOTIATION99Ioni Bowcher
1024Isabel N GlickJapan2026-06-25Rangoni Of Florence UNQUALIFIED97Ioni Bowcher
1025Salvatore D PerinFrance2026-06-08Commercial Press UNQUALIFIED99Asiya Javayant
1026Cody M SchemmerAustralia2026-06-16Morlong Associates UNQUALIFIED34Onyama Limba
1027Jeanfrancois J TollnerBrazil2026-06-18Morlong Associates NEW32Ioni Bowcher
1028Stacey Y DilliardArgentina2026-06-09Morlong Associates NEW7Onyama Limba
1029Jennifer M DilliardBrazil2026-06-29Rousseaux, Michael Esq NEGOTIATION71Elwin Sharvill
1030Silvio N DarakjyFrance2026-06-20Benton, John B Jr NEGOTIATION88Ioni Bowcher
1031Salvatore E MarrierRussia2026-06-07Chemel, James L Cpa PROPOSAL55Amy Elsner
1032Kadeem C DoeItaly2026-06-23Rangoni Of Florence NEGOTIATION71Ivan Magalhaes
1033Darci L ShinkoSpain2026-06-07Rangoni Of Florence RENEWAL39Onyama Limba
1034Deepesh D AlbaresIndia2026-06-30Rangoni Of Florence RENEWAL37Ioni Bowcher
1035Kaitlin B NestleAustralia2026-06-26Feltz Printing Service PROPOSAL60Amy Elsner
1036Cody Z VocelkaAustralia2026-06-08Truhlar And Truhlar Attys UNQUALIFIED61Bernardo Dominic
1037Juan U SergiRussia2026-06-13King, Christopher A Esq NEW87Xuxue Feng
1038Aruna S StensethJapan2026-06-27Dorl, James J Esq QUALIFIED51Bernardo Dominic
1039Jefferson E AmigonRussia2026-06-17Feiner Bros RENEWAL1Bernardo Dominic
1040Antonio Z ChuiCanada2026-06-13Printing Dimensions RENEWAL55Onyama Limba
1041Wickens G SchemmerUnited Kingdom2026-06-30Benton, John B Jr RENEWAL51Elwin Sharvill
1042Leon G GlickSpain2026-06-02Dorl, James J Esq QUALIFIED49Stephen Shaw
1043Smith J VocelkaArgentina2026-06-17Chanay, Jeffrey A Esq QUALIFIED3Onyama Limba
1044Morrow F MacleadJapan2026-06-22Commercial Press NEW85Asiya Javayant
1045Maisha S NestleIndia2026-06-04Rangoni Of Florence NEGOTIATION86Asiya Javayant
1046Wickens Q OldroydArgentina2026-06-13King, Christopher A Esq NEGOTIATION4Stephen Shaw
1047Cody H PaprockiItaly2026-06-13Buckley Miller Wright NEW7Stephen Shaw
1048Leon A VocelkaCanada2026-06-11Chemel, James L Cpa QUALIFIED73Stephen Shaw
1049Cody W MorascaFrance2026-06-05Morlong Associates UNQUALIFIED1Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Kadeem P RoysterCanadaXuxue Feng UNQUALIFIED
Arvin J GauchoFranceAsiya Javayant QUALIFIED
Leon Z OldroydBrazilIoni Bowcher NEW
Faith O SchemmerAustraliaIoni Bowcher QUALIFIED
Alejandro X MarrierUnited KingdomIvan Magalhaes NEW
Smith J FigeroaSpainElwin Sharvill QUALIFIED
Leja B AlbaresGermanyIoni Bowcher RENEWAL
Rodrigues W OstroskyUnited KingdomAmy Elsner RENEWAL
Cody J BologniaBrazilAnna Fali QUALIFIED
Izzy Q NickaAustraliaAnna Fali UNQUALIFIED
Maisha U PoquetteItalyElwin Sharvill PROPOSAL
Murillo U BriddickJapanAmy Elsner QUALIFIED
Jones W RimItalyAsiya Javayant RENEWAL
Aruna R DoeAustraliaAmy Elsner UNQUALIFIED
Ivar J InouyeItalyIoni Bowcher RENEWAL
Silvio C RulapaughIndiaElwin Sharvill NEGOTIATION
Maria H ChuiSpainIoni Bowcher UNQUALIFIED
Isabel Q FollerGermanyElwin Sharvill PROPOSAL
Leja O CaldareraSpainAsiya Javayant UNQUALIFIED
Sinclair H GillianUnited KingdomStephen Shaw UNQUALIFIED
Cody U SergiRussiaIoni Bowcher NEGOTIATION
Claire M RoysterRussiaIoni Bowcher NEGOTIATION
Emily I CaldareraIndiaStephen Shaw RENEWAL
Jeanfrancois V FerenczCanadaAsiya Javayant PROPOSAL
Maisha K KolmetzItalyIvan Magalhaes PROPOSAL
Arvin K GlickSpainBernardo Dominic PROPOSAL
Julie L DoeCanadaAmy Elsner NEGOTIATION
Munro S IturbideAustraliaElwin Sharvill PROPOSAL
Maisha A StockhamRussiaOnyama Limba RENEWAL
Julie S RoysterGermanyXuxue Feng QUALIFIED
Adams Y MorascaArgentinaStephen Shaw UNQUALIFIED
Arvin Z SchemmerItalyAmy Elsner PROPOSAL
Alejandro O RulapaughCanadaIvan Magalhaes UNQUALIFIED
Juan H FlosiIndiaIoni Bowcher NEW
Sinclair Q AlbaresItalyXuxue Feng NEW
Stacey V WhobreyBrazilElwin Sharvill RENEWAL
Aika F InouyeItalyBernardo Dominic PROPOSAL
Leja Y MarrierRussiaAnna Fali RENEWAL
Costa Z BologniaBrazilElwin Sharvill QUALIFIED
Jennifer M OstroskyAustraliaOnyama Limba RENEWAL
Maisha Q CaldareraUnited KingdomStephen Shaw PROPOSAL
James B FlosiBrazilXuxue Feng NEW
Smith G MaletJapanBernardo Dominic RENEWAL
Maisha J GarufiAustraliaIoni Bowcher PROPOSAL
Nicolas Z OldroydUnited KingdomIvan Magalhaes PROPOSAL
Ashley K GillianGermanyElwin Sharvill QUALIFIED
Smith D ButtAustraliaElwin Sharvill NEGOTIATION
Clifford G DoeUnited KingdomOnyama Limba RENEWAL
Ivar Y CampainSpainAsiya Javayant RENEWAL
Morrow B AmigonJapanIoni Bowcher QUALIFIED
Frozen Columns
Name
David X Glick
Mujtaba A Tollner
Munro Q Iturbide
Costa G Butt
Kaitlin P Glick
Aruna K Campain
Juan R Malet
Morrow S Nicka
Wickens W Doe
Maria Q Inouye
Silvio X Paprocki
Ivar H Venere
Stacey I Sergi
Stacey J Schemmer
Silvio O Wieser
Nicolas N Kolmetz
Salvatore G Waycott
Antonio Q Caudy
Mayumi R Royster
Rodrigues W Kusko
Wickens O Inouye
Clifford P Garufi
Chavez Z Briddick
David L Amigon
Stacey P Stockham
Misaki X Campain
Clifford E Oldroyd
Wickens J Butt
Ricardo D Butt
Misaki C Waycott
Alejandro R Bowley
Salvatore Q Butt
Cody Y Bowley
Faith B Slusarski
Murillo C Saylors
Jones S Glick
Greenwood N Slusarski
Costa L Morasca
Munro L Campain
Stacey U Albares
Maria B Oldroyd
Clifford Q Albares
Chavez J Malet
Silvio P Marrier
Sinclair N Bowley
Ashley K Wieser
Isabel K Maclead
Maria I Garufi
Rodrigues Q Kolmetz
Silvio G Caudy
IdCountryDate
1000India2026-06-05
1001United Kingdom2026-06-20
1002Russia2026-06-06
1003Japan2026-06-19
1004Argentina2026-06-23
1005Germany2026-07-01
1006Australia2026-06-06
1007Australia2026-06-21
1008India2026-07-01
1009Russia2026-06-08
1010Japan2026-06-30
1011Australia2026-06-07
1012Canada2026-06-04
1013Spain2026-06-02
1014Australia2026-06-05
1015Canada2026-06-16
1016Japan2026-06-11
1017France2026-06-06
1018Canada2026-06-22
1019Germany2026-06-27
1020Italy2026-06-19
1021Russia2026-06-12
1022Italy2026-07-01
1023Australia2026-06-16
1024Brazil2026-06-08
1025Spain2026-06-10
1026Brazil2026-06-16
1027United Kingdom2026-06-11
1028Italy2026-06-29
1029Russia2026-06-03
1030Germany2026-06-10
1031Russia2026-06-03
1032Germany2026-06-29
1033United Kingdom2026-06-22
1034India2026-06-05
1035Japan2026-06-11
1036Argentina2026-06-11
1037Russia2026-06-30
1038Brazil2026-06-04
1039Russia2026-06-17
1040Australia2026-06-08
1041Australia2026-06-21
1042France2026-06-17
1043Russia2026-06-23
1044Germany2026-06-05
1045Germany2026-06-06
1046France2026-06-07
1047Germany2026-06-14
1048Australia2026-06-25
1049Australia2026-06-08

On-Demand Data

NameIdCountryDate
Jefferson Z Nestle1000India2026-06-02
Jennifer C Albares1001Canada2026-06-30
Jefferson X Albares1002United Kingdom2026-06-17
Rodrigues Z Foller1003Canada2026-06-04
Isabel D Maclead1004Italy2026-06-21
Cody T Darakjy1005Japan2026-06-29
Costa V Darakjy1006Argentina2026-06-29
Clifford P Gaucho1007Brazil2026-06-19
Mayumi P Morasca1008Argentina2026-06-22
Darci V Royster1009Argentina2026-06-27
Costa S Darakjy1010India2026-07-01
Mujtaba K Wieser1011United Kingdom2026-06-19
Ricardo S Glick1012Spain2026-06-11
James I Poquette1013Canada2026-06-09
Deepesh H Stockham1014Japan2026-06-30
Jennifer R Garufi1015Spain2026-06-30
Maisha Z Inouye1016Russia2026-06-21
Nicolas D Amigon1017Canada2026-06-14
Jones Q Foller1018Japan2026-06-07
David C Saylors1019United Kingdom2026-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood G TollnerCanadaAmy Elsner NEW
Arvin C DoeRussiaIoni Bowcher UNQUALIFIED
Greenwood U PerinRussiaAmy Elsner NEW
Sinclair G TollnerGermanyStephen Shaw NEGOTIATION
David K RutaSpainAsiya Javayant QUALIFIED
Jeanfrancois V DilliardCanadaIoni Bowcher PROPOSAL
Alejandro R OldroydCanadaIvan Magalhaes NEW
Ashley D BologniaItalyStephen Shaw NEGOTIATION
Smith F DilliardBrazilOnyama Limba PROPOSAL
Darci L PoquetteRussiaXuxue Feng NEW
Maria F BriddickRussiaBernardo Dominic NEGOTIATION
Faith M GillianUnited KingdomIvan Magalhaes PROPOSAL
Maisha L CaldareraAustraliaOnyama Limba PROPOSAL
Salvatore J ButtBrazilIvan Magalhaes PROPOSAL
Costa C SergiFranceAnna Fali NEGOTIATION
Isabel Y GarufiJapanAmy Elsner NEW
Aika F ChuiGermanyIoni Bowcher QUALIFIED
Chavez V SergiArgentinaElwin Sharvill QUALIFIED
Maria D AlbaresCanadaIvan Magalhaes NEGOTIATION
Ricardo F GarufiIndiaAnna Fali PROPOSAL
Stacey F FlosiRussiaStephen Shaw RENEWAL
Faith D ButtCanadaIoni Bowcher UNQUALIFIED
Antonio G FerenczItalyStephen Shaw NEGOTIATION
Jennifer R FlosiGermanyIoni Bowcher UNQUALIFIED
Deepesh C RulapaughGermanyAmy Elsner NEGOTIATION
Arvin M CaudyRussiaBernardo Dominic NEW
Emily A StockhamSpainStephen Shaw NEW
Costa K MacleadAustraliaBernardo Dominic QUALIFIED
Kadeem W DarakjySpainElwin Sharvill UNQUALIFIED
Aruna U PaprockiRussiaAmy Elsner UNQUALIFIED
Clifford M FollerArgentinaOnyama Limba PROPOSAL
Kaitlin X CaldareraIndiaAnna Fali NEGOTIATION
Jones N WhobreyItalyIoni Bowcher UNQUALIFIED
Murillo M FollerGermanyStephen Shaw NEW
Aika A StensethCanadaIvan Magalhaes UNQUALIFIED
Costa M VenereBrazilStephen Shaw PROPOSAL
Faith Z SergiRussiaOnyama Limba PROPOSAL
Francesco B OldroydGermanyStephen Shaw PROPOSAL
Mujtaba M KolmetzJapanXuxue Feng NEW
Nicolas O MaletArgentinaIvan Magalhaes RENEWAL

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