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
Ashley I OstroskySpainAsiya Javayant UNQUALIFIED
Darci G OldroydIndiaStephen Shaw RENEWAL
Jones H FigeroaBrazilOnyama Limba PROPOSAL
Wickens V FlosiItalyAsiya Javayant PROPOSAL
Kadeem K VocelkaGermanyStephen Shaw NEGOTIATION
Costa G VocelkaIndiaAsiya Javayant PROPOSAL
Morrow I ButtFranceElwin Sharvill NEGOTIATION
Johnson K StockhamJapanOnyama Limba PROPOSAL
Ricardo V DilliardIndiaAnna Fali UNQUALIFIED
Wickens E MaletBrazilAsiya Javayant QUALIFIED
Juan Y StensethSpainStephen Shaw NEW
Munro Y MaletAustraliaBernardo Dominic NEGOTIATION
Cody F GarufiBrazilBernardo Dominic NEGOTIATION
Jones U DoeGermanyBernardo Dominic QUALIFIED
Maria U BriddickGermanyXuxue Feng QUALIFIED
Nicolas F KuskoSpainAmy Elsner QUALIFIED
Claire C CaldareraRussiaAnna Fali UNQUALIFIED
Jennifer K BologniaJapanElwin Sharvill RENEWAL
Izzy L MaletSpainStephen Shaw QUALIFIED
Maria U ChuiSpainAnna Fali NEW
Ricardo Y ShinkoUnited KingdomElwin Sharvill NEW
Claire I MarrierIndiaAnna Fali QUALIFIED
Julie X OstroskyJapanXuxue Feng NEGOTIATION
Kaitlin K GarufiFranceOnyama Limba NEGOTIATION
Jennifer I RoysterItalyXuxue Feng NEW
Darci G NestleAustraliaOnyama Limba UNQUALIFIED
Izzy E SaylorsCanadaElwin Sharvill UNQUALIFIED
Murillo I SergiCanadaOnyama Limba NEW
Jones G DarakjyUnited KingdomElwin Sharvill NEW
Adams V MaletSpainBernardo Dominic PROPOSAL
Darci F ButtItalyAnna Fali UNQUALIFIED
Tony Y FlosiArgentinaStephen Shaw PROPOSAL
Claire Z SaylorsIndiaAsiya Javayant NEW
Ivar N FlosiAustraliaAnna Fali QUALIFIED
Aruna P IturbideArgentinaAmy Elsner RENEWAL
Johnson S MaletCanadaIvan Magalhaes QUALIFIED
Maisha Q StensethSpainOnyama Limba QUALIFIED
Adams T ChuiBrazilIvan Magalhaes UNQUALIFIED
Munro K DoeUnited KingdomAsiya Javayant RENEWAL
Rodrigues L PaprockiBrazilIoni Bowcher UNQUALIFIED
Mujtaba U GarufiIndiaAmy Elsner PROPOSAL
Emily N RulapaughBrazilOnyama Limba QUALIFIED
Salvatore H InouyeIndiaOnyama Limba QUALIFIED
Jefferson G MaletRussiaIoni Bowcher PROPOSAL
Jeanfrancois O GauchoIndiaBernardo Dominic QUALIFIED
Ricardo J CampainIndiaBernardo Dominic NEGOTIATION
Mayumi I SaylorsCanadaAnna Fali RENEWAL
Stacey C InouyeCanadaBernardo Dominic NEW
Costa H DilliardAustraliaAmy Elsner PROPOSAL
Kadeem X SlusarskiFranceIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Maisha Z NestleItalyIvan Magalhaes QUALIFIED
Jennifer V DarakjyJapanAnna Fali NEGOTIATION
Jefferson V ShinkoFranceAmy Elsner RENEWAL
Wickens A GlickSpainAmy Elsner UNQUALIFIED
Jennifer P AlbaresItalyIvan Magalhaes RENEWAL
Rodrigues V WieserArgentinaXuxue Feng QUALIFIED
Leja O RoysterRussiaAmy Elsner NEW
Sinclair Z MacleadIndiaIvan Magalhaes PROPOSAL
Arvin L KuskoGermanyOnyama Limba QUALIFIED
James U PaprockiFranceAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem L SaylorsBrazil2026-07-30Feiner Bros QUALIFIED85Asiya Javayant
1001Jones Z SlusarskiJapan2026-08-05Morlong Associates UNQUALIFIED41Stephen Shaw
1002Deepesh Z OldroydRussia2026-07-26Truhlar And Truhlar Attys PROPOSAL28Elwin Sharvill
1003Murillo F FerenczCanada2026-07-29Chemel, James L Cpa QUALIFIED22Elwin Sharvill
1004Jennifer M MacleadBrazil2026-07-19Rangoni Of Florence NEGOTIATION37Elwin Sharvill
1005Adams A GillianRussia2026-07-18Morlong Associates RENEWAL0Anna Fali
1006Izzy O BowleyItaly2026-08-03Commercial Press NEGOTIATION12Stephen Shaw
1007Silvio A SchemmerCanada2026-08-08Feltz Printing Service NEW56Elwin Sharvill
1008Munro D SlusarskiUnited Kingdom2026-07-30Chemel, James L Cpa QUALIFIED8Xuxue Feng
1009Aika R WieserFrance2026-07-25Benton, John B Jr NEW19Elwin Sharvill
1010Silvio I OstroskyIndia2026-07-12Printing Dimensions UNQUALIFIED26Onyama Limba
1011Jones H DoeArgentina2026-08-06Commercial Press PROPOSAL82Ivan Magalhaes
1012David I OstroskyJapan2026-07-24Rousseaux, Michael Esq NEW61Elwin Sharvill
1013Murillo O CaudyIndia2026-08-07Feltz Printing Service QUALIFIED94Onyama Limba
1014Mujtaba F WhobreyFrance2026-08-05King, Christopher A Esq QUALIFIED55Xuxue Feng
1015Faith E AlbaresBrazil2026-07-21Printing Dimensions NEGOTIATION23Elwin Sharvill
1016Sinclair M WieserFrance2026-07-26Truhlar And Truhlar Attys QUALIFIED11Bernardo Dominic
1017Mujtaba S KolmetzFrance2026-08-06Chemel, James L Cpa QUALIFIED39Stephen Shaw
1018Jeanfrancois D FollerRussia2026-08-02Chanay, Jeffrey A Esq RENEWAL79Ivan Magalhaes
1019Aika N DoeCanada2026-07-18Chemel, James L Cpa NEGOTIATION81Asiya Javayant
1020Costa Z DarakjyArgentina2026-07-27Printing Dimensions UNQUALIFIED38Onyama Limba
1021Deepesh B SergiRussia2026-08-08Feltz Printing Service NEGOTIATION83Ivan Magalhaes
1022Johnson H GauchoIndia2026-07-29Feltz Printing Service NEGOTIATION66Xuxue Feng
1023Wickens A IturbideGermany2026-08-08Feltz Printing Service NEGOTIATION19Amy Elsner
1024Jefferson S VocelkaRussia2026-07-29Feltz Printing Service NEGOTIATION12Amy Elsner
1025Stacey W RulapaughFrance2026-07-26Chanay, Jeffrey A Esq NEGOTIATION89Anna Fali
1026Maisha H AmigonJapan2026-08-07Rousseaux, Michael Esq QUALIFIED64Anna Fali
1027Leja M SergiFrance2026-08-07Morlong Associates NEGOTIATION41Xuxue Feng
1028Jefferson U InouyeAustralia2026-07-31Chapman, Ross E Esq NEGOTIATION92Ioni Bowcher
1029Mayumi X GillianItaly2026-07-29Chanay, Jeffrey A Esq UNQUALIFIED13Amy Elsner
1030Isabel V BriddickRussia2026-07-12Chanay, Jeffrey A Esq NEGOTIATION18Anna Fali
1031Isabel A WhobreySpain2026-07-24Rangoni Of Florence NEGOTIATION93Elwin Sharvill
1032Greenwood H RoysterRussia2026-07-17Morlong Associates NEGOTIATION90Ivan Magalhaes
1033Jones K PaprockiSpain2026-07-14King, Christopher A Esq QUALIFIED13Amy Elsner
1034Smith G PaprockiAustralia2026-08-07King, Christopher A Esq UNQUALIFIED60Onyama Limba
1035Silvio N OstroskyCanada2026-07-28Feltz Printing Service PROPOSAL67Ivan Magalhaes
1036Julie B MaletBrazil2026-07-15King, Christopher A Esq RENEWAL89Elwin Sharvill
1037Maisha T BowleyFrance2026-07-14Truhlar And Truhlar Attys PROPOSAL53Stephen Shaw
1038James B DoeRussia2026-07-11King, Christopher A Esq NEW89Stephen Shaw
1039Faith E WaycottIndia2026-07-18Commercial Press RENEWAL88Stephen Shaw
1040Wickens S FerenczCanada2026-07-24Commercial Press PROPOSAL94Bernardo Dominic
1041Jefferson E GarufiCanada2026-08-01Chapman, Ross E Esq NEW71Elwin Sharvill
1042Jeanfrancois O ChuiIndia2026-07-12King, Christopher A Esq QUALIFIED15Bernardo Dominic
1043Silvio S MaletIndia2026-08-04Morlong Associates UNQUALIFIED99Bernardo Dominic
1044Deepesh G VocelkaGermany2026-07-22Truhlar And Truhlar Attys NEW29Elwin Sharvill
1045Ricardo Y OstroskyCanada2026-08-05Truhlar And Truhlar Attys UNQUALIFIED40Xuxue Feng
1046Murillo U SlusarskiSpain2026-08-07King, Christopher A Esq NEGOTIATION16Onyama Limba
1047Misaki P FollerCanada2026-07-28Commercial Press PROPOSAL76Onyama Limba
1048Murillo P BowleyJapan2026-07-23Rangoni Of Florence RENEWAL18Stephen Shaw
1049Kaitlin T GarufiSpain2026-07-27Feiner Bros NEW57Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba W DilliardUnited KingdomOnyama Limba QUALIFIED
Murillo Y AmigonSpainAsiya Javayant RENEWAL
Alejandro C PaprockiBrazilIvan Magalhaes PROPOSAL
Isabel O ButtFranceElwin Sharvill RENEWAL
James I ButtFranceOnyama Limba QUALIFIED
Jennifer U FlosiUnited KingdomAnna Fali QUALIFIED
Misaki A FigeroaGermanyBernardo Dominic QUALIFIED
Jefferson R VenereSpainElwin Sharvill UNQUALIFIED
Ivar L ButtJapanStephen Shaw NEGOTIATION
Kadeem G MaletIndiaAsiya Javayant NEW
Leon N VenereBrazilAnna Fali QUALIFIED
Alejandro W MaletJapanIvan Magalhaes PROPOSAL
Kadeem U FollerIndiaOnyama Limba UNQUALIFIED
Silvio A MaletSpainAnna Fali NEW
Jefferson Q RoysterCanadaStephen Shaw QUALIFIED
Salvatore L AlbaresSpainAmy Elsner PROPOSAL
Murillo Y MaletUnited KingdomElwin Sharvill UNQUALIFIED
Kadeem J RimJapanIvan Magalhaes QUALIFIED
Aditya Y NickaItalyAnna Fali RENEWAL
Misaki L SaylorsRussiaBernardo Dominic UNQUALIFIED
Juan U CaudyItalyElwin Sharvill NEGOTIATION
Mayumi Z DoeFranceOnyama Limba NEGOTIATION
Munro N KolmetzJapanBernardo Dominic NEW
Cody R CaudyGermanyOnyama Limba QUALIFIED
Costa R RimCanadaStephen Shaw NEW
Octavia O GlickFranceBernardo Dominic QUALIFIED
James X DilliardRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois U RulapaughUnited KingdomAmy Elsner RENEWAL
James S RimGermanyIoni Bowcher NEW
Munro Y FerenczCanadaIvan Magalhaes UNQUALIFIED
Isabel K ChuiFranceAsiya Javayant QUALIFIED
Jones H WaycottItalyIoni Bowcher PROPOSAL
Julie K AmigonAustraliaIvan Magalhaes PROPOSAL
Deepesh E WhobreyBrazilIoni Bowcher QUALIFIED
Izzy L CampainAustraliaStephen Shaw PROPOSAL
Claire G CaldareraArgentinaIvan Magalhaes PROPOSAL
Kaitlin P FollerAustraliaStephen Shaw NEW
Aditya W WhobreyAustraliaAmy Elsner UNQUALIFIED
Wickens E KolmetzGermanyElwin Sharvill UNQUALIFIED
Emily T GlickFranceAmy Elsner RENEWAL
Maria C CampainIndiaIoni Bowcher RENEWAL
Murillo Z CaldareraFranceElwin Sharvill PROPOSAL
Ashley N NestleSpainBernardo Dominic NEGOTIATION
Darci Y WaycottUnited KingdomAsiya Javayant PROPOSAL
Stacey B FigeroaIndiaAsiya Javayant UNQUALIFIED
Aditya S MarrierIndiaIoni Bowcher RENEWAL
Maisha L DilliardJapanElwin Sharvill NEGOTIATION
Leon V MaletCanadaElwin Sharvill UNQUALIFIED
Maria P ShinkoJapanElwin Sharvill UNQUALIFIED
Leon E ButtArgentinaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Ricardo M Butt
Darci X Marrier
Izzy B Saylors
David Y Bolognia
Isabel J Rulapaugh
Darci Y Stenseth
Mayumi E Bowley
Maisha S Vocelka
Maisha W Campain
Adams S Malet
Jeanfrancois V Perin
Aditya S Perin
Leon I Malet
Wickens D Foller
Jefferson O Kusko
Mayumi T Bowley
Munro X Poquette
Claire M Figeroa
Julie D Iturbide
Kadeem D Caudy
Ivar R Malet
Octavia P Nestle
Emily E Kusko
Mayumi E Malet
Maisha V Venere
Tony G Vocelka
Alejandro O Stenseth
Emily O Gillian
Faith Z Inouye
Greenwood H Dilliard
Leja B Amigon
Stacey T Campain
Munro E Rulapaugh
Jennifer V Vocelka
Stacey H Rulapaugh
Maria H Poquette
Aruna O Inouye
Morrow Z Stenseth
Mayumi J Stockham
Leja J Schemmer
Claire K Slusarski
Izzy V Maclead
Aruna W Poquette
Salvatore C Schemmer
Maria F Inouye
David C Oldroyd
Francesco Q Foller
Juan Y Nestle
Silvio R Caldarera
Jennifer F Flosi
IdCountryDate
1000Argentina2026-08-02
1001Japan2026-07-21
1002Spain2026-07-28
1003France2026-07-19
1004United Kingdom2026-08-02
1005Brazil2026-07-27
1006Japan2026-08-08
1007United Kingdom2026-08-05
1008Japan2026-07-18
1009Russia2026-08-02
1010United Kingdom2026-07-25
1011Germany2026-07-24
1012Italy2026-07-18
1013Brazil2026-08-04
1014Canada2026-08-03
1015Italy2026-07-22
1016Argentina2026-07-25
1017Spain2026-07-21
1018Spain2026-07-19
1019Italy2026-08-01
1020Canada2026-07-21
1021Japan2026-07-27
1022United Kingdom2026-07-19
1023Japan2026-07-14
1024Brazil2026-07-17
1025Canada2026-08-01
1026Italy2026-08-08
1027Argentina2026-07-12
1028Germany2026-07-24
1029Japan2026-07-11
1030Italy2026-07-25
1031Russia2026-07-26
1032United Kingdom2026-07-20
1033France2026-07-31
1034Argentina2026-07-10
1035Japan2026-07-12
1036Brazil2026-07-13
1037Italy2026-08-05
1038Japan2026-07-13
1039Australia2026-07-10
1040France2026-07-22
1041Australia2026-07-20
1042Canada2026-07-25
1043Canada2026-08-08
1044Italy2026-07-13
1045Japan2026-07-30
1046United Kingdom2026-07-19
1047Canada2026-08-05
1048Canada2026-07-19
1049Australia2026-07-19

On-Demand Data

NameIdCountryDate
Octavia P Bowley1000Japan2026-07-29
Deepesh H Butt1001Japan2026-08-02
Greenwood F Royster1002Japan2026-07-28
Rodrigues N Iturbide1003Russia2026-07-30
Ashley O Caldarera1004Canada2026-07-11
Claire U Stockham1005United Kingdom2026-07-23
Aruna A Figeroa1006Argentina2026-08-01
Alejandro Q Rulapaugh1007India2026-08-08
Izzy L Caldarera1008Italy2026-08-07
Claire J Doe1009Russia2026-08-08
Salvatore F Venere1010Spain2026-07-31
Greenwood W Figeroa1011United Kingdom2026-08-05
Silvio V Figeroa1012Japan2026-08-03
Ashley G Iturbide1013India2026-07-29
Arvin N Schemmer1014Brazil2026-07-24
Arvin H Gillian1015Brazil2026-07-12
Cody L Albares1016Australia2026-07-23
Ashley T Inouye1017Japan2026-07-16
Deepesh U Royster1018United Kingdom2026-07-14
Rodrigues S Foller1019Canada2026-08-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin L BowleyFranceIoni Bowcher PROPOSAL
Leja E ShinkoSpainAmy Elsner NEGOTIATION
Maisha Q RulapaughUnited KingdomElwin Sharvill QUALIFIED
Wickens C ShinkoArgentinaAmy Elsner RENEWAL
Jeanfrancois E RutaGermanyAnna Fali RENEWAL
Smith W WieserBrazilAmy Elsner QUALIFIED
Aika X CaldareraGermanyElwin Sharvill NEW
Misaki L OstroskyBrazilAsiya Javayant NEGOTIATION
Julie C SchemmerUnited KingdomIvan Magalhaes QUALIFIED
Silvio B MarrierFranceOnyama Limba NEW
Francesco S MarrierFranceAnna Fali NEGOTIATION
Murillo U WhobreySpainAnna Fali PROPOSAL
Faith Y OldroydCanadaAnna Fali NEW
Nicolas L VenereSpainAsiya Javayant RENEWAL
James Y PaprockiSpainOnyama Limba NEGOTIATION
Sinclair F MaletItalyBernardo Dominic QUALIFIED
Chavez V MaletBrazilIvan Magalhaes UNQUALIFIED
Silvio T RutaUnited KingdomElwin Sharvill RENEWAL
Arvin T TollnerArgentinaIvan Magalhaes NEGOTIATION
Wickens H ShinkoSpainBernardo Dominic RENEWAL
Izzy X AmigonGermanyOnyama Limba PROPOSAL
Wickens O AmigonArgentinaAsiya Javayant NEGOTIATION
Ricardo F FollerFranceStephen Shaw UNQUALIFIED
Ricardo N KolmetzJapanStephen Shaw NEGOTIATION
Jennifer X SlusarskiBrazilIoni Bowcher NEW
Aruna D RoysterIndiaIvan Magalhaes QUALIFIED
Jennifer R MorascaCanadaStephen Shaw NEGOTIATION
Faith I AlbaresRussiaOnyama Limba NEW
Misaki Y PoquetteAustraliaOnyama Limba NEW
Emily D KuskoRussiaIvan Magalhaes NEW
Greenwood Y RimFranceXuxue Feng NEGOTIATION
Greenwood C WaycottJapanAmy Elsner UNQUALIFIED
Arvin W KuskoRussiaXuxue Feng PROPOSAL
Faith Q FlosiUnited KingdomIoni Bowcher NEW
Francesco F MorascaBrazilBernardo Dominic NEW
Cody R RutaRussiaAnna Fali UNQUALIFIED
Salvatore Q CampainSpainXuxue Feng QUALIFIED
Octavia L KolmetzItalyBernardo Dominic UNQUALIFIED
Leon N AlbaresArgentinaBernardo Dominic PROPOSAL
Misaki V WieserCanadaAmy Elsner 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>