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 K SaylorsJapanIvan Magalhaes RENEWAL
Misaki F RimIndiaAsiya Javayant NEW
Octavia B VocelkaFranceIoni Bowcher UNQUALIFIED
Jones V RoysterGermanyBernardo Dominic NEGOTIATION
Aditya Z FigeroaRussiaAnna Fali NEGOTIATION
Salvatore B FerenczSpainAmy Elsner NEGOTIATION
Munro U DarakjyBrazilAnna Fali NEW
Murillo T SchemmerUnited KingdomIvan Magalhaes RENEWAL
Maisha X TollnerCanadaAmy Elsner RENEWAL
Smith V GauchoItalyElwin Sharvill NEGOTIATION
Smith S NestleSpainXuxue Feng NEGOTIATION
Antonio B BologniaJapanBernardo Dominic RENEWAL
Emily N StockhamFranceXuxue Feng NEW
Julie N DarakjyArgentinaXuxue Feng NEW
Isabel B DilliardJapanStephen Shaw PROPOSAL
Jefferson E GillianJapanIvan Magalhaes RENEWAL
Aruna U FigeroaAustraliaIvan Magalhaes PROPOSAL
Maisha Z BologniaItalyAnna Fali RENEWAL
Rodrigues H MorascaIndiaAmy Elsner PROPOSAL
Rodrigues P KolmetzRussiaXuxue Feng RENEWAL
Emily Y InouyeItalyIvan Magalhaes RENEWAL
Sinclair M InouyeGermanyOnyama Limba PROPOSAL
Misaki E CaudySpainAnna Fali QUALIFIED
Mayumi V NestleIndiaAnna Fali NEW
Kaitlin X MarrierUnited KingdomElwin Sharvill QUALIFIED
Maria Z BriddickUnited KingdomIvan Magalhaes PROPOSAL
Aruna C FigeroaIndiaAsiya Javayant RENEWAL
Kadeem G RoysterRussiaIoni Bowcher NEGOTIATION
Clifford A ButtFranceAsiya Javayant NEW
Sinclair R PoquetteSpainIoni Bowcher PROPOSAL
Costa G DilliardItalyElwin Sharvill NEGOTIATION
Maisha F MaletJapanAsiya Javayant QUALIFIED
Maria D PaprockiCanadaStephen Shaw RENEWAL
Faith X SchemmerGermanyIvan Magalhaes RENEWAL
Nicolas J GarufiUnited KingdomIoni Bowcher UNQUALIFIED
Deepesh S BriddickIndiaStephen Shaw NEGOTIATION
Faith M SergiArgentinaAmy Elsner PROPOSAL
Nicolas W NickaIndiaXuxue Feng NEGOTIATION
Morrow D DilliardIndiaAnna Fali UNQUALIFIED
Isabel E WieserItalyOnyama Limba UNQUALIFIED
Kadeem H OstroskyUnited KingdomAsiya Javayant PROPOSAL
Tony X BologniaFranceBernardo Dominic QUALIFIED
Costa R MacleadIndiaIoni Bowcher NEW
Arvin B ChuiArgentinaAnna Fali PROPOSAL
Darci X DoeAustraliaXuxue Feng NEW
Maisha A RoysterAustraliaBernardo Dominic PROPOSAL
Deepesh T SchemmerCanadaBernardo Dominic RENEWAL
Aika M RimGermanyXuxue Feng PROPOSAL
Maisha T RutaItalyIoni Bowcher PROPOSAL
Kadeem D MacleadItalyAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez S KolmetzSpainBernardo Dominic NEGOTIATION
Johnson R AlbaresFranceStephen Shaw RENEWAL
Jones U KolmetzIndiaBernardo Dominic QUALIFIED
Francesco G CampainIndiaStephen Shaw NEGOTIATION
Mayumi H NestleCanadaIoni Bowcher NEW
Silvio R RoysterCanadaAmy Elsner UNQUALIFIED
Julie I DilliardGermanyXuxue Feng NEGOTIATION
Smith Z TollnerAustraliaIvan Magalhaes PROPOSAL
James P MaletBrazilIoni Bowcher NEGOTIATION
Jeanfrancois J ChuiRussiaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika B NickaUnited Kingdom2026-07-06Chemel, James L Cpa NEGOTIATION56Asiya Javayant
1001Kadeem V TollnerRussia2026-06-25Chapman, Ross E Esq RENEWAL10Onyama Limba
1002Aditya J MorascaSpain2026-06-29Truhlar And Truhlar Attys NEW79Onyama Limba
1003Ashley J KolmetzAustralia2026-07-09Dorl, James J Esq QUALIFIED12Asiya Javayant
1004Juan R RimRussia2026-06-25Commercial Press UNQUALIFIED16Xuxue Feng
1005Ricardo J AlbaresArgentina2026-07-10Commercial Press QUALIFIED58Bernardo Dominic
1006Morrow A GillianSpain2026-07-02Rousseaux, Michael Esq PROPOSAL95Bernardo Dominic
1007Aditya E GlickIndia2026-06-27King, Christopher A Esq PROPOSAL90Onyama Limba
1008Faith W PoquetteBrazil2026-07-15Rousseaux, Michael Esq QUALIFIED70Elwin Sharvill
1009Ashley O FollerJapan2026-07-11Feiner Bros RENEWAL85Ioni Bowcher
1010Izzy O RulapaughSpain2026-06-23Rangoni Of Florence RENEWAL63Xuxue Feng
1011Stacey F CaldareraGermany2026-06-26Rangoni Of Florence RENEWAL90Onyama Limba
1012Misaki W MacleadBrazil2026-07-10Dorl, James J Esq PROPOSAL74Ivan Magalhaes
1013Leja X WaycottFrance2026-06-29Chapman, Ross E Esq RENEWAL1Ioni Bowcher
1014Isabel L RoysterAustralia2026-06-30Truhlar And Truhlar Attys NEW22Asiya Javayant
1015Jefferson J StensethBrazil2026-07-08Commercial Press QUALIFIED20Onyama Limba
1016Kaitlin V PoquetteBrazil2026-06-29Chanay, Jeffrey A Esq PROPOSAL91Xuxue Feng
1017Costa E SergiJapan2026-07-05Buckley Miller Wright QUALIFIED49Ioni Bowcher
1018Jeanfrancois L RoysterFrance2026-07-03Rangoni Of Florence NEW12Amy Elsner
1019Silvio Q FollerGermany2026-06-24Rangoni Of Florence NEW79Amy Elsner
1020Aika V MaletRussia2026-07-10Buckley Miller Wright UNQUALIFIED73Bernardo Dominic
1021Kaitlin P GarufiUnited Kingdom2026-07-16Dorl, James J Esq UNQUALIFIED21Elwin Sharvill
1022Aika P RimRussia2026-07-02Rangoni Of Florence NEW84Bernardo Dominic
1023Jeanfrancois L KuskoGermany2026-07-07King, Christopher A Esq NEW36Elwin Sharvill
1024Murillo H RutaUnited Kingdom2026-07-10Benton, John B Jr UNQUALIFIED99Ivan Magalhaes
1025Jefferson N DarakjyGermany2026-07-04Chapman, Ross E Esq QUALIFIED2Amy Elsner
1026Murillo E PoquetteAustralia2026-06-20King, Christopher A Esq UNQUALIFIED28Anna Fali
1027Maisha F WieserBrazil2026-07-05Rangoni Of Florence RENEWAL31Xuxue Feng
1028Nicolas U AlbaresAustralia2026-07-15Chapman, Ross E Esq NEW7Bernardo Dominic
1029Aika I RimJapan2026-06-21Dorl, James J Esq QUALIFIED49Xuxue Feng
1030Greenwood H ShinkoCanada2026-07-04Chapman, Ross E Esq NEGOTIATION63Ioni Bowcher
1031Kaitlin J TollnerCanada2026-06-21Chapman, Ross E Esq NEGOTIATION57Bernardo Dominic
1032Arvin W BologniaSpain2026-07-02Morlong Associates NEW67Asiya Javayant
1033Francesco M WaycottAustralia2026-06-22King, Christopher A Esq NEW71Asiya Javayant
1034Alejandro Q PoquetteFrance2026-07-03Rousseaux, Michael Esq PROPOSAL35Onyama Limba
1035Antonio K FigeroaFrance2026-07-07King, Christopher A Esq QUALIFIED12Asiya Javayant
1036Johnson H DilliardFrance2026-07-12Truhlar And Truhlar Attys NEW54Onyama Limba
1037Julie I WaycottCanada2026-06-18Truhlar And Truhlar Attys QUALIFIED40Onyama Limba
1038Izzy P RulapaughItaly2026-07-03Feiner Bros RENEWAL36Anna Fali
1039James I WaycottJapan2026-07-14Feltz Printing Service QUALIFIED59Anna Fali
1040Juan Z ShinkoItaly2026-06-17Rousseaux, Michael Esq PROPOSAL93Asiya Javayant
1041Munro E PerinBrazil2026-07-15Dorl, James J Esq RENEWAL35Elwin Sharvill
1042Clifford K ChuiIndia2026-07-09Commercial Press UNQUALIFIED17Elwin Sharvill
1043Darci O FigeroaRussia2026-07-15Rousseaux, Michael Esq QUALIFIED93Ioni Bowcher
1044Leja A VocelkaUnited Kingdom2026-06-29Chapman, Ross E Esq NEGOTIATION75Asiya Javayant
1045Tony Z CaldareraBrazil2026-07-02Chapman, Ross E Esq NEGOTIATION40Ivan Magalhaes
1046Octavia G WhobreyIndia2026-07-07Chanay, Jeffrey A Esq NEW62Bernardo Dominic
1047David L WieserItaly2026-07-13Feiner Bros NEGOTIATION95Onyama Limba
1048Aika J MarrierGermany2026-06-18Morlong Associates RENEWAL96Ioni Bowcher
1049Jones Y ChuiArgentina2026-06-22Chemel, James L Cpa UNQUALIFIED26Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ivar P GauchoJapanXuxue Feng RENEWAL
Morrow I InouyeSpainIoni Bowcher UNQUALIFIED
Sinclair O ShinkoSpainAmy Elsner NEW
Aika K IturbideArgentinaAsiya Javayant NEGOTIATION
Kadeem H InouyeUnited KingdomXuxue Feng UNQUALIFIED
Murillo L VocelkaCanadaXuxue Feng UNQUALIFIED
Claire A FlosiJapanXuxue Feng RENEWAL
Nicolas B DarakjySpainBernardo Dominic QUALIFIED
Morrow R DarakjyItalyBernardo Dominic NEW
Emily S VocelkaFranceBernardo Dominic QUALIFIED
Smith O MorascaRussiaAmy Elsner NEW
Stacey Q GauchoRussiaStephen Shaw QUALIFIED
Adams I FollerJapanElwin Sharvill RENEWAL
Johnson L KolmetzRussiaAnna Fali NEW
Izzy X KolmetzRussiaAmy Elsner RENEWAL
Ricardo M MaletBrazilAsiya Javayant NEGOTIATION
Adams E RimAustraliaAmy Elsner NEGOTIATION
Faith Y BologniaUnited KingdomAsiya Javayant NEW
Silvio E IturbideIndiaElwin Sharvill RENEWAL
Ivar M StockhamSpainStephen Shaw QUALIFIED
Jones F RimSpainXuxue Feng UNQUALIFIED
Aruna R PerinBrazilXuxue Feng RENEWAL
Salvatore U RutaAustraliaAsiya Javayant NEW
Aditya E BologniaIndiaStephen Shaw RENEWAL
Wickens U FlosiArgentinaXuxue Feng RENEWAL
Alejandro C GlickFranceStephen Shaw NEW
Maisha Y NickaSpainAnna Fali UNQUALIFIED
Kadeem J CampainSpainAnna Fali PROPOSAL
Ricardo U WieserSpainAmy Elsner NEW
Cody O CaldareraGermanyAsiya Javayant NEW
Adams B ShinkoArgentinaIvan Magalhaes UNQUALIFIED
Aruna T VocelkaSpainIoni Bowcher NEW
Jeanfrancois T PoquetteCanadaBernardo Dominic UNQUALIFIED
Isabel O CampainArgentinaOnyama Limba UNQUALIFIED
Alejandro A PerinCanadaStephen Shaw QUALIFIED
Misaki P FigeroaArgentinaOnyama Limba NEGOTIATION
Munro L VenereGermanyAsiya Javayant NEW
Greenwood C GauchoRussiaElwin Sharvill NEW
Ricardo M DilliardUnited KingdomOnyama Limba UNQUALIFIED
Octavia A WieserSpainStephen Shaw NEW
Emily C CaldareraBrazilBernardo Dominic PROPOSAL
Isabel W PoquetteJapanAnna Fali NEW
Jeanfrancois R WhobreyFranceAnna Fali QUALIFIED
Clifford D WhobreyGermanyXuxue Feng PROPOSAL
Smith R FollerIndiaAmy Elsner NEGOTIATION
Silvio C CampainArgentinaBernardo Dominic UNQUALIFIED
Silvio N MaletAustraliaAsiya Javayant RENEWAL
Juan O WieserArgentinaElwin Sharvill UNQUALIFIED
Ivar V FollerGermanyIoni Bowcher NEGOTIATION
Maria F BologniaUnited KingdomOnyama Limba UNQUALIFIED
Frozen Columns
Name
Cody I Butt
Ricardo F Gaucho
Wickens C Rulapaugh
Nicolas C Poquette
Emily F Doe
Mayumi F Ruta
Kaitlin L Bowley
Claire U Caldarera
Jennifer S Paprocki
Jeanfrancois E Kusko
Cody W Schemmer
Aditya D Rim
Nicolas R Nestle
Emily Y Sergi
Murillo O Dilliard
Emily L Saylors
Greenwood V Venere
Murillo Y Caudy
Juan T Caudy
Maisha E Waycott
Leon U Doe
Mujtaba Y Stockham
James P Shinko
Morrow B Ostrosky
Ashley Y Dilliard
Costa Y Butt
Maisha H Ferencz
Sinclair I Flosi
Morrow S Chui
Jeanfrancois D Maclead
Costa O Malet
Costa Y Paprocki
Aika B Bowley
Jennifer V Butt
Nicolas G Caudy
Julie S Paprocki
Jefferson D Foller
Mayumi T Royster
Isabel W Maclead
Maisha T Dilliard
Maria W Schemmer
Leon O Paprocki
Wickens E Caudy
Kadeem E Waycott
Murillo H Sergi
Arvin O Gaucho
Murillo P Inouye
Chavez Y Gaucho
Misaki G Flosi
Silvio B Ostrosky
IdCountryDate
1000France2026-06-30
1001Argentina2026-06-26
1002Russia2026-07-02
1003Brazil2026-06-17
1004Canada2026-07-04
1005Italy2026-07-13
1006Italy2026-07-03
1007Brazil2026-07-09
1008Argentina2026-07-10
1009Italy2026-07-08
1010France2026-07-13
1011India2026-07-09
1012Japan2026-07-09
1013Canada2026-06-28
1014Italy2026-07-03
1015Canada2026-06-22
1016Canada2026-06-30
1017Japan2026-07-12
1018Australia2026-06-26
1019France2026-06-22
1020France2026-07-01
1021Canada2026-07-01
1022Australia2026-07-03
1023Italy2026-06-20
1024Germany2026-06-27
1025Italy2026-06-30
1026Spain2026-06-19
1027Spain2026-06-18
1028Germany2026-07-13
1029France2026-06-20
1030Japan2026-06-20
1031Germany2026-06-27
1032Canada2026-07-10
1033Germany2026-07-07
1034Italy2026-06-25
1035Brazil2026-07-10
1036Canada2026-07-01
1037France2026-07-07
1038Japan2026-07-15
1039Canada2026-07-15
1040Japan2026-07-11
1041Italy2026-07-09
1042Spain2026-06-22
1043Japan2026-07-08
1044United Kingdom2026-06-30
1045Germany2026-06-25
1046Russia2026-07-03
1047India2026-06-21
1048Canada2026-06-19
1049Germany2026-06-20

On-Demand Data

NameIdCountryDate
Aika H Flosi1000Canada2026-07-11
Deepesh K Bolognia1001United Kingdom2026-06-29
Silvio T Paprocki1002Canada2026-07-10
Cody P Malet1003Japan2026-06-21
Mujtaba Z Glick1004India2026-06-20
Clifford Y Figeroa1005Spain2026-07-14
Emily G Saylors1006Russia2026-07-11
Maria D Nestle1007Brazil2026-07-09
Jones Z Ostrosky1008India2026-07-05
Tony A Whobrey1009Canada2026-06-27
Johnson Z Perin1010Canada2026-07-10
Aruna X Kolmetz1011Japan2026-06-30
Rodrigues J Gillian1012Russia2026-06-27
Clifford Q Kolmetz1013France2026-06-30
Clifford W Butt1014United Kingdom2026-06-22
Emily A Slusarski1015United Kingdom2026-07-02
Munro X Kolmetz1016Canada2026-07-06
Rodrigues F Royster1017Argentina2026-07-08
Claire A Gaucho1018France2026-06-29
Julie K Nicka1019Brazil2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy O GillianAustraliaElwin Sharvill RENEWAL
Darci G DarakjyUnited KingdomAnna Fali PROPOSAL
Tony Q GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Nicolas O BowleyIndiaXuxue Feng PROPOSAL
Octavia R ShinkoItalyAmy Elsner RENEWAL
Aditya T FollerIndiaOnyama Limba UNQUALIFIED
Julie V MarrierCanadaIoni Bowcher PROPOSAL
Munro V AlbaresFranceIvan Magalhaes NEW
Ricardo F NickaGermanyBernardo Dominic NEW
Wickens A StockhamSpainAnna Fali QUALIFIED
Leon M StensethItalyStephen Shaw RENEWAL
Antonio C SlusarskiRussiaOnyama Limba UNQUALIFIED
Silvio N WieserSpainElwin Sharvill NEGOTIATION
Arvin I StockhamRussiaXuxue Feng RENEWAL
Greenwood O ShinkoCanadaIoni Bowcher QUALIFIED
Deepesh V PaprockiJapanOnyama Limba PROPOSAL
David A SlusarskiCanadaAmy Elsner NEGOTIATION
Emily Z BriddickIndiaIoni Bowcher UNQUALIFIED
Costa T OstroskyArgentinaElwin Sharvill NEW
Clifford S TollnerBrazilXuxue Feng NEW
Nicolas Y WaycottFranceAmy Elsner UNQUALIFIED
Jones A GarufiArgentinaAsiya Javayant QUALIFIED
Ivar Q OldroydFranceAsiya Javayant NEW
Julie A FollerRussiaAmy Elsner QUALIFIED
Johnson E BriddickAustraliaElwin Sharvill UNQUALIFIED
Emily R BologniaCanadaElwin Sharvill QUALIFIED
Aditya O CaldareraCanadaStephen Shaw NEGOTIATION
Maisha D CaudyItalyIvan Magalhaes PROPOSAL
David B FerenczIndiaBernardo Dominic RENEWAL
Costa Z GarufiSpainIoni Bowcher QUALIFIED
Maisha I SchemmerBrazilIvan Magalhaes UNQUALIFIED
Ashley J MarrierUnited KingdomIvan Magalhaes PROPOSAL
Cody M DarakjyCanadaStephen Shaw QUALIFIED
Leon T NickaCanadaXuxue Feng RENEWAL
Isabel H RoysterArgentinaIoni Bowcher PROPOSAL
Octavia C WhobreyItalyElwin Sharvill PROPOSAL
Jefferson H GlickAustraliaAsiya Javayant QUALIFIED
Leja H SergiBrazilOnyama Limba PROPOSAL
Faith R SlusarskiSpainBernardo Dominic UNQUALIFIED
Johnson X GauchoItalyIvan Magalhaes NEW

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