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
Juan N WaycottCanadaStephen Shaw NEGOTIATION
Antonio R WieserArgentinaOnyama Limba QUALIFIED
Maria K IturbideUnited KingdomXuxue Feng NEW
Johnson F DarakjyIndiaElwin Sharvill NEGOTIATION
Costa H PaprockiAustraliaElwin Sharvill UNQUALIFIED
Cody P KolmetzFranceStephen Shaw RENEWAL
Deepesh Y CampainGermanyOnyama Limba PROPOSAL
Deepesh Z GlickJapanIoni Bowcher UNQUALIFIED
Darci I SchemmerBrazilElwin Sharvill UNQUALIFIED
Morrow Q NickaSpainIvan Magalhaes QUALIFIED
Rodrigues R FigeroaCanadaOnyama Limba RENEWAL
Alejandro A ChuiGermanyIvan Magalhaes UNQUALIFIED
Mujtaba F DilliardGermanyBernardo Dominic NEGOTIATION
Isabel Q RimGermanyIvan Magalhaes QUALIFIED
Silvio X FollerFranceXuxue Feng UNQUALIFIED
Wickens E CampainSpainXuxue Feng UNQUALIFIED
Jones B KolmetzIndiaIvan Magalhaes UNQUALIFIED
Jefferson Z ChuiUnited KingdomIoni Bowcher QUALIFIED
Nicolas E WhobreyIndiaAsiya Javayant NEW
Smith L AlbaresFranceAnna Fali QUALIFIED
Adams F BriddickItalyAmy Elsner NEW
Greenwood B MaletArgentinaBernardo Dominic RENEWAL
Misaki A PaprockiCanadaStephen Shaw NEW
James J PaprockiFranceAmy Elsner NEGOTIATION
Darci P MorascaGermanyIoni Bowcher NEGOTIATION
Antonio U BriddickIndiaAsiya Javayant NEW
Aditya R GarufiFranceAmy Elsner NEGOTIATION
Kadeem P ButtItalyOnyama Limba QUALIFIED
Leon X SchemmerIndiaOnyama Limba NEGOTIATION
Rodrigues A FlosiRussiaXuxue Feng NEW
Octavia P SergiSpainXuxue Feng PROPOSAL
Maisha S PoquetteSpainIoni Bowcher QUALIFIED
Faith U WieserCanadaOnyama Limba NEGOTIATION
Leja B CaldareraGermanyIoni Bowcher QUALIFIED
Ricardo V SchemmerJapanAsiya Javayant QUALIFIED
Isabel S NestleCanadaOnyama Limba NEGOTIATION
Ivar C RulapaughSpainIvan Magalhaes NEGOTIATION
Izzy H OldroydJapanElwin Sharvill UNQUALIFIED
Munro V BologniaItalyStephen Shaw NEGOTIATION
James Y SchemmerCanadaAmy Elsner PROPOSAL
Jefferson J DarakjyIndiaOnyama Limba PROPOSAL
Jones H SlusarskiRussiaAsiya Javayant NEGOTIATION
Ashley K PoquetteSpainXuxue Feng NEW
James R CampainIndiaIvan Magalhaes RENEWAL
Juan N BologniaAustraliaXuxue Feng QUALIFIED
Stacey G GillianCanadaIvan Magalhaes NEGOTIATION
Antonio F SlusarskiSpainAmy Elsner RENEWAL
Octavia N WieserIndiaElwin Sharvill NEGOTIATION
Johnson F VocelkaRussiaAmy Elsner PROPOSAL
Rodrigues A MorascaFranceAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aika V WieserFranceAnna Fali NEGOTIATION
Kadeem O ChuiAustraliaXuxue Feng RENEWAL
Darci Z ButtBrazilXuxue Feng QUALIFIED
Murillo F CampainGermanyBernardo Dominic UNQUALIFIED
Aruna A CampainIndiaOnyama Limba RENEWAL
Stacey Q GarufiRussiaIvan Magalhaes NEGOTIATION
Octavia H OldroydRussiaXuxue Feng NEGOTIATION
Munro T ShinkoGermanyAmy Elsner RENEWAL
Kadeem L BologniaUnited KingdomIvan Magalhaes QUALIFIED
Munro P DoeFranceXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair U StockhamArgentina2026-06-29Chanay, Jeffrey A Esq NEGOTIATION1Ivan Magalhaes
1001Ashley U CaudyArgentina2026-06-26Morlong Associates RENEWAL50Stephen Shaw
1002Aruna U StockhamItaly2026-07-05Dorl, James J Esq QUALIFIED86Ivan Magalhaes
1003Jeanfrancois B BologniaAustralia2026-07-06Buckley Miller Wright NEW23Amy Elsner
1004Johnson R KuskoCanada2026-07-21Chanay, Jeffrey A Esq NEW31Onyama Limba
1005Jennifer P RutaArgentina2026-07-21Feltz Printing Service UNQUALIFIED63Xuxue Feng
1006Arvin D WhobreyItaly2026-07-13Feltz Printing Service NEW0Ioni Bowcher
1007Murillo G MarrierBrazil2026-06-23Rousseaux, Michael Esq PROPOSAL49Ivan Magalhaes
1008Antonio U KuskoIndia2026-06-24King, Christopher A Esq NEW38Stephen Shaw
1009Wickens U SergiItaly2026-06-22King, Christopher A Esq NEW88Bernardo Dominic
1010Mayumi W SlusarskiUnited Kingdom2026-07-08Commercial Press QUALIFIED7Elwin Sharvill
1011Silvio E WaycottIndia2026-06-30Chemel, James L Cpa UNQUALIFIED69Stephen Shaw
1012Nicolas K StockhamIndia2026-06-25Rangoni Of Florence UNQUALIFIED35Asiya Javayant
1013Rodrigues C SlusarskiAustralia2026-07-18Buckley Miller Wright NEGOTIATION75Elwin Sharvill
1014Munro H DoeArgentina2026-06-22Dorl, James J Esq RENEWAL14Ioni Bowcher
1015Juan T TollnerSpain2026-07-21Printing Dimensions NEW16Bernardo Dominic
1016Smith M OstroskyAustralia2026-07-15Rangoni Of Florence RENEWAL85Xuxue Feng
1017Octavia R RimItaly2026-07-12Chanay, Jeffrey A Esq NEGOTIATION80Stephen Shaw
1018Aditya M GarufiItaly2026-07-16Commercial Press QUALIFIED48Stephen Shaw
1019Julie O ShinkoCanada2026-06-30Morlong Associates RENEWAL33Stephen Shaw
1020Misaki J DarakjyCanada2026-07-20Dorl, James J Esq NEGOTIATION74Asiya Javayant
1021Izzy Z NickaIndia2026-06-26Feltz Printing Service NEGOTIATION58Ioni Bowcher
1022Munro F OldroydIndia2026-07-05Truhlar And Truhlar Attys QUALIFIED93Stephen Shaw
1023Wickens U WhobreyIndia2026-06-26Morlong Associates QUALIFIED61Amy Elsner
1024Izzy I TollnerItaly2026-07-10Morlong Associates PROPOSAL29Anna Fali
1025Kaitlin E MaletArgentina2026-06-23Dorl, James J Esq PROPOSAL98Amy Elsner
1026Clifford Y BowleyGermany2026-07-13Benton, John B Jr PROPOSAL94Ioni Bowcher
1027Morrow B StockhamAustralia2026-06-28Rousseaux, Michael Esq RENEWAL27Xuxue Feng
1028Leja L PoquetteArgentina2026-07-17Printing Dimensions RENEWAL26Asiya Javayant
1029Johnson L ButtGermany2026-06-24Buckley Miller Wright QUALIFIED2Stephen Shaw
1030Kaitlin R FerenczIndia2026-06-25Feiner Bros NEW55Stephen Shaw
1031Cody X DilliardRussia2026-06-29Buckley Miller Wright PROPOSAL33Stephen Shaw
1032Ashley C BologniaUnited Kingdom2026-07-10Feltz Printing Service UNQUALIFIED32Stephen Shaw
1033Mayumi I BologniaFrance2026-07-15Feiner Bros QUALIFIED83Ioni Bowcher
1034Tony Y OldroydUnited Kingdom2026-07-06Commercial Press RENEWAL39Anna Fali
1035James K ChuiIndia2026-07-20Chemel, James L Cpa RENEWAL52Amy Elsner
1036Juan Z ChuiBrazil2026-07-20Rangoni Of Florence UNQUALIFIED78Amy Elsner
1037Arvin Q FigeroaSpain2026-06-26Dorl, James J Esq UNQUALIFIED45Ivan Magalhaes
1038David O KolmetzRussia2026-06-26Buckley Miller Wright PROPOSAL19Stephen Shaw
1039Izzy L WhobreyBrazil2026-07-12Feiner Bros NEGOTIATION66Ivan Magalhaes
1040Murillo I BowleyCanada2026-06-23Truhlar And Truhlar Attys RENEWAL76Amy Elsner
1041Juan U AlbaresUnited Kingdom2026-06-26Feiner Bros QUALIFIED94Stephen Shaw
1042Isabel E IturbideCanada2026-07-15Buckley Miller Wright QUALIFIED21Amy Elsner
1043Claire S WhobreyItaly2026-06-22Rangoni Of Florence UNQUALIFIED31Xuxue Feng
1044Aruna U FlosiJapan2026-06-27Feiner Bros RENEWAL0Anna Fali
1045Izzy J InouyeJapan2026-07-18Feltz Printing Service QUALIFIED50Ioni Bowcher
1046Octavia X FigeroaJapan2026-07-02Printing Dimensions QUALIFIED31Amy Elsner
1047Izzy D RutaGermany2026-07-10Commercial Press PROPOSAL33Ioni Bowcher
1048Maisha I MorascaSpain2026-06-22Feiner Bros UNQUALIFIED54Ivan Magalhaes
1049Nicolas Y FlosiIndia2026-07-09Feiner Bros UNQUALIFIED74Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Jennifer X GauchoSpainElwin Sharvill RENEWAL
Cody B FerenczUnited KingdomXuxue Feng PROPOSAL
Cody K GlickAustraliaIoni Bowcher NEGOTIATION
Clifford W CaldareraIndiaStephen Shaw UNQUALIFIED
Jeanfrancois G RutaAustraliaIoni Bowcher NEGOTIATION
Morrow Q CaldareraBrazilXuxue Feng NEGOTIATION
Smith A FigeroaSpainAnna Fali QUALIFIED
Kadeem S GarufiBrazilXuxue Feng NEGOTIATION
Maisha Y MacleadJapanElwin Sharvill UNQUALIFIED
Francesco V FollerBrazilAsiya Javayant PROPOSAL
Salvatore P MorascaArgentinaAnna Fali UNQUALIFIED
Izzy F SergiSpainAnna Fali UNQUALIFIED
Octavia C DarakjyFranceIoni Bowcher NEGOTIATION
Costa W BologniaArgentinaAsiya Javayant RENEWAL
Clifford W TollnerGermanyAmy Elsner RENEWAL
Leon W WaycottRussiaXuxue Feng PROPOSAL
Izzy E InouyeItalyElwin Sharvill RENEWAL
Francesco L PaprockiSpainAnna Fali NEGOTIATION
Faith V AlbaresArgentinaIoni Bowcher RENEWAL
David O MaletGermanyIvan Magalhaes RENEWAL
Smith W FerenczUnited KingdomAmy Elsner NEW
Isabel O MaletRussiaOnyama Limba RENEWAL
Wickens X RulapaughBrazilBernardo Dominic NEGOTIATION
Murillo X DilliardJapanIoni Bowcher NEGOTIATION
Nicolas Z InouyeFranceStephen Shaw RENEWAL
Alejandro V AmigonAustraliaAmy Elsner NEW
Isabel C DoeAustraliaStephen Shaw RENEWAL
Morrow N MaletCanadaElwin Sharvill PROPOSAL
Morrow C WieserCanadaOnyama Limba UNQUALIFIED
Isabel P KuskoSpainElwin Sharvill UNQUALIFIED
Adams A ShinkoRussiaAnna Fali QUALIFIED
Stacey L DarakjyBrazilBernardo Dominic UNQUALIFIED
Tony D WieserAustraliaAsiya Javayant NEGOTIATION
David Y BriddickIndiaBernardo Dominic UNQUALIFIED
Francesco S OstroskyIndiaAmy Elsner RENEWAL
Octavia P RimBrazilAmy Elsner QUALIFIED
Isabel I RutaBrazilXuxue Feng QUALIFIED
Leon F RulapaughCanadaOnyama Limba RENEWAL
David Z BowleyRussiaAnna Fali NEW
Smith M NickaUnited KingdomElwin Sharvill RENEWAL
Murillo T NestleAustraliaStephen Shaw QUALIFIED
Ricardo A MorascaGermanyAnna Fali QUALIFIED
Costa P IturbideJapanElwin Sharvill RENEWAL
Darci Z ChuiArgentinaBernardo Dominic UNQUALIFIED
Salvatore L ButtUnited KingdomOnyama Limba PROPOSAL
Kaitlin T NickaGermanyAmy Elsner NEGOTIATION
Alejandro X SaylorsCanadaXuxue Feng NEGOTIATION
Francesco C OldroydItalyStephen Shaw RENEWAL
Maria W MorascaCanadaIoni Bowcher UNQUALIFIED
Claire H TollnerRussiaOnyama Limba NEW
Frozen Columns
Name
Johnson D Ferencz
Tony L Morasca
Munro N Venere
Munro S Poquette
Octavia U Caldarera
Aditya P Doe
Ricardo F Schemmer
Ricardo W Schemmer
David I Perin
Tony K Ruta
Francesco R Dilliard
Misaki S Malet
Greenwood M Ruta
Mayumi M Maclead
Emily K Slusarski
Jones G Nestle
Clifford X Marrier
Greenwood E Wieser
David I Perin
Stacey N Tollner
Alejandro G Campain
Kaitlin J Oldroyd
Greenwood Y Chui
Isabel P Bowley
Julie K Nestle
Johnson A Glick
Tony W Saylors
Morrow G Caldarera
Jones T Briddick
Maria M Oldroyd
Octavia B Foller
Munro I Perin
Aruna M Marrier
Johnson G Maclead
Aruna Y Poquette
Antonio F Darakjy
Isabel V Vocelka
Costa D Foller
Cody F Briddick
Deepesh N Caudy
Munro D Nestle
Maisha U Sergi
Francesco R Flosi
David S Glick
Aika Q Chui
Murillo L Malet
Greenwood D Butt
Kadeem M Ferencz
Darci T Foller
Salvatore L Bolognia
IdCountryDate
1000Canada2026-07-19
1001Argentina2026-06-26
1002Brazil2026-07-08
1003Japan2026-07-19
1004Australia2026-07-02
1005Italy2026-07-01
1006Canada2026-07-03
1007Australia2026-07-21
1008Japan2026-07-14
1009Spain2026-07-15
1010Germany2026-07-09
1011India2026-07-11
1012Italy2026-07-21
1013Brazil2026-06-28
1014Spain2026-06-26
1015United Kingdom2026-06-28
1016Germany2026-06-24
1017India2026-07-03
1018Japan2026-06-29
1019Argentina2026-07-13
1020Argentina2026-07-21
1021Italy2026-07-21
1022Russia2026-06-24
1023Canada2026-07-12
1024Germany2026-06-30
1025Japan2026-07-10
1026Spain2026-07-10
1027India2026-07-03
1028Italy2026-07-16
1029India2026-06-30
1030Argentina2026-06-29
1031France2026-06-27
1032Brazil2026-06-23
1033Japan2026-07-21
1034Germany2026-06-28
1035Germany2026-07-12
1036India2026-07-02
1037Italy2026-07-05
1038Canada2026-06-24
1039Argentina2026-07-03
1040Spain2026-07-05
1041France2026-07-19
1042France2026-07-02
1043United Kingdom2026-07-15
1044Italy2026-07-08
1045Spain2026-07-06
1046Germany2026-07-07
1047France2026-07-01
1048Germany2026-07-13
1049Australia2026-07-11

On-Demand Data

NameIdCountryDate
Antonio N Dilliard1000United Kingdom2026-06-22
Faith F Stenseth1001United Kingdom2026-07-05
Rodrigues M Kusko1002Canada2026-06-23
Kaitlin O Gillian1003Spain2026-06-24
Ricardo Z Ostrosky1004Russia2026-06-26
Leon P Kolmetz1005India2026-07-17
Arvin C Nestle1006Argentina2026-07-02
Alejandro E Dilliard1007Russia2026-06-24
Aika M Saylors1008Argentina2026-07-02
Arvin Z Stockham1009Russia2026-06-23
Juan J Glick1010Italy2026-06-24
David P Vocelka1011Japan2026-06-22
Ricardo P Malet1012France2026-07-03
David B Inouye1013Argentina2026-07-06
Nicolas A Bowley1014Russia2026-06-28
Antonio T Darakjy1015Russia2026-07-12
Kadeem I Garufi1016Argentina2026-07-07
Rodrigues E Slusarski1017Japan2026-07-02
Kaitlin S Garufi1018Australia2026-07-13
Arvin X Whobrey1019India2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony Q RimIndiaOnyama Limba NEW
Adams F SaylorsAustraliaXuxue Feng RENEWAL
Aruna N CampainIndiaOnyama Limba UNQUALIFIED
Silvio I AlbaresCanadaXuxue Feng PROPOSAL
Juan D RoysterBrazilAsiya Javayant PROPOSAL
Salvatore B ShinkoGermanyIoni Bowcher UNQUALIFIED
Sinclair I FlosiRussiaStephen Shaw PROPOSAL
Julie G MacleadFranceXuxue Feng PROPOSAL
Antonio P GauchoBrazilIoni Bowcher UNQUALIFIED
Kaitlin T InouyeJapanIvan Magalhaes UNQUALIFIED
Nicolas U OstroskyItalyElwin Sharvill UNQUALIFIED
Mujtaba C CaldareraJapanOnyama Limba NEW
Stacey A FlosiJapanAmy Elsner NEW
Tony I KolmetzBrazilIvan Magalhaes PROPOSAL
Mujtaba X TollnerArgentinaElwin Sharvill QUALIFIED
Jefferson R MaletRussiaOnyama Limba QUALIFIED
Misaki K VocelkaIndiaIvan Magalhaes NEW
Salvatore J WhobreyRussiaXuxue Feng QUALIFIED
Claire H MarrierSpainAmy Elsner RENEWAL
Jeanfrancois D KuskoAustraliaIoni Bowcher NEW
Tony F InouyeAustraliaElwin Sharvill PROPOSAL
Isabel S VenereArgentinaIoni Bowcher RENEWAL
Morrow G MaletAustraliaXuxue Feng NEW
Darci S BologniaIndiaAmy Elsner QUALIFIED
Emily O GillianBrazilIvan Magalhaes NEGOTIATION
Tony X SchemmerJapanBernardo Dominic PROPOSAL
David O FerenczBrazilAsiya Javayant NEW
Leja R FollerUnited KingdomIvan Magalhaes PROPOSAL
Chavez E GarufiBrazilAnna Fali UNQUALIFIED
Francesco U FerenczAustraliaIvan Magalhaes PROPOSAL
Greenwood V SaylorsGermanyAsiya Javayant NEW
Munro D OldroydAustraliaStephen Shaw QUALIFIED
Greenwood A SlusarskiArgentinaAmy Elsner QUALIFIED
Darci U SaylorsArgentinaIoni Bowcher NEGOTIATION
Mayumi C TollnerSpainXuxue Feng NEGOTIATION
Ashley J BologniaArgentinaIvan Magalhaes QUALIFIED
Faith L GlickGermanyOnyama Limba PROPOSAL
Morrow I CaudyItalyStephen Shaw QUALIFIED
Deepesh D FollerAustraliaBernardo Dominic NEW
Morrow W WaycottUnited KingdomAsiya Javayant PROPOSAL

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