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
Adams M KuskoBrazilIvan Magalhaes RENEWAL
Chavez F BriddickArgentinaAsiya Javayant PROPOSAL
Smith P SergiBrazilIoni Bowcher RENEWAL
Emily X GarufiCanadaBernardo Dominic PROPOSAL
Smith V VenereUnited KingdomAmy Elsner RENEWAL
Sinclair V ShinkoRussiaElwin Sharvill UNQUALIFIED
Jones Z DoeGermanyAsiya Javayant NEW
Misaki R CampainGermanyIoni Bowcher PROPOSAL
Munro D AmigonUnited KingdomXuxue Feng UNQUALIFIED
Maisha N DarakjyCanadaOnyama Limba NEGOTIATION
Jennifer Y GarufiRussiaBernardo Dominic NEGOTIATION
Maisha B GillianAustraliaAnna Fali NEW
Salvatore R RutaCanadaAsiya Javayant PROPOSAL
Jones T TollnerBrazilIvan Magalhaes NEGOTIATION
Silvio B OldroydAustraliaIoni Bowcher NEW
Antonio H NestleAustraliaIvan Magalhaes QUALIFIED
Isabel F GauchoSpainXuxue Feng UNQUALIFIED
Cody W GillianArgentinaStephen Shaw NEW
Alejandro Z KolmetzJapanBernardo Dominic NEGOTIATION
Smith U BologniaJapanStephen Shaw RENEWAL
Aruna C SlusarskiArgentinaAmy Elsner NEGOTIATION
Sinclair U SlusarskiUnited KingdomElwin Sharvill NEGOTIATION
Kaitlin V SchemmerCanadaIvan Magalhaes NEW
Costa A MaletUnited KingdomAmy Elsner NEW
Rodrigues M MarrierArgentinaStephen Shaw RENEWAL
Leja E RimSpainIoni Bowcher RENEWAL
Jennifer G SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Ashley A KolmetzCanadaAnna Fali RENEWAL
Munro K SergiUnited KingdomBernardo Dominic UNQUALIFIED
Silvio S BriddickJapanAmy Elsner NEGOTIATION
Johnson Y BowleyFranceStephen Shaw NEW
Tony C ChuiRussiaAsiya Javayant QUALIFIED
Juan S FigeroaGermanyAsiya Javayant NEGOTIATION
Ivar W SchemmerRussiaBernardo Dominic UNQUALIFIED
James E RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Julie M BriddickIndiaAnna Fali NEW
Adams N AlbaresItalyAnna Fali NEW
Jones P DilliardGermanyAmy Elsner NEW
Aruna I TollnerJapanIvan Magalhaes NEW
Salvatore U RoysterFranceOnyama Limba NEGOTIATION
Misaki W RimUnited KingdomXuxue Feng PROPOSAL
Alejandro A MacleadUnited KingdomIvan Magalhaes NEGOTIATION
Aruna C OstroskyItalyOnyama Limba NEGOTIATION
David V BowleyItalyIvan Magalhaes PROPOSAL
Isabel A GauchoJapanAsiya Javayant RENEWAL
Adams Z IturbideSpainXuxue Feng UNQUALIFIED
Jennifer O WieserIndiaElwin Sharvill QUALIFIED
Juan M CampainItalyStephen Shaw NEGOTIATION
Izzy B BowleyBrazilStephen Shaw RENEWAL
Wickens X CaldareraArgentinaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci G CampainJapanAsiya Javayant NEGOTIATION
Jeanfrancois J SergiRussiaIoni Bowcher NEGOTIATION
Francesco D CaudyUnited KingdomStephen Shaw UNQUALIFIED
Munro P StensethRussiaIoni Bowcher QUALIFIED
Leja R SaylorsItalyIoni Bowcher QUALIFIED
James B MacleadBrazilXuxue Feng QUALIFIED
Alejandro J RoysterArgentinaStephen Shaw NEW
David O PoquetteItalyIvan Magalhaes NEGOTIATION
Leja G GlickJapanIvan Magalhaes NEW
Kaitlin E VocelkaBrazilAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois U BriddickBrazil2026-08-13Feiner Bros NEGOTIATION56Xuxue Feng
1001Smith L MorascaUnited Kingdom2026-08-11Buckley Miller Wright RENEWAL86Onyama Limba
1002Costa K IturbideJapan2026-07-18Rousseaux, Michael Esq PROPOSAL67Ioni Bowcher
1003Maisha W CaldareraUnited Kingdom2026-08-01Commercial Press NEW12Ioni Bowcher
1004Ivar A PaprockiGermany2026-08-12Chemel, James L Cpa NEW23Anna Fali
1005Chavez J NickaBrazil2026-08-16Chapman, Ross E Esq QUALIFIED33Ivan Magalhaes
1006Munro S DarakjyJapan2026-07-29Rousseaux, Michael Esq UNQUALIFIED24Onyama Limba
1007Murillo K KuskoJapan2026-08-08King, Christopher A Esq QUALIFIED79Ioni Bowcher
1008Jeanfrancois U PerinItaly2026-08-11Benton, John B Jr NEGOTIATION31Stephen Shaw
1009Aruna C SchemmerRussia2026-08-16King, Christopher A Esq PROPOSAL88Elwin Sharvill
1010Jefferson U GlickUnited Kingdom2026-08-15Chapman, Ross E Esq PROPOSAL10Ioni Bowcher
1011Arvin N StockhamJapan2026-07-30Feltz Printing Service NEW28Stephen Shaw
1012Kadeem G SergiSpain2026-07-31Truhlar And Truhlar Attys RENEWAL86Asiya Javayant
1013Darci S StensethArgentina2026-08-13Benton, John B Jr NEW31Asiya Javayant
1014Stacey O FerenczCanada2026-08-06Feiner Bros NEGOTIATION26Xuxue Feng
1015Antonio M PerinGermany2026-07-23Feltz Printing Service NEW56Ivan Magalhaes
1016Chavez E WieserCanada2026-07-19Chemel, James L Cpa NEGOTIATION9Anna Fali
1017Adams S DarakjyJapan2026-08-02Rousseaux, Michael Esq PROPOSAL58Xuxue Feng
1018Jones C DarakjyJapan2026-08-13Chemel, James L Cpa PROPOSAL39Amy Elsner
1019Arvin O GauchoIndia2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED27Anna Fali
1020Aditya P PerinSpain2026-07-25Benton, John B Jr NEW39Stephen Shaw
1021Adams K GarufiGermany2026-08-01Printing Dimensions NEW74Ivan Magalhaes
1022Faith Q PaprockiUnited Kingdom2026-07-23Printing Dimensions RENEWAL91Asiya Javayant
1023Rodrigues E MorascaUnited Kingdom2026-08-08Benton, John B Jr UNQUALIFIED54Stephen Shaw
1024Maisha K WaycottRussia2026-07-24Rousseaux, Michael Esq UNQUALIFIED53Amy Elsner
1025Mujtaba X InouyeRussia2026-07-24Truhlar And Truhlar Attys NEGOTIATION15Onyama Limba
1026Mayumi V WhobreyGermany2026-07-26Truhlar And Truhlar Attys UNQUALIFIED17Asiya Javayant
1027Faith A TollnerJapan2026-08-01Printing Dimensions NEGOTIATION86Amy Elsner
1028Darci I WhobreyFrance2026-07-24Dorl, James J Esq UNQUALIFIED90Onyama Limba
1029Rodrigues L DarakjyAustralia2026-08-08Dorl, James J Esq RENEWAL54Bernardo Dominic
1030Arvin D PerinIndia2026-08-10Benton, John B Jr RENEWAL39Xuxue Feng
1031Jefferson O OstroskyFrance2026-08-13King, Christopher A Esq RENEWAL81Asiya Javayant
1032Maria X CaudyFrance2026-08-13Morlong Associates RENEWAL51Anna Fali
1033Mujtaba V KuskoCanada2026-07-30Morlong Associates NEGOTIATION91Elwin Sharvill
1034Izzy W CaudyCanada2026-08-15Feiner Bros PROPOSAL70Ioni Bowcher
1035Maria F MarrierFrance2026-08-03Benton, John B Jr PROPOSAL54Amy Elsner
1036Aika W FerenczSpain2026-08-08Morlong Associates PROPOSAL75Anna Fali
1037Jefferson M ButtArgentina2026-08-16Commercial Press QUALIFIED14Onyama Limba
1038Jeanfrancois J PaprockiGermany2026-08-10Morlong Associates UNQUALIFIED40Amy Elsner
1039Faith O ChuiAustralia2026-07-19Buckley Miller Wright NEGOTIATION91Bernardo Dominic
1040Silvio A RulapaughFrance2026-08-06Feiner Bros PROPOSAL81Onyama Limba
1041Ricardo A AmigonJapan2026-07-25Feltz Printing Service PROPOSAL62Asiya Javayant
1042Silvio L RimGermany2026-08-02Chanay, Jeffrey A Esq PROPOSAL2Ioni Bowcher
1043Ricardo W FigeroaBrazil2026-07-25Buckley Miller Wright NEW63Ivan Magalhaes
1044Aika E WieserIndia2026-08-03Rangoni Of Florence QUALIFIED76Anna Fali
1045David H CaudyCanada2026-07-31King, Christopher A Esq PROPOSAL7Stephen Shaw
1046Nicolas K MaletIndia2026-07-30Truhlar And Truhlar Attys PROPOSAL81Ioni Bowcher
1047Julie I KolmetzGermany2026-08-11Dorl, James J Esq RENEWAL36Onyama Limba
1048Mayumi P FlosiAustralia2026-07-29Feiner Bros PROPOSAL46Bernardo Dominic
1049Wickens Z BowleyIndia2026-08-07Feltz Printing Service PROPOSAL13Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maria R RutaAustraliaXuxue Feng NEW
Kaitlin D AmigonGermanyIvan Magalhaes NEGOTIATION
Ricardo U FollerCanadaAnna Fali UNQUALIFIED
Misaki T CaldareraArgentinaXuxue Feng RENEWAL
Morrow D FerenczUnited KingdomIoni Bowcher UNQUALIFIED
Emily R StockhamRussiaOnyama Limba QUALIFIED
Chavez P RulapaughGermanyIoni Bowcher UNQUALIFIED
Chavez S SaylorsBrazilIoni Bowcher PROPOSAL
David Q KuskoJapanAmy Elsner UNQUALIFIED
James Y GauchoBrazilElwin Sharvill NEW
Izzy K MacleadSpainAmy Elsner NEW
Greenwood R RoysterRussiaOnyama Limba NEGOTIATION
Murillo N CaldareraUnited KingdomXuxue Feng QUALIFIED
Octavia H PerinJapanAmy Elsner NEGOTIATION
Jeanfrancois G IturbideCanadaOnyama Limba NEGOTIATION
Johnson C SergiIndiaBernardo Dominic QUALIFIED
Alejandro A FlosiRussiaIoni Bowcher UNQUALIFIED
Costa A VenereCanadaBernardo Dominic NEGOTIATION
Leon G AlbaresUnited KingdomBernardo Dominic NEW
Rodrigues E CampainArgentinaBernardo Dominic QUALIFIED
James H ShinkoBrazilAnna Fali RENEWAL
Maria Y PerinUnited KingdomAsiya Javayant NEGOTIATION
Misaki R GarufiJapanStephen Shaw UNQUALIFIED
Deepesh P GauchoBrazilOnyama Limba RENEWAL
Misaki E BriddickCanadaBernardo Dominic PROPOSAL
Silvio T NestleArgentinaIoni Bowcher RENEWAL
Jones X RoysterArgentinaAsiya Javayant RENEWAL
Mayumi A ShinkoCanadaIvan Magalhaes RENEWAL
Maisha F RulapaughArgentinaAsiya Javayant NEGOTIATION
Francesco M GarufiItalyAmy Elsner PROPOSAL
Aika Y PaprockiCanadaOnyama Limba PROPOSAL
Julie Q AmigonJapanAnna Fali NEGOTIATION
Arvin N ChuiSpainBernardo Dominic QUALIFIED
Alejandro A DarakjyIndiaXuxue Feng NEW
Jeanfrancois E RoysterArgentinaAnna Fali RENEWAL
Jefferson O FollerFranceStephen Shaw NEGOTIATION
Nicolas Q AlbaresSpainElwin Sharvill UNQUALIFIED
Alejandro H SergiJapanIvan Magalhaes PROPOSAL
David X BowleyRussiaAnna Fali PROPOSAL
Silvio L NestleJapanStephen Shaw UNQUALIFIED
Jennifer C RimUnited KingdomStephen Shaw QUALIFIED
Adams F NickaCanadaAmy Elsner UNQUALIFIED
Aika Q MarrierSpainBernardo Dominic PROPOSAL
Deepesh D BologniaUnited KingdomBernardo Dominic NEW
Stacey W BriddickGermanyIvan Magalhaes NEGOTIATION
Julie S OldroydCanadaStephen Shaw PROPOSAL
Stacey B FigeroaBrazilStephen Shaw QUALIFIED
Jennifer Y RoysterAustraliaOnyama Limba PROPOSAL
Maria I FerenczItalyIoni Bowcher NEW
Sinclair V AlbaresGermanyStephen Shaw QUALIFIED
Frozen Columns
Name
Octavia N Albares
Antonio K Caldarera
Jennifer B Paprocki
Stacey H Campain
Juan Y Bowley
Rodrigues V Paprocki
Claire T Foller
Rodrigues H Saylors
Munro T Doe
Leon I Whobrey
James S Tollner
Aditya G Sergi
Ricardo V Glick
Costa O Wieser
Nicolas T Rulapaugh
Leon B Paprocki
Leon G Paprocki
Maria D Gillian
Chavez R Briddick
Salvatore H Poquette
Aruna I Stockham
Ashley I Bowley
Juan I Slusarski
Claire T Paprocki
Sinclair E Ruta
Darci N Ostrosky
Arvin R Albares
Deepesh L Rim
Ricardo D Tollner
Jennifer X Bolognia
Cody V Slusarski
Johnson X Ferencz
Antonio P Dilliard
Leon N Figeroa
Mayumi S Caudy
Aditya F Stockham
Arvin J Dilliard
Clifford H Ferencz
Arvin X Sergi
Jones U Stenseth
Maisha T Ruta
Maria M Nicka
Chavez O Sergi
Octavia Y Paprocki
Ricardo H Paprocki
James K Schemmer
Julie U Kolmetz
Leja Z Briddick
Costa E Rim
Kadeem F Bolognia
IdCountryDate
1000United Kingdom2026-08-11
1001Argentina2026-08-15
1002Spain2026-07-30
1003Australia2026-08-16
1004Brazil2026-08-05
1005France2026-07-28
1006Spain2026-07-27
1007India2026-07-26
1008Italy2026-08-04
1009Japan2026-07-25
1010Russia2026-08-09
1011France2026-07-28
1012Italy2026-08-12
1013Brazil2026-07-30
1014Australia2026-08-09
1015Russia2026-07-31
1016Germany2026-07-22
1017Germany2026-07-19
1018Argentina2026-08-09
1019United Kingdom2026-08-14
1020Argentina2026-07-29
1021Japan2026-07-19
1022Argentina2026-07-27
1023Japan2026-08-04
1024France2026-08-09
1025Russia2026-08-10
1026Canada2026-08-04
1027India2026-07-30
1028Canada2026-08-04
1029Canada2026-07-18
1030Russia2026-07-23
1031Germany2026-08-07
1032United Kingdom2026-07-21
1033Argentina2026-08-16
1034United Kingdom2026-07-27
1035Italy2026-07-30
1036Italy2026-07-25
1037Russia2026-08-07
1038United Kingdom2026-08-03
1039Russia2026-08-15
1040Brazil2026-07-26
1041Japan2026-08-05
1042Argentina2026-07-26
1043Canada2026-08-07
1044Italy2026-08-13
1045Japan2026-08-15
1046United Kingdom2026-08-05
1047Canada2026-08-10
1048Brazil2026-08-09
1049Japan2026-07-27

On-Demand Data

NameIdCountryDate
Arvin C Doe1000United Kingdom2026-07-19
Clifford Y Bolognia1001Japan2026-08-09
Claire N Venere1002Germany2026-08-01
Mujtaba P Stockham1003France2026-08-16
Antonio U Kolmetz1004India2026-08-14
Jennifer G Rulapaugh1005Brazil2026-07-25
Emily R Venere1006United Kingdom2026-08-11
Clifford N Tollner1007France2026-08-09
David V Perin1008Germany2026-07-22
Mujtaba A Wieser1009India2026-08-09
Jones H Paprocki1010Australia2026-07-21
Kaitlin A Waycott1011Brazil2026-08-08
Salvatore R Rim1012Spain2026-07-26
Nicolas H Rulapaugh1013France2026-08-04
Arvin N Briddick1014Argentina2026-08-01
Ashley B Glick1015India2026-08-04
Alejandro E Butt1016Australia2026-08-08
Ivar K Campain1017Italy2026-07-25
Izzy A Caldarera1018Argentina2026-08-11
Arvin G Ostrosky1019Japan2026-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem R PerinArgentinaAmy Elsner NEW
Jennifer R VocelkaAustraliaElwin Sharvill QUALIFIED
Murillo V GlickIndiaAmy Elsner PROPOSAL
Leon J RimArgentinaElwin Sharvill RENEWAL
Salvatore B DarakjySpainIvan Magalhaes NEGOTIATION
Kadeem L PerinAustraliaIvan Magalhaes UNQUALIFIED
Jones N KolmetzJapanStephen Shaw NEGOTIATION
Munro Z DarakjyJapanAsiya Javayant PROPOSAL
Izzy B MacleadCanadaStephen Shaw UNQUALIFIED
Maria P RoysterRussiaElwin Sharvill QUALIFIED
Ivar M AmigonIndiaStephen Shaw NEW
Sinclair O StockhamGermanyXuxue Feng NEW
Stacey C GauchoRussiaOnyama Limba UNQUALIFIED
Cody Z RimRussiaAsiya Javayant NEW
Rodrigues C PaprockiBrazilAmy Elsner RENEWAL
Silvio X GillianBrazilOnyama Limba NEW
James A MaletGermanyAmy Elsner RENEWAL
Leon U CaudyRussiaStephen Shaw QUALIFIED
Mayumi R RulapaughIndiaAsiya Javayant NEW
Clifford F PaprockiRussiaOnyama Limba NEGOTIATION
Alejandro S ShinkoJapanAmy Elsner RENEWAL
Darci Q VocelkaAustraliaIvan Magalhaes RENEWAL
Stacey L RutaJapanElwin Sharvill NEGOTIATION
Darci H BriddickArgentinaAsiya Javayant PROPOSAL
Antonio S CampainBrazilElwin Sharvill QUALIFIED
Tony M AlbaresSpainXuxue Feng RENEWAL
Rodrigues B OldroydArgentinaAmy Elsner PROPOSAL
Isabel J MarrierBrazilOnyama Limba PROPOSAL
Izzy X StockhamFranceElwin Sharvill NEW
Stacey I IturbideIndiaStephen Shaw NEGOTIATION
Maisha D WhobreyAustraliaAsiya Javayant RENEWAL
Kaitlin V NickaArgentinaStephen Shaw QUALIFIED
Mujtaba X PaprockiArgentinaIoni Bowcher QUALIFIED
Costa E CampainBrazilXuxue Feng UNQUALIFIED
Leja U RoysterUnited KingdomStephen Shaw RENEWAL
Chavez X GlickUnited KingdomOnyama Limba UNQUALIFIED
Kadeem T DarakjyFranceStephen Shaw RENEWAL
Jefferson E GauchoSpainAsiya Javayant QUALIFIED
Misaki L GarufiCanadaStephen Shaw QUALIFIED
Isabel V IturbideArgentinaElwin Sharvill 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>