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
Francesco N StensethAustraliaIoni Bowcher UNQUALIFIED
Antonio Q SchemmerIndiaStephen Shaw RENEWAL
Mayumi Z OstroskyBrazilStephen Shaw UNQUALIFIED
Nicolas P BriddickCanadaAsiya Javayant NEW
Johnson U SaylorsRussiaStephen Shaw PROPOSAL
Aika Q MorascaRussiaStephen Shaw NEGOTIATION
Tony Y CaudySpainBernardo Dominic PROPOSAL
Ashley K MaletFranceAsiya Javayant UNQUALIFIED
Salvatore W FerenczItalyAmy Elsner PROPOSAL
Ashley N GarufiArgentinaOnyama Limba QUALIFIED
Maria A FigeroaIndiaAsiya Javayant UNQUALIFIED
David K KuskoArgentinaOnyama Limba PROPOSAL
Izzy R RoysterGermanyOnyama Limba NEW
Leja O WaycottJapanStephen Shaw NEGOTIATION
Jones R ChuiIndiaBernardo Dominic RENEWAL
Greenwood R StensethSpainAnna Fali QUALIFIED
Rodrigues N NestleCanadaIoni Bowcher RENEWAL
Antonio I SchemmerArgentinaOnyama Limba NEW
Leja G GlickUnited KingdomAsiya Javayant NEGOTIATION
Faith G PaprockiJapanAsiya Javayant NEW
Kadeem J FollerSpainElwin Sharvill QUALIFIED
Alejandro I AmigonRussiaAsiya Javayant NEW
Deepesh E ButtFranceOnyama Limba PROPOSAL
Wickens H InouyeIndiaOnyama Limba NEW
Maria U MacleadIndiaOnyama Limba RENEWAL
Aika G KolmetzItalyIoni Bowcher NEGOTIATION
Kaitlin M WieserBrazilAnna Fali NEGOTIATION
Ashley Z OldroydSpainAmy Elsner UNQUALIFIED
Francesco J ChuiBrazilOnyama Limba QUALIFIED
Mujtaba E RimGermanyAmy Elsner RENEWAL
Aditya Z RulapaughArgentinaIoni Bowcher PROPOSAL
Cody S MarrierJapanIoni Bowcher UNQUALIFIED
Jennifer P ButtCanadaAmy Elsner QUALIFIED
Kadeem T PerinCanadaStephen Shaw NEW
Aditya X AlbaresCanadaAnna Fali QUALIFIED
Emily O FollerGermanyElwin Sharvill NEGOTIATION
Kadeem Q TollnerArgentinaIvan Magalhaes UNQUALIFIED
Faith A MacleadFranceStephen Shaw PROPOSAL
Cody B StensethBrazilBernardo Dominic NEGOTIATION
Rodrigues Z AmigonSpainXuxue Feng UNQUALIFIED
Claire O WaycottJapanAmy Elsner NEW
Salvatore P IturbideGermanyXuxue Feng NEGOTIATION
Misaki K NestleBrazilBernardo Dominic NEGOTIATION
Leja J RimBrazilAsiya Javayant PROPOSAL
Izzy A StensethRussiaBernardo Dominic RENEWAL
Emily O ShinkoSpainIoni Bowcher QUALIFIED
Maisha N VocelkaArgentinaBernardo Dominic PROPOSAL
Aditya Z BriddickAustraliaXuxue Feng NEGOTIATION
Ricardo L StensethBrazilElwin Sharvill NEGOTIATION
Kadeem R DarakjyRussiaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Arvin T TollnerAustraliaXuxue Feng UNQUALIFIED
Cody N RutaFranceXuxue Feng QUALIFIED
Costa C WaycottIndiaBernardo Dominic NEW
Tony R DarakjyBrazilOnyama Limba RENEWAL
Octavia E SergiItalyAmy Elsner RENEWAL
David W RoysterGermanyOnyama Limba PROPOSAL
Costa C GauchoIndiaAmy Elsner UNQUALIFIED
Claire V ButtArgentinaIoni Bowcher QUALIFIED
Leon T AlbaresArgentinaBernardo Dominic RENEWAL
Misaki H DoeSpainBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith J IturbideAustralia2026-08-04Rousseaux, Michael Esq NEGOTIATION63Elwin Sharvill
1001David Z BologniaBrazil2026-08-18Printing Dimensions RENEWAL39Onyama Limba
1002Deepesh V ShinkoBrazil2026-08-03Printing Dimensions QUALIFIED31Stephen Shaw
1003Rodrigues B VenereIndia2026-08-05Benton, John B Jr PROPOSAL35Anna Fali
1004Ricardo I RutaRussia2026-07-25Rangoni Of Florence PROPOSAL97Ivan Magalhaes
1005Julie H RulapaughIndia2026-08-11Chanay, Jeffrey A Esq NEGOTIATION35Asiya Javayant
1006Chavez Y DarakjyFrance2026-08-15Printing Dimensions PROPOSAL42Stephen Shaw
1007Jefferson N WaycottUnited Kingdom2026-08-15Rousseaux, Michael Esq RENEWAL33Anna Fali
1008Alejandro O DilliardCanada2026-08-03Printing Dimensions RENEWAL32Anna Fali
1009Alejandro J GlickGermany2026-07-30Dorl, James J Esq PROPOSAL67Amy Elsner
1010Jennifer N CampainJapan2026-08-23Rousseaux, Michael Esq NEGOTIATION86Amy Elsner
1011Izzy Z InouyeArgentina2026-08-22Feltz Printing Service QUALIFIED36Stephen Shaw
1012Claire B BriddickArgentina2026-08-19King, Christopher A Esq QUALIFIED64Stephen Shaw
1013Wickens X GlickFrance2026-08-19Dorl, James J Esq PROPOSAL0Asiya Javayant
1014Mujtaba Z RulapaughRussia2026-08-07Commercial Press QUALIFIED38Amy Elsner
1015Silvio G MacleadGermany2026-08-16Chapman, Ross E Esq QUALIFIED12Anna Fali
1016Salvatore V RimUnited Kingdom2026-08-05Chanay, Jeffrey A Esq QUALIFIED99Xuxue Feng
1017Darci F SchemmerCanada2026-07-30Rangoni Of Florence NEGOTIATION67Anna Fali
1018Kaitlin S BriddickJapan2026-08-13Benton, John B Jr PROPOSAL7Ivan Magalhaes
1019James K DoeGermany2026-07-25Chapman, Ross E Esq RENEWAL41Asiya Javayant
1020Morrow R StensethRussia2026-07-30Chapman, Ross E Esq NEGOTIATION68Amy Elsner
1021Izzy C RutaUnited Kingdom2026-07-31Morlong Associates NEW67Amy Elsner
1022Salvatore C OldroydJapan2026-08-03Morlong Associates QUALIFIED38Amy Elsner
1023Morrow U SaylorsUnited Kingdom2026-08-04Feiner Bros PROPOSAL37Elwin Sharvill
1024Juan X BriddickAustralia2026-08-14Rousseaux, Michael Esq NEGOTIATION65Anna Fali
1025Greenwood P SaylorsArgentina2026-08-19Chemel, James L Cpa RENEWAL88Bernardo Dominic
1026Clifford B FigeroaGermany2026-08-16Commercial Press PROPOSAL8Elwin Sharvill
1027Aika B MaletGermany2026-08-22Chapman, Ross E Esq NEGOTIATION77Anna Fali
1028Kaitlin P GillianSpain2026-07-27Morlong Associates RENEWAL38Amy Elsner
1029Darci T PaprockiIndia2026-08-18Dorl, James J Esq RENEWAL15Elwin Sharvill
1030Julie W GauchoUnited Kingdom2026-08-19Buckley Miller Wright PROPOSAL50Asiya Javayant
1031Deepesh W ButtBrazil2026-07-26Printing Dimensions QUALIFIED13Onyama Limba
1032Smith I DarakjyAustralia2026-07-25Rangoni Of Florence RENEWAL45Onyama Limba
1033Claire V CampainIndia2026-07-29Buckley Miller Wright QUALIFIED23Elwin Sharvill
1034James G DilliardBrazil2026-08-22Chanay, Jeffrey A Esq NEGOTIATION33Stephen Shaw
1035Jeanfrancois M PoquetteRussia2026-08-20Benton, John B Jr NEW29Anna Fali
1036Murillo S RutaSpain2026-07-28Printing Dimensions RENEWAL5Ioni Bowcher
1037Clifford Q MarrierJapan2026-08-18Buckley Miller Wright QUALIFIED90Ivan Magalhaes
1038Sinclair L StockhamIndia2026-08-06Morlong Associates RENEWAL53Elwin Sharvill
1039Morrow W BowleyJapan2026-08-05Morlong Associates NEW88Bernardo Dominic
1040Tony R PaprockiArgentina2026-08-16Feltz Printing Service NEW72Anna Fali
1041Jefferson M StockhamUnited Kingdom2026-07-25Benton, John B Jr NEGOTIATION30Ivan Magalhaes
1042Jones Z SlusarskiArgentina2026-08-05Buckley Miller Wright PROPOSAL9Anna Fali
1043Isabel K RutaCanada2026-08-15Rousseaux, Michael Esq UNQUALIFIED19Anna Fali
1044Deepesh I BriddickGermany2026-08-20Chapman, Ross E Esq NEGOTIATION4Asiya Javayant
1045Cody U PoquetteBrazil2026-07-30Truhlar And Truhlar Attys UNQUALIFIED13Bernardo Dominic
1046Wickens H MarrierSpain2026-08-07Rousseaux, Michael Esq PROPOSAL73Anna Fali
1047Darci J WhobreyArgentina2026-08-16Truhlar And Truhlar Attys NEW93Ivan Magalhaes
1048Jeanfrancois C SaylorsCanada2026-08-20Rangoni Of Florence NEW97Asiya Javayant
1049Sinclair H DarakjyGermany2026-07-31Morlong Associates UNQUALIFIED28Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Sinclair N RutaGermanyAsiya Javayant NEW
Maisha M StensethGermanyAnna Fali NEGOTIATION
Ashley D DoeFranceAsiya Javayant RENEWAL
Octavia E DoeRussiaAnna Fali PROPOSAL
Wickens H OldroydGermanyAmy Elsner RENEWAL
Arvin V ChuiItalyIoni Bowcher PROPOSAL
Jones U CaudyGermanyXuxue Feng PROPOSAL
Faith Y VenereUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois P PoquetteSpainIoni Bowcher RENEWAL
Costa R BriddickAustraliaAnna Fali RENEWAL
Murillo O MorascaBrazilBernardo Dominic NEW
Faith O GlickIndiaAsiya Javayant UNQUALIFIED
Stacey F TollnerJapanBernardo Dominic NEW
Aruna Z RimAustraliaStephen Shaw PROPOSAL
Emily D InouyeItalyIoni Bowcher UNQUALIFIED
Kadeem A BologniaArgentinaAmy Elsner UNQUALIFIED
Darci F InouyeSpainElwin Sharvill PROPOSAL
Aika R DoeGermanyBernardo Dominic PROPOSAL
Faith Z FerenczUnited KingdomAmy Elsner QUALIFIED
Mujtaba N ShinkoRussiaIvan Magalhaes NEW
Jennifer L WhobreyFranceOnyama Limba PROPOSAL
Aditya B MarrierFranceIoni Bowcher UNQUALIFIED
Rodrigues K GillianItalyBernardo Dominic QUALIFIED
Aditya L PaprockiArgentinaOnyama Limba NEGOTIATION
Faith O VocelkaGermanyOnyama Limba NEGOTIATION
Arvin R SaylorsSpainStephen Shaw NEW
Greenwood P ButtIndiaBernardo Dominic QUALIFIED
Ricardo C WaycottAustraliaXuxue Feng RENEWAL
Smith W SergiFranceAmy Elsner RENEWAL
Ivar A MorascaRussiaIoni Bowcher NEGOTIATION
Ivar R FerenczIndiaIvan Magalhaes UNQUALIFIED
Alejandro J FollerRussiaIoni Bowcher QUALIFIED
Sinclair L MaletCanadaBernardo Dominic NEGOTIATION
Murillo H DarakjyAustraliaOnyama Limba NEGOTIATION
Isabel D GarufiJapanAnna Fali NEW
Jones E BologniaRussiaAnna Fali NEGOTIATION
Maisha K SchemmerItalyIoni Bowcher NEW
Morrow T BowleyAustraliaXuxue Feng NEW
Misaki W GauchoSpainElwin Sharvill RENEWAL
Johnson Z SchemmerRussiaElwin Sharvill NEW
Emily T SergiRussiaAsiya Javayant RENEWAL
Emily V RutaJapanAnna Fali UNQUALIFIED
Salvatore Q FollerCanadaAsiya Javayant RENEWAL
Alejandro C BologniaSpainIvan Magalhaes UNQUALIFIED
Juan F WaycottFranceIvan Magalhaes NEGOTIATION
Munro F RulapaughFranceAmy Elsner QUALIFIED
David B CaudyRussiaOnyama Limba RENEWAL
Ricardo W FlosiSpainAsiya Javayant RENEWAL
Johnson P PoquetteIndiaElwin Sharvill QUALIFIED
Aika S GillianCanadaElwin Sharvill NEW
Frozen Columns
Name
Silvio Y Ruta
Costa O Malet
Rodrigues W Garufi
Faith H Dilliard
Cody S Gillian
Juan L Garufi
Greenwood H Sergi
Smith V Morasca
Jefferson F Bowley
Isabel T Malet
Ashley M Caldarera
Costa O Kusko
Leja E Vocelka
Salvatore T Morasca
Claire W Whobrey
Mayumi Y Poquette
Darci X Campain
Tony S Marrier
Maisha I Chui
Jennifer I Gaucho
Deepesh S Wieser
Chavez L Figeroa
Leja F Kolmetz
Alejandro F Shinko
Munro E Iturbide
Chavez C Caldarera
Johnson T Glick
Izzy P Chui
Clifford Y Iturbide
Antonio T Slusarski
Leon T Saylors
Octavia T Iturbide
Murillo J Caudy
Aditya F Malet
Leja G Paprocki
Chavez D Butt
Maria T Albares
Aditya I Royster
Maria P Dilliard
Faith K Iturbide
Maisha X Gaucho
Morrow O Doe
Ashley L Albares
Emily Q Gaucho
Wickens E Ostrosky
Johnson A Kusko
Darci G Poquette
Tony Y Maclead
Adams H Bolognia
Jones D Caldarera
IdCountryDate
1000Germany2026-08-16
1001France2026-07-27
1002Brazil2026-08-09
1003Australia2026-08-03
1004France2026-08-06
1005Australia2026-08-15
1006Russia2026-08-14
1007Japan2026-08-04
1008France2026-08-14
1009Australia2026-08-06
1010Italy2026-08-07
1011Argentina2026-08-15
1012Canada2026-08-16
1013India2026-08-04
1014Spain2026-07-31
1015Australia2026-07-30
1016Argentina2026-08-10
1017Canada2026-08-15
1018Spain2026-08-06
1019Spain2026-08-12
1020United Kingdom2026-08-14
1021Russia2026-07-28
1022Canada2026-07-31
1023United Kingdom2026-08-08
1024Canada2026-08-04
1025Germany2026-08-08
1026Brazil2026-07-28
1027Spain2026-08-20
1028France2026-08-17
1029Canada2026-07-25
1030Argentina2026-08-07
1031France2026-08-05
1032France2026-08-19
1033Japan2026-07-28
1034Australia2026-07-31
1035India2026-07-27
1036Germany2026-08-14
1037Germany2026-07-31
1038Italy2026-08-06
1039Spain2026-07-30
1040Spain2026-07-30
1041Germany2026-08-03
1042Italy2026-08-02
1043United Kingdom2026-07-25
1044Argentina2026-08-18
1045Australia2026-08-07
1046India2026-07-25
1047United Kingdom2026-08-13
1048Australia2026-08-13
1049Spain2026-08-06

On-Demand Data

NameIdCountryDate
Kaitlin R Schemmer1000Spain2026-08-13
Aika K Ostrosky1001Australia2026-08-15
Isabel Z Glick1002Brazil2026-08-03
Cody L Caldarera1003Russia2026-07-26
Tony V Malet1004Japan2026-07-31
David A Chui1005Russia2026-08-20
Ivar L Whobrey1006Russia2026-07-29
Aika L Bowley1007Brazil2026-08-10
Ashley N Waycott1008Argentina2026-08-10
Smith N Caudy1009Australia2026-07-26
Wickens T Darakjy1010United Kingdom2026-08-19
Faith C Royster1011Italy2026-08-07
Julie K Albares1012France2026-08-05
Isabel T Shinko1013Germany2026-08-12
Julie E Maclead1014Brazil2026-08-07
Mujtaba N Albares1015Russia2026-08-17
Clifford E Amigon1016France2026-07-26
Izzy C Darakjy1017United Kingdom2026-08-23
Mujtaba U Marrier1018Japan2026-08-19
Emily V Dilliard1019Germany2026-08-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith F SaylorsUnited KingdomStephen Shaw NEGOTIATION
Clifford O ChuiJapanXuxue Feng PROPOSAL
Salvatore A RoysterRussiaAmy Elsner QUALIFIED
Octavia H AmigonGermanyXuxue Feng RENEWAL
Claire U GauchoJapanAnna Fali PROPOSAL
James P BologniaJapanAmy Elsner RENEWAL
Mayumi T CampainItalyXuxue Feng PROPOSAL
Francesco G StensethUnited KingdomBernardo Dominic NEGOTIATION
Emily Q OldroydCanadaAmy Elsner PROPOSAL
James S StensethFranceOnyama Limba UNQUALIFIED
Maisha S PaprockiFranceXuxue Feng RENEWAL
Wickens R FigeroaJapanElwin Sharvill NEGOTIATION
Julie Y SlusarskiArgentinaAnna Fali QUALIFIED
Faith L WieserItalyOnyama Limba UNQUALIFIED
Octavia W PerinItalyStephen Shaw QUALIFIED
Tony X DarakjyAustraliaStephen Shaw NEGOTIATION
Juan H MorascaItalyBernardo Dominic UNQUALIFIED
Kaitlin D ChuiIndiaAnna Fali RENEWAL
Leon Z MaletAustraliaStephen Shaw QUALIFIED
Julie A ChuiIndiaAmy Elsner PROPOSAL
Francesco Y NestleAustraliaStephen Shaw QUALIFIED
Greenwood N SchemmerSpainIoni Bowcher NEGOTIATION
Leja X KuskoCanadaOnyama Limba RENEWAL
Faith T IturbideUnited KingdomAmy Elsner NEW
Izzy G FollerCanadaOnyama Limba QUALIFIED
Wickens L MarrierRussiaBernardo Dominic UNQUALIFIED
Maria P InouyeRussiaAsiya Javayant NEW
Leon N GarufiItalyElwin Sharvill PROPOSAL
Stacey H TollnerJapanXuxue Feng PROPOSAL
Salvatore E DarakjyArgentinaElwin Sharvill PROPOSAL
Leon D BriddickArgentinaAnna Fali UNQUALIFIED
Faith C OldroydUnited KingdomXuxue Feng RENEWAL
Kadeem X DoeIndiaStephen Shaw PROPOSAL
Adams W InouyeFranceXuxue Feng PROPOSAL
Rodrigues Q RulapaughSpainXuxue Feng UNQUALIFIED
Adams V InouyeIndiaAsiya Javayant PROPOSAL
Cody E BowleyJapanAsiya Javayant PROPOSAL
Julie E CaudyItalyXuxue Feng NEW
Greenwood J NickaCanadaIvan Magalhaes PROPOSAL
Darci G MaletBrazilAnna Fali NEW

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