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
Aditya I PerinItalyIoni Bowcher QUALIFIED
Misaki M RulapaughAustraliaXuxue Feng QUALIFIED
Misaki Q RimJapanBernardo Dominic RENEWAL
Rodrigues H RoysterArgentinaAsiya Javayant RENEWAL
Salvatore C KolmetzSpainAsiya Javayant QUALIFIED
Misaki K FlosiCanadaBernardo Dominic UNQUALIFIED
Jefferson G PoquetteFranceXuxue Feng NEGOTIATION
Morrow G CampainSpainAnna Fali PROPOSAL
Greenwood N WhobreyBrazilAmy Elsner UNQUALIFIED
Costa U RimSpainXuxue Feng NEW
Sinclair U SlusarskiFranceIoni Bowcher RENEWAL
David J FlosiIndiaAmy Elsner UNQUALIFIED
Aika G VenereRussiaAnna Fali NEGOTIATION
James U WieserItalyOnyama Limba NEGOTIATION
Izzy F MaletArgentinaXuxue Feng NEW
Jeanfrancois G BologniaUnited KingdomOnyama Limba QUALIFIED
Mayumi Z VocelkaFranceBernardo Dominic RENEWAL
Claire S WieserSpainStephen Shaw NEW
Claire X CaldareraAustraliaAsiya Javayant QUALIFIED
Jennifer E CampainCanadaAnna Fali PROPOSAL
Deepesh C ChuiBrazilOnyama Limba NEGOTIATION
Sinclair V NickaArgentinaElwin Sharvill QUALIFIED
Julie J StensethBrazilXuxue Feng NEGOTIATION
Alejandro U SlusarskiArgentinaElwin Sharvill NEW
Morrow O DarakjySpainIoni Bowcher NEGOTIATION
Julie F VenereIndiaElwin Sharvill NEGOTIATION
Cody H BologniaItalyStephen Shaw QUALIFIED
Ashley F GauchoCanadaAnna Fali UNQUALIFIED
Emily U PaprockiAustraliaOnyama Limba UNQUALIFIED
Jones S GillianSpainIvan Magalhaes NEGOTIATION
David F SaylorsFranceXuxue Feng NEGOTIATION
Izzy P GlickBrazilAmy Elsner NEW
Leon C SlusarskiBrazilStephen Shaw PROPOSAL
Stacey L PoquetteRussiaStephen Shaw NEW
Cody H RoysterIndiaIvan Magalhaes NEGOTIATION
Aditya J DarakjySpainAnna Fali RENEWAL
Juan K StockhamIndiaStephen Shaw RENEWAL
Murillo G BriddickSpainIvan Magalhaes RENEWAL
Ivar P FlosiAustraliaBernardo Dominic UNQUALIFIED
Greenwood E SaylorsJapanStephen Shaw RENEWAL
Johnson J GillianBrazilIoni Bowcher PROPOSAL
Sinclair T PaprockiJapanXuxue Feng NEW
Jeanfrancois J FlosiArgentinaIoni Bowcher PROPOSAL
Deepesh Z FollerItalyStephen Shaw NEGOTIATION
Murillo Q ShinkoAustraliaBernardo Dominic RENEWAL
Francesco W WieserAustraliaElwin Sharvill PROPOSAL
Stacey D RimArgentinaElwin Sharvill RENEWAL
Ashley Q VocelkaRussiaAnna Fali UNQUALIFIED
Alejandro Y FigeroaArgentinaXuxue Feng UNQUALIFIED
Stacey Q InouyeItalyElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Cody Z BologniaItalyAnna Fali QUALIFIED
Misaki X SlusarskiArgentinaAsiya Javayant QUALIFIED
Kadeem Y FollerFranceAmy Elsner NEGOTIATION
Julie I InouyeItalyElwin Sharvill UNQUALIFIED
Johnson S FigeroaGermanyAsiya Javayant PROPOSAL
Leja A NickaJapanIoni Bowcher UNQUALIFIED
Julie M FollerAustraliaAsiya Javayant UNQUALIFIED
Johnson Y ShinkoItalyIoni Bowcher PROPOSAL
Darci E PerinCanadaOnyama Limba NEGOTIATION
Costa S GauchoJapanBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey T ChuiSpain2026-06-30Chanay, Jeffrey A Esq PROPOSAL80Asiya Javayant
1001Arvin K FerenczSpain2026-06-16King, Christopher A Esq RENEWAL1Xuxue Feng
1002Faith V PaprockiArgentina2026-07-09Chapman, Ross E Esq UNQUALIFIED62Stephen Shaw
1003Cody R FigeroaRussia2026-06-12Commercial Press QUALIFIED24Bernardo Dominic
1004Clifford Y TollnerBrazil2026-06-13Chapman, Ross E Esq NEGOTIATION88Ioni Bowcher
1005Munro D GillianRussia2026-06-10Chemel, James L Cpa NEGOTIATION58Amy Elsner
1006Mayumi S SlusarskiAustralia2026-07-07Chapman, Ross E Esq UNQUALIFIED85Bernardo Dominic
1007Smith U SergiIndia2026-06-22Printing Dimensions NEGOTIATION11Bernardo Dominic
1008Jeanfrancois I ShinkoUnited Kingdom2026-06-24Feiner Bros UNQUALIFIED61Elwin Sharvill
1009Smith C GillianIndia2026-07-08Morlong Associates RENEWAL79Amy Elsner
1010Faith F RoysterIndia2026-06-23Rangoni Of Florence UNQUALIFIED37Bernardo Dominic
1011Rodrigues F MaletRussia2026-07-03Chanay, Jeffrey A Esq NEW61Elwin Sharvill
1012Nicolas Y SchemmerJapan2026-07-02Dorl, James J Esq QUALIFIED94Onyama Limba
1013Izzy C MaletSpain2026-07-07Printing Dimensions PROPOSAL56Onyama Limba
1014Kaitlin L MorascaSpain2026-06-26King, Christopher A Esq NEGOTIATION41Onyama Limba
1015Nicolas Q WieserGermany2026-07-07Morlong Associates NEGOTIATION6Ioni Bowcher
1016Deepesh H SergiCanada2026-06-26Rousseaux, Michael Esq NEW84Amy Elsner
1017Costa V GillianFrance2026-07-03Feltz Printing Service QUALIFIED65Amy Elsner
1018Jeanfrancois N GlickAustralia2026-06-29Printing Dimensions PROPOSAL34Ioni Bowcher
1019Emily P WieserItaly2026-07-04Feiner Bros NEW31Onyama Limba
1020Salvatore H GlickRussia2026-06-21Benton, John B Jr QUALIFIED9Onyama Limba
1021Francesco J RoysterFrance2026-06-22Commercial Press NEW81Asiya Javayant
1022Mujtaba H OldroydItaly2026-06-21Chanay, Jeffrey A Esq NEGOTIATION41Xuxue Feng
1023Munro Q RimCanada2026-06-15Morlong Associates PROPOSAL55Anna Fali
1024Morrow L WieserBrazil2026-06-14King, Christopher A Esq NEW89Amy Elsner
1025Ricardo S RutaJapan2026-07-07Feiner Bros PROPOSAL75Ioni Bowcher
1026Juan L ButtRussia2026-06-11King, Christopher A Esq UNQUALIFIED28Anna Fali
1027Mujtaba S SergiFrance2026-07-02Benton, John B Jr NEGOTIATION89Onyama Limba
1028Misaki V StockhamSpain2026-07-02Chapman, Ross E Esq NEW88Stephen Shaw
1029Nicolas D RutaArgentina2026-07-05Benton, John B Jr PROPOSAL10Asiya Javayant
1030Deepesh I PerinAustralia2026-06-19Commercial Press NEW76Asiya Javayant
1031Isabel N GarufiIndia2026-06-17Benton, John B Jr NEW1Ivan Magalhaes
1032Nicolas B InouyeRussia2026-06-12Dorl, James J Esq RENEWAL60Ivan Magalhaes
1033Jefferson U StensethFrance2026-06-22Commercial Press NEGOTIATION98Ivan Magalhaes
1034Johnson A FollerFrance2026-06-29Buckley Miller Wright NEGOTIATION36Asiya Javayant
1035Ivar Z CaldareraAustralia2026-06-16Chemel, James L Cpa NEW96Ivan Magalhaes
1036Francesco E PaprockiJapan2026-07-07King, Christopher A Esq RENEWAL41Amy Elsner
1037Maisha H OstroskyAustralia2026-06-14Commercial Press PROPOSAL4Anna Fali
1038Murillo G BologniaAustralia2026-06-16Rousseaux, Michael Esq UNQUALIFIED15Elwin Sharvill
1039Adams G StensethBrazil2026-06-30Rousseaux, Michael Esq NEW32Ivan Magalhaes
1040Aditya O RulapaughAustralia2026-06-11Chapman, Ross E Esq NEGOTIATION7Amy Elsner
1041Francesco A FigeroaCanada2026-07-05Dorl, James J Esq UNQUALIFIED62Onyama Limba
1042James X GlickBrazil2026-07-09Dorl, James J Esq NEW89Ioni Bowcher
1043Francesco A BriddickUnited Kingdom2026-07-05Feltz Printing Service RENEWAL88Amy Elsner
1044Jones Z KolmetzGermany2026-07-07Feiner Bros UNQUALIFIED69Amy Elsner
1045Morrow G ButtCanada2026-06-11King, Christopher A Esq NEGOTIATION77Elwin Sharvill
1046Smith L ButtGermany2026-07-01Benton, John B Jr NEW84Anna Fali
1047Alejandro X WaycottAustralia2026-06-26Chanay, Jeffrey A Esq NEW44Amy Elsner
1048Ricardo K CaudyFrance2026-07-07Buckley Miller Wright UNQUALIFIED23Bernardo Dominic
1049Adams W SchemmerIndia2026-06-19Chemel, James L Cpa UNQUALIFIED51Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Juan R ChuiItalyOnyama Limba UNQUALIFIED
Stacey O MaletJapanAsiya Javayant PROPOSAL
Ashley U AmigonFranceAmy Elsner NEGOTIATION
Ricardo A FigeroaUnited KingdomAnna Fali NEW
Misaki F StensethArgentinaIoni Bowcher RENEWAL
Arvin X KolmetzBrazilStephen Shaw RENEWAL
Emily Z SlusarskiSpainAmy Elsner NEGOTIATION
Juan L BriddickGermanyXuxue Feng UNQUALIFIED
Morrow I TollnerJapanXuxue Feng UNQUALIFIED
Antonio Z WaycottGermanyElwin Sharvill UNQUALIFIED
Ashley O MarrierArgentinaStephen Shaw UNQUALIFIED
Aruna B DoeAustraliaIoni Bowcher RENEWAL
Maisha A KuskoAustraliaAsiya Javayant PROPOSAL
Claire W ShinkoGermanyAmy Elsner RENEWAL
Aika L AmigonUnited KingdomBernardo Dominic QUALIFIED
Jones R CaldareraSpainBernardo Dominic RENEWAL
Emily R GarufiCanadaStephen Shaw RENEWAL
Jeanfrancois Z ButtSpainAnna Fali UNQUALIFIED
Greenwood G VenereBrazilIvan Magalhaes PROPOSAL
Morrow I RulapaughCanadaAsiya Javayant NEW
Rodrigues L DilliardCanadaBernardo Dominic UNQUALIFIED
Maisha H SchemmerCanadaBernardo Dominic PROPOSAL
Smith E AlbaresGermanyAsiya Javayant RENEWAL
Ashley W SlusarskiCanadaAnna Fali QUALIFIED
Leon F RoysterItalyAmy Elsner PROPOSAL
Greenwood T GillianItalyAsiya Javayant QUALIFIED
Maria W WhobreyGermanyStephen Shaw RENEWAL
Cody V RimUnited KingdomAmy Elsner NEGOTIATION
Aruna Y MorascaSpainIoni Bowcher PROPOSAL
Darci G FigeroaBrazilElwin Sharvill RENEWAL
Juan R GlickFranceAmy Elsner NEW
Leja Q MarrierAustraliaIvan Magalhaes RENEWAL
Sinclair J FigeroaAustraliaStephen Shaw NEW
Jeanfrancois A ButtFranceStephen Shaw UNQUALIFIED
Tony F SaylorsRussiaAmy Elsner NEW
Ricardo J BowleyAustraliaElwin Sharvill RENEWAL
Mujtaba W GauchoJapanXuxue Feng NEGOTIATION
Leja T GarufiJapanAsiya Javayant NEW
Misaki F InouyeUnited KingdomIvan Magalhaes NEW
Mujtaba K MaletIndiaAnna Fali RENEWAL
Stacey O BologniaItalyIoni Bowcher UNQUALIFIED
Octavia Y RutaRussiaAsiya Javayant NEGOTIATION
Aika P PoquetteItalyElwin Sharvill NEGOTIATION
Alejandro P MorascaGermanyOnyama Limba UNQUALIFIED
Deepesh U PerinFranceElwin Sharvill QUALIFIED
Costa D VocelkaIndiaElwin Sharvill NEW
Ashley I DoeArgentinaAmy Elsner NEGOTIATION
Faith O OstroskyUnited KingdomStephen Shaw NEGOTIATION
Alejandro U GauchoBrazilIoni Bowcher UNQUALIFIED
Octavia G OldroydItalyBernardo Dominic RENEWAL
Frozen Columns
Name
Smith W Bowley
James E Butt
Salvatore G Figeroa
Claire N Dilliard
Clifford X Malet
Nicolas Y Saylors
James G Whobrey
Leon M Waycott
Alejandro N Nestle
Leon O Stockham
Cody S Albares
Isabel E Bowley
Munro S Foller
Deepesh Q Marrier
Murillo Q Tollner
Chavez B Bolognia
Clifford B Malet
Juan M Iturbide
Darci K Amigon
Aditya Y Poquette
Chavez E Stockham
Chavez H Kolmetz
Clifford N Royster
Greenwood F Ostrosky
Tony S Dilliard
Leja M Maclead
Clifford B Albares
Adams I Rim
Leon D Caudy
Deepesh F Waycott
Sinclair M Venere
Mayumi G Paprocki
Chavez C Dilliard
David W Nestle
Chavez F Dilliard
Misaki F Morasca
Sinclair R Shinko
Nicolas P Whobrey
Greenwood G Sergi
Kadeem B Darakjy
Deepesh V Ostrosky
Cody T Malet
Jennifer I Vocelka
Aruna X Bolognia
Isabel G Malet
Tony O Rim
Stacey Z Marrier
Isabel S Ferencz
Antonio B Glick
Faith I Malet
IdCountryDate
1000Canada2026-06-13
1001Spain2026-07-02
1002Spain2026-06-14
1003Spain2026-06-30
1004France2026-07-08
1005United Kingdom2026-07-06
1006Russia2026-07-07
1007Japan2026-07-01
1008Brazil2026-07-03
1009Japan2026-06-29
1010Argentina2026-07-02
1011Germany2026-06-20
1012France2026-06-29
1013United Kingdom2026-06-22
1014France2026-06-29
1015Brazil2026-06-15
1016Japan2026-06-29
1017Argentina2026-07-02
1018United Kingdom2026-06-25
1019India2026-06-10
1020Brazil2026-07-05
1021Argentina2026-07-07
1022Japan2026-07-04
1023Australia2026-07-03
1024Germany2026-06-30
1025France2026-07-05
1026France2026-06-23
1027France2026-07-08
1028Russia2026-07-09
1029Spain2026-06-27
1030Brazil2026-07-08
1031Italy2026-06-18
1032Germany2026-07-03
1033France2026-06-15
1034India2026-06-25
1035Japan2026-06-15
1036Canada2026-06-21
1037Argentina2026-07-02
1038Russia2026-06-29
1039Japan2026-06-23
1040France2026-06-13
1041Brazil2026-06-28
1042France2026-06-20
1043India2026-07-03
1044Spain2026-07-03
1045Italy2026-06-12
1046United Kingdom2026-07-03
1047Australia2026-06-25
1048United Kingdom2026-06-25
1049Australia2026-06-20

On-Demand Data

NameIdCountryDate
Clifford V Bolognia1000Brazil2026-06-17
David G Caudy1001France2026-07-04
Jefferson A Shinko1002United Kingdom2026-06-23
Costa V Slusarski1003Russia2026-06-24
David G Slusarski1004Spain2026-06-27
Izzy M Dilliard1005Japan2026-06-16
Silvio U Inouye1006France2026-06-12
Darci Z Kusko1007Australia2026-07-02
Isabel J Waycott1008Spain2026-07-06
Alejandro F Caudy1009Russia2026-07-05
Maisha R Iturbide1010Argentina2026-06-23
Julie F Rulapaugh1011United Kingdom2026-07-06
Costa E Perin1012Japan2026-06-17
Salvatore P Ferencz1013Russia2026-06-19
Arvin T Malet1014Argentina2026-06-29
Mayumi Y Inouye1015France2026-06-16
Jefferson I Shinko1016Brazil2026-06-10
Aika Y Rim1017United Kingdom2026-06-20
Chavez D Nicka1018Brazil2026-07-05
Octavia K Bolognia1019Argentina2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin C CaldareraSpainBernardo Dominic NEW
Aika V DoeBrazilOnyama Limba QUALIFIED
Maria M VocelkaBrazilXuxue Feng NEGOTIATION
Ashley P RutaBrazilAmy Elsner UNQUALIFIED
Jones H DoeArgentinaElwin Sharvill UNQUALIFIED
Aditya K NestleGermanyXuxue Feng UNQUALIFIED
Smith M CaudySpainAnna Fali PROPOSAL
Juan T GlickUnited KingdomAmy Elsner QUALIFIED
Francesco O SaylorsSpainAmy Elsner PROPOSAL
Tony N TollnerItalyOnyama Limba NEW
Clifford M RulapaughIndiaAsiya Javayant PROPOSAL
Leon N DoeRussiaXuxue Feng RENEWAL
Leon S KuskoAustraliaAnna Fali RENEWAL
Chavez F PoquetteArgentinaOnyama Limba QUALIFIED
Nicolas S FlosiArgentinaIoni Bowcher NEGOTIATION
Silvio Z VocelkaFranceAsiya Javayant QUALIFIED
Mujtaba E SaylorsAustraliaIvan Magalhaes NEGOTIATION
Deepesh X CaudyRussiaOnyama Limba RENEWAL
Aruna A FigeroaBrazilAnna Fali NEGOTIATION
Antonio U RimFranceAnna Fali NEGOTIATION
Aditya G OstroskyIndiaIvan Magalhaes QUALIFIED
Julie O StensethSpainOnyama Limba NEW
Alejandro H TollnerIndiaBernardo Dominic PROPOSAL
Johnson Z KolmetzArgentinaAmy Elsner RENEWAL
Smith O FlosiRussiaIvan Magalhaes NEW
Wickens P FlosiArgentinaStephen Shaw NEGOTIATION
Antonio M SaylorsItalyAmy Elsner NEW
Isabel Y FlosiBrazilAmy Elsner PROPOSAL
Stacey B NestleSpainOnyama Limba PROPOSAL
Tony X IturbideBrazilElwin Sharvill NEGOTIATION
Darci F NickaIndiaElwin Sharvill NEGOTIATION
Jeanfrancois N StockhamAustraliaIvan Magalhaes PROPOSAL
Maisha T BologniaCanadaIoni Bowcher PROPOSAL
Leja P CaldareraSpainXuxue Feng RENEWAL
Mujtaba T RutaJapanElwin Sharvill NEGOTIATION
Leja V MaletIndiaAnna Fali NEGOTIATION
Nicolas O MacleadAustraliaAsiya Javayant NEW
Aditya S KolmetzBrazilAsiya Javayant RENEWAL
Nicolas Y WhobreyUnited KingdomXuxue Feng UNQUALIFIED
Salvatore N NickaIndiaIvan Magalhaes 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>