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
Maria P TollnerUnited KingdomBernardo Dominic NEGOTIATION
Cody I RimAustraliaIoni Bowcher PROPOSAL
Ricardo R BriddickSpainIvan Magalhaes RENEWAL
Jennifer G InouyeFranceAnna Fali UNQUALIFIED
Leon W WhobreyGermanyAsiya Javayant NEW
Juan H BriddickArgentinaAsiya Javayant NEGOTIATION
Antonio L FerenczRussiaOnyama Limba NEW
Francesco B StensethSpainIoni Bowcher NEW
James V KolmetzRussiaStephen Shaw QUALIFIED
Leon R MacleadSpainOnyama Limba UNQUALIFIED
Ivar Z RutaCanadaAnna Fali RENEWAL
Nicolas C InouyeAustraliaAnna Fali PROPOSAL
Cody J VocelkaCanadaOnyama Limba NEGOTIATION
Sinclair L PaprockiFranceAsiya Javayant RENEWAL
Emily Z VenereAustraliaXuxue Feng UNQUALIFIED
Misaki I GauchoRussiaElwin Sharvill NEW
Izzy J NestleBrazilIoni Bowcher UNQUALIFIED
James O ButtRussiaAnna Fali PROPOSAL
Jones J VocelkaCanadaAsiya Javayant RENEWAL
Juan F CaldareraFranceIvan Magalhaes RENEWAL
Izzy P BowleyItalyStephen Shaw NEW
Mujtaba E StockhamUnited KingdomElwin Sharvill UNQUALIFIED
Isabel O VenereAustraliaBernardo Dominic NEGOTIATION
Greenwood B InouyeSpainBernardo Dominic NEGOTIATION
Munro I CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Stacey A CaudyAustraliaAmy Elsner PROPOSAL
Munro Z NickaFranceStephen Shaw RENEWAL
Kadeem R MaletAustraliaIoni Bowcher NEW
Kadeem W BologniaAustraliaBernardo Dominic PROPOSAL
Emily I OldroydGermanyBernardo Dominic RENEWAL
Kadeem J DilliardBrazilElwin Sharvill QUALIFIED
Arvin L GillianUnited KingdomAnna Fali QUALIFIED
Sinclair B KolmetzUnited KingdomBernardo Dominic RENEWAL
Jones P CaudyRussiaAmy Elsner QUALIFIED
Emily M FollerRussiaAmy Elsner RENEWAL
Adams S PerinSpainAsiya Javayant PROPOSAL
Faith C GauchoFranceXuxue Feng NEGOTIATION
Chavez X FerenczAustraliaOnyama Limba QUALIFIED
Kaitlin D WieserIndiaAmy Elsner PROPOSAL
Kaitlin P FerenczRussiaBernardo Dominic NEW
Nicolas N OstroskyFranceBernardo Dominic UNQUALIFIED
Deepesh W DarakjyIndiaIoni Bowcher UNQUALIFIED
Maisha D OldroydAustraliaXuxue Feng NEW
Chavez D GillianBrazilOnyama Limba UNQUALIFIED
Aruna H ShinkoBrazilBernardo Dominic QUALIFIED
Misaki K FlosiBrazilIoni Bowcher PROPOSAL
Alejandro J WhobreyCanadaAnna Fali PROPOSAL
Rodrigues Z PerinGermanyIvan Magalhaes NEGOTIATION
Kadeem J FerenczArgentinaIvan Magalhaes NEGOTIATION
Leja A StockhamIndiaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Deepesh U SchemmerBrazilAmy Elsner NEW
Aruna I PoquetteIndiaBernardo Dominic UNQUALIFIED
Chavez L MarrierSpainStephen Shaw PROPOSAL
Leja Q BowleyBrazilIvan Magalhaes UNQUALIFIED
Kadeem J KolmetzArgentinaAmy Elsner NEGOTIATION
Silvio I PerinFranceIvan Magalhaes NEGOTIATION
Wickens Q SergiAustraliaIoni Bowcher NEGOTIATION
David P RutaItalyXuxue Feng NEGOTIATION
Tony O VocelkaIndiaAmy Elsner UNQUALIFIED
Mujtaba K StockhamUnited KingdomOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James K GlickIndia2026-07-02Chanay, Jeffrey A Esq QUALIFIED61Xuxue Feng
1001Salvatore I SchemmerIndia2026-06-03Commercial Press PROPOSAL66Onyama Limba
1002Morrow P PerinCanada2026-06-20Chanay, Jeffrey A Esq NEGOTIATION18Asiya Javayant
1003Jefferson E FerenczBrazil2026-06-22Chanay, Jeffrey A Esq PROPOSAL59Bernardo Dominic
1004Octavia U DarakjyJapan2026-06-26Rousseaux, Michael Esq NEW93Asiya Javayant
1005Jeanfrancois V ChuiGermany2026-06-26Chemel, James L Cpa UNQUALIFIED85Amy Elsner
1006Kadeem V BriddickJapan2026-06-07King, Christopher A Esq PROPOSAL13Ivan Magalhaes
1007Ashley A TollnerIndia2026-06-23Feltz Printing Service NEW67Onyama Limba
1008Clifford S OstroskyItaly2026-06-09Feiner Bros RENEWAL76Stephen Shaw
1009Costa M FigeroaSpain2026-07-02Truhlar And Truhlar Attys RENEWAL12Anna Fali
1010Aruna Q SlusarskiIndia2026-06-05Printing Dimensions PROPOSAL99Bernardo Dominic
1011Chavez A AlbaresIndia2026-06-27Benton, John B Jr NEGOTIATION98Ioni Bowcher
1012Jefferson Q SaylorsFrance2026-06-20Benton, John B Jr RENEWAL1Xuxue Feng
1013Alejandro V FerenczItaly2026-07-02Feiner Bros NEGOTIATION59Ioni Bowcher
1014Jennifer W StockhamFrance2026-06-04Rangoni Of Florence UNQUALIFIED60Bernardo Dominic
1015Leon N TollnerIndia2026-06-29Benton, John B Jr QUALIFIED1Asiya Javayant
1016Tony G TollnerCanada2026-06-07Chemel, James L Cpa UNQUALIFIED98Asiya Javayant
1017David C MaletItaly2026-06-20Morlong Associates NEGOTIATION43Bernardo Dominic
1018Jeanfrancois U OstroskyItaly2026-06-25Rangoni Of Florence UNQUALIFIED86Ioni Bowcher
1019Maria Q DarakjyUnited Kingdom2026-06-21Feltz Printing Service NEGOTIATION35Ioni Bowcher
1020Johnson J TollnerAustralia2026-06-24Feltz Printing Service RENEWAL16Bernardo Dominic
1021Izzy U RimJapan2026-07-02Dorl, James J Esq UNQUALIFIED24Asiya Javayant
1022Aditya K MacleadSpain2026-06-15Truhlar And Truhlar Attys NEW44Anna Fali
1023Adams A GillianItaly2026-06-11Dorl, James J Esq UNQUALIFIED18Onyama Limba
1024Ashley B StensethRussia2026-06-12Chanay, Jeffrey A Esq QUALIFIED89Bernardo Dominic
1025Emily Y GarufiUnited Kingdom2026-06-13King, Christopher A Esq QUALIFIED21Xuxue Feng
1026Smith A PaprockiFrance2026-06-20Chanay, Jeffrey A Esq NEW28Xuxue Feng
1027Leja B VocelkaUnited Kingdom2026-06-11Feltz Printing Service QUALIFIED62Bernardo Dominic
1028Arvin E VocelkaSpain2026-06-11Dorl, James J Esq QUALIFIED74Xuxue Feng
1029Deepesh K SchemmerGermany2026-06-04Feiner Bros RENEWAL5Ivan Magalhaes
1030Francesco T PerinAustralia2026-06-10Chanay, Jeffrey A Esq RENEWAL40Bernardo Dominic
1031Aika W KolmetzJapan2026-06-11Truhlar And Truhlar Attys NEGOTIATION43Asiya Javayant
1032Arvin X ShinkoIndia2026-06-23Chemel, James L Cpa NEGOTIATION32Anna Fali
1033Salvatore O VocelkaCanada2026-06-20Chanay, Jeffrey A Esq PROPOSAL91Amy Elsner
1034Faith B PaprockiUnited Kingdom2026-06-18Chanay, Jeffrey A Esq NEGOTIATION27Onyama Limba
1035Julie D PoquetteItaly2026-06-12Chanay, Jeffrey A Esq PROPOSAL54Stephen Shaw
1036Misaki B ChuiBrazil2026-06-27Rangoni Of Florence RENEWAL10Asiya Javayant
1037Wickens P StensethFrance2026-06-09Chapman, Ross E Esq UNQUALIFIED53Stephen Shaw
1038Deepesh C FerenczArgentina2026-06-14Buckley Miller Wright UNQUALIFIED60Asiya Javayant
1039Deepesh L NestleSpain2026-06-04Truhlar And Truhlar Attys UNQUALIFIED47Asiya Javayant
1040Octavia K PoquetteGermany2026-06-29Benton, John B Jr QUALIFIED53Bernardo Dominic
1041Jefferson K BologniaJapan2026-06-21Commercial Press RENEWAL95Ioni Bowcher
1042Juan R DoeRussia2026-06-09Rangoni Of Florence NEW8Bernardo Dominic
1043Kadeem K StensethJapan2026-06-08Printing Dimensions UNQUALIFIED75Elwin Sharvill
1044Greenwood K WaycottAustralia2026-06-20Feltz Printing Service NEGOTIATION32Stephen Shaw
1045Costa E SergiArgentina2026-06-08Commercial Press QUALIFIED51Bernardo Dominic
1046Jeanfrancois L RoysterRussia2026-06-22Chapman, Ross E Esq NEGOTIATION35Anna Fali
1047Kadeem X FollerUnited Kingdom2026-06-06Rangoni Of Florence NEGOTIATION99Ioni Bowcher
1048Costa D DoeRussia2026-06-03Printing Dimensions NEGOTIATION72Xuxue Feng
1049Jennifer O MorascaAustralia2026-06-19Rousseaux, Michael Esq PROPOSAL30Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
David F OstroskyArgentinaElwin Sharvill PROPOSAL
Aruna Y DarakjyBrazilAnna Fali RENEWAL
Stacey S CaldareraIndiaAnna Fali NEGOTIATION
Salvatore S BowleyItalyAmy Elsner NEW
Jennifer U BriddickAustraliaAsiya Javayant NEGOTIATION
Ashley H AmigonGermanyAsiya Javayant PROPOSAL
Greenwood T DoeIndiaElwin Sharvill PROPOSAL
Stacey P MaletArgentinaStephen Shaw NEGOTIATION
Julie K KuskoJapanAsiya Javayant NEW
Murillo Z FigeroaCanadaXuxue Feng QUALIFIED
Munro Z AlbaresCanadaBernardo Dominic NEGOTIATION
Arvin A NestleBrazilOnyama Limba UNQUALIFIED
Aditya E StockhamItalyAmy Elsner NEW
Silvio I PaprockiAustraliaStephen Shaw UNQUALIFIED
Chavez T FerenczJapanAmy Elsner RENEWAL
Ivar P MacleadAustraliaStephen Shaw RENEWAL
Clifford L FerenczFranceElwin Sharvill QUALIFIED
Mayumi T ButtFranceAnna Fali NEGOTIATION
Ivar Q OldroydUnited KingdomElwin Sharvill NEGOTIATION
Mayumi M VenereFranceIvan Magalhaes RENEWAL
Jennifer I ShinkoGermanyStephen Shaw QUALIFIED
Smith S RutaGermanyIoni Bowcher QUALIFIED
Maisha X GauchoGermanyAmy Elsner UNQUALIFIED
Aika N BowleyFranceStephen Shaw NEW
Salvatore D InouyeRussiaXuxue Feng RENEWAL
Claire X WaycottAustraliaElwin Sharvill NEW
Maria W PaprockiBrazilAsiya Javayant PROPOSAL
Ricardo B BriddickIndiaElwin Sharvill NEW
Wickens S RimCanadaIvan Magalhaes NEW
Aika T SaylorsArgentinaXuxue Feng UNQUALIFIED
Arvin G SaylorsRussiaAmy Elsner QUALIFIED
Silvio U GlickRussiaBernardo Dominic UNQUALIFIED
Ricardo N RimAustraliaStephen Shaw NEGOTIATION
Jones G OstroskyBrazilStephen Shaw PROPOSAL
Aika U IturbideBrazilXuxue Feng NEGOTIATION
Rodrigues C VenereIndiaOnyama Limba QUALIFIED
Salvatore A GarufiAustraliaAsiya Javayant UNQUALIFIED
Leon K KuskoCanadaAmy Elsner QUALIFIED
Isabel F DilliardFranceElwin Sharvill QUALIFIED
Ivar Q MacleadAustraliaBernardo Dominic UNQUALIFIED
Rodrigues P ChuiGermanyElwin Sharvill NEW
Murillo S RulapaughFranceAnna Fali RENEWAL
Aruna I RutaArgentinaAsiya Javayant NEW
Clifford K ShinkoArgentinaElwin Sharvill RENEWAL
Salvatore F MarrierCanadaAmy Elsner NEW
Murillo S VenereFranceBernardo Dominic NEW
Rodrigues E VenereRussiaAnna Fali NEGOTIATION
Jennifer S PerinBrazilStephen Shaw RENEWAL
Mujtaba T ButtAustraliaAsiya Javayant QUALIFIED
Murillo G WaycottGermanyElwin Sharvill NEGOTIATION
Frozen Columns
Name
Ivar W Nicka
Claire M Briddick
Nicolas N Maclead
Munro L Venere
Costa C Schemmer
Munro N Stockham
David Y Campain
Juan U Maclead
Leja M Glick
Ricardo O Iturbide
Aruna V Waycott
Misaki O Gillian
Mayumi F Stockham
Nicolas O Ostrosky
Ashley F Schemmer
Maria V Foller
Maisha V Campain
James Q Wieser
Adams W Whobrey
Greenwood S Saylors
Leja J Paprocki
Emily T Caudy
Chavez A Schemmer
Kaitlin Z Butt
Murillo W Perin
Julie L Whobrey
James N Ostrosky
Kaitlin L Paprocki
Ricardo A Inouye
Darci I Albares
Mujtaba K Morasca
Munro M Gaucho
Claire W Gillian
Murillo U Whobrey
Juan Z Kusko
Julie M Amigon
Claire S Campain
Jefferson T Poquette
Claire P Iturbide
Antonio F Maclead
Jennifer G Waycott
Francesco A Foller
Faith J Inouye
Alejandro O Amigon
James H Inouye
Silvio G Campain
Tony Q Campain
Cody O Nicka
Ivar P Nicka
Morrow F Caldarera
IdCountryDate
1000Japan2026-06-13
1001Italy2026-06-29
1002France2026-06-13
1003Italy2026-06-15
1004France2026-06-29
1005Russia2026-07-01
1006Argentina2026-06-24
1007Brazil2026-06-09
1008Australia2026-06-25
1009Australia2026-06-26
1010France2026-06-19
1011Canada2026-06-20
1012United Kingdom2026-06-20
1013Brazil2026-06-29
1014Germany2026-06-06
1015Canada2026-06-25
1016Canada2026-06-18
1017Canada2026-06-19
1018France2026-06-18
1019Germany2026-06-12
1020India2026-06-11
1021India2026-06-16
1022Australia2026-06-17
1023France2026-06-15
1024Australia2026-06-03
1025Australia2026-06-18
1026United Kingdom2026-06-23
1027France2026-06-09
1028United Kingdom2026-06-03
1029Australia2026-06-04
1030United Kingdom2026-06-20
1031Spain2026-06-17
1032Germany2026-06-21
1033Australia2026-06-11
1034Japan2026-06-19
1035Russia2026-06-09
1036India2026-06-10
1037Australia2026-06-20
1038Spain2026-06-09
1039Canada2026-06-12
1040Japan2026-06-09
1041Argentina2026-06-22
1042Canada2026-06-07
1043Australia2026-06-11
1044Argentina2026-07-02
1045Russia2026-06-16
1046Australia2026-06-15
1047Spain2026-06-21
1048Russia2026-06-04
1049Brazil2026-06-24

On-Demand Data

NameIdCountryDate
Isabel U Albares1000Canada2026-06-14
Ricardo F Garufi1001Australia2026-06-24
Alejandro W Bowley1002Russia2026-06-29
Claire Y Morasca1003United Kingdom2026-07-02
Kaitlin C Darakjy1004Argentina2026-06-30
Rodrigues Y Inouye1005Canada2026-06-03
Stacey C Stenseth1006Russia2026-06-08
Johnson Z Stockham1007Australia2026-06-18
Murillo H Wieser1008India2026-06-21
Kadeem H Nicka1009France2026-06-17
Jones F Ruta1010Australia2026-06-20
Stacey L Perin1011Germany2026-06-12
Kaitlin F Malet1012Argentina2026-06-06
Clifford F Whobrey1013Spain2026-06-20
Ivar J Maclead1014France2026-06-06
Aika W Darakjy1015Australia2026-07-01
Mayumi B Foller1016Spain2026-07-01
Isabel A Nicka1017Australia2026-06-19
Clifford Q Malet1018Germany2026-06-26
Morrow U Perin1019Canada2026-06-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones N MacleadAustraliaAsiya Javayant RENEWAL
Aditya Z StockhamArgentinaAsiya Javayant NEGOTIATION
Emily P CaudyJapanAnna Fali NEGOTIATION
Cody L SlusarskiRussiaAsiya Javayant NEGOTIATION
Isabel J CampainArgentinaOnyama Limba UNQUALIFIED
Ivar K RulapaughJapanIvan Magalhaes QUALIFIED
Leon Q BowleyAustraliaAmy Elsner QUALIFIED
Maisha O RutaSpainElwin Sharvill UNQUALIFIED
Morrow T WieserFranceElwin Sharvill QUALIFIED
Jefferson F GarufiItalyOnyama Limba RENEWAL
Mujtaba C GlickJapanIoni Bowcher PROPOSAL
Costa W DoeCanadaAsiya Javayant NEGOTIATION
Alejandro F MarrierJapanXuxue Feng PROPOSAL
Izzy V CaldareraJapanAsiya Javayant NEGOTIATION
Jeanfrancois C FollerJapanIvan Magalhaes UNQUALIFIED
Julie V BologniaRussiaIoni Bowcher PROPOSAL
Chavez H FlosiAustraliaStephen Shaw UNQUALIFIED
Smith Z DarakjyRussiaXuxue Feng PROPOSAL
Maria Y CaldareraBrazilStephen Shaw NEW
Emily C VocelkaJapanAnna Fali PROPOSAL
Rodrigues A RutaRussiaAmy Elsner RENEWAL
Costa P BriddickIndiaIvan Magalhaes PROPOSAL
Jefferson C NickaAustraliaElwin Sharvill UNQUALIFIED
Kaitlin S StockhamBrazilBernardo Dominic RENEWAL
Costa X PoquetteRussiaAnna Fali UNQUALIFIED
Alejandro R AmigonSpainIoni Bowcher NEW
Nicolas X FerenczAustraliaBernardo Dominic PROPOSAL
Rodrigues B ShinkoArgentinaIoni Bowcher RENEWAL
Aditya J PerinCanadaIoni Bowcher RENEWAL
Octavia S DilliardCanadaAsiya Javayant PROPOSAL
Mayumi E StensethUnited KingdomXuxue Feng NEW
Ashley T WaycottSpainStephen Shaw RENEWAL
Tony G DilliardRussiaOnyama Limba UNQUALIFIED
Cody Y VocelkaArgentinaAsiya Javayant NEW
Maisha F RimSpainIoni Bowcher RENEWAL
Mujtaba N OstroskyItalyBernardo Dominic PROPOSAL
Costa H RimJapanAsiya Javayant NEGOTIATION
Mujtaba C MaletItalyAsiya Javayant NEGOTIATION
Claire F SergiIndiaStephen Shaw RENEWAL
Claire Q MaletAustraliaAmy Elsner 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>