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
Salvatore M StockhamCanadaBernardo Dominic NEW
Deepesh W OstroskyIndiaElwin Sharvill PROPOSAL
Aika J SlusarskiArgentinaElwin Sharvill RENEWAL
Cody A NestleAustraliaBernardo Dominic PROPOSAL
Morrow D AlbaresSpainAsiya Javayant QUALIFIED
Leja Z DilliardRussiaXuxue Feng QUALIFIED
Aika S RoysterIndiaIoni Bowcher QUALIFIED
Ricardo M KolmetzArgentinaStephen Shaw PROPOSAL
Johnson D InouyeGermanyAmy Elsner UNQUALIFIED
Silvio E BowleyCanadaAnna Fali PROPOSAL
Salvatore H TollnerArgentinaAnna Fali RENEWAL
Clifford V MorascaItalyIvan Magalhaes NEGOTIATION
Jefferson T GillianAustraliaXuxue Feng PROPOSAL
Leon I FigeroaFranceBernardo Dominic NEGOTIATION
Clifford Z CaldareraUnited KingdomIoni Bowcher PROPOSAL
Aika N MacleadFranceStephen Shaw NEW
Leja P GarufiAustraliaAsiya Javayant RENEWAL
Faith M SaylorsArgentinaElwin Sharvill QUALIFIED
Maria A NestleItalyAsiya Javayant RENEWAL
Nicolas E RoysterJapanAnna Fali QUALIFIED
Leon V GarufiFranceBernardo Dominic NEW
Ricardo Q MaletJapanStephen Shaw NEW
Johnson I ShinkoIndiaBernardo Dominic NEGOTIATION
Leon A MaletBrazilIoni Bowcher RENEWAL
Isabel J GauchoAustraliaStephen Shaw QUALIFIED
Jefferson X MarrierRussiaXuxue Feng NEW
Johnson Q GarufiItalyAmy Elsner NEW
Ricardo Y InouyeUnited KingdomOnyama Limba NEGOTIATION
Maria C OstroskyRussiaIvan Magalhaes NEGOTIATION
David A ButtBrazilBernardo Dominic RENEWAL
Chavez N OstroskyGermanyBernardo Dominic NEGOTIATION
Wickens Q PerinArgentinaIoni Bowcher NEGOTIATION
Jefferson I GillianUnited KingdomAmy Elsner NEGOTIATION
Nicolas Y BologniaCanadaAmy Elsner NEW
Rodrigues A BologniaIndiaIvan Magalhaes PROPOSAL
Johnson W FlosiIndiaAmy Elsner QUALIFIED
Aika D GauchoUnited KingdomBernardo Dominic NEGOTIATION
Nicolas G FigeroaUnited KingdomIvan Magalhaes NEGOTIATION
Aika U TollnerBrazilIvan Magalhaes PROPOSAL
Ricardo D FigeroaJapanAsiya Javayant NEW
Alejandro X GauchoArgentinaAnna Fali RENEWAL
Octavia U RutaArgentinaBernardo Dominic QUALIFIED
Leja P PerinIndiaOnyama Limba NEGOTIATION
James S WhobreyJapanElwin Sharvill UNQUALIFIED
Misaki E PoquetteArgentinaAnna Fali PROPOSAL
Stacey X SlusarskiSpainElwin Sharvill RENEWAL
Francesco B AlbaresFranceAsiya Javayant UNQUALIFIED
Tony D StensethUnited KingdomAmy Elsner NEGOTIATION
Rodrigues A NestleUnited KingdomOnyama Limba PROPOSAL
Aika Y RutaArgentinaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa G SaylorsItalyIvan Magalhaes PROPOSAL
Smith F RulapaughJapanBernardo Dominic UNQUALIFIED
Chavez E GauchoCanadaStephen Shaw PROPOSAL
Morrow F TollnerFranceAsiya Javayant QUALIFIED
Mayumi S BriddickItalyStephen Shaw PROPOSAL
Francesco L RulapaughGermanyAsiya Javayant NEW
Octavia G ChuiGermanyIvan Magalhaes NEGOTIATION
Faith M FlosiRussiaAnna Fali RENEWAL
Munro H VenereGermanyIoni Bowcher NEGOTIATION
Chavez A BowleyGermanyAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues X DarakjySpain2025-05-17Chemel, James L Cpa UNQUALIFIED65Stephen Shaw
1001Wickens K OstroskyArgentina2025-05-17Rousseaux, Michael Esq PROPOSAL35Bernardo Dominic
1002Clifford W NestleFrance2025-05-29Commercial Press RENEWAL82Anna Fali
1003Chavez B CampainCanada2025-06-08Chemel, James L Cpa NEW47Ivan Magalhaes
1004Johnson V MorascaGermany2025-05-20Chapman, Ross E Esq UNQUALIFIED48Anna Fali
1005Costa V ShinkoRussia2025-05-24Dorl, James J Esq NEGOTIATION61Elwin Sharvill
1006Munro E SergiUnited Kingdom2025-05-23Chapman, Ross E Esq PROPOSAL84Xuxue Feng
1007Deepesh A SchemmerBrazil2025-06-14Benton, John B Jr QUALIFIED93Asiya Javayant
1008Jones K TollnerIndia2025-06-15Commercial Press UNQUALIFIED90Ioni Bowcher
1009Emily P WieserRussia2025-06-06Printing Dimensions NEGOTIATION39Asiya Javayant
1010Izzy X WhobreyCanada2025-05-26Commercial Press PROPOSAL90Onyama Limba
1011Salvatore J VenereArgentina2025-05-17Chemel, James L Cpa PROPOSAL63Asiya Javayant
1012Mayumi V DilliardGermany2025-05-19Feiner Bros RENEWAL90Onyama Limba
1013Ivar F IturbideFrance2025-05-21Printing Dimensions NEGOTIATION45Amy Elsner
1014Leon E NickaArgentina2025-05-20Commercial Press NEW35Asiya Javayant
1015Stacey Y PaprockiBrazil2025-05-26Chapman, Ross E Esq QUALIFIED18Amy Elsner
1016Sinclair G TollnerGermany2025-05-29Buckley Miller Wright QUALIFIED71Bernardo Dominic
1017Johnson D DilliardSpain2025-05-26Feiner Bros NEW17Xuxue Feng
1018Claire E GarufiRussia2025-05-31Feiner Bros PROPOSAL83Bernardo Dominic
1019Aruna V RimFrance2025-06-11Truhlar And Truhlar Attys QUALIFIED75Ivan Magalhaes
1020Kaitlin W FigeroaFrance2025-05-21King, Christopher A Esq NEW95Onyama Limba
1021James F BriddickAustralia2025-05-19Commercial Press QUALIFIED32Amy Elsner
1022Maisha T RulapaughAustralia2025-06-12Commercial Press NEGOTIATION34Ivan Magalhaes
1023David V FigeroaSpain2025-05-18Commercial Press RENEWAL4Asiya Javayant
1024Tony T GarufiSpain2025-05-29Rousseaux, Michael Esq UNQUALIFIED34Asiya Javayant
1025Chavez I WaycottSpain2025-06-09Truhlar And Truhlar Attys RENEWAL20Bernardo Dominic
1026Smith X FerenczUnited Kingdom2025-05-28Buckley Miller Wright RENEWAL44Amy Elsner
1027Rodrigues G OstroskyBrazil2025-05-20King, Christopher A Esq NEW11Elwin Sharvill
1028Jeanfrancois D SergiJapan2025-05-21Commercial Press NEW98Elwin Sharvill
1029Munro C BowleyJapan2025-06-15Commercial Press NEW7Onyama Limba
1030Jennifer U DarakjyArgentina2025-06-11Buckley Miller Wright PROPOSAL86Anna Fali
1031Julie J PoquetteIndia2025-06-10Benton, John B Jr NEGOTIATION47Onyama Limba
1032Jones Y PerinCanada2025-05-19Dorl, James J Esq NEGOTIATION61Bernardo Dominic
1033Salvatore T SlusarskiAustralia2025-06-14Rangoni Of Florence NEGOTIATION64Xuxue Feng
1034Jefferson P TollnerIndia2025-06-02Commercial Press RENEWAL31Anna Fali
1035Darci R NickaBrazil2025-05-20Rousseaux, Michael Esq QUALIFIED61Bernardo Dominic
1036Faith X WhobreyFrance2025-06-12Morlong Associates NEW93Ioni Bowcher
1037Salvatore D BowleyItaly2025-06-08Commercial Press NEW67Asiya Javayant
1038Johnson D CampainCanada2025-05-29Chapman, Ross E Esq NEW18Xuxue Feng
1039Faith D GillianArgentina2025-06-11Truhlar And Truhlar Attys RENEWAL22Elwin Sharvill
1040Greenwood V AlbaresJapan2025-06-14Commercial Press NEGOTIATION42Bernardo Dominic
1041Ashley E GillianGermany2025-06-07Chanay, Jeffrey A Esq RENEWAL58Bernardo Dominic
1042Greenwood M ShinkoItaly2025-06-10Chemel, James L Cpa PROPOSAL5Ivan Magalhaes
1043David U NickaFrance2025-06-08Dorl, James J Esq NEGOTIATION15Ivan Magalhaes
1044Rodrigues C CampainAustralia2025-05-20Chapman, Ross E Esq UNQUALIFIED23Xuxue Feng
1045Mujtaba Y FigeroaSpain2025-05-20King, Christopher A Esq NEW91Xuxue Feng
1046Greenwood N MaletGermany2025-05-31Morlong Associates NEW92Onyama Limba
1047Juan D DoeJapan2025-05-25Feltz Printing Service PROPOSAL43Asiya Javayant
1048Sinclair B CaldareraItaly2025-06-02Printing Dimensions PROPOSAL71Amy Elsner
1049Aruna Q CampainAustralia2025-06-10Printing Dimensions NEGOTIATION57Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Misaki P StockhamBrazilAmy Elsner UNQUALIFIED
Leon K AlbaresGermanyXuxue Feng NEGOTIATION
Sinclair G StensethJapanOnyama Limba NEGOTIATION
Greenwood U FerenczBrazilAnna Fali UNQUALIFIED
Ivar I GillianAustraliaElwin Sharvill UNQUALIFIED
Ricardo B FigeroaGermanyElwin Sharvill UNQUALIFIED
Izzy A GlickJapanBernardo Dominic UNQUALIFIED
Greenwood W PaprockiItalyIoni Bowcher NEGOTIATION
Smith J FigeroaItalyOnyama Limba NEGOTIATION
Rodrigues N StensethGermanyAsiya Javayant QUALIFIED
Deepesh B MorascaFranceAmy Elsner QUALIFIED
Adams Z MaletIndiaStephen Shaw NEW
Aruna K KuskoIndiaIoni Bowcher PROPOSAL
Antonio B DarakjyCanadaAmy Elsner PROPOSAL
Tony D WhobreyCanadaXuxue Feng UNQUALIFIED
James H RulapaughJapanStephen Shaw NEW
Octavia B MacleadGermanyIvan Magalhaes NEW
Misaki B MorascaGermanyBernardo Dominic NEGOTIATION
Mayumi J SergiItalyStephen Shaw QUALIFIED
Morrow G ShinkoItalyStephen Shaw NEW
Octavia C BowleyBrazilXuxue Feng RENEWAL
Antonio M DoeCanadaIvan Magalhaes RENEWAL
Alejandro V WieserCanadaXuxue Feng NEW
Sinclair M DoeGermanyStephen Shaw NEGOTIATION
Juan Q GarufiCanadaStephen Shaw QUALIFIED
Tony M KuskoBrazilIoni Bowcher UNQUALIFIED
Jefferson B PoquetteUnited KingdomBernardo Dominic RENEWAL
David L IturbideAustraliaBernardo Dominic UNQUALIFIED
Jennifer L WhobreyArgentinaStephen Shaw PROPOSAL
Leon G DoeAustraliaXuxue Feng NEW
Leja O VenereItalyIoni Bowcher QUALIFIED
Munro B StockhamCanadaAmy Elsner NEW
Sinclair Q DoeGermanyAsiya Javayant QUALIFIED
Murillo H PoquetteAustraliaIvan Magalhaes NEGOTIATION
Aika K RulapaughFranceAnna Fali UNQUALIFIED
Chavez T KolmetzArgentinaElwin Sharvill QUALIFIED
Ricardo M MarrierAustraliaIvan Magalhaes NEW
Misaki V WieserRussiaBernardo Dominic QUALIFIED
Claire P StockhamSpainIvan Magalhaes UNQUALIFIED
Juan L MaletFranceElwin Sharvill PROPOSAL
Leon I NickaGermanyAnna Fali QUALIFIED
Faith K GlickCanadaBernardo Dominic UNQUALIFIED
Arvin I SlusarskiSpainAnna Fali PROPOSAL
Chavez I AlbaresCanadaIoni Bowcher NEW
Darci U SlusarskiFranceElwin Sharvill NEGOTIATION
Rodrigues W MaletAustraliaBernardo Dominic UNQUALIFIED
Ivar Y CaudyAustraliaIvan Magalhaes NEW
Silvio D ShinkoRussiaIoni Bowcher NEW
Jones Q PoquetteRussiaBernardo Dominic QUALIFIED
Kaitlin P GarufiFranceAsiya Javayant NEGOTIATION
Frozen Columns
Name
Cody Q Flosi
Stacey C Ferencz
Francesco G Whobrey
Izzy N Figeroa
Jeanfrancois L Caldarera
Jones Z Tollner
Juan U Kusko
David Z Gaucho
Isabel B Vocelka
Alejandro S Morasca
Ivar Q Slusarski
Isabel J Figeroa
Alejandro C Rulapaugh
Izzy N Figeroa
Kadeem Q Waycott
James P Garufi
Alejandro Z Malet
James R Oldroyd
Maisha P Garufi
Morrow P Ferencz
Jennifer P Bolognia
Juan A Perin
Cody C Shinko
Leja E Dilliard
Jennifer P Maclead
Nicolas M Butt
Johnson W Bolognia
Octavia I Waycott
Chavez S Shinko
Izzy A Gillian
Deepesh I Caldarera
Jeanfrancois U Whobrey
Salvatore W Butt
Chavez S Figeroa
Cody U Waycott
Stacey R Paprocki
Maria A Nicka
Antonio E Gillian
Julie N Figeroa
Clifford W Ostrosky
Maisha V Sergi
Mujtaba W Kolmetz
Rodrigues R Foller
Darci F Foller
Alejandro R Chui
Jones E Morasca
Juan X Kusko
Adams T Caldarera
Ivar F Morasca
Francesco O Inouye
IdCountryDate
1000India2025-06-11
1001Argentina2025-05-23
1002Brazil2025-05-30
1003Japan2025-05-21
1004Italy2025-05-21
1005Germany2025-05-21
1006Brazil2025-05-23
1007Canada2025-06-03
1008Argentina2025-06-10
1009Spain2025-06-08
1010Australia2025-05-18
1011Australia2025-05-31
1012Brazil2025-06-02
1013Russia2025-05-26
1014Spain2025-05-24
1015France2025-06-13
1016Argentina2025-06-08
1017Germany2025-05-26
1018France2025-06-03
1019Australia2025-05-19
1020France2025-06-01
1021Italy2025-05-25
1022Italy2025-05-17
1023France2025-06-10
1024Japan2025-06-04
1025United Kingdom2025-06-06
1026Australia2025-06-08
1027Argentina2025-06-14
1028India2025-06-08
1029Argentina2025-05-19
1030United Kingdom2025-05-29
1031Spain2025-06-05
1032United Kingdom2025-06-15
1033Australia2025-06-08
1034Brazil2025-05-20
1035Brazil2025-05-21
1036Spain2025-06-10
1037Brazil2025-05-19
1038Russia2025-06-13
1039Brazil2025-06-08
1040Argentina2025-06-08
1041Canada2025-06-06
1042Australia2025-05-21
1043Canada2025-05-18
1044Australia2025-06-11
1045Argentina2025-05-24
1046Spain2025-06-06
1047Brazil2025-05-30
1048Brazil2025-06-10
1049Russia2025-06-07

On-Demand Data

NameIdCountryDate
Isabel A Morasca1000Germany2025-06-12
Cody M Malet1001United Kingdom2025-05-29
Jones R Doe1002Australia2025-05-17
Antonio Y Amigon1003India2025-05-25
Aruna J Bowley1004Italy2025-05-23
Maisha E Shinko1005Argentina2025-06-12
Faith C Oldroyd1006Russia2025-06-01
Kaitlin Y Malet1007India2025-05-22
Kaitlin F Flosi1008France2025-05-23
Izzy S Vocelka1009Argentina2025-05-27
Claire G Poquette1010Australia2025-05-29
Maria Y Schemmer1011Australia2025-05-20
Wickens H Ostrosky1012Canada2025-06-10
Clifford F Rim1013Italy2025-06-04
Murillo L Slusarski1014Italy2025-05-30
Tony P Poquette1015India2025-05-30
Silvio Z Gaucho1016India2025-06-03
Clifford G Maclead1017Spain2025-06-15
Smith L Ostrosky1018Argentina2025-05-29
Sinclair Z Shinko1019Italy2025-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David D OldroydBrazilStephen Shaw NEGOTIATION
Julie Y KuskoSpainElwin Sharvill QUALIFIED
Chavez T FlosiItalyBernardo Dominic RENEWAL
Isabel T ShinkoCanadaStephen Shaw RENEWAL
Octavia D PerinAustraliaElwin Sharvill NEGOTIATION
Adams P CaudyAustraliaIvan Magalhaes NEGOTIATION
Adams E AlbaresGermanyOnyama Limba RENEWAL
Adams R FigeroaFranceElwin Sharvill NEGOTIATION
Deepesh N NickaCanadaElwin Sharvill UNQUALIFIED
Claire H WhobreyFranceXuxue Feng UNQUALIFIED
Julie Z MaletIndiaBernardo Dominic UNQUALIFIED
Jones D OstroskyFranceXuxue Feng PROPOSAL
Kaitlin W RulapaughAustraliaAnna Fali UNQUALIFIED
Darci S PoquetteBrazilIoni Bowcher PROPOSAL
David E KuskoIndiaIoni Bowcher PROPOSAL
Silvio T MacleadFranceIoni Bowcher QUALIFIED
Isabel D VenereItalyStephen Shaw UNQUALIFIED
Aruna T MaletAustraliaAsiya Javayant PROPOSAL
Misaki F RoysterUnited KingdomStephen Shaw NEW
Izzy Z RulapaughSpainOnyama Limba NEW
Murillo R StockhamFranceStephen Shaw PROPOSAL
Aditya L DarakjyJapanIoni Bowcher QUALIFIED
Faith E WhobreyItalyElwin Sharvill UNQUALIFIED
Deepesh E BowleyFranceStephen Shaw QUALIFIED
Maisha S BologniaUnited KingdomBernardo Dominic NEGOTIATION
Clifford Y PoquetteAustraliaBernardo Dominic QUALIFIED
Nicolas Z SaylorsJapanElwin Sharvill NEGOTIATION
Alejandro L RimJapanBernardo Dominic QUALIFIED
Leon M FigeroaArgentinaIoni Bowcher QUALIFIED
Murillo R MacleadAustraliaBernardo Dominic NEGOTIATION
Sinclair F RimArgentinaElwin Sharvill QUALIFIED
Izzy S PerinBrazilAnna Fali PROPOSAL
Ricardo R VocelkaGermanyXuxue Feng NEGOTIATION
Ashley P StockhamUnited KingdomStephen Shaw PROPOSAL
Wickens Q BologniaRussiaAnna Fali NEW
Murillo P VenereUnited KingdomStephen Shaw NEW
Ashley V KuskoFranceStephen Shaw RENEWAL
Arvin X IturbideIndiaXuxue Feng QUALIFIED
Ivar Y RulapaughArgentinaElwin Sharvill RENEWAL
Julie F CampainJapanAmy Elsner 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>