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
Jennifer Y FerenczAustraliaStephen Shaw PROPOSAL
Izzy V GlickArgentinaOnyama Limba NEW
Cody D GarufiGermanyElwin Sharvill UNQUALIFIED
Cody K IturbideAustraliaIoni Bowcher QUALIFIED
Rodrigues D BowleySpainIoni Bowcher PROPOSAL
Wickens A TollnerUnited KingdomIvan Magalhaes NEW
Jones P StensethJapanElwin Sharvill RENEWAL
Alejandro B WhobreyArgentinaIoni Bowcher UNQUALIFIED
Isabel J CaudyCanadaOnyama Limba QUALIFIED
Kadeem I TollnerSpainStephen Shaw PROPOSAL
Emily G CampainBrazilStephen Shaw NEGOTIATION
Izzy M SchemmerUnited KingdomAsiya Javayant UNQUALIFIED
Aruna I MaletIndiaOnyama Limba PROPOSAL
Aditya Z MorascaBrazilElwin Sharvill QUALIFIED
Claire V FigeroaUnited KingdomAnna Fali RENEWAL
Antonio R KuskoIndiaAmy Elsner NEW
Costa G SlusarskiJapanOnyama Limba NEGOTIATION
Clifford G VocelkaJapanBernardo Dominic NEGOTIATION
Aditya E MarrierSpainIoni Bowcher PROPOSAL
Claire Y MaletRussiaXuxue Feng QUALIFIED
Deepesh G OstroskySpainAsiya Javayant UNQUALIFIED
Octavia U DoeGermanyOnyama Limba QUALIFIED
Antonio P PoquetteBrazilAmy Elsner PROPOSAL
Maisha W FigeroaFranceOnyama Limba UNQUALIFIED
Deepesh R WieserGermanyAsiya Javayant NEGOTIATION
Aruna G CaudyAustraliaElwin Sharvill NEW
Claire E SaylorsUnited KingdomOnyama Limba NEGOTIATION
Jones P KolmetzUnited KingdomXuxue Feng UNQUALIFIED
Deepesh B WieserBrazilIoni Bowcher PROPOSAL
Deepesh W MarrierAustraliaIoni Bowcher QUALIFIED
Ashley O SlusarskiBrazilIoni Bowcher QUALIFIED
Maisha N WhobreyJapanOnyama Limba RENEWAL
Deepesh I KolmetzGermanyAmy Elsner RENEWAL
Maria U WieserIndiaStephen Shaw NEW
Murillo Z RulapaughIndiaAsiya Javayant NEW
Deepesh W ChuiIndiaAmy Elsner QUALIFIED
Leja D PerinBrazilXuxue Feng UNQUALIFIED
Ricardo Y KuskoIndiaAmy Elsner NEW
Deepesh T RutaSpainStephen Shaw PROPOSAL
Greenwood G TollnerUnited KingdomElwin Sharvill UNQUALIFIED
Johnson L CampainArgentinaXuxue Feng RENEWAL
Rodrigues U VenereUnited KingdomOnyama Limba PROPOSAL
Juan F RulapaughItalyIvan Magalhaes NEW
Sinclair P RimSpainBernardo Dominic NEW
James V SaylorsAustraliaAnna Fali UNQUALIFIED
Tony V BriddickCanadaIvan Magalhaes QUALIFIED
Munro H IturbideCanadaOnyama Limba RENEWAL
Costa B CampainArgentinaXuxue Feng RENEWAL
Ivar M ChuiCanadaElwin Sharvill NEGOTIATION
Wickens N MacleadSpainElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood R RutaFranceIvan Magalhaes UNQUALIFIED
Stacey Z PerinCanadaElwin Sharvill NEW
Ashley L FerenczRussiaBernardo Dominic NEGOTIATION
Emily L FerenczIndiaIvan Magalhaes QUALIFIED
Emily Q KuskoAustraliaOnyama Limba NEGOTIATION
Misaki R KuskoAustraliaStephen Shaw QUALIFIED
Kadeem P InouyeBrazilBernardo Dominic UNQUALIFIED
Sinclair P SergiArgentinaIvan Magalhaes RENEWAL
Juan I WhobreyArgentinaBernardo Dominic RENEWAL
Nicolas P KolmetzSpainAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James A WieserSpain2025-04-04Chanay, Jeffrey A Esq QUALIFIED21Ioni Bowcher
1001Deepesh L WaycottBrazil2025-04-15Chemel, James L Cpa RENEWAL6Stephen Shaw
1002Morrow F FlosiJapan2025-04-22Feiner Bros PROPOSAL88Bernardo Dominic
1003Johnson Z WhobreyItaly2025-04-27Morlong Associates RENEWAL43Anna Fali
1004Juan T GarufiGermany2025-04-15Truhlar And Truhlar Attys NEGOTIATION59Bernardo Dominic
1005Johnson G MaletCanada2025-04-08Chemel, James L Cpa PROPOSAL52Stephen Shaw
1006Izzy G FlosiBrazil2025-04-07Feiner Bros QUALIFIED66Ioni Bowcher
1007Jones K DilliardItaly2025-04-22Feltz Printing Service NEW38Amy Elsner
1008Kadeem L RoysterIndia2025-04-24Printing Dimensions PROPOSAL36Amy Elsner
1009Leja P RutaJapan2025-04-04Dorl, James J Esq QUALIFIED7Ivan Magalhaes
1010Johnson C GlickUnited Kingdom2025-04-23Chanay, Jeffrey A Esq UNQUALIFIED1Ioni Bowcher
1011Rodrigues T NickaBrazil2025-04-19Feltz Printing Service RENEWAL51Ivan Magalhaes
1012Kadeem P StockhamSpain2025-04-17Printing Dimensions PROPOSAL77Elwin Sharvill
1013Kaitlin F MarrierCanada2025-04-13Truhlar And Truhlar Attys RENEWAL21Onyama Limba
1014Smith D BologniaGermany2025-04-25Morlong Associates PROPOSAL58Onyama Limba
1015Octavia Q GlickGermany2025-04-24King, Christopher A Esq NEW83Asiya Javayant
1016Stacey H StockhamAustralia2025-04-17Commercial Press RENEWAL7Elwin Sharvill
1017Kaitlin J SergiFrance2025-04-21Feiner Bros NEW97Asiya Javayant
1018Arvin Y CaudyRussia2025-04-15Feltz Printing Service QUALIFIED37Stephen Shaw
1019Wickens M MorascaCanada2025-04-14Buckley Miller Wright RENEWAL23Anna Fali
1020Greenwood V NestleArgentina2025-04-15Buckley Miller Wright PROPOSAL37Elwin Sharvill
1021Adams Q ButtGermany2025-04-14Feltz Printing Service PROPOSAL45Asiya Javayant
1022Salvatore D SaylorsItaly2025-04-30Truhlar And Truhlar Attys PROPOSAL82Bernardo Dominic
1023Isabel E GarufiFrance2025-04-22Chanay, Jeffrey A Esq NEW2Elwin Sharvill
1024Jones E VocelkaSpain2025-04-13Benton, John B Jr NEW1Amy Elsner
1025Jennifer A MacleadCanada2025-04-07Truhlar And Truhlar Attys UNQUALIFIED17Asiya Javayant
1026Francesco E FlosiBrazil2025-04-13Rangoni Of Florence PROPOSAL5Stephen Shaw
1027Kaitlin P KolmetzItaly2025-04-01Dorl, James J Esq PROPOSAL9Xuxue Feng
1028Chavez F MorascaBrazil2025-04-08Chanay, Jeffrey A Esq QUALIFIED35Asiya Javayant
1029Salvatore Z WhobreyJapan2025-04-16Rangoni Of Florence RENEWAL68Amy Elsner
1030Rodrigues Z ButtItaly2025-04-13Commercial Press UNQUALIFIED20Amy Elsner
1031Aruna E GarufiJapan2025-04-29Rangoni Of Florence NEGOTIATION39Elwin Sharvill
1032Mayumi O NickaItaly2025-04-04King, Christopher A Esq PROPOSAL69Anna Fali
1033Aditya F RulapaughCanada2025-04-14Printing Dimensions RENEWAL17Stephen Shaw
1034James Q FerenczIndia2025-04-23Feiner Bros RENEWAL77Xuxue Feng
1035Chavez B DilliardFrance2025-04-21Chapman, Ross E Esq RENEWAL23Anna Fali
1036Deepesh I MorascaItaly2025-04-30Benton, John B Jr RENEWAL30Asiya Javayant
1037Adams O FigeroaArgentina2025-04-18Commercial Press RENEWAL50Anna Fali
1038Sinclair B ButtRussia2025-04-29Dorl, James J Esq PROPOSAL42Stephen Shaw
1039Faith Y CampainIndia2025-04-30Feiner Bros QUALIFIED61Onyama Limba
1040Darci S GarufiArgentina2025-04-25Commercial Press QUALIFIED99Ivan Magalhaes
1041Maria B NestleFrance2025-04-21Chanay, Jeffrey A Esq PROPOSAL7Anna Fali
1042Isabel C StockhamRussia2025-04-14Rangoni Of Florence PROPOSAL16Elwin Sharvill
1043Munro M SlusarskiRussia2025-04-06Rousseaux, Michael Esq UNQUALIFIED13Elwin Sharvill
1044Costa B RulapaughFrance2025-04-09Rangoni Of Florence PROPOSAL48Xuxue Feng
1045Kaitlin Y RoysterAustralia2025-04-21Chapman, Ross E Esq QUALIFIED14Onyama Limba
1046Stacey J DilliardBrazil2025-04-29Dorl, James J Esq UNQUALIFIED79Ioni Bowcher
1047Juan R DilliardBrazil2025-04-22King, Christopher A Esq RENEWAL60Asiya Javayant
1048Arvin L OldroydCanada2025-04-12Feiner Bros RENEWAL57Ioni Bowcher
1049Francesco T MacleadItaly2025-04-16Chapman, Ross E Esq UNQUALIFIED92Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Kadeem Z FollerGermanyStephen Shaw QUALIFIED
Aditya O GillianBrazilXuxue Feng UNQUALIFIED
Juan I CampainCanadaElwin Sharvill RENEWAL
Leon R GarufiAustraliaXuxue Feng NEGOTIATION
Claire M InouyeFranceAmy Elsner NEGOTIATION
Octavia Z TollnerGermanyStephen Shaw PROPOSAL
Munro N GlickJapanAsiya Javayant RENEWAL
Ricardo A NestleGermanyXuxue Feng NEGOTIATION
Juan I DilliardArgentinaAmy Elsner QUALIFIED
Maisha D MarrierGermanyIvan Magalhaes NEW
Costa C WhobreyGermanyAsiya Javayant UNQUALIFIED
Ricardo G RulapaughFranceIoni Bowcher NEGOTIATION
Maisha A FigeroaGermanyStephen Shaw NEGOTIATION
Jeanfrancois J MaletSpainBernardo Dominic RENEWAL
Kadeem K SlusarskiBrazilIoni Bowcher NEW
Stacey J OldroydUnited KingdomElwin Sharvill QUALIFIED
Isabel F MorascaSpainAnna Fali NEW
Aruna S FlosiFranceOnyama Limba NEGOTIATION
Clifford K OstroskyCanadaIvan Magalhaes RENEWAL
Arvin B OldroydCanadaAsiya Javayant NEW
Jeanfrancois D MacleadUnited KingdomElwin Sharvill RENEWAL
Emily V BowleyArgentinaAmy Elsner PROPOSAL
Darci Y FerenczAustraliaElwin Sharvill NEGOTIATION
Aditya U ButtAustraliaAnna Fali NEGOTIATION
Morrow D GlickJapanAmy Elsner PROPOSAL
Faith M CaldareraUnited KingdomBernardo Dominic NEW
Isabel E GlickItalyIvan Magalhaes RENEWAL
Aika G FollerIndiaAmy Elsner QUALIFIED
Mujtaba A DarakjySpainIoni Bowcher UNQUALIFIED
Kadeem R SlusarskiSpainAmy Elsner RENEWAL
Antonio A MaletJapanAnna Fali NEW
Leon I PoquetteRussiaStephen Shaw NEW
Leon E MaletJapanAnna Fali NEW
Aruna N DilliardAustraliaStephen Shaw QUALIFIED
Munro Q SchemmerRussiaIoni Bowcher UNQUALIFIED
Stacey X MorascaAustraliaIoni Bowcher NEW
Morrow P StensethSpainAsiya Javayant UNQUALIFIED
Adams H CaudyIndiaAmy Elsner NEGOTIATION
Rodrigues X ChuiJapanAnna Fali NEGOTIATION
Chavez C GarufiUnited KingdomAmy Elsner NEW
Greenwood L AmigonAustraliaStephen Shaw PROPOSAL
Greenwood V ShinkoRussiaXuxue Feng PROPOSAL
Adams U GlickCanadaAsiya Javayant NEW
Sinclair D MaletSpainBernardo Dominic PROPOSAL
Greenwood Z ButtArgentinaAnna Fali NEW
Nicolas Y WieserIndiaBernardo Dominic PROPOSAL
Aruna O WaycottItalyXuxue Feng PROPOSAL
Kaitlin Z FigeroaArgentinaIoni Bowcher NEW
Rodrigues H MarrierAustraliaIoni Bowcher UNQUALIFIED
Adams K PerinBrazilXuxue Feng NEGOTIATION
Frozen Columns
Name
Wickens S Garufi
Stacey S Dilliard
Kaitlin W Stockham
Leon P Malet
Leja S Nicka
Murillo D Wieser
Chavez I Iturbide
Francesco C Glick
Costa J Gillian
Deepesh C Perin
Adams A Maclead
Johnson C Poquette
Johnson M Gillian
Salvatore V Butt
Mujtaba Q Bolognia
Tony D Ruta
Adams N Morasca
Wickens U Tollner
Murillo M Flosi
Misaki T Doe
Francesco O Royster
Claire V Kusko
Misaki K Ferencz
Mayumi G Ruta
Ricardo B Waycott
Munro T Maclead
Smith W Stenseth
Murillo L Gaucho
Wickens Z Caudy
Alejandro P Flosi
Octavia Y Caldarera
Arvin T Poquette
Mayumi D Perin
Deepesh Y Bolognia
Nicolas X Whobrey
Faith O Kolmetz
Salvatore C Albares
Leja P Amigon
Octavia Q Garufi
Leon C Marrier
Mujtaba B Butt
Johnson S Sergi
Costa A Maclead
Deepesh E Malet
Francesco F Kusko
Juan F Oldroyd
Claire Q Perin
Ashley F Whobrey
Aruna T Venere
Mayumi J Rulapaugh
IdCountryDate
1000Canada2025-04-02
1001Australia2025-04-18
1002Germany2025-04-07
1003Argentina2025-04-15
1004Argentina2025-04-25
1005France2025-04-27
1006Japan2025-04-14
1007Brazil2025-04-07
1008Brazil2025-04-15
1009Brazil2025-04-18
1010Argentina2025-04-15
1011Spain2025-04-02
1012Italy2025-04-12
1013United Kingdom2025-04-23
1014Russia2025-04-10
1015Australia2025-04-26
1016Italy2025-04-19
1017Australia2025-04-24
1018Canada2025-04-23
1019Japan2025-04-29
1020Japan2025-04-27
1021Canada2025-04-05
1022India2025-04-23
1023Canada2025-04-06
1024Germany2025-04-04
1025Canada2025-04-30
1026Spain2025-04-28
1027Brazil2025-04-01
1028Canada2025-04-15
1029Argentina2025-04-17
1030United Kingdom2025-04-03
1031Japan2025-04-13
1032Spain2025-04-19
1033Australia2025-04-30
1034Brazil2025-04-05
1035Russia2025-04-28
1036Germany2025-04-12
1037France2025-04-24
1038Russia2025-04-10
1039Argentina2025-04-23
1040Spain2025-04-06
1041Brazil2025-04-19
1042Australia2025-04-27
1043Canada2025-04-13
1044Canada2025-04-23
1045India2025-04-16
1046India2025-04-18
1047Spain2025-04-27
1048Spain2025-04-10
1049France2025-04-28

On-Demand Data

NameIdCountryDate
Jones P Briddick1000Argentina2025-04-18
Mujtaba X Tollner1001Australia2025-04-09
Adams I Gillian1002Argentina2025-04-24
Mayumi A Oldroyd1003Australia2025-04-18
Jennifer H Campain1004Brazil2025-04-02
James F Sergi1005Italy2025-04-20
Munro B Albares1006Spain2025-04-30
Francesco F Morasca1007Canada2025-04-06
Greenwood F Bolognia1008Australia2025-04-25
Jefferson V Stockham1009United Kingdom2025-04-27
Claire L Rulapaugh1010Spain2025-04-14
Julie X Dilliard1011Argentina2025-04-23
Julie S Doe1012Germany2025-04-09
Misaki Q Maclead1013United Kingdom2025-04-28
Costa K Royster1014Brazil2025-04-07
Mayumi J Caldarera1015India2025-04-20
Mujtaba D Ruta1016France2025-04-04
Adams T Poquette1017Canada2025-04-10
Jennifer F Sergi1018Canada2025-04-25
Kadeem E Iturbide1019Germany2025-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy E GillianJapanAmy Elsner UNQUALIFIED
David T GauchoJapanAnna Fali PROPOSAL
Ricardo Z SergiItalyAmy Elsner RENEWAL
Mujtaba P NestleAustraliaBernardo Dominic RENEWAL
David A GillianUnited KingdomXuxue Feng RENEWAL
Wickens I AmigonBrazilStephen Shaw QUALIFIED
Alejandro R OldroydItalyIvan Magalhaes NEGOTIATION
Juan G MaletItalyIvan Magalhaes UNQUALIFIED
Ivar Q GarufiSpainElwin Sharvill UNQUALIFIED
Munro U DoeRussiaXuxue Feng NEW
David O ButtFranceIoni Bowcher QUALIFIED
Francesco I AmigonAustraliaAmy Elsner UNQUALIFIED
Maria U ShinkoItalyElwin Sharvill QUALIFIED
Adams H FlosiGermanyIoni Bowcher NEW
Izzy J MacleadFranceBernardo Dominic RENEWAL
Kaitlin V VocelkaAustraliaOnyama Limba PROPOSAL
Kaitlin Y ShinkoItalyXuxue Feng UNQUALIFIED
Julie X WaycottSpainStephen Shaw PROPOSAL
Cody Z RulapaughGermanyIoni Bowcher NEGOTIATION
Emily G DoeBrazilAmy Elsner NEGOTIATION
Isabel T GillianCanadaElwin Sharvill NEGOTIATION
Silvio T BologniaIndiaXuxue Feng QUALIFIED
Misaki D MaletJapanOnyama Limba UNQUALIFIED
Wickens D KolmetzGermanyAsiya Javayant UNQUALIFIED
Isabel R BowleyItalyAsiya Javayant NEGOTIATION
Adams Y SergiAustraliaXuxue Feng PROPOSAL
Claire T StockhamItalyAnna Fali PROPOSAL
Deepesh Q TollnerGermanyOnyama Limba QUALIFIED
James W TollnerUnited KingdomAmy Elsner PROPOSAL
Ricardo G KuskoFranceOnyama Limba NEW
Johnson T RutaJapanIvan Magalhaes RENEWAL
Darci D BologniaIndiaOnyama Limba RENEWAL
Greenwood P VocelkaAustraliaAnna Fali QUALIFIED
Maisha Q PaprockiIndiaXuxue Feng QUALIFIED
Darci I KuskoIndiaElwin Sharvill PROPOSAL
Greenwood V RulapaughAustraliaStephen Shaw QUALIFIED
Maria K MarrierUnited KingdomElwin Sharvill QUALIFIED
Aika L AlbaresCanadaStephen Shaw PROPOSAL
Leja U SchemmerIndiaXuxue Feng UNQUALIFIED
Silvio V KolmetzFranceIoni Bowcher UNQUALIFIED

<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>