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
Stacey S SergiBrazilElwin Sharvill NEGOTIATION
Salvatore W RulapaughIndiaBernardo Dominic UNQUALIFIED
Leon X RoysterJapanXuxue Feng PROPOSAL
Salvatore D ShinkoUnited KingdomIoni Bowcher NEW
Emily O ButtGermanyIvan Magalhaes PROPOSAL
Kadeem X OstroskyJapanAmy Elsner NEGOTIATION
Izzy S ChuiAustraliaIoni Bowcher NEW
Ricardo Q BologniaFranceElwin Sharvill QUALIFIED
Silvio G PoquetteRussiaAmy Elsner RENEWAL
Jeanfrancois A FerenczFranceIoni Bowcher UNQUALIFIED
Jeanfrancois W RulapaughRussiaStephen Shaw UNQUALIFIED
Mujtaba C CaudyFranceAnna Fali PROPOSAL
Smith R GillianGermanyBernardo Dominic QUALIFIED
Kaitlin U IturbideJapanIvan Magalhaes RENEWAL
Jones Z SaylorsUnited KingdomAnna Fali UNQUALIFIED
Antonio G NickaJapanXuxue Feng RENEWAL
Jennifer E RoysterRussiaIvan Magalhaes QUALIFIED
Ricardo A StensethBrazilXuxue Feng RENEWAL
Maria Q PerinFranceAnna Fali QUALIFIED
David B MacleadCanadaIoni Bowcher NEW
Johnson D BriddickUnited KingdomXuxue Feng UNQUALIFIED
Izzy T MacleadGermanyStephen Shaw UNQUALIFIED
Jones N WieserBrazilIvan Magalhaes NEGOTIATION
Aruna M RutaUnited KingdomElwin Sharvill QUALIFIED
Aruna T GauchoFranceBernardo Dominic PROPOSAL
Maria B AlbaresArgentinaIvan Magalhaes RENEWAL
Kadeem S VocelkaRussiaBernardo Dominic PROPOSAL
Costa H GillianSpainAmy Elsner NEW
Jennifer L FlosiJapanAmy Elsner RENEWAL
Munro J StockhamSpainAnna Fali RENEWAL
Wickens Q AlbaresCanadaElwin Sharvill NEW
Alejandro B WaycottGermanyAnna Fali UNQUALIFIED
Ricardo Z VenereCanadaXuxue Feng PROPOSAL
Aruna B PoquetteJapanBernardo Dominic NEW
Antonio X BriddickUnited KingdomAnna Fali UNQUALIFIED
Johnson V BologniaCanadaIvan Magalhaes PROPOSAL
Kadeem R DilliardAustraliaIoni Bowcher NEW
Ashley N SaylorsUnited KingdomBernardo Dominic NEW
Sinclair X GauchoCanadaAsiya Javayant NEW
Arvin S PoquetteFranceAnna Fali NEW
Aruna T PerinRussiaOnyama Limba RENEWAL
Jeanfrancois U InouyeGermanyOnyama Limba NEW
Jefferson V IturbideBrazilOnyama Limba RENEWAL
Julie K WaycottArgentinaXuxue Feng NEGOTIATION
Stacey A WieserJapanAnna Fali RENEWAL
Aditya R CampainFranceAnna Fali RENEWAL
Mayumi R MacleadFranceStephen Shaw NEW
Tony M NestleArgentinaIoni Bowcher QUALIFIED
Ashley Y DarakjyIndiaBernardo Dominic NEW
Leja Z RutaArgentinaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Juan K BologniaGermanyStephen Shaw PROPOSAL
Maisha F RulapaughItalyAsiya Javayant UNQUALIFIED
Izzy U OstroskyJapanOnyama Limba QUALIFIED
James Y RutaBrazilElwin Sharvill QUALIFIED
Jeanfrancois O FlosiAustraliaBernardo Dominic NEGOTIATION
Murillo M RoysterUnited KingdomStephen Shaw QUALIFIED
Chavez H CaldareraSpainElwin Sharvill PROPOSAL
Aditya M SchemmerFranceIoni Bowcher PROPOSAL
James W KuskoAustraliaElwin Sharvill PROPOSAL
Deepesh N GarufiIndiaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood Q WhobreyUnited Kingdom2025-04-25Rangoni Of Florence NEGOTIATION4Onyama Limba
1001Antonio S RutaArgentina2025-04-30Dorl, James J Esq PROPOSAL89Anna Fali
1002Leon F DarakjyAustralia2025-04-27Feiner Bros PROPOSAL0Ioni Bowcher
1003Juan G GillianAustralia2025-04-02Truhlar And Truhlar Attys NEW13Asiya Javayant
1004Jennifer I SchemmerIndia2025-04-30Dorl, James J Esq NEGOTIATION91Asiya Javayant
1005Chavez D MacleadArgentina2025-04-07Chemel, James L Cpa NEGOTIATION21Xuxue Feng
1006Kaitlin D WhobreyFrance2025-04-13Chemel, James L Cpa UNQUALIFIED55Ivan Magalhaes
1007Stacey F CampainJapan2025-04-07Printing Dimensions RENEWAL35Bernardo Dominic
1008Maisha E SergiArgentina2025-04-19Chanay, Jeffrey A Esq QUALIFIED56Asiya Javayant
1009Ivar J KuskoGermany2025-04-12Morlong Associates RENEWAL74Ioni Bowcher
1010Munro B VenereFrance2025-04-23Chemel, James L Cpa PROPOSAL15Stephen Shaw
1011Mayumi F OstroskyGermany2025-04-30Rangoni Of Florence PROPOSAL22Anna Fali
1012Misaki O BriddickItaly2025-04-25Feltz Printing Service PROPOSAL21Bernardo Dominic
1013Jefferson I TollnerArgentina2025-04-15Chanay, Jeffrey A Esq QUALIFIED93Asiya Javayant
1014Francesco R CaudyGermany2025-04-05Rangoni Of Florence PROPOSAL57Anna Fali
1015Kaitlin F StockhamJapan2025-04-02Chapman, Ross E Esq UNQUALIFIED1Amy Elsner
1016Jones Z StensethCanada2025-04-08Chapman, Ross E Esq PROPOSAL77Elwin Sharvill
1017Clifford T MaletIndia2025-04-05Benton, John B Jr UNQUALIFIED3Asiya Javayant
1018Ricardo U BowleyJapan2025-04-03Commercial Press QUALIFIED35Onyama Limba
1019Arvin I RoysterArgentina2025-04-20Rangoni Of Florence PROPOSAL65Asiya Javayant
1020Mujtaba K FollerJapan2025-04-20Feltz Printing Service NEGOTIATION91Bernardo Dominic
1021Cody D GarufiArgentina2025-04-12Truhlar And Truhlar Attys UNQUALIFIED40Ivan Magalhaes
1022Izzy S RimBrazil2025-04-13Truhlar And Truhlar Attys PROPOSAL91Amy Elsner
1023Jefferson T SchemmerJapan2025-04-02Rousseaux, Michael Esq UNQUALIFIED8Ivan Magalhaes
1024Misaki S FerenczCanada2025-04-04Feiner Bros RENEWAL98Asiya Javayant
1025Murillo Y CaldareraFrance2025-04-24Dorl, James J Esq NEGOTIATION36Ivan Magalhaes
1026Francesco W DoeFrance2025-04-22Chemel, James L Cpa UNQUALIFIED78Asiya Javayant
1027Tony F DarakjyAustralia2025-04-17Rangoni Of Florence PROPOSAL84Anna Fali
1028Maisha A RoysterIndia2025-04-03Dorl, James J Esq NEGOTIATION9Amy Elsner
1029Nicolas Q FigeroaAustralia2025-04-25Rousseaux, Michael Esq UNQUALIFIED31Anna Fali
1030Mujtaba M BowleyAustralia2025-04-10Chemel, James L Cpa QUALIFIED89Amy Elsner
1031Claire R VocelkaArgentina2025-04-29Printing Dimensions UNQUALIFIED13Ioni Bowcher
1032Ivar W AlbaresGermany2025-04-15Rousseaux, Michael Esq PROPOSAL14Asiya Javayant
1033Adams Y RulapaughGermany2025-04-25Benton, John B Jr QUALIFIED44Xuxue Feng
1034Faith S InouyeUnited Kingdom2025-04-15Printing Dimensions NEGOTIATION79Ivan Magalhaes
1035Kadeem O BologniaCanada2025-04-20Feiner Bros QUALIFIED60Bernardo Dominic
1036Octavia T AlbaresUnited Kingdom2025-04-21Chemel, James L Cpa RENEWAL33Xuxue Feng
1037Octavia R AlbaresCanada2025-04-06Truhlar And Truhlar Attys RENEWAL59Stephen Shaw
1038Stacey A KuskoFrance2025-04-28Chanay, Jeffrey A Esq QUALIFIED19Stephen Shaw
1039Leon Z OstroskyGermany2025-04-27King, Christopher A Esq QUALIFIED23Amy Elsner
1040Leja E WhobreyUnited Kingdom2025-04-22Chanay, Jeffrey A Esq QUALIFIED41Xuxue Feng
1041Misaki E AlbaresIndia2025-04-05Morlong Associates UNQUALIFIED30Onyama Limba
1042Smith E SergiJapan2025-04-05Truhlar And Truhlar Attys PROPOSAL88Amy Elsner
1043Wickens Z TollnerUnited Kingdom2025-04-21Rousseaux, Michael Esq QUALIFIED98Asiya Javayant
1044Izzy L WaycottAustralia2025-04-20Buckley Miller Wright QUALIFIED19Bernardo Dominic
1045Mayumi D ButtFrance2025-04-09Truhlar And Truhlar Attys NEW8Ivan Magalhaes
1046Julie Z WieserJapan2025-04-30King, Christopher A Esq NEW19Elwin Sharvill
1047Maria X RimUnited Kingdom2025-04-05Buckley Miller Wright NEW82Amy Elsner
1048Tony A GauchoBrazil2025-04-18King, Christopher A Esq PROPOSAL35Ioni Bowcher
1049Murillo D AlbaresCanada2025-04-16Printing Dimensions UNQUALIFIED65Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ricardo Y PoquetteBrazilAmy Elsner QUALIFIED
Tony V BowleyItalyAmy Elsner UNQUALIFIED
Isabel K MarrierCanadaElwin Sharvill QUALIFIED
David A MaletFranceElwin Sharvill RENEWAL
Adams Y MorascaGermanyAnna Fali QUALIFIED
Isabel F BowleyIndiaElwin Sharvill QUALIFIED
Francesco G WieserFranceAnna Fali NEGOTIATION
Darci Q PerinArgentinaXuxue Feng NEGOTIATION
Leja O RutaBrazilXuxue Feng RENEWAL
Leon S VenereCanadaBernardo Dominic PROPOSAL
Alejandro C SchemmerSpainIvan Magalhaes QUALIFIED
Ashley U ChuiJapanIoni Bowcher UNQUALIFIED
Morrow P NickaArgentinaBernardo Dominic NEW
Stacey G KolmetzArgentinaOnyama Limba QUALIFIED
Jefferson Q RulapaughFranceStephen Shaw RENEWAL
Greenwood C PaprockiJapanAsiya Javayant NEW
Cody E WieserAustraliaOnyama Limba UNQUALIFIED
Adams A GarufiRussiaIoni Bowcher UNQUALIFIED
Stacey A GillianAustraliaIoni Bowcher NEGOTIATION
Jeanfrancois H PaprockiItalyElwin Sharvill RENEWAL
Izzy Y IturbideIndiaIvan Magalhaes QUALIFIED
Francesco D ShinkoGermanyIvan Magalhaes RENEWAL
Silvio Y GillianAustraliaStephen Shaw NEGOTIATION
Jefferson D AmigonBrazilStephen Shaw PROPOSAL
Jennifer I FerenczArgentinaIvan Magalhaes NEW
Izzy A RoysterSpainAnna Fali NEGOTIATION
Mayumi A FerenczJapanXuxue Feng RENEWAL
Alejandro M SlusarskiArgentinaIoni Bowcher NEW
Tony U FollerSpainStephen Shaw QUALIFIED
Murillo X GillianItalyIoni Bowcher QUALIFIED
Johnson B DarakjySpainStephen Shaw RENEWAL
Francesco M GlickSpainIoni Bowcher NEGOTIATION
Munro T OstroskyAustraliaIoni Bowcher PROPOSAL
Costa D BologniaRussiaAsiya Javayant PROPOSAL
Jones Q CaldareraSpainBernardo Dominic NEGOTIATION
Costa T DilliardCanadaElwin Sharvill QUALIFIED
Smith M NestleRussiaIoni Bowcher NEGOTIATION
Wickens N GarufiArgentinaAmy Elsner RENEWAL
Silvio S CaudySpainIvan Magalhaes NEGOTIATION
Rodrigues M RimRussiaBernardo Dominic UNQUALIFIED
Aditya Y GillianFranceBernardo Dominic UNQUALIFIED
Emily J CampainItalyStephen Shaw PROPOSAL
Deepesh T SlusarskiSpainBernardo Dominic PROPOSAL
Leja L CaudyUnited KingdomAmy Elsner QUALIFIED
Octavia A MacleadBrazilAnna Fali QUALIFIED
David A SchemmerGermanyIoni Bowcher NEGOTIATION
Sinclair Z MaletRussiaIoni Bowcher QUALIFIED
Jones V SaylorsCanadaElwin Sharvill RENEWAL
Darci U InouyeGermanyBernardo Dominic NEW
Ashley K SaylorsItalyIoni Bowcher NEW
Frozen Columns
Name
Tony A Caudy
Leja D Nicka
Wickens J Foller
Johnson R Iturbide
Leon N Garufi
Tony H Gillian
Emily O Malet
Greenwood C Rulapaugh
Kaitlin A Paprocki
Alejandro X Maclead
Salvatore Z Slusarski
Claire G Rim
Jeanfrancois L Bolognia
Arvin N Iturbide
Kadeem E Bolognia
Munro V Kusko
Chavez B Caldarera
Leja Q Flosi
Maria R Doe
Isabel S Caudy
Clifford J Shinko
Jefferson O Perin
Leja J Rim
Deepesh Y Stockham
Isabel L Butt
Alejandro Z Perin
Faith K Schemmer
Nicolas W Iturbide
Juan Z Dilliard
Leon K Bolognia
Darci V Inouye
Julie W Rulapaugh
Johnson Y Ruta
Alejandro W Caldarera
Isabel A Maclead
Ashley G Saylors
Murillo U Stenseth
Antonio P Foller
Isabel B Butt
Silvio G Saylors
Jefferson S Flosi
Aruna D Morasca
Johnson U Stockham
Antonio C Whobrey
Tony S Campain
Maisha A Chui
Ivar G Marrier
Maria U Schemmer
Deepesh U Perin
Aika C Bowley
IdCountryDate
1000Germany2025-04-05
1001United Kingdom2025-04-05
1002Spain2025-04-23
1003India2025-04-19
1004Argentina2025-04-11
1005Germany2025-04-17
1006Brazil2025-04-06
1007United Kingdom2025-04-19
1008Russia2025-04-17
1009Australia2025-04-12
1010Germany2025-04-27
1011India2025-04-02
1012Canada2025-04-07
1013Spain2025-04-27
1014United Kingdom2025-04-20
1015Italy2025-04-05
1016Canada2025-04-10
1017Italy2025-04-26
1018Canada2025-04-19
1019Spain2025-04-26
1020France2025-04-21
1021France2025-04-03
1022France2025-04-25
1023Spain2025-04-22
1024Japan2025-04-22
1025Japan2025-04-13
1026Spain2025-04-08
1027Japan2025-04-08
1028United Kingdom2025-04-09
1029Australia2025-04-05
1030Italy2025-04-27
1031Canada2025-04-15
1032Australia2025-04-18
1033France2025-04-03
1034Japan2025-04-16
1035Italy2025-04-12
1036Spain2025-04-27
1037India2025-04-27
1038Spain2025-04-20
1039United Kingdom2025-04-17
1040India2025-04-24
1041Canada2025-04-29
1042India2025-04-03
1043Brazil2025-04-05
1044Russia2025-04-19
1045Germany2025-04-23
1046India2025-04-28
1047Argentina2025-04-03
1048Russia2025-04-12
1049France2025-04-30

On-Demand Data

NameIdCountryDate
Jennifer Z Darakjy1000Canada2025-04-05
Jefferson Q Dilliard1001Spain2025-04-09
David B Malet1002United Kingdom2025-04-22
Adams U Ruta1003Australia2025-04-27
Smith A Rim1004France2025-04-15
Faith Z Iturbide1005Canada2025-04-14
Leon D Chui1006India2025-04-03
Octavia B Ruta1007India2025-04-05
David R Foller1008Germany2025-04-09
Smith X Gaucho1009Argentina2025-04-08
Mayumi Q Glick1010Russia2025-04-02
Kaitlin H Oldroyd1011France2025-04-27
Mujtaba A Dilliard1012Russia2025-04-09
Morrow U Gaucho1013Spain2025-04-24
Juan F Royster1014India2025-04-01
Kaitlin S Schemmer1015Japan2025-04-17
Salvatore A Stenseth1016India2025-04-17
Julie X Flosi1017United Kingdom2025-04-20
Antonio T Venere1018Canada2025-04-28
Mayumi V Doe1019Germany2025-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon N GarufiSpainIoni Bowcher QUALIFIED
Chavez H PaprockiItalyStephen Shaw QUALIFIED
Munro I GauchoCanadaElwin Sharvill PROPOSAL
Morrow D FollerSpainOnyama Limba UNQUALIFIED
Jeanfrancois M MaletJapanIoni Bowcher UNQUALIFIED
Misaki V PaprockiGermanyOnyama Limba NEW
Kadeem B DarakjyJapanIvan Magalhaes UNQUALIFIED
Francesco Y WaycottRussiaIvan Magalhaes NEW
Jones I GlickFranceAmy Elsner NEGOTIATION
Nicolas J DilliardItalyAmy Elsner RENEWAL
Mujtaba P RimArgentinaStephen Shaw NEW
Isabel I FigeroaRussiaOnyama Limba RENEWAL
Aika J CampainGermanyStephen Shaw QUALIFIED
Izzy F BowleyRussiaAmy Elsner UNQUALIFIED
Aruna Z GlickSpainAmy Elsner UNQUALIFIED
Misaki T CaudyRussiaXuxue Feng NEW
Jefferson A OstroskyCanadaXuxue Feng NEW
Aika E FlosiIndiaAnna Fali RENEWAL
Julie G RutaBrazilBernardo Dominic RENEWAL
Tony Z GauchoAustraliaXuxue Feng NEGOTIATION
Maisha O VenereIndiaOnyama Limba RENEWAL
Leja A GarufiBrazilXuxue Feng RENEWAL
Claire W CampainArgentinaAsiya Javayant QUALIFIED
Wickens U SchemmerFranceAmy Elsner RENEWAL
Misaki Q DilliardIndiaStephen Shaw UNQUALIFIED
Stacey N SaylorsRussiaAnna Fali QUALIFIED
Murillo H GlickSpainIoni Bowcher NEW
Johnson U KolmetzRussiaAmy Elsner PROPOSAL
Claire Z WieserRussiaIoni Bowcher QUALIFIED
Nicolas D PoquetteSpainIvan Magalhaes PROPOSAL
Kaitlin N WieserRussiaAmy Elsner UNQUALIFIED
Ivar H BriddickIndiaBernardo Dominic QUALIFIED
Maisha T FigeroaJapanIoni Bowcher QUALIFIED
Salvatore W ShinkoJapanAmy Elsner RENEWAL
Morrow O RutaBrazilBernardo Dominic UNQUALIFIED
Ashley B DoeUnited KingdomAsiya Javayant NEW
Jennifer Q BowleyJapanOnyama Limba RENEWAL
Aditya P ButtUnited KingdomOnyama Limba UNQUALIFIED
Adams R DarakjyIndiaAsiya Javayant QUALIFIED
Antonio K GlickSpainAnna 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>