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
Kadeem I SchemmerGermanyIoni Bowcher PROPOSAL
Juan A BriddickRussiaBernardo Dominic PROPOSAL
Greenwood H RimGermanyIoni Bowcher RENEWAL
Munro W CaudyArgentinaOnyama Limba QUALIFIED
Octavia V DilliardUnited KingdomOnyama Limba QUALIFIED
Darci W NickaBrazilElwin Sharvill RENEWAL
Leon K NickaBrazilStephen Shaw UNQUALIFIED
David O MorascaFranceAmy Elsner NEW
Claire G MorascaGermanyAnna Fali PROPOSAL
Aruna S MaletArgentinaElwin Sharvill QUALIFIED
Julie R StockhamJapanIvan Magalhaes PROPOSAL
Isabel K MarrierBrazilAmy Elsner QUALIFIED
Antonio A NestleSpainAnna Fali NEGOTIATION
Murillo Q OldroydBrazilStephen Shaw UNQUALIFIED
Morrow Z KuskoUnited KingdomIvan Magalhaes RENEWAL
James V MacleadGermanyAmy Elsner NEW
Leon U GillianCanadaAsiya Javayant RENEWAL
Francesco L MarrierRussiaAsiya Javayant NEGOTIATION
Arvin P FollerGermanyIvan Magalhaes NEGOTIATION
Arvin F GillianGermanyIoni Bowcher QUALIFIED
Claire T CaldareraBrazilAmy Elsner PROPOSAL
Clifford T AmigonCanadaStephen Shaw QUALIFIED
Claire T SchemmerJapanIoni Bowcher QUALIFIED
Julie H GarufiItalyOnyama Limba QUALIFIED
Rodrigues F SlusarskiCanadaStephen Shaw NEW
Leon X DilliardJapanIoni Bowcher PROPOSAL
Aruna E InouyeArgentinaOnyama Limba QUALIFIED
Jeanfrancois O MorascaCanadaAsiya Javayant PROPOSAL
Francesco O PaprockiAustraliaXuxue Feng PROPOSAL
Clifford V VenereSpainBernardo Dominic RENEWAL
Darci E WaycottIndiaBernardo Dominic NEW
Wickens J CampainBrazilStephen Shaw UNQUALIFIED
Alejandro I FollerArgentinaOnyama Limba RENEWAL
Jefferson I PoquetteFranceIvan Magalhaes QUALIFIED
Leja Q OldroydBrazilElwin Sharvill PROPOSAL
Nicolas F SlusarskiBrazilBernardo Dominic UNQUALIFIED
Julie I RutaGermanyOnyama Limba NEGOTIATION
Leon E CampainGermanyIvan Magalhaes UNQUALIFIED
Tony P MarrierArgentinaIoni Bowcher NEW
Greenwood E RutaAustraliaBernardo Dominic PROPOSAL
David A GarufiCanadaElwin Sharvill RENEWAL
Stacey E DilliardSpainAmy Elsner PROPOSAL
Faith E PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Izzy K GauchoIndiaOnyama Limba UNQUALIFIED
Antonio I PaprockiItalyOnyama Limba PROPOSAL
Isabel L PaprockiRussiaBernardo Dominic PROPOSAL
Munro L FlosiUnited KingdomXuxue Feng NEGOTIATION
Ricardo K WaycottRussiaIoni Bowcher PROPOSAL
Deepesh Q FlosiUnited KingdomBernardo Dominic NEW
Adams Z WhobreyItalyIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Costa S RulapaughRussiaElwin Sharvill UNQUALIFIED
Kadeem M FlosiAustraliaIoni Bowcher PROPOSAL
Leja K NestleItalyBernardo Dominic UNQUALIFIED
Jones F StockhamItalyElwin Sharvill UNQUALIFIED
Ivar W FlosiRussiaStephen Shaw QUALIFIED
Leja S GillianJapanIoni Bowcher PROPOSAL
Stacey Q VenereUnited KingdomIvan Magalhaes NEW
Ashley J ChuiAustraliaAsiya Javayant QUALIFIED
Leon R CampainGermanyBernardo Dominic QUALIFIED
Julie S NestleGermanyOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia L RulapaughBrazil2026-07-24Printing Dimensions UNQUALIFIED13Stephen Shaw
1001Claire H OstroskyRussia2026-07-22Benton, John B Jr UNQUALIFIED60Amy Elsner
1002Sinclair T WaycottRussia2026-07-23Chemel, James L Cpa RENEWAL10Ioni Bowcher
1003Wickens N CaudyJapan2026-07-21Morlong Associates NEW61Elwin Sharvill
1004James M CaldareraBrazil2026-07-22Buckley Miller Wright UNQUALIFIED0Xuxue Feng
1005Cody L CampainUnited Kingdom2026-07-27Chemel, James L Cpa UNQUALIFIED56Anna Fali
1006David C RimSpain2026-07-05Rangoni Of Florence UNQUALIFIED15Amy Elsner
1007Ivar R FigeroaItaly2026-07-08Morlong Associates UNQUALIFIED20Bernardo Dominic
1008Munro C MacleadFrance2026-07-06Printing Dimensions QUALIFIED4Xuxue Feng
1009Aika V GlickBrazil2026-07-08Benton, John B Jr NEW30Bernardo Dominic
1010Ricardo Y FigeroaArgentina2026-07-13Commercial Press NEGOTIATION20Anna Fali
1011Stacey B TollnerJapan2026-07-12Chanay, Jeffrey A Esq RENEWAL41Anna Fali
1012Mayumi L BowleyArgentina2026-07-12Benton, John B Jr PROPOSAL94Amy Elsner
1013Rodrigues J GlickGermany2026-07-18Rousseaux, Michael Esq PROPOSAL8Stephen Shaw
1014Greenwood O AlbaresSpain2026-07-27Dorl, James J Esq UNQUALIFIED2Stephen Shaw
1015Greenwood H RulapaughSpain2026-07-07Benton, John B Jr NEGOTIATION60Onyama Limba
1016Misaki E PaprockiJapan2026-07-26Chemel, James L Cpa QUALIFIED13Ioni Bowcher
1017Chavez I WieserFrance2026-07-13Rangoni Of Florence UNQUALIFIED66Ioni Bowcher
1018Aika D MaletUnited Kingdom2026-07-04Chemel, James L Cpa NEGOTIATION3Onyama Limba
1019Morrow E VocelkaItaly2026-07-11Chanay, Jeffrey A Esq RENEWAL97Amy Elsner
1020Claire B MacleadAustralia2026-07-09Dorl, James J Esq QUALIFIED88Bernardo Dominic
1021Mayumi Q OstroskyAustralia2026-07-15Chemel, James L Cpa QUALIFIED84Asiya Javayant
1022Faith V MorascaItaly2026-07-14Truhlar And Truhlar Attys NEW10Xuxue Feng
1023Smith D SergiBrazil2026-07-19King, Christopher A Esq NEGOTIATION60Ioni Bowcher
1024Misaki E WhobreyArgentina2026-07-13Chapman, Ross E Esq NEW20Xuxue Feng
1025Faith R WhobreyJapan2026-07-16Commercial Press RENEWAL61Asiya Javayant
1026Ricardo F DilliardGermany2026-07-24Dorl, James J Esq UNQUALIFIED24Xuxue Feng
1027Kadeem F MaletUnited Kingdom2026-07-08Truhlar And Truhlar Attys NEGOTIATION88Elwin Sharvill
1028Kadeem G WieserJapan2026-07-04Commercial Press QUALIFIED32Amy Elsner
1029Juan M ShinkoArgentina2026-07-14Morlong Associates UNQUALIFIED79Bernardo Dominic
1030Izzy R BriddickBrazil2026-07-06Printing Dimensions NEW45Elwin Sharvill
1031Izzy S WhobreyItaly2026-07-04Chanay, Jeffrey A Esq RENEWAL39Stephen Shaw
1032Darci D WaycottGermany2026-07-21Morlong Associates UNQUALIFIED61Asiya Javayant
1033Juan H GillianRussia2026-07-04Dorl, James J Esq PROPOSAL29Xuxue Feng
1034Faith H DarakjyRussia2026-07-14Chemel, James L Cpa UNQUALIFIED94Elwin Sharvill
1035Munro O SchemmerBrazil2026-07-15Rangoni Of Florence QUALIFIED90Elwin Sharvill
1036Smith G InouyeArgentina2026-07-18Printing Dimensions NEW76Amy Elsner
1037Juan D SlusarskiItaly2026-07-10Truhlar And Truhlar Attys NEGOTIATION90Asiya Javayant
1038Leja E GarufiCanada2026-07-23Dorl, James J Esq PROPOSAL79Onyama Limba
1039Mayumi F GillianFrance2026-07-05Benton, John B Jr PROPOSAL6Elwin Sharvill
1040Stacey W StensethItaly2026-07-05King, Christopher A Esq QUALIFIED81Anna Fali
1041Francesco K RoysterGermany2026-07-06King, Christopher A Esq RENEWAL10Onyama Limba
1042Aditya I DilliardUnited Kingdom2026-07-13Morlong Associates NEGOTIATION70Amy Elsner
1043Mujtaba I SergiItaly2026-07-22Benton, John B Jr NEGOTIATION89Xuxue Feng
1044Smith C VocelkaSpain2026-07-21Dorl, James J Esq PROPOSAL56Asiya Javayant
1045Johnson G CaudyItaly2026-07-20Rangoni Of Florence QUALIFIED25Elwin Sharvill
1046Leja N NestleAustralia2026-07-27Truhlar And Truhlar Attys PROPOSAL1Elwin Sharvill
1047Leon K FlosiIndia2026-07-04Chanay, Jeffrey A Esq NEGOTIATION12Stephen Shaw
1048Ashley B CaldareraFrance2026-07-12King, Christopher A Esq QUALIFIED38Onyama Limba
1049Mujtaba Y AmigonCanada2026-07-01Buckley Miller Wright NEGOTIATION63Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Arvin U CaldareraFranceAmy Elsner UNQUALIFIED
Isabel H DilliardUnited KingdomIoni Bowcher PROPOSAL
Costa T RulapaughRussiaOnyama Limba NEW
Maisha F InouyeIndiaAmy Elsner QUALIFIED
Stacey S GillianSpainElwin Sharvill NEW
Ivar X RulapaughCanadaXuxue Feng NEGOTIATION
James N FollerJapanXuxue Feng UNQUALIFIED
Tony J WieserBrazilAmy Elsner NEW
Ashley W KolmetzArgentinaIoni Bowcher RENEWAL
Misaki W AlbaresRussiaBernardo Dominic QUALIFIED
Stacey F GauchoAustraliaElwin Sharvill QUALIFIED
Misaki I WhobreyItalyBernardo Dominic NEW
Leon P ShinkoSpainIoni Bowcher QUALIFIED
Mujtaba Q CaudyRussiaElwin Sharvill RENEWAL
Maria G BriddickAustraliaIvan Magalhaes QUALIFIED
Faith M MorascaBrazilIvan Magalhaes QUALIFIED
Darci M AlbaresAustraliaOnyama Limba NEW
Misaki H MacleadBrazilIoni Bowcher NEW
David J TollnerSpainBernardo Dominic PROPOSAL
Chavez B StockhamItalyBernardo Dominic PROPOSAL
Rodrigues N DoeAustraliaStephen Shaw NEW
Francesco M StensethArgentinaIvan Magalhaes PROPOSAL
Silvio M FerenczSpainOnyama Limba NEGOTIATION
Munro Y GlickAustraliaBernardo Dominic NEGOTIATION
Murillo T ChuiIndiaIoni Bowcher RENEWAL
Darci X DarakjyItalyStephen Shaw NEGOTIATION
Kadeem F SaylorsAustraliaElwin Sharvill QUALIFIED
Adams B DoeArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues J FollerGermanyAmy Elsner NEGOTIATION
Alejandro S SaylorsCanadaXuxue Feng RENEWAL
Deepesh M PerinRussiaOnyama Limba PROPOSAL
Francesco X NickaArgentinaAnna Fali UNQUALIFIED
James F NestleBrazilIvan Magalhaes PROPOSAL
Munro H MorascaBrazilOnyama Limba RENEWAL
Claire T IturbideBrazilBernardo Dominic NEW
Mayumi C SergiItalyOnyama Limba QUALIFIED
Jones N StockhamJapanAnna Fali NEGOTIATION
Cody S RimGermanyAmy Elsner PROPOSAL
Aditya T IturbideSpainXuxue Feng NEGOTIATION
Ricardo K GauchoRussiaBernardo Dominic NEW
Juan R SaylorsBrazilIoni Bowcher PROPOSAL
Silvio I VenereBrazilAnna Fali NEW
Faith V InouyeRussiaElwin Sharvill NEW
Aika B MarrierJapanAmy Elsner RENEWAL
Smith R StensethItalyStephen Shaw UNQUALIFIED
Emily N DilliardUnited KingdomStephen Shaw NEW
Darci W DarakjyAustraliaAnna Fali NEW
Octavia E TollnerUnited KingdomAsiya Javayant PROPOSAL
Maria A SchemmerIndiaOnyama Limba PROPOSAL
Izzy K RutaUnited KingdomOnyama Limba RENEWAL
Frozen Columns
Name
Octavia X Dilliard
Claire N Sergi
Emily K Butt
Morrow C Garufi
Jones J Ostrosky
Silvio K Oldroyd
Jennifer U Chui
Jefferson I Oldroyd
Jennifer L Royster
Maisha R Campain
Tony L Nestle
Smith D Tollner
Rodrigues O Nicka
Costa G Caldarera
Claire O Paprocki
Silvio P Perin
Ashley X Sergi
Antonio L Wieser
Murillo L Iturbide
Faith M Saylors
Kaitlin F Ruta
Nicolas X Maclead
Johnson B Inouye
Octavia N Perin
Silvio Q Albares
Johnson H Paprocki
Greenwood H Gaucho
Stacey K Rulapaugh
Ashley O Venere
Wickens A Chui
Jennifer M Wieser
Arvin O Chui
Jefferson O Poquette
Claire Y Albares
Smith T Caudy
Emily Z Nicka
Stacey C Albares
Greenwood J Rulapaugh
Aika V Rim
Faith E Wieser
Juan N Briddick
Francesco K Doe
Costa B Vocelka
Adams H Waycott
Murillo G Paprocki
Jones V Wieser
Jeanfrancois O Rim
Francesco X Kolmetz
Clifford A Waycott
Faith H Amigon
IdCountryDate
1000United Kingdom2026-07-01
1001Brazil2026-07-13
1002Germany2026-07-30
1003Australia2026-07-10
1004Argentina2026-07-27
1005Brazil2026-07-29
1006India2026-07-20
1007Brazil2026-07-05
1008Japan2026-07-06
1009Australia2026-07-17
1010Argentina2026-07-26
1011Spain2026-07-13
1012Russia2026-07-21
1013Canada2026-07-05
1014Russia2026-07-03
1015Germany2026-07-18
1016India2026-07-30
1017Germany2026-07-06
1018Argentina2026-07-05
1019Argentina2026-07-16
1020United Kingdom2026-07-12
1021Argentina2026-07-15
1022France2026-07-13
1023Spain2026-07-16
1024Spain2026-07-20
1025Canada2026-07-07
1026France2026-07-23
1027United Kingdom2026-07-30
1028Canada2026-07-07
1029Brazil2026-07-01
1030India2026-07-24
1031Canada2026-07-06
1032Germany2026-07-07
1033France2026-07-08
1034Italy2026-07-25
1035Russia2026-07-24
1036Argentina2026-07-03
1037Australia2026-07-10
1038Spain2026-07-19
1039Russia2026-07-19
1040Brazil2026-07-27
1041Japan2026-07-12
1042Japan2026-07-05
1043Canada2026-07-30
1044France2026-07-22
1045Australia2026-07-21
1046India2026-07-29
1047India2026-07-10
1048Brazil2026-07-04
1049Japan2026-07-28

On-Demand Data

NameIdCountryDate
Julie X Figeroa1000Argentina2026-07-09
Rodrigues E Slusarski1001Japan2026-07-19
Aruna K Ostrosky1002Germany2026-07-11
Smith M Garufi1003Canada2026-07-11
Alejandro G Dilliard1004Canada2026-07-30
Claire Y Campain1005Italy2026-07-29
Misaki J Flosi1006United Kingdom2026-07-09
Mujtaba R Perin1007United Kingdom2026-07-20
Costa J Oldroyd1008Spain2026-07-03
Nicolas N Marrier1009India2026-07-20
Johnson E Tollner1010Australia2026-07-09
Kaitlin W Royster1011India2026-07-09
Aruna E Dilliard1012India2026-07-16
Munro B Waycott1013Russia2026-07-16
Murillo S Caudy1014Canada2026-07-05
Wickens C Tollner1015Japan2026-07-22
Murillo H Saylors1016India2026-07-12
Ashley T Nicka1017Spain2026-07-10
Nicolas E Foller1018Canada2026-07-24
Mujtaba Q Gaucho1019Brazil2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie V VocelkaUnited KingdomIoni Bowcher RENEWAL
Francesco E KolmetzAustraliaAmy Elsner NEGOTIATION
Nicolas X CampainAustraliaAmy Elsner UNQUALIFIED
Adams I SlusarskiItalyAnna Fali QUALIFIED
Johnson Q PerinArgentinaAsiya Javayant QUALIFIED
Julie Q PoquetteFranceIoni Bowcher QUALIFIED
Ivar O FollerRussiaBernardo Dominic UNQUALIFIED
Leon L DoeBrazilAsiya Javayant RENEWAL
Arvin X AlbaresCanadaAsiya Javayant UNQUALIFIED
Jefferson N ButtRussiaElwin Sharvill QUALIFIED
Nicolas H FlosiItalyStephen Shaw RENEWAL
Juan D OstroskyIndiaStephen Shaw RENEWAL
Clifford R CampainBrazilIoni Bowcher NEW
Julie C TollnerItalyOnyama Limba PROPOSAL
Munro E RulapaughRussiaBernardo Dominic NEW
Leon V MaletCanadaIvan Magalhaes PROPOSAL
Deepesh I PoquetteSpainOnyama Limba PROPOSAL
Julie W WhobreyArgentinaAnna Fali NEW
Cody X GauchoJapanAmy Elsner QUALIFIED
Smith Z CaudyCanadaAnna Fali PROPOSAL
Leja S StockhamItalyAnna Fali UNQUALIFIED
Costa P MaletItalyIoni Bowcher NEGOTIATION
Chavez Z CaldareraRussiaBernardo Dominic UNQUALIFIED
Greenwood G BowleyIndiaOnyama Limba UNQUALIFIED
Kaitlin O OldroydIndiaIvan Magalhaes RENEWAL
Jeanfrancois D WieserGermanyOnyama Limba UNQUALIFIED
Maria Q ShinkoGermanyStephen Shaw RENEWAL
Aditya F InouyeCanadaAnna Fali UNQUALIFIED
Morrow E FollerUnited KingdomAmy Elsner NEW
Aika T CaudyGermanyIoni Bowcher RENEWAL
Alejandro Y RutaArgentinaXuxue Feng PROPOSAL
Jeanfrancois E RutaGermanyBernardo Dominic QUALIFIED
Aika S PerinFranceStephen Shaw RENEWAL
Julie B KuskoArgentinaOnyama Limba UNQUALIFIED
Alejandro N MorascaFranceBernardo Dominic NEGOTIATION
Isabel T SaylorsIndiaElwin Sharvill NEW
Francesco W CampainFranceAsiya Javayant PROPOSAL
Stacey V PaprockiCanadaElwin Sharvill QUALIFIED
James E CaudySpainElwin Sharvill UNQUALIFIED
Darci N CampainCanadaAnna Fali 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>