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
Ricardo Y MorascaGermanyIoni Bowcher RENEWAL
Costa N CampainArgentinaIoni Bowcher UNQUALIFIED
Misaki X DarakjyFranceElwin Sharvill QUALIFIED
Sinclair B SergiIndiaStephen Shaw NEW
Aika U BologniaUnited KingdomXuxue Feng UNQUALIFIED
Aditya T DilliardJapanStephen Shaw PROPOSAL
Arvin N RulapaughUnited KingdomElwin Sharvill QUALIFIED
Deepesh K InouyeArgentinaAsiya Javayant QUALIFIED
Antonio K ChuiRussiaXuxue Feng PROPOSAL
Antonio Y RoysterUnited KingdomXuxue Feng UNQUALIFIED
Aika C BowleyGermanyAmy Elsner PROPOSAL
Salvatore J OldroydIndiaStephen Shaw NEW
Adams T BowleyBrazilAsiya Javayant PROPOSAL
Francesco J MaletAustraliaStephen Shaw NEW
Juan A AmigonCanadaStephen Shaw NEW
Cody Z RutaAustraliaBernardo Dominic PROPOSAL
Misaki G GarufiGermanyIvan Magalhaes PROPOSAL
Kaitlin G VocelkaAustraliaAsiya Javayant RENEWAL
Morrow Z DilliardGermanyAsiya Javayant RENEWAL
Julie H WieserAustraliaAsiya Javayant NEW
Darci V StensethIndiaAsiya Javayant QUALIFIED
Greenwood P DoeIndiaXuxue Feng NEGOTIATION
Silvio R CampainBrazilAnna Fali PROPOSAL
Izzy N GillianSpainOnyama Limba NEGOTIATION
Leon X ChuiItalyIvan Magalhaes RENEWAL
Jennifer T PaprockiArgentinaStephen Shaw RENEWAL
Johnson P SlusarskiJapanOnyama Limba QUALIFIED
Jefferson E FollerBrazilIoni Bowcher NEGOTIATION
Jennifer M StensethBrazilElwin Sharvill QUALIFIED
Silvio K RoysterJapanXuxue Feng PROPOSAL
Francesco F NestleRussiaIvan Magalhaes NEGOTIATION
Aika G BriddickBrazilBernardo Dominic RENEWAL
Mujtaba Q GarufiBrazilAsiya Javayant PROPOSAL
Aruna X AmigonBrazilAmy Elsner UNQUALIFIED
Jefferson M NickaJapanIoni Bowcher PROPOSAL
Kadeem B MaletRussiaAmy Elsner PROPOSAL
Clifford Z GauchoRussiaAmy Elsner NEGOTIATION
Kadeem T PoquetteArgentinaAnna Fali NEW
Jefferson F ButtSpainElwin Sharvill PROPOSAL
Adams Z BriddickItalyAmy Elsner RENEWAL
Mujtaba R IturbideJapanIvan Magalhaes NEW
Johnson P RutaAustraliaIvan Magalhaes NEGOTIATION
Leon Q SaylorsFranceElwin Sharvill PROPOSAL
Silvio Q RoysterUnited KingdomOnyama Limba UNQUALIFIED
Darci A CaudyJapanIvan Magalhaes NEGOTIATION
Jeanfrancois M MaletGermanyAmy Elsner QUALIFIED
Jennifer C CampainAustraliaElwin Sharvill NEW
Deepesh O DarakjyJapanBernardo Dominic RENEWAL
Faith N IturbideJapanOnyama Limba UNQUALIFIED
Antonio D GlickFranceIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja N SlusarskiIndiaBernardo Dominic QUALIFIED
Antonio A GlickItalyBernardo Dominic UNQUALIFIED
Claire N MaletIndiaAmy Elsner PROPOSAL
Darci D PaprockiRussiaXuxue Feng PROPOSAL
Misaki N ChuiSpainElwin Sharvill RENEWAL
Deepesh R MorascaSpainIvan Magalhaes UNQUALIFIED
Leja F VenereJapanOnyama Limba NEW
Adams M RulapaughSpainAnna Fali PROPOSAL
Stacey O RulapaughUnited KingdomBernardo Dominic PROPOSAL
David Q GauchoFranceXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika E VenereRussia2026-07-13Morlong Associates NEGOTIATION26Ioni Bowcher
1001Wickens H NestleUnited Kingdom2026-07-18Dorl, James J Esq NEGOTIATION55Ivan Magalhaes
1002David F StensethIndia2026-07-21Chanay, Jeffrey A Esq PROPOSAL11Amy Elsner
1003Morrow R GarufiUnited Kingdom2026-07-15Feltz Printing Service PROPOSAL4Anna Fali
1004James F VocelkaItaly2026-07-23Truhlar And Truhlar Attys UNQUALIFIED1Asiya Javayant
1005Alejandro Y InouyeItaly2026-07-30Dorl, James J Esq UNQUALIFIED4Anna Fali
1006Antonio E BologniaCanada2026-07-17Benton, John B Jr NEGOTIATION17Ioni Bowcher
1007Octavia O DoeSpain2026-08-04Printing Dimensions RENEWAL96Stephen Shaw
1008Aruna O WaycottBrazil2026-07-13Rousseaux, Michael Esq NEW77Anna Fali
1009Emily E DarakjyBrazil2026-07-23Morlong Associates RENEWAL6Bernardo Dominic
1010David I RimItaly2026-07-28Rousseaux, Michael Esq UNQUALIFIED28Xuxue Feng
1011Leon X ButtItaly2026-07-17Chemel, James L Cpa QUALIFIED16Asiya Javayant
1012Jeanfrancois G SergiGermany2026-07-20Chapman, Ross E Esq RENEWAL96Asiya Javayant
1013Aditya B GarufiUnited Kingdom2026-07-17Buckley Miller Wright PROPOSAL13Bernardo Dominic
1014James F NickaFrance2026-07-15Rangoni Of Florence PROPOSAL88Amy Elsner
1015Cody R BologniaSpain2026-07-18Morlong Associates NEW83Anna Fali
1016Ivar Z OldroydGermany2026-07-19Rousseaux, Michael Esq RENEWAL41Stephen Shaw
1017Antonio A MacleadIndia2026-08-01Rangoni Of Florence NEW17Xuxue Feng
1018Kaitlin E SergiArgentina2026-08-03Rousseaux, Michael Esq NEW59Bernardo Dominic
1019Morrow M StockhamFrance2026-08-06Chanay, Jeffrey A Esq UNQUALIFIED39Xuxue Feng
1020Maria Q GarufiGermany2026-07-20Buckley Miller Wright QUALIFIED12Ivan Magalhaes
1021Claire C ShinkoCanada2026-08-10Morlong Associates NEW7Bernardo Dominic
1022Smith N MacleadGermany2026-07-13King, Christopher A Esq UNQUALIFIED13Xuxue Feng
1023Wickens R PerinCanada2026-07-24Commercial Press QUALIFIED18Amy Elsner
1024Aruna A ShinkoJapan2026-07-22Rousseaux, Michael Esq RENEWAL11Onyama Limba
1025Ricardo X MorascaAustralia2026-07-13Feiner Bros NEW60Xuxue Feng
1026Misaki K RutaIndia2026-08-11Rousseaux, Michael Esq QUALIFIED53Amy Elsner
1027Stacey B SchemmerAustralia2026-07-30Truhlar And Truhlar Attys NEGOTIATION69Amy Elsner
1028Claire Z DoeUnited Kingdom2026-08-01Printing Dimensions RENEWAL90Stephen Shaw
1029Aditya F ChuiGermany2026-08-06Rousseaux, Michael Esq UNQUALIFIED23Xuxue Feng
1030Munro O BologniaJapan2026-07-30Buckley Miller Wright NEW57Onyama Limba
1031Clifford O FerenczFrance2026-07-28Buckley Miller Wright NEW91Ioni Bowcher
1032Darci X CaldareraFrance2026-07-31Benton, John B Jr NEGOTIATION55Stephen Shaw
1033Mayumi Z GauchoJapan2026-07-19Morlong Associates QUALIFIED90Stephen Shaw
1034Arvin B IturbideRussia2026-08-09Chanay, Jeffrey A Esq UNQUALIFIED29Anna Fali
1035Kadeem A DoeSpain2026-07-24Chapman, Ross E Esq UNQUALIFIED68Onyama Limba
1036Chavez N FlosiCanada2026-08-02Rousseaux, Michael Esq NEW85Ivan Magalhaes
1037Faith Z MorascaSpain2026-07-27Dorl, James J Esq UNQUALIFIED35Onyama Limba
1038Greenwood X InouyeBrazil2026-08-04Feltz Printing Service NEGOTIATION9Stephen Shaw
1039Leja H KuskoFrance2026-07-30Feiner Bros UNQUALIFIED24Anna Fali
1040Leja W KolmetzAustralia2026-07-31Chapman, Ross E Esq RENEWAL62Xuxue Feng
1041Jones T VenereBrazil2026-08-06King, Christopher A Esq NEW28Asiya Javayant
1042Smith N SergiIndia2026-08-09Truhlar And Truhlar Attys NEGOTIATION7Anna Fali
1043Aruna T VenereArgentina2026-07-24Commercial Press UNQUALIFIED88Ivan Magalhaes
1044David T RimRussia2026-07-26Chemel, James L Cpa UNQUALIFIED84Amy Elsner
1045Aika H GauchoCanada2026-08-02Printing Dimensions NEW46Onyama Limba
1046Kaitlin U NickaRussia2026-07-17Chapman, Ross E Esq QUALIFIED31Stephen Shaw
1047Rodrigues L WaycottJapan2026-07-13Chapman, Ross E Esq NEW1Xuxue Feng
1048Kaitlin B GillianIndia2026-07-28King, Christopher A Esq PROPOSAL11Bernardo Dominic
1049Wickens Q OstroskyItaly2026-07-20Feiner Bros UNQUALIFIED83Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jones Y MaletCanadaElwin Sharvill PROPOSAL
Leon Z OstroskyUnited KingdomAmy Elsner UNQUALIFIED
Faith K SergiSpainElwin Sharvill QUALIFIED
Maisha N VocelkaBrazilAnna Fali QUALIFIED
Ricardo Q OldroydSpainXuxue Feng PROPOSAL
Smith A FerenczBrazilIvan Magalhaes UNQUALIFIED
Ashley Z SchemmerIndiaAsiya Javayant UNQUALIFIED
Clifford Z BologniaItalyAsiya Javayant PROPOSAL
Wickens S WhobreyBrazilElwin Sharvill PROPOSAL
Chavez G AlbaresFranceIoni Bowcher PROPOSAL
Leon W SchemmerSpainOnyama Limba NEW
Wickens M PaprockiUnited KingdomAnna Fali PROPOSAL
Ivar H ChuiSpainStephen Shaw RENEWAL
Octavia H GarufiJapanIvan Magalhaes RENEWAL
Smith O NestleArgentinaOnyama Limba RENEWAL
Jones Y FlosiUnited KingdomElwin Sharvill PROPOSAL
Jennifer K NestleAustraliaBernardo Dominic QUALIFIED
Jennifer J FollerIndiaBernardo Dominic RENEWAL
Clifford S DarakjySpainStephen Shaw NEGOTIATION
Jeanfrancois Z TollnerGermanyIvan Magalhaes UNQUALIFIED
Salvatore K RulapaughIndiaIvan Magalhaes UNQUALIFIED
Aika C MaletArgentinaOnyama Limba NEGOTIATION
Ivar A SergiAustraliaStephen Shaw NEGOTIATION
Sinclair E PaprockiBrazilOnyama Limba RENEWAL
Deepesh Y StockhamGermanyIoni Bowcher NEW
Chavez U ShinkoBrazilIoni Bowcher RENEWAL
Aika F NestleIndiaAmy Elsner RENEWAL
Johnson B SchemmerJapanXuxue Feng PROPOSAL
Costa Q OstroskyGermanyStephen Shaw QUALIFIED
Arvin M GauchoArgentinaAsiya Javayant UNQUALIFIED
Deepesh K KuskoCanadaStephen Shaw UNQUALIFIED
Stacey A GauchoGermanyStephen Shaw QUALIFIED
Jennifer P MorascaUnited KingdomXuxue Feng RENEWAL
Salvatore P SergiCanadaAnna Fali NEGOTIATION
Adams W DarakjyArgentinaAmy Elsner QUALIFIED
Aruna S VocelkaIndiaXuxue Feng PROPOSAL
Maisha L KuskoGermanyIoni Bowcher UNQUALIFIED
Munro G VocelkaCanadaStephen Shaw QUALIFIED
Aika X AmigonCanadaElwin Sharvill UNQUALIFIED
Alejandro H DoeFranceAsiya Javayant NEGOTIATION
Morrow M RulapaughUnited KingdomBernardo Dominic PROPOSAL
Morrow L NickaItalyAnna Fali UNQUALIFIED
Jefferson B KuskoFranceElwin Sharvill NEGOTIATION
Aruna Q FerenczAustraliaAnna Fali PROPOSAL
Darci H SlusarskiFranceBernardo Dominic NEGOTIATION
Leon Z PerinCanadaIoni Bowcher NEW
Misaki X WieserRussiaAmy Elsner PROPOSAL
Ashley T SergiItalyBernardo Dominic RENEWAL
Leon H AmigonIndiaOnyama Limba NEW
Deepesh Y FigeroaUnited KingdomIoni Bowcher NEGOTIATION
Frozen Columns
Name
Deepesh X Venere
Leon Z Tollner
Nicolas J Nestle
Jennifer Q Saylors
Smith J Butt
Ivar K Stenseth
Maisha U Gillian
Cody D Waycott
Ivar X Oldroyd
Stacey U Shinko
Stacey L Perin
Stacey U Gillian
Nicolas X Morasca
Jefferson Z Ferencz
Jennifer M Nicka
Deepesh D Albares
Faith P Ostrosky
Faith I Bolognia
Ricardo O Campain
Antonio C Vocelka
Ashley Q Perin
Faith T Schemmer
Tony D Stenseth
Clifford B Ferencz
Jefferson X Briddick
Faith V Briddick
Tony C Oldroyd
Munro G Glick
Ashley R Bolognia
Mayumi I Nestle
Jefferson Y Maclead
Jeanfrancois E Figeroa
Chavez E Bolognia
Antonio L Caudy
Rodrigues W Darakjy
Greenwood C Flosi
Emily C Morasca
Izzy E Ruta
Antonio H Saylors
Sinclair Z Garufi
Francesco R Glick
Aditya F Vocelka
Emily J Sergi
Octavia U Whobrey
Johnson U Sergi
Rodrigues T Ostrosky
Munro I Whobrey
Izzy O Dilliard
Sinclair S Chui
James C Darakjy
IdCountryDate
1000France2026-07-21
1001Italy2026-07-17
1002Italy2026-07-26
1003France2026-08-07
1004Canada2026-07-27
1005Argentina2026-07-20
1006India2026-07-15
1007Spain2026-08-03
1008Argentina2026-07-27
1009Australia2026-08-07
1010Australia2026-07-25
1011Spain2026-08-08
1012Germany2026-07-31
1013Australia2026-07-18
1014United Kingdom2026-07-27
1015Japan2026-08-01
1016Argentina2026-07-18
1017Russia2026-08-01
1018Argentina2026-08-10
1019Brazil2026-07-29
1020Australia2026-07-26
1021Canada2026-08-11
1022Spain2026-07-21
1023Brazil2026-07-19
1024Japan2026-07-30
1025Argentina2026-07-21
1026Argentina2026-08-02
1027France2026-08-04
1028Australia2026-08-02
1029Brazil2026-08-02
1030Argentina2026-08-01
1031Canada2026-07-20
1032United Kingdom2026-07-18
1033Germany2026-08-03
1034Argentina2026-07-18
1035United Kingdom2026-07-23
1036Spain2026-07-21
1037Russia2026-07-14
1038Japan2026-07-16
1039Japan2026-07-16
1040India2026-08-01
1041Russia2026-08-03
1042Italy2026-07-17
1043Argentina2026-08-03
1044India2026-08-04
1045Japan2026-08-03
1046United Kingdom2026-08-02
1047India2026-07-19
1048Spain2026-08-09
1049Spain2026-07-29

On-Demand Data

NameIdCountryDate
Greenwood T Whobrey1000Spain2026-07-31
Morrow E Sergi1001Australia2026-07-19
Maisha W Malet1002Brazil2026-08-06
Ivar D Ruta1003Russia2026-08-02
Murillo V Sergi1004Japan2026-08-10
Octavia J Kusko1005Japan2026-08-09
Ivar A Saylors1006Spain2026-07-30
Izzy Z Marrier1007Spain2026-08-04
Maria T Nicka1008Argentina2026-08-09
Isabel V Foller1009Germany2026-08-07
Wickens T Rulapaugh1010India2026-07-14
Claire N Kolmetz1011Argentina2026-07-27
Greenwood T Ostrosky1012Russia2026-08-07
Sinclair T Venere1013Australia2026-08-09
Alejandro B Dilliard1014Spain2026-08-01
Clifford H Bolognia1015Spain2026-07-14
Kadeem Y Ostrosky1016United Kingdom2026-07-20
Munro Z Glick1017Spain2026-07-13
Leon D Wieser1018Argentina2026-07-23
Arvin G Malet1019Japan2026-07-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony S StockhamRussiaXuxue Feng NEGOTIATION
Mujtaba P BriddickFranceOnyama Limba UNQUALIFIED
Misaki A DilliardArgentinaIvan Magalhaes NEW
Isabel A NestleGermanyAnna Fali NEW
Nicolas T StockhamAustraliaOnyama Limba PROPOSAL
Claire G CaldareraItalyStephen Shaw NEGOTIATION
Rodrigues O BologniaItalyXuxue Feng NEGOTIATION
James J VenereUnited KingdomBernardo Dominic NEGOTIATION
Jennifer N SergiItalyOnyama Limba UNQUALIFIED
Clifford F BowleyItalyElwin Sharvill PROPOSAL
Greenwood U AmigonBrazilIoni Bowcher PROPOSAL
Octavia Q MaletUnited KingdomOnyama Limba NEGOTIATION
Antonio K WhobreyUnited KingdomElwin Sharvill PROPOSAL
Antonio I AlbaresFranceAmy Elsner PROPOSAL
Wickens Z AlbaresAustraliaIoni Bowcher NEGOTIATION
Smith Q StensethCanadaIoni Bowcher PROPOSAL
Clifford Z CaldareraFranceIvan Magalhaes UNQUALIFIED
Jones P RulapaughUnited KingdomBernardo Dominic QUALIFIED
Wickens W KolmetzCanadaIvan Magalhaes PROPOSAL
Chavez K PoquetteAustraliaXuxue Feng PROPOSAL
Kadeem J CaldareraFranceXuxue Feng UNQUALIFIED
Sinclair U WhobreySpainOnyama Limba NEW
Emily S VocelkaGermanyStephen Shaw UNQUALIFIED
Johnson L CaudySpainBernardo Dominic RENEWAL
Chavez I RutaSpainIvan Magalhaes NEW
Aruna Y ButtBrazilXuxue Feng RENEWAL
Nicolas K OldroydSpainIoni Bowcher QUALIFIED
Salvatore G FigeroaAustraliaAmy Elsner RENEWAL
Alejandro W KuskoIndiaBernardo Dominic QUALIFIED
Juan A MarrierCanadaXuxue Feng NEW
Adams N NestleBrazilIvan Magalhaes NEGOTIATION
Julie U CaudyItalyAsiya Javayant QUALIFIED
Alejandro C KuskoItalyIoni Bowcher RENEWAL
Misaki O IturbideGermanyOnyama Limba QUALIFIED
Kaitlin H NestleJapanIoni Bowcher UNQUALIFIED
Arvin O DoeIndiaXuxue Feng RENEWAL
James W SergiIndiaIvan Magalhaes PROPOSAL
Rodrigues Y NestleGermanyAmy Elsner RENEWAL
David L DilliardCanadaOnyama Limba RENEWAL
Leja O OldroydBrazilBernardo Dominic UNQUALIFIED

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