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
Faith H SaylorsItalyIvan Magalhaes UNQUALIFIED
Isabel T RulapaughBrazilAsiya Javayant NEGOTIATION
Emily S KuskoGermanyAsiya Javayant UNQUALIFIED
Kaitlin U SchemmerJapanAnna Fali PROPOSAL
Mayumi F NestleRussiaStephen Shaw RENEWAL
Leja J BowleyJapanIoni Bowcher UNQUALIFIED
Leon I FollerJapanElwin Sharvill RENEWAL
Mayumi B BriddickAustraliaBernardo Dominic QUALIFIED
Leja I WieserUnited KingdomAmy Elsner QUALIFIED
Ricardo J DoeItalyAsiya Javayant QUALIFIED
Murillo Y CampainJapanOnyama Limba NEGOTIATION
Salvatore H SaylorsCanadaXuxue Feng RENEWAL
Juan X DilliardRussiaStephen Shaw QUALIFIED
Aruna H PerinGermanyAmy Elsner QUALIFIED
Silvio G DilliardCanadaBernardo Dominic UNQUALIFIED
Jennifer M RoysterUnited KingdomOnyama Limba NEW
Emily A DarakjyItalyAsiya Javayant QUALIFIED
Deepesh Q VocelkaAustraliaBernardo Dominic QUALIFIED
Chavez A WhobreyFranceOnyama Limba NEW
Aika E BriddickArgentinaIoni Bowcher QUALIFIED
Francesco P SergiRussiaIoni Bowcher QUALIFIED
David C PaprockiFranceIvan Magalhaes NEGOTIATION
Jennifer S DarakjyGermanyOnyama Limba UNQUALIFIED
Sinclair Z AmigonBrazilElwin Sharvill UNQUALIFIED
Johnson E StensethArgentinaBernardo Dominic UNQUALIFIED
Jennifer L IturbideSpainElwin Sharvill QUALIFIED
Jefferson G PoquetteItalyXuxue Feng QUALIFIED
Antonio X KolmetzItalyIoni Bowcher PROPOSAL
James C VenereBrazilBernardo Dominic RENEWAL
Stacey S OldroydBrazilElwin Sharvill RENEWAL
Silvio F PoquetteSpainAsiya Javayant UNQUALIFIED
Leja T GillianSpainElwin Sharvill NEW
Faith V DilliardFranceXuxue Feng QUALIFIED
Tony S DilliardGermanyIvan Magalhaes RENEWAL
Isabel J RulapaughArgentinaAsiya Javayant NEW
Chavez B VocelkaFranceAmy Elsner NEW
Rodrigues W NestleItalyXuxue Feng RENEWAL
Ashley M GauchoArgentinaAmy Elsner NEW
Munro Q SaylorsSpainOnyama Limba PROPOSAL
Chavez I RutaSpainAnna Fali NEGOTIATION
Ashley E RoysterUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair B IturbideBrazilAsiya Javayant RENEWAL
Tony O MarrierArgentinaIoni Bowcher RENEWAL
James U InouyeItalyAmy Elsner NEGOTIATION
Juan C BriddickUnited KingdomOnyama Limba QUALIFIED
Emily M RoysterAustraliaAsiya Javayant NEGOTIATION
Jones X RulapaughArgentinaOnyama Limba NEW
Wickens Z FerenczCanadaIoni Bowcher NEGOTIATION
Ivar R PaprockiRussiaIvan Magalhaes RENEWAL
Chavez S InouyeCanadaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leon W BowleyIndiaBernardo Dominic RENEWAL
Jefferson H SchemmerFranceStephen Shaw RENEWAL
Ivar L PerinBrazilAsiya Javayant QUALIFIED
Darci J AlbaresGermanyElwin Sharvill PROPOSAL
Isabel W FerenczGermanyAsiya Javayant RENEWAL
Mayumi T RulapaughIndiaAmy Elsner RENEWAL
Izzy Z FerenczAustraliaIoni Bowcher RENEWAL
Ashley S MorascaItalyAmy Elsner PROPOSAL
Jefferson T ChuiIndiaStephen Shaw RENEWAL
Ivar A NickaFranceElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa K SaylorsArgentina2026-08-23King, Christopher A Esq RENEWAL89Bernardo Dominic
1001Greenwood H SaylorsAustralia2026-08-17Commercial Press RENEWAL35Asiya Javayant
1002Julie X CaldareraSpain2026-08-06King, Christopher A Esq PROPOSAL2Xuxue Feng
1003Munro U RulapaughJapan2026-08-16Feltz Printing Service UNQUALIFIED25Anna Fali
1004Greenwood M CampainItaly2026-08-25Chanay, Jeffrey A Esq NEW3Bernardo Dominic
1005Emily D ButtRussia2026-08-01Feltz Printing Service QUALIFIED60Onyama Limba
1006Juan Q KolmetzJapan2026-08-24King, Christopher A Esq NEGOTIATION36Ivan Magalhaes
1007Nicolas P RulapaughJapan2026-08-21Morlong Associates UNQUALIFIED40Ioni Bowcher
1008Deepesh M SlusarskiGermany2026-08-19Morlong Associates RENEWAL52Asiya Javayant
1009Jennifer J GillianCanada2026-08-24Chanay, Jeffrey A Esq NEGOTIATION20Bernardo Dominic
1010David G NestleIndia2026-08-04Chemel, James L Cpa UNQUALIFIED92Elwin Sharvill
1011Deepesh U SlusarskiAustralia2026-08-07Feiner Bros NEGOTIATION9Ioni Bowcher
1012Alejandro X CampainRussia2026-08-17Feltz Printing Service RENEWAL4Stephen Shaw
1013Johnson P MorascaRussia2026-07-30Chanay, Jeffrey A Esq NEGOTIATION88Xuxue Feng
1014Clifford K InouyeRussia2026-08-07Chanay, Jeffrey A Esq NEW38Stephen Shaw
1015Misaki U RimAustralia2026-08-23Rangoni Of Florence NEGOTIATION79Ioni Bowcher
1016Munro R BriddickRussia2026-08-28Feiner Bros QUALIFIED81Asiya Javayant
1017James V FlosiFrance2026-08-24Morlong Associates QUALIFIED28Asiya Javayant
1018Francesco O WhobreyCanada2026-08-07King, Christopher A Esq UNQUALIFIED88Elwin Sharvill
1019Clifford S FigeroaItaly2026-08-13Truhlar And Truhlar Attys QUALIFIED43Elwin Sharvill
1020David W DoeBrazil2026-07-30Benton, John B Jr QUALIFIED46Anna Fali
1021Isabel M NestleBrazil2026-08-27Buckley Miller Wright NEW12Ivan Magalhaes
1022Juan L GillianIndia2026-08-14Feiner Bros PROPOSAL59Anna Fali
1023Costa M AlbaresSpain2026-08-23Benton, John B Jr PROPOSAL74Xuxue Feng
1024Jefferson A SlusarskiSpain2026-08-11Chemel, James L Cpa NEW19Ivan Magalhaes
1025Ashley O DilliardJapan2026-08-07Truhlar And Truhlar Attys QUALIFIED57Asiya Javayant
1026Deepesh H GauchoArgentina2026-08-10Chemel, James L Cpa NEW66Onyama Limba
1027Silvio H MaletGermany2026-07-31Chapman, Ross E Esq UNQUALIFIED53Anna Fali
1028Smith U MarrierIndia2026-08-08Dorl, James J Esq NEW16Bernardo Dominic
1029Aruna P InouyeRussia2026-08-16Morlong Associates RENEWAL74Stephen Shaw
1030Maisha O SchemmerCanada2026-08-08Dorl, James J Esq NEW0Anna Fali
1031Jefferson Z DarakjyJapan2026-08-05Printing Dimensions NEW89Amy Elsner
1032Isabel L AmigonArgentina2026-07-31Feltz Printing Service NEW88Onyama Limba
1033Octavia Y CaldareraGermany2026-08-05Feltz Printing Service NEGOTIATION45Ioni Bowcher
1034Ricardo G BriddickUnited Kingdom2026-08-23Rangoni Of Florence QUALIFIED21Asiya Javayant
1035Salvatore O WieserItaly2026-08-03Rousseaux, Michael Esq RENEWAL58Ivan Magalhaes
1036Aika A CaldareraRussia2026-08-06Commercial Press PROPOSAL31Elwin Sharvill
1037Faith T RutaItaly2026-08-27Benton, John B Jr PROPOSAL7Ioni Bowcher
1038Faith O StockhamIndia2026-08-09Feiner Bros NEW91Ivan Magalhaes
1039Ivar N VenereGermany2026-08-18Feltz Printing Service RENEWAL6Xuxue Feng
1040Isabel U BologniaAustralia2026-08-08Benton, John B Jr PROPOSAL72Ivan Magalhaes
1041Ivar C BriddickGermany2026-08-25Benton, John B Jr QUALIFIED62Onyama Limba
1042Rodrigues V FerenczBrazil2026-08-20King, Christopher A Esq QUALIFIED26Ivan Magalhaes
1043Jefferson M AlbaresCanada2026-08-17King, Christopher A Esq UNQUALIFIED43Asiya Javayant
1044Darci B OldroydSpain2026-08-14King, Christopher A Esq PROPOSAL91Anna Fali
1045Misaki L NickaUnited Kingdom2026-08-19Benton, John B Jr UNQUALIFIED74Asiya Javayant
1046Francesco Y PoquetteArgentina2026-08-20Printing Dimensions RENEWAL83Onyama Limba
1047Morrow V GlickRussia2026-08-26Truhlar And Truhlar Attys PROPOSAL47Ioni Bowcher
1048Mayumi T DilliardFrance2026-08-25Benton, John B Jr PROPOSAL51Xuxue Feng
1049Mujtaba X GlickFrance2026-08-24Benton, John B Jr UNQUALIFIED51Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aika T OldroydAustraliaIvan Magalhaes QUALIFIED
Adams H DilliardBrazilElwin Sharvill QUALIFIED
Tony H KolmetzJapanXuxue Feng PROPOSAL
Aruna O VenereJapanAsiya Javayant NEGOTIATION
Octavia K FollerItalyIvan Magalhaes UNQUALIFIED
Maisha K SchemmerItalyAnna Fali PROPOSAL
Greenwood W GlickBrazilAsiya Javayant PROPOSAL
Salvatore N PerinItalyIoni Bowcher PROPOSAL
Misaki T RutaGermanyAmy Elsner PROPOSAL
Kadeem I WhobreyGermanyIoni Bowcher NEW
Tony F ChuiArgentinaStephen Shaw NEW
Leon R PaprockiArgentinaIvan Magalhaes NEW
Jennifer S TollnerFranceAsiya Javayant QUALIFIED
Kaitlin W MaletCanadaAsiya Javayant UNQUALIFIED
Munro E MarrierIndiaXuxue Feng UNQUALIFIED
Jefferson I CaldareraSpainXuxue Feng NEGOTIATION
Wickens E SchemmerFranceXuxue Feng UNQUALIFIED
Kadeem M VocelkaJapanOnyama Limba UNQUALIFIED
Emily F OldroydIndiaOnyama Limba QUALIFIED
Aika G GillianJapanIoni Bowcher RENEWAL
Emily A SchemmerRussiaIvan Magalhaes QUALIFIED
Ashley Z VocelkaJapanXuxue Feng QUALIFIED
Juan D MacleadBrazilIoni Bowcher QUALIFIED
Kadeem W SlusarskiBrazilAsiya Javayant NEW
David L MaletIndiaIvan Magalhaes PROPOSAL
Stacey L CaldareraIndiaOnyama Limba PROPOSAL
David M MaletJapanOnyama Limba NEGOTIATION
Octavia Y BologniaUnited KingdomElwin Sharvill NEGOTIATION
Tony F RulapaughRussiaAmy Elsner PROPOSAL
Morrow Q StockhamIndiaAsiya Javayant PROPOSAL
Tony K BologniaUnited KingdomIvan Magalhaes UNQUALIFIED
Darci J SlusarskiFranceOnyama Limba NEGOTIATION
Smith E DarakjyGermanyAsiya Javayant PROPOSAL
Tony N RoysterArgentinaStephen Shaw QUALIFIED
Johnson M AlbaresCanadaOnyama Limba RENEWAL
Jones V PoquetteBrazilOnyama Limba UNQUALIFIED
Juan I DilliardItalyOnyama Limba QUALIFIED
Rodrigues X RoysterArgentinaOnyama Limba UNQUALIFIED
Ricardo P MaletBrazilXuxue Feng QUALIFIED
Sinclair S ShinkoItalyIvan Magalhaes NEW
Antonio R ButtBrazilBernardo Dominic QUALIFIED
Leon S RulapaughGermanyElwin Sharvill PROPOSAL
Kadeem B CaldareraSpainStephen Shaw QUALIFIED
Nicolas D StockhamUnited KingdomAnna Fali PROPOSAL
James Q OstroskyRussiaAmy Elsner NEW
Alejandro F PerinGermanyElwin Sharvill QUALIFIED
Alejandro C MorascaIndiaOnyama Limba NEGOTIATION
Smith B OldroydBrazilElwin Sharvill UNQUALIFIED
Aika J RoysterCanadaElwin Sharvill NEW
Adams C GarufiRussiaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Ivar A Bowley
Octavia B Stockham
Silvio N Chui
Kaitlin C Tollner
Jefferson J Ruta
Maria A Caudy
Leja N Inouye
Leon F Stockham
Munro Y Rulapaugh
Isabel O Doe
Antonio W Iturbide
Greenwood C Sergi
Adams Z Chui
Maria X Figeroa
Stacey O Ruta
Aditya R Slusarski
Jefferson M Butt
Silvio O Ruta
Aruna S Malet
Tony S Royster
Emily E Foller
Wickens E Campain
Juan A Whobrey
Costa Z Ferencz
Rodrigues H Inouye
Aditya Z Figeroa
Emily K Figeroa
Salvatore K Marrier
James L Wieser
Nicolas F Stockham
Jefferson X Briddick
Maria N Marrier
Stacey V Bowley
Adams X Bolognia
Cody J Perin
Adams O Kusko
Emily F Royster
Adams Q Ruta
Morrow D Amigon
Tony Z Stenseth
Munro M Nestle
Kaitlin H Foller
Rodrigues C Morasca
Wickens S Figeroa
Costa N Malet
Deepesh T Sergi
Aditya T Shinko
Francesco B Vocelka
Francesco W Perin
Jones X Campain
IdCountryDate
1000Italy2026-08-05
1001India2026-08-11
1002Italy2026-08-05
1003France2026-08-15
1004Japan2026-08-26
1005Spain2026-08-24
1006Australia2026-08-09
1007Argentina2026-08-04
1008United Kingdom2026-08-06
1009Australia2026-08-13
1010Japan2026-08-15
1011Italy2026-08-20
1012Italy2026-08-19
1013Argentina2026-08-12
1014Argentina2026-08-19
1015United Kingdom2026-08-13
1016Canada2026-08-20
1017France2026-08-21
1018Argentina2026-08-14
1019France2026-08-28
1020Spain2026-08-01
1021Italy2026-08-28
1022Russia2026-08-21
1023Germany2026-08-10
1024Japan2026-08-17
1025Australia2026-08-07
1026United Kingdom2026-08-10
1027United Kingdom2026-08-17
1028India2026-08-27
1029Germany2026-08-27
1030France2026-08-20
1031France2026-08-15
1032Spain2026-08-16
1033Argentina2026-08-16
1034Spain2026-08-01
1035United Kingdom2026-08-10
1036Canada2026-08-26
1037Canada2026-08-03
1038Australia2026-08-14
1039Russia2026-08-20
1040Canada2026-08-25
1041United Kingdom2026-08-02
1042Japan2026-08-17
1043Japan2026-08-24
1044Argentina2026-08-07
1045Japan2026-08-20
1046Germany2026-08-01
1047United Kingdom2026-08-14
1048Canada2026-08-14
1049India2026-08-06

On-Demand Data

NameIdCountryDate
Antonio K Waycott1000India2026-08-09
Darci C Tollner1001Canada2026-08-09
Izzy K Oldroyd1002Australia2026-08-03
Ricardo Z Inouye1003Russia2026-08-20
Murillo P Tollner1004India2026-08-11
Julie W Nestle1005Spain2026-08-22
Aika K Malet1006Brazil2026-08-23
Wickens G Bowley1007India2026-07-30
Leja J Bolognia1008France2026-08-14
Aditya Z Chui1009Germany2026-07-30
Juan F Whobrey1010Brazil2026-08-05
Ashley L Gaucho1011Germany2026-08-18
Clifford I Iturbide1012Brazil2026-08-27
Aruna V Darakjy1013Canada2026-08-25
Tony S Oldroyd1014France2026-08-02
Antonio I Glick1015Canada2026-08-14
Emily F Inouye1016India2026-08-21
Jennifer J Poquette1017Australia2026-08-18
Leja M Ruta1018India2026-08-28
Munro D Ferencz1019Germany2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo G SchemmerSpainIoni Bowcher RENEWAL
Isabel T AmigonUnited KingdomXuxue Feng NEGOTIATION
Maria S BologniaItalyStephen Shaw UNQUALIFIED
Arvin C ButtCanadaXuxue Feng QUALIFIED
Salvatore D MorascaIndiaXuxue Feng UNQUALIFIED
Adams X IturbideAustraliaIoni Bowcher UNQUALIFIED
Deepesh N FollerCanadaIvan Magalhaes PROPOSAL
Murillo C IturbideSpainOnyama Limba QUALIFIED
Johnson K PerinArgentinaAmy Elsner NEW
Munro W GarufiAustraliaBernardo Dominic PROPOSAL
Ashley Y MarrierGermanyStephen Shaw PROPOSAL
Jeanfrancois A GillianArgentinaBernardo Dominic PROPOSAL
Julie V PoquetteRussiaIoni Bowcher UNQUALIFIED
Leja R AmigonCanadaXuxue Feng NEW
Nicolas O VocelkaArgentinaAsiya Javayant PROPOSAL
Munro B MorascaGermanyOnyama Limba NEGOTIATION
Tony U BriddickIndiaIoni Bowcher RENEWAL
Nicolas G OstroskyCanadaElwin Sharvill NEW
Aruna B BowleyUnited KingdomAnna Fali UNQUALIFIED
Leon D AmigonItalyXuxue Feng QUALIFIED
Ivar W SaylorsRussiaIoni Bowcher QUALIFIED
Deepesh S KuskoAustraliaIoni Bowcher PROPOSAL
Deepesh X MaletArgentinaAsiya Javayant PROPOSAL
Murillo D MaletRussiaIoni Bowcher UNQUALIFIED
Arvin M RoysterItalyStephen Shaw RENEWAL
Mujtaba Y AmigonIndiaIoni Bowcher RENEWAL
Darci P AlbaresIndiaOnyama Limba NEW
Aditya M SergiRussiaAmy Elsner QUALIFIED
Adams J MacleadBrazilBernardo Dominic PROPOSAL
Munro N GauchoItalyBernardo Dominic NEGOTIATION
David P ButtSpainAnna Fali RENEWAL
Murillo M RoysterAustraliaAnna Fali PROPOSAL
Deepesh C SergiSpainXuxue Feng QUALIFIED
Izzy G DilliardArgentinaIoni Bowcher UNQUALIFIED
Isabel L RutaAustraliaElwin Sharvill NEW
David C DilliardItalyElwin Sharvill NEGOTIATION
Jeanfrancois V FigeroaIndiaAnna Fali NEGOTIATION
Octavia B FollerItalyIoni Bowcher NEGOTIATION
Claire X KuskoGermanyAnna Fali NEGOTIATION
Murillo L TollnerFranceAmy Elsner QUALIFIED

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