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
Octavia M GillianIndiaElwin Sharvill QUALIFIED
Greenwood G CampainUnited KingdomAsiya Javayant NEGOTIATION
Kadeem F CaldareraJapanOnyama Limba UNQUALIFIED
Johnson V SchemmerArgentinaBernardo Dominic NEGOTIATION
Nicolas G ButtIndiaIoni Bowcher UNQUALIFIED
Deepesh V PaprockiFranceXuxue Feng NEGOTIATION
Leon R KuskoItalyAsiya Javayant QUALIFIED
Tony O AmigonArgentinaXuxue Feng PROPOSAL
Alejandro K VenereIndiaStephen Shaw NEGOTIATION
Ashley A NestleGermanyAnna Fali RENEWAL
Stacey C SaylorsUnited KingdomIvan Magalhaes PROPOSAL
Darci D MaletFranceOnyama Limba RENEWAL
Aika I AmigonAustraliaOnyama Limba PROPOSAL
Francesco V MorascaItalyAsiya Javayant UNQUALIFIED
Johnson A MaletArgentinaElwin Sharvill PROPOSAL
Adams F PoquetteItalyIvan Magalhaes RENEWAL
Claire M NestleCanadaAmy Elsner NEW
James G PaprockiArgentinaIvan Magalhaes UNQUALIFIED
Juan P ButtSpainIoni Bowcher UNQUALIFIED
Cody K PoquetteJapanElwin Sharvill NEGOTIATION
Cody O DilliardAustraliaXuxue Feng RENEWAL
Isabel M VenereArgentinaIvan Magalhaes PROPOSAL
Leja Z AlbaresArgentinaBernardo Dominic NEGOTIATION
Julie K GarufiCanadaBernardo Dominic QUALIFIED
Octavia U OldroydIndiaIvan Magalhaes NEGOTIATION
Wickens W BriddickSpainIoni Bowcher NEGOTIATION
Maria O VocelkaFranceBernardo Dominic UNQUALIFIED
Juan F WieserSpainAmy Elsner NEW
Rodrigues Z MacleadCanadaOnyama Limba NEW
Deepesh Z WieserBrazilBernardo Dominic PROPOSAL
Tony L MarrierSpainIvan Magalhaes PROPOSAL
Emily R GillianCanadaStephen Shaw PROPOSAL
Aika S SergiRussiaIoni Bowcher UNQUALIFIED
Julie Y FollerFranceBernardo Dominic RENEWAL
Smith G NickaArgentinaStephen Shaw PROPOSAL
David V PerinCanadaAmy Elsner NEW
Maria I GarufiBrazilIoni Bowcher UNQUALIFIED
Nicolas X SergiFranceAnna Fali NEW
Antonio B BriddickArgentinaBernardo Dominic NEGOTIATION
Munro C RoysterBrazilAsiya Javayant NEW
Aditya X RutaRussiaIvan Magalhaes PROPOSAL
Smith A FollerBrazilIvan Magalhaes QUALIFIED
Adams J BriddickBrazilAnna Fali NEW
Antonio M NickaIndiaAmy Elsner QUALIFIED
Isabel L PerinAustraliaAsiya Javayant PROPOSAL
Johnson Z MaletFranceIvan Magalhaes UNQUALIFIED
Jones N WieserFranceAsiya Javayant QUALIFIED
Chavez Y BriddickRussiaOnyama Limba NEGOTIATION
Jefferson Q DilliardFranceXuxue Feng NEGOTIATION
Faith P SlusarskiBrazilOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro R SlusarskiSpainIvan Magalhaes PROPOSAL
Johnson L WaycottSpainXuxue Feng QUALIFIED
Maisha D WieserAustraliaOnyama Limba RENEWAL
Kaitlin S PerinRussiaStephen Shaw QUALIFIED
Salvatore D AlbaresFranceAsiya Javayant RENEWAL
Ashley A DoeUnited KingdomStephen Shaw PROPOSAL
Silvio X BriddickUnited KingdomIvan Magalhaes RENEWAL
Munro V AmigonItalyOnyama Limba PROPOSAL
Chavez M RoysterFranceAsiya Javayant PROPOSAL
Antonio A WhobreyUnited KingdomIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois G SlusarskiGermany2026-06-07Feltz Printing Service NEW74Elwin Sharvill
1001Claire D CaudySpain2026-06-16Printing Dimensions QUALIFIED41Ivan Magalhaes
1002Maria U SergiCanada2026-06-18King, Christopher A Esq NEGOTIATION31Asiya Javayant
1003Salvatore T GarufiJapan2026-06-18Chapman, Ross E Esq UNQUALIFIED32Asiya Javayant
1004Maisha S CaudyIndia2026-06-15Truhlar And Truhlar Attys NEW23Asiya Javayant
1005Jones Z BologniaArgentina2026-06-30Benton, John B Jr NEGOTIATION62Xuxue Feng
1006Jefferson Y BowleyArgentina2026-07-05Dorl, James J Esq RENEWAL84Bernardo Dominic
1007Mayumi U InouyeSpain2026-06-17Chanay, Jeffrey A Esq RENEWAL71Stephen Shaw
1008Jennifer E SchemmerJapan2026-07-04Chemel, James L Cpa UNQUALIFIED77Elwin Sharvill
1009Leon Z RimIndia2026-06-26King, Christopher A Esq UNQUALIFIED42Ioni Bowcher
1010Smith G NickaGermany2026-06-19Commercial Press QUALIFIED45Stephen Shaw
1011David P GillianIndia2026-06-10Truhlar And Truhlar Attys UNQUALIFIED13Xuxue Feng
1012Deepesh X PoquetteJapan2026-06-08Chanay, Jeffrey A Esq PROPOSAL57Anna Fali
1013Alejandro P MaletUnited Kingdom2026-06-13Buckley Miller Wright RENEWAL79Ivan Magalhaes
1014David U SlusarskiCanada2026-06-11Benton, John B Jr NEGOTIATION69Anna Fali
1015Leja M KuskoGermany2026-07-03Printing Dimensions NEGOTIATION38Amy Elsner
1016Julie V StockhamJapan2026-06-28Benton, John B Jr NEGOTIATION95Onyama Limba
1017Clifford S DoeItaly2026-06-25Feiner Bros RENEWAL25Onyama Limba
1018Clifford F CaldareraUnited Kingdom2026-06-18Printing Dimensions PROPOSAL57Onyama Limba
1019Chavez G WhobreyBrazil2026-06-11Chapman, Ross E Esq RENEWAL7Xuxue Feng
1020Izzy O KuskoIndia2026-06-12Commercial Press QUALIFIED15Ivan Magalhaes
1021Aruna X GarufiGermany2026-06-15Dorl, James J Esq UNQUALIFIED42Asiya Javayant
1022Jefferson D WhobreyIndia2026-07-01Rousseaux, Michael Esq UNQUALIFIED49Ioni Bowcher
1023Greenwood D TollnerUnited Kingdom2026-06-13Chemel, James L Cpa QUALIFIED64Anna Fali
1024Sinclair J GarufiIndia2026-06-07King, Christopher A Esq UNQUALIFIED44Xuxue Feng
1025Jennifer R StockhamItaly2026-06-26Dorl, James J Esq QUALIFIED29Onyama Limba
1026Julie M MorascaArgentina2026-06-06Printing Dimensions QUALIFIED66Ivan Magalhaes
1027Costa P ShinkoGermany2026-07-01Chemel, James L Cpa NEW48Anna Fali
1028Sinclair S NickaBrazil2026-06-29Benton, John B Jr NEGOTIATION71Asiya Javayant
1029Murillo B OldroydAustralia2026-06-27Rangoni Of Florence NEGOTIATION21Anna Fali
1030Rodrigues S SaylorsGermany2026-06-07Chemel, James L Cpa QUALIFIED75Asiya Javayant
1031Johnson A AmigonItaly2026-06-20Chemel, James L Cpa NEW89Ioni Bowcher
1032Aika O BowleyCanada2026-06-18Benton, John B Jr PROPOSAL90Ivan Magalhaes
1033Juan Q ShinkoSpain2026-06-09Buckley Miller Wright UNQUALIFIED99Asiya Javayant
1034Claire Y DoeUnited Kingdom2026-07-03Chanay, Jeffrey A Esq UNQUALIFIED84Bernardo Dominic
1035Isabel A SchemmerCanada2026-06-19Buckley Miller Wright PROPOSAL39Xuxue Feng
1036Faith L CaudyRussia2026-06-17Dorl, James J Esq PROPOSAL31Amy Elsner
1037Sinclair I SaylorsArgentina2026-07-01Feltz Printing Service NEW28Ivan Magalhaes
1038Nicolas A MacleadIndia2026-06-14Dorl, James J Esq PROPOSAL11Bernardo Dominic
1039Faith X NickaSpain2026-06-21Rousseaux, Michael Esq PROPOSAL44Xuxue Feng
1040Juan G IturbideCanada2026-06-26Printing Dimensions RENEWAL38Onyama Limba
1041Stacey V DarakjyAustralia2026-06-23Rousseaux, Michael Esq QUALIFIED99Asiya Javayant
1042Francesco W VenereArgentina2026-06-10Printing Dimensions NEW68Stephen Shaw
1043Mayumi Q IturbideCanada2026-06-14Rangoni Of Florence QUALIFIED31Ioni Bowcher
1044Chavez S VocelkaAustralia2026-06-07Rangoni Of Florence RENEWAL54Amy Elsner
1045Leon S MaletFrance2026-06-26Chapman, Ross E Esq UNQUALIFIED7Bernardo Dominic
1046Clifford M ShinkoItaly2026-06-26Benton, John B Jr PROPOSAL78Xuxue Feng
1047Aditya Y WieserIndia2026-06-23Morlong Associates NEGOTIATION6Asiya Javayant
1048Aruna I StensethSpain2026-06-22Chemel, James L Cpa NEGOTIATION41Bernardo Dominic
1049Juan Z DilliardFrance2026-06-15King, Christopher A Esq RENEWAL30Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Arvin I RutaAustraliaBernardo Dominic UNQUALIFIED
Rodrigues Y CampainRussiaStephen Shaw PROPOSAL
Arvin D VenereItalyBernardo Dominic NEW
Darci V GarufiSpainAmy Elsner NEW
Clifford X OldroydGermanyBernardo Dominic RENEWAL
Chavez I FigeroaBrazilAmy Elsner UNQUALIFIED
Wickens T FigeroaFranceAnna Fali UNQUALIFIED
Alejandro O ChuiSpainAmy Elsner QUALIFIED
Sinclair N PaprockiFranceElwin Sharvill UNQUALIFIED
Greenwood S BowleySpainElwin Sharvill PROPOSAL
Cody D StensethGermanyAsiya Javayant NEGOTIATION
Nicolas G ShinkoItalyXuxue Feng QUALIFIED
Johnson U BriddickSpainIvan Magalhaes RENEWAL
Wickens H MacleadUnited KingdomAmy Elsner NEGOTIATION
Leon L RoysterBrazilStephen Shaw NEGOTIATION
Juan X SergiCanadaBernardo Dominic NEW
Darci F AmigonUnited KingdomAsiya Javayant UNQUALIFIED
Morrow J DarakjyFranceElwin Sharvill UNQUALIFIED
Salvatore L CaldareraGermanyOnyama Limba QUALIFIED
Darci B PaprockiJapanOnyama Limba NEGOTIATION
Greenwood I KolmetzCanadaAnna Fali QUALIFIED
Mayumi N FigeroaBrazilIoni Bowcher QUALIFIED
Costa G RimIndiaOnyama Limba PROPOSAL
Maisha G PaprockiArgentinaXuxue Feng RENEWAL
Jennifer A StensethFranceStephen Shaw PROPOSAL
Silvio S InouyeItalyElwin Sharvill RENEWAL
Arvin S StockhamCanadaAsiya Javayant RENEWAL
Greenwood I NestleGermanyAmy Elsner RENEWAL
Alejandro C RulapaughRussiaBernardo Dominic PROPOSAL
Stacey X FerenczRussiaElwin Sharvill RENEWAL
Mujtaba W RimCanadaIoni Bowcher RENEWAL
Octavia L FollerUnited KingdomElwin Sharvill RENEWAL
Jones P KolmetzArgentinaIoni Bowcher QUALIFIED
Chavez U MarrierRussiaIvan Magalhaes NEGOTIATION
Chavez Y BriddickFranceStephen Shaw NEW
Silvio M NestleItalyAnna Fali QUALIFIED
Julie A GarufiSpainBernardo Dominic NEGOTIATION
Francesco U GarufiItalyIvan Magalhaes PROPOSAL
Mujtaba K NickaArgentinaIoni Bowcher NEGOTIATION
Ricardo P SergiUnited KingdomAmy Elsner NEW
Sinclair V GarufiItalyBernardo Dominic NEW
Costa Y MacleadIndiaBernardo Dominic NEGOTIATION
Murillo E NickaItalyAmy Elsner NEW
Mujtaba F BowleyItalyElwin Sharvill RENEWAL
Darci U MorascaArgentinaIvan Magalhaes NEGOTIATION
Octavia I RoysterAustraliaAsiya Javayant NEW
Jennifer N SlusarskiIndiaIvan Magalhaes NEW
Ashley M GillianGermanyOnyama Limba QUALIFIED
Costa Q ButtBrazilElwin Sharvill PROPOSAL
Cody K NickaUnited KingdomAnna Fali QUALIFIED
Frozen Columns
Name
Isabel Y Rulapaugh
Aditya V Perin
Ricardo P Bolognia
Ashley G Morasca
Jennifer B Dilliard
Antonio S Doe
Kaitlin R Schemmer
Mujtaba I Garufi
Salvatore O Royster
Jefferson Q Albares
Izzy O Kusko
Aditya S Gaucho
Darci K Gillian
Antonio M Darakjy
Stacey L Kolmetz
Misaki Z Venere
Aruna L Rim
Julie H Saylors
Faith E Maclead
Izzy M Amigon
Morrow X Foller
Smith K Perin
Alejandro T Waycott
Antonio H Chui
Antonio V Saylors
Chavez E Stockham
Ivar X Stenseth
Francesco O Rim
Cody J Gaucho
Munro B Iturbide
Rodrigues I Garufi
Munro Y Figeroa
Stacey Y Stockham
Claire U Marrier
Faith H Darakjy
Jennifer Q Perin
Octavia H Rulapaugh
Deepesh U Dilliard
Silvio P Albares
Maisha H Malet
Clifford U Albares
Kaitlin V Chui
Mujtaba V Vocelka
Izzy Y Iturbide
Izzy F Ostrosky
Misaki G Ferencz
Kadeem G Iturbide
Costa Z Figeroa
David H Dilliard
Salvatore N Kusko
IdCountryDate
1000Australia2026-06-11
1001United Kingdom2026-06-13
1002Canada2026-07-03
1003India2026-06-21
1004Spain2026-07-04
1005France2026-07-01
1006United Kingdom2026-06-10
1007Argentina2026-06-06
1008India2026-06-29
1009Australia2026-06-12
1010Italy2026-06-28
1011Australia2026-06-16
1012Brazil2026-06-21
1013United Kingdom2026-06-25
1014India2026-06-24
1015India2026-07-02
1016Brazil2026-06-15
1017France2026-06-29
1018Spain2026-06-19
1019Argentina2026-06-27
1020Canada2026-06-29
1021Germany2026-06-14
1022Argentina2026-06-17
1023Spain2026-06-16
1024Spain2026-06-23
1025Canada2026-07-03
1026Italy2026-06-10
1027Brazil2026-07-05
1028Spain2026-07-01
1029Russia2026-06-09
1030Australia2026-06-18
1031Argentina2026-06-23
1032Canada2026-06-30
1033Italy2026-06-29
1034Brazil2026-06-11
1035Argentina2026-06-21
1036United Kingdom2026-06-16
1037Germany2026-06-29
1038Spain2026-06-14
1039France2026-06-18
1040Australia2026-06-30
1041Brazil2026-06-16
1042Canada2026-06-12
1043Germany2026-06-14
1044France2026-06-12
1045Canada2026-07-04
1046Australia2026-06-08
1047Brazil2026-06-06
1048Spain2026-07-01
1049Canada2026-06-24

On-Demand Data

NameIdCountryDate
Aruna T Malet1000Germany2026-06-06
Johnson F Campain1001Brazil2026-06-19
Morrow F Perin1002Russia2026-06-26
Antonio V Stenseth1003Australia2026-07-02
Mujtaba F Nicka1004United Kingdom2026-07-02
Maisha K Maclead1005Japan2026-06-29
Claire M Ruta1006Italy2026-06-15
Alejandro L Briddick1007Germany2026-07-05
Jefferson O Maclead1008Germany2026-06-21
Arvin H Glick1009Australia2026-06-23
Isabel X Waycott1010France2026-07-05
Stacey P Wieser1011Germany2026-06-21
Cody T Poquette1012India2026-06-28
Antonio B Wieser1013France2026-06-18
Octavia Z Maclead1014Brazil2026-06-15
Juan I Rulapaugh1015Canada2026-06-29
Clifford L Tollner1016Spain2026-06-28
Mayumi G Malet1017Japan2026-06-12
James T Iturbide1018Canada2026-06-15
Mujtaba R Gaucho1019Argentina2026-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba Q GarufiCanadaAmy Elsner PROPOSAL
Aika G GlickJapanAnna Fali UNQUALIFIED
Deepesh T BriddickGermanyAmy Elsner PROPOSAL
Silvio R MaletSpainIoni Bowcher NEW
Deepesh L AlbaresUnited KingdomXuxue Feng NEW
Tony I StockhamRussiaBernardo Dominic RENEWAL
Johnson X StensethRussiaElwin Sharvill UNQUALIFIED
Maria Q BologniaItalyOnyama Limba RENEWAL
Ivar J TollnerBrazilIoni Bowcher RENEWAL
Aditya F FollerCanadaOnyama Limba RENEWAL
Claire Z NickaGermanyIoni Bowcher NEW
Salvatore G WaycottAustraliaAmy Elsner PROPOSAL
Nicolas G ButtCanadaAnna Fali NEGOTIATION
Aditya D MaletIndiaIvan Magalhaes QUALIFIED
Cody B BowleyGermanyOnyama Limba UNQUALIFIED
Jennifer Y KolmetzRussiaBernardo Dominic NEGOTIATION
Deepesh N NickaCanadaAsiya Javayant QUALIFIED
Julie M AmigonArgentinaAsiya Javayant NEGOTIATION
Julie A FigeroaGermanyXuxue Feng UNQUALIFIED
Antonio S FerenczBrazilXuxue Feng RENEWAL
Costa U MaletGermanyAnna Fali PROPOSAL
Kaitlin H StockhamJapanOnyama Limba QUALIFIED
Johnson N InouyeCanadaBernardo Dominic NEW
Izzy W MaletCanadaXuxue Feng NEGOTIATION
Cody Z NestleGermanyAnna Fali NEGOTIATION
Salvatore L OstroskyIndiaAnna Fali NEW
Jennifer J GlickRussiaStephen Shaw RENEWAL
Johnson U ButtFranceIvan Magalhaes PROPOSAL
Izzy O NickaUnited KingdomStephen Shaw RENEWAL
Kadeem D WaycottItalyBernardo Dominic UNQUALIFIED
Alejandro B KuskoSpainXuxue Feng NEGOTIATION
Salvatore V DarakjyUnited KingdomStephen Shaw RENEWAL
Morrow W WieserCanadaStephen Shaw PROPOSAL
Rodrigues U ChuiItalyIvan Magalhaes NEW
Izzy R CaudyAustraliaElwin Sharvill NEW
Ivar Z WaycottBrazilAmy Elsner UNQUALIFIED
Costa L SchemmerFranceOnyama Limba UNQUALIFIED
Salvatore G NickaCanadaAmy Elsner QUALIFIED
Isabel N ChuiFranceAnna Fali NEW
James M StockhamRussiaBernardo Dominic 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>