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
Murillo J MaletBrazilElwin Sharvill NEGOTIATION
Jennifer J DilliardRussiaXuxue Feng UNQUALIFIED
Costa Y WieserGermanyAsiya Javayant UNQUALIFIED
Stacey B NestleRussiaElwin Sharvill PROPOSAL
Julie D AmigonGermanyAnna Fali NEW
Emily O VenereArgentinaElwin Sharvill PROPOSAL
Greenwood Q WieserSpainAsiya Javayant UNQUALIFIED
Izzy K SlusarskiIndiaAsiya Javayant QUALIFIED
Greenwood O GarufiFranceIoni Bowcher PROPOSAL
Costa A KolmetzRussiaIvan Magalhaes NEW
Johnson K KolmetzBrazilOnyama Limba PROPOSAL
Darci W CaudyBrazilAnna Fali NEW
Faith H FerenczRussiaElwin Sharvill PROPOSAL
Jennifer A SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues N InouyeUnited KingdomIvan Magalhaes PROPOSAL
Greenwood W DilliardSpainElwin Sharvill RENEWAL
Sinclair T SlusarskiRussiaBernardo Dominic QUALIFIED
Antonio N VocelkaUnited KingdomIoni Bowcher RENEWAL
Julie O FollerIndiaBernardo Dominic NEGOTIATION
Salvatore A PaprockiItalyOnyama Limba PROPOSAL
Octavia X ChuiUnited KingdomAnna Fali RENEWAL
Murillo E MacleadJapanIvan Magalhaes RENEWAL
Juan K SlusarskiAustraliaElwin Sharvill NEW
Maria I OldroydGermanyStephen Shaw UNQUALIFIED
Smith J PaprockiSpainAmy Elsner PROPOSAL
Claire D NickaFranceAnna Fali NEW
Aika H TollnerItalyOnyama Limba QUALIFIED
Stacey V FollerBrazilXuxue Feng PROPOSAL
Kaitlin S BriddickItalyStephen Shaw UNQUALIFIED
Johnson P PerinCanadaAmy Elsner PROPOSAL
Kaitlin S OldroydFranceAnna Fali NEGOTIATION
Johnson S KuskoBrazilAnna Fali NEW
Mayumi K VenereJapanXuxue Feng NEW
David B MacleadUnited KingdomBernardo Dominic NEGOTIATION
Stacey B GauchoItalyIoni Bowcher RENEWAL
Isabel D CaudyCanadaIoni Bowcher NEGOTIATION
Mayumi N KuskoFranceElwin Sharvill PROPOSAL
Kadeem Z ShinkoBrazilAsiya Javayant NEW
Alejandro B CaudyArgentinaAnna Fali NEW
Ricardo M VocelkaAustraliaBernardo Dominic NEGOTIATION
Isabel J ButtIndiaStephen Shaw UNQUALIFIED
Mayumi S GlickBrazilAmy Elsner NEGOTIATION
Emily M FollerBrazilOnyama Limba NEGOTIATION
Leja U SchemmerGermanyAnna Fali UNQUALIFIED
Adams Q GillianItalyBernardo Dominic PROPOSAL
Johnson S NestleJapanIvan Magalhaes NEGOTIATION
Aditya Q MarrierBrazilStephen Shaw RENEWAL
Juan R BriddickUnited KingdomIvan Magalhaes RENEWAL
Francesco G ButtArgentinaIvan Magalhaes PROPOSAL
Ricardo K WieserArgentinaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro N PaprockiJapanIvan Magalhaes NEGOTIATION
Isabel O NickaSpainElwin Sharvill PROPOSAL
Aika R GauchoAustraliaStephen Shaw RENEWAL
Aditya W RulapaughUnited KingdomXuxue Feng QUALIFIED
Costa L CampainIndiaAnna Fali NEGOTIATION
Claire N KuskoFranceBernardo Dominic NEW
Jefferson Q BologniaIndiaElwin Sharvill QUALIFIED
Julie L NestleJapanAsiya Javayant NEW
Maisha D DilliardRussiaElwin Sharvill UNQUALIFIED
Misaki C GauchoJapanIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro Z BologniaSpain2025-05-27Printing Dimensions QUALIFIED63Asiya Javayant
1001Salvatore R AlbaresBrazil2025-05-29Morlong Associates QUALIFIED53Onyama Limba
1002Mujtaba P DoeUnited Kingdom2025-05-31Benton, John B Jr RENEWAL46Xuxue Feng
1003Clifford Z MaletFrance2025-06-03Feltz Printing Service UNQUALIFIED12Asiya Javayant
1004Stacey G VocelkaRussia2025-05-26Morlong Associates NEGOTIATION3Anna Fali
1005Wickens L BologniaAustralia2025-05-22King, Christopher A Esq RENEWAL13Elwin Sharvill
1006Julie P WaycottFrance2025-06-08Rangoni Of Florence RENEWAL0Asiya Javayant
1007Misaki D SlusarskiGermany2025-05-27Commercial Press UNQUALIFIED45Xuxue Feng
1008Mayumi Z FollerArgentina2025-05-25Truhlar And Truhlar Attys NEW86Ioni Bowcher
1009Costa O PerinSpain2025-05-22Dorl, James J Esq QUALIFIED89Stephen Shaw
1010Emily E SlusarskiArgentina2025-05-27Buckley Miller Wright UNQUALIFIED82Ivan Magalhaes
1011David H WhobreyJapan2025-05-28Chemel, James L Cpa PROPOSAL84Ivan Magalhaes
1012Isabel X SergiAustralia2025-05-20Benton, John B Jr UNQUALIFIED40Elwin Sharvill
1013Ricardo Q WhobreyGermany2025-06-01Truhlar And Truhlar Attys RENEWAL72Stephen Shaw
1014Jennifer L CampainFrance2025-06-08Rousseaux, Michael Esq UNQUALIFIED91Xuxue Feng
1015Leja J VenereIndia2025-05-20Commercial Press QUALIFIED39Bernardo Dominic
1016Faith T BologniaBrazil2025-05-30Buckley Miller Wright UNQUALIFIED79Bernardo Dominic
1017Leon Q PoquetteBrazil2025-05-20Chapman, Ross E Esq NEW36Anna Fali
1018Stacey E PaprockiBrazil2025-06-09Buckley Miller Wright QUALIFIED56Amy Elsner
1019Murillo O VenereRussia2025-06-10Feltz Printing Service NEW19Onyama Limba
1020Sinclair N WhobreyRussia2025-05-19Commercial Press QUALIFIED9Bernardo Dominic
1021Jefferson Y PaprockiItaly2025-06-06Truhlar And Truhlar Attys UNQUALIFIED13Elwin Sharvill
1022Tony U WhobreySpain2025-06-10Chemel, James L Cpa PROPOSAL59Amy Elsner
1023Mayumi C DilliardItaly2025-06-14Rangoni Of Florence NEW52Xuxue Feng
1024Emily A GillianRussia2025-06-12Buckley Miller Wright RENEWAL96Amy Elsner
1025Leon Z SlusarskiUnited Kingdom2025-05-26Morlong Associates PROPOSAL42Anna Fali
1026Sinclair X NickaItaly2025-06-15King, Christopher A Esq NEGOTIATION74Stephen Shaw
1027Nicolas B PoquetteAustralia2025-05-24Truhlar And Truhlar Attys QUALIFIED70Elwin Sharvill
1028Kaitlin T RimFrance2025-05-26Printing Dimensions QUALIFIED34Anna Fali
1029Maisha R FigeroaIndia2025-05-22Rousseaux, Michael Esq NEGOTIATION34Xuxue Feng
1030Leja T GarufiUnited Kingdom2025-06-12Morlong Associates QUALIFIED6Amy Elsner
1031Aika Q FigeroaIndia2025-05-26Dorl, James J Esq NEGOTIATION6Xuxue Feng
1032Aika C MaletAustralia2025-06-01Buckley Miller Wright QUALIFIED75Elwin Sharvill
1033Leja K BologniaRussia2025-05-31Commercial Press NEW41Ivan Magalhaes
1034Cody Z MacleadJapan2025-06-04Truhlar And Truhlar Attys PROPOSAL29Elwin Sharvill
1035Clifford W ButtBrazil2025-05-24Benton, John B Jr NEGOTIATION91Bernardo Dominic
1036Johnson Z MacleadSpain2025-05-23Rangoni Of Florence NEGOTIATION54Ioni Bowcher
1037Aditya Y CampainJapan2025-05-31King, Christopher A Esq NEW14Xuxue Feng
1038Francesco O ButtIndia2025-06-03Chemel, James L Cpa NEW25Stephen Shaw
1039Adams K CampainUnited Kingdom2025-06-03Chemel, James L Cpa NEGOTIATION45Ioni Bowcher
1040Deepesh C SaylorsFrance2025-05-27Truhlar And Truhlar Attys UNQUALIFIED56Asiya Javayant
1041Greenwood V BriddickJapan2025-05-22Printing Dimensions NEW35Onyama Limba
1042James M SergiFrance2025-05-29Chemel, James L Cpa QUALIFIED25Bernardo Dominic
1043Ivar N OldroydSpain2025-05-25Buckley Miller Wright RENEWAL8Onyama Limba
1044Aruna K ShinkoCanada2025-06-08Dorl, James J Esq NEW58Bernardo Dominic
1045Costa J RulapaughBrazil2025-05-31Buckley Miller Wright UNQUALIFIED31Asiya Javayant
1046Leon X MaletJapan2025-06-14Chemel, James L Cpa NEGOTIATION80Ioni Bowcher
1047Alejandro P InouyeArgentina2025-05-21Dorl, James J Esq UNQUALIFIED63Onyama Limba
1048Tony G FollerGermany2025-05-20Benton, John B Jr RENEWAL18Onyama Limba
1049James B InouyeIndia2025-05-25Printing Dimensions UNQUALIFIED97Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Juan K TollnerUnited KingdomStephen Shaw UNQUALIFIED
Maria Y AmigonItalyAnna Fali PROPOSAL
Faith W AmigonGermanyElwin Sharvill QUALIFIED
Morrow B DilliardItalyOnyama Limba UNQUALIFIED
Chavez V MaletJapanStephen Shaw PROPOSAL
Julie Y RimRussiaOnyama Limba RENEWAL
Aruna N PaprockiSpainAnna Fali UNQUALIFIED
Wickens E MorascaJapanAnna Fali QUALIFIED
Antonio U PoquetteCanadaStephen Shaw QUALIFIED
Aruna N KolmetzCanadaIvan Magalhaes NEGOTIATION
Faith I MorascaAustraliaAnna Fali NEGOTIATION
Jefferson T MorascaBrazilAnna Fali PROPOSAL
Cody D BriddickIndiaAnna Fali UNQUALIFIED
Ricardo U PoquetteFranceAsiya Javayant PROPOSAL
Ivar C GarufiArgentinaIvan Magalhaes UNQUALIFIED
Maisha J DoeUnited KingdomIoni Bowcher NEGOTIATION
Claire D ShinkoBrazilOnyama Limba QUALIFIED
Morrow M VenereFranceAsiya Javayant NEGOTIATION
Tony S ChuiAustraliaElwin Sharvill PROPOSAL
Misaki M RoysterGermanyIvan Magalhaes NEGOTIATION
Jones B BowleyGermanyElwin Sharvill NEGOTIATION
Munro J BriddickCanadaAmy Elsner QUALIFIED
Murillo Z CaudyFranceXuxue Feng NEGOTIATION
Costa P BriddickIndiaStephen Shaw RENEWAL
Cody M RutaSpainOnyama Limba RENEWAL
Morrow Y PoquetteCanadaAnna Fali NEW
Rodrigues R MorascaGermanyIvan Magalhaes NEW
Aditya P FigeroaUnited KingdomAmy Elsner QUALIFIED
Alejandro Y PerinSpainAnna Fali UNQUALIFIED
Claire A MaletBrazilAmy Elsner NEW
Jones D OldroydCanadaIoni Bowcher UNQUALIFIED
Smith F TollnerBrazilIvan Magalhaes NEW
Cody Z StensethGermanyAnna Fali PROPOSAL
Cody Y FigeroaSpainIoni Bowcher NEGOTIATION
Nicolas A SchemmerGermanyIoni Bowcher RENEWAL
Jones M MacleadSpainIoni Bowcher PROPOSAL
Salvatore D StensethUnited KingdomIoni Bowcher NEW
Mujtaba N KuskoUnited KingdomOnyama Limba PROPOSAL
Johnson C StensethArgentinaStephen Shaw PROPOSAL
Julie K MorascaUnited KingdomOnyama Limba UNQUALIFIED
Ricardo B StensethSpainAnna Fali PROPOSAL
Mayumi J NestleSpainIoni Bowcher UNQUALIFIED
Chavez Z OldroydSpainBernardo Dominic RENEWAL
Rodrigues N BriddickUnited KingdomAnna Fali NEW
Aika S BologniaJapanOnyama Limba NEW
Tony W SlusarskiIndiaAnna Fali NEW
Darci F NestleJapanIoni Bowcher RENEWAL
James E KuskoFranceElwin Sharvill QUALIFIED
Octavia U StockhamUnited KingdomIoni Bowcher NEW
Faith A DarakjyRussiaAsiya Javayant QUALIFIED
Frozen Columns
Name
Smith X Gaucho
Salvatore U Morasca
Ivar Q Stockham
Darci U Ostrosky
Leja P Caldarera
Johnson Z Royster
Leja D Schemmer
Ivar N Rim
Jones R Venere
Faith V Stockham
David W Gillian
Maria P Caldarera
Isabel B Bowley
Smith G Darakjy
Aditya P Wieser
Cody H Shinko
Chavez W Gaucho
Aruna A Kolmetz
Isabel G Poquette
Wickens B Marrier
Jones M Morasca
Sinclair V Inouye
Silvio N Ostrosky
Silvio R Foller
Juan Y Oldroyd
Stacey O Gaucho
Jennifer Y Whobrey
Stacey P Garufi
Darci M Waycott
James D Foller
Misaki Q Perin
Kadeem R Glick
Francesco K Oldroyd
Claire C Campain
Alejandro Y Malet
Alejandro V Saylors
Ivar X Stenseth
Ivar P Slusarski
Stacey M Saylors
Leja N Shinko
Ricardo J Inouye
Silvio R Amigon
Adams U Briddick
Emily I Sergi
Leon X Gaucho
Alejandro T Rim
Deepesh J Flosi
Costa C Whobrey
Jennifer P Rim
Chavez X Figeroa
IdCountryDate
1000Japan2025-06-07
1001Australia2025-06-13
1002Canada2025-06-16
1003Germany2025-05-27
1004Italy2025-05-18
1005Japan2025-06-12
1006United Kingdom2025-05-19
1007France2025-06-09
1008France2025-06-14
1009Russia2025-05-30
1010Spain2025-06-01
1011Germany2025-06-11
1012Germany2025-06-11
1013Spain2025-06-10
1014Russia2025-05-31
1015Argentina2025-05-30
1016India2025-05-31
1017Spain2025-06-02
1018India2025-05-24
1019Italy2025-06-12
1020Germany2025-06-05
1021United Kingdom2025-05-24
1022Argentina2025-05-18
1023Canada2025-05-26
1024Argentina2025-05-25
1025Japan2025-06-03
1026Germany2025-06-03
1027India2025-05-29
1028Argentina2025-05-31
1029India2025-05-21
1030Japan2025-05-31
1031Canada2025-06-08
1032Germany2025-06-01
1033Russia2025-05-29
1034India2025-06-01
1035Australia2025-06-01
1036Australia2025-06-04
1037Spain2025-05-25
1038Canada2025-05-18
1039Canada2025-05-21
1040Argentina2025-06-09
1041Russia2025-06-07
1042Russia2025-05-18
1043France2025-05-25
1044Italy2025-06-10
1045Argentina2025-06-01
1046Japan2025-06-12
1047Germany2025-06-09
1048Japan2025-05-29
1049Japan2025-06-02

On-Demand Data

NameIdCountryDate
Clifford V Saylors1000Canada2025-05-31
Isabel Y Sergi1001Spain2025-05-27
Munro B Saylors1002United Kingdom2025-05-22
Rodrigues C Vocelka1003Germany2025-06-06
Aika V Amigon1004France2025-06-11
Jennifer Q Schemmer1005Canada2025-06-03
Morrow H Rulapaugh1006Germany2025-05-21
Jeanfrancois Q Amigon1007Argentina2025-06-05
Chavez H Malet1008Italy2025-06-07
Faith K Briddick1009Spain2025-06-16
Munro P Kusko1010Brazil2025-06-10
Leon C Inouye1011India2025-05-21
Ivar G Maclead1012Brazil2025-06-15
Murillo I Iturbide1013Canada2025-06-11
Maisha N Ferencz1014Argentina2025-05-24
Clifford A Nicka1015Canada2025-05-31
Kaitlin O Ostrosky1016France2025-06-16
Maria V Rulapaugh1017France2025-06-12
Morrow H Bolognia1018Germany2025-06-14
Claire X Venere1019France2025-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon L RoysterArgentinaAnna Fali QUALIFIED
Mayumi L WieserArgentinaAnna Fali NEGOTIATION
Chavez Q IturbideGermanyAnna Fali RENEWAL
Aditya W FollerItalyAsiya Javayant RENEWAL
Salvatore F RimBrazilIvan Magalhaes QUALIFIED
Juan N StockhamFranceOnyama Limba NEW
Maisha W WaycottCanadaIoni Bowcher QUALIFIED
Jefferson I KuskoGermanyIoni Bowcher UNQUALIFIED
Murillo R SaylorsRussiaStephen Shaw UNQUALIFIED
Antonio O PaprockiAustraliaAnna Fali RENEWAL
Morrow A KuskoGermanyIoni Bowcher NEW
Aruna F FollerCanadaBernardo Dominic NEW
Kaitlin Q NestleAustraliaElwin Sharvill RENEWAL
Izzy R SaylorsBrazilIvan Magalhaes PROPOSAL
Jefferson X MarrierArgentinaElwin Sharvill UNQUALIFIED
Jefferson B CaudyItalyElwin Sharvill NEGOTIATION
Jefferson U FollerAustraliaAmy Elsner QUALIFIED
Emily Y CaudyBrazilIoni Bowcher QUALIFIED
Ricardo Z KolmetzGermanyAnna Fali UNQUALIFIED
Aditya U FollerCanadaElwin Sharvill NEGOTIATION
Sinclair W ButtGermanyBernardo Dominic PROPOSAL
Maisha D InouyeCanadaAmy Elsner UNQUALIFIED
Johnson S CaudyArgentinaBernardo Dominic UNQUALIFIED
Jefferson V StockhamUnited KingdomOnyama Limba NEW
Aruna U BologniaIndiaIvan Magalhaes RENEWAL
Kadeem F BowleyUnited KingdomAmy Elsner NEGOTIATION
Claire A KolmetzBrazilIoni Bowcher RENEWAL
Sinclair A ButtItalyBernardo Dominic NEGOTIATION
Antonio T CaudyItalyAnna Fali PROPOSAL
Darci B BowleyFranceStephen Shaw NEW
Julie K CaldareraUnited KingdomStephen Shaw PROPOSAL
Darci U FerenczIndiaOnyama Limba UNQUALIFIED
Jeanfrancois G BologniaCanadaElwin Sharvill RENEWAL
Maria X SlusarskiItalyIvan Magalhaes NEW
Claire J GauchoAustraliaStephen Shaw RENEWAL
Aruna K CampainCanadaBernardo Dominic UNQUALIFIED
Arvin B MaletSpainIoni Bowcher UNQUALIFIED
Aditya C StockhamAustraliaAmy Elsner PROPOSAL
Deepesh C GauchoSpainStephen Shaw RENEWAL
Leon L FerenczFranceAnna Fali RENEWAL

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