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
Francesco D RimItalyAsiya Javayant UNQUALIFIED
Clifford F WieserRussiaIoni Bowcher PROPOSAL
Maisha N AlbaresCanadaAmy Elsner RENEWAL
Antonio K RulapaughFranceOnyama Limba RENEWAL
Costa N VenereJapanAnna Fali UNQUALIFIED
Juan Q MaletUnited KingdomAmy Elsner PROPOSAL
Claire B FlosiBrazilElwin Sharvill UNQUALIFIED
Aditya O CaudyItalyOnyama Limba RENEWAL
Leon K KuskoIndiaStephen Shaw NEGOTIATION
Morrow L WaycottCanadaAsiya Javayant NEGOTIATION
Francesco Y SergiArgentinaStephen Shaw NEGOTIATION
Claire Y AlbaresIndiaStephen Shaw UNQUALIFIED
Stacey X WhobreyItalyOnyama Limba NEGOTIATION
Francesco Q FlosiAustraliaBernardo Dominic NEW
Jeanfrancois J DilliardCanadaIvan Magalhaes PROPOSAL
Kadeem C RoysterAustraliaAnna Fali NEW
Cody S StensethSpainAnna Fali NEGOTIATION
Julie Z KuskoBrazilIvan Magalhaes PROPOSAL
Juan E VenereGermanyOnyama Limba NEW
Jeanfrancois V RoysterAustraliaAsiya Javayant NEGOTIATION
Emily T KuskoCanadaOnyama Limba PROPOSAL
Silvio B FigeroaBrazilOnyama Limba UNQUALIFIED
Misaki Y BowleyRussiaAmy Elsner RENEWAL
Leja B FigeroaSpainAsiya Javayant NEGOTIATION
Ricardo C OstroskyBrazilElwin Sharvill NEW
Jeanfrancois T SlusarskiArgentinaXuxue Feng NEW
Claire V IturbideItalyAnna Fali NEGOTIATION
Aditya M FollerItalyAnna Fali RENEWAL
Juan Y ShinkoBrazilIoni Bowcher NEW
Emily S WhobreySpainStephen Shaw PROPOSAL
Morrow W NickaSpainElwin Sharvill NEW
Wickens Z WhobreyGermanyBernardo Dominic QUALIFIED
Leja I StockhamIndiaOnyama Limba NEGOTIATION
Francesco N CampainFranceIvan Magalhaes NEGOTIATION
Jefferson N MorascaSpainXuxue Feng NEGOTIATION
Antonio B CaudySpainXuxue Feng NEW
Darci I FerenczFranceElwin Sharvill QUALIFIED
Ivar V PoquetteAustraliaBernardo Dominic PROPOSAL
Maria H WhobreyRussiaAsiya Javayant PROPOSAL
Clifford D CaudyJapanStephen Shaw NEW
Ivar R SlusarskiGermanyStephen Shaw QUALIFIED
Darci F AlbaresIndiaIoni Bowcher NEW
Tony T VocelkaSpainAsiya Javayant QUALIFIED
Johnson H SergiItalyAnna Fali RENEWAL
Mayumi Z WieserSpainIvan Magalhaes NEW
Deepesh J MaletAustraliaXuxue Feng QUALIFIED
Maria T WieserUnited KingdomAnna Fali NEGOTIATION
Ricardo Z FlosiUnited KingdomIvan Magalhaes QUALIFIED
Alejandro R WaycottItalyElwin Sharvill PROPOSAL
Juan O RutaIndiaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Alejandro M StensethCanadaOnyama Limba PROPOSAL
Morrow G KuskoItalyElwin Sharvill NEGOTIATION
Greenwood N VocelkaArgentinaAmy Elsner PROPOSAL
Ricardo B VenereIndiaOnyama Limba NEGOTIATION
David I RimFranceElwin Sharvill QUALIFIED
Aruna Q FerenczItalyAnna Fali NEGOTIATION
Mujtaba R CaudyRussiaOnyama Limba RENEWAL
Johnson T RulapaughAustraliaElwin Sharvill RENEWAL
Jennifer L FerenczArgentinaIoni Bowcher QUALIFIED
Mayumi R ShinkoBrazilAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson S SergiIndia2026-07-11Truhlar And Truhlar Attys UNQUALIFIED9Xuxue Feng
1001Alejandro F MaletBrazil2026-07-27Rangoni Of Florence RENEWAL37Onyama Limba
1002Leja J GillianCanada2026-07-15Rangoni Of Florence NEGOTIATION71Stephen Shaw
1003Isabel E OldroydSpain2026-07-17Chapman, Ross E Esq PROPOSAL16Elwin Sharvill
1004Maria D RoysterItaly2026-08-03Feiner Bros PROPOSAL48Anna Fali
1005Aruna C PerinAustralia2026-07-15Feltz Printing Service UNQUALIFIED3Asiya Javayant
1006Nicolas X RoysterBrazil2026-07-18Rangoni Of Florence PROPOSAL37Asiya Javayant
1007Faith C PaprockiJapan2026-07-19Buckley Miller Wright QUALIFIED66Elwin Sharvill
1008Isabel O MorascaIndia2026-08-01Chapman, Ross E Esq PROPOSAL43Elwin Sharvill
1009James Q GarufiRussia2026-07-18Feltz Printing Service QUALIFIED90Amy Elsner
1010Leon U CaldareraCanada2026-08-08Benton, John B Jr UNQUALIFIED97Ioni Bowcher
1011Mujtaba R AlbaresUnited Kingdom2026-07-27Printing Dimensions RENEWAL33Stephen Shaw
1012Johnson F GarufiArgentina2026-08-07Chanay, Jeffrey A Esq RENEWAL57Elwin Sharvill
1013Maria G RimUnited Kingdom2026-07-27King, Christopher A Esq NEW77Ivan Magalhaes
1014Julie I OldroydIndia2026-08-06King, Christopher A Esq QUALIFIED76Bernardo Dominic
1015Wickens Y WaycottItaly2026-07-28Morlong Associates NEW54Anna Fali
1016Maria S InouyeRussia2026-08-06Feiner Bros RENEWAL52Asiya Javayant
1017Julie I VenereCanada2026-08-03Chapman, Ross E Esq NEGOTIATION29Amy Elsner
1018Ricardo U NickaBrazil2026-08-09Chapman, Ross E Esq PROPOSAL17Asiya Javayant
1019Jones C MarrierJapan2026-07-29Chemel, James L Cpa PROPOSAL26Amy Elsner
1020Antonio C MacleadAustralia2026-07-21Chanay, Jeffrey A Esq PROPOSAL47Xuxue Feng
1021Maisha M RoysterRussia2026-07-16Commercial Press NEW38Stephen Shaw
1022Izzy S FollerIndia2026-07-19Printing Dimensions NEGOTIATION67Anna Fali
1023Chavez U OldroydCanada2026-08-01Chanay, Jeffrey A Esq PROPOSAL24Amy Elsner
1024Johnson H FerenczItaly2026-07-17Commercial Press NEW52Stephen Shaw
1025Isabel N ChuiCanada2026-07-20Rangoni Of Florence RENEWAL86Ioni Bowcher
1026Jeanfrancois P SergiIndia2026-08-08Chemel, James L Cpa PROPOSAL92Amy Elsner
1027Ashley A ShinkoCanada2026-07-14Benton, John B Jr RENEWAL48Asiya Javayant
1028Jones E RutaIndia2026-07-13Chemel, James L Cpa NEGOTIATION15Ivan Magalhaes
1029Stacey Q MaletArgentina2026-07-28King, Christopher A Esq QUALIFIED96Bernardo Dominic
1030Jefferson N MacleadAustralia2026-07-20Rousseaux, Michael Esq NEW70Asiya Javayant
1031Stacey A StensethArgentina2026-08-05Dorl, James J Esq NEW49Xuxue Feng
1032Antonio Y BowleyBrazil2026-07-14Chapman, Ross E Esq QUALIFIED52Xuxue Feng
1033Jefferson A WhobreyCanada2026-07-17Chapman, Ross E Esq UNQUALIFIED97Ioni Bowcher
1034Kaitlin B MorascaBrazil2026-08-01King, Christopher A Esq NEGOTIATION83Ivan Magalhaes
1035Clifford R PaprockiCanada2026-07-30Feiner Bros RENEWAL80Ioni Bowcher
1036Adams F MacleadItaly2026-07-18Feiner Bros QUALIFIED36Ivan Magalhaes
1037Ashley J AmigonCanada2026-07-17King, Christopher A Esq RENEWAL70Xuxue Feng
1038Juan B RimSpain2026-07-29Chanay, Jeffrey A Esq UNQUALIFIED85Elwin Sharvill
1039Mujtaba H KuskoIndia2026-07-18Commercial Press NEGOTIATION28Elwin Sharvill
1040Silvio R TollnerFrance2026-07-17Rousseaux, Michael Esq NEW9Stephen Shaw
1041Murillo M WhobreySpain2026-08-07Feiner Bros UNQUALIFIED64Ioni Bowcher
1042Rodrigues H PoquetteUnited Kingdom2026-07-20Chemel, James L Cpa UNQUALIFIED59Ioni Bowcher
1043Jefferson B SchemmerBrazil2026-07-11Chemel, James L Cpa RENEWAL74Anna Fali
1044Cody U NestleGermany2026-07-27Benton, John B Jr RENEWAL77Ioni Bowcher
1045Emily W CaudyUnited Kingdom2026-07-21Commercial Press QUALIFIED87Ioni Bowcher
1046Salvatore R AlbaresIndia2026-07-15Buckley Miller Wright NEGOTIATION19Xuxue Feng
1047Claire Z DilliardSpain2026-08-03Chemel, James L Cpa PROPOSAL87Ioni Bowcher
1048Isabel H CaldareraSpain2026-08-06Chanay, Jeffrey A Esq QUALIFIED65Elwin Sharvill
1049Misaki O ButtBrazil2026-08-03Rousseaux, Michael Esq NEW22Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Claire M KolmetzSpainOnyama Limba RENEWAL
Johnson X FigeroaIndiaAsiya Javayant NEGOTIATION
Ricardo R MaletArgentinaAsiya Javayant NEGOTIATION
Arvin G DilliardBrazilAsiya Javayant UNQUALIFIED
Mujtaba A MorascaIndiaStephen Shaw UNQUALIFIED
Darci J SchemmerAustraliaOnyama Limba UNQUALIFIED
Claire Y CampainJapanXuxue Feng RENEWAL
Jennifer U WieserFranceStephen Shaw NEW
Chavez O AmigonBrazilIoni Bowcher QUALIFIED
Wickens L MorascaIndiaAnna Fali NEGOTIATION
Maisha C NickaJapanBernardo Dominic NEGOTIATION
Maria L SchemmerJapanXuxue Feng NEW
Smith W FigeroaFranceAnna Fali PROPOSAL
Izzy H FollerArgentinaXuxue Feng UNQUALIFIED
Silvio Z OldroydArgentinaIvan Magalhaes PROPOSAL
Morrow W SchemmerGermanyIvan Magalhaes PROPOSAL
Aditya O RutaBrazilIvan Magalhaes QUALIFIED
Johnson B CampainItalyElwin Sharvill RENEWAL
Cody Q StockhamAustraliaBernardo Dominic QUALIFIED
Leja C FollerIndiaAmy Elsner RENEWAL
Aditya Y CampainAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues O NickaRussiaAnna Fali NEW
Emily I IturbideArgentinaXuxue Feng NEW
Leon Z ButtUnited KingdomAmy Elsner UNQUALIFIED
Clifford U KolmetzAustraliaBernardo Dominic NEW
Jefferson N FerenczItalyIoni Bowcher QUALIFIED
Julie V SlusarskiGermanyOnyama Limba UNQUALIFIED
Kadeem A OstroskyIndiaBernardo Dominic UNQUALIFIED
Ricardo O WhobreyGermanyStephen Shaw PROPOSAL
Chavez P CampainBrazilOnyama Limba RENEWAL
Chavez W RulapaughSpainAsiya Javayant QUALIFIED
Alejandro P BriddickFranceElwin Sharvill RENEWAL
Cody B ShinkoAustraliaElwin Sharvill RENEWAL
Johnson B GarufiFranceXuxue Feng RENEWAL
Jeanfrancois G OldroydIndiaElwin Sharvill QUALIFIED
Wickens T IturbideIndiaXuxue Feng RENEWAL
Nicolas U FerenczBrazilIvan Magalhaes NEGOTIATION
Emily P FlosiAustraliaOnyama Limba PROPOSAL
Jefferson A FerenczCanadaBernardo Dominic RENEWAL
Tony B ButtItalyAsiya Javayant RENEWAL
Arvin N VenereRussiaBernardo Dominic RENEWAL
Arvin T KolmetzJapanIvan Magalhaes QUALIFIED
Aruna S SaylorsAustraliaXuxue Feng NEGOTIATION
Julie G BologniaGermanyOnyama Limba PROPOSAL
Stacey A GauchoUnited KingdomIoni Bowcher NEGOTIATION
Alejandro P GauchoAustraliaElwin Sharvill PROPOSAL
Jennifer N GarufiGermanyOnyama Limba QUALIFIED
Sinclair Q DoeUnited KingdomIvan Magalhaes RENEWAL
Aditya Q VenereArgentinaIvan Magalhaes RENEWAL
Faith B SaylorsGermanyXuxue Feng PROPOSAL
Frozen Columns
Name
Chavez H Wieser
Adams S Nestle
Antonio L Iturbide
Maria E Caldarera
Maisha S Vocelka
Chavez K Vocelka
Leon R Slusarski
Darci I Vocelka
Octavia X Nicka
Clifford T Ruta
Izzy Z Perin
Emily I Darakjy
Aruna D Nestle
Smith R Albares
Nicolas W Garufi
Jennifer C Maclead
Kaitlin M Paprocki
Deepesh W Saylors
Maisha D Darakjy
Kadeem X Garufi
Maisha S Rim
Stacey P Malet
David G Waycott
Salvatore G Rim
Nicolas G Oldroyd
Faith Q Doe
Misaki R Saylors
Misaki A Figeroa
Silvio G Butt
Tony C Ruta
Jennifer L Ferencz
Octavia W Glick
Emily M Foller
Misaki Y Venere
Adams D Glick
Salvatore S Wieser
Johnson O Vocelka
Adams L Butt
Sinclair L Albares
Smith W Morasca
Murillo I Royster
Claire K Garufi
Maria J Inouye
Wickens E Shinko
Kaitlin X Maclead
Morrow K Garufi
Murillo J Paprocki
Ricardo B Paprocki
Stacey D Perin
Mayumi V Malet
IdCountryDate
1000Germany2026-08-07
1001Germany2026-08-06
1002Japan2026-08-06
1003Australia2026-07-30
1004India2026-08-09
1005France2026-07-12
1006Brazil2026-08-03
1007India2026-07-30
1008Argentina2026-07-24
1009Brazil2026-07-18
1010India2026-08-04
1011Russia2026-07-23
1012United Kingdom2026-07-28
1013United Kingdom2026-07-12
1014India2026-07-19
1015Argentina2026-08-06
1016India2026-07-22
1017India2026-07-23
1018Spain2026-07-29
1019Australia2026-07-15
1020Australia2026-07-12
1021Argentina2026-07-11
1022United Kingdom2026-07-14
1023Brazil2026-07-11
1024Australia2026-08-07
1025Argentina2026-07-11
1026India2026-07-17
1027Brazil2026-07-25
1028Argentina2026-07-11
1029Germany2026-08-07
1030United Kingdom2026-07-12
1031France2026-07-21
1032Argentina2026-07-24
1033France2026-07-23
1034Canada2026-07-20
1035France2026-08-02
1036France2026-07-26
1037France2026-07-29
1038Russia2026-07-27
1039India2026-07-17
1040France2026-08-09
1041Italy2026-08-04
1042Brazil2026-07-27
1043India2026-07-20
1044India2026-07-17
1045Italy2026-07-30
1046Japan2026-07-16
1047India2026-07-12
1048Russia2026-07-13
1049Australia2026-07-26

On-Demand Data

NameIdCountryDate
Deepesh I Dilliard1000Australia2026-07-14
Ricardo Z Wieser1001India2026-07-16
Arvin T Nestle1002Spain2026-07-31
Rodrigues I Ostrosky1003Spain2026-07-13
Misaki Z Iturbide1004Russia2026-08-07
Tony G Royster1005Germany2026-07-28
Kadeem K Stockham1006Russia2026-08-06
Greenwood K Tollner1007Australia2026-07-16
Jefferson G Shinko1008Australia2026-07-23
Izzy Q Waycott1009Australia2026-07-16
James I Caudy1010Italy2026-08-07
Ricardo N Slusarski1011Japan2026-07-22
Ivar F Amigon1012Germany2026-08-05
Murillo O Schemmer1013Spain2026-07-13
Faith D Waycott1014Japan2026-08-06
Murillo M Royster1015Germany2026-07-11
Rodrigues K Stenseth1016Canada2026-07-26
Murillo M Stenseth1017Australia2026-08-01
Kaitlin U Saylors1018United Kingdom2026-07-20
Kaitlin Z Figeroa1019Australia2026-07-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony P ButtRussiaBernardo Dominic QUALIFIED
Nicolas L KuskoJapanOnyama Limba NEW
Juan A FlosiFranceStephen Shaw NEGOTIATION
Wickens V WaycottUnited KingdomIvan Magalhaes RENEWAL
Jennifer B AlbaresItalyIvan Magalhaes QUALIFIED
Johnson D FigeroaIndiaBernardo Dominic NEGOTIATION
Murillo F RimGermanyAmy Elsner RENEWAL
Jeanfrancois A BriddickCanadaXuxue Feng QUALIFIED
Aditya T RimUnited KingdomAsiya Javayant NEW
Silvio S SergiBrazilElwin Sharvill UNQUALIFIED
Salvatore F SergiRussiaIvan Magalhaes NEW
Munro T ButtAustraliaOnyama Limba PROPOSAL
Maria Y PerinArgentinaElwin Sharvill QUALIFIED
Clifford I PerinCanadaOnyama Limba PROPOSAL
Julie U StensethUnited KingdomStephen Shaw NEW
Ricardo J GillianFranceElwin Sharvill NEW
Mayumi K WhobreyItalyAmy Elsner PROPOSAL
Maisha Q GauchoSpainOnyama Limba PROPOSAL
Ashley L BriddickBrazilOnyama Limba QUALIFIED
Jennifer I MaletJapanIvan Magalhaes NEGOTIATION
Aditya A FollerFranceAmy Elsner NEGOTIATION
Juan F VocelkaRussiaElwin Sharvill PROPOSAL
Nicolas C SlusarskiIndiaStephen Shaw RENEWAL
Arvin D RoysterArgentinaIvan Magalhaes PROPOSAL
Octavia B RimFranceAsiya Javayant PROPOSAL
Ricardo V InouyeGermanyAmy Elsner NEW
Aditya M WaycottRussiaAnna Fali RENEWAL
Ivar F DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Isabel V BologniaGermanyIoni Bowcher QUALIFIED
Jennifer Z MaletItalyStephen Shaw NEGOTIATION
James Y PoquetteCanadaAmy Elsner NEGOTIATION
Faith R BologniaFranceXuxue Feng NEW
Julie C FollerItalyXuxue Feng NEW
Johnson A CaudyIndiaAnna Fali QUALIFIED
Rodrigues W ButtUnited KingdomAsiya Javayant NEW
Ricardo X NestleSpainAsiya Javayant NEW
Morrow S FerenczItalyBernardo Dominic RENEWAL
Greenwood M NestleFranceAnna Fali QUALIFIED
Adams Z OldroydUnited KingdomIvan Magalhaes RENEWAL
Kaitlin Q AlbaresItalyXuxue Feng UNQUALIFIED

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