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
Jefferson N VenereUnited KingdomBernardo Dominic PROPOSAL
Chavez Z FerenczJapanElwin Sharvill NEGOTIATION
Darci P CampainArgentinaXuxue Feng PROPOSAL
Smith F TollnerUnited KingdomIvan Magalhaes QUALIFIED
Alejandro V StockhamJapanAmy Elsner PROPOSAL
Darci O FerenczCanadaAsiya Javayant NEGOTIATION
Ashley K PerinSpainStephen Shaw PROPOSAL
Wickens Y ButtFranceOnyama Limba NEGOTIATION
James X MaletSpainElwin Sharvill PROPOSAL
Faith A DoeIndiaXuxue Feng NEGOTIATION
Faith B MorascaUnited KingdomStephen Shaw NEW
Tony A MacleadJapanOnyama Limba RENEWAL
Jones E ShinkoFranceIoni Bowcher RENEWAL
Emily R CaudyArgentinaStephen Shaw NEGOTIATION
Juan O AmigonUnited KingdomAnna Fali PROPOSAL
Jefferson E NickaAustraliaIoni Bowcher NEGOTIATION
Kaitlin Q MaletGermanyAnna Fali UNQUALIFIED
Arvin A RoysterBrazilBernardo Dominic UNQUALIFIED
Ivar V MorascaSpainStephen Shaw RENEWAL
Julie M BologniaIndiaAsiya Javayant NEGOTIATION
Jeanfrancois L InouyeArgentinaStephen Shaw PROPOSAL
Leon A VocelkaUnited KingdomStephen Shaw RENEWAL
Francesco B VocelkaItalyBernardo Dominic RENEWAL
Wickens E RulapaughCanadaElwin Sharvill NEW
Leja W MaletIndiaElwin Sharvill PROPOSAL
Maria W RulapaughUnited KingdomOnyama Limba RENEWAL
Maisha K DarakjyRussiaIoni Bowcher NEGOTIATION
Julie L SchemmerCanadaXuxue Feng NEGOTIATION
Deepesh L SaylorsArgentinaAnna Fali RENEWAL
Aika B BowleyGermanyStephen Shaw UNQUALIFIED
Juan U ChuiItalyAmy Elsner RENEWAL
Cody U GillianIndiaAmy Elsner UNQUALIFIED
Maria J WhobreyFranceOnyama Limba QUALIFIED
Munro T RimIndiaBernardo Dominic UNQUALIFIED
Antonio O KolmetzSpainBernardo Dominic QUALIFIED
Silvio Z StensethGermanyAmy Elsner PROPOSAL
Jefferson H WhobreyArgentinaXuxue Feng RENEWAL
Francesco F VenereItalyOnyama Limba RENEWAL
Salvatore Q ChuiGermanyStephen Shaw RENEWAL
Faith X SlusarskiSpainAsiya Javayant QUALIFIED
Rodrigues M NickaSpainAsiya Javayant UNQUALIFIED
Antonio R VocelkaSpainAsiya Javayant UNQUALIFIED
Aditya N CampainAustraliaAmy Elsner UNQUALIFIED
Stacey R KolmetzFranceIvan Magalhaes UNQUALIFIED
Aditya C StensethArgentinaBernardo Dominic RENEWAL
Kaitlin D GillianBrazilBernardo Dominic PROPOSAL
Aruna U RimCanadaAnna Fali RENEWAL
Faith T DilliardCanadaAmy Elsner NEGOTIATION
Ricardo M RutaCanadaAmy Elsner UNQUALIFIED
Maria U SergiArgentinaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Sinclair M CaldareraAustraliaAmy Elsner RENEWAL
Julie I MacleadFranceIvan Magalhaes UNQUALIFIED
Faith U ButtUnited KingdomOnyama Limba PROPOSAL
Mujtaba F FerenczJapanElwin Sharvill RENEWAL
Darci O SlusarskiFranceIoni Bowcher NEGOTIATION
Emily N MaletCanadaStephen Shaw NEW
Antonio E NestleRussiaStephen Shaw RENEWAL
Claire N IturbideGermanyOnyama Limba RENEWAL
Ricardo J KuskoCanadaIoni Bowcher UNQUALIFIED
Johnson W DoeArgentinaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith K BologniaRussia2026-08-17Feltz Printing Service RENEWAL39Asiya Javayant
1001Maria G MacleadAustralia2026-08-10Commercial Press UNQUALIFIED47Onyama Limba
1002Faith X VocelkaFrance2026-08-11Benton, John B Jr NEW6Xuxue Feng
1003Salvatore L PaprockiRussia2026-08-03Feiner Bros PROPOSAL79Anna Fali
1004Juan T KolmetzIndia2026-08-16Commercial Press PROPOSAL95Anna Fali
1005Rodrigues U PaprockiRussia2026-07-25Feiner Bros QUALIFIED53Amy Elsner
1006Isabel S FigeroaRussia2026-08-12Chapman, Ross E Esq NEGOTIATION16Amy Elsner
1007Octavia U FollerCanada2026-07-20Feltz Printing Service NEGOTIATION52Bernardo Dominic
1008Johnson R SergiJapan2026-08-09King, Christopher A Esq NEW82Elwin Sharvill
1009Stacey O GlickCanada2026-08-13Chemel, James L Cpa RENEWAL98Bernardo Dominic
1010Juan D MarrierArgentina2026-08-01Morlong Associates UNQUALIFIED49Elwin Sharvill
1011Morrow F BologniaGermany2026-08-09King, Christopher A Esq QUALIFIED90Stephen Shaw
1012Jones P GarufiAustralia2026-08-12Rangoni Of Florence RENEWAL66Onyama Limba
1013Aditya I NestleSpain2026-07-25Feltz Printing Service PROPOSAL83Ivan Magalhaes
1014Ashley R TollnerIndia2026-07-22Benton, John B Jr QUALIFIED33Asiya Javayant
1015Ricardo P MaletSpain2026-08-02Chanay, Jeffrey A Esq QUALIFIED47Elwin Sharvill
1016Deepesh E CampainAustralia2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED13Ioni Bowcher
1017Jones P MarrierArgentina2026-08-04King, Christopher A Esq RENEWAL63Amy Elsner
1018Jones I RimAustralia2026-08-11Feiner Bros NEGOTIATION20Asiya Javayant
1019Faith F ShinkoFrance2026-08-04Feltz Printing Service PROPOSAL97Ivan Magalhaes
1020Antonio Y StockhamRussia2026-08-16Printing Dimensions QUALIFIED64Onyama Limba
1021Nicolas W DarakjyJapan2026-07-31Chapman, Ross E Esq QUALIFIED55Ioni Bowcher
1022Kaitlin A VocelkaItaly2026-07-20Feiner Bros PROPOSAL36Bernardo Dominic
1023Kadeem K ButtCanada2026-07-21Benton, John B Jr UNQUALIFIED58Onyama Limba
1024Smith Y VocelkaIndia2026-07-23Feltz Printing Service NEW72Anna Fali
1025Antonio X RutaItaly2026-08-10Feiner Bros NEW14Anna Fali
1026Maria M CaudyJapan2026-07-28Chapman, Ross E Esq PROPOSAL90Ioni Bowcher
1027Costa C OldroydAustralia2026-07-27Truhlar And Truhlar Attys UNQUALIFIED30Ivan Magalhaes
1028Stacey Q RulapaughArgentina2026-08-02Chapman, Ross E Esq QUALIFIED59Ivan Magalhaes
1029Kadeem S GarufiUnited Kingdom2026-08-05Feiner Bros RENEWAL9Ivan Magalhaes
1030Mujtaba B FollerGermany2026-08-16Benton, John B Jr RENEWAL73Xuxue Feng
1031Rodrigues A NestleGermany2026-07-21Rousseaux, Michael Esq UNQUALIFIED18Amy Elsner
1032Jennifer U DoeGermany2026-07-19King, Christopher A Esq QUALIFIED55Asiya Javayant
1033Maisha X InouyeFrance2026-08-13Dorl, James J Esq NEGOTIATION79Onyama Limba
1034Deepesh N AlbaresCanada2026-07-29Chanay, Jeffrey A Esq NEW84Ivan Magalhaes
1035Ashley V RoysterCanada2026-08-17Feltz Printing Service NEW8Elwin Sharvill
1036Wickens Z CaldareraFrance2026-07-22Buckley Miller Wright RENEWAL91Asiya Javayant
1037Silvio N AmigonJapan2026-08-02Rousseaux, Michael Esq QUALIFIED92Anna Fali
1038Izzy V PaprockiAustralia2026-08-16Buckley Miller Wright QUALIFIED60Asiya Javayant
1039Kadeem G DilliardItaly2026-07-21Chanay, Jeffrey A Esq UNQUALIFIED83Stephen Shaw
1040Chavez K WieserUnited Kingdom2026-07-25King, Christopher A Esq RENEWAL65Xuxue Feng
1041Ivar C GarufiUnited Kingdom2026-08-08Chapman, Ross E Esq NEW2Amy Elsner
1042Octavia L SaylorsGermany2026-07-23Benton, John B Jr NEW82Onyama Limba
1043Maria A FerenczIndia2026-07-28Chanay, Jeffrey A Esq UNQUALIFIED75Onyama Limba
1044Chavez Q MaletArgentina2026-07-24Morlong Associates UNQUALIFIED7Amy Elsner
1045Mayumi L MorascaAustralia2026-08-11Chanay, Jeffrey A Esq QUALIFIED33Bernardo Dominic
1046Julie M KolmetzGermany2026-08-14Rangoni Of Florence RENEWAL20Amy Elsner
1047Greenwood F AmigonJapan2026-07-20Truhlar And Truhlar Attys NEW3Ivan Magalhaes
1048Aruna V VenereFrance2026-07-20Buckley Miller Wright PROPOSAL1Anna Fali
1049Kaitlin R PaprockiUnited Kingdom2026-07-28Chanay, Jeffrey A Esq QUALIFIED86Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Johnson W PoquetteIndiaElwin Sharvill RENEWAL
Cody G SlusarskiBrazilIoni Bowcher RENEWAL
Smith A DilliardGermanyAmy Elsner PROPOSAL
Antonio S TollnerBrazilBernardo Dominic RENEWAL
Tony O DilliardBrazilStephen Shaw PROPOSAL
Mujtaba M FollerAustraliaIvan Magalhaes PROPOSAL
James O VocelkaBrazilAmy Elsner NEGOTIATION
Munro X PerinJapanAsiya Javayant QUALIFIED
Cody Y MarrierJapanIoni Bowcher PROPOSAL
Emily O CaldareraAustraliaXuxue Feng QUALIFIED
Antonio U MacleadUnited KingdomXuxue Feng RENEWAL
Ashley F TollnerUnited KingdomAmy Elsner PROPOSAL
Jefferson G MaletSpainAmy Elsner PROPOSAL
Ivar E ShinkoJapanIvan Magalhaes NEGOTIATION
Aika V DilliardUnited KingdomAsiya Javayant PROPOSAL
Octavia R WhobreyCanadaIvan Magalhaes RENEWAL
Emily K BologniaGermanyXuxue Feng RENEWAL
Darci G PaprockiFranceAnna Fali UNQUALIFIED
Maisha T SchemmerJapanAmy Elsner QUALIFIED
Silvio S BologniaFranceIvan Magalhaes QUALIFIED
Greenwood W SaylorsRussiaStephen Shaw NEGOTIATION
Darci P WieserCanadaIoni Bowcher PROPOSAL
Smith L MaletAustraliaBernardo Dominic RENEWAL
Ivar Y MaletBrazilAmy Elsner UNQUALIFIED
Salvatore Y BriddickGermanyIvan Magalhaes PROPOSAL
Juan Q FollerArgentinaAmy Elsner PROPOSAL
Faith P IturbideRussiaXuxue Feng QUALIFIED
Isabel H FollerFranceXuxue Feng UNQUALIFIED
Greenwood F StockhamSpainOnyama Limba NEW
Jeanfrancois G KolmetzGermanyAmy Elsner PROPOSAL
Silvio M FollerCanadaIvan Magalhaes NEGOTIATION
Jennifer L TollnerCanadaXuxue Feng UNQUALIFIED
Faith D ButtBrazilElwin Sharvill RENEWAL
Adams T PaprockiCanadaIoni Bowcher UNQUALIFIED
Misaki E InouyeBrazilAnna Fali PROPOSAL
Munro I CaldareraJapanAsiya Javayant RENEWAL
Leon D GlickAustraliaIoni Bowcher QUALIFIED
Aruna K ButtCanadaOnyama Limba PROPOSAL
Munro W SaylorsIndiaOnyama Limba NEGOTIATION
Wickens R IturbideIndiaStephen Shaw RENEWAL
James Y MaletRussiaIoni Bowcher NEGOTIATION
Sinclair O DilliardItalyIvan Magalhaes QUALIFIED
Aika B PaprockiRussiaBernardo Dominic NEGOTIATION
Darci Q BriddickArgentinaBernardo Dominic PROPOSAL
Mayumi O SchemmerCanadaAnna Fali NEGOTIATION
Faith S BriddickRussiaOnyama Limba PROPOSAL
Costa N FigeroaCanadaOnyama Limba PROPOSAL
Juan K RoysterRussiaElwin Sharvill UNQUALIFIED
Jennifer V TollnerUnited KingdomAsiya Javayant PROPOSAL
Juan A VocelkaRussiaStephen Shaw NEW
Frozen Columns
Name
Jeanfrancois Z Bolognia
Sinclair T Nestle
Wickens Q Shinko
Kaitlin J Rulapaugh
Smith C Rulapaugh
Maisha A Caldarera
Misaki B Flosi
Tony H Venere
Cody F Saylors
Antonio X Schemmer
Jones L Malet
Ashley Q Stockham
Antonio S Nestle
Sinclair I Doe
Morrow D Rim
Ashley V Campain
Francesco Y Darakjy
Rodrigues Y Sergi
Francesco S Schemmer
Kaitlin H Nestle
Munro B Marrier
Ashley L Stockham
Smith W Schemmer
Deepesh Z Ferencz
Claire J Rulapaugh
Aditya V Kusko
Jennifer A Flosi
Antonio M Darakjy
Julie G Stockham
Jeanfrancois X Garufi
Kaitlin X Marrier
Deepesh V Oldroyd
Juan G Darakjy
Jones I Waycott
Morrow J Waycott
Mayumi I Caldarera
Clifford X Wieser
Darci K Doe
Aika U Malet
Adams H Bolognia
Mayumi T Bowley
Murillo E Marrier
Silvio B Campain
Julie D Vocelka
Wickens W Flosi
Silvio U Marrier
Chavez W Dilliard
Leon C Albares
Isabel G Darakjy
Deepesh J Venere
IdCountryDate
1000Brazil2026-07-28
1001India2026-07-19
1002Spain2026-08-05
1003United Kingdom2026-08-06
1004Germany2026-08-01
1005Canada2026-07-26
1006Russia2026-07-20
1007France2026-08-11
1008France2026-08-14
1009Italy2026-08-09
1010France2026-08-01
1011Australia2026-08-11
1012Argentina2026-08-02
1013Spain2026-08-12
1014Canada2026-08-02
1015Italy2026-08-13
1016Brazil2026-08-08
1017India2026-08-06
1018Spain2026-07-27
1019Japan2026-07-30
1020France2026-08-07
1021France2026-07-27
1022Spain2026-08-14
1023Brazil2026-08-09
1024Spain2026-08-17
1025Japan2026-08-15
1026Spain2026-07-25
1027Italy2026-08-12
1028Russia2026-07-24
1029India2026-07-26
1030Spain2026-07-29
1031Spain2026-08-06
1032Brazil2026-08-08
1033India2026-08-17
1034India2026-08-13
1035Brazil2026-08-14
1036India2026-08-04
1037Brazil2026-08-01
1038Brazil2026-08-12
1039France2026-08-15
1040Japan2026-08-08
1041United Kingdom2026-08-01
1042Germany2026-08-05
1043Italy2026-07-29
1044Italy2026-08-10
1045Russia2026-08-11
1046Italy2026-08-10
1047United Kingdom2026-08-17
1048Brazil2026-07-31
1049France2026-07-28

On-Demand Data

NameIdCountryDate
Ashley P Paprocki1000Germany2026-08-16
Julie G Rulapaugh1001Argentina2026-07-27
Aditya B Saylors1002France2026-08-01
Kadeem Q Saylors1003Argentina2026-08-03
Kaitlin E Briddick1004Japan2026-08-09
Kaitlin T Morasca1005Germany2026-07-23
Emily D Bowley1006United Kingdom2026-08-14
Mayumi R Stockham1007Brazil2026-07-28
Deepesh Y Butt1008Canada2026-08-01
Octavia G Nestle1009Canada2026-08-15
David H Malet1010Australia2026-07-24
Morrow H Ostrosky1011Japan2026-08-07
Emily A Chui1012Russia2026-08-05
Faith S Ostrosky1013Japan2026-08-10
Kadeem R Nicka1014Italy2026-07-22
Ashley M Albares1015France2026-08-15
Misaki I Kusko1016France2026-08-05
Sinclair C Iturbide1017France2026-08-02
Arvin A Schemmer1018India2026-07-20
Adams T Stockham1019United Kingdom2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio B MarrierArgentinaAsiya Javayant NEGOTIATION
Smith K ShinkoItalyOnyama Limba UNQUALIFIED
Aika Z StensethUnited KingdomStephen Shaw RENEWAL
Aruna M MacleadSpainStephen Shaw NEW
Misaki A RulapaughBrazilIvan Magalhaes PROPOSAL
Salvatore P MorascaJapanIvan Magalhaes UNQUALIFIED
Misaki C SlusarskiFranceStephen Shaw NEW
Jones U SergiIndiaBernardo Dominic QUALIFIED
Emily S MacleadAustraliaIoni Bowcher NEGOTIATION
Isabel F MarrierCanadaIoni Bowcher PROPOSAL
Deepesh B BriddickJapanXuxue Feng RENEWAL
Ricardo I TollnerFranceIoni Bowcher UNQUALIFIED
James V SlusarskiAustraliaIoni Bowcher PROPOSAL
Arvin O DoeIndiaIoni Bowcher UNQUALIFIED
Deepesh Z FlosiFranceIoni Bowcher QUALIFIED
Nicolas H WieserCanadaIvan Magalhaes UNQUALIFIED
Rodrigues M GauchoAustraliaAsiya Javayant PROPOSAL
David L ButtBrazilIvan Magalhaes RENEWAL
Cody S WhobreySpainIvan Magalhaes PROPOSAL
Cody C FerenczItalyElwin Sharvill RENEWAL
Antonio W IturbideAustraliaAmy Elsner NEGOTIATION
Clifford W GillianIndiaOnyama Limba NEGOTIATION
Ivar R BriddickJapanIoni Bowcher RENEWAL
Leja N SchemmerIndiaBernardo Dominic QUALIFIED
Costa N InouyeRussiaAnna Fali RENEWAL
Smith F FigeroaFranceBernardo Dominic UNQUALIFIED
Claire L ChuiSpainXuxue Feng RENEWAL
Jeanfrancois D ButtItalyXuxue Feng NEGOTIATION
Julie L WhobreyJapanStephen Shaw NEGOTIATION
Silvio W BowleyAustraliaStephen Shaw RENEWAL
Leon Z ChuiRussiaOnyama Limba UNQUALIFIED
Kaitlin A StockhamRussiaIoni Bowcher NEW
Ricardo E SlusarskiBrazilIvan Magalhaes NEGOTIATION
Maria F WhobreyGermanyAsiya Javayant RENEWAL
Tony J VenereGermanyElwin Sharvill UNQUALIFIED
Munro P GillianBrazilBernardo Dominic PROPOSAL
Costa I PerinFranceAnna Fali NEW
Aika A VenereUnited KingdomAnna Fali PROPOSAL
James V SaylorsIndiaAmy Elsner QUALIFIED
Jeanfrancois B BriddickIndiaIvan Magalhaes 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>