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
Francesco A StockhamBrazilBernardo Dominic NEGOTIATION
David I BriddickIndiaStephen Shaw NEGOTIATION
Faith O SergiFranceAsiya Javayant RENEWAL
Maisha V RulapaughFranceAnna Fali UNQUALIFIED
Munro Q RulapaughCanadaAsiya Javayant NEW
Salvatore P PerinRussiaAmy Elsner QUALIFIED
Rodrigues G NickaBrazilAnna Fali NEW
Tony J WaycottFranceOnyama Limba UNQUALIFIED
Aruna P PerinArgentinaXuxue Feng UNQUALIFIED
Aruna T RimJapanBernardo Dominic QUALIFIED
Aika U AlbaresSpainXuxue Feng PROPOSAL
Francesco B FollerItalyElwin Sharvill PROPOSAL
Ricardo J VocelkaFranceIoni Bowcher NEW
Claire S IturbideSpainAsiya Javayant RENEWAL
Juan O MaletJapanBernardo Dominic RENEWAL
Aika T MaletRussiaAsiya Javayant QUALIFIED
James Q GauchoFranceStephen Shaw PROPOSAL
Aika T RimJapanIoni Bowcher PROPOSAL
Ricardo D RoysterCanadaOnyama Limba QUALIFIED
Chavez Y SaylorsAustraliaIoni Bowcher NEGOTIATION
Smith B DoeIndiaAnna Fali PROPOSAL
Ivar P OldroydRussiaAnna Fali PROPOSAL
Aruna A PoquetteRussiaAsiya Javayant QUALIFIED
Aruna W BriddickSpainElwin Sharvill UNQUALIFIED
Adams F RutaItalyXuxue Feng QUALIFIED
Francesco E RoysterFranceIvan Magalhaes PROPOSAL
Nicolas E DarakjyJapanAnna Fali UNQUALIFIED
Smith V MarrierSpainAmy Elsner QUALIFIED
Faith K RoysterCanadaAsiya Javayant NEGOTIATION
Cody N FlosiGermanyAnna Fali RENEWAL
Nicolas B VenereCanadaOnyama Limba RENEWAL
Julie B CaldareraSpainOnyama Limba PROPOSAL
Ricardo K PaprockiArgentinaAsiya Javayant NEGOTIATION
James I VocelkaItalyElwin Sharvill QUALIFIED
Munro T RimSpainAsiya Javayant RENEWAL
Sinclair E ButtItalyStephen Shaw QUALIFIED
Julie J CaldareraFranceStephen Shaw PROPOSAL
Sinclair G OldroydUnited KingdomElwin Sharvill NEW
Clifford C ButtUnited KingdomElwin Sharvill PROPOSAL
Aruna A CaudySpainStephen Shaw PROPOSAL
Silvio I PaprockiArgentinaOnyama Limba UNQUALIFIED
David G KolmetzJapanOnyama Limba PROPOSAL
Isabel W CaldareraSpainAmy Elsner NEW
Aditya Z IturbideCanadaXuxue Feng NEW
Aika A FigeroaArgentinaAmy Elsner RENEWAL
Emily U MaletRussiaElwin Sharvill NEGOTIATION
Tony Q KuskoRussiaAmy Elsner QUALIFIED
Sinclair F FollerUnited KingdomOnyama Limba PROPOSAL
Darci Z FlosiItalyAsiya Javayant PROPOSAL
Ashley K IturbideJapanBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues Z DilliardAustraliaAnna Fali QUALIFIED
James J SaylorsJapanElwin Sharvill QUALIFIED
Isabel W MacleadCanadaIoni Bowcher NEGOTIATION
Nicolas U SaylorsJapanStephen Shaw UNQUALIFIED
Juan B CampainFranceAmy Elsner QUALIFIED
Kadeem R InouyeFranceIvan Magalhaes NEW
Kaitlin E FollerGermanyAnna Fali UNQUALIFIED
Juan M GarufiSpainOnyama Limba NEW
Clifford H PerinUnited KingdomIoni Bowcher QUALIFIED
Tony W NestleFranceAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci B GlickBrazil2025-04-20Feiner Bros PROPOSAL36Stephen Shaw
1001Jefferson R GauchoJapan2025-04-27Benton, John B Jr PROPOSAL23Stephen Shaw
1002Ashley E WieserRussia2025-04-29Chapman, Ross E Esq QUALIFIED32Xuxue Feng
1003Aditya L FlosiAustralia2025-04-20Feiner Bros NEW35Amy Elsner
1004Jennifer P MacleadRussia2025-04-17Buckley Miller Wright NEW53Anna Fali
1005Sinclair E DilliardCanada2025-04-21Rousseaux, Michael Esq PROPOSAL77Ioni Bowcher
1006Clifford D AmigonRussia2025-04-22Commercial Press QUALIFIED86Stephen Shaw
1007Jennifer W InouyeBrazil2025-04-16Rangoni Of Florence NEW26Xuxue Feng
1008Sinclair H DoeFrance2025-04-27Rangoni Of Florence QUALIFIED64Asiya Javayant
1009Stacey J KolmetzArgentina2025-04-20King, Christopher A Esq PROPOSAL49Onyama Limba
1010Ivar F GauchoAustralia2025-04-25Benton, John B Jr PROPOSAL14Onyama Limba
1011Jefferson V CaudyArgentina2025-04-21Rousseaux, Michael Esq QUALIFIED73Ivan Magalhaes
1012Aditya P MaletJapan2025-04-07Rousseaux, Michael Esq QUALIFIED80Bernardo Dominic
1013Ricardo U VenereIndia2025-04-21Feiner Bros NEGOTIATION40Anna Fali
1014Aruna K MaletGermany2025-04-23King, Christopher A Esq UNQUALIFIED62Ivan Magalhaes
1015Salvatore F MorascaFrance2025-04-16Truhlar And Truhlar Attys QUALIFIED16Anna Fali
1016Morrow T BowleyIndia2025-04-02Rousseaux, Michael Esq PROPOSAL21Asiya Javayant
1017Izzy Z BologniaJapan2025-04-02Feiner Bros RENEWAL27Amy Elsner
1018Cody B RoysterArgentina2025-04-05Morlong Associates QUALIFIED70Ivan Magalhaes
1019Murillo R FlosiRussia2025-04-30Chapman, Ross E Esq QUALIFIED68Xuxue Feng
1020Chavez O PaprockiGermany2025-04-16Rangoni Of Florence PROPOSAL90Asiya Javayant
1021Aditya K BriddickFrance2025-04-07Truhlar And Truhlar Attys NEW69Xuxue Feng
1022Costa P SlusarskiArgentina2025-04-23Chemel, James L Cpa RENEWAL18Stephen Shaw
1023Morrow X CaudyFrance2025-04-11Feltz Printing Service PROPOSAL84Amy Elsner
1024Mujtaba R RimUnited Kingdom2025-04-14Morlong Associates QUALIFIED33Amy Elsner
1025Darci X CaudyBrazil2025-04-13Morlong Associates RENEWAL19Bernardo Dominic
1026Deepesh Y VocelkaUnited Kingdom2025-04-15Dorl, James J Esq NEGOTIATION64Amy Elsner
1027Sinclair Y FigeroaAustralia2025-04-07Rousseaux, Michael Esq NEW35Ioni Bowcher
1028Kadeem R RutaAustralia2025-04-22Rangoni Of Florence NEGOTIATION37Anna Fali
1029Juan Y MarrierItaly2025-04-18King, Christopher A Esq RENEWAL64Ioni Bowcher
1030Nicolas R GillianFrance2025-04-15Dorl, James J Esq PROPOSAL63Elwin Sharvill
1031Adams H FerenczArgentina2025-04-06King, Christopher A Esq QUALIFIED32Stephen Shaw
1032Ivar D PaprockiBrazil2025-04-03Chemel, James L Cpa QUALIFIED61Ioni Bowcher
1033Jones F OldroydIndia2025-04-02Truhlar And Truhlar Attys NEW30Asiya Javayant
1034Arvin X DilliardUnited Kingdom2025-04-28Chemel, James L Cpa PROPOSAL86Ivan Magalhaes
1035Cody I RimAustralia2025-04-27Truhlar And Truhlar Attys NEGOTIATION45Xuxue Feng
1036Darci W BologniaFrance2025-04-01Printing Dimensions NEGOTIATION93Ioni Bowcher
1037Chavez G InouyeCanada2025-04-18Truhlar And Truhlar Attys UNQUALIFIED20Amy Elsner
1038James Z CampainJapan2025-04-04King, Christopher A Esq NEGOTIATION90Bernardo Dominic
1039Kaitlin H OldroydIndia2025-04-02Commercial Press NEW37Ioni Bowcher
1040Nicolas I BologniaUnited Kingdom2025-04-14Feiner Bros PROPOSAL52Xuxue Feng
1041Jennifer R GauchoIndia2025-04-25Dorl, James J Esq PROPOSAL26Stephen Shaw
1042Nicolas X BologniaCanada2025-04-09King, Christopher A Esq PROPOSAL20Anna Fali
1043Nicolas L SchemmerFrance2025-04-18Chanay, Jeffrey A Esq RENEWAL7Asiya Javayant
1044James E WaycottGermany2025-04-17King, Christopher A Esq NEGOTIATION91Amy Elsner
1045Salvatore V NestleBrazil2025-04-17Benton, John B Jr NEGOTIATION75Ivan Magalhaes
1046Darci M GlickJapan2025-04-21Chemel, James L Cpa NEW59Ivan Magalhaes
1047Aika T AmigonCanada2025-04-30King, Christopher A Esq UNQUALIFIED79Bernardo Dominic
1048Salvatore K CaudySpain2025-04-17Chanay, Jeffrey A Esq PROPOSAL72Ivan Magalhaes
1049Octavia Z MaletCanada2025-04-17Chapman, Ross E Esq PROPOSAL36Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Smith A FerenczArgentinaIvan Magalhaes UNQUALIFIED
Adams D RimItalyBernardo Dominic QUALIFIED
Alejandro X CaudyItalyElwin Sharvill NEGOTIATION
Mayumi K RulapaughItalyElwin Sharvill UNQUALIFIED
Smith T OldroydUnited KingdomOnyama Limba UNQUALIFIED
Sinclair H RulapaughAustraliaBernardo Dominic UNQUALIFIED
Alejandro T MacleadRussiaOnyama Limba PROPOSAL
Deepesh Q MarrierSpainIoni Bowcher NEGOTIATION
Jennifer M MaletGermanyXuxue Feng NEW
James R MaletFranceIoni Bowcher NEGOTIATION
Costa M CaudyAustraliaAmy Elsner NEGOTIATION
Mayumi Q OstroskyUnited KingdomAnna Fali PROPOSAL
Jefferson J WhobreyJapanAsiya Javayant NEW
Maisha Z RulapaughArgentinaStephen Shaw UNQUALIFIED
Smith H DoeCanadaOnyama Limba UNQUALIFIED
Stacey Z PaprockiAustraliaAmy Elsner QUALIFIED
Maisha K PaprockiRussiaIoni Bowcher RENEWAL
Arvin L BologniaUnited KingdomElwin Sharvill NEGOTIATION
Aditya N NickaGermanyXuxue Feng NEGOTIATION
Claire X StockhamUnited KingdomIoni Bowcher NEGOTIATION
Ivar K StensethJapanAnna Fali NEGOTIATION
Chavez H NickaGermanyBernardo Dominic NEGOTIATION
Rodrigues B FollerBrazilAsiya Javayant UNQUALIFIED
Mujtaba W CaudyGermanyElwin Sharvill UNQUALIFIED
David M AlbaresJapanAmy Elsner PROPOSAL
Octavia M OldroydRussiaAnna Fali UNQUALIFIED
Jones C ShinkoSpainStephen Shaw NEW
Deepesh C DarakjyUnited KingdomBernardo Dominic PROPOSAL
Adams E SaylorsCanadaAmy Elsner NEW
Isabel K BowleyCanadaIoni Bowcher PROPOSAL
Maria H AmigonAustraliaStephen Shaw RENEWAL
Silvio Q VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Leon U NestleAustraliaIoni Bowcher PROPOSAL
Francesco F OldroydUnited KingdomAsiya Javayant QUALIFIED
Leon J DoeCanadaIvan Magalhaes PROPOSAL
Cody O GauchoCanadaBernardo Dominic PROPOSAL
Clifford U RulapaughArgentinaAnna Fali NEW
Ricardo W MorascaItalyOnyama Limba UNQUALIFIED
Smith D GlickArgentinaAnna Fali UNQUALIFIED
Octavia A FigeroaArgentinaOnyama Limba PROPOSAL
Arvin G WaycottAustraliaIoni Bowcher RENEWAL
David Q CaudySpainBernardo Dominic NEW
Morrow H GarufiJapanOnyama Limba UNQUALIFIED
Ashley R DarakjyArgentinaAsiya Javayant UNQUALIFIED
Deepesh I MaletCanadaAnna Fali PROPOSAL
Arvin D PoquetteBrazilOnyama Limba NEW
Isabel Y WieserItalyIvan Magalhaes NEGOTIATION
Leon N DarakjyUnited KingdomStephen Shaw PROPOSAL
Faith Q TollnerAustraliaAnna Fali RENEWAL
Ashley U DoeIndiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Morrow S Flosi
Smith L Albares
Emily N Briddick
Cody Z Waycott
Jeanfrancois T Malet
Kaitlin H Foller
Izzy Y Stockham
Francesco T Dilliard
Johnson O Gaucho
Deepesh E Amigon
Tony D Morasca
Jeanfrancois O Garufi
Deepesh G Caudy
Aditya I Maclead
Darci F Malet
Leja Y Nestle
Mujtaba J Rulapaugh
Wickens O Perin
James P Rulapaugh
Clifford G Doe
Isabel N Ruta
Costa E Flosi
Jeanfrancois L Poquette
Smith A Paprocki
Emily Q Poquette
Deepesh P Maclead
David B Albares
Julie J Poquette
Maisha W Ostrosky
Darci D Chui
Munro Y Dilliard
Francesco G Malet
Faith R Stenseth
Octavia E Whobrey
Costa T Caldarera
Ashley X Gaucho
Arvin T Venere
Mujtaba G Nestle
Leon Q Caudy
Adams M Whobrey
Murillo M Paprocki
Leon I Kusko
Juan G Stockham
Johnson D Stockham
Wickens D Garufi
Leja T Glick
Claire V Tollner
Arvin O Oldroyd
Isabel X Paprocki
Murillo D Venere
IdCountryDate
1000Argentina2025-04-24
1001Russia2025-04-23
1002France2025-04-13
1003India2025-04-23
1004Spain2025-04-06
1005Russia2025-04-05
1006India2025-04-19
1007United Kingdom2025-04-06
1008Germany2025-04-15
1009Russia2025-04-16
1010Argentina2025-04-18
1011Argentina2025-04-27
1012Brazil2025-04-28
1013India2025-04-15
1014Brazil2025-04-09
1015Australia2025-04-26
1016India2025-04-21
1017Australia2025-04-27
1018United Kingdom2025-04-18
1019United Kingdom2025-04-26
1020Spain2025-04-20
1021Australia2025-04-30
1022Germany2025-04-22
1023Australia2025-04-27
1024Japan2025-04-07
1025Japan2025-04-18
1026Italy2025-04-12
1027Russia2025-04-30
1028Germany2025-04-01
1029Brazil2025-04-06
1030India2025-04-23
1031Spain2025-04-03
1032Spain2025-04-17
1033Spain2025-04-29
1034France2025-04-07
1035United Kingdom2025-04-09
1036Brazil2025-04-18
1037Germany2025-04-26
1038Russia2025-04-23
1039India2025-04-29
1040Germany2025-04-09
1041Italy2025-04-28
1042Germany2025-04-29
1043France2025-04-07
1044Canada2025-04-27
1045Spain2025-04-08
1046Canada2025-04-06
1047Italy2025-04-02
1048India2025-04-13
1049Australia2025-04-07

On-Demand Data

NameIdCountryDate
Alejandro H Ostrosky1000India2025-04-14
Munro R Briddick1001Argentina2025-04-24
Claire D Kolmetz1002Australia2025-04-01
Kaitlin A Oldroyd1003Japan2025-04-06
Jefferson O Venere1004Australia2025-04-15
Salvatore P Kusko1005Japan2025-04-09
Sinclair V Doe1006France2025-04-13
Leon G Morasca1007United Kingdom2025-04-28
Johnson Q Bowley1008India2025-04-30
Wickens H Maclead1009United Kingdom2025-04-25
James Y Flosi1010United Kingdom2025-04-14
Adams N Flosi1011Russia2025-04-11
Wickens H Stockham1012Germany2025-04-29
Julie Z Maclead1013France2025-04-03
Francesco Z Garufi1014Russia2025-04-27
Munro G Garufi1015United Kingdom2025-04-15
Mujtaba V Schemmer1016Italy2025-04-19
Maisha M Kusko1017France2025-04-19
Aruna K Chui1018Japan2025-04-09
Tony X Malet1019Italy2025-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci L MaletBrazilIoni Bowcher NEGOTIATION
Leon X WaycottIndiaElwin Sharvill PROPOSAL
Kadeem J StensethArgentinaOnyama Limba NEW
James I GauchoJapanOnyama Limba NEW
Cody C RutaIndiaBernardo Dominic QUALIFIED
Morrow S IturbideUnited KingdomAsiya Javayant QUALIFIED
Arvin T CaldareraJapanOnyama Limba NEW
Emily U StensethItalyXuxue Feng NEGOTIATION
Stacey T SaylorsRussiaAsiya Javayant NEW
Izzy M CampainRussiaIoni Bowcher PROPOSAL
Wickens K OldroydBrazilXuxue Feng UNQUALIFIED
Cody U GarufiArgentinaElwin Sharvill UNQUALIFIED
Arvin V FollerIndiaElwin Sharvill NEGOTIATION
Izzy J RoysterUnited KingdomAsiya Javayant NEW
Morrow H TollnerFranceAsiya Javayant UNQUALIFIED
Greenwood T StensethBrazilAsiya Javayant QUALIFIED
Jefferson J IturbideGermanyBernardo Dominic UNQUALIFIED
Munro O RimBrazilAmy Elsner QUALIFIED
Arvin T StensethJapanOnyama Limba UNQUALIFIED
Kadeem O MaletRussiaAnna Fali PROPOSAL
Adams Y DarakjyAustraliaBernardo Dominic NEGOTIATION
Rodrigues G RimJapanIoni Bowcher NEGOTIATION
Tony P ShinkoSpainStephen Shaw NEW
Cody E SlusarskiRussiaElwin Sharvill UNQUALIFIED
Cody W SaylorsUnited KingdomAnna Fali NEGOTIATION
Julie A FollerItalyOnyama Limba NEW
Greenwood O PerinSpainStephen Shaw QUALIFIED
Jennifer B PoquetteIndiaIvan Magalhaes RENEWAL
Aika B StensethArgentinaElwin Sharvill PROPOSAL
Johnson N MaletGermanyXuxue Feng NEGOTIATION
Izzy U FollerRussiaBernardo Dominic NEW
Jeanfrancois D OstroskyIndiaIoni Bowcher PROPOSAL
Ivar L FerenczGermanyOnyama Limba UNQUALIFIED
Stacey N SergiIndiaStephen Shaw NEGOTIATION
Nicolas L TollnerJapanStephen Shaw RENEWAL
Sinclair U RulapaughAustraliaOnyama Limba NEW
Munro O StensethFranceIoni Bowcher RENEWAL
Clifford G OldroydJapanIvan Magalhaes UNQUALIFIED
Costa K TollnerRussiaAmy Elsner PROPOSAL
Francesco U FigeroaFranceOnyama Limba 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>