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
Jeanfrancois U CampainSpainAnna Fali QUALIFIED
Johnson Q RutaJapanBernardo Dominic NEGOTIATION
Cody H ChuiCanadaOnyama Limba QUALIFIED
Ashley R RulapaughSpainAmy Elsner PROPOSAL
Adams Q WaycottSpainAnna Fali QUALIFIED
Silvio J IturbideSpainXuxue Feng NEW
Aika G DilliardAustraliaBernardo Dominic RENEWAL
Claire N FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Rodrigues O SlusarskiAustraliaIoni Bowcher QUALIFIED
Greenwood I RutaUnited KingdomIvan Magalhaes NEGOTIATION
Maisha N SchemmerItalyBernardo Dominic NEGOTIATION
Tony W NickaCanadaStephen Shaw QUALIFIED
Kaitlin I CaudyBrazilXuxue Feng NEW
Stacey A StockhamRussiaAmy Elsner PROPOSAL
Tony N CaudyAustraliaElwin Sharvill PROPOSAL
James K CaudyItalyBernardo Dominic UNQUALIFIED
Wickens V OstroskyAustraliaBernardo Dominic RENEWAL
Faith B OldroydJapanAmy Elsner NEW
Cody R DilliardItalyAmy Elsner RENEWAL
Antonio N StensethAustraliaXuxue Feng NEGOTIATION
Adams G MorascaArgentinaAnna Fali NEW
Sinclair A DarakjyFranceOnyama Limba NEW
Francesco A CaudyJapanIoni Bowcher NEW
David Z OldroydBrazilAsiya Javayant QUALIFIED
Maria F FigeroaItalyOnyama Limba PROPOSAL
Silvio K VenereJapanAmy Elsner NEGOTIATION
Darci N StockhamAustraliaIvan Magalhaes RENEWAL
Greenwood G PoquetteSpainIvan Magalhaes NEW
Morrow X WhobreyFranceStephen Shaw RENEWAL
Mujtaba J AmigonItalyIoni Bowcher PROPOSAL
Leja S WieserSpainStephen Shaw QUALIFIED
Leja J ButtCanadaOnyama Limba RENEWAL
Nicolas R VocelkaBrazilXuxue Feng PROPOSAL
James D InouyeAustraliaBernardo Dominic PROPOSAL
Rodrigues L WaycottRussiaElwin Sharvill NEGOTIATION
Izzy R InouyeRussiaAnna Fali NEGOTIATION
Cody J VocelkaJapanOnyama Limba QUALIFIED
Jones M NestleAustraliaElwin Sharvill NEGOTIATION
Stacey V InouyeFranceElwin Sharvill QUALIFIED
Munro M VenereArgentinaOnyama Limba NEW
Silvio K VocelkaIndiaAmy Elsner QUALIFIED
Jefferson T FollerCanadaOnyama Limba UNQUALIFIED
Leon T StensethArgentinaAsiya Javayant UNQUALIFIED
James N DoeJapanElwin Sharvill PROPOSAL
Faith R InouyeRussiaXuxue Feng PROPOSAL
Izzy D RulapaughBrazilIvan Magalhaes UNQUALIFIED
Antonio C OstroskyUnited KingdomIvan Magalhaes NEW
Rodrigues L SlusarskiSpainIoni Bowcher PROPOSAL
Isabel K DilliardGermanyAsiya Javayant UNQUALIFIED
David U NickaBrazilAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia Y PaprockiGermanyAmy Elsner NEGOTIATION
Leon L IturbideArgentinaIoni Bowcher NEGOTIATION
Darci L OldroydUnited KingdomAmy Elsner NEGOTIATION
Greenwood B InouyeUnited KingdomIoni Bowcher PROPOSAL
Ivar L CampainBrazilBernardo Dominic NEGOTIATION
Julie N PoquetteUnited KingdomAsiya Javayant QUALIFIED
Faith Z SlusarskiRussiaAmy Elsner NEGOTIATION
Maria W RutaJapanBernardo Dominic NEGOTIATION
Maria L SaylorsGermanyOnyama Limba NEGOTIATION
Arvin A ShinkoFranceIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens W BologniaJapan2026-07-29Dorl, James J Esq RENEWAL70Bernardo Dominic
1001Izzy T BowleyCanada2026-07-11Buckley Miller Wright NEGOTIATION18Amy Elsner
1002Salvatore J DoeAustralia2026-07-22Buckley Miller Wright NEGOTIATION42Bernardo Dominic
1003Emily T FollerBrazil2026-07-25Chanay, Jeffrey A Esq PROPOSAL16Elwin Sharvill
1004Faith V NestleArgentina2026-07-29Commercial Press NEW8Bernardo Dominic
1005Murillo N ButtSpain2026-07-31Rangoni Of Florence NEGOTIATION71Bernardo Dominic
1006Antonio H VenereFrance2026-07-10Feltz Printing Service RENEWAL0Ioni Bowcher
1007Sinclair M PoquetteBrazil2026-07-18Rangoni Of Florence QUALIFIED18Asiya Javayant
1008Izzy T PaprockiAustralia2026-07-17Feiner Bros NEGOTIATION65Stephen Shaw
1009Murillo B GarufiArgentina2026-07-19Chanay, Jeffrey A Esq PROPOSAL91Ioni Bowcher
1010Maria E BowleyJapan2026-07-30Chapman, Ross E Esq RENEWAL76Ioni Bowcher
1011Johnson P GlickArgentina2026-07-21Benton, John B Jr RENEWAL16Asiya Javayant
1012Cody L ChuiGermany2026-07-31Commercial Press NEW85Stephen Shaw
1013Kaitlin C BowleyFrance2026-07-16Rousseaux, Michael Esq QUALIFIED91Amy Elsner
1014Ricardo P PoquetteJapan2026-07-18Buckley Miller Wright QUALIFIED8Anna Fali
1015Aika B TollnerArgentina2026-07-30Feiner Bros UNQUALIFIED69Anna Fali
1016Julie G DilliardSpain2026-08-02Truhlar And Truhlar Attys RENEWAL90Ioni Bowcher
1017Alejandro C PoquetteArgentina2026-07-21Feltz Printing Service PROPOSAL52Onyama Limba
1018Aruna S FollerIndia2026-07-11Buckley Miller Wright NEGOTIATION32Ivan Magalhaes
1019Cody K WieserRussia2026-07-09King, Christopher A Esq NEGOTIATION14Xuxue Feng
1020Munro Z FlosiCanada2026-07-16King, Christopher A Esq PROPOSAL54Amy Elsner
1021Arvin U RutaCanada2026-07-25Commercial Press UNQUALIFIED7Ivan Magalhaes
1022Johnson Z MaletJapan2026-07-27Morlong Associates QUALIFIED47Asiya Javayant
1023Isabel M TollnerBrazil2026-07-21Truhlar And Truhlar Attys NEW36Onyama Limba
1024Munro A InouyeRussia2026-07-18Rousseaux, Michael Esq PROPOSAL95Amy Elsner
1025Maisha E DoeRussia2026-07-08Benton, John B Jr UNQUALIFIED75Ioni Bowcher
1026Costa H AmigonFrance2026-08-03Feltz Printing Service PROPOSAL65Ivan Magalhaes
1027Jeanfrancois C SlusarskiIndia2026-07-27Rousseaux, Michael Esq UNQUALIFIED84Xuxue Feng
1028Ricardo P BriddickItaly2026-07-26Chemel, James L Cpa QUALIFIED13Elwin Sharvill
1029Alejandro M IturbideAustralia2026-08-02Commercial Press QUALIFIED15Ioni Bowcher
1030Emily I SlusarskiSpain2026-07-19Truhlar And Truhlar Attys NEGOTIATION92Ivan Magalhaes
1031Mayumi A NestleAustralia2026-07-23Dorl, James J Esq UNQUALIFIED89Stephen Shaw
1032Aika K DilliardArgentina2026-07-19Dorl, James J Esq NEW31Elwin Sharvill
1033Murillo G RutaFrance2026-07-13Feiner Bros QUALIFIED29Amy Elsner
1034Clifford C IturbideItaly2026-07-12Chapman, Ross E Esq PROPOSAL54Ioni Bowcher
1035Morrow G GarufiBrazil2026-07-26Chanay, Jeffrey A Esq NEW42Anna Fali
1036Murillo T CampainGermany2026-07-27Morlong Associates UNQUALIFIED52Onyama Limba
1037Deepesh Y FlosiBrazil2026-07-19Truhlar And Truhlar Attys PROPOSAL83Xuxue Feng
1038Francesco B InouyeSpain2026-07-17Buckley Miller Wright PROPOSAL10Stephen Shaw
1039Jeanfrancois H WhobreyCanada2026-07-05Feiner Bros UNQUALIFIED36Xuxue Feng
1040Juan P StockhamCanada2026-07-05Chapman, Ross E Esq NEW3Anna Fali
1041Isabel M FlosiIndia2026-07-28King, Christopher A Esq NEW64Asiya Javayant
1042Tony N GlickCanada2026-07-15Rousseaux, Michael Esq QUALIFIED40Ioni Bowcher
1043Antonio D IturbideArgentina2026-07-26Rangoni Of Florence NEGOTIATION19Bernardo Dominic
1044Chavez B WieserJapan2026-08-03Chapman, Ross E Esq QUALIFIED81Onyama Limba
1045Adams Q NickaIndia2026-07-08Feltz Printing Service NEGOTIATION50Elwin Sharvill
1046Aika M VenereSpain2026-07-06Feltz Printing Service PROPOSAL93Amy Elsner
1047Aika Q MorascaUnited Kingdom2026-07-10Printing Dimensions NEW12Ivan Magalhaes
1048Rodrigues F OldroydSpain2026-07-12Truhlar And Truhlar Attys NEW76Amy Elsner
1049Tony B SaylorsGermany2026-07-15Feiner Bros QUALIFIED75Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Costa K TollnerItalyElwin Sharvill NEGOTIATION
Munro Q StockhamRussiaXuxue Feng RENEWAL
Kadeem A VocelkaAustraliaIoni Bowcher RENEWAL
Jeanfrancois L RimRussiaAsiya Javayant UNQUALIFIED
Aika G RutaItalyBernardo Dominic NEGOTIATION
Stacey O CampainCanadaElwin Sharvill QUALIFIED
Rodrigues H BologniaSpainAnna Fali RENEWAL
Salvatore W GillianCanadaOnyama Limba RENEWAL
Clifford X StensethSpainStephen Shaw RENEWAL
Jones M PoquetteBrazilIvan Magalhaes QUALIFIED
Alejandro Q MarrierRussiaXuxue Feng UNQUALIFIED
Johnson M DoeArgentinaAsiya Javayant QUALIFIED
Morrow A BologniaAustraliaAsiya Javayant QUALIFIED
Smith Q OldroydGermanyIvan Magalhaes NEGOTIATION
Salvatore H KolmetzUnited KingdomAmy Elsner RENEWAL
Kaitlin T MorascaItalyAsiya Javayant RENEWAL
Costa M OldroydArgentinaAsiya Javayant PROPOSAL
Kadeem Q TollnerItalyAmy Elsner UNQUALIFIED
Mujtaba T WhobreyIndiaIoni Bowcher UNQUALIFIED
Mayumi Y OldroydSpainStephen Shaw RENEWAL
Silvio S CampainSpainOnyama Limba NEW
Cody I GlickItalyXuxue Feng RENEWAL
Alejandro L DilliardGermanyOnyama Limba RENEWAL
Alejandro F GillianItalyIvan Magalhaes QUALIFIED
Aika H MarrierRussiaIvan Magalhaes PROPOSAL
Adams C GillianRussiaOnyama Limba NEGOTIATION
Ricardo K RoysterJapanElwin Sharvill NEGOTIATION
Mujtaba W FollerSpainElwin Sharvill PROPOSAL
Chavez E RimUnited KingdomElwin Sharvill UNQUALIFIED
Morrow P SaylorsBrazilIvan Magalhaes UNQUALIFIED
Ricardo I NickaItalyAmy Elsner PROPOSAL
Johnson C NestleRussiaXuxue Feng RENEWAL
Kaitlin T WaycottRussiaAsiya Javayant RENEWAL
Leon H GauchoIndiaStephen Shaw RENEWAL
Ivar G MaletArgentinaIvan Magalhaes UNQUALIFIED
Arvin H BriddickBrazilIvan Magalhaes QUALIFIED
Munro O BriddickArgentinaIvan Magalhaes UNQUALIFIED
Aditya R SergiAustraliaIvan Magalhaes RENEWAL
Aika K ChuiRussiaIvan Magalhaes RENEWAL
Salvatore G GarufiBrazilStephen Shaw NEGOTIATION
Mayumi V CampainCanadaXuxue Feng NEW
Silvio A BriddickIndiaIoni Bowcher RENEWAL
Ricardo C AmigonFranceXuxue Feng QUALIFIED
Ricardo D MaletItalyAmy Elsner PROPOSAL
Mujtaba R InouyeGermanyElwin Sharvill NEGOTIATION
David V DoeJapanStephen Shaw NEW
Jennifer Y SergiCanadaXuxue Feng UNQUALIFIED
Octavia B AmigonJapanStephen Shaw RENEWAL
Greenwood B SchemmerFranceAnna Fali QUALIFIED
Leja S SlusarskiSpainOnyama Limba PROPOSAL
Frozen Columns
Name
Sinclair Y Sergi
Leon X Whobrey
Julie K Glick
Arvin K Foller
Maisha V Malet
Emily R Morasca
Claire R Ferencz
Arvin Y Campain
Octavia S Bolognia
Francesco H Rim
Izzy X Rim
Morrow Z Paprocki
Deepesh C Saylors
Silvio P Shinko
Murillo F Kusko
Alejandro C Bowley
Rodrigues R Dilliard
Octavia Y Inouye
Salvatore W Inouye
Misaki G Morasca
Adams A Briddick
Greenwood D Venere
Maisha C Malet
Aika H Whobrey
Tony T Poquette
Misaki V Dilliard
Faith T Gaucho
Isabel P Glick
Deepesh R Foller
Johnson W Maclead
Izzy B Chui
Francesco L Gillian
Faith P Ruta
Maisha L Dilliard
Nicolas U Sergi
Mujtaba L Briddick
Adams K Sergi
Mujtaba C Morasca
Ricardo P Bowley
Ivar A Flosi
Munro V Shinko
Adams F Bowley
Jennifer G Whobrey
Costa U Poquette
Munro Z Foller
Isabel K Foller
Kadeem T Dilliard
Rodrigues T Kusko
Mujtaba I Darakjy
Chavez G Tollner
IdCountryDate
1000Russia2026-08-01
1001Australia2026-07-20
1002Canada2026-07-11
1003India2026-07-19
1004Australia2026-07-22
1005Italy2026-07-22
1006Canada2026-07-07
1007Japan2026-07-22
1008United Kingdom2026-07-30
1009Canada2026-07-20
1010France2026-07-09
1011India2026-07-09
1012United Kingdom2026-07-06
1013Brazil2026-07-10
1014Italy2026-07-28
1015France2026-07-22
1016Japan2026-07-14
1017Italy2026-07-13
1018Argentina2026-07-22
1019Canada2026-07-10
1020Argentina2026-07-21
1021Italy2026-07-15
1022Spain2026-08-03
1023Brazil2026-07-18
1024Germany2026-07-23
1025Italy2026-08-02
1026India2026-07-11
1027Brazil2026-07-29
1028Russia2026-07-12
1029Italy2026-07-17
1030United Kingdom2026-07-13
1031Australia2026-07-22
1032Russia2026-07-18
1033Canada2026-07-30
1034United Kingdom2026-07-23
1035Spain2026-07-11
1036Brazil2026-07-25
1037India2026-07-11
1038Argentina2026-07-29
1039Germany2026-07-30
1040Argentina2026-07-28
1041United Kingdom2026-07-30
1042United Kingdom2026-07-31
1043India2026-07-09
1044United Kingdom2026-07-24
1045Spain2026-07-17
1046Australia2026-07-29
1047Australia2026-07-22
1048Canada2026-07-26
1049Canada2026-08-03

On-Demand Data

NameIdCountryDate
Jeanfrancois R Whobrey1000Germany2026-07-21
Clifford U Figeroa1001Brazil2026-07-21
Darci F Waycott1002United Kingdom2026-07-07
James G Shinko1003Russia2026-07-09
Murillo K Perin1004Japan2026-07-25
Alejandro N Maclead1005Spain2026-07-05
Sinclair L Stenseth1006Australia2026-07-13
Aruna S Paprocki1007France2026-07-25
Francesco H Royster1008Canada2026-07-17
Chavez S Paprocki1009Germany2026-07-26
Morrow Z Ruta1010United Kingdom2026-07-24
Jefferson C Schemmer1011Germany2026-07-15
Leon W Kusko1012Australia2026-07-21
Antonio O Oldroyd1013Brazil2026-07-29
Clifford J Figeroa1014Japan2026-07-12
Jennifer A Wieser1015Italy2026-07-19
Isabel D Maclead1016Australia2026-08-03
Jones F Maclead1017Australia2026-07-13
Salvatore L Malet1018Argentina2026-07-21
Aruna U Waycott1019Canada2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams W SlusarskiFranceXuxue Feng PROPOSAL
Faith T ButtIndiaIvan Magalhaes NEGOTIATION
Murillo R SaylorsSpainAnna Fali QUALIFIED
Aruna R RutaItalyIoni Bowcher QUALIFIED
Aika B GarufiArgentinaAmy Elsner PROPOSAL
Juan O OldroydArgentinaIvan Magalhaes RENEWAL
Mayumi H KolmetzGermanyIvan Magalhaes UNQUALIFIED
Leon F KuskoItalyIvan Magalhaes QUALIFIED
Izzy E PaprockiFranceIoni Bowcher RENEWAL
Ricardo L StockhamUnited KingdomAmy Elsner NEGOTIATION
Costa G RimIndiaAmy Elsner NEGOTIATION
Mayumi W VenereJapanElwin Sharvill UNQUALIFIED
David M WieserBrazilAmy Elsner PROPOSAL
Mayumi N SlusarskiBrazilElwin Sharvill NEGOTIATION
Munro L AlbaresArgentinaAmy Elsner PROPOSAL
Clifford K PerinAustraliaStephen Shaw UNQUALIFIED
Johnson Q SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Aditya A CaudyIndiaAnna Fali NEW
Alejandro J RoysterCanadaBernardo Dominic RENEWAL
Aika V SergiJapanAmy Elsner NEGOTIATION
Tony B NestleGermanyStephen Shaw RENEWAL
Jeanfrancois H GillianIndiaIvan Magalhaes NEW
Arvin R TollnerCanadaAnna Fali NEGOTIATION
Jennifer Y CampainUnited KingdomXuxue Feng UNQUALIFIED
Aditya Q TollnerItalyAmy Elsner RENEWAL
Arvin O FlosiSpainAsiya Javayant NEGOTIATION
James K CaldareraFranceXuxue Feng UNQUALIFIED
Salvatore S WaycottAustraliaOnyama Limba RENEWAL
James Y ChuiBrazilIoni Bowcher UNQUALIFIED
Clifford F BologniaGermanyIvan Magalhaes QUALIFIED
Maria Y WaycottArgentinaXuxue Feng QUALIFIED
Aruna G GauchoRussiaAmy Elsner RENEWAL
Johnson B GauchoBrazilAnna Fali UNQUALIFIED
Maisha C GarufiBrazilOnyama Limba NEGOTIATION
Johnson M StensethItalyBernardo Dominic NEW
David J FigeroaRussiaOnyama Limba NEW
Antonio T SaylorsUnited KingdomAsiya Javayant NEW
Claire N FlosiGermanyStephen Shaw NEGOTIATION
Leon I FerenczJapanAnna Fali PROPOSAL
Sinclair D ChuiIndiaBernardo Dominic 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>