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
Arvin O DoeFranceAnna Fali QUALIFIED
Mayumi Z RulapaughBrazilAmy Elsner UNQUALIFIED
Claire G BriddickArgentinaAnna Fali RENEWAL
Johnson B StensethBrazilAsiya Javayant QUALIFIED
Smith M PaprockiBrazilOnyama Limba UNQUALIFIED
Emily G SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Jennifer N MarrierSpainBernardo Dominic UNQUALIFIED
Maisha P OldroydJapanIvan Magalhaes UNQUALIFIED
Jefferson D DarakjyUnited KingdomStephen Shaw RENEWAL
Emily E FerenczBrazilAsiya Javayant PROPOSAL
Wickens R MarrierGermanyBernardo Dominic QUALIFIED
Aditya J CaudyFranceBernardo Dominic NEGOTIATION
Aruna Z AlbaresFranceIvan Magalhaes UNQUALIFIED
Cody Y SchemmerAustraliaAsiya Javayant QUALIFIED
Isabel L PerinFranceXuxue Feng RENEWAL
Izzy R BowleyBrazilAmy Elsner QUALIFIED
Cody Y IturbideUnited KingdomOnyama Limba RENEWAL
Antonio S RimGermanyIoni Bowcher RENEWAL
Mayumi H FerenczFranceIvan Magalhaes PROPOSAL
Ivar Q DarakjyIndiaXuxue Feng NEGOTIATION
Costa T FerenczFranceAmy Elsner RENEWAL
Maria L ShinkoSpainOnyama Limba QUALIFIED
Maisha F WieserRussiaOnyama Limba RENEWAL
Sinclair H RoysterGermanyAsiya Javayant UNQUALIFIED
Sinclair A VocelkaGermanyOnyama Limba NEGOTIATION
Tony O FerenczArgentinaElwin Sharvill QUALIFIED
Adams Q KolmetzGermanyAsiya Javayant RENEWAL
Faith Y GlickItalyStephen Shaw PROPOSAL
Cody Q CaldareraArgentinaAmy Elsner QUALIFIED
Maisha Z BowleyIndiaAmy Elsner QUALIFIED
Deepesh I PerinIndiaAnna Fali RENEWAL
Ashley C OldroydBrazilAnna Fali PROPOSAL
Morrow Y VocelkaFranceOnyama Limba NEGOTIATION
Morrow X GlickSpainAmy Elsner UNQUALIFIED
Ricardo B PoquetteBrazilElwin Sharvill PROPOSAL
Adams D MorascaRussiaAnna Fali UNQUALIFIED
David D FigeroaArgentinaAsiya Javayant UNQUALIFIED
Arvin M InouyeFranceIoni Bowcher PROPOSAL
Francesco F AlbaresIndiaElwin Sharvill NEW
Cody R ChuiItalyIvan Magalhaes QUALIFIED
Smith Q GauchoJapanXuxue Feng UNQUALIFIED
Emily H PaprockiRussiaIvan Magalhaes PROPOSAL
Johnson C FigeroaUnited KingdomXuxue Feng NEW
Greenwood G OstroskyUnited KingdomAnna Fali RENEWAL
Chavez G FlosiArgentinaAmy Elsner NEGOTIATION
Emily V InouyeUnited KingdomElwin Sharvill RENEWAL
Emily R StensethUnited KingdomBernardo Dominic RENEWAL
Murillo R PoquetteIndiaXuxue Feng NEGOTIATION
Kadeem V FlosiFranceBernardo Dominic QUALIFIED
Rodrigues C FerenczIndiaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois E CampainCanadaAnna Fali PROPOSAL
Salvatore V TollnerArgentinaAnna Fali NEGOTIATION
David A BologniaAustraliaAmy Elsner PROPOSAL
Silvio D KolmetzIndiaElwin Sharvill QUALIFIED
Mujtaba W StockhamAustraliaBernardo Dominic PROPOSAL
Jones C FerenczFranceAsiya Javayant UNQUALIFIED
Aditya J ShinkoSpainElwin Sharvill QUALIFIED
Octavia A PoquetteUnited KingdomIoni Bowcher QUALIFIED
Costa J PoquetteRussiaIvan Magalhaes NEGOTIATION
Stacey C SchemmerUnited KingdomAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia J AmigonRussia2026-07-04Rangoni Of Florence RENEWAL57Stephen Shaw
1001Aruna U SchemmerGermany2026-07-08Chapman, Ross E Esq RENEWAL89Asiya Javayant
1002Maria U BriddickItaly2026-06-24Dorl, James J Esq NEW99Amy Elsner
1003Jennifer L CaudyCanada2026-07-02Commercial Press UNQUALIFIED43Xuxue Feng
1004Claire N PerinArgentina2026-07-12Rangoni Of Florence UNQUALIFIED94Amy Elsner
1005Greenwood W RoysterItaly2026-06-29Rousseaux, Michael Esq PROPOSAL80Amy Elsner
1006Leon I InouyeJapan2026-06-30Feiner Bros RENEWAL54Bernardo Dominic
1007Alejandro R GlickArgentina2026-06-22Commercial Press PROPOSAL52Elwin Sharvill
1008Nicolas Q CampainFrance2026-07-06Printing Dimensions QUALIFIED37Ivan Magalhaes
1009Nicolas A WhobreyItaly2026-07-15Morlong Associates QUALIFIED49Ivan Magalhaes
1010Jones M PoquetteBrazil2026-07-07Chemel, James L Cpa UNQUALIFIED15Elwin Sharvill
1011Mujtaba S DilliardRussia2026-06-25King, Christopher A Esq NEW55Ioni Bowcher
1012Salvatore A PaprockiGermany2026-07-16Commercial Press RENEWAL36Stephen Shaw
1013Chavez T BologniaUnited Kingdom2026-06-19Chapman, Ross E Esq UNQUALIFIED17Asiya Javayant
1014Aruna P ButtArgentina2026-06-17Feiner Bros RENEWAL60Ioni Bowcher
1015Sinclair O VocelkaUnited Kingdom2026-06-17Morlong Associates RENEWAL58Ivan Magalhaes
1016Nicolas C FigeroaAustralia2026-07-02Dorl, James J Esq NEGOTIATION78Amy Elsner
1017Mujtaba G SchemmerArgentina2026-07-01Morlong Associates QUALIFIED68Amy Elsner
1018Salvatore J BologniaJapan2026-06-29Chapman, Ross E Esq NEGOTIATION66Ioni Bowcher
1019Maisha Z GarufiAustralia2026-06-30Morlong Associates NEW27Asiya Javayant
1020Jeanfrancois J BowleyJapan2026-07-15Rousseaux, Michael Esq NEW83Anna Fali
1021Alejandro G SlusarskiBrazil2026-06-30Rangoni Of Florence UNQUALIFIED30Xuxue Feng
1022Sinclair A AmigonBrazil2026-07-03Feiner Bros NEW83Stephen Shaw
1023Nicolas N MaletAustralia2026-06-19Morlong Associates NEGOTIATION48Bernardo Dominic
1024David P PaprockiAustralia2026-07-01Morlong Associates NEGOTIATION38Amy Elsner
1025Deepesh U BologniaGermany2026-06-24Rangoni Of Florence NEGOTIATION6Amy Elsner
1026Aika E PaprockiSpain2026-07-11Buckley Miller Wright PROPOSAL50Asiya Javayant
1027Francesco W MaletFrance2026-06-25Chemel, James L Cpa NEGOTIATION32Elwin Sharvill
1028Arvin T BowleyRussia2026-07-16Morlong Associates UNQUALIFIED34Stephen Shaw
1029Jennifer G GauchoItaly2026-06-17Buckley Miller Wright RENEWAL92Asiya Javayant
1030Cody J BologniaItaly2026-07-03Feiner Bros RENEWAL95Amy Elsner
1031Costa Q PerinIndia2026-06-30Feltz Printing Service NEGOTIATION71Asiya Javayant
1032Alejandro E InouyeSpain2026-07-02Chemel, James L Cpa NEW48Amy Elsner
1033James B CaldareraBrazil2026-06-20King, Christopher A Esq UNQUALIFIED22Xuxue Feng
1034Nicolas T CampainItaly2026-07-04Dorl, James J Esq NEGOTIATION92Stephen Shaw
1035Mujtaba N TollnerIndia2026-07-14Rousseaux, Michael Esq PROPOSAL17Xuxue Feng
1036Francesco A SaylorsSpain2026-06-23Chemel, James L Cpa NEGOTIATION22Onyama Limba
1037Faith B TollnerCanada2026-06-25Printing Dimensions QUALIFIED82Ivan Magalhaes
1038Morrow K IturbideIndia2026-06-22Truhlar And Truhlar Attys NEW21Xuxue Feng
1039Adams O ChuiArgentina2026-07-01Truhlar And Truhlar Attys PROPOSAL51Asiya Javayant
1040Leja Y FlosiIndia2026-06-22Buckley Miller Wright NEW83Bernardo Dominic
1041Aika J RoysterGermany2026-07-06Rangoni Of Florence PROPOSAL79Ivan Magalhaes
1042Kadeem L KuskoCanada2026-07-05Printing Dimensions NEGOTIATION99Ioni Bowcher
1043Morrow D CampainFrance2026-06-26Chanay, Jeffrey A Esq UNQUALIFIED13Ioni Bowcher
1044Jeanfrancois S MaletAustralia2026-07-03Commercial Press UNQUALIFIED81Asiya Javayant
1045Chavez T AlbaresCanada2026-07-05Morlong Associates RENEWAL12Asiya Javayant
1046Francesco K TollnerFrance2026-07-06Commercial Press NEGOTIATION25Xuxue Feng
1047Adams U BowleyRussia2026-07-06Commercial Press RENEWAL5Amy Elsner
1048Ivar D StockhamItaly2026-06-17Benton, John B Jr QUALIFIED13Elwin Sharvill
1049Munro Y BriddickGermany2026-06-28Truhlar And Truhlar Attys PROPOSAL96Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Clifford Z PoquetteBrazilBernardo Dominic NEGOTIATION
Aika Z PerinUnited KingdomXuxue Feng QUALIFIED
Smith W RimJapanAnna Fali NEGOTIATION
Silvio S FerenczBrazilOnyama Limba PROPOSAL
James D GauchoArgentinaAnna Fali QUALIFIED
Ashley J NestleGermanyStephen Shaw RENEWAL
Jennifer H BriddickJapanIoni Bowcher PROPOSAL
Antonio W PoquetteJapanAmy Elsner RENEWAL
Wickens Z TollnerJapanElwin Sharvill RENEWAL
Francesco G ButtFranceAmy Elsner QUALIFIED
Johnson J RulapaughUnited KingdomAnna Fali RENEWAL
Maria X SaylorsJapanStephen Shaw NEGOTIATION
Smith F BologniaBrazilElwin Sharvill NEW
Kaitlin Q FlosiIndiaAnna Fali UNQUALIFIED
Wickens J SaylorsGermanyAsiya Javayant RENEWAL
Munro A GarufiSpainStephen Shaw QUALIFIED
Arvin I RimCanadaAnna Fali NEGOTIATION
Alejandro K PoquetteGermanyXuxue Feng PROPOSAL
Greenwood W CampainBrazilAmy Elsner RENEWAL
Morrow X SergiBrazilIoni Bowcher NEW
Kadeem C MorascaRussiaXuxue Feng NEGOTIATION
Costa E BriddickItalyAsiya Javayant PROPOSAL
Jones E BologniaArgentinaAmy Elsner RENEWAL
Ricardo M BowleyAustraliaXuxue Feng UNQUALIFIED
Kadeem N MorascaJapanIvan Magalhaes NEGOTIATION
Jennifer F CaldareraArgentinaStephen Shaw UNQUALIFIED
Aditya K ButtArgentinaElwin Sharvill PROPOSAL
Ricardo E MaletAustraliaIoni Bowcher NEW
Sinclair N ShinkoFranceIvan Magalhaes NEGOTIATION
Octavia R ShinkoAustraliaIvan Magalhaes NEGOTIATION
Claire Q MorascaUnited KingdomAsiya Javayant RENEWAL
Izzy D RutaItalyAsiya Javayant RENEWAL
Claire T KuskoRussiaOnyama Limba NEW
Sinclair V SergiAustraliaIvan Magalhaes NEGOTIATION
Maria V WhobreyBrazilAsiya Javayant PROPOSAL
Wickens N MacleadGermanyStephen Shaw RENEWAL
Ricardo V KolmetzBrazilElwin Sharvill NEGOTIATION
Kaitlin S FigeroaRussiaIvan Magalhaes QUALIFIED
Johnson P AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Izzy R WaycottSpainAmy Elsner QUALIFIED
Leja X TollnerArgentinaIoni Bowcher QUALIFIED
Aditya F PaprockiArgentinaBernardo Dominic NEW
Emily O FlosiSpainIoni Bowcher PROPOSAL
David H PoquetteGermanyXuxue Feng NEGOTIATION
Rodrigues B SlusarskiRussiaStephen Shaw NEGOTIATION
Leja Y RulapaughGermanyOnyama Limba RENEWAL
Claire O AmigonSpainAmy Elsner NEGOTIATION
Salvatore A GlickUnited KingdomAnna Fali NEW
Aditya E StensethAustraliaAsiya Javayant NEGOTIATION
Arvin R ButtIndiaXuxue Feng PROPOSAL
Frozen Columns
Name
Ricardo R Vocelka
Deepesh V Flosi
Maisha Q Shinko
Claire L Vocelka
Jeanfrancois C Saylors
Aruna N Albares
Maria A Kolmetz
Emily A Tollner
Jeanfrancois J Flosi
Greenwood C Maclead
Tony H Waycott
David Y Marrier
Kaitlin J Figeroa
Jones G Kusko
Antonio H Campain
Kadeem X Gaucho
Emily P Tollner
James W Amigon
Misaki L Paprocki
Nicolas U Flosi
Kaitlin U Gaucho
Aditya O Ferencz
Emily E Ferencz
Maria U Slusarski
Jennifer U Glick
Antonio U Doe
Ivar Z Schemmer
Ashley F Slusarski
Silvio S Gaucho
Ricardo K Wieser
Emily I Malet
Munro Z Sergi
Claire Z Foller
Jeanfrancois U Gillian
Kaitlin A Morasca
Izzy A Whobrey
Aika B Ostrosky
Adams X Glick
Rodrigues I Figeroa
David T Bolognia
Ivar N Rulapaugh
Leon V Ruta
Aditya P Stenseth
Ashley W Inouye
Maria P Slusarski
Emily J Garufi
Silvio Y Waycott
James E Gillian
Nicolas X Foller
Kadeem Z Waycott
IdCountryDate
1000Spain2026-07-08
1001Russia2026-07-03
1002Australia2026-06-19
1003Japan2026-06-20
1004Russia2026-06-22
1005Germany2026-06-27
1006Germany2026-06-26
1007India2026-07-07
1008Canada2026-07-06
1009United Kingdom2026-07-06
1010Japan2026-07-01
1011India2026-07-11
1012Brazil2026-06-18
1013France2026-07-01
1014Canada2026-07-16
1015Italy2026-07-14
1016Canada2026-07-04
1017Australia2026-07-14
1018France2026-07-06
1019Germany2026-06-21
1020Germany2026-07-01
1021Australia2026-07-01
1022Japan2026-07-03
1023Russia2026-07-10
1024India2026-06-19
1025United Kingdom2026-07-12
1026Russia2026-07-08
1027Australia2026-07-05
1028Canada2026-06-18
1029Russia2026-07-06
1030Japan2026-06-29
1031Germany2026-07-02
1032Argentina2026-07-06
1033Spain2026-07-09
1034Spain2026-07-15
1035Russia2026-06-29
1036Russia2026-06-25
1037Italy2026-07-08
1038Australia2026-07-16
1039Argentina2026-07-10
1040India2026-06-27
1041Australia2026-06-27
1042Germany2026-07-08
1043United Kingdom2026-07-10
1044France2026-06-23
1045United Kingdom2026-07-01
1046France2026-06-23
1047India2026-06-28
1048Australia2026-06-19
1049France2026-07-07

On-Demand Data

NameIdCountryDate
Aika P Nestle1000Argentina2026-06-21
Jefferson O Poquette1001Canada2026-07-13
Isabel J Malet1002Canada2026-06-21
Aditya S Malet1003Canada2026-07-04
Kaitlin Y Stockham1004India2026-07-05
Leja G Malet1005Japan2026-07-01
Maria C Morasca1006Russia2026-06-18
Darci K Garufi1007Russia2026-07-14
Rodrigues V Waycott1008Brazil2026-06-29
Aditya Y Kusko1009Brazil2026-07-13
Cody B Caldarera1010Australia2026-07-06
Rodrigues R Darakjy1011Japan2026-06-25
James Q Shinko1012Canada2026-07-12
David C Malet1013France2026-07-01
Francesco K Amigon1014United Kingdom2026-06-24
Claire Q Flosi1015Italy2026-06-22
Octavia D Butt1016Russia2026-07-08
Juan M Chui1017United Kingdom2026-07-16
Maisha M Venere1018Argentina2026-06-19
Mujtaba Z Dilliard1019Japan2026-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois V ChuiFranceAsiya Javayant QUALIFIED
Emily O RulapaughAustraliaElwin Sharvill RENEWAL
Aika N IturbideJapanXuxue Feng NEGOTIATION
Wickens M NestleGermanyBernardo Dominic QUALIFIED
Murillo G AlbaresFranceAmy Elsner NEW
Aditya L OstroskyBrazilIoni Bowcher RENEWAL
Silvio U StensethGermanyAmy Elsner UNQUALIFIED
Jefferson U FerenczRussiaIvan Magalhaes PROPOSAL
Johnson V TollnerUnited KingdomAsiya Javayant NEW
Tony L MaletItalyOnyama Limba QUALIFIED
Costa S CampainJapanAsiya Javayant NEW
Izzy R AlbaresSpainElwin Sharvill UNQUALIFIED
Clifford P PerinItalyXuxue Feng PROPOSAL
Jones P OstroskyItalyAnna Fali RENEWAL
Stacey H RimBrazilStephen Shaw RENEWAL
Wickens S ShinkoAustraliaStephen Shaw UNQUALIFIED
Juan U BriddickSpainElwin Sharvill NEGOTIATION
Jones R InouyeSpainIvan Magalhaes UNQUALIFIED
Wickens A GauchoFranceAnna Fali NEGOTIATION
Chavez V AmigonIndiaBernardo Dominic NEGOTIATION
Claire L OstroskyAustraliaAmy Elsner RENEWAL
Kaitlin D SaylorsItalyIoni Bowcher QUALIFIED
Isabel K CaudyCanadaXuxue Feng RENEWAL
Kadeem Q AmigonGermanyOnyama Limba UNQUALIFIED
Arvin Y MarrierArgentinaIoni Bowcher NEW
Johnson K GarufiItalyElwin Sharvill RENEWAL
Adams Q SlusarskiFranceElwin Sharvill NEGOTIATION
Aruna Y OldroydItalyStephen Shaw NEGOTIATION
Sinclair N KolmetzArgentinaXuxue Feng RENEWAL
Maisha H SlusarskiItalyIoni Bowcher RENEWAL
Aruna D FollerFranceElwin Sharvill NEW
Alejandro A SergiFranceBernardo Dominic QUALIFIED
Sinclair E InouyeArgentinaIoni Bowcher QUALIFIED
Clifford M SergiGermanyIvan Magalhaes UNQUALIFIED
Maria I FollerFranceAmy Elsner QUALIFIED
Morrow B GlickSpainAsiya Javayant RENEWAL
Salvatore E ShinkoRussiaElwin Sharvill RENEWAL
Munro Z WieserCanadaElwin Sharvill RENEWAL
Johnson N RoysterSpainAsiya Javayant PROPOSAL
Claire P CaldareraSpainBernardo Dominic 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>