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
Mujtaba Y WieserItalyAmy Elsner UNQUALIFIED
James J KuskoUnited KingdomIvan Magalhaes NEGOTIATION
Aika H OldroydBrazilXuxue Feng NEGOTIATION
Ricardo L PoquetteFranceXuxue Feng QUALIFIED
Adams P WieserUnited KingdomXuxue Feng QUALIFIED
Arvin K FollerGermanyElwin Sharvill PROPOSAL
Darci J BologniaUnited KingdomOnyama Limba RENEWAL
Greenwood F BowleyJapanAnna Fali QUALIFIED
Stacey T DilliardSpainAnna Fali NEGOTIATION
Adams S OldroydIndiaIoni Bowcher RENEWAL
Julie R GillianAustraliaIoni Bowcher NEGOTIATION
Costa X GauchoGermanyStephen Shaw NEGOTIATION
Ivar D AlbaresSpainElwin Sharvill PROPOSAL
Cody T MarrierBrazilBernardo Dominic UNQUALIFIED
Maria H FigeroaRussiaElwin Sharvill RENEWAL
Morrow E AlbaresJapanIvan Magalhaes RENEWAL
Silvio R RimItalyIvan Magalhaes RENEWAL
Darci Z RoysterJapanIoni Bowcher UNQUALIFIED
Arvin M IturbideFranceStephen Shaw NEGOTIATION
Aika C MorascaArgentinaBernardo Dominic RENEWAL
Arvin A SaylorsFranceStephen Shaw UNQUALIFIED
Ashley P OldroydSpainOnyama Limba UNQUALIFIED
James O NestleSpainXuxue Feng UNQUALIFIED
Jeanfrancois V KolmetzFranceXuxue Feng RENEWAL
Cody L MaletItalyElwin Sharvill UNQUALIFIED
Rodrigues Y BowleyRussiaAmy Elsner PROPOSAL
Mayumi V ShinkoBrazilAmy Elsner NEGOTIATION
Cody B BowleyCanadaElwin Sharvill NEGOTIATION
Ashley Y MarrierGermanyAsiya Javayant NEW
Johnson B DoeCanadaAsiya Javayant QUALIFIED
Smith O TollnerSpainOnyama Limba UNQUALIFIED
Jennifer L VocelkaArgentinaIoni Bowcher NEGOTIATION
Stacey I InouyeAustraliaAmy Elsner UNQUALIFIED
Julie S InouyeBrazilAsiya Javayant UNQUALIFIED
Kadeem Y FollerArgentinaStephen Shaw NEGOTIATION
Mujtaba E KolmetzFranceStephen Shaw NEW
Adams W NestleBrazilOnyama Limba NEW
Johnson F DilliardUnited KingdomAnna Fali RENEWAL
Salvatore A DoeBrazilStephen Shaw PROPOSAL
Wickens Y FerenczCanadaElwin Sharvill NEGOTIATION
Wickens Y DarakjySpainXuxue Feng NEW
Misaki T ShinkoSpainXuxue Feng NEW
Tony R FlosiAustraliaBernardo Dominic QUALIFIED
Smith K AmigonGermanyElwin Sharvill NEW
Julie Q FollerJapanElwin Sharvill PROPOSAL
Jefferson W AmigonFranceElwin Sharvill NEGOTIATION
Isabel D FollerCanadaAnna Fali NEW
Maria E MarrierGermanyXuxue Feng QUALIFIED
Leja H SchemmerCanadaAnna Fali UNQUALIFIED
Mujtaba P BologniaItalyIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens W SaylorsCanadaBernardo Dominic UNQUALIFIED
Izzy W BologniaFranceAsiya Javayant PROPOSAL
Kaitlin M BologniaJapanXuxue Feng RENEWAL
Jeanfrancois U RutaSpainAmy Elsner QUALIFIED
Murillo E BriddickGermanyIoni Bowcher NEGOTIATION
Cody E WhobreyCanadaAmy Elsner NEGOTIATION
Rodrigues G GlickUnited KingdomXuxue Feng UNQUALIFIED
Chavez E CaudyFranceOnyama Limba NEW
Sinclair X DoeFranceBernardo Dominic PROPOSAL
Misaki C NickaRussiaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco G RimArgentina2025-05-18Rangoni Of Florence PROPOSAL86Ioni Bowcher
1001Francesco E MaletUnited Kingdom2025-05-25Benton, John B Jr RENEWAL93Amy Elsner
1002David X CampainRussia2025-05-24Truhlar And Truhlar Attys NEW36Amy Elsner
1003Ricardo L KolmetzJapan2025-05-18Benton, John B Jr RENEWAL95Ioni Bowcher
1004Misaki H GauchoRussia2025-06-13Chanay, Jeffrey A Esq RENEWAL22Amy Elsner
1005Jennifer Q RulapaughRussia2025-05-26Truhlar And Truhlar Attys PROPOSAL34Xuxue Feng
1006Nicolas L KuskoCanada2025-05-30Truhlar And Truhlar Attys NEGOTIATION15Bernardo Dominic
1007Isabel U SaylorsCanada2025-05-27Commercial Press NEW95Asiya Javayant
1008Munro M SlusarskiCanada2025-05-24Truhlar And Truhlar Attys NEGOTIATION26Asiya Javayant
1009Maria E StockhamBrazil2025-06-04King, Christopher A Esq RENEWAL60Elwin Sharvill
1010James L NickaBrazil2025-05-18Rousseaux, Michael Esq RENEWAL10Amy Elsner
1011Greenwood F SaylorsJapan2025-06-07King, Christopher A Esq PROPOSAL76Bernardo Dominic
1012Julie Z AmigonJapan2025-06-08Benton, John B Jr RENEWAL15Stephen Shaw
1013Costa Z MorascaFrance2025-05-20Morlong Associates QUALIFIED32Elwin Sharvill
1014Smith G OstroskyGermany2025-06-10Commercial Press RENEWAL60Stephen Shaw
1015Silvio V ChuiSpain2025-06-06Rangoni Of Florence PROPOSAL58Bernardo Dominic
1016Leon R WhobreyFrance2025-05-26King, Christopher A Esq UNQUALIFIED26Amy Elsner
1017Misaki E RimAustralia2025-05-19Rangoni Of Florence UNQUALIFIED19Stephen Shaw
1018Nicolas Y VenereJapan2025-06-09Rousseaux, Michael Esq UNQUALIFIED52Ioni Bowcher
1019Izzy U TollnerBrazil2025-06-03King, Christopher A Esq NEGOTIATION99Stephen Shaw
1020Kadeem V FlosiGermany2025-05-24Feiner Bros NEGOTIATION60Ivan Magalhaes
1021Greenwood T GillianUnited Kingdom2025-06-12Printing Dimensions NEGOTIATION70Xuxue Feng
1022Mujtaba O IturbideSpain2025-06-09Chanay, Jeffrey A Esq NEW19Ivan Magalhaes
1023Tony H SlusarskiArgentina2025-05-20Commercial Press QUALIFIED29Ioni Bowcher
1024Smith M MorascaItaly2025-06-08King, Christopher A Esq NEW59Amy Elsner
1025Faith Y TollnerCanada2025-06-02Dorl, James J Esq UNQUALIFIED60Elwin Sharvill
1026Arvin Y FerenczBrazil2025-06-10Truhlar And Truhlar Attys UNQUALIFIED96Stephen Shaw
1027Misaki B ShinkoSpain2025-06-08Chanay, Jeffrey A Esq NEGOTIATION70Ivan Magalhaes
1028Mujtaba D ShinkoIndia2025-06-01Chanay, Jeffrey A Esq NEW56Onyama Limba
1029Greenwood O RimCanada2025-06-16Chemel, James L Cpa QUALIFIED36Onyama Limba
1030James S CaldareraAustralia2025-05-24Chapman, Ross E Esq UNQUALIFIED53Stephen Shaw
1031Munro X RulapaughFrance2025-05-28Buckley Miller Wright NEGOTIATION59Xuxue Feng
1032Jones M NestleUnited Kingdom2025-05-24Buckley Miller Wright NEW58Elwin Sharvill
1033Aditya E OldroydJapan2025-05-20Benton, John B Jr NEGOTIATION60Anna Fali
1034Ivar B StensethAustralia2025-06-15Chapman, Ross E Esq NEGOTIATION25Xuxue Feng
1035Ashley K VocelkaArgentina2025-06-13Chapman, Ross E Esq RENEWAL71Elwin Sharvill
1036Aika T StockhamCanada2025-06-14Feiner Bros PROPOSAL81Ioni Bowcher
1037Ivar J AlbaresBrazil2025-06-10Truhlar And Truhlar Attys NEW13Amy Elsner
1038Antonio U AmigonAustralia2025-06-01Rousseaux, Michael Esq UNQUALIFIED31Elwin Sharvill
1039Johnson X AlbaresBrazil2025-05-18Truhlar And Truhlar Attys QUALIFIED90Ivan Magalhaes
1040Julie L AlbaresFrance2025-05-24Commercial Press NEW43Stephen Shaw
1041Izzy L NestleAustralia2025-05-19Rangoni Of Florence QUALIFIED7Asiya Javayant
1042Smith N NestleIndia2025-05-25Rangoni Of Florence NEGOTIATION23Bernardo Dominic
1043Jones O GauchoArgentina2025-05-18Morlong Associates NEGOTIATION49Amy Elsner
1044Nicolas Q RimUnited Kingdom2025-05-26Truhlar And Truhlar Attys RENEWAL20Elwin Sharvill
1045Leon H RutaBrazil2025-06-12Chemel, James L Cpa UNQUALIFIED73Anna Fali
1046Rodrigues O FigeroaFrance2025-05-22Truhlar And Truhlar Attys QUALIFIED27Onyama Limba
1047Juan T MaletBrazil2025-06-10Printing Dimensions NEGOTIATION53Xuxue Feng
1048Mayumi Z AlbaresUnited Kingdom2025-06-08Chanay, Jeffrey A Esq RENEWAL5Asiya Javayant
1049Aruna U PerinArgentina2025-05-19Truhlar And Truhlar Attys NEW90Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ricardo B WieserJapanOnyama Limba NEW
Aika T DoeArgentinaXuxue Feng RENEWAL
Tony F GlickItalyOnyama Limba UNQUALIFIED
Murillo B FollerRussiaXuxue Feng QUALIFIED
Nicolas V CampainArgentinaBernardo Dominic UNQUALIFIED
Cody M KuskoSpainElwin Sharvill PROPOSAL
David T MorascaItalyStephen Shaw PROPOSAL
Smith C OldroydUnited KingdomElwin Sharvill UNQUALIFIED
Deepesh T RimSpainOnyama Limba NEW
Faith Q GauchoGermanyOnyama Limba QUALIFIED
Aruna F GauchoGermanyAnna Fali PROPOSAL
Murillo C NickaBrazilIoni Bowcher PROPOSAL
Silvio L RutaGermanyAnna Fali PROPOSAL
Cody G AlbaresGermanyOnyama Limba PROPOSAL
Costa W BowleyBrazilBernardo Dominic NEW
Faith D MarrierIndiaElwin Sharvill RENEWAL
Sinclair N BologniaRussiaAsiya Javayant NEW
Aditya E IturbideIndiaElwin Sharvill NEW
Alejandro L KolmetzSpainIvan Magalhaes QUALIFIED
Wickens Z BologniaSpainAmy Elsner PROPOSAL
Faith Q AmigonArgentinaStephen Shaw PROPOSAL
Leja M RimArgentinaBernardo Dominic RENEWAL
Morrow Q NickaUnited KingdomBernardo Dominic QUALIFIED
Jennifer D AlbaresRussiaAmy Elsner NEGOTIATION
Salvatore W MorascaGermanyAnna Fali PROPOSAL
Kadeem D RoysterUnited KingdomAmy Elsner NEGOTIATION
Aruna H RutaUnited KingdomIvan Magalhaes NEW
Alejandro N DarakjyRussiaBernardo Dominic PROPOSAL
Kaitlin O RoysterRussiaStephen Shaw PROPOSAL
Jennifer C FigeroaJapanStephen Shaw UNQUALIFIED
Leja Z ChuiItalyIoni Bowcher PROPOSAL
Mujtaba L SaylorsJapanAsiya Javayant RENEWAL
Maria B CaudyGermanyAmy Elsner NEGOTIATION
Nicolas W SergiBrazilBernardo Dominic PROPOSAL
Clifford G FerenczGermanyIoni Bowcher RENEWAL
Leon L PerinUnited KingdomXuxue Feng QUALIFIED
Aditya W GauchoRussiaIvan Magalhaes UNQUALIFIED
Morrow Z RoysterRussiaAsiya Javayant UNQUALIFIED
Octavia O CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Emily K RutaSpainAmy Elsner RENEWAL
Darci B GarufiSpainBernardo Dominic RENEWAL
Stacey Z SchemmerBrazilAsiya Javayant UNQUALIFIED
Aruna M BologniaFranceBernardo Dominic NEGOTIATION
Octavia M SaylorsGermanyIvan Magalhaes QUALIFIED
Ivar J MaletIndiaElwin Sharvill QUALIFIED
Ricardo X SlusarskiArgentinaAmy Elsner NEW
Claire M FlosiAustraliaXuxue Feng QUALIFIED
Alejandro V PoquetteGermanyAnna Fali NEGOTIATION
Jones T FlosiUnited KingdomIoni Bowcher NEW
Mujtaba P SlusarskiRussiaXuxue Feng NEW
Frozen Columns
Name
Maria H Malet
Wickens K Figeroa
Maria A Campain
Chavez H Vocelka
Rodrigues V Caldarera
Adams V Bolognia
Maisha X Waycott
Salvatore W Tollner
Ricardo D Sergi
Morrow E Sergi
Ashley V Malet
Sinclair W Darakjy
Munro W Nestle
Greenwood H Paprocki
Greenwood M Marrier
Sinclair O Nicka
Darci U Wieser
Stacey I Royster
Wickens O Bolognia
Ivar U Stenseth
Francesco N Darakjy
Jennifer Y Albares
Costa R Inouye
Tony I Perin
Julie X Bolognia
Tony T Dilliard
Claire S Tollner
Salvatore O Oldroyd
Morrow K Rulapaugh
Kadeem A Perin
Maisha S Darakjy
Maria K Doe
Tony D Stockham
Johnson Z Venere
Juan Y Rulapaugh
Claire Y Kolmetz
Arvin O Foller
Costa V Inouye
Murillo B Morasca
Sinclair F Stockham
Cody I Doe
Wickens C Gillian
Juan S Slusarski
Chavez W Ferencz
Jennifer F Oldroyd
Jennifer O Caudy
Costa X Rim
Octavia E Maclead
Arvin C Tollner
Jennifer F Ferencz
IdCountryDate
1000United Kingdom2025-05-21
1001France2025-06-03
1002Russia2025-06-07
1003Argentina2025-05-18
1004Canada2025-06-13
1005Japan2025-05-23
1006Germany2025-06-04
1007Argentina2025-06-06
1008Russia2025-05-24
1009Russia2025-05-23
1010Russia2025-06-02
1011Spain2025-05-19
1012Canada2025-06-11
1013Italy2025-06-13
1014Australia2025-06-08
1015Spain2025-06-08
1016Argentina2025-06-01
1017France2025-05-19
1018Japan2025-06-15
1019Spain2025-05-27
1020Germany2025-06-14
1021Spain2025-06-04
1022France2025-06-06
1023Italy2025-06-06
1024Canada2025-06-03
1025United Kingdom2025-05-29
1026France2025-06-02
1027Russia2025-05-25
1028Japan2025-06-03
1029Spain2025-05-19
1030Germany2025-06-09
1031Argentina2025-06-09
1032Germany2025-05-27
1033Argentina2025-06-10
1034Brazil2025-06-09
1035Australia2025-05-18
1036Germany2025-06-04
1037India2025-06-16
1038Australia2025-05-18
1039Brazil2025-05-22
1040Russia2025-06-04
1041Argentina2025-06-16
1042Italy2025-06-13
1043Spain2025-05-23
1044India2025-05-18
1045Brazil2025-06-05
1046Canada2025-06-16
1047Japan2025-05-21
1048Italy2025-05-23
1049Canada2025-05-21

On-Demand Data

NameIdCountryDate
Greenwood R Shinko1000Argentina2025-06-01
Arvin I Albares1001Canada2025-06-04
Munro N Vocelka1002France2025-06-09
Kaitlin P Butt1003United Kingdom2025-06-04
Misaki L Darakjy1004Japan2025-05-29
Arvin P Nicka1005France2025-05-30
Sinclair Q Albares1006Germany2025-05-31
Alejandro S Albares1007Argentina2025-05-20
Mayumi Q Albares1008Japan2025-06-10
Ricardo I Ostrosky1009Spain2025-06-10
Ivar Q Waycott1010Australia2025-06-07
Mujtaba I Caldarera1011Italy2025-05-24
Costa U Malet1012United Kingdom2025-05-21
Cody S Nicka1013Canada2025-05-21
Octavia B Waycott1014Russia2025-05-26
Jeanfrancois C Rulapaugh1015Italy2025-06-12
Maisha U Bowley1016Argentina2025-05-21
Maria A Bowley1017Australia2025-06-14
Deepesh L Wieser1018Russia2025-06-02
Isabel P Saylors1019Argentina2025-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki I KuskoGermanyAmy Elsner PROPOSAL
Deepesh E NickaCanadaStephen Shaw UNQUALIFIED
Johnson A MaletIndiaAnna Fali NEGOTIATION
Morrow F GillianSpainOnyama Limba NEW
Aruna V GarufiAustraliaElwin Sharvill UNQUALIFIED
Izzy C GarufiIndiaAnna Fali UNQUALIFIED
Murillo U VenereCanadaIvan Magalhaes NEW
Jefferson I StensethIndiaIoni Bowcher NEGOTIATION
Wickens N RulapaughCanadaBernardo Dominic UNQUALIFIED
Aruna R TollnerRussiaAmy Elsner QUALIFIED
Izzy J PerinCanadaElwin Sharvill NEGOTIATION
Claire E FigeroaItalyIvan Magalhaes NEW
Adams A RutaGermanyAnna Fali NEGOTIATION
Julie I NickaGermanyAmy Elsner PROPOSAL
Emily F PoquetteRussiaIoni Bowcher NEW
Chavez Y NestleIndiaAmy Elsner NEW
Mayumi T FlosiArgentinaIoni Bowcher UNQUALIFIED
Leon N RoysterGermanyAnna Fali NEW
Morrow Q VocelkaAustraliaAsiya Javayant QUALIFIED
Juan S RoysterUnited KingdomAmy Elsner RENEWAL
Jeanfrancois Z WaycottJapanIoni Bowcher PROPOSAL
Isabel F MaletFranceIoni Bowcher QUALIFIED
Julie T OldroydSpainOnyama Limba NEW
Maisha Z FigeroaItalyElwin Sharvill NEGOTIATION
Antonio Z NestleAustraliaBernardo Dominic RENEWAL
Misaki M RimSpainBernardo Dominic QUALIFIED
Rodrigues R KolmetzRussiaXuxue Feng NEW
Sinclair E RulapaughItalyBernardo Dominic NEW
Adams I CampainIndiaOnyama Limba RENEWAL
Salvatore S CaldareraCanadaXuxue Feng RENEWAL
Aika B FlosiBrazilStephen Shaw QUALIFIED
Emily O GauchoJapanIoni Bowcher NEGOTIATION
Alejandro E KolmetzSpainXuxue Feng PROPOSAL
Isabel E GillianFranceElwin Sharvill QUALIFIED
Francesco O DilliardSpainAsiya Javayant RENEWAL
Mayumi P GauchoItalyAmy Elsner PROPOSAL
Murillo E MorascaIndiaIvan Magalhaes QUALIFIED
Adams U WieserIndiaStephen Shaw NEGOTIATION
Julie D OldroydAustraliaStephen Shaw RENEWAL
Francesco Q StockhamSpainIoni Bowcher 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>