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
Munro P ShinkoUnited KingdomIvan Magalhaes RENEWAL
Ashley A GauchoBrazilAmy Elsner QUALIFIED
David D RulapaughItalyOnyama Limba RENEWAL
Juan X GauchoIndiaBernardo Dominic NEW
Antonio Q AmigonItalyAsiya Javayant NEW
Kadeem B MacleadUnited KingdomOnyama Limba NEW
Juan L BologniaGermanyXuxue Feng NEW
Sinclair A MorascaSpainXuxue Feng NEW
Francesco P BriddickBrazilOnyama Limba RENEWAL
Rodrigues V KolmetzAustraliaIvan Magalhaes QUALIFIED
Wickens G AlbaresRussiaElwin Sharvill NEGOTIATION
Ashley D WieserAustraliaBernardo Dominic RENEWAL
Ashley D BriddickFranceIvan Magalhaes PROPOSAL
Nicolas B BologniaFranceOnyama Limba RENEWAL
Izzy G FlosiFranceBernardo Dominic NEW
Sinclair A PerinBrazilAnna Fali PROPOSAL
Maria Q NickaIndiaXuxue Feng UNQUALIFIED
Costa K ChuiItalyAsiya Javayant PROPOSAL
Ivar W MacleadIndiaElwin Sharvill RENEWAL
Francesco G TollnerGermanyBernardo Dominic RENEWAL
Misaki V BriddickRussiaStephen Shaw RENEWAL
Jones Q GauchoItalyOnyama Limba RENEWAL
Johnson K NestleCanadaAmy Elsner QUALIFIED
Jeanfrancois E ChuiGermanyAmy Elsner NEW
Alejandro E BowleySpainStephen Shaw PROPOSAL
Isabel O DoeJapanAmy Elsner PROPOSAL
Salvatore O RoysterCanadaElwin Sharvill QUALIFIED
Jeanfrancois U RoysterJapanAnna Fali NEGOTIATION
Jeanfrancois G DoeGermanyXuxue Feng UNQUALIFIED
Rodrigues J SlusarskiIndiaAmy Elsner UNQUALIFIED
Tony H MacleadItalyStephen Shaw NEW
Claire I DilliardGermanyBernardo Dominic NEW
Claire L BowleyIndiaXuxue Feng QUALIFIED
Maria J PaprockiJapanBernardo Dominic NEGOTIATION
Claire H RulapaughGermanyXuxue Feng QUALIFIED
Kadeem A FlosiItalyIvan Magalhaes PROPOSAL
Ricardo F AmigonSpainIvan Magalhaes UNQUALIFIED
Alejandro V MarrierAustraliaIoni Bowcher PROPOSAL
Clifford K FerenczArgentinaIvan Magalhaes QUALIFIED
Aruna P GauchoUnited KingdomXuxue Feng UNQUALIFIED
Cody G PerinCanadaElwin Sharvill NEW
Adams P RulapaughJapanAmy Elsner UNQUALIFIED
Antonio Y PoquetteRussiaIoni Bowcher NEGOTIATION
Stacey K GillianRussiaIoni Bowcher PROPOSAL
Chavez W TollnerFranceIvan Magalhaes NEGOTIATION
Chavez Q VocelkaIndiaIvan Magalhaes RENEWAL
Wickens Y WhobreyUnited KingdomAnna Fali PROPOSAL
Mayumi W GillianRussiaXuxue Feng UNQUALIFIED
Deepesh O ButtIndiaBernardo Dominic QUALIFIED
Maisha T IturbideIndiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ashley N DoeBrazilElwin Sharvill UNQUALIFIED
Ivar E CampainJapanBernardo Dominic RENEWAL
Sinclair M WhobreyRussiaElwin Sharvill NEGOTIATION
Darci I StockhamAustraliaElwin Sharvill NEGOTIATION
Claire I DoeJapanBernardo Dominic PROPOSAL
Octavia O PerinItalyAmy Elsner UNQUALIFIED
Aditya Z RutaUnited KingdomStephen Shaw UNQUALIFIED
Leon O SchemmerCanadaIvan Magalhaes PROPOSAL
Murillo D PaprockiJapanStephen Shaw RENEWAL
Cody W VenereJapanAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin X NickaIndia2025-06-05Chanay, Jeffrey A Esq NEGOTIATION61Amy Elsner
1001Kadeem H AmigonArgentina2025-05-18Chemel, James L Cpa PROPOSAL70Asiya Javayant
1002James Q GillianIndia2025-06-08Benton, John B Jr NEGOTIATION95Bernardo Dominic
1003Aika A OstroskyBrazil2025-05-20Chanay, Jeffrey A Esq PROPOSAL4Xuxue Feng
1004Maisha P StockhamCanada2025-05-26Chemel, James L Cpa QUALIFIED61Bernardo Dominic
1005Costa S NickaSpain2025-06-08Chapman, Ross E Esq NEW66Bernardo Dominic
1006Isabel A KuskoJapan2025-06-06Feiner Bros UNQUALIFIED32Xuxue Feng
1007Smith F InouyeIndia2025-05-27Feiner Bros RENEWAL60Ivan Magalhaes
1008David V SergiJapan2025-05-23Feltz Printing Service NEW76Ioni Bowcher
1009Cody H DoeRussia2025-06-06Buckley Miller Wright NEW96Anna Fali
1010Aruna Q GauchoAustralia2025-05-24Feltz Printing Service NEGOTIATION71Bernardo Dominic
1011Mujtaba T MaletFrance2025-06-15Chanay, Jeffrey A Esq NEW92Onyama Limba
1012Julie R WhobreyAustralia2025-06-05Feiner Bros RENEWAL61Xuxue Feng
1013Alejandro T NickaJapan2025-05-25Rangoni Of Florence NEGOTIATION42Asiya Javayant
1014Mujtaba M ShinkoRussia2025-06-10Rangoni Of Florence RENEWAL93Elwin Sharvill
1015Leon R GauchoFrance2025-05-21Feltz Printing Service NEGOTIATION48Ioni Bowcher
1016Kadeem T BologniaItaly2025-06-15Chapman, Ross E Esq QUALIFIED27Onyama Limba
1017Costa G ButtIndia2025-05-23Truhlar And Truhlar Attys UNQUALIFIED70Anna Fali
1018Mujtaba M IturbideArgentina2025-05-30Commercial Press NEGOTIATION38Bernardo Dominic
1019Julie G ShinkoCanada2025-06-09Chanay, Jeffrey A Esq QUALIFIED24Xuxue Feng
1020Francesco J FollerUnited Kingdom2025-05-27Printing Dimensions NEGOTIATION18Stephen Shaw
1021Arvin H KuskoUnited Kingdom2025-05-31Benton, John B Jr RENEWAL56Ivan Magalhaes
1022Munro M SlusarskiArgentina2025-05-22Buckley Miller Wright UNQUALIFIED15Stephen Shaw
1023Aditya Y PaprockiItaly2025-05-30Truhlar And Truhlar Attys UNQUALIFIED31Onyama Limba
1024Mayumi W MarrierItaly2025-06-13Chemel, James L Cpa PROPOSAL81Ivan Magalhaes
1025James V CampainSpain2025-05-31Morlong Associates NEGOTIATION83Xuxue Feng
1026Ivar T DilliardUnited Kingdom2025-06-02Feiner Bros NEW35Anna Fali
1027Faith P VocelkaCanada2025-05-28Chemel, James L Cpa QUALIFIED22Onyama Limba
1028Cody E CaudyAustralia2025-06-16Commercial Press RENEWAL52Bernardo Dominic
1029Ivar X VenereJapan2025-06-13Dorl, James J Esq NEGOTIATION9Elwin Sharvill
1030Ivar F MaletCanada2025-05-26Rangoni Of Florence PROPOSAL86Anna Fali
1031Francesco M MaletRussia2025-05-24Rousseaux, Michael Esq QUALIFIED65Amy Elsner
1032Faith Z GillianItaly2025-05-25Printing Dimensions RENEWAL32Asiya Javayant
1033Cody Z MorascaIndia2025-05-30Chemel, James L Cpa UNQUALIFIED74Ioni Bowcher
1034Jennifer U OstroskyCanada2025-05-21Chemel, James L Cpa NEGOTIATION40Elwin Sharvill
1035Jeanfrancois E OstroskyArgentina2025-06-14Benton, John B Jr QUALIFIED99Ioni Bowcher
1036Maria F FlosiAustralia2025-06-09Chemel, James L Cpa NEW54Xuxue Feng
1037Claire S WaycottBrazil2025-05-25Chemel, James L Cpa QUALIFIED10Asiya Javayant
1038Greenwood X NestleJapan2025-06-03Morlong Associates PROPOSAL98Ivan Magalhaes
1039Johnson W DilliardGermany2025-05-27Rousseaux, Michael Esq UNQUALIFIED87Anna Fali
1040Smith E SlusarskiItaly2025-05-21Morlong Associates QUALIFIED9Onyama Limba
1041Jennifer M ShinkoIndia2025-05-22Chapman, Ross E Esq NEW62Elwin Sharvill
1042Darci M ButtAustralia2025-06-10Chapman, Ross E Esq UNQUALIFIED95Onyama Limba
1043Morrow D AmigonArgentina2025-05-21Dorl, James J Esq UNQUALIFIED70Stephen Shaw
1044Maria S StensethItaly2025-05-27Feiner Bros QUALIFIED69Ioni Bowcher
1045Francesco M SergiAustralia2025-06-09Feltz Printing Service NEGOTIATION39Amy Elsner
1046Ashley U IturbideJapan2025-06-10Dorl, James J Esq PROPOSAL19Asiya Javayant
1047David Y InouyeItaly2025-06-10Morlong Associates NEGOTIATION17Asiya Javayant
1048Francesco R SergiBrazil2025-05-26Dorl, James J Esq RENEWAL90Anna Fali
1049Munro Y WhobreyAustralia2025-06-16Commercial Press NEGOTIATION31Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Stacey W InouyeBrazilIoni Bowcher UNQUALIFIED
Ivar Y RoysterCanadaIoni Bowcher NEGOTIATION
Arvin M AmigonJapanBernardo Dominic NEW
Isabel M WieserUnited KingdomAsiya Javayant PROPOSAL
Darci S VenereItalyIoni Bowcher NEW
Alejandro K VocelkaFranceIvan Magalhaes QUALIFIED
Kaitlin W PoquetteFranceIvan Magalhaes PROPOSAL
Smith R CaudyFranceElwin Sharvill QUALIFIED
Aruna W FlosiBrazilXuxue Feng UNQUALIFIED
Izzy X DilliardJapanElwin Sharvill RENEWAL
Clifford A CaudyCanadaIoni Bowcher RENEWAL
Tony H MorascaAustraliaBernardo Dominic RENEWAL
Arvin Z KuskoBrazilBernardo Dominic RENEWAL
Rodrigues K KolmetzGermanyIoni Bowcher NEGOTIATION
Murillo J PoquetteUnited KingdomAsiya Javayant NEW
Tony Z CaudyGermanyBernardo Dominic NEW
Antonio N SchemmerAustraliaXuxue Feng NEW
Cody C MaletIndiaXuxue Feng NEGOTIATION
Julie X SergiGermanyBernardo Dominic NEW
Ricardo F CaudyFranceStephen Shaw NEGOTIATION
Clifford K RulapaughFranceIoni Bowcher PROPOSAL
Maria H GlickIndiaOnyama Limba UNQUALIFIED
Ashley Y FigeroaIndiaAmy Elsner UNQUALIFIED
Aditya O FerenczFranceAmy Elsner PROPOSAL
Leon V GlickSpainIvan Magalhaes QUALIFIED
Aditya L StensethRussiaElwin Sharvill NEW
Francesco M PerinArgentinaBernardo Dominic NEGOTIATION
Isabel S RoysterGermanyBernardo Dominic RENEWAL
Octavia U SergiBrazilStephen Shaw RENEWAL
Antonio V KolmetzIndiaAmy Elsner PROPOSAL
Greenwood E DilliardArgentinaOnyama Limba PROPOSAL
Maisha T RoysterCanadaIvan Magalhaes NEGOTIATION
Clifford F CaldareraUnited KingdomBernardo Dominic RENEWAL
Ricardo T ShinkoFranceIoni Bowcher QUALIFIED
Rodrigues N VenereIndiaBernardo Dominic NEGOTIATION
Kaitlin Y FollerJapanOnyama Limba QUALIFIED
Jennifer E TollnerUnited KingdomElwin Sharvill NEGOTIATION
Kadeem I OldroydIndiaIoni Bowcher NEGOTIATION
Stacey B MaletJapanAmy Elsner PROPOSAL
Kadeem N VenereBrazilStephen Shaw RENEWAL
Ivar X MaletCanadaIoni Bowcher QUALIFIED
Aika Q MorascaIndiaAsiya Javayant RENEWAL
Francesco T KolmetzJapanStephen Shaw NEGOTIATION
Darci N DilliardArgentinaIvan Magalhaes UNQUALIFIED
Isabel O SaylorsCanadaXuxue Feng QUALIFIED
Tony D PerinRussiaAsiya Javayant NEW
Maisha Y CaudyCanadaAmy Elsner NEGOTIATION
Clifford G NestleSpainAmy Elsner QUALIFIED
Emily D SaylorsCanadaOnyama Limba RENEWAL
Isabel W MaletAustraliaAmy Elsner PROPOSAL
Frozen Columns
Name
Cody H Butt
Misaki D Slusarski
Cody X Kusko
Mayumi O Albares
Johnson K Kolmetz
Aditya H Venere
Tony B Waycott
Leja N Vocelka
Maria R Albares
Ivar R Kolmetz
Ricardo E Caudy
Smith H Gaucho
Kaitlin R Kolmetz
Leja W Butt
Jones S Bolognia
Leja C Kusko
Cody O Chui
Julie Q Malet
Ricardo K Gillian
Tony V Albares
Sinclair H Bolognia
Smith J Caudy
Rodrigues U Iturbide
Salvatore V Slusarski
Johnson E Bowley
Misaki S Dilliard
Salvatore U Marrier
Jefferson Y Rim
Francesco R Ruta
Ricardo A Campain
Arvin M Campain
Munro X Stockham
Munro V Kusko
Silvio C Poquette
Jones C Darakjy
Morrow W Figeroa
Wickens W Garufi
Emily I Ruta
Isabel P Malet
Greenwood S Kusko
Murillo K Briddick
Jefferson O Bowley
Clifford K Caldarera
Ashley Z Stockham
Misaki M Saylors
Kadeem E Darakjy
Alejandro U Stenseth
Aruna P Malet
Aruna I Paprocki
Darci N Glick
IdCountryDate
1000India2025-06-03
1001Italy2025-06-09
1002France2025-05-25
1003Russia2025-05-23
1004Spain2025-05-23
1005Japan2025-06-06
1006Argentina2025-05-28
1007Argentina2025-05-27
1008Italy2025-06-11
1009Italy2025-06-08
1010France2025-05-20
1011Russia2025-06-13
1012India2025-05-26
1013United Kingdom2025-05-30
1014Spain2025-06-07
1015France2025-06-05
1016Australia2025-05-23
1017Argentina2025-06-09
1018Brazil2025-05-30
1019Argentina2025-05-27
1020Germany2025-05-19
1021Brazil2025-06-12
1022India2025-06-09
1023United Kingdom2025-06-03
1024Germany2025-06-04
1025India2025-05-25
1026Brazil2025-05-20
1027France2025-05-30
1028France2025-05-26
1029India2025-06-03
1030Italy2025-05-23
1031Brazil2025-06-12
1032Japan2025-05-18
1033Brazil2025-05-29
1034Italy2025-05-31
1035Japan2025-06-09
1036Brazil2025-06-01
1037India2025-06-12
1038Japan2025-05-25
1039Italy2025-06-16
1040Australia2025-05-20
1041Spain2025-06-14
1042Russia2025-06-11
1043Canada2025-06-15
1044France2025-05-30
1045Italy2025-05-19
1046Spain2025-06-10
1047Russia2025-06-08
1048Germany2025-05-21
1049Canada2025-06-08

On-Demand Data

NameIdCountryDate
Greenwood T Poquette1000Germany2025-05-24
James O Campain1001India2025-06-08
Adams G Shinko1002United Kingdom2025-06-04
Emily Q Morasca1003Germany2025-05-20
Johnson V Malet1004Argentina2025-06-14
Chavez J Maclead1005Canada2025-06-09
Salvatore K Marrier1006Italy2025-06-14
Silvio O Caldarera1007Canada2025-05-28
Aruna W Oldroyd1008Spain2025-06-05
Costa W Malet1009Germany2025-05-21
Aruna F Caudy1010Italy2025-06-07
Kaitlin K Ferencz1011Russia2025-06-09
Johnson Z Paprocki1012Germany2025-05-30
Ricardo T Tollner1013Japan2025-05-26
Francesco P Iturbide1014United Kingdom2025-06-11
Emily J Tollner1015Brazil2025-06-03
Darci T Bolognia1016Spain2025-05-25
Faith X Caldarera1017India2025-06-02
James A Royster1018Russia2025-06-10
Munro X Tollner1019India2025-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones D SaylorsUnited KingdomAsiya Javayant RENEWAL
Alejandro Y PoquetteAustraliaAnna Fali NEW
Juan R GauchoRussiaBernardo Dominic NEGOTIATION
Octavia K CampainAustraliaElwin Sharvill QUALIFIED
Morrow C GlickItalyAnna Fali UNQUALIFIED
Leon C BologniaAustraliaAnna Fali NEW
Arvin C RulapaughIndiaAnna Fali NEGOTIATION
Alejandro P VenereCanadaAsiya Javayant QUALIFIED
Jones T WieserIndiaIoni Bowcher NEW
Kadeem W DilliardSpainOnyama Limba RENEWAL
Antonio K BowleyFranceAmy Elsner UNQUALIFIED
Salvatore Y OstroskyFranceAmy Elsner RENEWAL
Nicolas B SlusarskiItalyBernardo Dominic UNQUALIFIED
Francesco F FollerSpainIoni Bowcher NEGOTIATION
Chavez O WaycottFranceIvan Magalhaes NEW
Jones U GauchoCanadaElwin Sharvill QUALIFIED
Antonio X SaylorsGermanyXuxue Feng PROPOSAL
Jones T KolmetzJapanElwin Sharvill NEW
Mayumi M ChuiItalyAmy Elsner NEW
Jefferson M SergiAustraliaIoni Bowcher NEW
Arvin G SergiJapanAsiya Javayant QUALIFIED
Ricardo K TollnerGermanyOnyama Limba UNQUALIFIED
Jeanfrancois M RutaJapanAmy Elsner NEW
Johnson Q SlusarskiRussiaElwin Sharvill NEW
Aruna N AmigonJapanXuxue Feng QUALIFIED
Izzy M MorascaJapanIvan Magalhaes QUALIFIED
Clifford R KolmetzArgentinaAnna Fali RENEWAL
Mayumi E OstroskyCanadaElwin Sharvill QUALIFIED
Wickens K AlbaresFranceXuxue Feng NEGOTIATION
Aruna F OstroskyFranceBernardo Dominic NEGOTIATION
Murillo U ShinkoArgentinaIvan Magalhaes PROPOSAL
Clifford D StockhamAustraliaAsiya Javayant QUALIFIED
Silvio K NickaUnited KingdomElwin Sharvill UNQUALIFIED
Salvatore U StensethItalyAmy Elsner NEW
Johnson L RulapaughJapanAmy Elsner QUALIFIED
Julie S VocelkaSpainOnyama Limba NEW
Adams V MacleadGermanyOnyama Limba NEW
Ivar C GillianGermanyIoni Bowcher QUALIFIED
Kaitlin O BowleySpainAnna Fali NEGOTIATION
Costa Z SchemmerAustraliaAnna 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>