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
Smith U IturbideCanadaAsiya Javayant UNQUALIFIED
Adams V FerenczBrazilXuxue Feng RENEWAL
Deepesh E CaldareraIndiaXuxue Feng QUALIFIED
Ivar Z MaletAustraliaStephen Shaw NEW
Jones T OstroskyCanadaElwin Sharvill NEW
Ricardo V SchemmerSpainXuxue Feng RENEWAL
Aruna F IturbideFranceOnyama Limba UNQUALIFIED
Izzy W VocelkaBrazilElwin Sharvill QUALIFIED
Leja I MorascaGermanyAmy Elsner NEW
Faith O OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Adams A SergiArgentinaOnyama Limba NEGOTIATION
Jennifer Q DoeFranceAsiya Javayant RENEWAL
Alejandro A FigeroaItalyBernardo Dominic UNQUALIFIED
Chavez G DarakjyCanadaIvan Magalhaes PROPOSAL
Costa R StensethGermanyAmy Elsner RENEWAL
Ashley L WaycottFranceIvan Magalhaes NEGOTIATION
Silvio D SlusarskiItalyIoni Bowcher QUALIFIED
Kaitlin D WaycottArgentinaIoni Bowcher UNQUALIFIED
Octavia A ShinkoGermanyBernardo Dominic RENEWAL
Adams K BologniaBrazilAnna Fali NEW
Sinclair X WaycottBrazilStephen Shaw RENEWAL
Juan U FerenczAustraliaXuxue Feng UNQUALIFIED
Sinclair G DarakjySpainXuxue Feng NEW
Sinclair V AlbaresCanadaBernardo Dominic UNQUALIFIED
Arvin W VenereIndiaOnyama Limba NEW
Rodrigues Q IturbideJapanIoni Bowcher RENEWAL
Jennifer W MarrierFranceStephen Shaw PROPOSAL
Aditya L NickaCanadaAsiya Javayant QUALIFIED
Tony Z ButtFranceIoni Bowcher NEGOTIATION
Costa T WaycottAustraliaAmy Elsner NEGOTIATION
Mayumi M GillianFranceAnna Fali NEW
Leja A StockhamAustraliaAsiya Javayant RENEWAL
Adams N WieserBrazilOnyama Limba PROPOSAL
Stacey W FollerCanadaXuxue Feng NEW
Jones I RutaCanadaIvan Magalhaes UNQUALIFIED
Alejandro Y MorascaArgentinaElwin Sharvill QUALIFIED
Jones W ButtGermanyElwin Sharvill RENEWAL
Costa A BologniaFranceAsiya Javayant NEW
James V NickaFranceElwin Sharvill NEGOTIATION
Jefferson L RulapaughItalyIoni Bowcher QUALIFIED
Darci S VenereIndiaAsiya Javayant QUALIFIED
Isabel O SchemmerAustraliaAmy Elsner UNQUALIFIED
Cody H CaudyGermanyStephen Shaw NEW
Adams C RutaUnited KingdomIvan Magalhaes NEW
Maria Z FerenczItalyXuxue Feng PROPOSAL
Johnson N CaldareraJapanStephen Shaw QUALIFIED
Deepesh P RimGermanyStephen Shaw NEGOTIATION
Aika F IturbideCanadaElwin Sharvill NEGOTIATION
Nicolas T VenereItalyBernardo Dominic RENEWAL
Antonio V PoquetteRussiaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez E RutaJapanAsiya Javayant UNQUALIFIED
Juan B GillianSpainIvan Magalhaes UNQUALIFIED
Rodrigues U SergiArgentinaOnyama Limba NEGOTIATION
Kadeem M NestleFranceStephen Shaw QUALIFIED
Francesco B DilliardUnited KingdomIvan Magalhaes RENEWAL
Julie B ChuiArgentinaIoni Bowcher QUALIFIED
Jennifer M MorascaItalyIoni Bowcher QUALIFIED
James R ChuiSpainOnyama Limba NEW
Morrow M SaylorsIndiaAnna Fali UNQUALIFIED
Emily P OstroskyUnited KingdomOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony A GillianJapan2025-04-11Dorl, James J Esq RENEWAL30Amy Elsner
1001Darci D WhobreyAustralia2025-04-16Morlong Associates PROPOSAL29Elwin Sharvill
1002Clifford Q SergiAustralia2025-04-14Dorl, James J Esq RENEWAL46Ivan Magalhaes
1003Aika R RutaCanada2025-04-24Dorl, James J Esq UNQUALIFIED89Bernardo Dominic
1004Nicolas G OldroydJapan2025-04-23Feltz Printing Service QUALIFIED94Anna Fali
1005Arvin M WieserAustralia2025-04-08Feltz Printing Service RENEWAL25Xuxue Feng
1006Ivar Q KuskoCanada2025-04-27Benton, John B Jr PROPOSAL11Asiya Javayant
1007Clifford S OstroskyArgentina2025-04-13Morlong Associates NEGOTIATION54Xuxue Feng
1008Stacey A CampainCanada2025-04-05Chapman, Ross E Esq RENEWAL19Bernardo Dominic
1009Claire I MacleadIndia2025-04-24Truhlar And Truhlar Attys PROPOSAL44Stephen Shaw
1010Munro B BriddickArgentina2025-04-09Chapman, Ross E Esq NEGOTIATION4Xuxue Feng
1011Antonio R SchemmerRussia2025-04-12Commercial Press NEGOTIATION71Ivan Magalhaes
1012Silvio W CaudyCanada2025-04-09Feiner Bros NEW31Bernardo Dominic
1013Ashley K FlosiIndia2025-04-29Truhlar And Truhlar Attys PROPOSAL75Xuxue Feng
1014Silvio N FollerAustralia2025-04-07Chapman, Ross E Esq UNQUALIFIED60Bernardo Dominic
1015Murillo G KolmetzSpain2025-04-29King, Christopher A Esq RENEWAL62Bernardo Dominic
1016Aika B BriddickCanada2025-04-15Buckley Miller Wright UNQUALIFIED24Stephen Shaw
1017Claire Z MarrierBrazil2025-04-01Rousseaux, Michael Esq NEW1Bernardo Dominic
1018Murillo Q NickaAustralia2025-04-09Morlong Associates PROPOSAL65Stephen Shaw
1019Wickens K StensethItaly2025-04-14Rousseaux, Michael Esq NEW62Amy Elsner
1020James C RoysterFrance2025-04-28Benton, John B Jr NEGOTIATION93Ivan Magalhaes
1021Francesco E WhobreyAustralia2025-04-29Chanay, Jeffrey A Esq QUALIFIED97Onyama Limba
1022Izzy B NestleUnited Kingdom2025-04-27Buckley Miller Wright NEW97Stephen Shaw
1023Juan J RutaJapan2025-04-11Commercial Press NEGOTIATION92Ivan Magalhaes
1024Costa L DoeBrazil2025-04-14Chanay, Jeffrey A Esq QUALIFIED46Ioni Bowcher
1025Juan U ChuiUnited Kingdom2025-04-06Rousseaux, Michael Esq PROPOSAL68Ivan Magalhaes
1026Julie U StensethJapan2025-04-20Dorl, James J Esq NEGOTIATION23Stephen Shaw
1027Jones H MaletJapan2025-04-19Printing Dimensions RENEWAL34Stephen Shaw
1028Juan I StockhamSpain2025-04-26Feiner Bros PROPOSAL64Onyama Limba
1029Adams Y AlbaresIndia2025-04-09Morlong Associates UNQUALIFIED50Ioni Bowcher
1030Ashley K SergiSpain2025-04-26Chemel, James L Cpa NEGOTIATION39Bernardo Dominic
1031Sinclair D ButtRussia2025-04-02Dorl, James J Esq UNQUALIFIED18Ivan Magalhaes
1032Aruna E ShinkoItaly2025-04-23Feiner Bros RENEWAL7Ivan Magalhaes
1033Leja X RoysterGermany2025-04-19Chemel, James L Cpa UNQUALIFIED80Amy Elsner
1034Mayumi N ChuiSpain2025-04-15Rangoni Of Florence NEW79Ioni Bowcher
1035Mayumi Y NickaUnited Kingdom2025-04-23Chanay, Jeffrey A Esq RENEWAL30Asiya Javayant
1036David J OldroydItaly2025-04-15Chanay, Jeffrey A Esq NEW37Anna Fali
1037Juan K RutaItaly2025-04-28Chemel, James L Cpa RENEWAL38Amy Elsner
1038Chavez Z FigeroaBrazil2025-04-15King, Christopher A Esq QUALIFIED94Ioni Bowcher
1039Deepesh Y WieserSpain2025-04-15Feiner Bros QUALIFIED77Amy Elsner
1040Morrow S FollerArgentina2025-04-02Truhlar And Truhlar Attys UNQUALIFIED9Onyama Limba
1041Maria R RoysterGermany2025-04-16Commercial Press QUALIFIED97Anna Fali
1042Arvin S MarrierCanada2025-04-17King, Christopher A Esq NEGOTIATION14Ivan Magalhaes
1043Arvin L SchemmerAustralia2025-04-14Printing Dimensions RENEWAL77Bernardo Dominic
1044Greenwood X GillianAustralia2025-04-13King, Christopher A Esq NEGOTIATION69Ivan Magalhaes
1045Isabel C CampainBrazil2025-04-06Buckley Miller Wright NEW12Amy Elsner
1046Alejandro P ShinkoArgentina2025-04-30Chanay, Jeffrey A Esq NEW65Amy Elsner
1047Ivar K RimBrazil2025-04-18Benton, John B Jr PROPOSAL29Anna Fali
1048Morrow R RoysterGermany2025-04-16Truhlar And Truhlar Attys PROPOSAL66Stephen Shaw
1049Stacey Y DoeIndia2025-04-29Buckley Miller Wright RENEWAL99Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba W GarufiGermanyIvan Magalhaes QUALIFIED
Johnson P RimJapanAmy Elsner QUALIFIED
James D FlosiAustraliaAmy Elsner QUALIFIED
Silvio G NestleSpainStephen Shaw NEW
Jennifer E CampainBrazilElwin Sharvill UNQUALIFIED
David U RutaItalyAsiya Javayant NEW
Misaki J DilliardSpainElwin Sharvill NEGOTIATION
Deepesh R SergiRussiaStephen Shaw UNQUALIFIED
Chavez O DarakjyArgentinaAnna Fali QUALIFIED
Mujtaba E RoysterArgentinaXuxue Feng PROPOSAL
Salvatore Q MorascaItalyOnyama Limba NEW
Aruna L NickaArgentinaStephen Shaw PROPOSAL
Kadeem F WhobreyIndiaOnyama Limba NEGOTIATION
Emily P BriddickBrazilStephen Shaw QUALIFIED
Stacey P MarrierAustraliaBernardo Dominic UNQUALIFIED
Jones X GlickIndiaXuxue Feng PROPOSAL
Maria O SaylorsAustraliaOnyama Limba PROPOSAL
Leon M CaldareraBrazilOnyama Limba NEGOTIATION
Greenwood H FerenczSpainElwin Sharvill QUALIFIED
Darci W FollerArgentinaAsiya Javayant UNQUALIFIED
Octavia C FollerBrazilIvan Magalhaes NEW
Sinclair R MorascaCanadaIoni Bowcher RENEWAL
Antonio S StockhamJapanIoni Bowcher NEGOTIATION
Octavia Q MaletJapanIvan Magalhaes NEW
Ashley W PaprockiRussiaAnna Fali NEGOTIATION
Juan Z PoquetteCanadaIoni Bowcher NEW
Costa Q CaudyBrazilIoni Bowcher NEW
Murillo E PaprockiAustraliaAnna Fali QUALIFIED
Murillo T GarufiJapanAnna Fali NEGOTIATION
Arvin X StockhamFranceAnna Fali UNQUALIFIED
Emily K SergiGermanyAsiya Javayant NEW
Salvatore H RutaUnited KingdomAsiya Javayant RENEWAL
Leja I MaletFranceAsiya Javayant RENEWAL
Morrow Q StockhamArgentinaAmy Elsner NEGOTIATION
Jeanfrancois U MaletGermanyAnna Fali NEW
Juan X FlosiArgentinaAmy Elsner NEW
Deepesh W FollerCanadaOnyama Limba NEW
Silvio N BologniaRussiaXuxue Feng QUALIFIED
Ricardo M BowleyAustraliaAmy Elsner QUALIFIED
Aditya Z AmigonSpainIvan Magalhaes NEGOTIATION
Jennifer G PaprockiFranceElwin Sharvill NEW
Claire P StensethIndiaStephen Shaw QUALIFIED
Octavia U NestleSpainIvan Magalhaes QUALIFIED
Nicolas I GauchoCanadaXuxue Feng RENEWAL
Claire N StensethJapanAsiya Javayant RENEWAL
David W InouyeJapanElwin Sharvill PROPOSAL
Smith P MorascaCanadaIoni Bowcher PROPOSAL
Aruna T SaylorsCanadaAsiya Javayant NEGOTIATION
Johnson Y CaldareraSpainIvan Magalhaes NEGOTIATION
Antonio W ChuiGermanyOnyama Limba NEGOTIATION
Frozen Columns
Name
Nicolas U Kusko
Salvatore W Albares
Johnson F Morasca
Antonio G Gaucho
Jefferson W Figeroa
Kadeem Y Flosi
Cody S Nicka
Jones O Glick
Ivar U Caudy
Kadeem F Inouye
James F Malet
Arvin R Kolmetz
Smith H Inouye
Jennifer Q Rulapaugh
Johnson R Dilliard
James Q Figeroa
Jones M Paprocki
Adams O Oldroyd
Clifford R Caudy
Emily Q Ostrosky
Aruna H Foller
Francesco A Saylors
Faith O Inouye
Alejandro L Inouye
Greenwood W Oldroyd
Deepesh L Venere
Antonio P Wieser
Juan Q Amigon
Faith G Saylors
Arvin I Morasca
Jeanfrancois N Dilliard
Jennifer B Bolognia
Jones M Iturbide
Clifford K Whobrey
Adams U Foller
Faith E Briddick
Emily E Garufi
Mayumi U Vocelka
Tony E Figeroa
Leon G Saylors
Munro F Dilliard
Misaki J Vocelka
Claire M Stenseth
Murillo T Ruta
Aruna S Chui
Alejandro E Briddick
Faith P Garufi
Faith K Royster
Tony R Caldarera
Cody R Darakjy
IdCountryDate
1000Canada2025-04-30
1001Italy2025-04-14
1002United Kingdom2025-04-12
1003Canada2025-04-15
1004Italy2025-04-05
1005Germany2025-04-18
1006United Kingdom2025-04-29
1007Russia2025-04-16
1008Italy2025-04-27
1009Brazil2025-04-06
1010Russia2025-04-30
1011Brazil2025-04-29
1012Italy2025-04-13
1013Italy2025-04-05
1014Germany2025-04-07
1015Canada2025-04-29
1016Brazil2025-04-10
1017Japan2025-04-14
1018United Kingdom2025-04-10
1019Spain2025-04-08
1020India2025-04-12
1021Argentina2025-04-28
1022Canada2025-04-17
1023Argentina2025-04-15
1024Japan2025-04-26
1025India2025-04-02
1026Australia2025-04-07
1027Germany2025-04-22
1028India2025-04-22
1029Brazil2025-04-22
1030France2025-04-04
1031India2025-04-06
1032Canada2025-04-01
1033Canada2025-04-25
1034Italy2025-04-15
1035India2025-04-13
1036India2025-04-03
1037United Kingdom2025-04-20
1038Japan2025-04-06
1039Brazil2025-04-20
1040France2025-04-07
1041Germany2025-04-19
1042United Kingdom2025-04-05
1043Italy2025-04-14
1044Italy2025-04-12
1045Argentina2025-04-20
1046Canada2025-04-02
1047Australia2025-04-27
1048Italy2025-04-04
1049France2025-04-26

On-Demand Data

NameIdCountryDate
Alejandro O Briddick1000Russia2025-04-17
Stacey F Paprocki1001Japan2025-04-30
Misaki W Wieser1002Italy2025-04-02
Cody U Bowley1003India2025-04-09
Aruna B Waycott1004Russia2025-04-22
Adams A Oldroyd1005Spain2025-04-16
Maisha B Slusarski1006Argentina2025-04-27
Murillo X Kolmetz1007Argentina2025-04-08
Sinclair A Sergi1008Canada2025-04-12
Aruna J Darakjy1009India2025-04-01
Octavia M Darakjy1010Argentina2025-04-19
Adams A Waycott1011United Kingdom2025-04-15
Aika V Slusarski1012Italy2025-04-11
Leon H Waycott1013United Kingdom2025-04-24
Claire D Stockham1014Russia2025-04-09
Darci J Kusko1015Canada2025-04-30
Stacey H Slusarski1016Japan2025-04-10
Faith I Poquette1017Japan2025-04-15
Wickens O Glick1018Germany2025-04-15
Deepesh D Flosi1019India2025-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha P OstroskyFranceAmy Elsner UNQUALIFIED
Aika U CampainSpainBernardo Dominic NEGOTIATION
Maisha F AmigonBrazilAsiya Javayant QUALIFIED
Morrow L BriddickArgentinaOnyama Limba NEGOTIATION
Chavez E FigeroaRussiaIvan Magalhaes RENEWAL
Maria S GauchoArgentinaIoni Bowcher PROPOSAL
Juan I RutaJapanIvan Magalhaes RENEWAL
Wickens N PerinCanadaElwin Sharvill PROPOSAL
Adams E CampainArgentinaXuxue Feng QUALIFIED
Salvatore L NestleCanadaOnyama Limba UNQUALIFIED
Julie I NickaBrazilStephen Shaw NEW
Johnson T VocelkaBrazilAnna Fali QUALIFIED
Kadeem V MorascaUnited KingdomIvan Magalhaes RENEWAL
Octavia P KuskoItalyIvan Magalhaes NEGOTIATION
Deepesh N DarakjyUnited KingdomAsiya Javayant UNQUALIFIED
Jeanfrancois Q FlosiBrazilIvan Magalhaes PROPOSAL
Arvin U GlickRussiaIvan Magalhaes NEW
Ricardo Q GillianBrazilStephen Shaw PROPOSAL
Sinclair A BowleyCanadaAmy Elsner RENEWAL
Wickens W GlickGermanyBernardo Dominic RENEWAL
Salvatore M WhobreySpainOnyama Limba PROPOSAL
Adams N SaylorsAustraliaXuxue Feng NEGOTIATION
Deepesh X MaletRussiaIoni Bowcher NEW
Aika L TollnerArgentinaXuxue Feng NEGOTIATION
Greenwood Y DoeBrazilStephen Shaw QUALIFIED
Jennifer I IturbideRussiaAsiya Javayant UNQUALIFIED
Ashley B AlbaresUnited KingdomIvan Magalhaes QUALIFIED
Kadeem N BowleyJapanOnyama Limba UNQUALIFIED
Clifford W CaudyItalyAsiya Javayant UNQUALIFIED
Leja A DoeSpainElwin Sharvill NEW
Maisha I DarakjySpainBernardo Dominic QUALIFIED
Maisha T BologniaAustraliaIoni Bowcher UNQUALIFIED
Darci Z BowleyArgentinaIvan Magalhaes UNQUALIFIED
Johnson I NickaCanadaElwin Sharvill QUALIFIED
Johnson Y PaprockiUnited KingdomAsiya Javayant QUALIFIED
Ivar T CaldareraRussiaAnna Fali RENEWAL
Jones B MaletBrazilAnna Fali NEW
Ivar Y StensethSpainOnyama Limba NEW
Wickens B RimAustraliaAnna Fali RENEWAL
Alejandro U VenereJapanAmy Elsner 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>