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
Emily W BologniaArgentinaBernardo Dominic NEW
Cody C BriddickJapanXuxue Feng NEGOTIATION
Darci C MorascaArgentinaOnyama Limba RENEWAL
Salvatore H NestleRussiaStephen Shaw PROPOSAL
Jones P SlusarskiGermanyXuxue Feng RENEWAL
Ivar X FerenczRussiaOnyama Limba NEGOTIATION
Leja D ShinkoRussiaAnna Fali PROPOSAL
Alejandro F RutaSpainAsiya Javayant UNQUALIFIED
Juan S DarakjyJapanAsiya Javayant QUALIFIED
Antonio G WhobreyIndiaAsiya Javayant NEGOTIATION
Kadeem C CampainRussiaOnyama Limba NEGOTIATION
Murillo I FigeroaItalyAmy Elsner RENEWAL
Stacey Y NickaAustraliaAmy Elsner PROPOSAL
Aruna G SchemmerIndiaIoni Bowcher QUALIFIED
Clifford S PoquetteGermanyIoni Bowcher NEW
Rodrigues U AlbaresSpainIoni Bowcher NEW
Costa T WieserFranceAsiya Javayant NEGOTIATION
James M AmigonRussiaBernardo Dominic NEGOTIATION
Clifford B StockhamSpainAnna Fali NEW
Johnson O StensethAustraliaIoni Bowcher UNQUALIFIED
Emily M AmigonAustraliaAsiya Javayant QUALIFIED
Juan Z MaletCanadaStephen Shaw QUALIFIED
Munro W MarrierCanadaBernardo Dominic QUALIFIED
Ivar X ButtAustraliaStephen Shaw NEW
Clifford Q InouyeItalyAsiya Javayant RENEWAL
Jeanfrancois T FlosiFranceElwin Sharvill PROPOSAL
Smith W OldroydUnited KingdomElwin Sharvill RENEWAL
Misaki W GarufiBrazilStephen Shaw RENEWAL
Tony J AlbaresCanadaOnyama Limba UNQUALIFIED
Aditya V RimIndiaIoni Bowcher QUALIFIED
Arvin M AmigonBrazilIoni Bowcher UNQUALIFIED
Ashley B SchemmerSpainAnna Fali NEW
Isabel W RimItalyAsiya Javayant NEGOTIATION
Claire Q KolmetzSpainIoni Bowcher RENEWAL
Emily Z DoeArgentinaOnyama Limba PROPOSAL
Greenwood C FlosiBrazilElwin Sharvill RENEWAL
Emily A StensethGermanyIoni Bowcher PROPOSAL
David S VenereAustraliaAsiya Javayant RENEWAL
Izzy Y MaletItalyIoni Bowcher QUALIFIED
Maria E StensethItalyIoni Bowcher RENEWAL
Wickens D MaletBrazilBernardo Dominic PROPOSAL
Leon X BologniaFranceXuxue Feng NEGOTIATION
Maisha O OstroskyGermanyOnyama Limba UNQUALIFIED
Deepesh N MorascaUnited KingdomIvan Magalhaes PROPOSAL
Juan N InouyeItalyStephen Shaw NEGOTIATION
Deepesh J InouyeFranceAsiya Javayant NEGOTIATION
Leja C DilliardAustraliaElwin Sharvill NEGOTIATION
Ivar A VocelkaRussiaBernardo Dominic QUALIFIED
Jones A VocelkaGermanyAnna Fali UNQUALIFIED
Silvio K SchemmerArgentinaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Chavez I CaudyRussiaElwin Sharvill UNQUALIFIED
Octavia A ButtIndiaIvan Magalhaes NEW
Clifford P MacleadJapanAsiya Javayant QUALIFIED
Ricardo Y GarufiSpainElwin Sharvill NEGOTIATION
Clifford K MaletItalyAnna Fali NEW
Kaitlin M DilliardSpainIoni Bowcher NEW
Jefferson I SchemmerAustraliaAmy Elsner QUALIFIED
Antonio A StockhamGermanyXuxue Feng RENEWAL
Sinclair Y AmigonJapanIoni Bowcher PROPOSAL
Darci H CaldareraRussiaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie K MacleadBrazil2025-04-27Chapman, Ross E Esq PROPOSAL76Stephen Shaw
1001Chavez O VenereFrance2025-04-04Feltz Printing Service PROPOSAL39Amy Elsner
1002Ashley D GlickSpain2025-04-07Commercial Press NEW54Onyama Limba
1003Clifford L VocelkaSpain2025-04-30Buckley Miller Wright UNQUALIFIED19Xuxue Feng
1004Antonio Q DilliardSpain2025-04-23Buckley Miller Wright UNQUALIFIED22Ioni Bowcher
1005Clifford V RoysterBrazil2025-04-19Morlong Associates QUALIFIED73Onyama Limba
1006Octavia N GarufiSpain2025-04-29Truhlar And Truhlar Attys NEW55Stephen Shaw
1007Deepesh P CampainGermany2025-04-29Morlong Associates RENEWAL96Stephen Shaw
1008Maisha G NestleSpain2025-04-25Chanay, Jeffrey A Esq QUALIFIED96Anna Fali
1009Isabel D WieserIndia2025-04-16Truhlar And Truhlar Attys NEW88Onyama Limba
1010Maria R MarrierIndia2025-04-29Benton, John B Jr UNQUALIFIED9Bernardo Dominic
1011Kaitlin Q DarakjyGermany2025-04-22Truhlar And Truhlar Attys UNQUALIFIED29Bernardo Dominic
1012Faith A DilliardIndia2025-04-20Truhlar And Truhlar Attys QUALIFIED33Ivan Magalhaes
1013Chavez H SaylorsSpain2025-04-10Feiner Bros PROPOSAL26Xuxue Feng
1014Murillo S FerenczBrazil2025-04-24Rangoni Of Florence NEW59Elwin Sharvill
1015Leja X MarrierIndia2025-04-08Feltz Printing Service UNQUALIFIED42Onyama Limba
1016Stacey E SchemmerItaly2025-04-12Buckley Miller Wright PROPOSAL52Amy Elsner
1017Maria B GarufiGermany2025-04-03Printing Dimensions NEW85Amy Elsner
1018Johnson N ChuiGermany2025-04-04Feiner Bros QUALIFIED55Xuxue Feng
1019Kaitlin Q StockhamCanada2025-04-05Commercial Press UNQUALIFIED11Ioni Bowcher
1020Izzy F CampainCanada2025-04-05Morlong Associates NEW12Asiya Javayant
1021Arvin G RulapaughBrazil2025-04-25King, Christopher A Esq RENEWAL84Anna Fali
1022Antonio V FollerGermany2025-04-14King, Christopher A Esq RENEWAL84Onyama Limba
1023Stacey A CaldareraCanada2025-04-26King, Christopher A Esq RENEWAL82Anna Fali
1024Jennifer I StockhamArgentina2025-04-28Rousseaux, Michael Esq RENEWAL85Elwin Sharvill
1025Antonio L CaldareraBrazil2025-04-11Feltz Printing Service UNQUALIFIED27Elwin Sharvill
1026Rodrigues A PerinArgentina2025-04-10King, Christopher A Esq NEW10Elwin Sharvill
1027Jones Q RulapaughItaly2025-04-16Morlong Associates UNQUALIFIED74Amy Elsner
1028Misaki V FlosiArgentina2025-04-09Commercial Press UNQUALIFIED21Elwin Sharvill
1029Aika A RimSpain2025-04-13Rousseaux, Michael Esq QUALIFIED96Stephen Shaw
1030Kaitlin Y SergiItaly2025-04-16Chemel, James L Cpa RENEWAL7Asiya Javayant
1031Cody F CampainBrazil2025-04-28Printing Dimensions NEW66Ivan Magalhaes
1032Rodrigues S RulapaughFrance2025-04-19Printing Dimensions QUALIFIED78Elwin Sharvill
1033Misaki T GillianBrazil2025-04-05Chemel, James L Cpa PROPOSAL46Bernardo Dominic
1034Izzy B MarrierGermany2025-04-11Truhlar And Truhlar Attys NEW81Onyama Limba
1035Aditya W GarufiUnited Kingdom2025-04-16King, Christopher A Esq PROPOSAL75Onyama Limba
1036Emily R RoysterRussia2025-04-08Buckley Miller Wright NEW64Onyama Limba
1037Izzy V NestleIndia2025-04-19Chapman, Ross E Esq QUALIFIED87Bernardo Dominic
1038Izzy R DilliardGermany2025-04-27Dorl, James J Esq NEW29Ioni Bowcher
1039Murillo F BologniaSpain2025-04-03Chanay, Jeffrey A Esq PROPOSAL63Onyama Limba
1040Wickens G RulapaughArgentina2025-04-24Rangoni Of Florence NEW89Ivan Magalhaes
1041Emily R StensethSpain2025-04-01Commercial Press NEW72Asiya Javayant
1042Morrow I MacleadUnited Kingdom2025-04-16Morlong Associates UNQUALIFIED55Stephen Shaw
1043Johnson D CaldareraIndia2025-04-05Chemel, James L Cpa NEGOTIATION63Stephen Shaw
1044Wickens A ButtCanada2025-04-08Chemel, James L Cpa UNQUALIFIED57Ivan Magalhaes
1045Francesco Z DoeRussia2025-04-26Chemel, James L Cpa PROPOSAL5Ivan Magalhaes
1046Nicolas Q WieserAustralia2025-04-30Chanay, Jeffrey A Esq PROPOSAL13Anna Fali
1047Emily Y CaudyUnited Kingdom2025-04-13King, Christopher A Esq NEGOTIATION7Xuxue Feng
1048Maisha M WieserArgentina2025-04-21Chemel, James L Cpa QUALIFIED82Stephen Shaw
1049Wickens U BriddickUnited Kingdom2025-04-25Morlong Associates NEW52Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Antonio O PaprockiJapanAsiya Javayant NEGOTIATION
Smith B FigeroaGermanyIoni Bowcher PROPOSAL
Leja X FigeroaSpainIvan Magalhaes PROPOSAL
Cody N WaycottFranceIoni Bowcher QUALIFIED
Ivar F ButtJapanAnna Fali QUALIFIED
David P FollerCanadaOnyama Limba RENEWAL
Aika J PaprockiIndiaStephen Shaw PROPOSAL
Aditya V MorascaRussiaAnna Fali PROPOSAL
Greenwood H NestleGermanyIoni Bowcher NEGOTIATION
Misaki R OldroydSpainAsiya Javayant NEGOTIATION
Francesco V NickaSpainBernardo Dominic QUALIFIED
Rodrigues U FlosiItalyIoni Bowcher PROPOSAL
Jennifer E SchemmerGermanyXuxue Feng QUALIFIED
Murillo M GarufiUnited KingdomBernardo Dominic QUALIFIED
Johnson X DarakjySpainBernardo Dominic NEGOTIATION
Alejandro J ShinkoAustraliaXuxue Feng NEW
Ivar P CaldareraIndiaXuxue Feng QUALIFIED
Adams L DilliardGermanyAsiya Javayant RENEWAL
Tony Q WhobreyIndiaIvan Magalhaes RENEWAL
Morrow M OstroskyArgentinaStephen Shaw NEW
Johnson G OstroskyFranceBernardo Dominic NEW
Arvin D MaletItalyAmy Elsner NEW
Sinclair J WieserJapanIvan Magalhaes QUALIFIED
Leja V VocelkaAustraliaIoni Bowcher PROPOSAL
Kaitlin H GarufiJapanXuxue Feng UNQUALIFIED
Arvin H MarrierSpainAmy Elsner UNQUALIFIED
Maria V SlusarskiAustraliaBernardo Dominic NEW
Mujtaba Y PaprockiRussiaOnyama Limba QUALIFIED
Darci V FlosiFranceStephen Shaw RENEWAL
Claire W SergiCanadaBernardo Dominic PROPOSAL
Jones W TollnerBrazilAmy Elsner NEW
Rodrigues L GauchoIndiaAmy Elsner NEGOTIATION
Darci K SchemmerArgentinaBernardo Dominic NEW
Clifford H BologniaItalyAnna Fali QUALIFIED
Emily O PaprockiJapanIvan Magalhaes RENEWAL
Emily N PaprockiItalyBernardo Dominic QUALIFIED
Maria F SergiGermanyOnyama Limba UNQUALIFIED
Claire K CampainJapanOnyama Limba NEW
Faith O DoeBrazilAsiya Javayant PROPOSAL
Greenwood E RulapaughFranceAmy Elsner PROPOSAL
Jones D SlusarskiFranceXuxue Feng PROPOSAL
Leja R VocelkaRussiaXuxue Feng UNQUALIFIED
Izzy E GarufiItalyOnyama Limba PROPOSAL
Antonio S GillianRussiaOnyama Limba PROPOSAL
Munro O AlbaresGermanyAsiya Javayant NEW
Aditya M FollerIndiaAsiya Javayant RENEWAL
Ivar F RulapaughArgentinaBernardo Dominic QUALIFIED
Jeanfrancois P VocelkaBrazilIoni Bowcher UNQUALIFIED
Rodrigues A PerinCanadaAnna Fali PROPOSAL
Salvatore P RulapaughRussiaAmy Elsner RENEWAL
Frozen Columns
Name
Julie J Caudy
Aditya L Gaucho
Darci Q Campain
David Z Perin
Claire Y Venere
Stacey E Gaucho
Salvatore L Stockham
Alejandro S Bowley
Arvin Y Briddick
Jeanfrancois E Glick
Ivar W Poquette
Misaki R Nestle
Ivar O Briddick
Deepesh Y Waycott
Mayumi V Malet
Jefferson O Gaucho
Sinclair F Poquette
Clifford V Vocelka
Wickens A Shinko
Nicolas X Caldarera
Chavez V Ostrosky
Francesco O Royster
Deepesh Z Darakjy
Tony K Perin
Stacey T Kolmetz
Juan L Kolmetz
Juan Z Maclead
Ricardo T Poquette
Arvin V Flosi
Jennifer S Maclead
Smith F Malet
Leja S Stockham
Aruna J Poquette
Salvatore X Butt
Juan D Campain
Tony Y Garufi
Leon V Shinko
Leja B Wieser
Johnson D Garufi
Deepesh E Bolognia
Morrow D Tollner
Jennifer Z Campain
Mayumi H Bowley
Izzy E Garufi
Clifford Z Foller
David P Tollner
Nicolas J Oldroyd
Johnson J Bowley
Emily L Stenseth
Kaitlin G Ruta
IdCountryDate
1000Italy2025-04-05
1001Brazil2025-04-12
1002Brazil2025-04-25
1003Spain2025-04-20
1004Japan2025-04-24
1005Brazil2025-04-07
1006United Kingdom2025-04-13
1007Russia2025-04-13
1008Australia2025-04-30
1009Canada2025-04-09
1010Spain2025-04-10
1011Spain2025-04-25
1012Australia2025-04-19
1013Germany2025-04-21
1014Argentina2025-04-27
1015Germany2025-04-26
1016India2025-04-10
1017Russia2025-04-20
1018Italy2025-04-08
1019Spain2025-04-27
1020Germany2025-04-25
1021Russia2025-04-21
1022Italy2025-04-24
1023Argentina2025-04-02
1024Argentina2025-04-14
1025Argentina2025-04-05
1026Japan2025-04-16
1027Italy2025-04-21
1028Italy2025-04-23
1029India2025-04-26
1030Argentina2025-04-20
1031India2025-04-21
1032Russia2025-04-18
1033Brazil2025-04-16
1034Italy2025-04-01
1035India2025-04-24
1036Canada2025-04-01
1037Canada2025-04-27
1038Argentina2025-04-18
1039Germany2025-04-04
1040Canada2025-04-30
1041Argentina2025-04-05
1042India2025-04-16
1043Canada2025-04-27
1044France2025-04-07
1045Canada2025-04-29
1046Brazil2025-04-24
1047Russia2025-04-26
1048Germany2025-04-15
1049Spain2025-04-06

On-Demand Data

NameIdCountryDate
Antonio O Caldarera1000Australia2025-04-13
Chavez U Vocelka1001Canada2025-04-20
Aika Y Gaucho1002Argentina2025-04-02
Smith J Butt1003India2025-04-11
Smith C Malet1004Japan2025-04-27
Aika C Foller1005Australia2025-04-29
Alejandro T Kolmetz1006Australia2025-04-02
Silvio V Inouye1007Canada2025-04-20
Greenwood E Kolmetz1008Italy2025-04-19
Alejandro N Glick1009Spain2025-04-04
Maisha H Whobrey1010Brazil2025-04-26
Claire E Malet1011France2025-04-27
Isabel G Stenseth1012United Kingdom2025-04-23
Mayumi E Schemmer1013India2025-04-26
Maisha G Maclead1014United Kingdom2025-04-01
Sinclair R Garufi1015Italy2025-04-04
Ivar X Bowley1016India2025-04-03
Antonio O Flosi1017United Kingdom2025-04-28
Ashley C Kolmetz1018United Kingdom2025-04-06
Julie J Wieser1019France2025-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith G FollerGermanyAnna Fali NEW
Cody Y BriddickUnited KingdomAsiya Javayant NEGOTIATION
Salvatore Q GillianSpainStephen Shaw PROPOSAL
Munro H FigeroaCanadaXuxue Feng PROPOSAL
Wickens Q BowleyIndiaAsiya Javayant QUALIFIED
Jefferson T GauchoIndiaIoni Bowcher RENEWAL
Murillo U FerenczFranceXuxue Feng NEW
David Y NickaFranceElwin Sharvill PROPOSAL
Aditya A SaylorsIndiaOnyama Limba RENEWAL
Ricardo S VenereJapanIoni Bowcher RENEWAL
Kaitlin H GillianBrazilXuxue Feng UNQUALIFIED
Claire Q SlusarskiRussiaAsiya Javayant PROPOSAL
Smith I AmigonJapanAnna Fali QUALIFIED
Octavia I SergiUnited KingdomOnyama Limba NEW
James S FlosiJapanElwin Sharvill NEW
Jefferson M MaletUnited KingdomOnyama Limba NEW
Nicolas N FigeroaJapanAnna Fali QUALIFIED
Rodrigues R RimCanadaAnna Fali NEGOTIATION
Faith X IturbideCanadaBernardo Dominic NEGOTIATION
Arvin Q RoysterFranceIvan Magalhaes NEGOTIATION
Antonio M SchemmerFranceAnna Fali UNQUALIFIED
Munro G AmigonGermanyOnyama Limba NEGOTIATION
Faith A AlbaresItalyIvan Magalhaes RENEWAL
Silvio L PaprockiCanadaIvan Magalhaes NEGOTIATION
Octavia Z NickaCanadaXuxue Feng NEW
Aruna M RoysterArgentinaIvan Magalhaes RENEWAL
Octavia X OldroydFranceAsiya Javayant PROPOSAL
Morrow H DarakjyCanadaOnyama Limba NEW
Wickens P RutaUnited KingdomAmy Elsner NEGOTIATION
Wickens Y DarakjyCanadaIvan Magalhaes NEGOTIATION
James M KuskoGermanyXuxue Feng UNQUALIFIED
Johnson X VocelkaUnited KingdomIvan Magalhaes RENEWAL
David I MaletUnited KingdomOnyama Limba UNQUALIFIED
Jeanfrancois Z WieserArgentinaIoni Bowcher RENEWAL
Octavia F SlusarskiIndiaElwin Sharvill QUALIFIED
Faith S ShinkoItalyXuxue Feng PROPOSAL
Jeanfrancois P StockhamBrazilOnyama Limba NEW
Ashley G AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
Emily S GillianItalyOnyama Limba RENEWAL
Ashley Y KuskoRussiaAsiya Javayant 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>