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
Juan I DoeAustraliaBernardo Dominic PROPOSAL
Ricardo D KuskoItalyAnna Fali RENEWAL
Johnson M VenereGermanyAnna Fali NEGOTIATION
Mayumi V ChuiIndiaXuxue Feng RENEWAL
Jennifer A WaycottIndiaBernardo Dominic UNQUALIFIED
Emily K KolmetzItalyAmy Elsner QUALIFIED
Aika S MaletAustraliaStephen Shaw NEGOTIATION
Arvin F FollerIndiaAmy Elsner RENEWAL
Maisha Z StockhamFranceStephen Shaw NEGOTIATION
James O FigeroaSpainIvan Magalhaes PROPOSAL
Jennifer E WaycottBrazilIvan Magalhaes RENEWAL
Chavez F CaldareraJapanElwin Sharvill UNQUALIFIED
Isabel L KolmetzArgentinaOnyama Limba QUALIFIED
Isabel C DilliardItalyXuxue Feng NEW
Smith R PoquetteArgentinaXuxue Feng PROPOSAL
Octavia D SchemmerItalyOnyama Limba PROPOSAL
Aika H AmigonJapanBernardo Dominic UNQUALIFIED
Mujtaba Z WhobreyGermanyOnyama Limba RENEWAL
Claire N RulapaughItalyIvan Magalhaes NEGOTIATION
Faith C FlosiSpainBernardo Dominic NEGOTIATION
Jeanfrancois S GarufiFranceStephen Shaw PROPOSAL
Ricardo A TollnerJapanAnna Fali NEW
Munro L RimArgentinaAmy Elsner RENEWAL
Faith Q StensethGermanyIoni Bowcher QUALIFIED
Ivar O IturbideBrazilOnyama Limba UNQUALIFIED
Maisha X SlusarskiUnited KingdomAmy Elsner QUALIFIED
Juan O InouyeItalyOnyama Limba QUALIFIED
Sinclair O WaycottArgentinaAsiya Javayant UNQUALIFIED
Alejandro L DoeArgentinaAnna Fali PROPOSAL
Aika U PerinArgentinaIvan Magalhaes PROPOSAL
Julie H CaldareraIndiaBernardo Dominic NEGOTIATION
Mayumi J PaprockiUnited KingdomXuxue Feng PROPOSAL
Juan H ShinkoFranceIoni Bowcher NEW
Maisha S MaletAustraliaAnna Fali NEGOTIATION
Aika J GlickRussiaAmy Elsner RENEWAL
Ivar Q SlusarskiArgentinaAnna Fali NEGOTIATION
Morrow P ShinkoSpainStephen Shaw UNQUALIFIED
Claire A WieserUnited KingdomStephen Shaw RENEWAL
Stacey J FerenczFranceIvan Magalhaes UNQUALIFIED
Antonio J SergiRussiaStephen Shaw UNQUALIFIED
Johnson B OldroydIndiaElwin Sharvill NEW
Ashley C MorascaUnited KingdomIvan Magalhaes NEW
Murillo D FollerJapanAsiya Javayant NEW
Morrow K FlosiCanadaXuxue Feng UNQUALIFIED
Leon U PoquetteGermanyBernardo Dominic NEW
Claire I FlosiItalyOnyama Limba PROPOSAL
Aruna Y ButtArgentinaAsiya Javayant QUALIFIED
Chavez B GlickGermanyAmy Elsner RENEWAL
Adams X OstroskyAustraliaIoni Bowcher NEW
Faith L CampainGermanyXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Greenwood U CaldareraItalyBernardo Dominic QUALIFIED
Tony J GauchoGermanyAnna Fali RENEWAL
Octavia F GlickItalyElwin Sharvill UNQUALIFIED
Arvin D KolmetzCanadaIvan Magalhaes QUALIFIED
Smith N ButtIndiaXuxue Feng QUALIFIED
Silvio O BologniaArgentinaAnna Fali NEGOTIATION
Nicolas T GillianItalyBernardo Dominic QUALIFIED
Johnson E AmigonRussiaXuxue Feng RENEWAL
Kadeem X KolmetzBrazilXuxue Feng PROPOSAL
Munro N MacleadSpainAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio R GauchoGermany2025-06-10Printing Dimensions UNQUALIFIED32Bernardo Dominic
1001Izzy I SaylorsBrazil2025-06-04Rangoni Of Florence NEW48Ivan Magalhaes
1002Maria Z CampainCanada2025-05-23Chanay, Jeffrey A Esq UNQUALIFIED95Asiya Javayant
1003Mujtaba C OldroydUnited Kingdom2025-06-03Chapman, Ross E Esq UNQUALIFIED3Stephen Shaw
1004Kaitlin P DilliardCanada2025-06-13Commercial Press RENEWAL76Amy Elsner
1005Arvin I FlosiJapan2025-06-06Chanay, Jeffrey A Esq PROPOSAL60Elwin Sharvill
1006Nicolas N DilliardCanada2025-06-01King, Christopher A Esq RENEWAL25Amy Elsner
1007Arvin Y DarakjyGermany2025-06-05King, Christopher A Esq RENEWAL14Elwin Sharvill
1008Wickens U DarakjyArgentina2025-05-25Rangoni Of Florence NEGOTIATION73Elwin Sharvill
1009Maria A AlbaresBrazil2025-06-01Chemel, James L Cpa NEW73Amy Elsner
1010Munro N MaletFrance2025-06-13Chemel, James L Cpa QUALIFIED6Elwin Sharvill
1011Munro O RimSpain2025-06-04Buckley Miller Wright PROPOSAL36Ioni Bowcher
1012Smith L MorascaRussia2025-06-11Feltz Printing Service UNQUALIFIED53Anna Fali
1013Deepesh S BowleyIndia2025-05-18Feltz Printing Service UNQUALIFIED68Ivan Magalhaes
1014David Q GlickCanada2025-05-25Printing Dimensions QUALIFIED37Elwin Sharvill
1015Leja W DilliardFrance2025-06-04King, Christopher A Esq QUALIFIED91Stephen Shaw
1016Munro K BriddickUnited Kingdom2025-05-28Chanay, Jeffrey A Esq NEGOTIATION19Asiya Javayant
1017Kadeem Z AlbaresIndia2025-06-06Chanay, Jeffrey A Esq UNQUALIFIED41Ioni Bowcher
1018Aika P TollnerBrazil2025-06-15Benton, John B Jr NEW86Xuxue Feng
1019Kaitlin Z BowleyJapan2025-05-26Chemel, James L Cpa RENEWAL90Elwin Sharvill
1020Aditya P WaycottCanada2025-05-29Rangoni Of Florence QUALIFIED65Stephen Shaw
1021Cody U ButtIndia2025-05-25Dorl, James J Esq QUALIFIED73Ivan Magalhaes
1022Costa N IturbideRussia2025-06-02Rousseaux, Michael Esq UNQUALIFIED4Ioni Bowcher
1023Jones A WieserIndia2025-06-14Chapman, Ross E Esq NEW75Xuxue Feng
1024Deepesh G BologniaIndia2025-06-15Dorl, James J Esq NEGOTIATION90Elwin Sharvill
1025Juan C BriddickIndia2025-06-05Rangoni Of Florence PROPOSAL29Bernardo Dominic
1026Jones V VocelkaUnited Kingdom2025-06-13Chemel, James L Cpa RENEWAL60Ioni Bowcher
1027Aika E OstroskyRussia2025-06-08Commercial Press NEW90Ioni Bowcher
1028Claire V WieserGermany2025-06-04Chemel, James L Cpa NEGOTIATION42Ioni Bowcher
1029Claire P FollerCanada2025-06-02Buckley Miller Wright RENEWAL99Bernardo Dominic
1030Adams O KolmetzItaly2025-06-10Feltz Printing Service UNQUALIFIED11Onyama Limba
1031Aruna C OstroskyGermany2025-05-27Chapman, Ross E Esq PROPOSAL22Xuxue Feng
1032Murillo O TollnerUnited Kingdom2025-06-11Printing Dimensions NEGOTIATION43Elwin Sharvill
1033Faith V BologniaBrazil2025-06-03Rangoni Of Florence NEGOTIATION59Amy Elsner
1034Leja O SergiAustralia2025-06-14Rousseaux, Michael Esq QUALIFIED72Asiya Javayant
1035Silvio W DoeArgentina2025-05-21Commercial Press PROPOSAL70Anna Fali
1036Jeanfrancois W CaudyCanada2025-05-25Morlong Associates RENEWAL74Onyama Limba
1037Mayumi Y MarrierGermany2025-05-30King, Christopher A Esq NEGOTIATION44Anna Fali
1038Wickens D VocelkaSpain2025-05-27Rousseaux, Michael Esq NEGOTIATION24Ioni Bowcher
1039Jones L RulapaughUnited Kingdom2025-06-05Rangoni Of Florence RENEWAL88Anna Fali
1040Chavez J NestleAustralia2025-06-08Printing Dimensions QUALIFIED26Stephen Shaw
1041Isabel R IturbideAustralia2025-06-16Rangoni Of Florence RENEWAL55Ivan Magalhaes
1042Deepesh E GauchoSpain2025-05-29Morlong Associates UNQUALIFIED58Stephen Shaw
1043Johnson R MacleadIndia2025-06-12Feltz Printing Service NEGOTIATION79Ivan Magalhaes
1044Julie E GlickSpain2025-05-31Commercial Press RENEWAL97Bernardo Dominic
1045Mayumi J FollerBrazil2025-06-15Benton, John B Jr PROPOSAL71Bernardo Dominic
1046Nicolas N MarrierAustralia2025-05-28Commercial Press UNQUALIFIED59Ioni Bowcher
1047Sinclair N FollerCanada2025-05-26Benton, John B Jr NEW67Amy Elsner
1048Deepesh M MarrierAustralia2025-05-31Rousseaux, Michael Esq RENEWAL36Xuxue Feng
1049Ivar I SaylorsUnited Kingdom2025-06-16Chapman, Ross E Esq NEW54Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Rodrigues G PerinArgentinaAsiya Javayant RENEWAL
Mujtaba B AlbaresJapanStephen Shaw NEW
Julie U MorascaCanadaOnyama Limba UNQUALIFIED
Leja S PerinGermanyIvan Magalhaes QUALIFIED
Jones Q MarrierAustraliaIvan Magalhaes NEW
Isabel K StockhamFranceIvan Magalhaes NEGOTIATION
Murillo Y CaudyRussiaAsiya Javayant PROPOSAL
Ashley V PaprockiJapanAmy Elsner NEW
Munro P MaletArgentinaXuxue Feng QUALIFIED
Jennifer Z NestleIndiaStephen Shaw RENEWAL
Julie Q SchemmerUnited KingdomAnna Fali NEW
Tony V MarrierBrazilElwin Sharvill NEGOTIATION
Wickens U BologniaCanadaBernardo Dominic RENEWAL
Costa P BowleyIndiaAsiya Javayant QUALIFIED
Darci G PoquetteRussiaOnyama Limba RENEWAL
Ricardo P MarrierArgentinaStephen Shaw PROPOSAL
Ivar K MaletArgentinaAsiya Javayant NEW
Costa I RoysterRussiaElwin Sharvill UNQUALIFIED
Murillo M MaletItalyBernardo Dominic RENEWAL
Misaki Q GauchoSpainXuxue Feng QUALIFIED
Aika J BologniaCanadaXuxue Feng UNQUALIFIED
Adams V DoeGermanyAmy Elsner NEGOTIATION
Emily A ShinkoFranceAnna Fali RENEWAL
Murillo P KuskoRussiaBernardo Dominic RENEWAL
David B PerinArgentinaAmy Elsner NEGOTIATION
Salvatore H IturbideArgentinaIvan Magalhaes RENEWAL
Chavez S GarufiJapanOnyama Limba PROPOSAL
Octavia A WaycottUnited KingdomAnna Fali NEW
Julie V FlosiAustraliaAsiya Javayant PROPOSAL
Aika S MacleadRussiaAnna Fali RENEWAL
Greenwood B CaudyBrazilAnna Fali RENEWAL
Leja I ButtCanadaXuxue Feng QUALIFIED
Ivar S CampainIndiaStephen Shaw UNQUALIFIED
Juan H BriddickArgentinaBernardo Dominic QUALIFIED
Sinclair V SchemmerIndiaAsiya Javayant UNQUALIFIED
Emily J BowleyGermanyAsiya Javayant UNQUALIFIED
Juan O AmigonArgentinaAsiya Javayant NEW
Francesco S GauchoJapanIvan Magalhaes UNQUALIFIED
Mujtaba A BriddickItalyXuxue Feng QUALIFIED
Johnson Z KuskoUnited KingdomStephen Shaw NEGOTIATION
Francesco L SergiArgentinaElwin Sharvill RENEWAL
Ashley G StensethItalyAmy Elsner NEW
Kadeem X StockhamCanadaIoni Bowcher PROPOSAL
Silvio Q BowleyJapanXuxue Feng QUALIFIED
James U FlosiRussiaBernardo Dominic NEW
Salvatore W PaprockiFranceBernardo Dominic NEW
Claire P BologniaIndiaAnna Fali UNQUALIFIED
Ashley D ChuiRussiaXuxue Feng UNQUALIFIED
Kadeem P ShinkoItalyStephen Shaw QUALIFIED
Aditya D OldroydIndiaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Jefferson M Malet
Munro A Marrier
Ashley V Nicka
Leja L Caldarera
Maria R Nestle
Sinclair M Whobrey
Juan N Doe
Chavez V Rulapaugh
Munro W Nestle
Ivar A Garufi
Francesco V Ruta
Mujtaba P Amigon
Aika K Schemmer
Clifford E Bowley
Adams T Glick
Arvin B Oldroyd
Emily S Foller
Faith V Saylors
Ashley Z Perin
Faith X Oldroyd
Nicolas Z Stenseth
Murillo B Morasca
Smith G Vocelka
Aditya H Rim
Maisha J Royster
Adams F Bolognia
Leja P Foller
Aditya X Ostrosky
James B Whobrey
Darci U Foller
Leja J Morasca
Stacey M Perin
Costa Q Gillian
Tony Y Malet
Rodrigues M Schemmer
Juan S Albares
Ricardo T Waycott
Faith L Inouye
Clifford V Marrier
Munro P Flosi
Jefferson U Flosi
Julie F Maclead
Deepesh D Rulapaugh
Aika F Rulapaugh
Aruna H Campain
Wickens L Schemmer
Johnson Z Tollner
Mayumi E Kusko
Stacey U Bolognia
Ricardo I Inouye
IdCountryDate
1000Italy2025-06-05
1001Spain2025-05-25
1002Australia2025-05-18
1003Brazil2025-05-28
1004India2025-05-19
1005Argentina2025-06-07
1006Japan2025-05-26
1007Italy2025-06-13
1008Brazil2025-05-30
1009Canada2025-06-01
1010India2025-05-20
1011Spain2025-06-03
1012Russia2025-06-08
1013France2025-05-23
1014Russia2025-06-09
1015Canada2025-06-03
1016Russia2025-05-27
1017Australia2025-06-16
1018Argentina2025-05-28
1019Germany2025-06-13
1020Canada2025-06-03
1021Australia2025-05-23
1022Spain2025-06-11
1023Australia2025-06-12
1024United Kingdom2025-06-14
1025Canada2025-05-18
1026Spain2025-06-10
1027Japan2025-06-02
1028Spain2025-06-13
1029Australia2025-05-25
1030Spain2025-06-15
1031Spain2025-06-02
1032United Kingdom2025-06-10
1033Canada2025-05-26
1034Japan2025-05-27
1035Spain2025-05-26
1036Australia2025-06-11
1037Germany2025-05-31
1038France2025-05-27
1039Japan2025-06-08
1040Italy2025-05-31
1041Germany2025-06-04
1042Australia2025-06-11
1043Argentina2025-05-31
1044Russia2025-06-02
1045Spain2025-05-30
1046Germany2025-05-22
1047United Kingdom2025-06-02
1048France2025-06-15
1049Canada2025-05-27

On-Demand Data

NameIdCountryDate
Murillo N Briddick1000Canada2025-06-15
James Z Nicka1001Italy2025-06-15
Tony N Kolmetz1002Spain2025-06-07
James H Campain1003India2025-05-30
Jeanfrancois Z Royster1004Russia2025-06-09
Greenwood G Chui1005Australia2025-06-04
Darci V Caldarera1006Australia2025-06-03
Aditya D Glick1007Canada2025-05-25
Ricardo R Perin1008Argentina2025-06-01
Leon P Kusko1009Spain2025-06-06
Cody W Caudy1010Argentina2025-05-21
James M Kolmetz1011India2025-06-11
Isabel Y Rulapaugh1012United Kingdom2025-05-30
Murillo F Gillian1013Spain2025-06-10
Misaki K Maclead1014France2025-06-02
Misaki E Dilliard1015Russia2025-06-06
Maisha M Saylors1016Argentina2025-06-01
Cody Y Venere1017Japan2025-06-12
Alejandro Y Rulapaugh1018Canada2025-06-03
Juan E Albares1019Japan2025-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo D MaletGermanyOnyama Limba PROPOSAL
Stacey R CaudyBrazilBernardo Dominic PROPOSAL
Arvin L NestleAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin P GauchoGermanyAnna Fali QUALIFIED
Isabel O DoeCanadaIvan Magalhaes NEGOTIATION
Rodrigues N MacleadBrazilStephen Shaw NEGOTIATION
Rodrigues B FollerCanadaAmy Elsner UNQUALIFIED
Antonio L AmigonAustraliaBernardo Dominic RENEWAL
Wickens T KuskoIndiaAmy Elsner RENEWAL
James C RutaJapanIoni Bowcher NEGOTIATION
Emily H ShinkoIndiaIoni Bowcher PROPOSAL
Mayumi D SergiRussiaAsiya Javayant QUALIFIED
Aika Q CaudyArgentinaXuxue Feng UNQUALIFIED
Deepesh A CaldareraGermanyElwin Sharvill QUALIFIED
Kadeem K PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Jennifer N DilliardRussiaOnyama Limba RENEWAL
Leja S SlusarskiRussiaBernardo Dominic NEW
Salvatore H StensethBrazilBernardo Dominic PROPOSAL
Smith C GarufiItalyAsiya Javayant QUALIFIED
Nicolas D CampainAustraliaIoni Bowcher RENEWAL
Sinclair P NickaUnited KingdomAnna Fali QUALIFIED
Jefferson C SlusarskiItalyElwin Sharvill NEGOTIATION
Sinclair M CampainCanadaAmy Elsner RENEWAL
Juan I CampainIndiaOnyama Limba NEW
Maisha G CaldareraJapanElwin Sharvill UNQUALIFIED
Morrow Y BowleyJapanAmy Elsner QUALIFIED
Costa G DoeUnited KingdomOnyama Limba RENEWAL
Morrow Y NestleSpainAsiya Javayant RENEWAL
Claire Q RoysterUnited KingdomXuxue Feng NEW
Mayumi P VenereSpainBernardo Dominic RENEWAL
Izzy P MacleadSpainXuxue Feng RENEWAL
Maisha M KolmetzFranceElwin Sharvill NEGOTIATION
Aruna M RulapaughItalyXuxue Feng NEW
Chavez Z SergiAustraliaXuxue Feng NEGOTIATION
Misaki Y KolmetzItalyAsiya Javayant NEGOTIATION
Munro L FerenczCanadaAsiya Javayant NEW
Emily V AmigonCanadaAmy Elsner UNQUALIFIED
Kadeem X NestleFranceOnyama Limba RENEWAL
Tony G PoquetteBrazilAsiya Javayant NEGOTIATION
Tony A MaletSpainAsiya Javayant 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>