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
Morrow N MaletJapanStephen Shaw UNQUALIFIED
Rodrigues V CaudyCanadaElwin Sharvill PROPOSAL
Arvin W MaletCanadaIoni Bowcher RENEWAL
Salvatore Q DilliardArgentinaAnna Fali NEW
Morrow Y RutaBrazilAnna Fali PROPOSAL
Julie F RimCanadaIvan Magalhaes NEW
Smith T SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Mayumi S DarakjyBrazilXuxue Feng NEW
Juan X FerenczCanadaXuxue Feng UNQUALIFIED
James T SergiCanadaXuxue Feng PROPOSAL
Stacey W BriddickJapanAnna Fali RENEWAL
Cody J AmigonGermanyStephen Shaw QUALIFIED
Johnson W MarrierRussiaBernardo Dominic QUALIFIED
Tony M InouyeBrazilOnyama Limba UNQUALIFIED
Misaki V RulapaughIndiaBernardo Dominic NEW
Ivar A ChuiGermanyAsiya Javayant NEW
Juan W RoysterUnited KingdomStephen Shaw RENEWAL
Rodrigues G PerinItalyAmy Elsner RENEWAL
Sinclair H SergiIndiaAsiya Javayant PROPOSAL
Stacey D DilliardCanadaBernardo Dominic RENEWAL
Wickens E BriddickAustraliaOnyama Limba NEGOTIATION
David Q VocelkaItalyStephen Shaw UNQUALIFIED
Kaitlin B RulapaughJapanAnna Fali RENEWAL
Misaki O DarakjyAustraliaIoni Bowcher RENEWAL
Clifford X NickaArgentinaAmy Elsner UNQUALIFIED
Aika T SlusarskiCanadaAmy Elsner QUALIFIED
Tony V DarakjyArgentinaAsiya Javayant QUALIFIED
Maisha E BriddickCanadaBernardo Dominic NEW
Maria S FigeroaUnited KingdomElwin Sharvill PROPOSAL
Rodrigues G CampainArgentinaStephen Shaw NEGOTIATION
Emily E BologniaUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois U AlbaresCanadaOnyama Limba NEW
Darci B StockhamArgentinaXuxue Feng NEW
Isabel O CampainSpainAnna Fali NEW
Cody U PaprockiUnited KingdomOnyama Limba RENEWAL
Morrow K MaletArgentinaAsiya Javayant QUALIFIED
Ivar K GlickBrazilAsiya Javayant PROPOSAL
Mayumi Z DilliardCanadaAsiya Javayant QUALIFIED
Murillo Q StockhamSpainBernardo Dominic UNQUALIFIED
Julie C GarufiSpainOnyama Limba NEW
Adams M SergiItalyIvan Magalhaes QUALIFIED
Costa G MaletBrazilOnyama Limba PROPOSAL
Johnson I DilliardIndiaAsiya Javayant QUALIFIED
Ashley Y VenereFranceAnna Fali NEW
Smith V GauchoItalyIoni Bowcher RENEWAL
Jones G ButtJapanAsiya Javayant NEGOTIATION
Isabel T CaldareraArgentinaAsiya Javayant NEGOTIATION
Julie R CaldareraAustraliaBernardo Dominic UNQUALIFIED
Morrow R MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi D NickaGermanyBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro G GlickCanadaIvan Magalhaes NEW
Aika Y FollerFranceXuxue Feng PROPOSAL
Murillo L KolmetzItalyIvan Magalhaes PROPOSAL
Maisha L PerinAustraliaAmy Elsner UNQUALIFIED
Aditya O DilliardGermanyAsiya Javayant UNQUALIFIED
Kaitlin Y IturbideCanadaStephen Shaw QUALIFIED
Murillo W GauchoAustraliaXuxue Feng UNQUALIFIED
Adams M VocelkaGermanyOnyama Limba RENEWAL
Adams G RutaArgentinaIvan Magalhaes PROPOSAL
Morrow Z VenereCanadaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez D SaylorsBrazil2026-06-20Chanay, Jeffrey A Esq QUALIFIED75Stephen Shaw
1001Nicolas T SergiBrazil2026-06-25Feiner Bros NEGOTIATION2Ioni Bowcher
1002Kaitlin K MaletSpain2026-06-13Printing Dimensions NEGOTIATION77Asiya Javayant
1003Antonio F RulapaughGermany2026-06-06Commercial Press QUALIFIED99Stephen Shaw
1004Clifford W TollnerGermany2026-06-20Chanay, Jeffrey A Esq UNQUALIFIED0Onyama Limba
1005Kadeem C FollerAustralia2026-06-29Commercial Press PROPOSAL86Bernardo Dominic
1006Wickens G MaletBrazil2026-06-26King, Christopher A Esq RENEWAL13Ivan Magalhaes
1007Maisha N RulapaughGermany2026-06-13Buckley Miller Wright PROPOSAL68Ivan Magalhaes
1008Francesco V GarufiFrance2026-06-04Chanay, Jeffrey A Esq UNQUALIFIED36Ivan Magalhaes
1009Murillo H WhobreyAustralia2026-06-20Dorl, James J Esq QUALIFIED35Anna Fali
1010Stacey Y GillianRussia2026-06-30Rangoni Of Florence PROPOSAL12Bernardo Dominic
1011Julie L DarakjyAustralia2026-07-02Buckley Miller Wright PROPOSAL72Onyama Limba
1012David M MorascaItaly2026-06-04Morlong Associates RENEWAL15Ioni Bowcher
1013Antonio B FollerArgentina2026-06-05Commercial Press UNQUALIFIED39Bernardo Dominic
1014Darci B SergiCanada2026-06-22Rousseaux, Michael Esq UNQUALIFIED31Asiya Javayant
1015Adams X RulapaughRussia2026-06-14Chapman, Ross E Esq RENEWAL36Amy Elsner
1016Morrow I WieserRussia2026-06-09Feiner Bros NEGOTIATION50Bernardo Dominic
1017Claire V FigeroaGermany2026-06-28Rousseaux, Michael Esq QUALIFIED21Stephen Shaw
1018Wickens C GillianArgentina2026-06-09Printing Dimensions NEW15Anna Fali
1019Tony I KuskoItaly2026-06-15Chapman, Ross E Esq NEGOTIATION66Xuxue Feng
1020Kaitlin T PoquetteFrance2026-07-03Morlong Associates UNQUALIFIED52Bernardo Dominic
1021Morrow F SergiArgentina2026-06-06Dorl, James J Esq NEW35Anna Fali
1022Ashley C StensethArgentina2026-06-26Rangoni Of Florence NEW20Stephen Shaw
1023Smith Y VocelkaGermany2026-06-13Chanay, Jeffrey A Esq RENEWAL35Elwin Sharvill
1024Mayumi T MaletGermany2026-07-03Chanay, Jeffrey A Esq QUALIFIED80Bernardo Dominic
1025Stacey I KuskoGermany2026-06-16Dorl, James J Esq QUALIFIED88Onyama Limba
1026Jennifer K BriddickArgentina2026-06-22Dorl, James J Esq UNQUALIFIED52Bernardo Dominic
1027Octavia M KolmetzBrazil2026-06-05Truhlar And Truhlar Attys PROPOSAL2Ioni Bowcher
1028Isabel N StensethRussia2026-06-05Benton, John B Jr RENEWAL29Onyama Limba
1029Aruna C MacleadSpain2026-06-05Rousseaux, Michael Esq NEGOTIATION9Xuxue Feng
1030Octavia H RimCanada2026-06-04Dorl, James J Esq RENEWAL53Elwin Sharvill
1031Jeanfrancois K ChuiAustralia2026-06-08Feiner Bros NEW81Bernardo Dominic
1032Murillo R MarrierUnited Kingdom2026-06-13King, Christopher A Esq UNQUALIFIED4Ioni Bowcher
1033Aditya U SaylorsFrance2026-06-10Morlong Associates PROPOSAL97Bernardo Dominic
1034Francesco D PaprockiGermany2026-06-24Buckley Miller Wright NEW25Elwin Sharvill
1035Jefferson P BowleySpain2026-06-21Rangoni Of Florence NEGOTIATION98Elwin Sharvill
1036Nicolas H NestleIndia2026-06-09Feiner Bros NEGOTIATION51Bernardo Dominic
1037Deepesh A SlusarskiUnited Kingdom2026-06-20Morlong Associates QUALIFIED74Anna Fali
1038Morrow U StockhamIndia2026-06-23Chanay, Jeffrey A Esq NEGOTIATION27Asiya Javayant
1039Greenwood B MarrierSpain2026-06-09Chemel, James L Cpa PROPOSAL24Ivan Magalhaes
1040Arvin I RutaGermany2026-06-28Buckley Miller Wright NEW80Ioni Bowcher
1041Salvatore B PaprockiSpain2026-06-05Buckley Miller Wright NEGOTIATION84Stephen Shaw
1042Chavez J FollerRussia2026-06-24Feiner Bros RENEWAL88Asiya Javayant
1043Juan O CaudyGermany2026-06-12Feiner Bros NEGOTIATION16Ioni Bowcher
1044Tony U WieserRussia2026-06-22Truhlar And Truhlar Attys QUALIFIED25Amy Elsner
1045Darci P InouyeCanada2026-06-09King, Christopher A Esq NEGOTIATION51Xuxue Feng
1046Maisha D BowleyGermany2026-06-24Chapman, Ross E Esq QUALIFIED66Bernardo Dominic
1047Stacey Y BowleySpain2026-06-07Feiner Bros QUALIFIED37Bernardo Dominic
1048Jones X VenereGermany2026-06-23Benton, John B Jr RENEWAL97Ivan Magalhaes
1049Faith X RoysterIndia2026-06-07Feltz Printing Service QUALIFIED50Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Morrow K SlusarskiJapanOnyama Limba UNQUALIFIED
Wickens D NickaJapanIoni Bowcher UNQUALIFIED
Jeanfrancois Q AmigonJapanOnyama Limba UNQUALIFIED
Nicolas Z MarrierSpainIoni Bowcher NEW
Maisha U FlosiUnited KingdomElwin Sharvill QUALIFIED
Aika S FerenczFranceElwin Sharvill NEW
Mujtaba M TollnerCanadaIoni Bowcher QUALIFIED
Mujtaba C RulapaughCanadaIvan Magalhaes NEW
Emily E RulapaughCanadaXuxue Feng UNQUALIFIED
Tony V MaletArgentinaStephen Shaw QUALIFIED
Wickens I WieserItalyBernardo Dominic NEGOTIATION
Claire Z RulapaughJapanAmy Elsner UNQUALIFIED
Cody G GlickCanadaXuxue Feng NEW
Aditya Y DoeFranceIvan Magalhaes NEGOTIATION
Kadeem I KolmetzIndiaIoni Bowcher UNQUALIFIED
Aika H BologniaFranceIoni Bowcher NEW
Kadeem N OstroskyGermanyOnyama Limba UNQUALIFIED
Rodrigues D ButtCanadaIvan Magalhaes NEGOTIATION
David J TollnerIndiaIoni Bowcher QUALIFIED
Kadeem P FigeroaJapanIvan Magalhaes NEGOTIATION
Emily F WieserBrazilIoni Bowcher NEGOTIATION
Francesco F GlickSpainStephen Shaw NEW
Julie R VocelkaJapanAmy Elsner QUALIFIED
Mujtaba Z IturbideUnited KingdomAmy Elsner NEW
Ricardo X CampainFranceXuxue Feng NEW
Murillo K FigeroaRussiaStephen Shaw QUALIFIED
Cody L NickaRussiaElwin Sharvill PROPOSAL
Mujtaba N DilliardGermanyOnyama Limba UNQUALIFIED
Jefferson Y VocelkaIndiaIoni Bowcher PROPOSAL
Arvin S SergiArgentinaAnna Fali QUALIFIED
Leon W AmigonBrazilAmy Elsner UNQUALIFIED
Tony G DoeGermanyAnna Fali NEGOTIATION
Julie D RimUnited KingdomOnyama Limba NEGOTIATION
Johnson J ChuiSpainIoni Bowcher UNQUALIFIED
Emily E InouyeFranceAsiya Javayant UNQUALIFIED
Costa T RimSpainAsiya Javayant QUALIFIED
Nicolas Y GillianRussiaIoni Bowcher NEW
Ivar N SergiUnited KingdomOnyama Limba NEW
Jennifer Q GlickIndiaBernardo Dominic NEGOTIATION
Deepesh S MorascaItalyStephen Shaw NEGOTIATION
Nicolas Y KolmetzUnited KingdomAsiya Javayant NEW
Wickens A MaletUnited KingdomIoni Bowcher NEGOTIATION
Jones H FigeroaUnited KingdomAmy Elsner NEW
Isabel J RoysterCanadaAmy Elsner RENEWAL
Arvin K WhobreyAustraliaXuxue Feng NEW
Leja S SchemmerGermanyAsiya Javayant NEW
Maria U GauchoJapanOnyama Limba RENEWAL
Stacey I WhobreyUnited KingdomElwin Sharvill RENEWAL
Darci S CaldareraItalyIvan Magalhaes PROPOSAL
Darci V NickaGermanyElwin Sharvill UNQUALIFIED
Frozen Columns
Name
James V Shinko
Jennifer J Nicka
Darci K Doe
Leon P Morasca
Leon P Sergi
Kadeem S Bolognia
Wickens Q Tollner
Aika G Campain
Kadeem K Stockham
Smith G Venere
Isabel M Malet
Murillo D Briddick
Rodrigues D Glick
Ashley D Royster
Alejandro Z Glick
Adams T Slusarski
Ricardo O Bolognia
Chavez U Venere
Stacey M Ostrosky
Kaitlin Q Campain
Greenwood Q Maclead
David F Amigon
Mujtaba D Doe
Antonio C Briddick
Leon S Gaucho
Kaitlin B Doe
David J Amigon
Rodrigues H Chui
Octavia X Chui
Kadeem H Inouye
Ivar G Rim
Adams M Marrier
Wickens F Garufi
Aruna X Stockham
Munro U Malet
Clifford D Perin
Sinclair S Marrier
Adams D Royster
Mujtaba X Whobrey
Jefferson O Chui
Jefferson H Gaucho
Octavia E Iturbide
Julie Q Vocelka
Silvio J Perin
Smith X Albares
Sinclair V Ostrosky
Salvatore H Garufi
Stacey E Campain
Antonio Z Flosi
Arvin R Rulapaugh
IdCountryDate
1000Japan2026-06-21
1001India2026-06-19
1002United Kingdom2026-06-14
1003Canada2026-06-29
1004Brazil2026-06-24
1005Argentina2026-07-02
1006India2026-06-13
1007Argentina2026-06-15
1008Australia2026-06-30
1009France2026-06-06
1010India2026-06-24
1011United Kingdom2026-06-16
1012Canada2026-06-08
1013Russia2026-06-10
1014Spain2026-06-22
1015Japan2026-06-27
1016Japan2026-06-25
1017Spain2026-07-01
1018France2026-06-05
1019Spain2026-07-02
1020India2026-07-01
1021India2026-06-24
1022Argentina2026-06-14
1023United Kingdom2026-06-19
1024France2026-06-21
1025Germany2026-07-02
1026India2026-06-23
1027Germany2026-06-06
1028Russia2026-07-01
1029Japan2026-06-10
1030Russia2026-06-10
1031Germany2026-06-16
1032Australia2026-06-09
1033Canada2026-06-29
1034Russia2026-06-06
1035India2026-06-12
1036Australia2026-06-08
1037France2026-06-21
1038Australia2026-06-20
1039Argentina2026-06-14
1040Italy2026-06-30
1041India2026-06-09
1042Argentina2026-06-17
1043India2026-07-02
1044United Kingdom2026-06-25
1045Spain2026-06-05
1046Spain2026-06-15
1047Australia2026-06-10
1048Argentina2026-06-13
1049Spain2026-06-28

On-Demand Data

NameIdCountryDate
Alejandro H Iturbide1000India2026-06-08
James J Briddick1001Italy2026-06-07
Stacey X Venere1002India2026-06-24
Jennifer H Perin1003Russia2026-06-18
Alejandro R Nicka1004Spain2026-06-09
Maisha X Shinko1005Italy2026-06-12
Stacey C Venere1006Australia2026-06-26
Cody G Kusko1007Italy2026-07-02
Aika S Ostrosky1008Spain2026-06-07
Emily W Shinko1009Brazil2026-06-07
Jones Z Inouye1010United Kingdom2026-06-26
Ricardo Z Caudy1011Spain2026-06-17
Smith Z Marrier1012Russia2026-07-02
Jeanfrancois M Stockham1013Japan2026-07-02
Isabel L Darakjy1014Italy2026-06-24
Ricardo A Shinko1015Australia2026-06-14
Jones W Iturbide1016Canada2026-06-22
Wickens S Albares1017Japan2026-06-19
Morrow X Shinko1018Germany2026-06-06
Rodrigues Q Marrier1019Argentina2026-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci U RimAustraliaIvan Magalhaes NEGOTIATION
Isabel W WhobreySpainAnna Fali NEGOTIATION
Ricardo V WaycottJapanAnna Fali NEGOTIATION
Jeanfrancois O NickaRussiaAsiya Javayant RENEWAL
Nicolas V MacleadCanadaAsiya Javayant UNQUALIFIED
Stacey C AmigonRussiaIvan Magalhaes QUALIFIED
Tony G NickaJapanIvan Magalhaes PROPOSAL
Misaki X MorascaUnited KingdomIoni Bowcher NEGOTIATION
Jefferson A RulapaughItalyIvan Magalhaes NEW
Smith Q BowleyFranceAsiya Javayant NEGOTIATION
Mujtaba X MarrierArgentinaAnna Fali RENEWAL
Aika S StockhamAustraliaOnyama Limba NEW
Mujtaba K CaudyIndiaIoni Bowcher NEW
Smith V SchemmerJapanAnna Fali NEGOTIATION
Mayumi T WaycottItalyAmy Elsner RENEWAL
Aika P CampainRussiaIoni Bowcher PROPOSAL
Maria P FollerArgentinaStephen Shaw UNQUALIFIED
Antonio Q InouyeItalyElwin Sharvill PROPOSAL
Octavia B AlbaresCanadaIvan Magalhaes PROPOSAL
Jones J DilliardFranceXuxue Feng NEW
Johnson W StensethSpainOnyama Limba NEGOTIATION
Sinclair Y MaletItalyXuxue Feng NEW
Aditya B CampainAustraliaXuxue Feng RENEWAL
Jennifer L ShinkoRussiaAsiya Javayant RENEWAL
Murillo P AmigonGermanyAmy Elsner QUALIFIED
Mujtaba D BriddickBrazilIvan Magalhaes RENEWAL
Emily G MorascaBrazilAmy Elsner PROPOSAL
Ricardo D InouyeArgentinaIvan Magalhaes NEGOTIATION
Ashley D RutaGermanyIoni Bowcher PROPOSAL
Antonio D ButtArgentinaAsiya Javayant QUALIFIED
Costa M GillianAustraliaAmy Elsner RENEWAL
Juan D MaletRussiaAmy Elsner UNQUALIFIED
Ashley N StockhamGermanyStephen Shaw PROPOSAL
Octavia A GarufiAustraliaBernardo Dominic UNQUALIFIED
Morrow B KuskoRussiaXuxue Feng NEGOTIATION
Izzy V MacleadUnited KingdomElwin Sharvill PROPOSAL
Kadeem L DoeItalyOnyama Limba UNQUALIFIED
Leja B RulapaughFranceBernardo Dominic NEGOTIATION
Chavez J RutaIndiaAmy Elsner QUALIFIED
Mujtaba K GlickBrazilAnna 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>