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
Julie X KuskoArgentinaStephen Shaw NEW
Jeanfrancois D NestleItalyAnna Fali UNQUALIFIED
Nicolas A GillianFranceElwin Sharvill UNQUALIFIED
Kaitlin F OldroydUnited KingdomIoni Bowcher QUALIFIED
Ricardo T NickaRussiaAsiya Javayant QUALIFIED
Isabel D SergiAustraliaXuxue Feng NEW
Juan D PaprockiItalyIoni Bowcher NEGOTIATION
Wickens B MacleadUnited KingdomAsiya Javayant RENEWAL
Octavia Y BowleyJapanStephen Shaw PROPOSAL
Leon T SergiSpainOnyama Limba UNQUALIFIED
Alejandro Q WhobreyGermanyOnyama Limba PROPOSAL
Alejandro R VenereGermanyAmy Elsner NEW
Jeanfrancois J KolmetzCanadaXuxue Feng QUALIFIED
Emily E DarakjyFranceIoni Bowcher NEGOTIATION
Smith N OstroskyItalyAnna Fali QUALIFIED
Deepesh T TollnerRussiaElwin Sharvill RENEWAL
Juan V FerenczSpainIvan Magalhaes UNQUALIFIED
Jennifer Q AmigonFranceXuxue Feng NEW
Chavez K BriddickItalyAsiya Javayant NEGOTIATION
Aika L PaprockiGermanyElwin Sharvill RENEWAL
Isabel P MorascaGermanyIvan Magalhaes RENEWAL
Alejandro C AmigonCanadaAsiya Javayant NEGOTIATION
Ivar E FigeroaBrazilStephen Shaw UNQUALIFIED
Greenwood W FlosiItalyXuxue Feng NEGOTIATION
Mayumi H AlbaresGermanyAsiya Javayant NEGOTIATION
Darci R SchemmerFranceIoni Bowcher NEGOTIATION
Cody T VocelkaRussiaXuxue Feng NEGOTIATION
Isabel N ShinkoItalyAnna Fali NEGOTIATION
Faith Z SaylorsRussiaElwin Sharvill NEGOTIATION
Wickens P DoeCanadaAnna Fali QUALIFIED
Mayumi M RimRussiaElwin Sharvill NEGOTIATION
Emily N OldroydIndiaStephen Shaw PROPOSAL
David U CampainGermanyAnna Fali RENEWAL
Alejandro S SaylorsCanadaIoni Bowcher UNQUALIFIED
Costa W WhobreyGermanyAmy Elsner PROPOSAL
Costa M VocelkaSpainElwin Sharvill UNQUALIFIED
Greenwood H MarrierItalyIvan Magalhaes NEGOTIATION
Sinclair U BowleyBrazilAmy Elsner NEW
Juan A FigeroaRussiaOnyama Limba RENEWAL
Tony R FlosiSpainXuxue Feng QUALIFIED
Aditya X OstroskyIndiaAsiya Javayant RENEWAL
James Y InouyeItalyStephen Shaw NEGOTIATION
Greenwood E AlbaresGermanyXuxue Feng QUALIFIED
Aditya F StensethBrazilBernardo Dominic RENEWAL
Jones E CaudyArgentinaXuxue Feng NEW
Mayumi H ChuiJapanAnna Fali NEGOTIATION
Kaitlin X KolmetzArgentinaIoni Bowcher UNQUALIFIED
Greenwood E SlusarskiGermanyIvan Magalhaes UNQUALIFIED
Deepesh G KuskoJapanIoni Bowcher QUALIFIED
Mayumi H RimArgentinaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams D BriddickJapanOnyama Limba PROPOSAL
Julie F FigeroaUnited KingdomOnyama Limba NEW
Claire N GauchoRussiaBernardo Dominic NEGOTIATION
Chavez A FigeroaBrazilStephen Shaw QUALIFIED
Izzy V KolmetzJapanAsiya Javayant QUALIFIED
Jefferson H SchemmerCanadaStephen Shaw RENEWAL
Cody T StockhamJapanXuxue Feng NEGOTIATION
Maria F RoysterAustraliaIoni Bowcher PROPOSAL
Leja W BologniaArgentinaElwin Sharvill NEGOTIATION
Stacey V NickaIndiaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony M WieserSpain2025-06-09Dorl, James J Esq NEW62Onyama Limba
1001Ivar V InouyeFrance2025-06-07King, Christopher A Esq UNQUALIFIED78Stephen Shaw
1002Antonio U PoquetteItaly2025-06-17Benton, John B Jr RENEWAL66Amy Elsner
1003Mayumi R DilliardRussia2025-06-14Truhlar And Truhlar Attys QUALIFIED53Ivan Magalhaes
1004Izzy U SergiSpain2025-05-24Printing Dimensions PROPOSAL81Onyama Limba
1005Leja H ChuiSpain2025-06-12Printing Dimensions PROPOSAL86Ivan Magalhaes
1006Jefferson R FigeroaJapan2025-06-11Benton, John B Jr NEGOTIATION12Bernardo Dominic
1007Aika G FerenczItaly2025-06-03Printing Dimensions NEGOTIATION56Xuxue Feng
1008Leon W SchemmerItaly2025-05-25Commercial Press UNQUALIFIED17Ivan Magalhaes
1009Greenwood L RimUnited Kingdom2025-05-25King, Christopher A Esq NEGOTIATION59Xuxue Feng
1010Aruna K CampainAustralia2025-05-26Chanay, Jeffrey A Esq NEW5Elwin Sharvill
1011Cody I WhobreyAustralia2025-05-25Buckley Miller Wright NEGOTIATION92Amy Elsner
1012Morrow A MacleadAustralia2025-05-20Rousseaux, Michael Esq UNQUALIFIED27Xuxue Feng
1013Morrow Z GillianAustralia2025-06-09Chapman, Ross E Esq PROPOSAL91Bernardo Dominic
1014Aika A DarakjyRussia2025-05-27Feiner Bros NEW66Asiya Javayant
1015Julie S BowleySpain2025-05-25Truhlar And Truhlar Attys RENEWAL71Stephen Shaw
1016Alejandro G SaylorsSpain2025-05-20Feltz Printing Service RENEWAL89Xuxue Feng
1017Rodrigues S WieserGermany2025-06-08Buckley Miller Wright UNQUALIFIED55Anna Fali
1018Nicolas J FigeroaCanada2025-05-24Feltz Printing Service QUALIFIED76Ivan Magalhaes
1019Leja M ShinkoUnited Kingdom2025-05-19Chapman, Ross E Esq RENEWAL26Xuxue Feng
1020Greenwood D ShinkoItaly2025-05-25Rangoni Of Florence PROPOSAL58Bernardo Dominic
1021Emily A CaldareraCanada2025-06-04Printing Dimensions RENEWAL98Onyama Limba
1022Morrow J VocelkaGermany2025-05-21Chanay, Jeffrey A Esq NEW61Anna Fali
1023Munro E MaletArgentina2025-05-19Truhlar And Truhlar Attys PROPOSAL20Ivan Magalhaes
1024Clifford F OstroskyArgentina2025-06-05Feiner Bros NEGOTIATION0Ivan Magalhaes
1025Wickens A BologniaJapan2025-05-23Chemel, James L Cpa RENEWAL8Amy Elsner
1026Darci M ChuiBrazil2025-05-20Chemel, James L Cpa NEGOTIATION53Onyama Limba
1027Chavez X MaletSpain2025-06-04Printing Dimensions NEW60Amy Elsner
1028Maisha J WieserItaly2025-05-21Benton, John B Jr UNQUALIFIED86Stephen Shaw
1029Jennifer G WhobreyCanada2025-06-07Truhlar And Truhlar Attys NEGOTIATION26Bernardo Dominic
1030Morrow K RimSpain2025-06-06Buckley Miller Wright NEGOTIATION9Asiya Javayant
1031Arvin O SaylorsCanada2025-05-31Feiner Bros NEW79Bernardo Dominic
1032Misaki B IturbideAustralia2025-06-04Buckley Miller Wright RENEWAL31Asiya Javayant
1033Kaitlin X GarufiBrazil2025-05-27Feiner Bros PROPOSAL83Anna Fali
1034Jennifer C VocelkaSpain2025-06-03Feltz Printing Service QUALIFIED42Elwin Sharvill
1035Maria N BowleyJapan2025-06-06Morlong Associates NEGOTIATION61Bernardo Dominic
1036Rodrigues M InouyeSpain2025-05-25King, Christopher A Esq NEW44Ioni Bowcher
1037Chavez W CaldareraSpain2025-06-06Chapman, Ross E Esq QUALIFIED65Asiya Javayant
1038Alejandro A MaletSpain2025-06-12King, Christopher A Esq UNQUALIFIED10Anna Fali
1039Smith A FlosiCanada2025-05-29Feltz Printing Service PROPOSAL57Asiya Javayant
1040Mujtaba Y AmigonAustralia2025-06-15Benton, John B Jr NEGOTIATION2Onyama Limba
1041Jefferson C MaletGermany2025-05-22Commercial Press RENEWAL76Xuxue Feng
1042Ashley Z VenereRussia2025-06-06Truhlar And Truhlar Attys NEGOTIATION49Ivan Magalhaes
1043Alejandro W KolmetzUnited Kingdom2025-05-27Chanay, Jeffrey A Esq PROPOSAL85Anna Fali
1044Costa U WieserGermany2025-05-21Truhlar And Truhlar Attys NEGOTIATION90Anna Fali
1045Kaitlin D NickaFrance2025-06-05Chapman, Ross E Esq UNQUALIFIED68Onyama Limba
1046Juan J OstroskyRussia2025-05-28Rangoni Of Florence UNQUALIFIED95Xuxue Feng
1047Rodrigues D FerenczFrance2025-05-31Truhlar And Truhlar Attys QUALIFIED98Stephen Shaw
1048Jennifer H StockhamRussia2025-06-10Chemel, James L Cpa NEW6Amy Elsner
1049Maria L RimRussia2025-05-30Rousseaux, Michael Esq PROPOSAL63Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Morrow Q KuskoFranceStephen Shaw NEGOTIATION
Jennifer S SergiArgentinaAsiya Javayant NEGOTIATION
Darci S RulapaughFranceAnna Fali NEW
Johnson K MarrierGermanyElwin Sharvill QUALIFIED
Antonio G AlbaresBrazilAnna Fali QUALIFIED
Ricardo O SaylorsArgentinaElwin Sharvill PROPOSAL
Greenwood E MorascaBrazilAmy Elsner NEW
Costa V RimArgentinaAnna Fali NEGOTIATION
James K WaycottRussiaBernardo Dominic NEGOTIATION
Chavez I CaudySpainStephen Shaw RENEWAL
Maisha Q PerinUnited KingdomBernardo Dominic PROPOSAL
Kadeem D BowleyIndiaAsiya Javayant UNQUALIFIED
Faith C SaylorsIndiaXuxue Feng NEGOTIATION
Munro M WieserRussiaXuxue Feng UNQUALIFIED
Isabel O FollerUnited KingdomBernardo Dominic QUALIFIED
Aruna M CaldareraAustraliaBernardo Dominic NEGOTIATION
David Q GauchoRussiaAmy Elsner PROPOSAL
Darci Z InouyeUnited KingdomElwin Sharvill NEW
Alejandro D InouyeBrazilAnna Fali NEW
Ivar I AmigonJapanStephen Shaw NEGOTIATION
James Z BologniaUnited KingdomAsiya Javayant RENEWAL
Alejandro U KolmetzAustraliaAmy Elsner PROPOSAL
Francesco P SchemmerSpainXuxue Feng QUALIFIED
Clifford L GarufiCanadaAsiya Javayant NEGOTIATION
Isabel K NestleFranceOnyama Limba PROPOSAL
Emily Z MarrierFranceIoni Bowcher NEGOTIATION
Antonio E WieserFranceStephen Shaw NEW
Alejandro J PaprockiGermanyIvan Magalhaes NEW
Maria P FerenczCanadaOnyama Limba NEW
Deepesh X DilliardFranceAmy Elsner RENEWAL
Antonio G RoysterSpainAmy Elsner UNQUALIFIED
Deepesh I GillianIndiaElwin Sharvill NEW
Munro D FollerAustraliaAnna Fali RENEWAL
Aditya W DoeRussiaIvan Magalhaes PROPOSAL
Ashley L BriddickJapanStephen Shaw UNQUALIFIED
Francesco G GillianFranceOnyama Limba PROPOSAL
Leon Q IturbideIndiaXuxue Feng QUALIFIED
Octavia G PaprockiAustraliaIvan Magalhaes RENEWAL
Greenwood T BowleyBrazilAmy Elsner RENEWAL
Francesco V FerenczRussiaBernardo Dominic NEGOTIATION
Aditya A FlosiItalyIoni Bowcher RENEWAL
Adams U NestleSpainAsiya Javayant NEGOTIATION
Leon T ChuiFranceXuxue Feng QUALIFIED
Johnson B DarakjyArgentinaXuxue Feng QUALIFIED
Izzy M StensethJapanAnna Fali QUALIFIED
Greenwood F SlusarskiSpainElwin Sharvill PROPOSAL
Maisha U MacleadBrazilIoni Bowcher QUALIFIED
Mayumi V StockhamRussiaStephen Shaw UNQUALIFIED
Ricardo S FollerUnited KingdomAnna Fali RENEWAL
Aditya T AlbaresGermanyStephen Shaw QUALIFIED
Frozen Columns
Name
Mujtaba A Poquette
Izzy B Ostrosky
Cody V Iturbide
Misaki Z Caudy
Salvatore U Schemmer
Maisha I Foller
Sinclair G Maclead
Greenwood N Wieser
Silvio Y Nicka
Claire I Tollner
Jefferson X Rim
Juan F Bowley
Silvio H Inouye
Johnson Y Venere
Cody V Waycott
Julie Y Figeroa
Jeanfrancois U Vocelka
Darci D Flosi
Octavia M Shinko
Alejandro L Amigon
Nicolas E Stockham
Emily P Marrier
Clifford R Campain
Maria N Maclead
Jeanfrancois R Paprocki
Rodrigues Z Kusko
Kaitlin E Vocelka
Aditya D Venere
Jeanfrancois B Maclead
Leon J Nicka
Francesco Q Wieser
Munro I Marrier
Octavia M Darakjy
Alejandro Y Sergi
Cody J Bowley
Aditya Z Foller
Leon P Maclead
Costa L Garufi
Faith A Royster
Octavia B Kolmetz
Kadeem F Bowley
David Z Rulapaugh
Jefferson C Marrier
Claire Z Tollner
Jeanfrancois U Albares
Aditya Y Marrier
Wickens O Dilliard
Julie Z Doe
Kaitlin T Malet
Faith Q Royster
IdCountryDate
1000Australia2025-06-11
1001Italy2025-06-11
1002Italy2025-05-24
1003Russia2025-05-21
1004Spain2025-05-23
1005Russia2025-05-30
1006United Kingdom2025-05-23
1007Germany2025-06-06
1008Japan2025-06-13
1009India2025-06-09
1010India2025-06-09
1011Germany2025-06-14
1012Spain2025-05-24
1013Argentina2025-06-09
1014Canada2025-06-03
1015Germany2025-06-07
1016Japan2025-05-24
1017United Kingdom2025-06-03
1018Russia2025-05-26
1019Italy2025-06-13
1020Japan2025-06-15
1021Brazil2025-06-05
1022Russia2025-06-05
1023Russia2025-06-06
1024Argentina2025-06-09
1025Germany2025-06-17
1026Russia2025-06-14
1027Australia2025-06-12
1028Germany2025-06-03
1029France2025-06-16
1030Italy2025-06-14
1031India2025-05-23
1032Germany2025-05-30
1033Brazil2025-06-03
1034Brazil2025-06-13
1035Japan2025-05-21
1036France2025-06-04
1037Italy2025-05-28
1038Brazil2025-06-12
1039Canada2025-05-27
1040Argentina2025-06-08
1041India2025-06-04
1042France2025-06-07
1043Brazil2025-05-22
1044United Kingdom2025-06-04
1045Spain2025-06-15
1046Canada2025-06-04
1047Italy2025-06-14
1048France2025-05-29
1049Spain2025-06-16

On-Demand Data

NameIdCountryDate
Stacey Q Ruta1000Russia2025-06-13
Mujtaba G Shinko1001Russia2025-06-15
Munro H Waycott1002Brazil2025-06-09
Greenwood A Wieser1003Argentina2025-06-02
Maisha Z Ostrosky1004Japan2025-06-12
Rodrigues M Schemmer1005India2025-05-19
Aditya S Stenseth1006France2025-06-02
Deepesh B Butt1007Italy2025-05-24
Jones O Briddick1008Spain2025-06-10
Deepesh G Whobrey1009Japan2025-06-03
Leja Y Caldarera1010Russia2025-06-04
Silvio K Albares1011Australia2025-05-29
Claire I Oldroyd1012Canada2025-05-27
Claire Y Kolmetz1013Italy2025-06-11
Jeanfrancois R Morasca1014Brazil2025-05-24
Nicolas X Stenseth1015Australia2025-06-14
Izzy C Inouye1016United Kingdom2025-06-10
Claire F Slusarski1017Canada2025-06-02
Alejandro W Gillian1018United Kingdom2025-06-01
Emily V Gaucho1019Japan2025-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh P SlusarskiJapanOnyama Limba QUALIFIED
Costa R RulapaughArgentinaIoni Bowcher UNQUALIFIED
Adams Z DilliardIndiaXuxue Feng UNQUALIFIED
Leja J SaylorsCanadaAmy Elsner QUALIFIED
Salvatore K FerenczBrazilOnyama Limba NEW
Tony W RimAustraliaElwin Sharvill QUALIFIED
Juan C TollnerSpainAnna Fali UNQUALIFIED
Wickens O RulapaughArgentinaAsiya Javayant NEW
Darci U InouyeSpainAnna Fali QUALIFIED
Clifford W RulapaughAustraliaAmy Elsner RENEWAL
Aika V KolmetzCanadaBernardo Dominic RENEWAL
Leon J ShinkoIndiaAmy Elsner QUALIFIED
Adams B DoeRussiaIvan Magalhaes NEGOTIATION
Maria N MaletCanadaAnna Fali QUALIFIED
Kaitlin K MaletJapanStephen Shaw PROPOSAL
Mayumi B PoquetteIndiaStephen Shaw NEW
Ivar I MarrierRussiaIoni Bowcher NEW
Antonio H GillianSpainStephen Shaw PROPOSAL
Octavia B FlosiJapanAsiya Javayant PROPOSAL
Isabel M CampainBrazilOnyama Limba NEGOTIATION
Mayumi I WaycottCanadaAsiya Javayant PROPOSAL
Francesco D RulapaughBrazilAnna Fali QUALIFIED
Greenwood O OldroydFranceOnyama Limba QUALIFIED
Morrow D SchemmerUnited KingdomBernardo Dominic PROPOSAL
Ivar P FerenczAustraliaAnna Fali RENEWAL
Aika I RulapaughAustraliaBernardo Dominic NEW
Costa N StockhamJapanAnna Fali QUALIFIED
Maisha P DilliardGermanyIoni Bowcher UNQUALIFIED
Murillo E BriddickBrazilElwin Sharvill RENEWAL
Silvio T BologniaGermanyIvan Magalhaes RENEWAL
Emily A BologniaJapanBernardo Dominic NEGOTIATION
Ricardo Q SergiCanadaAsiya Javayant RENEWAL
Jeanfrancois Z WaycottFranceOnyama Limba PROPOSAL
Ivar B VenereUnited KingdomAsiya Javayant QUALIFIED
Morrow F WaycottArgentinaStephen Shaw RENEWAL
Kadeem H ChuiAustraliaElwin Sharvill UNQUALIFIED
Adams W PoquetteSpainXuxue Feng NEW
David C KolmetzIndiaIvan Magalhaes NEGOTIATION
Misaki K KolmetzRussiaBernardo Dominic NEW
Tony V InouyeUnited KingdomAnna Fali 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>