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
Jones H GauchoRussiaIvan Magalhaes UNQUALIFIED
Chavez D CampainFranceAsiya Javayant QUALIFIED
Maria Z StockhamRussiaElwin Sharvill RENEWAL
Maria P VenereUnited KingdomBernardo Dominic RENEWAL
Murillo V FigeroaIndiaOnyama Limba NEW
Faith J NickaAustraliaXuxue Feng NEGOTIATION
Alejandro J RulapaughGermanyBernardo Dominic PROPOSAL
Murillo P IturbideArgentinaElwin Sharvill RENEWAL
Jones H PaprockiRussiaOnyama Limba PROPOSAL
Murillo C VenereFranceIoni Bowcher QUALIFIED
Mujtaba Y PoquetteRussiaStephen Shaw NEW
Kaitlin P FerenczGermanyIvan Magalhaes PROPOSAL
Chavez I DoeFranceAsiya Javayant RENEWAL
Alejandro S RulapaughCanadaXuxue Feng NEW
Francesco C CampainAustraliaElwin Sharvill NEGOTIATION
Kadeem C NestleItalyElwin Sharvill NEGOTIATION
Kadeem Q StockhamBrazilBernardo Dominic RENEWAL
Maisha O ButtGermanyIoni Bowcher QUALIFIED
Mayumi Z AmigonSpainIoni Bowcher NEW
Maria T OstroskyFranceStephen Shaw NEGOTIATION
Izzy Z ButtArgentinaAsiya Javayant QUALIFIED
Ricardo H VocelkaSpainElwin Sharvill NEW
Rodrigues Z FollerRussiaOnyama Limba UNQUALIFIED
Ivar Q MaletSpainIoni Bowcher QUALIFIED
Mujtaba F RoysterBrazilIvan Magalhaes UNQUALIFIED
Leon E DilliardJapanAsiya Javayant PROPOSAL
Jeanfrancois V MorascaFranceIoni Bowcher NEW
Julie T RoysterArgentinaAsiya Javayant UNQUALIFIED
Kadeem M FlosiAustraliaBernardo Dominic RENEWAL
Francesco A InouyeArgentinaIvan Magalhaes UNQUALIFIED
Morrow A CampainRussiaIvan Magalhaes QUALIFIED
Salvatore K RulapaughUnited KingdomOnyama Limba QUALIFIED
Deepesh U MacleadAustraliaElwin Sharvill QUALIFIED
Arvin A RimFranceBernardo Dominic PROPOSAL
Ashley J FlosiSpainAsiya Javayant PROPOSAL
Ivar L FlosiArgentinaAnna Fali NEW
Mujtaba A GarufiBrazilBernardo Dominic UNQUALIFIED
Salvatore B ShinkoGermanyXuxue Feng RENEWAL
Tony K StockhamFranceXuxue Feng NEGOTIATION
Silvio S AlbaresCanadaAnna Fali RENEWAL
Rodrigues K MacleadAustraliaStephen Shaw QUALIFIED
Clifford H RimUnited KingdomAmy Elsner RENEWAL
Salvatore X DoeIndiaStephen Shaw NEW
Ivar Q KuskoJapanAnna Fali NEW
Izzy J CaldareraJapanXuxue Feng RENEWAL
David E FollerCanadaXuxue Feng PROPOSAL
Faith L FigeroaCanadaIoni Bowcher NEGOTIATION
Maisha D RutaFranceAsiya Javayant QUALIFIED
Kaitlin E DoeGermanyAmy Elsner NEW
Clifford U FerenczBrazilElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Faith Y BriddickFranceAnna Fali NEGOTIATION
Mujtaba U AmigonItalyOnyama Limba NEW
Claire H KuskoJapanStephen Shaw UNQUALIFIED
Wickens I InouyeIndiaXuxue Feng RENEWAL
Ricardo N AmigonItalyAsiya Javayant NEGOTIATION
Stacey D GauchoGermanyElwin Sharvill NEW
Misaki Q CampainSpainIoni Bowcher NEGOTIATION
Maisha Y RimArgentinaAmy Elsner QUALIFIED
Alejandro O WaycottSpainElwin Sharvill QUALIFIED
Chavez Y SaylorsSpainBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson U BologniaArgentina2025-06-02Chemel, James L Cpa QUALIFIED23Anna Fali
1001Greenwood U DoeIndia2025-05-21Feiner Bros NEW53Amy Elsner
1002Smith N MaletSpain2025-06-03Chemel, James L Cpa RENEWAL59Amy Elsner
1003Adams B StockhamUnited Kingdom2025-05-24Morlong Associates UNQUALIFIED14Xuxue Feng
1004Kaitlin V WhobreyGermany2025-05-20Chapman, Ross E Esq QUALIFIED58Asiya Javayant
1005Mayumi M MacleadUnited Kingdom2025-05-21Rangoni Of Florence QUALIFIED65Stephen Shaw
1006Adams J TollnerBrazil2025-06-02Benton, John B Jr NEGOTIATION26Elwin Sharvill
1007Rodrigues O WaycottSpain2025-06-06King, Christopher A Esq RENEWAL94Bernardo Dominic
1008Cody E MarrierCanada2025-05-30Feiner Bros UNQUALIFIED77Asiya Javayant
1009Leja Y MorascaCanada2025-05-28Truhlar And Truhlar Attys UNQUALIFIED14Asiya Javayant
1010Clifford U PerinJapan2025-06-03Rangoni Of Florence PROPOSAL24Asiya Javayant
1011Claire T GarufiIndia2025-06-05Dorl, James J Esq PROPOSAL86Ivan Magalhaes
1012James N DoeAustralia2025-05-26Commercial Press RENEWAL16Asiya Javayant
1013Juan S FlosiFrance2025-06-03Dorl, James J Esq UNQUALIFIED74Xuxue Feng
1014Salvatore S FigeroaIndia2025-06-09Chapman, Ross E Esq PROPOSAL32Amy Elsner
1015Jones M RimSpain2025-06-10Commercial Press UNQUALIFIED64Xuxue Feng
1016Sinclair J CaldareraRussia2025-06-03Printing Dimensions QUALIFIED9Bernardo Dominic
1017Deepesh X CaudyItaly2025-06-06Rousseaux, Michael Esq NEW44Bernardo Dominic
1018Misaki Y TollnerArgentina2025-06-03Chemel, James L Cpa UNQUALIFIED16Anna Fali
1019Claire P MarrierAustralia2025-06-03Benton, John B Jr NEW75Bernardo Dominic
1020David O OldroydItaly2025-06-14Chapman, Ross E Esq QUALIFIED97Stephen Shaw
1021Darci C RulapaughJapan2025-06-12Feltz Printing Service RENEWAL63Stephen Shaw
1022Jennifer E GauchoIndia2025-05-24Benton, John B Jr UNQUALIFIED44Ioni Bowcher
1023Adams V FollerGermany2025-06-15Rousseaux, Michael Esq QUALIFIED68Xuxue Feng
1024Morrow E BologniaItaly2025-06-01Commercial Press PROPOSAL66Onyama Limba
1025Smith M SchemmerRussia2025-06-04Dorl, James J Esq RENEWAL13Bernardo Dominic
1026Octavia Y OldroydBrazil2025-06-12Commercial Press PROPOSAL16Ivan Magalhaes
1027Aruna J PerinFrance2025-05-29Printing Dimensions QUALIFIED4Elwin Sharvill
1028Jeanfrancois M FlosiCanada2025-06-09Truhlar And Truhlar Attys PROPOSAL44Elwin Sharvill
1029Antonio S WaycottArgentina2025-06-11Chapman, Ross E Esq RENEWAL12Ioni Bowcher
1030Ashley I IturbideCanada2025-05-31Feiner Bros NEGOTIATION44Xuxue Feng
1031Isabel B CaudySpain2025-06-10Buckley Miller Wright RENEWAL95Asiya Javayant
1032Emily H MarrierRussia2025-05-31Rangoni Of Florence UNQUALIFIED35Stephen Shaw
1033Octavia X SaylorsArgentina2025-06-01Chemel, James L Cpa NEGOTIATION41Bernardo Dominic
1034Sinclair G MacleadSpain2025-06-03Feiner Bros QUALIFIED38Bernardo Dominic
1035Adams S WhobreyIndia2025-05-29Printing Dimensions QUALIFIED96Ivan Magalhaes
1036David F SlusarskiBrazil2025-05-21Dorl, James J Esq UNQUALIFIED7Xuxue Feng
1037Juan P NestleIndia2025-06-16Chapman, Ross E Esq RENEWAL33Asiya Javayant
1038Mujtaba V SergiArgentina2025-06-15Benton, John B Jr RENEWAL46Onyama Limba
1039Leon K IturbideFrance2025-05-28Rangoni Of Florence QUALIFIED57Stephen Shaw
1040Jennifer S WieserIndia2025-05-30Truhlar And Truhlar Attys RENEWAL20Asiya Javayant
1041Cody G WaycottSpain2025-06-12Truhlar And Truhlar Attys UNQUALIFIED31Onyama Limba
1042Silvio I BologniaCanada2025-06-03Buckley Miller Wright QUALIFIED9Elwin Sharvill
1043Johnson Z RimSpain2025-05-18Feltz Printing Service RENEWAL1Asiya Javayant
1044Juan Z DoeGermany2025-06-06Chanay, Jeffrey A Esq RENEWAL2Anna Fali
1045Adams B SergiBrazil2025-06-14Rousseaux, Michael Esq NEW12Asiya Javayant
1046Jones Z GauchoUnited Kingdom2025-05-26Printing Dimensions RENEWAL50Xuxue Feng
1047Claire B PerinIndia2025-06-10Rousseaux, Michael Esq UNQUALIFIED77Onyama Limba
1048Tony B CampainAustralia2025-06-05Rangoni Of Florence UNQUALIFIED74Ivan Magalhaes
1049Leon M RimCanada2025-06-13Commercial Press NEGOTIATION74Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Antonio U PoquetteIndiaXuxue Feng NEGOTIATION
Smith O CaldareraItalyBernardo Dominic RENEWAL
Alejandro U StockhamRussiaAnna Fali NEGOTIATION
Jefferson W AmigonRussiaIoni Bowcher QUALIFIED
Rodrigues R OldroydUnited KingdomAnna Fali NEGOTIATION
Aika R KolmetzArgentinaElwin Sharvill NEW
Cody E BologniaGermanyAsiya Javayant NEGOTIATION
Morrow M WaycottRussiaElwin Sharvill PROPOSAL
Munro L BriddickIndiaIvan Magalhaes RENEWAL
Tony D VocelkaFranceElwin Sharvill NEW
Tony J MaletItalyElwin Sharvill NEGOTIATION
Leja V GarufiIndiaStephen Shaw NEGOTIATION
Maisha I InouyeSpainElwin Sharvill PROPOSAL
Octavia H CaudyRussiaAmy Elsner UNQUALIFIED
Mujtaba N FigeroaRussiaBernardo Dominic QUALIFIED
Greenwood O AlbaresCanadaAsiya Javayant QUALIFIED
Ashley R RulapaughAustraliaBernardo Dominic NEW
Izzy R MarrierRussiaIoni Bowcher NEW
Ricardo J BowleyAustraliaAnna Fali RENEWAL
Maisha U BriddickCanadaIvan Magalhaes QUALIFIED
Rodrigues M BologniaGermanyIvan Magalhaes RENEWAL
Leja R MaletAustraliaIvan Magalhaes NEW
Antonio U BowleyRussiaIvan Magalhaes NEGOTIATION
Izzy V AmigonAustraliaOnyama Limba PROPOSAL
Antonio Y BologniaIndiaIoni Bowcher UNQUALIFIED
Tony F SlusarskiJapanXuxue Feng NEW
Francesco H FlosiFranceOnyama Limba QUALIFIED
Ricardo Y PerinJapanStephen Shaw NEGOTIATION
Cody S SlusarskiCanadaBernardo Dominic UNQUALIFIED
Juan P OldroydBrazilXuxue Feng PROPOSAL
Smith M InouyeSpainIvan Magalhaes UNQUALIFIED
Chavez P BologniaRussiaIoni Bowcher NEW
Antonio M GlickRussiaIvan Magalhaes NEGOTIATION
Alejandro D TollnerArgentinaIoni Bowcher NEW
Kadeem B WaycottBrazilAmy Elsner NEGOTIATION
Chavez Z RimAustraliaXuxue Feng NEGOTIATION
Faith W FigeroaIndiaOnyama Limba QUALIFIED
James N MacleadBrazilAnna Fali RENEWAL
Jefferson J KolmetzBrazilElwin Sharvill QUALIFIED
Aruna A PaprockiItalyXuxue Feng UNQUALIFIED
Maisha C WaycottFranceElwin Sharvill NEW
Kadeem S NestleArgentinaAnna Fali QUALIFIED
Kadeem N MacleadArgentinaOnyama Limba PROPOSAL
Smith B WieserAustraliaElwin Sharvill UNQUALIFIED
David Y InouyeIndiaIvan Magalhaes PROPOSAL
Ivar K SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues H GillianSpainIvan Magalhaes NEW
Stacey H DilliardRussiaOnyama Limba UNQUALIFIED
Murillo O RutaSpainIvan Magalhaes RENEWAL
Cody P GarufiFranceOnyama Limba NEW
Frozen Columns
Name
Mayumi Q Whobrey
Costa K Nestle
Smith J Tollner
Ashley S Chui
Izzy B Sergi
Costa K Amigon
Jennifer W Ostrosky
Mujtaba B Doe
Munro A Oldroyd
Faith O Nicka
Johnson C Perin
Kaitlin E Doe
Adams B Doe
Leja U Saylors
Mayumi I Waycott
Leja X Campain
Maisha C Sergi
Antonio L Nestle
Misaki F Foller
Jones E Schemmer
Claire D Nestle
Aditya M Gillian
Rodrigues R Inouye
Aika G Stenseth
Maria R Campain
Jeanfrancois N Royster
Maisha G Inouye
Tony Y Glick
Octavia W Ruta
Jennifer T Saylors
Octavia W Dilliard
Octavia C Bowley
Tony P Flosi
Morrow P Shinko
Sinclair R Albares
Salvatore E Rulapaugh
Aditya Z Iturbide
Aruna G Nicka
Octavia X Campain
Claire G Malet
Smith X Gaucho
Juan Z Darakjy
Murillo D Figeroa
Leja V Paprocki
Johnson V Caudy
Ivar P Poquette
Munro U Chui
Greenwood N Doe
Claire W Paprocki
Smith P Wieser
IdCountryDate
1000India2025-05-27
1001India2025-06-13
1002Canada2025-05-30
1003Japan2025-06-06
1004Canada2025-06-03
1005Spain2025-06-05
1006Australia2025-06-14
1007Canada2025-06-14
1008Argentina2025-05-31
1009India2025-06-07
1010Russia2025-06-13
1011United Kingdom2025-06-15
1012Italy2025-05-29
1013United Kingdom2025-06-01
1014Italy2025-06-11
1015Germany2025-06-13
1016Germany2025-06-10
1017France2025-06-01
1018Spain2025-05-26
1019Italy2025-05-23
1020Australia2025-05-23
1021Germany2025-05-27
1022Argentina2025-06-03
1023Germany2025-05-22
1024Japan2025-05-27
1025Spain2025-06-10
1026Japan2025-05-21
1027Argentina2025-06-08
1028Russia2025-05-22
1029Argentina2025-05-18
1030Italy2025-05-18
1031Brazil2025-05-21
1032United Kingdom2025-06-03
1033France2025-05-18
1034United Kingdom2025-05-21
1035Canada2025-06-15
1036Italy2025-05-18
1037France2025-05-25
1038United Kingdom2025-06-14
1039Germany2025-05-22
1040Russia2025-06-07
1041Spain2025-05-25
1042Spain2025-06-11
1043Russia2025-06-05
1044Japan2025-05-25
1045Spain2025-06-07
1046France2025-06-16
1047Canada2025-05-22
1048France2025-05-18
1049Germany2025-06-07

On-Demand Data

NameIdCountryDate
Jeanfrancois O Bolognia1000Japan2025-06-02
Leja V Amigon1001United Kingdom2025-06-08
Ricardo Q Doe1002France2025-06-13
Morrow U Dilliard1003France2025-05-30
Ashley E Bowley1004France2025-06-03
Smith D Malet1005France2025-06-16
Juan K Glick1006France2025-06-06
Tony X Caudy1007Australia2025-06-15
Rodrigues H Poquette1008Australia2025-05-20
Kadeem B Marrier1009Germany2025-05-31
Tony I Malet1010Russia2025-06-09
Rodrigues K Campain1011Argentina2025-05-26
Jeanfrancois Q Wieser1012Italy2025-05-18
Cody H Flosi1013France2025-06-13
Cody A Flosi1014United Kingdom2025-06-03
Ashley X Marrier1015Germany2025-06-07
Tony U Ostrosky1016United Kingdom2025-06-11
Faith W Venere1017Italy2025-06-08
Alejandro M Chui1018Spain2025-06-08
Jones S Tollner1019France2025-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan O PaprockiSpainBernardo Dominic NEW
Costa J SlusarskiRussiaOnyama Limba QUALIFIED
Juan X GarufiAustraliaBernardo Dominic UNQUALIFIED
Murillo E KuskoSpainIoni Bowcher NEGOTIATION
Emily V BowleyRussiaAnna Fali UNQUALIFIED
Claire V BriddickRussiaIvan Magalhaes NEW
Murillo F WieserRussiaAnna Fali NEGOTIATION
Clifford I RutaJapanAnna Fali RENEWAL
Antonio L RoysterJapanIoni Bowcher RENEWAL
Arvin S OstroskyFranceXuxue Feng NEW
Nicolas N StensethArgentinaBernardo Dominic NEW
Faith I PerinIndiaIoni Bowcher UNQUALIFIED
Greenwood C InouyeIndiaElwin Sharvill PROPOSAL
Ivar B RulapaughUnited KingdomElwin Sharvill RENEWAL
Octavia Y WhobreyFranceElwin Sharvill NEW
Octavia W RimJapanBernardo Dominic QUALIFIED
Wickens J KuskoArgentinaIoni Bowcher QUALIFIED
Clifford P StockhamSpainXuxue Feng NEW
Maisha M MaletArgentinaStephen Shaw PROPOSAL
Salvatore A VenereUnited KingdomStephen Shaw RENEWAL
Misaki N RutaArgentinaXuxue Feng UNQUALIFIED
Deepesh J FollerBrazilElwin Sharvill NEGOTIATION
Wickens P VenereFranceBernardo Dominic NEGOTIATION
Tony J BowleyUnited KingdomAsiya Javayant PROPOSAL
Antonio A ShinkoGermanyXuxue Feng PROPOSAL
Maria M DilliardIndiaXuxue Feng PROPOSAL
Isabel X MacleadAustraliaIoni Bowcher QUALIFIED
Jeanfrancois D WaycottRussiaXuxue Feng PROPOSAL
Cody Z InouyeRussiaAsiya Javayant QUALIFIED
Stacey D GarufiRussiaXuxue Feng UNQUALIFIED
Jefferson K FerenczFranceXuxue Feng PROPOSAL
Mujtaba Z PoquetteBrazilIvan Magalhaes UNQUALIFIED
Salvatore R FlosiRussiaXuxue Feng QUALIFIED
Claire V WaycottArgentinaIvan Magalhaes PROPOSAL
Wickens N WieserAustraliaAmy Elsner PROPOSAL
Silvio O OldroydUnited KingdomElwin Sharvill PROPOSAL
Tony M VocelkaUnited KingdomAnna Fali PROPOSAL
Isabel T FlosiFranceXuxue Feng NEW
Stacey M GauchoGermanyAnna Fali RENEWAL
Johnson Z StockhamFranceElwin Sharvill UNQUALIFIED

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