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
Mayumi V SlusarskiAustraliaAsiya Javayant PROPOSAL
Aika B BologniaRussiaXuxue Feng QUALIFIED
Julie V CaldareraJapanIoni Bowcher UNQUALIFIED
Mujtaba H GarufiSpainAnna Fali NEW
Cody P AmigonRussiaAnna Fali QUALIFIED
Mujtaba F WieserArgentinaElwin Sharvill UNQUALIFIED
Faith R AlbaresRussiaAmy Elsner UNQUALIFIED
Deepesh V SlusarskiGermanyOnyama Limba NEW
Ivar Q AlbaresAustraliaIvan Magalhaes NEW
Aditya W FollerJapanAmy Elsner QUALIFIED
Faith K OstroskySpainAmy Elsner PROPOSAL
Antonio X GarufiCanadaAsiya Javayant RENEWAL
Jennifer X StockhamIndiaAmy Elsner NEW
Murillo B RulapaughCanadaElwin Sharvill PROPOSAL
Leja V MorascaJapanElwin Sharvill RENEWAL
Adams E GillianIndiaXuxue Feng NEW
Jennifer L AlbaresRussiaAmy Elsner RENEWAL
Chavez B RulapaughBrazilAmy Elsner UNQUALIFIED
Darci U AmigonSpainElwin Sharvill NEW
David Q AlbaresItalyIvan Magalhaes PROPOSAL
Isabel Y VenereAustraliaElwin Sharvill NEGOTIATION
Chavez G SaylorsIndiaBernardo Dominic RENEWAL
Claire K GarufiArgentinaStephen Shaw QUALIFIED
Ivar V OstroskyIndiaAsiya Javayant QUALIFIED
Ashley D BriddickAustraliaBernardo Dominic NEGOTIATION
Deepesh N MaletBrazilStephen Shaw PROPOSAL
Mayumi D VenereCanadaAnna Fali NEGOTIATION
Rodrigues M DilliardArgentinaElwin Sharvill UNQUALIFIED
Mayumi A IturbideGermanyAsiya Javayant PROPOSAL
Isabel G PoquetteAustraliaOnyama Limba RENEWAL
Maisha D SlusarskiCanadaAnna Fali RENEWAL
Francesco B PaprockiArgentinaStephen Shaw UNQUALIFIED
Misaki I VenereUnited KingdomBernardo Dominic UNQUALIFIED
Maisha D PoquetteSpainAsiya Javayant QUALIFIED
Kaitlin Y CampainIndiaElwin Sharvill NEGOTIATION
Costa B PerinFranceBernardo Dominic NEGOTIATION
Kaitlin M KolmetzCanadaIvan Magalhaes PROPOSAL
Leja S SlusarskiJapanBernardo Dominic UNQUALIFIED
Aditya L NestleRussiaStephen Shaw NEGOTIATION
Clifford I VocelkaAustraliaStephen Shaw PROPOSAL
Jennifer F StensethUnited KingdomStephen Shaw NEW
Nicolas U AmigonFranceBernardo Dominic PROPOSAL
Wickens O SlusarskiRussiaAnna Fali NEW
Darci T RutaUnited KingdomElwin Sharvill RENEWAL
Jeanfrancois M FollerCanadaAsiya Javayant NEGOTIATION
Stacey B RimCanadaStephen Shaw UNQUALIFIED
Deepesh Q KuskoJapanXuxue Feng NEW
Jefferson Y BowleyAustraliaIoni Bowcher NEW
Leon B SchemmerArgentinaAmy Elsner QUALIFIED
Adams B NestleUnited KingdomIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson R NestleGermanyAmy Elsner PROPOSAL
Salvatore W MaletArgentinaIoni Bowcher NEGOTIATION
Mayumi W MaletUnited KingdomIoni Bowcher RENEWAL
Wickens G AlbaresRussiaAmy Elsner PROPOSAL
Octavia H BowleySpainAnna Fali QUALIFIED
Greenwood O CaudyRussiaIoni Bowcher RENEWAL
Smith M MacleadItalyIoni Bowcher RENEWAL
Rodrigues X GlickArgentinaBernardo Dominic UNQUALIFIED
Aruna E CampainFranceXuxue Feng PROPOSAL
Arvin T RoysterRussiaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James G BowleyIndia2026-07-07Feiner Bros NEGOTIATION51Bernardo Dominic
1001Izzy S VenereAustralia2026-06-24Morlong Associates NEW69Onyama Limba
1002Costa W FlosiCanada2026-06-29Printing Dimensions PROPOSAL30Bernardo Dominic
1003Maria B TollnerRussia2026-06-21Dorl, James J Esq RENEWAL55Elwin Sharvill
1004Leon J ButtIndia2026-07-10Printing Dimensions QUALIFIED96Anna Fali
1005Leon D VenereSpain2026-06-16Morlong Associates QUALIFIED31Xuxue Feng
1006Mujtaba I VocelkaItaly2026-07-14Benton, John B Jr NEW48Bernardo Dominic
1007Leja P OldroydArgentina2026-06-18Truhlar And Truhlar Attys QUALIFIED32Bernardo Dominic
1008Izzy L NestleGermany2026-07-05Truhlar And Truhlar Attys QUALIFIED72Ioni Bowcher
1009Ricardo V MorascaAustralia2026-06-20Chanay, Jeffrey A Esq QUALIFIED14Onyama Limba
1010Darci O RutaGermany2026-07-13Dorl, James J Esq PROPOSAL98Xuxue Feng
1011Deepesh S GarufiItaly2026-07-03Chemel, James L Cpa RENEWAL26Anna Fali
1012Aditya G GillianUnited Kingdom2026-06-22Printing Dimensions RENEWAL52Elwin Sharvill
1013Julie Q RutaArgentina2026-07-10Feltz Printing Service QUALIFIED13Elwin Sharvill
1014Smith P RoysterBrazil2026-06-28Rangoni Of Florence UNQUALIFIED46Elwin Sharvill
1015Ashley X PerinCanada2026-07-13Truhlar And Truhlar Attys RENEWAL70Stephen Shaw
1016Costa Y MaletArgentina2026-07-15Buckley Miller Wright NEGOTIATION47Onyama Limba
1017Adams F MaletUnited Kingdom2026-06-27Morlong Associates UNQUALIFIED16Xuxue Feng
1018Aika F StensethJapan2026-07-10Buckley Miller Wright PROPOSAL3Onyama Limba
1019David E TollnerIndia2026-06-21Chapman, Ross E Esq NEGOTIATION25Anna Fali
1020Deepesh K CampainFrance2026-07-04Rousseaux, Michael Esq UNQUALIFIED12Bernardo Dominic
1021Isabel J FerenczSpain2026-07-14Printing Dimensions PROPOSAL24Asiya Javayant
1022Alejandro A SergiAustralia2026-06-21Rangoni Of Florence NEGOTIATION71Asiya Javayant
1023Francesco J PoquetteIndia2026-07-14Chapman, Ross E Esq NEGOTIATION91Xuxue Feng
1024Greenwood V RimRussia2026-07-08Benton, John B Jr UNQUALIFIED30Anna Fali
1025Greenwood T GarufiItaly2026-07-06Morlong Associates UNQUALIFIED88Ivan Magalhaes
1026Aika P KolmetzArgentina2026-06-19Morlong Associates NEW13Bernardo Dominic
1027Darci C RulapaughItaly2026-06-29Commercial Press NEW35Stephen Shaw
1028Tony B RoysterJapan2026-06-21Feltz Printing Service RENEWAL63Ioni Bowcher
1029Alejandro K PoquetteCanada2026-06-28Feiner Bros NEGOTIATION15Asiya Javayant
1030Izzy N KuskoSpain2026-06-27Truhlar And Truhlar Attys RENEWAL57Ivan Magalhaes
1031Jefferson M MaletGermany2026-06-16Rousseaux, Michael Esq NEGOTIATION16Onyama Limba
1032Adams N KuskoAustralia2026-07-15Benton, John B Jr QUALIFIED79Amy Elsner
1033Isabel P CaudyFrance2026-07-03Benton, John B Jr NEGOTIATION43Ivan Magalhaes
1034Ashley H VenereFrance2026-07-04Truhlar And Truhlar Attys NEGOTIATION72Asiya Javayant
1035Wickens G SchemmerIndia2026-07-05Chemel, James L Cpa NEGOTIATION24Asiya Javayant
1036Murillo Q CaudyItaly2026-07-13Dorl, James J Esq RENEWAL47Elwin Sharvill
1037Adams X CampainJapan2026-07-06Dorl, James J Esq RENEWAL95Onyama Limba
1038Francesco N BriddickGermany2026-06-27Dorl, James J Esq NEW41Onyama Limba
1039Greenwood F InouyeGermany2026-07-14Printing Dimensions PROPOSAL60Onyama Limba
1040Arvin W RutaAustralia2026-06-17Commercial Press UNQUALIFIED43Ioni Bowcher
1041Salvatore R GlickUnited Kingdom2026-07-13Morlong Associates NEW14Stephen Shaw
1042Costa L WieserBrazil2026-07-14Truhlar And Truhlar Attys RENEWAL10Ivan Magalhaes
1043Octavia R IturbideItaly2026-07-10Dorl, James J Esq QUALIFIED30Elwin Sharvill
1044Salvatore X AlbaresItaly2026-07-15Feltz Printing Service NEGOTIATION18Bernardo Dominic
1045Aika E VocelkaArgentina2026-07-08Feltz Printing Service QUALIFIED10Anna Fali
1046Aditya J PaprockiGermany2026-07-01Printing Dimensions PROPOSAL89Asiya Javayant
1047Costa S GillianAustralia2026-06-24Morlong Associates PROPOSAL30Ivan Magalhaes
1048Juan P SaylorsRussia2026-06-25Chemel, James L Cpa PROPOSAL54Amy Elsner
1049Kadeem A MorascaBrazil2026-06-25Dorl, James J Esq PROPOSAL62Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Chavez G WaycottRussiaStephen Shaw UNQUALIFIED
Rodrigues U MaletRussiaIvan Magalhaes NEGOTIATION
Arvin M AmigonAustraliaXuxue Feng NEW
Mayumi J OldroydIndiaIoni Bowcher PROPOSAL
Aruna S CaudyFranceAmy Elsner PROPOSAL
Johnson C StockhamSpainXuxue Feng UNQUALIFIED
Aika H MacleadUnited KingdomIvan Magalhaes RENEWAL
Octavia H NickaSpainIoni Bowcher UNQUALIFIED
Tony T ChuiGermanyAnna Fali PROPOSAL
Izzy Z GlickIndiaBernardo Dominic NEW
Aika N WieserRussiaIvan Magalhaes NEGOTIATION
Chavez U FlosiRussiaStephen Shaw RENEWAL
Aditya E BowleyUnited KingdomAnna Fali PROPOSAL
Francesco G IturbideGermanyIvan Magalhaes UNQUALIFIED
Rodrigues B DilliardBrazilIoni Bowcher QUALIFIED
Morrow S GarufiBrazilElwin Sharvill RENEWAL
Johnson I TollnerItalyIoni Bowcher QUALIFIED
Cody Z VocelkaFranceAmy Elsner NEW
Maisha V RoysterIndiaIvan Magalhaes UNQUALIFIED
Nicolas E WhobreyAustraliaIvan Magalhaes RENEWAL
Claire K OldroydItalyIoni Bowcher QUALIFIED
Greenwood L AlbaresFranceIoni Bowcher NEW
Aditya T WaycottRussiaBernardo Dominic QUALIFIED
Mujtaba V RoysterRussiaIvan Magalhaes NEGOTIATION
Smith M TollnerRussiaAmy Elsner QUALIFIED
Arvin U PoquetteGermanyAnna Fali RENEWAL
Clifford G GlickAustraliaOnyama Limba NEGOTIATION
Leja B WieserIndiaAnna Fali RENEWAL
Emily F FigeroaCanadaAmy Elsner RENEWAL
Maria X DoeCanadaAnna Fali PROPOSAL
Johnson Z IturbideItalyXuxue Feng UNQUALIFIED
Antonio X InouyeRussiaAmy Elsner NEW
Aruna E TollnerFranceAnna Fali NEW
Kadeem Z WieserSpainAsiya Javayant RENEWAL
Antonio X SlusarskiGermanyIoni Bowcher UNQUALIFIED
Maisha T NickaCanadaAsiya Javayant QUALIFIED
Cody T ButtArgentinaBernardo Dominic PROPOSAL
David E DilliardUnited KingdomXuxue Feng PROPOSAL
Aditya V WaycottFranceAmy Elsner NEW
Alejandro K SaylorsUnited KingdomIvan Magalhaes NEGOTIATION
Emily R VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Maisha D InouyeJapanStephen Shaw RENEWAL
Adams R ShinkoFranceIoni Bowcher NEGOTIATION
Greenwood A ChuiArgentinaOnyama Limba NEGOTIATION
Ashley B ButtArgentinaXuxue Feng UNQUALIFIED
Alejandro Q CaldareraArgentinaAsiya Javayant NEW
Adams C FlosiItalyOnyama Limba UNQUALIFIED
Johnson C PoquetteItalyAsiya Javayant NEW
Nicolas E OstroskyFranceBernardo Dominic RENEWAL
Tony O InouyeAustraliaStephen Shaw PROPOSAL
Frozen Columns
Name
Jefferson J Caldarera
Kaitlin D Tollner
Smith Y Dilliard
Aditya N Morasca
Alejandro J Gillian
Faith M Rim
Jefferson O Shinko
Maria L Slusarski
Isabel C Malet
Jones E Poquette
Francesco U Ferencz
Leja G Ferencz
Mujtaba L Slusarski
Salvatore O Royster
Silvio Q Royster
Murillo F Darakjy
Nicolas J Gillian
Maisha V Figeroa
Leon I Nestle
Jones F Nestle
Aika V Amigon
Octavia I Garufi
Arvin T Ferencz
Kaitlin N Briddick
Octavia G Wieser
Emily E Malet
Rodrigues U Whobrey
Jones H Chui
Smith T Malet
Mujtaba D Kusko
Stacey E Malet
Salvatore O Gillian
Arvin A Malet
Morrow W Schemmer
Chavez P Iturbide
Deepesh F Nicka
Costa S Nicka
Izzy T Shinko
Wickens V Darakjy
Cody Y Bolognia
Arvin S Malet
Jefferson P Ruta
Octavia U Stockham
Murillo D Royster
Nicolas I Figeroa
Emily H Caldarera
Salvatore U Rim
Cody H Sergi
Ashley D Whobrey
Claire W Nicka
IdCountryDate
1000Brazil2026-06-23
1001Canada2026-07-10
1002Australia2026-06-30
1003Canada2026-07-10
1004Italy2026-06-19
1005France2026-07-09
1006France2026-06-17
1007Germany2026-06-25
1008Italy2026-07-05
1009Russia2026-06-16
1010Spain2026-07-03
1011India2026-07-04
1012Russia2026-06-30
1013Argentina2026-07-05
1014France2026-06-24
1015Australia2026-06-29
1016Japan2026-07-15
1017Spain2026-07-08
1018France2026-07-01
1019Canada2026-06-28
1020United Kingdom2026-07-07
1021Canada2026-07-05
1022Japan2026-07-01
1023Russia2026-06-22
1024India2026-07-05
1025Germany2026-07-03
1026Argentina2026-07-04
1027Italy2026-06-23
1028Brazil2026-07-10
1029United Kingdom2026-06-24
1030France2026-07-12
1031Argentina2026-06-27
1032Japan2026-07-13
1033Italy2026-07-08
1034Australia2026-07-06
1035Brazil2026-06-18
1036France2026-06-24
1037Japan2026-07-06
1038Canada2026-06-19
1039Italy2026-07-08
1040Russia2026-06-24
1041Italy2026-06-16
1042Argentina2026-07-08
1043Canada2026-07-07
1044Canada2026-07-06
1045Australia2026-07-03
1046Japan2026-06-18
1047Brazil2026-07-07
1048Russia2026-06-30
1049Brazil2026-06-25

On-Demand Data

NameIdCountryDate
Maria X Waycott1000Italy2026-07-01
Munro K Tollner1001Australia2026-06-19
Aruna C Rulapaugh1002Germany2026-07-01
Emily G Briddick1003Germany2026-06-30
James Z Paprocki1004Japan2026-07-04
Wickens L Nestle1005Argentina2026-06-28
Aruna R Stenseth1006Germany2026-07-15
Jefferson T Morasca1007Australia2026-07-08
Nicolas Z Gaucho1008India2026-07-04
Faith N Doe1009Italy2026-07-11
Mujtaba K Oldroyd1010Germany2026-06-18
Aditya K Malet1011Japan2026-06-28
Kaitlin D Wieser1012United Kingdom2026-06-25
Alejandro W Glick1013Spain2026-06-21
Tony W Slusarski1014Russia2026-07-07
Nicolas J Slusarski1015Argentina2026-07-01
Isabel H Ruta1016France2026-07-11
Claire V Vocelka1017Japan2026-07-09
Costa J Caldarera1018Germany2026-07-14
Emily R Paprocki1019Germany2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci V StensethArgentinaElwin Sharvill QUALIFIED
Murillo K NickaArgentinaIoni Bowcher UNQUALIFIED
Leja I InouyeJapanAmy Elsner RENEWAL
Emily P InouyeGermanyOnyama Limba QUALIFIED
Alejandro N DoeArgentinaAsiya Javayant UNQUALIFIED
Jefferson G CaudyGermanyStephen Shaw UNQUALIFIED
Maria T GauchoArgentinaIvan Magalhaes QUALIFIED
Aika N CaudyIndiaStephen Shaw PROPOSAL
Greenwood H GauchoCanadaElwin Sharvill NEGOTIATION
David O VenereSpainXuxue Feng NEW
Alejandro E TollnerArgentinaOnyama Limba RENEWAL
Smith I InouyeGermanyAmy Elsner UNQUALIFIED
Ashley V NickaSpainStephen Shaw NEW
Claire D MaletJapanElwin Sharvill NEGOTIATION
Sinclair C VenereAustraliaXuxue Feng RENEWAL
Salvatore I PerinAustraliaIvan Magalhaes PROPOSAL
Kadeem R RutaSpainIvan Magalhaes NEW
Mayumi F RimFranceOnyama Limba NEGOTIATION
Clifford U SaylorsSpainXuxue Feng NEW
Maria L NickaItalyIoni Bowcher NEGOTIATION
Morrow K FollerUnited KingdomAsiya Javayant NEW
Salvatore C RimCanadaIoni Bowcher NEGOTIATION
Kadeem Z GlickJapanIoni Bowcher PROPOSAL
Alejandro G FigeroaAustraliaStephen Shaw PROPOSAL
Stacey V FollerGermanyAnna Fali UNQUALIFIED
Francesco V NestleIndiaStephen Shaw RENEWAL
Jeanfrancois R RoysterArgentinaIoni Bowcher NEW
Claire P WieserArgentinaElwin Sharvill RENEWAL
Murillo I MacleadJapanOnyama Limba NEW
Tony H MaletUnited KingdomAmy Elsner NEW
Wickens L ChuiFranceAsiya Javayant PROPOSAL
Aditya U BologniaJapanAnna Fali UNQUALIFIED
Alejandro Z InouyeRussiaBernardo Dominic PROPOSAL
Mayumi N CaldareraCanadaElwin Sharvill PROPOSAL
Arvin W OstroskyJapanAnna Fali NEW
Misaki Z VenereCanadaAnna Fali NEGOTIATION
Julie Q SchemmerBrazilOnyama Limba UNQUALIFIED
Chavez A MacleadUnited KingdomAsiya Javayant RENEWAL
Cody Q BowleyIndiaElwin Sharvill NEW
Juan J CaudyArgentinaXuxue Feng NEW

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