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
Deepesh J DilliardRussiaStephen Shaw RENEWAL
Francesco O BowleyUnited KingdomIoni Bowcher NEW
Sinclair S FigeroaUnited KingdomBernardo Dominic NEW
Mayumi Y RutaUnited KingdomAmy Elsner QUALIFIED
Claire V MarrierGermanyAmy Elsner UNQUALIFIED
Cody G WaycottSpainElwin Sharvill RENEWAL
Clifford F NestleBrazilAsiya Javayant UNQUALIFIED
Izzy J VocelkaIndiaBernardo Dominic NEGOTIATION
Maria W ButtIndiaOnyama Limba QUALIFIED
Greenwood M PaprockiSpainAmy Elsner QUALIFIED
Greenwood I RutaAustraliaElwin Sharvill UNQUALIFIED
Salvatore Z SaylorsJapanAsiya Javayant NEGOTIATION
Maria I AmigonSpainAmy Elsner PROPOSAL
Octavia L CaldareraRussiaAnna Fali QUALIFIED
James B SaylorsGermanyAsiya Javayant RENEWAL
Jeanfrancois O KolmetzUnited KingdomAnna Fali UNQUALIFIED
Darci B OldroydArgentinaXuxue Feng RENEWAL
Jones H ButtJapanAmy Elsner UNQUALIFIED
Jefferson B VocelkaGermanyXuxue Feng RENEWAL
Isabel R FerenczItalyAnna Fali RENEWAL
Ricardo S NickaIndiaXuxue Feng NEW
Clifford B FollerItalyElwin Sharvill RENEWAL
Greenwood A BologniaFranceElwin Sharvill RENEWAL
Emily G SergiUnited KingdomOnyama Limba QUALIFIED
Adams N OldroydItalyXuxue Feng QUALIFIED
James Z ShinkoBrazilElwin Sharvill NEW
Kadeem S RutaIndiaStephen Shaw NEW
Costa B IturbideSpainAmy Elsner NEW
Francesco A CaldareraIndiaAmy Elsner RENEWAL
Clifford K MaletUnited KingdomOnyama Limba QUALIFIED
Aruna H RimIndiaStephen Shaw NEGOTIATION
Rodrigues T RulapaughCanadaAnna Fali NEW
Isabel E TollnerSpainAnna Fali NEW
Adams W GillianItalyAsiya Javayant NEGOTIATION
Mayumi T NestleCanadaAsiya Javayant QUALIFIED
Nicolas U IturbideGermanyAnna Fali NEGOTIATION
Clifford C GauchoRussiaXuxue Feng UNQUALIFIED
Julie G RimAustraliaAnna Fali RENEWAL
Ivar Z MacleadRussiaIoni Bowcher UNQUALIFIED
Leja V CampainIndiaAnna Fali UNQUALIFIED
Kaitlin V GauchoJapanAsiya Javayant PROPOSAL
Maria V MaletGermanyXuxue Feng NEGOTIATION
Aditya Y MaletCanadaBernardo Dominic NEGOTIATION
Deepesh H AlbaresArgentinaAnna Fali UNQUALIFIED
Cody L PaprockiRussiaElwin Sharvill NEGOTIATION
Deepesh V FerenczCanadaElwin Sharvill UNQUALIFIED
Silvio G MacleadUnited KingdomBernardo Dominic PROPOSAL
Leja W MacleadBrazilOnyama Limba UNQUALIFIED
Jefferson S PaprockiUnited KingdomIvan Magalhaes NEGOTIATION
Leon W MaletJapanBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jefferson H IturbideBrazilAsiya Javayant PROPOSAL
Mujtaba O IturbideGermanyStephen Shaw PROPOSAL
Kadeem K FerenczBrazilOnyama Limba NEW
Leja U SergiFranceIoni Bowcher QUALIFIED
Murillo M ButtGermanyAmy Elsner QUALIFIED
Isabel M CampainItalyIvan Magalhaes UNQUALIFIED
Clifford X NickaJapanElwin Sharvill QUALIFIED
Alejandro X WieserIndiaBernardo Dominic RENEWAL
Isabel O WhobreyAustraliaBernardo Dominic NEW
Chavez Y NestleItalyElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody N VenereSpain2026-08-15King, Christopher A Esq NEW77Asiya Javayant
1001Aika G DarakjyIndia2026-08-02Benton, John B Jr UNQUALIFIED74Stephen Shaw
1002Julie V GarufiAustralia2026-08-25Printing Dimensions UNQUALIFIED44Stephen Shaw
1003Misaki X DilliardItaly2026-08-29Chemel, James L Cpa RENEWAL30Amy Elsner
1004Johnson R AlbaresBrazil2026-08-03Dorl, James J Esq QUALIFIED18Anna Fali
1005Isabel R WaycottJapan2026-08-10Rangoni Of Florence QUALIFIED66Asiya Javayant
1006Silvio Y KuskoGermany2026-08-01Chapman, Ross E Esq NEW43Anna Fali
1007Jones B DoeAustralia2026-08-11Commercial Press QUALIFIED40Xuxue Feng
1008Aruna M RoysterIndia2026-08-10Chemel, James L Cpa QUALIFIED15Amy Elsner
1009Julie A MacleadUnited Kingdom2026-08-01King, Christopher A Esq NEGOTIATION94Anna Fali
1010Octavia W DoeBrazil2026-08-19Morlong Associates UNQUALIFIED38Elwin Sharvill
1011Murillo V KuskoFrance2026-08-05Rousseaux, Michael Esq QUALIFIED61Elwin Sharvill
1012Aruna Q RulapaughFrance2026-08-13Feltz Printing Service UNQUALIFIED2Amy Elsner
1013Jeanfrancois Z CampainArgentina2026-08-27Rousseaux, Michael Esq PROPOSAL86Elwin Sharvill
1014Aditya O ShinkoRussia2026-08-05Buckley Miller Wright RENEWAL53Asiya Javayant
1015Munro M VenereRussia2026-08-26Buckley Miller Wright RENEWAL55Amy Elsner
1016Kadeem C KolmetzIndia2026-08-15Buckley Miller Wright PROPOSAL74Amy Elsner
1017Arvin I CaldareraIndia2026-08-05Morlong Associates NEW9Elwin Sharvill
1018Mayumi R AlbaresRussia2026-08-14Feiner Bros PROPOSAL6Elwin Sharvill
1019Kaitlin C DarakjyItaly2026-08-11Feiner Bros RENEWAL20Elwin Sharvill
1020Jones E GillianArgentina2026-08-13Printing Dimensions NEW5Amy Elsner
1021Maisha F RoysterItaly2026-08-28Dorl, James J Esq NEGOTIATION89Ioni Bowcher
1022Emily E VocelkaItaly2026-08-17Morlong Associates RENEWAL90Amy Elsner
1023Alejandro I SlusarskiArgentina2026-08-13Chemel, James L Cpa QUALIFIED58Ioni Bowcher
1024Leon C KolmetzItaly2026-08-03Benton, John B Jr NEGOTIATION80Elwin Sharvill
1025Leja T MaletJapan2026-08-26Chapman, Ross E Esq NEW52Xuxue Feng
1026Jennifer E ChuiBrazil2026-08-21Chanay, Jeffrey A Esq RENEWAL22Bernardo Dominic
1027Mujtaba U ButtBrazil2026-08-14Rangoni Of Florence QUALIFIED21Bernardo Dominic
1028Antonio L ShinkoBrazil2026-08-25Rangoni Of Florence RENEWAL70Bernardo Dominic
1029Alejandro Z MaletItaly2026-08-03Chanay, Jeffrey A Esq NEGOTIATION90Xuxue Feng
1030Mujtaba T DoeAustralia2026-08-19Printing Dimensions QUALIFIED20Asiya Javayant
1031Leon J DarakjySpain2026-08-14Feltz Printing Service RENEWAL85Asiya Javayant
1032Clifford O KuskoSpain2026-08-09Chapman, Ross E Esq QUALIFIED9Asiya Javayant
1033Leon I OldroydGermany2026-07-31Printing Dimensions QUALIFIED52Anna Fali
1034Julie X FerenczBrazil2026-08-03Chapman, Ross E Esq QUALIFIED99Asiya Javayant
1035Octavia P NestleBrazil2026-08-11Buckley Miller Wright UNQUALIFIED61Amy Elsner
1036Sinclair Y PaprockiAustralia2026-08-04Feiner Bros UNQUALIFIED39Anna Fali
1037Kaitlin Z RimArgentina2026-08-08Truhlar And Truhlar Attys UNQUALIFIED37Xuxue Feng
1038David O GarufiBrazil2026-08-02Chemel, James L Cpa UNQUALIFIED50Asiya Javayant
1039Darci P RulapaughCanada2026-08-12Truhlar And Truhlar Attys NEW36Ioni Bowcher
1040Aditya I GarufiRussia2026-08-18Rangoni Of Florence RENEWAL5Xuxue Feng
1041Maria O PoquetteCanada2026-08-23Feiner Bros UNQUALIFIED75Onyama Limba
1042Wickens T BriddickIndia2026-08-10Rangoni Of Florence NEGOTIATION76Ivan Magalhaes
1043Jeanfrancois U VenereAustralia2026-08-19King, Christopher A Esq NEGOTIATION35Elwin Sharvill
1044James B FigeroaJapan2026-08-17Rousseaux, Michael Esq RENEWAL25Amy Elsner
1045Mujtaba K MacleadSpain2026-08-29Benton, John B Jr UNQUALIFIED16Ivan Magalhaes
1046Isabel E InouyeFrance2026-08-23Truhlar And Truhlar Attys NEGOTIATION90Anna Fali
1047Julie T PerinRussia2026-07-31Chapman, Ross E Esq NEW93Ivan Magalhaes
1048Alejandro H FlosiCanada2026-08-07Benton, John B Jr NEGOTIATION97Amy Elsner
1049Sinclair L AmigonArgentina2026-08-24King, Christopher A Esq QUALIFIED7Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Morrow W ButtCanadaAnna Fali RENEWAL
Tony F ChuiUnited KingdomAnna Fali NEW
Cody V OldroydRussiaOnyama Limba NEGOTIATION
Aditya J MarrierIndiaAnna Fali NEGOTIATION
Wickens Z RoysterRussiaStephen Shaw NEGOTIATION
Rodrigues F CaudyBrazilAnna Fali QUALIFIED
Sinclair R BowleyUnited KingdomAsiya Javayant NEW
Wickens O SaylorsArgentinaAsiya Javayant QUALIFIED
Francesco K KuskoUnited KingdomXuxue Feng QUALIFIED
Rodrigues Q WaycottGermanyBernardo Dominic UNQUALIFIED
Salvatore V NestleCanadaXuxue Feng UNQUALIFIED
Tony L SaylorsAustraliaIoni Bowcher UNQUALIFIED
Isabel J KuskoCanadaOnyama Limba NEW
Leon V GarufiCanadaElwin Sharvill UNQUALIFIED
Mayumi Z PoquetteIndiaIoni Bowcher UNQUALIFIED
Smith R CampainUnited KingdomXuxue Feng RENEWAL
Aika A DilliardGermanyAmy Elsner QUALIFIED
Julie G InouyeJapanElwin Sharvill NEW
Silvio T PaprockiJapanAmy Elsner PROPOSAL
Leja W StensethUnited KingdomXuxue Feng PROPOSAL
James P SaylorsArgentinaAnna Fali PROPOSAL
Jones Q SlusarskiBrazilXuxue Feng PROPOSAL
Adams S ButtArgentinaBernardo Dominic QUALIFIED
Silvio O IturbideSpainStephen Shaw QUALIFIED
Morrow U RimCanadaOnyama Limba UNQUALIFIED
Aika X PaprockiIndiaIvan Magalhaes RENEWAL
Mayumi L OldroydArgentinaIvan Magalhaes QUALIFIED
Ricardo I OstroskyCanadaIoni Bowcher UNQUALIFIED
Stacey H DoeIndiaOnyama Limba NEGOTIATION
Deepesh A VocelkaAustraliaIoni Bowcher UNQUALIFIED
Claire C CampainCanadaOnyama Limba NEGOTIATION
Jeanfrancois A FollerItalyElwin Sharvill QUALIFIED
Johnson C GillianGermanyElwin Sharvill RENEWAL
Deepesh Z FigeroaItalyAnna Fali RENEWAL
David J VocelkaSpainIvan Magalhaes NEW
Leja I SlusarskiArgentinaAnna Fali UNQUALIFIED
Silvio R PaprockiJapanStephen Shaw RENEWAL
Leja M StockhamAustraliaOnyama Limba NEGOTIATION
Izzy D MarrierFranceIoni Bowcher QUALIFIED
Maisha A PerinArgentinaAsiya Javayant PROPOSAL
Rodrigues O DarakjyGermanyIoni Bowcher NEW
Smith Y DilliardItalyIvan Magalhaes NEW
Ashley V StockhamAustraliaIvan Magalhaes UNQUALIFIED
Morrow J KuskoArgentinaOnyama Limba PROPOSAL
Izzy M GauchoJapanStephen Shaw RENEWAL
Greenwood N DilliardArgentinaStephen Shaw QUALIFIED
Costa Y FerenczAustraliaOnyama Limba PROPOSAL
Adams M KuskoGermanyXuxue Feng UNQUALIFIED
Jones A CampainAustraliaOnyama Limba QUALIFIED
Claire W BowleyBrazilIvan Magalhaes RENEWAL
Frozen Columns
Name
Maisha Y Caudy
Greenwood L Dilliard
Morrow J Rim
Ricardo A Foller
David J Oldroyd
Costa R Tollner
Mayumi Q Saylors
Leja R Dilliard
Octavia P Doe
Cody T Amigon
Greenwood C Campain
Silvio C Sergi
Misaki O Ruta
Aditya Q Nestle
Smith G Stenseth
Nicolas H Nestle
Francesco D Darakjy
Arvin T Garufi
Maisha N Amigon
Maisha W Bowley
Ashley S Campain
Jennifer I Campain
Aika H Nicka
Maria Y Shinko
Rodrigues U Rim
Morrow O Caudy
Ivar X Ruta
Misaki E Shinko
Rodrigues X Paprocki
Maisha N Nestle
Clifford C Glick
Antonio V Ostrosky
Izzy W Iturbide
Jennifer G Figeroa
Clifford T Rim
Ivar R Foller
Nicolas W Poquette
Emily R Rulapaugh
Darci N Slusarski
Octavia P Kolmetz
Clifford Y Vocelka
Rodrigues K Nicka
Ivar R Chui
Munro X Waycott
Misaki V Flosi
Tony R Albares
Jones I Caudy
Wickens I Nicka
Cody U Ruta
Murillo J Bolognia
IdCountryDate
1000United Kingdom2026-08-23
1001Italy2026-08-03
1002India2026-08-17
1003Canada2026-08-07
1004Argentina2026-08-02
1005United Kingdom2026-08-07
1006Australia2026-08-26
1007Spain2026-08-29
1008United Kingdom2026-08-04
1009Argentina2026-08-13
1010Italy2026-08-22
1011Brazil2026-08-01
1012Australia2026-08-16
1013Canada2026-08-28
1014Germany2026-08-03
1015Italy2026-08-07
1016Canada2026-08-16
1017Spain2026-08-09
1018Russia2026-08-15
1019Germany2026-08-05
1020France2026-08-01
1021Spain2026-08-29
1022Italy2026-08-28
1023Japan2026-08-14
1024Canada2026-08-09
1025Italy2026-08-10
1026Russia2026-08-21
1027Argentina2026-08-04
1028United Kingdom2026-08-14
1029Russia2026-08-08
1030Australia2026-08-23
1031France2026-08-10
1032France2026-08-13
1033Japan2026-08-10
1034Italy2026-08-14
1035Germany2026-08-09
1036United Kingdom2026-08-10
1037Australia2026-08-02
1038Australia2026-08-21
1039Spain2026-08-10
1040Germany2026-08-06
1041Argentina2026-08-18
1042France2026-08-19
1043Italy2026-08-15
1044Brazil2026-08-27
1045Australia2026-08-06
1046Japan2026-08-02
1047Brazil2026-08-29
1048Russia2026-08-16
1049France2026-08-29

On-Demand Data

NameIdCountryDate
Ricardo H Malet1000Australia2026-08-18
Juan J Royster1001Canada2026-08-02
Aika Z Stockham1002France2026-08-08
Rodrigues Y Malet1003France2026-08-07
Aika S Saylors1004Russia2026-08-02
Aruna X Maclead1005Russia2026-08-14
Sinclair N Foller1006Australia2026-08-03
Nicolas B Glick1007Brazil2026-08-16
Izzy J Bowley1008Japan2026-08-01
Stacey U Doe1009Russia2026-08-19
Izzy T Chui1010Spain2026-08-25
Munro D Darakjy1011Brazil2026-08-02
Maisha Y Sergi1012Argentina2026-08-23
Silvio K Darakjy1013Russia2026-08-12
Isabel N Poquette1014Japan2026-08-29
James E Garufi1015Argentina2026-08-28
Tony F Albares1016France2026-08-21
Greenwood A Briddick1017Canada2026-08-21
Clifford H Rim1018Brazil2026-08-18
Costa X Venere1019United Kingdom2026-08-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood J RutaSpainIvan Magalhaes NEW
Leon G NickaFranceAmy Elsner PROPOSAL
Deepesh B MorascaFranceElwin Sharvill RENEWAL
Jones E GarufiCanadaAsiya Javayant UNQUALIFIED
Kaitlin Y MorascaBrazilIvan Magalhaes NEW
Silvio A StensethIndiaXuxue Feng RENEWAL
Aruna I SaylorsRussiaElwin Sharvill UNQUALIFIED
Clifford N BologniaFranceStephen Shaw NEGOTIATION
Leon E GarufiUnited KingdomBernardo Dominic NEGOTIATION
James W GlickFranceAmy Elsner PROPOSAL
David Q GlickRussiaAmy Elsner NEW
James D CaldareraIndiaIvan Magalhaes NEW
Aruna L SchemmerCanadaElwin Sharvill QUALIFIED
Misaki Q OstroskyIndiaAmy Elsner RENEWAL
Isabel U DarakjyBrazilBernardo Dominic UNQUALIFIED
Leja R SergiItalyIoni Bowcher QUALIFIED
Nicolas G MaletSpainAnna Fali RENEWAL
Alejandro A StockhamUnited KingdomAnna Fali NEW
Smith S RimFranceElwin Sharvill QUALIFIED
Murillo K PoquetteGermanyAsiya Javayant QUALIFIED
Deepesh M MarrierGermanyBernardo Dominic PROPOSAL
Kadeem X CampainArgentinaAnna Fali PROPOSAL
Clifford Y SlusarskiFranceAsiya Javayant QUALIFIED
Chavez V RulapaughGermanyBernardo Dominic NEW
Octavia R MaletJapanAsiya Javayant PROPOSAL
Mujtaba C MarrierFranceIvan Magalhaes NEGOTIATION
Kaitlin F SchemmerIndiaXuxue Feng PROPOSAL
Darci W CampainJapanAmy Elsner NEW
Maria Y CampainGermanyAnna Fali NEGOTIATION
Faith U BowleyCanadaAsiya Javayant PROPOSAL
Adams Y NickaIndiaBernardo Dominic RENEWAL
Kaitlin D WieserSpainIoni Bowcher QUALIFIED
Izzy Q SaylorsAustraliaIvan Magalhaes NEGOTIATION
Emily B OldroydItalyElwin Sharvill UNQUALIFIED
Arvin J MacleadArgentinaBernardo Dominic QUALIFIED
Ivar M StensethJapanStephen Shaw NEW
Stacey J GauchoUnited KingdomAnna Fali NEW
Kadeem E ShinkoFranceElwin Sharvill NEGOTIATION
Mayumi O AlbaresBrazilAnna Fali QUALIFIED
Ivar A SergiBrazilIoni Bowcher NEGOTIATION

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