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
Maisha N DoeAustraliaOnyama Limba RENEWAL
Francesco U GauchoRussiaOnyama Limba PROPOSAL
Sinclair A ChuiItalyAsiya Javayant NEW
Octavia H RutaJapanAmy Elsner UNQUALIFIED
Deepesh V AmigonCanadaAmy Elsner RENEWAL
Tony A DarakjyIndiaOnyama Limba QUALIFIED
Johnson F PoquetteBrazilBernardo Dominic NEGOTIATION
Adams Y KolmetzJapanXuxue Feng NEW
Aruna R WieserArgentinaOnyama Limba RENEWAL
Costa P KuskoArgentinaAnna Fali PROPOSAL
Antonio E MorascaAustraliaElwin Sharvill RENEWAL
Francesco D MorascaSpainIoni Bowcher NEW
Francesco D NestleBrazilAmy Elsner RENEWAL
Ivar M RutaFranceStephen Shaw PROPOSAL
Jennifer P MorascaJapanXuxue Feng QUALIFIED
Rodrigues L WhobreyGermanyElwin Sharvill UNQUALIFIED
Leon E StensethRussiaIvan Magalhaes RENEWAL
Morrow L ShinkoAustraliaIoni Bowcher PROPOSAL
Nicolas O VocelkaFranceAmy Elsner NEGOTIATION
Aditya G CaldareraArgentinaBernardo Dominic UNQUALIFIED
Murillo R PoquetteFranceAsiya Javayant PROPOSAL
Mujtaba T SlusarskiSpainIoni Bowcher NEGOTIATION
Sinclair P AmigonFranceElwin Sharvill NEW
Juan U ButtFranceAsiya Javayant RENEWAL
Claire A ButtSpainAsiya Javayant NEW
Ivar N MaletAustraliaOnyama Limba UNQUALIFIED
Costa B VenereArgentinaOnyama Limba UNQUALIFIED
Leja T WieserSpainBernardo Dominic NEGOTIATION
Julie Z MaletCanadaAnna Fali NEGOTIATION
Faith W RulapaughIndiaXuxue Feng NEW
Wickens Z GauchoItalyXuxue Feng RENEWAL
Jones R SchemmerJapanBernardo Dominic PROPOSAL
Ivar M NestleRussiaBernardo Dominic QUALIFIED
Aika R BriddickCanadaAsiya Javayant RENEWAL
Chavez G GlickBrazilIvan Magalhaes UNQUALIFIED
Maisha J BologniaRussiaElwin Sharvill NEW
Francesco L AmigonFranceStephen Shaw QUALIFIED
Julie K InouyeJapanIoni Bowcher PROPOSAL
Leja Y DarakjyUnited KingdomAnna Fali UNQUALIFIED
Rodrigues F OldroydArgentinaElwin Sharvill RENEWAL
Misaki C SaylorsUnited KingdomIvan Magalhaes NEW
Deepesh E PaprockiRussiaAmy Elsner NEGOTIATION
Stacey J ChuiItalyXuxue Feng NEGOTIATION
Munro W ShinkoUnited KingdomAmy Elsner RENEWAL
Alejandro X RoysterRussiaStephen Shaw UNQUALIFIED
Deepesh W MorascaUnited KingdomBernardo Dominic UNQUALIFIED
Stacey Y DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Costa C BologniaItalyIvan Magalhaes NEGOTIATION
Salvatore S RoysterGermanyOnyama Limba NEGOTIATION
Juan G NestleRussiaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ricardo V KolmetzBrazilOnyama Limba UNQUALIFIED
Jeanfrancois G GarufiUnited KingdomOnyama Limba RENEWAL
Isabel C CampainUnited KingdomIoni Bowcher NEGOTIATION
Stacey L WaycottArgentinaIoni Bowcher QUALIFIED
Arvin U CampainFranceAnna Fali NEGOTIATION
Maria V GlickBrazilXuxue Feng UNQUALIFIED
Aruna V FerenczIndiaAnna Fali QUALIFIED
Alejandro G TollnerRussiaAnna Fali PROPOSAL
Juan I BriddickFranceIoni Bowcher UNQUALIFIED
Aruna V GlickBrazilAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco B IturbideGermany2026-07-29Rousseaux, Michael Esq QUALIFIED26Xuxue Feng
1001Leja W SergiItaly2026-08-06Rangoni Of Florence QUALIFIED50Anna Fali
1002Aika L NickaFrance2026-07-17Feltz Printing Service PROPOSAL63Asiya Javayant
1003Jones R GarufiFrance2026-07-25King, Christopher A Esq UNQUALIFIED24Onyama Limba
1004Izzy S CampainRussia2026-07-16Morlong Associates QUALIFIED52Onyama Limba
1005Ivar C SchemmerArgentina2026-07-08Rangoni Of Florence NEW95Asiya Javayant
1006Clifford K RimSpain2026-07-24Truhlar And Truhlar Attys NEW94Xuxue Feng
1007Leja N WhobreyGermany2026-07-12Chemel, James L Cpa QUALIFIED74Stephen Shaw
1008Aruna Z FlosiUnited Kingdom2026-07-17Morlong Associates NEW17Onyama Limba
1009Sinclair W FollerJapan2026-08-02King, Christopher A Esq RENEWAL25Xuxue Feng
1010Johnson D BowleyCanada2026-07-22Chemel, James L Cpa QUALIFIED21Xuxue Feng
1011Octavia B WaycottRussia2026-08-01Morlong Associates UNQUALIFIED78Stephen Shaw
1012Salvatore G SchemmerAustralia2026-07-17Feiner Bros UNQUALIFIED40Stephen Shaw
1013Izzy M PerinFrance2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED14Ioni Bowcher
1014Leja F IturbideFrance2026-07-20Commercial Press UNQUALIFIED36Elwin Sharvill
1015Jennifer G RutaSpain2026-07-31Rangoni Of Florence NEW68Amy Elsner
1016Mujtaba G CampainUnited Kingdom2026-07-09Rousseaux, Michael Esq NEGOTIATION53Ivan Magalhaes
1017Kaitlin X WaycottUnited Kingdom2026-07-23Rangoni Of Florence RENEWAL6Onyama Limba
1018Adams F GlickJapan2026-07-13Buckley Miller Wright NEGOTIATION44Elwin Sharvill
1019Darci M GarufiUnited Kingdom2026-08-03King, Christopher A Esq QUALIFIED25Xuxue Feng
1020Ivar E BologniaFrance2026-08-01Rangoni Of Florence QUALIFIED66Stephen Shaw
1021Mayumi J RimSpain2026-07-17Commercial Press UNQUALIFIED88Xuxue Feng
1022Munro C BriddickUnited Kingdom2026-07-10Chemel, James L Cpa NEGOTIATION50Onyama Limba
1023Julie Q NestleUnited Kingdom2026-08-01Rousseaux, Michael Esq PROPOSAL90Elwin Sharvill
1024Maisha W TollnerFrance2026-07-30Dorl, James J Esq RENEWAL56Ioni Bowcher
1025Julie P OldroydIndia2026-07-17Benton, John B Jr UNQUALIFIED90Onyama Limba
1026Darci Z MacleadIndia2026-07-28Chanay, Jeffrey A Esq NEGOTIATION54Onyama Limba
1027David R RoysterSpain2026-07-11Chanay, Jeffrey A Esq NEGOTIATION42Ioni Bowcher
1028Stacey X SchemmerBrazil2026-07-25Feiner Bros PROPOSAL52Stephen Shaw
1029Murillo J PaprockiJapan2026-07-15Feltz Printing Service NEW8Bernardo Dominic
1030Greenwood K CaldareraRussia2026-07-14Chemel, James L Cpa NEGOTIATION89Elwin Sharvill
1031Emily F RulapaughRussia2026-07-19Rangoni Of Florence PROPOSAL89Asiya Javayant
1032Ashley D BologniaJapan2026-07-25Commercial Press NEGOTIATION82Onyama Limba
1033Alejandro U RimJapan2026-07-28Rangoni Of Florence NEW89Bernardo Dominic
1034Chavez K RutaBrazil2026-07-21Truhlar And Truhlar Attys UNQUALIFIED63Ioni Bowcher
1035Tony J NickaArgentina2026-07-13Printing Dimensions PROPOSAL21Xuxue Feng
1036Deepesh X ButtAustralia2026-08-06Commercial Press QUALIFIED97Stephen Shaw
1037Ivar I MarrierSpain2026-07-17King, Christopher A Esq NEW95Amy Elsner
1038Aika Y KuskoUnited Kingdom2026-08-04Feltz Printing Service RENEWAL77Amy Elsner
1039Jones T GlickBrazil2026-07-24Buckley Miller Wright QUALIFIED12Stephen Shaw
1040James T WieserCanada2026-07-20Rousseaux, Michael Esq QUALIFIED55Xuxue Feng
1041Leon K WaycottIndia2026-07-25Dorl, James J Esq PROPOSAL81Xuxue Feng
1042Morrow G ShinkoRussia2026-08-02Rousseaux, Michael Esq UNQUALIFIED13Ioni Bowcher
1043Nicolas R DarakjyAustralia2026-08-06Chanay, Jeffrey A Esq QUALIFIED88Elwin Sharvill
1044David J GarufiRussia2026-08-01Truhlar And Truhlar Attys NEW94Ivan Magalhaes
1045Cody W RutaFrance2026-07-23Benton, John B Jr UNQUALIFIED99Ivan Magalhaes
1046Silvio B RimJapan2026-07-23Chemel, James L Cpa NEGOTIATION55Asiya Javayant
1047Ricardo D NickaSpain2026-07-21Truhlar And Truhlar Attys RENEWAL4Ioni Bowcher
1048Misaki A BologniaBrazil2026-08-04Buckley Miller Wright NEW46Bernardo Dominic
1049Jennifer E KolmetzBrazil2026-07-24Printing Dimensions PROPOSAL97Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Claire A SlusarskiAustraliaElwin Sharvill UNQUALIFIED
Smith W ShinkoGermanyAnna Fali RENEWAL
Adams K NickaIndiaStephen Shaw NEGOTIATION
Isabel A FigeroaSpainIoni Bowcher UNQUALIFIED
Alejandro K AlbaresArgentinaBernardo Dominic NEW
Aditya Y CaudyGermanyXuxue Feng UNQUALIFIED
Ricardo I FerenczIndiaXuxue Feng NEGOTIATION
Stacey E AlbaresArgentinaIvan Magalhaes PROPOSAL
Morrow V MacleadUnited KingdomStephen Shaw NEW
Aditya Y NickaArgentinaAmy Elsner NEW
Antonio R BowleyGermanyOnyama Limba UNQUALIFIED
Aika Y TollnerGermanyStephen Shaw QUALIFIED
Sinclair P BriddickGermanyAnna Fali NEGOTIATION
Octavia W OldroydUnited KingdomAsiya Javayant QUALIFIED
Darci K InouyeArgentinaBernardo Dominic NEW
Mayumi I StensethFranceAsiya Javayant UNQUALIFIED
Murillo P ButtGermanyAsiya Javayant PROPOSAL
Munro U VenereFranceBernardo Dominic NEGOTIATION
Murillo X ShinkoSpainStephen Shaw UNQUALIFIED
Costa J RoysterUnited KingdomAmy Elsner PROPOSAL
Isabel P RulapaughJapanBernardo Dominic PROPOSAL
Clifford A MaletGermanyAmy Elsner NEGOTIATION
Jeanfrancois N RutaIndiaBernardo Dominic NEW
Cody Z MaletGermanyXuxue Feng RENEWAL
Darci U DilliardCanadaAmy Elsner QUALIFIED
Julie Q KuskoGermanyBernardo Dominic QUALIFIED
Stacey A PerinAustraliaAsiya Javayant PROPOSAL
Aruna S SergiRussiaStephen Shaw PROPOSAL
Salvatore I SlusarskiIndiaXuxue Feng NEGOTIATION
Morrow X StockhamAustraliaOnyama Limba NEW
Izzy D SaylorsAustraliaXuxue Feng NEGOTIATION
Juan L GarufiCanadaOnyama Limba RENEWAL
Antonio E MarrierAustraliaIoni Bowcher QUALIFIED
Octavia F BriddickSpainOnyama Limba RENEWAL
Ricardo J BriddickCanadaIvan Magalhaes QUALIFIED
Rodrigues S StockhamGermanyAnna Fali QUALIFIED
James H WaycottItalyXuxue Feng UNQUALIFIED
Darci R GlickSpainStephen Shaw UNQUALIFIED
Adams Z InouyeBrazilAmy Elsner NEW
Mayumi G TollnerCanadaBernardo Dominic NEW
Aditya N SaylorsGermanyXuxue Feng NEW
Jones Y PerinBrazilIoni Bowcher NEW
Antonio H SchemmerIndiaStephen Shaw NEGOTIATION
Mayumi B NickaJapanAmy Elsner NEGOTIATION
Leja C StensethAustraliaBernardo Dominic QUALIFIED
Cody U PerinSpainElwin Sharvill UNQUALIFIED
Arvin H StockhamIndiaStephen Shaw PROPOSAL
Leon A SergiSpainAsiya Javayant NEW
Salvatore M OstroskyBrazilAnna Fali NEW
Leon M PoquetteSpainStephen Shaw QUALIFIED
Frozen Columns
Name
Aditya U Nestle
Murillo C Stockham
Faith B Ruta
David M Glick
Adams K Caldarera
Jefferson G Flosi
Emily Q Shinko
Nicolas C Ostrosky
Jefferson W Bolognia
Darci D Inouye
David G Nestle
Rodrigues Q Royster
Kadeem T Kolmetz
Silvio Q Bowley
Adams L Bowley
Emily W Campain
Salvatore N Chui
Jefferson A Caldarera
Ashley Y Saylors
Francesco X Garufi
Jeanfrancois B Malet
Mujtaba C Malet
Faith B Marrier
Ricardo U Nestle
Rodrigues H Gaucho
Izzy H Venere
Maria F Shinko
Ricardo I Garufi
Silvio P Gillian
Cody M Gillian
Murillo Y Ferencz
Maisha S Oldroyd
Murillo C Malet
Leja L Venere
Kaitlin S Malet
David M Malet
Jeanfrancois V Vocelka
Emily N Poquette
Deepesh R Schemmer
Aruna Q Iturbide
Jefferson U Slusarski
Adams S Schemmer
Mujtaba K Flosi
Misaki Y Flosi
Isabel Z Morasca
Arvin D Ostrosky
Leon V Foller
Emily B Glick
Misaki O Chui
Maria R Royster
IdCountryDate
1000Germany2026-08-03
1001United Kingdom2026-07-27
1002France2026-07-13
1003Argentina2026-08-05
1004Germany2026-07-13
1005United Kingdom2026-07-19
1006Japan2026-07-22
1007Canada2026-07-13
1008France2026-08-03
1009Canada2026-08-06
1010India2026-07-17
1011Russia2026-08-05
1012Spain2026-07-28
1013Canada2026-07-09
1014Japan2026-07-28
1015Australia2026-07-24
1016France2026-08-06
1017Australia2026-07-22
1018Canada2026-07-12
1019Brazil2026-07-15
1020Argentina2026-07-15
1021Canada2026-07-30
1022Russia2026-07-22
1023United Kingdom2026-07-16
1024India2026-07-11
1025France2026-07-08
1026Brazil2026-07-24
1027Italy2026-07-09
1028Australia2026-07-08
1029Argentina2026-07-28
1030Australia2026-07-15
1031Russia2026-07-20
1032United Kingdom2026-07-21
1033Canada2026-08-05
1034Italy2026-07-22
1035Argentina2026-07-22
1036Australia2026-08-01
1037Spain2026-07-16
1038Germany2026-07-31
1039Italy2026-07-22
1040Spain2026-07-12
1041Argentina2026-08-05
1042Russia2026-07-31
1043Canada2026-07-30
1044Brazil2026-07-13
1045Japan2026-07-13
1046Italy2026-07-08
1047France2026-07-26
1048India2026-07-17
1049Japan2026-07-10

On-Demand Data

NameIdCountryDate
Jennifer A Amigon1000Italy2026-07-10
Jones N Ferencz1001Argentina2026-07-08
Cody H Glick1002Japan2026-07-23
Mujtaba K Albares1003United Kingdom2026-07-21
Cody H Waycott1004Italy2026-07-30
Clifford N Nestle1005Germany2026-07-31
Izzy B Dilliard1006Japan2026-07-16
Darci U Sergi1007Canada2026-07-19
Kadeem E Waycott1008Germany2026-07-15
Ivar V Darakjy1009India2026-07-26
Ivar T Bowley1010Brazil2026-07-30
Alejandro S Wieser1011Australia2026-07-28
Silvio O Figeroa1012Germany2026-07-22
Claire D Rim1013Canada2026-07-13
Octavia X Nicka1014Australia2026-08-04
Izzy N Nicka1015Italy2026-07-14
Greenwood Z Chui1016Italy2026-07-28
Maria O Malet1017Argentina2026-07-11
Misaki J Inouye1018France2026-07-20
David V Chui1019Italy2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco X PerinRussiaXuxue Feng UNQUALIFIED
Jennifer K RulapaughFranceBernardo Dominic NEGOTIATION
Salvatore K SchemmerRussiaIoni Bowcher PROPOSAL
Johnson O CampainArgentinaStephen Shaw RENEWAL
Morrow X RulapaughJapanXuxue Feng QUALIFIED
Ashley T KolmetzCanadaAnna Fali QUALIFIED
Rodrigues Z BologniaAustraliaIvan Magalhaes RENEWAL
Aditya F MarrierUnited KingdomAmy Elsner PROPOSAL
Octavia F MacleadArgentinaBernardo Dominic NEW
Juan O RoysterIndiaBernardo Dominic RENEWAL
Jones K GlickIndiaStephen Shaw NEW
Izzy Y AmigonCanadaBernardo Dominic QUALIFIED
Aruna S StockhamBrazilAnna Fali NEW
Kadeem M CaldareraSpainIoni Bowcher RENEWAL
Leja K VocelkaUnited KingdomIvan Magalhaes QUALIFIED
Isabel X KolmetzItalyAsiya Javayant NEW
Aruna U FlosiAustraliaAmy Elsner UNQUALIFIED
Arvin N DilliardIndiaIoni Bowcher PROPOSAL
Isabel T ShinkoBrazilIoni Bowcher QUALIFIED
Mayumi W RimBrazilElwin Sharvill RENEWAL
Jeanfrancois F CaudyJapanXuxue Feng NEGOTIATION
Jennifer G SergiUnited KingdomAsiya Javayant UNQUALIFIED
Isabel T ChuiCanadaIoni Bowcher QUALIFIED
Salvatore C ButtGermanyStephen Shaw RENEWAL
Juan H FerenczRussiaElwin Sharvill QUALIFIED
Francesco H ButtFranceAsiya Javayant NEGOTIATION
Francesco A GauchoSpainStephen Shaw NEGOTIATION
Stacey A MacleadUnited KingdomIoni Bowcher QUALIFIED
Maisha S GillianSpainElwin Sharvill UNQUALIFIED
Murillo I SergiRussiaXuxue Feng RENEWAL
Ricardo R PerinItalyAsiya Javayant UNQUALIFIED
Kadeem H GarufiIndiaXuxue Feng NEW
Faith U SergiItalyIoni Bowcher QUALIFIED
Sinclair Z RimRussiaElwin Sharvill RENEWAL
James U GarufiGermanyAmy Elsner QUALIFIED
Emily I GarufiAustraliaIoni Bowcher NEGOTIATION
Clifford S InouyeJapanIoni Bowcher UNQUALIFIED
Ivar C MorascaBrazilElwin Sharvill PROPOSAL
Chavez I CampainBrazilIoni Bowcher RENEWAL
Chavez X WaycottCanadaAnna Fali 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>