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
Kadeem W CaudyItalyXuxue Feng UNQUALIFIED
Kadeem U AmigonItalyIvan Magalhaes RENEWAL
Julie G PerinArgentinaAnna Fali NEW
Sinclair V DoeRussiaAmy Elsner PROPOSAL
Darci X GauchoAustraliaAsiya Javayant UNQUALIFIED
Cody C DoeAustraliaElwin Sharvill PROPOSAL
Isabel H CampainArgentinaElwin Sharvill NEW
Jeanfrancois Z FollerJapanIvan Magalhaes UNQUALIFIED
Chavez K SaylorsFranceAsiya Javayant PROPOSAL
Faith D GauchoUnited KingdomStephen Shaw NEW
Misaki O SchemmerRussiaAnna Fali NEW
Jefferson K ButtArgentinaOnyama Limba RENEWAL
Johnson F OstroskySpainAsiya Javayant NEW
Jones P DoeAustraliaAnna Fali RENEWAL
Stacey G MaletArgentinaStephen Shaw QUALIFIED
Izzy T TollnerItalyAsiya Javayant NEGOTIATION
Jeanfrancois V MorascaIndiaBernardo Dominic NEGOTIATION
Isabel H MarrierJapanXuxue Feng NEW
Leja G SchemmerItalyIvan Magalhaes RENEWAL
Maisha T GauchoBrazilIoni Bowcher RENEWAL
Francesco W RoysterIndiaBernardo Dominic QUALIFIED
Francesco W RulapaughArgentinaStephen Shaw QUALIFIED
Greenwood B DarakjyIndiaAsiya Javayant RENEWAL
Salvatore S RimIndiaIoni Bowcher PROPOSAL
Jennifer V MarrierGermanyBernardo Dominic NEW
Greenwood S InouyeItalyBernardo Dominic NEW
Isabel D NickaItalyAmy Elsner RENEWAL
Leon O MarrierIndiaIvan Magalhaes NEGOTIATION
Cody H GillianSpainAsiya Javayant NEW
Greenwood Q DilliardAustraliaIoni Bowcher PROPOSAL
Jones P MacleadRussiaXuxue Feng NEGOTIATION
Aika N PaprockiGermanyIvan Magalhaes PROPOSAL
Morrow Z DarakjyIndiaAsiya Javayant PROPOSAL
Ivar T KolmetzUnited KingdomStephen Shaw PROPOSAL
Alejandro S StensethSpainElwin Sharvill NEGOTIATION
Munro J VocelkaArgentinaXuxue Feng NEGOTIATION
Leon A KuskoBrazilOnyama Limba NEW
Ashley V MorascaGermanyAsiya Javayant NEW
Jefferson Z NickaIndiaAsiya Javayant PROPOSAL
Alejandro P OstroskyFranceAmy Elsner QUALIFIED
Wickens A GarufiGermanyBernardo Dominic QUALIFIED
Jeanfrancois T GauchoBrazilIoni Bowcher NEGOTIATION
Jennifer G GlickAustraliaBernardo Dominic NEW
Sinclair F AlbaresIndiaXuxue Feng NEGOTIATION
Stacey O RoysterFranceElwin Sharvill RENEWAL
Mujtaba L CaudyArgentinaAmy Elsner QUALIFIED
Kaitlin N StockhamSpainBernardo Dominic RENEWAL
Munro F InouyeJapanAmy Elsner PROPOSAL
Greenwood L SlusarskiGermanyIoni Bowcher QUALIFIED
Adams V RulapaughFranceXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith E OstroskyJapanOnyama Limba RENEWAL
Aditya B KolmetzRussiaXuxue Feng NEW
Stacey X BriddickBrazilBernardo Dominic UNQUALIFIED
Salvatore D VocelkaBrazilElwin Sharvill RENEWAL
Jefferson X DoeCanadaStephen Shaw UNQUALIFIED
Ashley B InouyeSpainIoni Bowcher QUALIFIED
Ricardo V RimItalyElwin Sharvill PROPOSAL
Maisha N MaletUnited KingdomElwin Sharvill PROPOSAL
Kaitlin W WieserSpainElwin Sharvill RENEWAL
Arvin I WieserFranceStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro K VocelkaIndia2026-08-12Buckley Miller Wright PROPOSAL73Bernardo Dominic
1001James T DoeArgentina2026-08-31King, Christopher A Esq UNQUALIFIED19Amy Elsner
1002Ricardo E RulapaughFrance2026-08-19Feiner Bros NEGOTIATION94Elwin Sharvill
1003Ivar H AmigonGermany2026-08-07Rangoni Of Florence NEW30Asiya Javayant
1004Tony I WaycottSpain2026-08-26Printing Dimensions PROPOSAL23Stephen Shaw
1005Greenwood E GlickItaly2026-08-24Rangoni Of Florence PROPOSAL28Anna Fali
1006Morrow P MaletIndia2026-08-03Morlong Associates RENEWAL84Xuxue Feng
1007Julie V FigeroaAustralia2026-08-13Morlong Associates NEW40Anna Fali
1008Nicolas V FollerSpain2026-08-30Rousseaux, Michael Esq NEW54Ioni Bowcher
1009Izzy U DoeArgentina2026-08-18Commercial Press NEW67Onyama Limba
1010Mujtaba N MaletUnited Kingdom2026-08-09Chapman, Ross E Esq QUALIFIED78Bernardo Dominic
1011Smith P DarakjySpain2026-08-06Feiner Bros RENEWAL58Onyama Limba
1012Maisha F InouyeCanada2026-08-04Dorl, James J Esq NEW22Stephen Shaw
1013Cody D FollerIndia2026-08-08Dorl, James J Esq NEGOTIATION2Ivan Magalhaes
1014Julie Q TollnerCanada2026-08-04Benton, John B Jr PROPOSAL27Ivan Magalhaes
1015Aditya T MorascaUnited Kingdom2026-08-31Feiner Bros PROPOSAL7Elwin Sharvill
1016Cody F MarrierJapan2026-08-16Chapman, Ross E Esq PROPOSAL4Amy Elsner
1017Ashley C MacleadJapan2026-08-03Buckley Miller Wright QUALIFIED29Ioni Bowcher
1018Ashley L VenereIndia2026-08-10Printing Dimensions RENEWAL64Onyama Limba
1019Aditya M StensethRussia2026-08-17Morlong Associates RENEWAL36Ivan Magalhaes
1020Faith A FlosiGermany2026-08-27Chemel, James L Cpa NEW81Xuxue Feng
1021James Z SergiIndia2026-08-24Feiner Bros NEW94Anna Fali
1022Murillo W WhobreyArgentina2026-08-31Feiner Bros NEW53Ioni Bowcher
1023Maisha N FollerRussia2026-08-26Chapman, Ross E Esq RENEWAL86Bernardo Dominic
1024Izzy I NickaUnited Kingdom2026-08-04Feiner Bros PROPOSAL15Ioni Bowcher
1025Clifford N CampainGermany2026-08-06Chapman, Ross E Esq QUALIFIED97Anna Fali
1026Munro O TollnerItaly2026-08-27Morlong Associates QUALIFIED1Ioni Bowcher
1027Aditya J OldroydUnited Kingdom2026-08-11Benton, John B Jr NEW53Onyama Limba
1028Silvio X GarufiUnited Kingdom2026-08-19King, Christopher A Esq UNQUALIFIED77Stephen Shaw
1029Sinclair Z GarufiUnited Kingdom2026-08-22Chemel, James L Cpa UNQUALIFIED4Amy Elsner
1030Aditya G MorascaFrance2026-08-25Commercial Press NEGOTIATION54Anna Fali
1031Kadeem Y VocelkaRussia2026-08-13Morlong Associates PROPOSAL12Elwin Sharvill
1032Morrow H DoeSpain2026-08-02Feiner Bros PROPOSAL16Anna Fali
1033Cody O RoysterRussia2026-08-10Chanay, Jeffrey A Esq RENEWAL14Xuxue Feng
1034Jefferson H VocelkaCanada2026-08-07Commercial Press PROPOSAL36Xuxue Feng
1035Cody N CampainBrazil2026-08-03Benton, John B Jr RENEWAL3Onyama Limba
1036Alejandro P FigeroaUnited Kingdom2026-08-16Dorl, James J Esq NEW29Anna Fali
1037Emily D SchemmerJapan2026-08-30Truhlar And Truhlar Attys QUALIFIED49Amy Elsner
1038Emily B KuskoItaly2026-08-09King, Christopher A Esq NEGOTIATION77Stephen Shaw
1039Leon L SchemmerBrazil2026-08-03Chemel, James L Cpa NEGOTIATION94Ivan Magalhaes
1040Leon K FollerGermany2026-08-12Rangoni Of Florence RENEWAL1Elwin Sharvill
1041Salvatore X ChuiJapan2026-08-02Chemel, James L Cpa NEGOTIATION30Amy Elsner
1042Misaki G FerenczFrance2026-08-04Morlong Associates RENEWAL95Bernardo Dominic
1043Leon R DilliardSpain2026-08-11King, Christopher A Esq NEGOTIATION51Xuxue Feng
1044Smith N IturbideFrance2026-08-28Dorl, James J Esq QUALIFIED51Anna Fali
1045Aika I BologniaAustralia2026-08-24Feiner Bros QUALIFIED46Ioni Bowcher
1046Maisha E AlbaresIndia2026-08-07Dorl, James J Esq NEW80Anna Fali
1047Antonio Z RulapaughGermany2026-08-26Dorl, James J Esq RENEWAL84Bernardo Dominic
1048Cody U VenereAustralia2026-08-22Rousseaux, Michael Esq NEGOTIATION62Elwin Sharvill
1049Leon N FerenczIndia2026-08-27Rangoni Of Florence NEGOTIATION99Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Claire B CampainAustraliaStephen Shaw NEW
Chavez S MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Costa Q BologniaIndiaBernardo Dominic QUALIFIED
Sinclair H PoquetteCanadaElwin Sharvill NEW
Arvin K TollnerItalyBernardo Dominic NEGOTIATION
Rodrigues X TollnerIndiaAsiya Javayant NEGOTIATION
Tony R StockhamRussiaAmy Elsner UNQUALIFIED
Rodrigues T DilliardItalyIvan Magalhaes RENEWAL
Morrow O GauchoArgentinaBernardo Dominic QUALIFIED
Rodrigues O PoquetteUnited KingdomXuxue Feng PROPOSAL
Maisha J MaletAustraliaElwin Sharvill NEGOTIATION
Jennifer K OldroydArgentinaAnna Fali NEGOTIATION
Adams G StensethRussiaIvan Magalhaes UNQUALIFIED
Antonio Y OldroydIndiaAsiya Javayant UNQUALIFIED
Morrow C ButtCanadaAmy Elsner NEGOTIATION
Costa O PoquetteIndiaElwin Sharvill UNQUALIFIED
Sinclair L MarrierJapanIoni Bowcher NEW
Stacey Q WieserSpainBernardo Dominic QUALIFIED
Rodrigues O VocelkaItalyIvan Magalhaes UNQUALIFIED
Tony M PoquetteAustraliaElwin Sharvill NEW
Juan N WhobreyJapanAmy Elsner QUALIFIED
Aika F BriddickArgentinaAnna Fali PROPOSAL
Aditya Q ShinkoSpainAnna Fali RENEWAL
Leja K AmigonItalyXuxue Feng NEW
Francesco A DilliardGermanyIvan Magalhaes PROPOSAL
Murillo K MarrierUnited KingdomAmy Elsner NEGOTIATION
Wickens X GillianBrazilAsiya Javayant NEGOTIATION
Jones I ChuiGermanyOnyama Limba QUALIFIED
Jones A CaldareraJapanOnyama Limba PROPOSAL
Deepesh H SergiItalyIoni Bowcher UNQUALIFIED
Tony Y RoysterIndiaStephen Shaw RENEWAL
Mujtaba U SergiIndiaBernardo Dominic NEGOTIATION
Ashley E DoeGermanyAnna Fali NEGOTIATION
Misaki C AmigonItalyXuxue Feng PROPOSAL
Kadeem E SaylorsCanadaElwin Sharvill QUALIFIED
Darci H AlbaresGermanyIoni Bowcher PROPOSAL
Munro J MacleadSpainBernardo Dominic PROPOSAL
Emily I WhobreyIndiaXuxue Feng QUALIFIED
Jennifer Z DoeSpainAnna Fali QUALIFIED
Aika Z NickaSpainAsiya Javayant UNQUALIFIED
Aika F VocelkaUnited KingdomIoni Bowcher UNQUALIFIED
Aruna W MorascaRussiaBernardo Dominic RENEWAL
Sinclair A WieserCanadaAsiya Javayant NEW
David T WhobreyIndiaIoni Bowcher UNQUALIFIED
Aruna M StensethFranceElwin Sharvill UNQUALIFIED
Izzy R NickaAustraliaIoni Bowcher QUALIFIED
Cody W CaudySpainXuxue Feng UNQUALIFIED
Jeanfrancois A PaprockiBrazilOnyama Limba QUALIFIED
Ashley I KuskoRussiaStephen Shaw RENEWAL
Isabel W SaylorsGermanyAnna Fali NEW
Frozen Columns
Name
Jones L Rulapaugh
Tony I Flosi
Maria Q Oldroyd
Morrow B Butt
Isabel L Sergi
Ashley C Venere
Maria F Caldarera
Isabel M Albares
Silvio A Gillian
Greenwood Q Caudy
Jennifer Q Whobrey
Nicolas P Schemmer
Deepesh N Foller
Silvio H Caudy
Aika P Ferencz
Arvin J Amigon
Jones A Wieser
Claire R Vocelka
Cody Q Albares
Isabel S Caudy
Greenwood H Darakjy
Claire U Saylors
Greenwood Q Kolmetz
Jeanfrancois D Nestle
Morrow V Venere
Maisha F Garufi
Aruna G Dilliard
Leja M Venere
Adams N Rim
Salvatore I Bolognia
Darci T Flosi
Juan S Chui
Costa T Gaucho
Johnson C Poquette
Maisha K Royster
Ivar T Slusarski
Izzy B Flosi
Francesco F Nestle
Aditya W Inouye
Julie I Nestle
Julie K Stockham
Emily J Gillian
Kadeem G Stockham
Leja H Kolmetz
Silvio R Inouye
Kadeem U Foller
Jefferson B Paprocki
Isabel M Nicka
Sinclair O Maclead
Chavez I Caldarera
IdCountryDate
1000India2026-08-02
1001Spain2026-08-24
1002India2026-08-31
1003India2026-08-10
1004Argentina2026-08-22
1005Japan2026-08-29
1006Canada2026-08-29
1007Canada2026-08-08
1008Spain2026-08-13
1009Brazil2026-08-15
1010Canada2026-08-14
1011United Kingdom2026-08-02
1012Spain2026-08-13
1013Canada2026-08-28
1014Japan2026-08-21
1015Japan2026-08-23
1016Australia2026-08-16
1017United Kingdom2026-08-14
1018India2026-08-05
1019Argentina2026-08-18
1020Japan2026-08-23
1021United Kingdom2026-08-23
1022India2026-08-05
1023Argentina2026-08-24
1024Canada2026-08-20
1025Spain2026-08-09
1026Japan2026-08-18
1027Brazil2026-08-09
1028Canada2026-08-02
1029Italy2026-08-27
1030Russia2026-08-17
1031Germany2026-08-24
1032Germany2026-08-08
1033Argentina2026-08-23
1034Australia2026-08-04
1035Germany2026-08-18
1036France2026-08-06
1037Canada2026-08-13
1038Canada2026-08-09
1039France2026-08-07
1040France2026-08-03
1041Spain2026-08-03
1042Spain2026-08-02
1043Japan2026-08-08
1044Brazil2026-08-17
1045Argentina2026-08-17
1046Brazil2026-08-07
1047Spain2026-08-27
1048India2026-08-11
1049Brazil2026-08-11

On-Demand Data

NameIdCountryDate
Leja A Wieser1000Germany2026-08-19
Nicolas M Bolognia1001Germany2026-08-30
Jennifer A Albares1002France2026-08-30
Aditya C Iturbide1003Japan2026-08-11
Leja C Iturbide1004Spain2026-08-24
Deepesh T Iturbide1005India2026-08-03
Jeanfrancois K Kusko1006India2026-08-02
Clifford B Marrier1007United Kingdom2026-08-05
Aruna U Kusko1008Russia2026-08-12
Kaitlin I Gillian1009India2026-08-16
Murillo G Figeroa1010Italy2026-08-28
Izzy I Darakjy1011Canada2026-08-29
Jeanfrancois J Shinko1012India2026-08-08
Costa R Oldroyd1013Brazil2026-08-07
Arvin Q Schemmer1014United Kingdom2026-08-24
Cody O Darakjy1015Spain2026-08-15
Salvatore X Saylors1016Argentina2026-08-14
Mujtaba P Slusarski1017United Kingdom2026-08-19
Maria L Schemmer1018Canada2026-08-26
Chavez Q Kolmetz1019Canada2026-08-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily T CaudyUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair P MorascaBrazilOnyama Limba UNQUALIFIED
Cody I WaycottBrazilElwin Sharvill PROPOSAL
Morrow F ShinkoArgentinaStephen Shaw NEW
Ashley I WieserUnited KingdomIoni Bowcher RENEWAL
Arvin E InouyeBrazilAmy Elsner NEGOTIATION
Chavez E GillianAustraliaAnna Fali PROPOSAL
Smith D PaprockiIndiaBernardo Dominic RENEWAL
Chavez A AmigonJapanIvan Magalhaes NEGOTIATION
Wickens Q GlickGermanyStephen Shaw NEW
Aditya X OldroydGermanyBernardo Dominic PROPOSAL
Aditya E BowleyItalyAnna Fali QUALIFIED
Clifford P DarakjyCanadaIoni Bowcher UNQUALIFIED
Jefferson R BologniaFranceAmy Elsner PROPOSAL
Sinclair A KuskoUnited KingdomBernardo Dominic PROPOSAL
Misaki E MorascaBrazilIoni Bowcher NEGOTIATION
Johnson R IturbideUnited KingdomAsiya Javayant PROPOSAL
Jeanfrancois V VocelkaItalyIvan Magalhaes QUALIFIED
Greenwood F FlosiJapanXuxue Feng UNQUALIFIED
Clifford H GlickUnited KingdomStephen Shaw NEGOTIATION
Greenwood D DarakjyUnited KingdomAsiya Javayant PROPOSAL
Aruna K WaycottBrazilOnyama Limba PROPOSAL
Mujtaba H KolmetzGermanyAsiya Javayant NEGOTIATION
Aditya G StensethItalyOnyama Limba UNQUALIFIED
Kaitlin W GarufiArgentinaOnyama Limba PROPOSAL
Ricardo S ButtAustraliaAsiya Javayant UNQUALIFIED
Octavia J SergiRussiaIoni Bowcher NEW
Rodrigues Y KolmetzSpainAnna Fali NEGOTIATION
Nicolas O MaletSpainStephen Shaw UNQUALIFIED
Ashley R PaprockiFranceIvan Magalhaes QUALIFIED
Octavia C StockhamGermanyAmy Elsner PROPOSAL
Rodrigues O IturbideArgentinaAnna Fali NEW
Faith T MaletJapanIoni Bowcher QUALIFIED
Ashley N WhobreyBrazilAmy Elsner PROPOSAL
Faith B ButtRussiaAmy Elsner PROPOSAL
Rodrigues V SlusarskiBrazilXuxue Feng NEW
Salvatore O IturbideRussiaIvan Magalhaes UNQUALIFIED
Francesco W RulapaughGermanyXuxue Feng QUALIFIED
Maria G RulapaughJapanOnyama Limba PROPOSAL
Ricardo H CaudyAustraliaAmy Elsner PROPOSAL

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