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
Chavez O RimUnited KingdomElwin Sharvill RENEWAL
Nicolas A KuskoIndiaAmy Elsner NEW
Tony X VocelkaFranceAsiya Javayant PROPOSAL
Salvatore S GarufiItalyAmy Elsner NEGOTIATION
Aditya Q FollerAustraliaIvan Magalhaes PROPOSAL
Ashley T NickaRussiaBernardo Dominic NEW
Ricardo Q GlickBrazilIvan Magalhaes PROPOSAL
Faith T StensethBrazilAnna Fali UNQUALIFIED
Jennifer L VocelkaAustraliaOnyama Limba NEW
Juan J MaletGermanyOnyama Limba QUALIFIED
Aditya H VocelkaBrazilBernardo Dominic PROPOSAL
Isabel X PaprockiUnited KingdomElwin Sharvill RENEWAL
Salvatore B RutaBrazilElwin Sharvill NEGOTIATION
Claire M RutaCanadaIoni Bowcher QUALIFIED
Jennifer B FlosiUnited KingdomXuxue Feng RENEWAL
Kaitlin H VenereFranceIvan Magalhaes RENEWAL
Greenwood O SergiUnited KingdomIoni Bowcher QUALIFIED
Emily D OstroskyItalyElwin Sharvill UNQUALIFIED
Leon E TollnerUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois H MacleadRussiaBernardo Dominic RENEWAL
Clifford X WhobreyJapanAsiya Javayant QUALIFIED
Greenwood S MaletFranceAmy Elsner UNQUALIFIED
Deepesh I FerenczRussiaIvan Magalhaes NEGOTIATION
Costa M NickaItalyBernardo Dominic QUALIFIED
Sinclair V CaudyJapanIoni Bowcher UNQUALIFIED
Kadeem P SchemmerAustraliaStephen Shaw QUALIFIED
Mujtaba E AlbaresIndiaXuxue Feng RENEWAL
Maria T WieserItalyIoni Bowcher RENEWAL
Murillo K OstroskyFranceIvan Magalhaes RENEWAL
Morrow Z VenereGermanyStephen Shaw UNQUALIFIED
James P KuskoBrazilElwin Sharvill QUALIFIED
Chavez L WieserArgentinaBernardo Dominic NEW
Mayumi P BowleyArgentinaAsiya Javayant UNQUALIFIED
Silvio X BologniaUnited KingdomElwin Sharvill PROPOSAL
Ashley U CampainJapanAsiya Javayant RENEWAL
Munro R PerinRussiaElwin Sharvill QUALIFIED
Francesco Q RutaJapanIoni Bowcher UNQUALIFIED
Aditya P DoeSpainAmy Elsner NEGOTIATION
Maisha L MaletGermanyAsiya Javayant NEGOTIATION
Chavez K KuskoFranceBernardo Dominic QUALIFIED
James M BriddickSpainElwin Sharvill NEW
Aditya F WaycottFranceAmy Elsner RENEWAL
Leja O SergiSpainAsiya Javayant QUALIFIED
Munro Z CaldareraBrazilAmy Elsner NEW
Antonio I ChuiArgentinaIoni Bowcher NEW
Morrow G PaprockiIndiaAsiya Javayant UNQUALIFIED
Murillo I BologniaArgentinaIvan Magalhaes UNQUALIFIED
Jones O PaprockiFranceAsiya Javayant QUALIFIED
Chavez E BowleyCanadaIvan Magalhaes RENEWAL
Adams K FerenczFranceAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Antonio E BowleySpainBernardo Dominic PROPOSAL
Claire O GauchoGermanyAsiya Javayant PROPOSAL
Murillo H DoeGermanyIoni Bowcher PROPOSAL
Ivar R NickaGermanyBernardo Dominic NEGOTIATION
Aika H GauchoGermanyElwin Sharvill QUALIFIED
Aditya I SergiIndiaOnyama Limba NEGOTIATION
Aika X PoquetteSpainAnna Fali RENEWAL
Arvin D KuskoJapanBernardo Dominic RENEWAL
Tony J FerenczCanadaElwin Sharvill UNQUALIFIED
Clifford F PaprockiCanadaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja S PaprockiIndia2026-07-01Rangoni Of Florence PROPOSAL23Anna Fali
1001Silvio O StensethBrazil2026-06-27Morlong Associates NEGOTIATION48Ivan Magalhaes
1002Darci H IturbideIndia2026-06-17Chanay, Jeffrey A Esq NEW93Ivan Magalhaes
1003Ricardo D RimAustralia2026-06-22Printing Dimensions QUALIFIED33Anna Fali
1004Faith C StensethSpain2026-06-25King, Christopher A Esq PROPOSAL22Ioni Bowcher
1005Aika T MarrierUnited Kingdom2026-06-13Benton, John B Jr NEW91Xuxue Feng
1006Aika J MacleadCanada2026-06-11Printing Dimensions NEW6Elwin Sharvill
1007Greenwood J GarufiIndia2026-06-24Benton, John B Jr PROPOSAL24Xuxue Feng
1008Stacey R MaletUnited Kingdom2026-06-30Commercial Press NEGOTIATION61Ioni Bowcher
1009Alejandro R StockhamGermany2026-07-03Rangoni Of Florence NEW51Ioni Bowcher
1010Kaitlin J SergiSpain2026-06-21King, Christopher A Esq NEW5Xuxue Feng
1011Kadeem V CaldareraItaly2026-06-16Buckley Miller Wright RENEWAL73Elwin Sharvill
1012Aruna I TollnerAustralia2026-06-15Rousseaux, Michael Esq RENEWAL63Stephen Shaw
1013Chavez J MacleadJapan2026-06-26Feltz Printing Service PROPOSAL49Amy Elsner
1014Wickens A CampainIndia2026-06-28Chapman, Ross E Esq NEGOTIATION74Elwin Sharvill
1015Stacey I MorascaGermany2026-07-09Printing Dimensions RENEWAL66Anna Fali
1016Johnson N RutaRussia2026-07-09King, Christopher A Esq NEGOTIATION62Elwin Sharvill
1017Arvin I WieserFrance2026-06-28Chapman, Ross E Esq NEGOTIATION69Anna Fali
1018Mujtaba L ButtFrance2026-06-28King, Christopher A Esq RENEWAL42Stephen Shaw
1019Darci B VenereBrazil2026-07-05Benton, John B Jr NEW38Amy Elsner
1020Murillo M BowleyAustralia2026-06-18Chapman, Ross E Esq PROPOSAL99Ivan Magalhaes
1021Isabel N KolmetzGermany2026-06-11King, Christopher A Esq RENEWAL30Anna Fali
1022Greenwood D RulapaughIndia2026-07-05Morlong Associates QUALIFIED39Onyama Limba
1023Aditya L PerinGermany2026-06-18King, Christopher A Esq PROPOSAL49Onyama Limba
1024Aditya P StensethGermany2026-07-06Benton, John B Jr UNQUALIFIED94Elwin Sharvill
1025Salvatore G OstroskyUnited Kingdom2026-06-12Rousseaux, Michael Esq QUALIFIED68Ioni Bowcher
1026Julie U WhobreyJapan2026-06-25Morlong Associates NEGOTIATION70Bernardo Dominic
1027Johnson H ShinkoIndia2026-06-28Chapman, Ross E Esq RENEWAL64Elwin Sharvill
1028Clifford E SchemmerGermany2026-06-12Chemel, James L Cpa PROPOSAL15Amy Elsner
1029Misaki E FerenczItaly2026-06-23Rousseaux, Michael Esq PROPOSAL36Amy Elsner
1030Ricardo M FigeroaGermany2026-06-24Buckley Miller Wright QUALIFIED12Ivan Magalhaes
1031Smith N ChuiUnited Kingdom2026-06-16Rangoni Of Florence NEGOTIATION27Xuxue Feng
1032Arvin I MaletFrance2026-06-15Dorl, James J Esq PROPOSAL98Onyama Limba
1033Stacey G NestleRussia2026-06-15Chemel, James L Cpa QUALIFIED62Stephen Shaw
1034Claire B KuskoCanada2026-06-29Chapman, Ross E Esq RENEWAL30Ivan Magalhaes
1035Aika V MarrierGermany2026-07-05Rangoni Of Florence NEGOTIATION38Stephen Shaw
1036Stacey X KuskoRussia2026-07-02Chanay, Jeffrey A Esq PROPOSAL51Bernardo Dominic
1037Ivar B WieserAustralia2026-06-12Commercial Press QUALIFIED65Xuxue Feng
1038Maria A CaldareraBrazil2026-07-09Rangoni Of Florence UNQUALIFIED44Stephen Shaw
1039Arvin S WaycottItaly2026-06-21Benton, John B Jr PROPOSAL67Ivan Magalhaes
1040Misaki L TollnerUnited Kingdom2026-06-27Rangoni Of Florence QUALIFIED38Elwin Sharvill
1041Kaitlin G FollerAustralia2026-06-30Buckley Miller Wright RENEWAL59Ivan Magalhaes
1042Leon Q CampainAustralia2026-07-06Rangoni Of Florence NEGOTIATION80Amy Elsner
1043Chavez M AmigonAustralia2026-06-14Rangoni Of Florence NEW16Amy Elsner
1044Salvatore Z VenereRussia2026-06-18Benton, John B Jr QUALIFIED29Asiya Javayant
1045Salvatore J GauchoRussia2026-06-14Feiner Bros UNQUALIFIED45Bernardo Dominic
1046Aruna X RimGermany2026-06-29Rousseaux, Michael Esq NEW81Xuxue Feng
1047David N OldroydUnited Kingdom2026-06-28Rousseaux, Michael Esq NEGOTIATION89Ioni Bowcher
1048James B IturbideJapan2026-06-28Chemel, James L Cpa QUALIFIED97Ivan Magalhaes
1049Faith O ButtAustralia2026-06-24Feltz Printing Service UNQUALIFIED93Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ivar N NestleItalyElwin Sharvill UNQUALIFIED
Isabel C PerinAustraliaAsiya Javayant PROPOSAL
David Y WieserUnited KingdomStephen Shaw RENEWAL
Aruna O RutaBrazilAmy Elsner RENEWAL
Morrow Q WhobreyRussiaAnna Fali UNQUALIFIED
Leon N TollnerItalyStephen Shaw PROPOSAL
Adams W WieserArgentinaAsiya Javayant QUALIFIED
Mujtaba E AmigonArgentinaBernardo Dominic RENEWAL
Darci X VocelkaItalyStephen Shaw NEGOTIATION
Isabel O RimArgentinaAnna Fali NEW
Cody P NestleItalyIoni Bowcher PROPOSAL
Ricardo K KuskoIndiaAmy Elsner PROPOSAL
Juan Z CaudyFranceXuxue Feng NEGOTIATION
Darci S GlickFranceStephen Shaw UNQUALIFIED
Leja W PaprockiUnited KingdomAmy Elsner NEGOTIATION
James C VocelkaGermanyXuxue Feng RENEWAL
Wickens Z PaprockiIndiaIvan Magalhaes NEGOTIATION
Faith X GillianJapanIvan Magalhaes NEGOTIATION
Jennifer K PoquetteCanadaOnyama Limba UNQUALIFIED
Stacey W ChuiRussiaIoni Bowcher NEGOTIATION
Ricardo O TollnerGermanyAmy Elsner RENEWAL
Alejandro D WaycottItalyXuxue Feng UNQUALIFIED
Izzy A FigeroaJapanStephen Shaw RENEWAL
Faith W KolmetzFranceBernardo Dominic UNQUALIFIED
Arvin J BologniaArgentinaIvan Magalhaes NEW
Jones A GarufiGermanyElwin Sharvill NEW
Misaki S MaletUnited KingdomAmy Elsner PROPOSAL
Ricardo T NickaFranceStephen Shaw PROPOSAL
Faith K DarakjyArgentinaAmy Elsner UNQUALIFIED
Darci R MaletIndiaAnna Fali UNQUALIFIED
Emily L InouyeAustraliaAsiya Javayant RENEWAL
Cody J KolmetzCanadaIoni Bowcher QUALIFIED
Octavia S MaletUnited KingdomIvan Magalhaes QUALIFIED
Greenwood O GillianUnited KingdomStephen Shaw NEW
Costa J SergiCanadaXuxue Feng NEGOTIATION
Ricardo V ShinkoRussiaIvan Magalhaes NEGOTIATION
Tony N GauchoAustraliaAmy Elsner PROPOSAL
Salvatore G BologniaRussiaAmy Elsner NEGOTIATION
Jones S PaprockiGermanyElwin Sharvill RENEWAL
James N IturbideFranceXuxue Feng UNQUALIFIED
James Z CaldareraIndiaIoni Bowcher QUALIFIED
Jeanfrancois I AmigonUnited KingdomIoni Bowcher RENEWAL
Stacey D GauchoUnited KingdomAsiya Javayant QUALIFIED
Silvio T RulapaughAustraliaAmy Elsner NEW
Salvatore B AlbaresAustraliaOnyama Limba RENEWAL
Alejandro J MaletItalyAsiya Javayant UNQUALIFIED
Antonio Q SchemmerFranceAmy Elsner NEGOTIATION
Johnson E MarrierBrazilXuxue Feng UNQUALIFIED
Deepesh B MorascaUnited KingdomAnna Fali QUALIFIED
Faith E OldroydIndiaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Morrow H Iturbide
Costa X Venere
Chavez U Schemmer
Stacey R Perin
Juan B Poquette
Jennifer D Slusarski
Ricardo L Stenseth
Silvio B Gaucho
Ricardo L Figeroa
Maria W Whobrey
Misaki K Wieser
Ricardo Q Briddick
Chavez S Shinko
Mujtaba U Bolognia
Leon W Dilliard
Arvin W Schemmer
Leon D Albares
Arvin R Malet
Jeanfrancois E Garufi
Faith D Nestle
David W Wieser
Munro B Albares
Leon K Maclead
Antonio Z Darakjy
Jefferson A Royster
Juan E Morasca
Silvio T Gaucho
Morrow A Rim
Octavia B Amigon
David I Briddick
Misaki M Inouye
Rodrigues W Gillian
Deepesh O Vocelka
Emily H Wieser
Leja V Caudy
Francesco O Saylors
Clifford Y Vocelka
Sinclair Z Whobrey
Nicolas D Butt
Ashley B Caudy
Leon R Iturbide
Emily X Gaucho
Mujtaba X Slusarski
Aruna X Caudy
Salvatore G Flosi
Deepesh N Glick
Emily V Dilliard
Johnson E Doe
Tony Z Nestle
Jones O Inouye
IdCountryDate
1000Brazil2026-06-18
1001India2026-06-14
1002Canada2026-06-18
1003Spain2026-06-23
1004Canada2026-07-01
1005India2026-06-11
1006United Kingdom2026-06-28
1007Australia2026-07-05
1008Germany2026-06-21
1009Brazil2026-06-13
1010Brazil2026-06-21
1011France2026-06-20
1012Canada2026-06-17
1013Australia2026-06-26
1014Brazil2026-06-27
1015Canada2026-06-24
1016India2026-06-17
1017Argentina2026-07-02
1018Russia2026-06-18
1019Brazil2026-06-19
1020United Kingdom2026-06-11
1021Australia2026-06-17
1022Brazil2026-06-29
1023Spain2026-06-27
1024United Kingdom2026-06-23
1025Argentina2026-06-13
1026India2026-06-26
1027United Kingdom2026-07-05
1028France2026-06-19
1029Italy2026-06-22
1030France2026-06-23
1031Brazil2026-06-28
1032Brazil2026-06-19
1033Australia2026-06-21
1034Germany2026-07-07
1035Italy2026-06-29
1036Russia2026-07-07
1037Canada2026-06-23
1038Canada2026-06-14
1039France2026-07-02
1040Brazil2026-06-17
1041Russia2026-06-16
1042United Kingdom2026-07-06
1043Australia2026-06-17
1044United Kingdom2026-06-24
1045India2026-07-04
1046Japan2026-06-13
1047Japan2026-06-20
1048Italy2026-06-27
1049Japan2026-06-17

On-Demand Data

NameIdCountryDate
Maisha C Ferencz1000Australia2026-07-10
Alejandro B Albares1001Spain2026-06-13
Munro K Malet1002Argentina2026-06-18
Julie Y Gaucho1003Australia2026-07-05
Rodrigues T Amigon1004Japan2026-07-09
Alejandro A Darakjy1005United Kingdom2026-07-06
Sinclair I Malet1006India2026-07-02
Leja A Foller1007France2026-06-19
Maisha W Malet1008Canada2026-06-17
Nicolas Y Wieser1009Spain2026-07-10
Emily C Gillian1010Argentina2026-07-02
Stacey B Rulapaugh1011France2026-06-15
Leja L Shinko1012Canada2026-06-12
Octavia T Morasca1013Australia2026-06-26
Aika B Bolognia1014Italy2026-06-24
Silvio F Nicka1015Germany2026-06-26
Arvin F Saylors1016United Kingdom2026-06-26
Jeanfrancois J Dilliard1017Brazil2026-06-18
Faith A Inouye1018France2026-06-28
Aditya H Ferencz1019Spain2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood U RoysterRussiaXuxue Feng PROPOSAL
Kaitlin S WhobreyRussiaBernardo Dominic NEW
Jones B ButtItalyAsiya Javayant NEGOTIATION
Nicolas T MacleadBrazilOnyama Limba PROPOSAL
Darci G StensethUnited KingdomIoni Bowcher RENEWAL
Ivar I RoysterCanadaAsiya Javayant RENEWAL
Johnson U PaprockiRussiaStephen Shaw NEW
Aditya T ShinkoItalyBernardo Dominic PROPOSAL
Ashley Z NestleAustraliaBernardo Dominic RENEWAL
Cody A CaldareraCanadaAsiya Javayant NEGOTIATION
Antonio P CampainGermanyXuxue Feng NEW
Juan P AlbaresUnited KingdomIvan Magalhaes QUALIFIED
Aika Y NestleSpainIvan Magalhaes UNQUALIFIED
Chavez V SaylorsFranceBernardo Dominic QUALIFIED
Greenwood Q RutaUnited KingdomElwin Sharvill QUALIFIED
Claire A PerinFranceIoni Bowcher QUALIFIED
Silvio S MarrierItalyXuxue Feng PROPOSAL
Misaki T ChuiJapanAsiya Javayant NEW
Faith W ChuiAustraliaStephen Shaw NEW
Aditya I MaletIndiaIvan Magalhaes NEGOTIATION
Jones A MaletSpainAsiya Javayant PROPOSAL
Clifford M RoysterFranceIvan Magalhaes PROPOSAL
Leja H KuskoUnited KingdomStephen Shaw RENEWAL
Maria A DoeJapanStephen Shaw UNQUALIFIED
Deepesh G TollnerCanadaAsiya Javayant PROPOSAL
Leon T RimBrazilStephen Shaw NEW
James O CaldareraSpainXuxue Feng QUALIFIED
Darci O GlickArgentinaStephen Shaw RENEWAL
Murillo M FollerSpainBernardo Dominic QUALIFIED
Kaitlin Z StockhamUnited KingdomBernardo Dominic NEW
Jeanfrancois B SchemmerArgentinaAsiya Javayant QUALIFIED
Chavez E FollerBrazilAsiya Javayant RENEWAL
Juan N PoquetteArgentinaAnna Fali RENEWAL
Nicolas W DoeArgentinaBernardo Dominic UNQUALIFIED
Maria E DilliardCanadaAsiya Javayant QUALIFIED
Maria T StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Morrow N GillianCanadaIvan Magalhaes QUALIFIED
Deepesh R BriddickJapanStephen Shaw RENEWAL
Mujtaba J AmigonGermanyAnna Fali NEW
Octavia R OldroydCanadaElwin Sharvill QUALIFIED

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