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
Chavez L SlusarskiItalyAnna Fali PROPOSAL
Smith P GauchoItalyXuxue Feng NEGOTIATION
Juan F KolmetzJapanAsiya Javayant RENEWAL
Arvin C FlosiBrazilIoni Bowcher NEGOTIATION
Adams B MorascaAustraliaAsiya Javayant UNQUALIFIED
Claire J SchemmerJapanAnna Fali PROPOSAL
Jefferson D SlusarskiBrazilIvan Magalhaes PROPOSAL
Kaitlin U SaylorsArgentinaXuxue Feng UNQUALIFIED
Aditya D GillianFranceAsiya Javayant NEGOTIATION
Johnson S BologniaIndiaXuxue Feng UNQUALIFIED
Ashley X GillianCanadaBernardo Dominic NEGOTIATION
Mayumi E StockhamBrazilElwin Sharvill NEGOTIATION
Sinclair G SaylorsAustraliaAmy Elsner UNQUALIFIED
Kadeem W NestleGermanyAsiya Javayant UNQUALIFIED
Antonio B NickaAustraliaElwin Sharvill NEGOTIATION
Jennifer T DarakjyRussiaAmy Elsner UNQUALIFIED
Aditya G OldroydIndiaBernardo Dominic UNQUALIFIED
Misaki M FigeroaFranceIoni Bowcher UNQUALIFIED
Ashley Z OstroskyIndiaIoni Bowcher NEW
Leja U MorascaFranceAnna Fali QUALIFIED
Jeanfrancois B WaycottArgentinaElwin Sharvill QUALIFIED
Ivar A SaylorsGermanyIoni Bowcher PROPOSAL
Izzy I SchemmerRussiaBernardo Dominic NEGOTIATION
Juan C SaylorsBrazilAsiya Javayant PROPOSAL
Claire B RimJapanIoni Bowcher RENEWAL
Wickens K CaldareraIndiaAmy Elsner UNQUALIFIED
Ashley H TollnerSpainAnna Fali QUALIFIED
Leon X MaletFranceBernardo Dominic PROPOSAL
Cody G SchemmerBrazilAnna Fali NEW
Isabel R MarrierUnited KingdomOnyama Limba NEW
Claire H FlosiFranceXuxue Feng UNQUALIFIED
Morrow L CampainIndiaIoni Bowcher UNQUALIFIED
Ivar I DoeArgentinaXuxue Feng NEW
Cody P SergiBrazilOnyama Limba NEGOTIATION
Isabel O RimRussiaAnna Fali PROPOSAL
Misaki X PoquetteBrazilElwin Sharvill NEGOTIATION
Aika Z WhobreyItalyStephen Shaw QUALIFIED
Silvio V FollerArgentinaIoni Bowcher QUALIFIED
Isabel A InouyeBrazilXuxue Feng PROPOSAL
Nicolas U WieserBrazilBernardo Dominic RENEWAL
Ricardo M StockhamAustraliaIvan Magalhaes QUALIFIED
Leja N ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
David R RimFranceOnyama Limba PROPOSAL
Alejandro U CaudyIndiaAnna Fali UNQUALIFIED
Francesco I CaudySpainIvan Magalhaes NEGOTIATION
Ivar U VenereFranceXuxue Feng NEGOTIATION
Misaki L OldroydItalyElwin Sharvill QUALIFIED
Cody G FerenczJapanStephen Shaw UNQUALIFIED
Munro Z WhobreyGermanyStephen Shaw NEW
Izzy I CampainJapanAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Chavez D WhobreyJapanIvan Magalhaes NEGOTIATION
Jones I KolmetzUnited KingdomBernardo Dominic PROPOSAL
Jennifer O SchemmerSpainElwin Sharvill QUALIFIED
Munro G PerinCanadaIvan Magalhaes RENEWAL
James G SlusarskiBrazilIoni Bowcher RENEWAL
David I StockhamCanadaAnna Fali RENEWAL
Faith V ShinkoGermanyElwin Sharvill RENEWAL
Juan G KolmetzCanadaIoni Bowcher RENEWAL
Aruna H CampainGermanyAmy Elsner PROPOSAL
Wickens D ShinkoIndiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon X PoquetteUnited Kingdom2026-07-26Benton, John B Jr PROPOSAL50Onyama Limba
1001Sinclair L MarrierCanada2026-08-10Benton, John B Jr UNQUALIFIED22Asiya Javayant
1002Salvatore A BologniaUnited Kingdom2026-08-16King, Christopher A Esq UNQUALIFIED28Asiya Javayant
1003Greenwood I PoquetteFrance2026-07-25Chemel, James L Cpa NEGOTIATION23Amy Elsner
1004Francesco T MaletGermany2026-08-11Morlong Associates QUALIFIED72Stephen Shaw
1005Jones T StensethItaly2026-07-22Dorl, James J Esq NEGOTIATION51Stephen Shaw
1006Aika H WaycottArgentina2026-08-04Rangoni Of Florence PROPOSAL19Ioni Bowcher
1007Greenwood S SchemmerArgentina2026-08-12Feiner Bros PROPOSAL85Xuxue Feng
1008Morrow K MorascaFrance2026-08-02Printing Dimensions PROPOSAL55Elwin Sharvill
1009Antonio N MorascaFrance2026-08-12Commercial Press UNQUALIFIED86Anna Fali
1010Leja P GillianFrance2026-07-23King, Christopher A Esq UNQUALIFIED15Bernardo Dominic
1011Munro E MorascaFrance2026-08-06Dorl, James J Esq QUALIFIED39Ivan Magalhaes
1012Chavez P NickaJapan2026-08-20King, Christopher A Esq NEW99Xuxue Feng
1013Chavez Q PerinFrance2026-08-11Buckley Miller Wright RENEWAL35Ivan Magalhaes
1014Julie F BologniaSpain2026-08-16Dorl, James J Esq QUALIFIED35Elwin Sharvill
1015Kaitlin I PaprockiRussia2026-08-01Commercial Press NEW62Ivan Magalhaes
1016Claire J FerenczIndia2026-07-29King, Christopher A Esq RENEWAL42Elwin Sharvill
1017Arvin O PerinCanada2026-07-25Chemel, James L Cpa QUALIFIED77Xuxue Feng
1018Maria F MarrierFrance2026-08-15Rousseaux, Michael Esq NEW32Amy Elsner
1019Cody K VocelkaAustralia2026-07-30King, Christopher A Esq QUALIFIED96Ivan Magalhaes
1020Adams H AlbaresBrazil2026-08-06Feiner Bros NEW67Xuxue Feng
1021Jones S MaletUnited Kingdom2026-08-10Commercial Press NEW16Ivan Magalhaes
1022Rodrigues K BologniaRussia2026-08-06Chanay, Jeffrey A Esq NEGOTIATION8Amy Elsner
1023Costa C VocelkaItaly2026-08-15Feiner Bros NEW94Bernardo Dominic
1024Smith R VocelkaCanada2026-08-10Rangoni Of Florence RENEWAL63Elwin Sharvill
1025Greenwood R SlusarskiRussia2026-08-19Chemel, James L Cpa RENEWAL60Stephen Shaw
1026Maria T SergiAustralia2026-07-22Feltz Printing Service UNQUALIFIED35Amy Elsner
1027Leon J RutaUnited Kingdom2026-07-23Benton, John B Jr PROPOSAL18Elwin Sharvill
1028Julie I ButtGermany2026-08-20Rangoni Of Florence QUALIFIED46Ioni Bowcher
1029Jeanfrancois X BriddickArgentina2026-07-23Rousseaux, Michael Esq PROPOSAL19Ioni Bowcher
1030Jefferson M FlosiBrazil2026-08-12Rousseaux, Michael Esq RENEWAL14Asiya Javayant
1031Leon D GarufiArgentina2026-07-25Benton, John B Jr UNQUALIFIED10Anna Fali
1032Leon I WieserArgentina2026-08-17Chemel, James L Cpa QUALIFIED49Bernardo Dominic
1033Chavez J TollnerBrazil2026-07-30Truhlar And Truhlar Attys PROPOSAL55Onyama Limba
1034Silvio D ButtRussia2026-08-04King, Christopher A Esq PROPOSAL66Ioni Bowcher
1035Emily F MaletCanada2026-08-14Chapman, Ross E Esq NEGOTIATION14Anna Fali
1036Deepesh J PerinRussia2026-08-17Chanay, Jeffrey A Esq UNQUALIFIED69Anna Fali
1037Leon R NestleGermany2026-08-01Chemel, James L Cpa NEW86Elwin Sharvill
1038Clifford P ChuiGermany2026-08-04Feltz Printing Service QUALIFIED75Asiya Javayant
1039Francesco G BowleyArgentina2026-08-12King, Christopher A Esq NEW93Bernardo Dominic
1040Costa S WaycottIndia2026-08-17Chanay, Jeffrey A Esq PROPOSAL90Ivan Magalhaes
1041Leon P FlosiUnited Kingdom2026-08-13Rousseaux, Michael Esq QUALIFIED77Ioni Bowcher
1042Juan H RimBrazil2026-07-24Buckley Miller Wright QUALIFIED40Xuxue Feng
1043Stacey T KuskoArgentina2026-07-24Rangoni Of Florence QUALIFIED83Onyama Limba
1044Ivar L BowleyIndia2026-08-17Chapman, Ross E Esq UNQUALIFIED20Ioni Bowcher
1045Maisha A FigeroaSpain2026-07-30Feiner Bros NEW71Elwin Sharvill
1046Kadeem K GarufiJapan2026-07-22Dorl, James J Esq PROPOSAL18Ivan Magalhaes
1047Jones P ShinkoSpain2026-07-22Benton, John B Jr RENEWAL76Bernardo Dominic
1048Morrow I MarrierRussia2026-07-31Rangoni Of Florence NEGOTIATION1Onyama Limba
1049Costa L CaldareraItaly2026-07-26Buckley Miller Wright QUALIFIED95Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Julie L RulapaughSpainIoni Bowcher UNQUALIFIED
Salvatore P MaletCanadaAsiya Javayant NEGOTIATION
Maisha T TollnerAustraliaXuxue Feng NEGOTIATION
Leon G WaycottSpainIoni Bowcher QUALIFIED
Alejandro M BowleyItalyStephen Shaw NEGOTIATION
Kaitlin D OldroydBrazilStephen Shaw QUALIFIED
David R NestleUnited KingdomIoni Bowcher NEW
Adams J StockhamUnited KingdomOnyama Limba PROPOSAL
Smith M RutaJapanIvan Magalhaes NEGOTIATION
Emily O PaprockiArgentinaOnyama Limba RENEWAL
Maisha H IturbideIndiaAsiya Javayant QUALIFIED
James X BriddickIndiaXuxue Feng QUALIFIED
Ivar A RimAustraliaBernardo Dominic PROPOSAL
Morrow G MaletIndiaBernardo Dominic UNQUALIFIED
Clifford F CampainBrazilAsiya Javayant UNQUALIFIED
Mujtaba D FigeroaArgentinaIoni Bowcher QUALIFIED
Jefferson I MarrierGermanyIoni Bowcher RENEWAL
Jeanfrancois X InouyeArgentinaAmy Elsner QUALIFIED
Greenwood C KuskoAustraliaElwin Sharvill RENEWAL
Emily W NestleBrazilAsiya Javayant RENEWAL
Silvio J ChuiUnited KingdomBernardo Dominic QUALIFIED
Jennifer K InouyeRussiaOnyama Limba UNQUALIFIED
Salvatore S RulapaughAustraliaAsiya Javayant NEW
Clifford C RutaBrazilAnna Fali NEGOTIATION
Rodrigues Q SlusarskiAustraliaIoni Bowcher UNQUALIFIED
Isabel T FlosiCanadaBernardo Dominic PROPOSAL
Julie T RoysterArgentinaAnna Fali PROPOSAL
Nicolas T BologniaCanadaAsiya Javayant UNQUALIFIED
Arvin U BriddickRussiaAnna Fali NEGOTIATION
Adams L SchemmerItalyElwin Sharvill NEGOTIATION
Jefferson V BologniaCanadaStephen Shaw QUALIFIED
Murillo S StockhamFranceXuxue Feng PROPOSAL
David R DarakjyJapanStephen Shaw RENEWAL
Ricardo H SergiUnited KingdomOnyama Limba QUALIFIED
Aditya F MaletRussiaIoni Bowcher NEW
Emily Y BowleyItalyIvan Magalhaes NEW
Deepesh O StockhamJapanAnna Fali NEGOTIATION
Leon W AmigonAustraliaAnna Fali UNQUALIFIED
Murillo Z SchemmerSpainIvan Magalhaes QUALIFIED
Silvio B GauchoArgentinaStephen Shaw NEW
Claire N BologniaIndiaOnyama Limba QUALIFIED
Adams T FerenczSpainAnna Fali NEW
Jennifer X VenereGermanyIvan Magalhaes NEGOTIATION
Leon R DarakjyAustraliaStephen Shaw UNQUALIFIED
Darci I DilliardRussiaIvan Magalhaes QUALIFIED
Antonio Q DilliardBrazilBernardo Dominic NEW
Leon Z BologniaCanadaStephen Shaw NEGOTIATION
Juan U MorascaFranceOnyama Limba UNQUALIFIED
Isabel T RoysterUnited KingdomIoni Bowcher NEGOTIATION
Greenwood T KuskoUnited KingdomElwin Sharvill NEW
Frozen Columns
Name
Morrow D Sergi
Mujtaba A Waycott
Jones G Doe
Ricardo T Vocelka
Munro R Vocelka
Mayumi E Slusarski
Ivar Z Stenseth
Maisha U Oldroyd
Adams N Oldroyd
Maisha Z Campain
Francesco M Poquette
Johnson M Glick
Darci Q Sergi
Claire B Iturbide
Jeanfrancois Q Schemmer
Faith N Ferencz
Morrow J Amigon
Cody P Garufi
Salvatore A Poquette
Izzy G Oldroyd
Jeanfrancois W Waycott
Greenwood O Dilliard
Silvio D Shinko
Jennifer G Rulapaugh
Salvatore N Sergi
Isabel R Wieser
Ashley U Iturbide
Emily B Ruta
Antonio V Paprocki
Munro E Inouye
Jefferson V Nicka
Octavia Q Maclead
Francesco T Chui
Mayumi O Schemmer
Misaki X Venere
Ashley Q Doe
Kaitlin Q Caudy
Mujtaba R Darakjy
Jefferson X Waycott
Jeanfrancois U Caldarera
Jefferson S Chui
Jeanfrancois C Ruta
Chavez J Nicka
Cody P Caldarera
Ricardo B Tollner
Stacey K Malet
Aruna V Foller
Jefferson C Waycott
Costa B Campain
Julie P Garufi
IdCountryDate
1000Germany2026-08-05
1001Canada2026-07-22
1002Brazil2026-08-19
1003India2026-08-18
1004Brazil2026-08-02
1005Brazil2026-08-12
1006France2026-07-30
1007Spain2026-08-03
1008Italy2026-07-28
1009Italy2026-08-14
1010India2026-08-10
1011Japan2026-07-25
1012France2026-07-28
1013Germany2026-08-16
1014United Kingdom2026-08-14
1015Russia2026-08-03
1016Brazil2026-08-02
1017France2026-08-08
1018Spain2026-07-24
1019United Kingdom2026-08-08
1020India2026-08-06
1021France2026-08-10
1022Russia2026-08-12
1023Australia2026-08-20
1024France2026-08-01
1025Italy2026-08-17
1026India2026-08-11
1027Brazil2026-07-29
1028Germany2026-08-20
1029Japan2026-08-16
1030Brazil2026-07-31
1031Canada2026-08-20
1032Canada2026-08-20
1033France2026-08-03
1034Argentina2026-08-12
1035Brazil2026-08-06
1036Spain2026-08-12
1037Italy2026-08-08
1038Japan2026-07-27
1039France2026-07-25
1040Germany2026-08-15
1041Spain2026-07-22
1042Canada2026-08-07
1043Japan2026-08-04
1044United Kingdom2026-08-20
1045Australia2026-07-28
1046Australia2026-08-10
1047Spain2026-07-22
1048India2026-07-27
1049Spain2026-08-19

On-Demand Data

NameIdCountryDate
Cody G Nestle1000Japan2026-08-11
Rodrigues Y Doe1001France2026-08-15
Alejandro H Bolognia1002Brazil2026-07-28
Misaki C Caldarera1003Argentina2026-08-20
Nicolas R Amigon1004Germany2026-08-04
Deepesh Z Glick1005India2026-07-31
Silvio Z Sergi1006Italy2026-07-30
Leja P Marrier1007Italy2026-07-28
Faith F Whobrey1008United Kingdom2026-08-03
Darci J Stockham1009France2026-08-19
Greenwood H Maclead1010United Kingdom2026-07-22
Aruna G Paprocki1011France2026-07-27
Darci Z Waycott1012Italy2026-08-06
Aika R Rulapaugh1013Brazil2026-08-03
Johnson I Oldroyd1014France2026-07-29
Cody H Royster1015Japan2026-08-02
Morrow B Tollner1016France2026-08-18
Julie F Bolognia1017Australia2026-08-18
Morrow K Dilliard1018Germany2026-07-27
Greenwood Z Saylors1019Australia2026-08-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith V TollnerAustraliaIvan Magalhaes NEW
Johnson H TollnerAustraliaXuxue Feng UNQUALIFIED
Antonio D ChuiCanadaXuxue Feng RENEWAL
Deepesh D SlusarskiUnited KingdomBernardo Dominic QUALIFIED
Arvin R RoysterIndiaXuxue Feng NEW
Arvin B MorascaIndiaXuxue Feng QUALIFIED
Smith O FigeroaCanadaIvan Magalhaes RENEWAL
Octavia Z VocelkaSpainAsiya Javayant NEGOTIATION
Sinclair E TollnerRussiaIoni Bowcher UNQUALIFIED
Adams L InouyeGermanyAmy Elsner UNQUALIFIED
Faith J FigeroaCanadaOnyama Limba UNQUALIFIED
Aruna K InouyeJapanAnna Fali QUALIFIED
Claire A AlbaresItalyXuxue Feng RENEWAL
Ivar E WhobreyRussiaBernardo Dominic RENEWAL
Antonio V GlickItalyAsiya Javayant RENEWAL
Cody X RoysterItalyXuxue Feng QUALIFIED
Leon S WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
Murillo S DilliardGermanyAmy Elsner QUALIFIED
Cody V SchemmerJapanAmy Elsner NEW
Jeanfrancois D StensethRussiaStephen Shaw NEW
Antonio E GauchoIndiaAmy Elsner NEGOTIATION
Juan K DilliardIndiaStephen Shaw PROPOSAL
Deepesh C PaprockiGermanyAnna Fali NEW
Kadeem E BowleyRussiaAsiya Javayant QUALIFIED
Juan Z MarrierBrazilIoni Bowcher QUALIFIED
Silvio R RoysterBrazilAsiya Javayant PROPOSAL
Antonio M NestleAustraliaXuxue Feng RENEWAL
Aditya G GlickJapanAmy Elsner RENEWAL
Arvin K PaprockiBrazilIoni Bowcher NEGOTIATION
Arvin Z MorascaCanadaIoni Bowcher QUALIFIED
Aditya I DoeBrazilStephen Shaw NEGOTIATION
Francesco B CaudyGermanyAsiya Javayant QUALIFIED
James U PerinGermanyIvan Magalhaes UNQUALIFIED
Alejandro A VocelkaGermanyAmy Elsner RENEWAL
Stacey L GauchoAustraliaXuxue Feng NEW
Alejandro Q CaudyItalyElwin Sharvill NEGOTIATION
Leon N FollerBrazilIvan Magalhaes RENEWAL
Johnson W FlosiJapanBernardo Dominic PROPOSAL
Stacey K SlusarskiSpainStephen Shaw RENEWAL
Maisha I DilliardGermanyAsiya Javayant PROPOSAL

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