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
Sinclair X WhobreyArgentinaAsiya Javayant QUALIFIED
Sinclair N MacleadGermanyXuxue Feng NEGOTIATION
Salvatore Z DoeBrazilAsiya Javayant PROPOSAL
Emily C BriddickSpainXuxue Feng PROPOSAL
Mayumi Q SergiArgentinaIoni Bowcher NEW
Kaitlin O PaprockiBrazilXuxue Feng PROPOSAL
Tony I GillianArgentinaAsiya Javayant NEW
Johnson Z IturbideBrazilAmy Elsner PROPOSAL
Octavia A OldroydUnited KingdomStephen Shaw QUALIFIED
Emily O AmigonGermanyElwin Sharvill RENEWAL
Aruna Z VenereJapanIvan Magalhaes NEGOTIATION
Juan H SergiBrazilIoni Bowcher QUALIFIED
Octavia B CaudyArgentinaStephen Shaw QUALIFIED
Tony E GillianJapanElwin Sharvill RENEWAL
Silvio R ChuiSpainIoni Bowcher RENEWAL
Johnson D GillianIndiaAmy Elsner QUALIFIED
Arvin M SlusarskiAustraliaAmy Elsner PROPOSAL
Antonio A KuskoUnited KingdomIoni Bowcher NEGOTIATION
Leon G FollerUnited KingdomIoni Bowcher QUALIFIED
Darci Z VocelkaGermanyStephen Shaw PROPOSAL
Adams M DarakjySpainBernardo Dominic NEGOTIATION
Arvin K FollerGermanyBernardo Dominic PROPOSAL
Emily I SaylorsUnited KingdomElwin Sharvill QUALIFIED
Leon A PoquetteArgentinaStephen Shaw NEW
Arvin O GlickCanadaIvan Magalhaes NEW
Wickens J ChuiUnited KingdomOnyama Limba NEW
Sinclair H CampainItalyAmy Elsner UNQUALIFIED
Salvatore S DoeIndiaStephen Shaw QUALIFIED
Mayumi Z FlosiItalyBernardo Dominic RENEWAL
Jennifer B MaletUnited KingdomBernardo Dominic QUALIFIED
Alejandro E OstroskyItalyAmy Elsner RENEWAL
Aditya Y AmigonArgentinaBernardo Dominic QUALIFIED
Jefferson G OldroydBrazilAmy Elsner PROPOSAL
Octavia F DilliardIndiaAsiya Javayant PROPOSAL
Rodrigues X CampainSpainIoni Bowcher PROPOSAL
Wickens X OldroydAustraliaOnyama Limba RENEWAL
Deepesh O VocelkaAustraliaElwin Sharvill QUALIFIED
Chavez D RutaAustraliaAmy Elsner NEW
Ricardo M OldroydFranceBernardo Dominic RENEWAL
Isabel L MacleadSpainElwin Sharvill NEW
Deepesh T OldroydCanadaIvan Magalhaes NEW
David Q OldroydGermanyAsiya Javayant RENEWAL
Julie L MarrierRussiaAnna Fali RENEWAL
Costa W CaudyJapanAnna Fali QUALIFIED
Adams S VocelkaAustraliaIvan Magalhaes PROPOSAL
Antonio H WaycottGermanyBernardo Dominic QUALIFIED
Ivar I ChuiFranceAmy Elsner NEGOTIATION
Antonio K ChuiItalyIvan Magalhaes UNQUALIFIED
Johnson Y RoysterBrazilAsiya Javayant RENEWAL
Silvio S RoysterIndiaBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Chavez K FlosiCanadaXuxue Feng UNQUALIFIED
Ashley F MorascaRussiaOnyama Limba NEW
Isabel V MaletBrazilStephen Shaw NEW
Maria K SergiItalyElwin Sharvill RENEWAL
Octavia K KuskoRussiaBernardo Dominic NEGOTIATION
Stacey N CampainUnited KingdomIvan Magalhaes QUALIFIED
Silvio Q SlusarskiAustraliaAmy Elsner RENEWAL
Aika A SlusarskiGermanyElwin Sharvill QUALIFIED
Mujtaba Z KolmetzJapanIoni Bowcher NEGOTIATION
Chavez P MaletItalyStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer Z RutaBrazil2026-07-27Chapman, Ross E Esq QUALIFIED63Ioni Bowcher
1001Leja P WieserJapan2026-07-28Rousseaux, Michael Esq NEGOTIATION32Anna Fali
1002Clifford V WieserRussia2026-07-20Rangoni Of Florence NEW16Xuxue Feng
1003Maisha R AlbaresSpain2026-07-26Chanay, Jeffrey A Esq QUALIFIED75Onyama Limba
1004Wickens N AlbaresSpain2026-07-17Feiner Bros RENEWAL12Elwin Sharvill
1005Leon Y ShinkoArgentina2026-08-05Truhlar And Truhlar Attys QUALIFIED53Asiya Javayant
1006Costa D IturbideBrazil2026-07-24Chemel, James L Cpa PROPOSAL79Xuxue Feng
1007Kadeem S FollerRussia2026-08-06Dorl, James J Esq NEW70Bernardo Dominic
1008Wickens B IturbideFrance2026-07-17Morlong Associates RENEWAL12Amy Elsner
1009Munro W PaprockiIndia2026-07-12Chanay, Jeffrey A Esq QUALIFIED92Bernardo Dominic
1010Morrow O SlusarskiCanada2026-07-16King, Christopher A Esq NEW25Ivan Magalhaes
1011Kaitlin S MaletCanada2026-07-25Truhlar And Truhlar Attys PROPOSAL3Ivan Magalhaes
1012Leon A MorascaAustralia2026-07-19Truhlar And Truhlar Attys PROPOSAL0Stephen Shaw
1013Leon G DilliardFrance2026-08-04Morlong Associates PROPOSAL19Onyama Limba
1014Jefferson N VocelkaSpain2026-07-26Chemel, James L Cpa RENEWAL78Onyama Limba
1015Claire O GauchoIndia2026-07-30Feltz Printing Service RENEWAL45Asiya Javayant
1016Morrow D VenereUnited Kingdom2026-08-09Printing Dimensions QUALIFIED81Bernardo Dominic
1017Costa N SchemmerArgentina2026-08-05Benton, John B Jr QUALIFIED63Stephen Shaw
1018Rodrigues B RutaRussia2026-07-22Morlong Associates NEW87Onyama Limba
1019Juan J IturbideIndia2026-07-13Buckley Miller Wright PROPOSAL2Stephen Shaw
1020Smith Z KolmetzUnited Kingdom2026-07-18Chapman, Ross E Esq UNQUALIFIED6Asiya Javayant
1021Jones D RulapaughIndia2026-08-05Benton, John B Jr QUALIFIED67Anna Fali
1022Francesco U MaletCanada2026-07-23Rousseaux, Michael Esq NEGOTIATION50Stephen Shaw
1023James O TollnerUnited Kingdom2026-07-24Benton, John B Jr PROPOSAL84Ivan Magalhaes
1024Salvatore A TollnerItaly2026-07-31Dorl, James J Esq QUALIFIED46Ioni Bowcher
1025Darci P NestleUnited Kingdom2026-08-01Commercial Press NEGOTIATION17Bernardo Dominic
1026David R MacleadJapan2026-07-16Chanay, Jeffrey A Esq PROPOSAL97Xuxue Feng
1027Claire D CampainRussia2026-07-13King, Christopher A Esq NEW51Anna Fali
1028Maria X AlbaresAustralia2026-08-06Buckley Miller Wright QUALIFIED14Amy Elsner
1029Izzy C VenereCanada2026-08-07Dorl, James J Esq PROPOSAL40Xuxue Feng
1030Izzy S SergiAustralia2026-07-14Commercial Press NEW75Anna Fali
1031Arvin N DilliardJapan2026-08-10Feiner Bros NEGOTIATION24Bernardo Dominic
1032Octavia K MorascaUnited Kingdom2026-07-12Morlong Associates RENEWAL98Anna Fali
1033Kadeem B RutaJapan2026-08-01Rousseaux, Michael Esq NEGOTIATION39Stephen Shaw
1034Aruna H AmigonGermany2026-07-31Feiner Bros QUALIFIED54Anna Fali
1035Murillo F StensethUnited Kingdom2026-07-23Morlong Associates UNQUALIFIED95Stephen Shaw
1036Sinclair M FigeroaJapan2026-08-03Feltz Printing Service NEW36Bernardo Dominic
1037Silvio R BriddickSpain2026-08-05Benton, John B Jr QUALIFIED88Stephen Shaw
1038Wickens P CaudyCanada2026-08-03Dorl, James J Esq UNQUALIFIED92Bernardo Dominic
1039Clifford P DilliardArgentina2026-08-10Chanay, Jeffrey A Esq PROPOSAL8Amy Elsner
1040Jennifer S MaletAustralia2026-07-14Printing Dimensions NEGOTIATION38Asiya Javayant
1041Rodrigues G FollerFrance2026-08-10Chapman, Ross E Esq NEW40Amy Elsner
1042Emily C DarakjyIndia2026-07-25Truhlar And Truhlar Attys PROPOSAL13Ioni Bowcher
1043Smith J RutaJapan2026-07-29Buckley Miller Wright UNQUALIFIED57Ivan Magalhaes
1044Aika T WieserGermany2026-07-16Chanay, Jeffrey A Esq RENEWAL96Ioni Bowcher
1045Mujtaba L PoquetteRussia2026-08-09Buckley Miller Wright NEGOTIATION6Onyama Limba
1046Mayumi F ChuiItaly2026-08-02Commercial Press UNQUALIFIED73Xuxue Feng
1047Misaki D WhobreyUnited Kingdom2026-08-05Chapman, Ross E Esq QUALIFIED3Asiya Javayant
1048Juan U MaletJapan2026-07-14Chemel, James L Cpa QUALIFIED34Ivan Magalhaes
1049Rodrigues I MaletFrance2026-07-20Feltz Printing Service QUALIFIED31Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Mayumi D RutaUnited KingdomIoni Bowcher NEW
Octavia G PoquetteFranceAsiya Javayant NEW
Jefferson S NestleUnited KingdomIvan Magalhaes QUALIFIED
Julie D FigeroaFranceAsiya Javayant NEW
Clifford F SergiUnited KingdomIvan Magalhaes PROPOSAL
Mayumi J InouyeArgentinaOnyama Limba NEW
Murillo C OstroskyRussiaOnyama Limba QUALIFIED
Silvio I GauchoItalyStephen Shaw PROPOSAL
Jennifer V WhobreyGermanyStephen Shaw NEGOTIATION
Salvatore P BowleyCanadaAmy Elsner PROPOSAL
Rodrigues G OstroskyCanadaAsiya Javayant UNQUALIFIED
Jefferson X IturbideBrazilXuxue Feng UNQUALIFIED
Cody V MarrierIndiaIoni Bowcher QUALIFIED
Francesco X WaycottJapanAnna Fali PROPOSAL
Isabel Y MorascaSpainIoni Bowcher UNQUALIFIED
Rodrigues I RutaItalyIoni Bowcher QUALIFIED
Arvin G GauchoBrazilIoni Bowcher PROPOSAL
Izzy Y PerinGermanyIvan Magalhaes UNQUALIFIED
Juan G ButtSpainAnna Fali RENEWAL
Octavia F CaudyItalyXuxue Feng UNQUALIFIED
Ricardo R GlickItalyIoni Bowcher NEW
Adams C GarufiRussiaIoni Bowcher PROPOSAL
Aika F MorascaRussiaAmy Elsner RENEWAL
Mayumi V WieserFranceIoni Bowcher NEW
Isabel X MarrierSpainStephen Shaw RENEWAL
Chavez F BowleyCanadaStephen Shaw RENEWAL
Juan A AmigonJapanIvan Magalhaes UNQUALIFIED
Nicolas A VocelkaRussiaIoni Bowcher NEGOTIATION
Morrow I DoeFranceIvan Magalhaes PROPOSAL
Leja G BowleyFranceXuxue Feng RENEWAL
Claire U NestleAustraliaIoni Bowcher QUALIFIED
Mayumi P GauchoItalyAmy Elsner PROPOSAL
Mayumi N ShinkoBrazilAnna Fali NEW
Greenwood D NickaAustraliaXuxue Feng QUALIFIED
Ashley R CampainItalyElwin Sharvill RENEWAL
Izzy T FerenczRussiaAsiya Javayant PROPOSAL
Munro A FlosiArgentinaBernardo Dominic PROPOSAL
Costa S DilliardArgentinaIvan Magalhaes NEGOTIATION
Sinclair I InouyeItalyOnyama Limba UNQUALIFIED
Sinclair W PoquetteSpainOnyama Limba QUALIFIED
Nicolas G GillianAustraliaOnyama Limba PROPOSAL
Aditya L SchemmerJapanElwin Sharvill NEW
Claire I GlickIndiaStephen Shaw NEGOTIATION
Misaki O RutaArgentinaBernardo Dominic QUALIFIED
Smith Y StockhamFranceXuxue Feng UNQUALIFIED
Aditya C PaprockiUnited KingdomBernardo Dominic RENEWAL
Stacey F RimSpainElwin Sharvill NEW
Chavez I FlosiSpainIvan Magalhaes PROPOSAL
Ricardo I WieserIndiaAmy Elsner UNQUALIFIED
Stacey H InouyeItalyAnna Fali NEW
Frozen Columns
Name
Jeanfrancois W Figeroa
Cody K Caudy
Deepesh M Amigon
Sinclair Q Saylors
Claire I Waycott
Ricardo D Stockham
Murillo K Tollner
Morrow N Venere
Juan M Campain
Misaki C Schemmer
Isabel A Whobrey
Murillo S Stockham
Darci B Iturbide
Emily K Flosi
Claire Y Rim
Ivar G Royster
Octavia B Paprocki
Deepesh H Bowley
Kadeem T Venere
Maisha Z Paprocki
Julie F Bowley
Maria F Ruta
Maisha L Garufi
Salvatore P Malet
Tony F Waycott
Tony F Caldarera
Ivar P Nicka
Izzy C Oldroyd
Kadeem L Stockham
Kadeem K Slusarski
Aditya N Bolognia
Murillo C Briddick
Faith V Oldroyd
Silvio Z Amigon
Mayumi X Waycott
Silvio B Paprocki
Nicolas S Butt
Julie D Stockham
Julie M Caudy
Wickens X Butt
Stacey G Albares
Julie Y Albares
Johnson L Bolognia
Wickens D Oldroyd
Darci S Darakjy
Jeanfrancois N Ruta
Aditya Y Stockham
Jones U Maclead
Mayumi E Oldroyd
Emily X Whobrey
IdCountryDate
1000Argentina2026-07-27
1001Japan2026-07-16
1002Argentina2026-07-29
1003Argentina2026-08-07
1004France2026-07-16
1005Argentina2026-08-06
1006Canada2026-08-07
1007Brazil2026-07-15
1008Russia2026-08-09
1009Japan2026-07-21
1010Italy2026-08-09
1011Russia2026-07-28
1012Canada2026-07-26
1013Japan2026-08-01
1014Canada2026-07-21
1015Canada2026-07-22
1016France2026-08-05
1017India2026-07-15
1018Spain2026-07-16
1019Germany2026-08-07
1020France2026-08-01
1021Japan2026-07-26
1022Brazil2026-08-07
1023Russia2026-08-10
1024United Kingdom2026-07-23
1025Germany2026-07-26
1026Russia2026-07-19
1027Canada2026-08-04
1028United Kingdom2026-08-10
1029Brazil2026-07-27
1030Italy2026-07-31
1031Japan2026-07-15
1032Russia2026-07-23
1033France2026-07-21
1034United Kingdom2026-07-25
1035India2026-07-23
1036Italy2026-07-28
1037India2026-07-15
1038Germany2026-08-05
1039Canada2026-07-24
1040Australia2026-08-05
1041Spain2026-07-21
1042Japan2026-07-19
1043Germany2026-08-02
1044India2026-07-12
1045Australia2026-07-31
1046Canada2026-08-03
1047India2026-07-14
1048India2026-07-13
1049Japan2026-08-09

On-Demand Data

NameIdCountryDate
Munro E Wieser1000Canada2026-07-19
Morrow T Maclead1001Brazil2026-07-14
Leon J Poquette1002Argentina2026-07-18
Greenwood A Morasca1003United Kingdom2026-07-29
Adams L Kusko1004Canada2026-08-06
Silvio E Stockham1005United Kingdom2026-07-27
Aika E Amigon1006Argentina2026-07-16
Murillo Q Inouye1007India2026-08-01
Claire E Dilliard1008India2026-07-13
Johnson H Schemmer1009Italy2026-07-24
Jennifer F Maclead1010Italy2026-07-19
Jones E Gillian1011United Kingdom2026-07-28
Faith N Poquette1012Italy2026-07-12
Salvatore P Gaucho1013Argentina2026-07-12
Aditya D Amigon1014Russia2026-07-19
David L Oldroyd1015Russia2026-07-24
Tony N Maclead1016Australia2026-07-29
Misaki K Royster1017Brazil2026-07-21
Juan S Chui1018Canada2026-07-17
Mayumi K Maclead1019Germany2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood A NickaAustraliaElwin Sharvill UNQUALIFIED
Wickens B DilliardCanadaAmy Elsner PROPOSAL
Johnson P ButtSpainXuxue Feng UNQUALIFIED
Stacey V ChuiCanadaIoni Bowcher RENEWAL
Ashley M MaletUnited KingdomXuxue Feng RENEWAL
Cody D InouyeBrazilAnna Fali PROPOSAL
Aruna C ChuiIndiaAmy Elsner NEGOTIATION
Isabel K OldroydCanadaBernardo Dominic NEW
Leon Q BologniaBrazilIvan Magalhaes PROPOSAL
Jones Q IturbideCanadaAmy Elsner QUALIFIED
Aditya R AlbaresFranceAmy Elsner NEW
Jennifer O CaldareraCanadaIvan Magalhaes RENEWAL
Deepesh J FigeroaAustraliaIvan Magalhaes NEW
Juan J FollerFranceAmy Elsner UNQUALIFIED
Silvio A CaudyJapanIoni Bowcher QUALIFIED
Ricardo Q ChuiArgentinaAnna Fali QUALIFIED
Juan R MaletRussiaOnyama Limba NEW
Leja M DilliardRussiaAmy Elsner PROPOSAL
Aika A WieserIndiaXuxue Feng PROPOSAL
Ricardo M CaudyJapanAsiya Javayant QUALIFIED
Aika J FerenczSpainIoni Bowcher NEW
Jeanfrancois Q WieserFranceIoni Bowcher NEGOTIATION
Jones O SergiSpainAnna Fali NEGOTIATION
James H GauchoRussiaElwin Sharvill NEGOTIATION
Jones L GarufiJapanStephen Shaw UNQUALIFIED
Jones Z PoquetteGermanyStephen Shaw QUALIFIED
Cody F CampainFranceElwin Sharvill UNQUALIFIED
James M AlbaresUnited KingdomXuxue Feng RENEWAL
Adams Q MaletSpainIvan Magalhaes NEGOTIATION
Munro R VocelkaUnited KingdomOnyama Limba UNQUALIFIED
James F WieserItalyXuxue Feng UNQUALIFIED
Munro K CaudySpainBernardo Dominic PROPOSAL
Kadeem P BriddickIndiaOnyama Limba PROPOSAL
Cody E GlickFranceBernardo Dominic NEGOTIATION
Murillo F TollnerUnited KingdomElwin Sharvill NEGOTIATION
Costa I MaletAustraliaXuxue Feng UNQUALIFIED
Juan Q BriddickRussiaElwin Sharvill NEW
Cody V FollerAustraliaIvan Magalhaes NEGOTIATION
Aika M ChuiBrazilElwin Sharvill NEGOTIATION
Salvatore P FigeroaAustraliaAnna Fali 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>