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
Misaki L AmigonItalyXuxue Feng PROPOSAL
Sinclair M BowleyJapanOnyama Limba NEW
Mayumi Z VocelkaAustraliaStephen Shaw RENEWAL
Tony Y GlickCanadaElwin Sharvill NEW
Faith C NickaJapanBernardo Dominic NEW
Leon U IturbideRussiaAmy Elsner PROPOSAL
Francesco G VenereUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois U ButtBrazilBernardo Dominic PROPOSAL
Clifford X SlusarskiBrazilIoni Bowcher UNQUALIFIED
Salvatore J AmigonArgentinaAsiya Javayant UNQUALIFIED
David S GarufiUnited KingdomOnyama Limba RENEWAL
Adams J AlbaresFranceOnyama Limba RENEWAL
Rodrigues L RimIndiaBernardo Dominic NEGOTIATION
Ivar N IturbideGermanyBernardo Dominic RENEWAL
Rodrigues A StockhamSpainElwin Sharvill PROPOSAL
Francesco L GillianIndiaBernardo Dominic NEW
Juan P TollnerGermanyXuxue Feng PROPOSAL
Ricardo Q FigeroaAustraliaAmy Elsner PROPOSAL
Mujtaba U FerenczArgentinaIoni Bowcher NEW
Ivar A BologniaGermanyAmy Elsner RENEWAL
Darci M KolmetzSpainBernardo Dominic NEW
Leon Z PerinBrazilAnna Fali PROPOSAL
Isabel G WaycottGermanyAnna Fali RENEWAL
Maisha P GauchoJapanAnna Fali QUALIFIED
Aditya N StensethBrazilAmy Elsner QUALIFIED
Ivar V RulapaughFranceAsiya Javayant PROPOSAL
Aditya A TollnerBrazilIoni Bowcher NEGOTIATION
Ashley D ChuiUnited KingdomAnna Fali NEGOTIATION
Emily U FollerGermanyIvan Magalhaes QUALIFIED
Tony A KuskoAustraliaBernardo Dominic NEGOTIATION
Greenwood N AmigonSpainIoni Bowcher PROPOSAL
Chavez B IturbideAustraliaBernardo Dominic NEW
Antonio F BowleyCanadaBernardo Dominic QUALIFIED
Emily L RimFranceAmy Elsner NEW
Cody P PoquetteArgentinaXuxue Feng QUALIFIED
Faith F DilliardAustraliaBernardo Dominic QUALIFIED
Maria A PoquetteIndiaBernardo Dominic PROPOSAL
James Z OstroskyArgentinaAnna Fali QUALIFIED
Leja J RimArgentinaXuxue Feng QUALIFIED
Rodrigues P IturbideUnited KingdomStephen Shaw RENEWAL
David U RoysterSpainIoni Bowcher UNQUALIFIED
Nicolas G NestleBrazilAnna Fali NEGOTIATION
Arvin Z SlusarskiSpainIoni Bowcher RENEWAL
Greenwood U RulapaughArgentinaOnyama Limba PROPOSAL
Mujtaba U BriddickArgentinaAsiya Javayant NEGOTIATION
Kaitlin X VenereGermanyIvan Magalhaes NEW
Rodrigues L FollerSpainIoni Bowcher NEGOTIATION
Munro W KolmetzGermanyAmy Elsner NEW
Kadeem T BologniaUnited KingdomAmy Elsner PROPOSAL
Francesco K PoquetteCanadaElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Murillo M OldroydFranceXuxue Feng PROPOSAL
Greenwood Y RulapaughIndiaIoni Bowcher QUALIFIED
Isabel L OldroydBrazilAnna Fali NEW
James Z RulapaughAustraliaAnna Fali PROPOSAL
Ricardo K SchemmerFranceAmy Elsner NEGOTIATION
Smith O PaprockiItalyElwin Sharvill QUALIFIED
Greenwood D WhobreyAustraliaAsiya Javayant NEW
Chavez X FollerJapanBernardo Dominic PROPOSAL
Julie G FigeroaIndiaXuxue Feng QUALIFIED
Jones S FlosiIndiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba W ChuiRussia2025-05-25Dorl, James J Esq NEW20Onyama Limba
1001Cody G BriddickItaly2025-05-23Feiner Bros UNQUALIFIED18Ioni Bowcher
1002Isabel C CaudyUnited Kingdom2025-06-06Buckley Miller Wright RENEWAL15Ioni Bowcher
1003Izzy O ButtIndia2025-06-07Feiner Bros RENEWAL17Ivan Magalhaes
1004Claire K DilliardJapan2025-05-29Morlong Associates RENEWAL71Ivan Magalhaes
1005Francesco J NickaSpain2025-05-24Morlong Associates NEGOTIATION45Amy Elsner
1006Silvio K StockhamSpain2025-06-06Rousseaux, Michael Esq PROPOSAL89Onyama Limba
1007Chavez F GlickBrazil2025-06-08Chemel, James L Cpa QUALIFIED82Asiya Javayant
1008Smith R WhobreyRussia2025-05-30Buckley Miller Wright UNQUALIFIED31Asiya Javayant
1009Francesco S SlusarskiItaly2025-06-08Chemel, James L Cpa NEGOTIATION91Ivan Magalhaes
1010Rodrigues Q WieserJapan2025-05-21Rousseaux, Michael Esq RENEWAL68Amy Elsner
1011Octavia V MarrierAustralia2025-06-09Benton, John B Jr QUALIFIED35Stephen Shaw
1012Silvio Q WaycottArgentina2025-06-03Benton, John B Jr QUALIFIED85Xuxue Feng
1013Wickens S PaprockiSpain2025-05-20Dorl, James J Esq RENEWAL68Anna Fali
1014Jeanfrancois G ShinkoIndia2025-06-13Chanay, Jeffrey A Esq RENEWAL56Xuxue Feng
1015Misaki M DilliardUnited Kingdom2025-06-08Benton, John B Jr PROPOSAL54Anna Fali
1016Stacey V SaylorsUnited Kingdom2025-05-29Buckley Miller Wright PROPOSAL74Elwin Sharvill
1017Murillo J MarrierSpain2025-05-27Rousseaux, Michael Esq NEW12Bernardo Dominic
1018Munro O GillianAustralia2025-05-26Dorl, James J Esq PROPOSAL8Amy Elsner
1019Stacey C BologniaJapan2025-06-10King, Christopher A Esq QUALIFIED7Ivan Magalhaes
1020Ricardo B CampainGermany2025-05-19Commercial Press RENEWAL78Ivan Magalhaes
1021Juan B KolmetzBrazil2025-06-02Feltz Printing Service PROPOSAL80Xuxue Feng
1022Leon A FerenczSpain2025-06-06Printing Dimensions NEW86Onyama Limba
1023Francesco H AlbaresCanada2025-05-24Feltz Printing Service UNQUALIFIED89Amy Elsner
1024Faith F IturbideAustralia2025-06-13Truhlar And Truhlar Attys PROPOSAL63Elwin Sharvill
1025Misaki W GlickArgentina2025-05-22King, Christopher A Esq UNQUALIFIED89Ivan Magalhaes
1026Munro L BologniaRussia2025-06-11Buckley Miller Wright NEW62Asiya Javayant
1027Darci K GarufiJapan2025-05-25Feltz Printing Service PROPOSAL10Anna Fali
1028Leon J CaldareraJapan2025-06-08Chemel, James L Cpa UNQUALIFIED41Xuxue Feng
1029Clifford T SaylorsCanada2025-05-20Dorl, James J Esq UNQUALIFIED45Amy Elsner
1030Greenwood T SergiFrance2025-06-02Chanay, Jeffrey A Esq QUALIFIED99Xuxue Feng
1031Chavez O FlosiFrance2025-05-28Chanay, Jeffrey A Esq NEW81Onyama Limba
1032Isabel Z BowleyUnited Kingdom2025-06-08Chapman, Ross E Esq PROPOSAL69Elwin Sharvill
1033Silvio R StockhamRussia2025-06-09Chemel, James L Cpa QUALIFIED37Anna Fali
1034Aditya B VenereGermany2025-05-31Buckley Miller Wright QUALIFIED27Amy Elsner
1035Chavez G KolmetzFrance2025-05-31Rousseaux, Michael Esq QUALIFIED72Ivan Magalhaes
1036Julie E StockhamFrance2025-06-08Dorl, James J Esq UNQUALIFIED13Xuxue Feng
1037Wickens A CampainArgentina2025-06-02Rousseaux, Michael Esq PROPOSAL18Ioni Bowcher
1038Maisha T GarufiRussia2025-06-12Truhlar And Truhlar Attys NEW26Asiya Javayant
1039Munro U FigeroaAustralia2025-06-13Rousseaux, Michael Esq UNQUALIFIED36Onyama Limba
1040Morrow P PoquetteCanada2025-06-12Morlong Associates RENEWAL46Onyama Limba
1041Ivar L GarufiUnited Kingdom2025-05-28Morlong Associates UNQUALIFIED43Onyama Limba
1042Alejandro E SergiAustralia2025-06-03Feiner Bros NEW42Ivan Magalhaes
1043Leon O VenereCanada2025-05-29Commercial Press UNQUALIFIED72Amy Elsner
1044Rodrigues T DoeUnited Kingdom2025-05-31Rangoni Of Florence UNQUALIFIED60Onyama Limba
1045Darci R MaletIndia2025-06-02Chemel, James L Cpa NEW21Stephen Shaw
1046Darci H GlickItaly2025-05-25Chemel, James L Cpa NEW37Onyama Limba
1047Antonio A FlosiUnited Kingdom2025-06-14Morlong Associates QUALIFIED92Onyama Limba
1048Smith N MarrierJapan2025-05-25Feltz Printing Service PROPOSAL39Ivan Magalhaes
1049Munro I FigeroaArgentina2025-06-14Chapman, Ross E Esq RENEWAL8Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin B GarufiAustraliaOnyama Limba PROPOSAL
Clifford B InouyeFranceBernardo Dominic QUALIFIED
Aruna G FlosiUnited KingdomIoni Bowcher NEGOTIATION
Leon R StockhamItalyAsiya Javayant PROPOSAL
Octavia W MacleadBrazilIvan Magalhaes NEW
Faith F GillianAustraliaAnna Fali NEGOTIATION
Aika S VenereItalyStephen Shaw QUALIFIED
Juan N ButtGermanyAmy Elsner RENEWAL
Mujtaba Z GauchoItalyIoni Bowcher UNQUALIFIED
Isabel M ShinkoBrazilAsiya Javayant UNQUALIFIED
Mujtaba B ChuiIndiaAnna Fali PROPOSAL
Isabel A ButtFranceAsiya Javayant NEGOTIATION
Chavez I CaudyUnited KingdomIvan Magalhaes QUALIFIED
Deepesh A RoysterItalyAnna Fali RENEWAL
Emily V SchemmerFranceElwin Sharvill UNQUALIFIED
Munro L FerenczBrazilIvan Magalhaes QUALIFIED
Adams A SaylorsFranceXuxue Feng NEGOTIATION
Tony U RimAustraliaBernardo Dominic QUALIFIED
Maisha S FollerGermanyStephen Shaw RENEWAL
Alejandro B SchemmerUnited KingdomXuxue Feng QUALIFIED
Maria R BologniaArgentinaElwin Sharvill QUALIFIED
Kadeem A SchemmerBrazilAnna Fali RENEWAL
Kaitlin E StockhamUnited KingdomAnna Fali QUALIFIED
Claire M KolmetzRussiaAsiya Javayant QUALIFIED
Silvio Q WaycottFranceAnna Fali UNQUALIFIED
Claire W MaletFranceXuxue Feng RENEWAL
Julie I GauchoAustraliaAsiya Javayant RENEWAL
Arvin B MaletItalyOnyama Limba NEW
Clifford U FlosiGermanyIoni Bowcher QUALIFIED
Clifford B SaylorsIndiaBernardo Dominic NEW
Sinclair Z VenereSpainElwin Sharvill NEW
Jennifer M NestleAustraliaOnyama Limba NEW
Aika R PerinUnited KingdomElwin Sharvill QUALIFIED
Wickens H NickaSpainAmy Elsner NEGOTIATION
Ashley I PoquetteBrazilOnyama Limba PROPOSAL
Julie D RutaUnited KingdomAnna Fali RENEWAL
Leon O ShinkoBrazilBernardo Dominic UNQUALIFIED
Claire A NestleArgentinaOnyama Limba RENEWAL
Stacey C BologniaRussiaElwin Sharvill RENEWAL
Johnson F IturbideItalyIoni Bowcher UNQUALIFIED
Tony R InouyeCanadaAnna Fali NEGOTIATION
Jeanfrancois U FerenczItalyXuxue Feng NEW
Jones F BowleyJapanElwin Sharvill PROPOSAL
David K CampainAustraliaAmy Elsner UNQUALIFIED
Tony F FerenczGermanyStephen Shaw NEW
Rodrigues F VenereItalyAmy Elsner PROPOSAL
Arvin V FigeroaFranceAsiya Javayant NEGOTIATION
Clifford X FlosiUnited KingdomStephen Shaw QUALIFIED
Jefferson B MaletItalyStephen Shaw RENEWAL
Izzy B BologniaGermanyBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Johnson J Paprocki
Claire M Inouye
Cody N Whobrey
Ricardo S Foller
Wickens Y Schemmer
Aika U Stockham
Salvatore W Briddick
Leon Y Nestle
James A Glick
Leja R Campain
Johnson Q Oldroyd
Jefferson W Flosi
Chavez H Gaucho
Emily Y Flosi
Isabel M Iturbide
Costa K Chui
Kaitlin L Garufi
Costa R Shinko
Chavez Z Tollner
Ricardo R Ostrosky
Emily O Nicka
Emily P Tollner
Izzy Z Bowley
Cody D Oldroyd
Murillo L Malet
Julie U Glick
Kadeem W Rulapaugh
Arvin R Nicka
Jeanfrancois T Briddick
Kadeem S Figeroa
Francesco C Waycott
Kadeem A Oldroyd
Mujtaba X Albares
Alejandro F Gaucho
David C Saylors
Jefferson L Stenseth
Wickens Z Venere
Munro X Briddick
Jeanfrancois A Caudy
Deepesh R Saylors
Claire I Flosi
Stacey R Wieser
Munro R Gaucho
Kaitlin Z Royster
Mujtaba C Caudy
Silvio D Doe
Ricardo R Ferencz
Mujtaba C Poquette
Aruna O Gaucho
Deepesh V Inouye
IdCountryDate
1000Italy2025-06-15
1001Canada2025-05-27
1002Japan2025-06-11
1003Germany2025-05-26
1004India2025-05-31
1005Italy2025-05-29
1006Canada2025-05-28
1007India2025-06-13
1008India2025-05-25
1009Japan2025-06-15
1010France2025-06-12
1011Australia2025-06-11
1012Spain2025-06-07
1013Russia2025-06-03
1014India2025-05-28
1015Spain2025-05-27
1016Italy2025-06-09
1017Argentina2025-06-14
1018Italy2025-06-07
1019France2025-05-22
1020Germany2025-05-19
1021Italy2025-05-29
1022Brazil2025-06-08
1023India2025-05-23
1024Japan2025-06-14
1025India2025-06-09
1026Spain2025-05-23
1027Spain2025-05-20
1028Argentina2025-06-01
1029Japan2025-05-22
1030Russia2025-06-14
1031Brazil2025-05-25
1032Spain2025-06-08
1033Spain2025-06-09
1034Russia2025-05-31
1035Argentina2025-05-18
1036France2025-05-20
1037Russia2025-06-11
1038Italy2025-05-27
1039Brazil2025-06-02
1040Japan2025-05-31
1041Australia2025-06-16
1042Spain2025-06-12
1043Russia2025-06-01
1044Canada2025-05-20
1045France2025-05-19
1046Spain2025-05-25
1047Brazil2025-05-20
1048Italy2025-06-01
1049Russia2025-05-24

On-Demand Data

NameIdCountryDate
James L Iturbide1000Spain2025-05-21
Ivar G Albares1001Italy2025-05-19
Munro T Rulapaugh1002Spain2025-05-28
Mujtaba M Albares1003United Kingdom2025-05-20
Leon L Darakjy1004United Kingdom2025-06-05
James G Campain1005Japan2025-06-09
Tony B Amigon1006United Kingdom2025-06-13
Stacey K Darakjy1007Italy2025-06-16
Emily F Ferencz1008Germany2025-06-16
James Y Maclead1009Russia2025-06-07
Clifford R Figeroa1010France2025-06-16
Octavia M Amigon1011Spain2025-05-28
Sinclair C Royster1012Canada2025-05-31
Ricardo J Waycott1013Canada2025-06-10
Kaitlin F Glick1014Brazil2025-06-02
Kadeem E Poquette1015Germany2025-06-05
Emily D Saylors1016Brazil2025-05-18
Mayumi I Albares1017Argentina2025-05-21
Octavia M Poquette1018India2025-05-30
Darci M Inouye1019France2025-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily C AmigonCanadaElwin Sharvill UNQUALIFIED
Aruna M FollerIndiaAmy Elsner RENEWAL
Maisha A RoysterIndiaAsiya Javayant NEGOTIATION
Sinclair B NestleSpainXuxue Feng NEGOTIATION
Leja Y SlusarskiJapanXuxue Feng UNQUALIFIED
Stacey S StensethFranceBernardo Dominic NEW
Darci S MarrierUnited KingdomOnyama Limba NEGOTIATION
Stacey W SlusarskiSpainOnyama Limba RENEWAL
Kaitlin X OstroskyUnited KingdomXuxue Feng NEGOTIATION
Mayumi H RutaIndiaIvan Magalhaes UNQUALIFIED
Murillo X CaldareraBrazilXuxue Feng PROPOSAL
Arvin P FerenczGermanyAnna Fali NEW
Juan B WhobreySpainAsiya Javayant RENEWAL
Jones T DarakjyIndiaAmy Elsner RENEWAL
Emily A BriddickJapanAsiya Javayant PROPOSAL
Leon B FigeroaGermanyStephen Shaw RENEWAL
Deepesh N NickaSpainXuxue Feng NEW
Clifford B StockhamAustraliaAsiya Javayant UNQUALIFIED
David V ShinkoItalyBernardo Dominic PROPOSAL
Alejandro W DarakjyUnited KingdomElwin Sharvill RENEWAL
Isabel N InouyeCanadaAnna Fali PROPOSAL
Salvatore I GauchoBrazilStephen Shaw NEGOTIATION
Maria E CaudyFranceAsiya Javayant NEW
Mayumi W PaprockiCanadaIvan Magalhaes RENEWAL
Leon L SchemmerArgentinaElwin Sharvill NEGOTIATION
Nicolas S SchemmerArgentinaIoni Bowcher NEGOTIATION
Smith G MaletArgentinaXuxue Feng NEW
Jennifer K VocelkaGermanyAmy Elsner NEGOTIATION
Stacey E BowleyAustraliaAnna Fali NEGOTIATION
Maisha J GlickJapanAnna Fali PROPOSAL
Jefferson T GillianCanadaOnyama Limba PROPOSAL
Aruna X StensethAustraliaBernardo Dominic QUALIFIED
Ashley F StensethItalyXuxue Feng UNQUALIFIED
Antonio C FigeroaJapanAnna Fali RENEWAL
David V AmigonCanadaIoni Bowcher PROPOSAL
Faith X KuskoFranceStephen Shaw QUALIFIED
Munro L RoysterIndiaAsiya Javayant NEW
Greenwood Y ButtUnited KingdomXuxue Feng QUALIFIED
Alejandro Q KuskoJapanBernardo Dominic UNQUALIFIED
Isabel B DilliardCanadaAnna Fali NEGOTIATION

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