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
Costa L CaudyAustraliaBernardo Dominic PROPOSAL
Deepesh N PoquetteRussiaAsiya Javayant NEW
Greenwood P SchemmerArgentinaOnyama Limba NEGOTIATION
Smith G SchemmerUnited KingdomAnna Fali NEGOTIATION
Maria H MorascaUnited KingdomAmy Elsner PROPOSAL
Mayumi W VocelkaGermanyIoni Bowcher NEW
Adams I FollerArgentinaOnyama Limba RENEWAL
Morrow Z AmigonUnited KingdomXuxue Feng NEGOTIATION
Aika M SchemmerRussiaElwin Sharvill UNQUALIFIED
Murillo P StensethSpainAmy Elsner RENEWAL
Isabel X MarrierGermanyIoni Bowcher PROPOSAL
Costa R DoeGermanyXuxue Feng NEW
Johnson U CaldareraSpainIvan Magalhaes PROPOSAL
Claire N ShinkoRussiaElwin Sharvill NEW
Tony X FlosiArgentinaIoni Bowcher RENEWAL
Stacey E GlickUnited KingdomAmy Elsner NEW
Morrow B BologniaBrazilAnna Fali QUALIFIED
David U RoysterBrazilBernardo Dominic PROPOSAL
Smith U FlosiItalyAnna Fali RENEWAL
Kaitlin L NestleAustraliaBernardo Dominic PROPOSAL
Chavez O SchemmerSpainBernardo Dominic RENEWAL
Leja P SchemmerBrazilIvan Magalhaes NEGOTIATION
Cody Z StensethRussiaOnyama Limba QUALIFIED
Octavia F MorascaGermanyXuxue Feng NEGOTIATION
Stacey F DarakjyIndiaOnyama Limba UNQUALIFIED
Ashley A GarufiSpainBernardo Dominic NEGOTIATION
Chavez G CampainFranceAnna Fali NEW
Jefferson T BowleyFranceAnna Fali RENEWAL
Leja A ChuiUnited KingdomIoni Bowcher NEGOTIATION
Jennifer I KuskoRussiaAmy Elsner PROPOSAL
Adams G RutaRussiaAnna Fali RENEWAL
Kaitlin F OstroskyUnited KingdomXuxue Feng QUALIFIED
Aditya U AmigonCanadaAmy Elsner RENEWAL
James L DarakjyItalyAmy Elsner UNQUALIFIED
Octavia V FollerArgentinaAnna Fali UNQUALIFIED
Silvio O GillianIndiaElwin Sharvill RENEWAL
Murillo N PerinJapanAmy Elsner UNQUALIFIED
Aruna B SlusarskiUnited KingdomBernardo Dominic NEW
Aditya O PaprockiRussiaXuxue Feng NEW
Greenwood A AlbaresArgentinaAmy Elsner QUALIFIED
Adams T FollerItalyBernardo Dominic UNQUALIFIED
Kaitlin C DilliardJapanIvan Magalhaes NEGOTIATION
Chavez A KuskoIndiaBernardo Dominic RENEWAL
Jefferson L PoquetteRussiaAsiya Javayant RENEWAL
Sinclair P DilliardRussiaBernardo Dominic NEW
Rodrigues T GlickSpainAmy Elsner NEW
Arvin O KuskoSpainBernardo Dominic QUALIFIED
Tony W KuskoUnited KingdomXuxue Feng UNQUALIFIED
Aruna R OldroydUnited KingdomXuxue Feng RENEWAL
Octavia V KolmetzFranceBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
David D RutaSpainXuxue Feng UNQUALIFIED
Murillo J DilliardRussiaAmy Elsner PROPOSAL
Tony C CaudyAustraliaAnna Fali QUALIFIED
Darci N BriddickGermanyElwin Sharvill NEW
Jennifer O StensethUnited KingdomIoni Bowcher UNQUALIFIED
Julie K SlusarskiFranceIvan Magalhaes UNQUALIFIED
Jeanfrancois P WaycottUnited KingdomElwin Sharvill NEGOTIATION
Murillo S BologniaBrazilIoni Bowcher UNQUALIFIED
Claire X GillianSpainStephen Shaw UNQUALIFIED
Juan Z NestleBrazilStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin O IturbideFrance2026-06-20Chanay, Jeffrey A Esq RENEWAL48Amy Elsner
1001Tony G GlickBrazil2026-07-13Morlong Associates QUALIFIED99Elwin Sharvill
1002Francesco I FlosiSpain2026-06-26Rangoni Of Florence PROPOSAL7Bernardo Dominic
1003David V MorascaSpain2026-07-12Benton, John B Jr NEGOTIATION11Xuxue Feng
1004Izzy M FollerAustralia2026-07-14Chapman, Ross E Esq PROPOSAL43Onyama Limba
1005Ricardo G TollnerAustralia2026-06-16Feltz Printing Service PROPOSAL65Bernardo Dominic
1006Julie X VocelkaArgentina2026-06-29Commercial Press NEGOTIATION43Stephen Shaw
1007Morrow M KolmetzJapan2026-06-26Feiner Bros NEGOTIATION39Elwin Sharvill
1008Jefferson R WieserIndia2026-06-19Chapman, Ross E Esq NEW12Amy Elsner
1009Deepesh X GarufiGermany2026-06-16Morlong Associates NEW80Stephen Shaw
1010Silvio V VocelkaSpain2026-06-24Commercial Press QUALIFIED38Onyama Limba
1011Clifford Q WieserItaly2026-06-25King, Christopher A Esq UNQUALIFIED27Amy Elsner
1012Johnson V NickaBrazil2026-07-05Chapman, Ross E Esq UNQUALIFIED5Amy Elsner
1013Octavia W GauchoCanada2026-06-30Dorl, James J Esq NEGOTIATION22Ivan Magalhaes
1014Misaki F PerinAustralia2026-06-28Rousseaux, Michael Esq NEGOTIATION75Onyama Limba
1015Clifford Y RimItaly2026-07-12Commercial Press NEGOTIATION61Ioni Bowcher
1016Munro Q AmigonItaly2026-06-27King, Christopher A Esq QUALIFIED29Ioni Bowcher
1017Darci L ShinkoItaly2026-06-24Printing Dimensions RENEWAL4Amy Elsner
1018Nicolas W FollerArgentina2026-07-12Chanay, Jeffrey A Esq QUALIFIED92Asiya Javayant
1019Deepesh B NickaIndia2026-07-08Dorl, James J Esq UNQUALIFIED73Stephen Shaw
1020Maria P RulapaughIndia2026-07-09Buckley Miller Wright NEGOTIATION44Anna Fali
1021Greenwood E GauchoArgentina2026-06-17Feltz Printing Service QUALIFIED66Amy Elsner
1022Leja K NestleGermany2026-06-20Rangoni Of Florence NEGOTIATION89Stephen Shaw
1023Tony E VocelkaJapan2026-06-26Feiner Bros QUALIFIED8Xuxue Feng
1024Aditya V SlusarskiUnited Kingdom2026-06-16Chemel, James L Cpa UNQUALIFIED61Ivan Magalhaes
1025Ivar U MaletCanada2026-06-29Chemel, James L Cpa RENEWAL47Stephen Shaw
1026Kaitlin C GauchoItaly2026-07-05Chapman, Ross E Esq NEW52Onyama Limba
1027Smith Z ButtArgentina2026-07-11Feltz Printing Service NEW98Xuxue Feng
1028Clifford Y CaldareraItaly2026-06-23Printing Dimensions RENEWAL15Stephen Shaw
1029Munro L RimAustralia2026-06-19King, Christopher A Esq QUALIFIED36Xuxue Feng
1030Johnson F MaletGermany2026-06-28Chanay, Jeffrey A Esq QUALIFIED7Onyama Limba
1031Deepesh A GauchoAustralia2026-07-05Rangoni Of Florence QUALIFIED9Bernardo Dominic
1032Leja F RimUnited Kingdom2026-06-30Truhlar And Truhlar Attys NEGOTIATION72Ioni Bowcher
1033Johnson O VenereCanada2026-07-01Benton, John B Jr QUALIFIED65Elwin Sharvill
1034Isabel B FlosiUnited Kingdom2026-07-07Feltz Printing Service NEGOTIATION42Asiya Javayant
1035Clifford Z NickaCanada2026-06-27Benton, John B Jr NEGOTIATION92Anna Fali
1036Octavia V FigeroaItaly2026-06-17Rangoni Of Florence RENEWAL12Elwin Sharvill
1037Darci Z VenereSpain2026-06-22Chapman, Ross E Esq QUALIFIED19Stephen Shaw
1038Adams V PoquetteBrazil2026-07-06Truhlar And Truhlar Attys QUALIFIED30Amy Elsner
1039Aditya V RutaAustralia2026-06-21Benton, John B Jr NEW78Stephen Shaw
1040Maisha I BologniaArgentina2026-06-16Rangoni Of Florence NEGOTIATION3Ioni Bowcher
1041Emily S SaylorsAustralia2026-07-11Chemel, James L Cpa PROPOSAL79Stephen Shaw
1042Ricardo P NestleSpain2026-06-20Commercial Press NEW68Anna Fali
1043Jeanfrancois Q SchemmerJapan2026-06-22Truhlar And Truhlar Attys NEW0Stephen Shaw
1044Morrow S DilliardRussia2026-07-15Morlong Associates QUALIFIED86Asiya Javayant
1045Alejandro N SchemmerUnited Kingdom2026-07-09Chemel, James L Cpa NEGOTIATION66Bernardo Dominic
1046Sinclair C IturbideBrazil2026-07-01Rangoni Of Florence RENEWAL57Ivan Magalhaes
1047Clifford Y AmigonBrazil2026-07-07King, Christopher A Esq PROPOSAL51Asiya Javayant
1048Salvatore C NickaArgentina2026-07-02Buckley Miller Wright UNQUALIFIED72Ivan Magalhaes
1049Leon O VocelkaFrance2026-07-12Truhlar And Truhlar Attys NEGOTIATION30Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Smith F VocelkaFranceOnyama Limba NEW
Juan Q FerenczFranceAmy Elsner NEGOTIATION
Ricardo H SergiCanadaAmy Elsner NEGOTIATION
Johnson A BowleySpainAsiya Javayant NEGOTIATION
Johnson O InouyeFranceElwin Sharvill NEGOTIATION
Ricardo C DoeUnited KingdomAmy Elsner NEGOTIATION
Maisha P WieserUnited KingdomXuxue Feng PROPOSAL
Isabel Q BriddickCanadaXuxue Feng PROPOSAL
Jeanfrancois U IturbideRussiaOnyama Limba UNQUALIFIED
Kadeem C AlbaresArgentinaXuxue Feng RENEWAL
Ricardo F SlusarskiIndiaBernardo Dominic RENEWAL
James L MaletArgentinaOnyama Limba NEGOTIATION
Munro S ChuiCanadaStephen Shaw NEGOTIATION
Kaitlin Y WieserGermanyBernardo Dominic QUALIFIED
Wickens U InouyeSpainOnyama Limba QUALIFIED
Salvatore U RoysterUnited KingdomAnna Fali PROPOSAL
Antonio X MaletUnited KingdomElwin Sharvill NEGOTIATION
Aika K SchemmerIndiaBernardo Dominic QUALIFIED
Kadeem Y SchemmerSpainStephen Shaw QUALIFIED
Stacey D PaprockiItalyAnna Fali NEW
Nicolas B MarrierFranceElwin Sharvill NEW
Ashley D StensethBrazilAnna Fali RENEWAL
Maisha H MaletSpainIoni Bowcher NEW
Arvin O RoysterFranceIoni Bowcher UNQUALIFIED
James I BowleyUnited KingdomAmy Elsner NEW
David J WaycottCanadaStephen Shaw NEW
Faith K MacleadAustraliaStephen Shaw QUALIFIED
Juan X MaletGermanyAnna Fali PROPOSAL
Misaki E GauchoAustraliaIoni Bowcher NEGOTIATION
Kaitlin H SchemmerFranceOnyama Limba UNQUALIFIED
Alejandro D SergiSpainElwin Sharvill PROPOSAL
Ricardo Y GarufiGermanyBernardo Dominic RENEWAL
Cody J MacleadAustraliaAnna Fali UNQUALIFIED
Adams H AmigonGermanyAnna Fali NEW
Juan N WhobreyJapanIoni Bowcher PROPOSAL
Morrow V AlbaresCanadaIvan Magalhaes PROPOSAL
Nicolas V RutaRussiaAnna Fali RENEWAL
Darci N DoeJapanOnyama Limba NEGOTIATION
Ashley G PerinJapanBernardo Dominic RENEWAL
Chavez O RutaSpainElwin Sharvill NEW
Mayumi N StockhamRussiaAmy Elsner QUALIFIED
Antonio K VocelkaGermanyXuxue Feng UNQUALIFIED
Jones A KolmetzUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois D AlbaresItalyIvan Magalhaes QUALIFIED
Costa S DoeFranceAnna Fali NEGOTIATION
Darci Z PaprockiJapanAsiya Javayant QUALIFIED
Izzy Z RutaRussiaAmy Elsner UNQUALIFIED
Smith A DoeArgentinaAnna Fali RENEWAL
Smith K NestleGermanyXuxue Feng QUALIFIED
Deepesh X BowleyAustraliaXuxue Feng NEGOTIATION
Frozen Columns
Name
Jennifer F Morasca
Stacey N Maclead
Cody Q Rim
Aditya V Garufi
Clifford T Campain
Izzy F Darakjy
Jefferson B Oldroyd
Izzy W Nestle
Nicolas R Ruta
Julie D Maclead
Rodrigues C Garufi
Rodrigues D Malet
Silvio Q Garufi
Leja J Malet
Chavez T Albares
Morrow E Slusarski
Mujtaba B Rulapaugh
Jones P Garufi
Johnson V Poquette
Jefferson F Ferencz
Maria L Glick
Maria A Dilliard
Misaki W Royster
Chavez K Ferencz
Sinclair D Albares
Johnson K Nicka
Antonio J Ostrosky
Tony E Gaucho
Leon K Campain
Jeanfrancois O Maclead
Cody E Nestle
Maisha J Morasca
Claire M Rim
Claire E Gaucho
Silvio G Morasca
Arvin P Malet
Octavia T Saylors
Kadeem M Tollner
Chavez Y Glick
Maria W Schemmer
Jennifer D Waycott
Aditya H Tollner
Silvio L Ferencz
Clifford E Tollner
Deepesh L Ferencz
Leja X Darakjy
Munro J Royster
Darci L Nicka
Leon Q Garufi
Nicolas A Bolognia
IdCountryDate
1000Canada2026-06-18
1001France2026-07-06
1002Argentina2026-06-28
1003Germany2026-06-19
1004France2026-06-23
1005France2026-07-06
1006Brazil2026-06-25
1007Spain2026-07-12
1008India2026-07-12
1009United Kingdom2026-06-21
1010Argentina2026-07-14
1011India2026-07-15
1012Spain2026-07-01
1013Argentina2026-07-14
1014Germany2026-06-16
1015France2026-07-11
1016Spain2026-06-26
1017Australia2026-07-14
1018United Kingdom2026-06-21
1019Spain2026-06-24
1020Argentina2026-07-12
1021India2026-06-30
1022Australia2026-06-22
1023France2026-06-21
1024Russia2026-07-02
1025United Kingdom2026-07-12
1026United Kingdom2026-07-10
1027Spain2026-07-11
1028Russia2026-07-01
1029Germany2026-06-21
1030Italy2026-06-16
1031Italy2026-07-12
1032Germany2026-06-26
1033Russia2026-06-18
1034Germany2026-07-10
1035United Kingdom2026-06-25
1036Italy2026-06-19
1037India2026-06-25
1038Germany2026-06-30
1039Japan2026-07-02
1040Germany2026-07-05
1041Spain2026-07-08
1042Brazil2026-07-04
1043Germany2026-07-15
1044Argentina2026-06-20
1045France2026-07-07
1046Russia2026-07-04
1047Russia2026-07-14
1048Germany2026-06-29
1049Argentina2026-07-12

On-Demand Data

NameIdCountryDate
Kaitlin W Amigon1000Brazil2026-06-28
Aruna D Kusko1001United Kingdom2026-07-13
Maisha D Ruta1002Australia2026-06-28
Silvio N Doe1003France2026-06-19
Leon B Caldarera1004Spain2026-06-25
Johnson Y Sergi1005Brazil2026-06-22
Clifford N Venere1006Argentina2026-06-17
Cody P Oldroyd1007Russia2026-07-02
Chavez T Rulapaugh1008Brazil2026-07-04
Maria N Rim1009Russia2026-06-23
Leon B Bolognia1010Japan2026-07-03
Johnson T Poquette1011Spain2026-06-24
Juan K Kolmetz1012Italy2026-06-23
Maisha S Glick1013United Kingdom2026-07-06
Jefferson P Ferencz1014United Kingdom2026-06-20
Kaitlin M Venere1015France2026-06-24
David N Kusko1016Germany2026-07-13
Leon N Butt1017Japan2026-06-18
Costa O Iturbide1018Brazil2026-07-06
Emily H Vocelka1019Australia2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey E GillianGermanyBernardo Dominic NEW
Maria X CaudyCanadaBernardo Dominic UNQUALIFIED
Kaitlin W MaletRussiaStephen Shaw NEW
Emily G CampainItalyIoni Bowcher RENEWAL
Mayumi G VocelkaRussiaIoni Bowcher NEGOTIATION
Jones H FigeroaJapanBernardo Dominic UNQUALIFIED
Mayumi U CaudySpainIvan Magalhaes NEW
Morrow J NickaSpainIoni Bowcher NEGOTIATION
Juan J DarakjyFranceBernardo Dominic NEW
Costa Q WieserSpainStephen Shaw NEW
Morrow C FigeroaArgentinaIoni Bowcher QUALIFIED
Costa F CaldareraFranceStephen Shaw NEGOTIATION
Darci L OstroskyAustraliaAnna Fali PROPOSAL
Tony K VocelkaGermanyXuxue Feng NEW
Leja G VenereRussiaOnyama Limba UNQUALIFIED
Juan E MaletItalyAmy Elsner NEW
Octavia H CaldareraRussiaAsiya Javayant QUALIFIED
Stacey E MaletJapanIvan Magalhaes NEGOTIATION
Faith F OstroskyBrazilBernardo Dominic UNQUALIFIED
Mujtaba F StockhamGermanyOnyama Limba NEGOTIATION
Wickens Z GarufiCanadaStephen Shaw QUALIFIED
Julie Y InouyeIndiaElwin Sharvill UNQUALIFIED
Isabel S GillianCanadaElwin Sharvill QUALIFIED
Ashley W MaletRussiaAmy Elsner QUALIFIED
Ivar R DarakjyUnited KingdomIvan Magalhaes RENEWAL
Maria H KuskoArgentinaAsiya Javayant PROPOSAL
Nicolas H OstroskyGermanyElwin Sharvill UNQUALIFIED
Morrow W BowleyFranceAsiya Javayant NEGOTIATION
Salvatore I DilliardAustraliaIoni Bowcher QUALIFIED
Deepesh H MarrierAustraliaAmy Elsner UNQUALIFIED
Tony F VocelkaCanadaXuxue Feng NEW
Adams F KuskoJapanBernardo Dominic UNQUALIFIED
Costa V BologniaCanadaAmy Elsner PROPOSAL
Adams Z SlusarskiGermanyAnna Fali UNQUALIFIED
Izzy K DarakjyRussiaBernardo Dominic NEW
Mayumi A SchemmerBrazilIvan Magalhaes PROPOSAL
Murillo I StockhamFranceIvan Magalhaes PROPOSAL
Munro F RutaBrazilIvan Magalhaes QUALIFIED
Juan G CampainBrazilAsiya Javayant NEW
Tony O AmigonJapanOnyama Limba NEGOTIATION

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