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
Misaki T AlbaresUnited KingdomXuxue Feng NEW
Maria D RimBrazilAmy Elsner PROPOSAL
Rodrigues X IturbideJapanXuxue Feng PROPOSAL
Isabel P WaycottCanadaXuxue Feng QUALIFIED
Octavia N DarakjyIndiaIvan Magalhaes NEGOTIATION
David B AlbaresIndiaAsiya Javayant NEGOTIATION
Costa U InouyeArgentinaAsiya Javayant PROPOSAL
Emily V GauchoRussiaElwin Sharvill PROPOSAL
Julie J SlusarskiGermanyIvan Magalhaes UNQUALIFIED
Tony I NickaFranceAmy Elsner RENEWAL
Rodrigues G MorascaJapanAnna Fali NEGOTIATION
Jefferson I VocelkaBrazilAnna Fali NEGOTIATION
Stacey F PerinArgentinaIoni Bowcher PROPOSAL
Aika W RimIndiaAnna Fali NEGOTIATION
Jennifer B ButtGermanyAsiya Javayant RENEWAL
David B BowleyRussiaStephen Shaw NEGOTIATION
Jefferson R WaycottCanadaAsiya Javayant QUALIFIED
Salvatore C MaletAustraliaAnna Fali NEGOTIATION
Antonio E FollerUnited KingdomBernardo Dominic NEGOTIATION
Kadeem D StensethAustraliaAnna Fali QUALIFIED
Jones J NickaBrazilBernardo Dominic UNQUALIFIED
Murillo Q CampainUnited KingdomElwin Sharvill UNQUALIFIED
Mayumi U OstroskyGermanyXuxue Feng PROPOSAL
Mujtaba H CaudyUnited KingdomAnna Fali QUALIFIED
Aika X VenereJapanOnyama Limba PROPOSAL
Munro W DilliardBrazilXuxue Feng QUALIFIED
Stacey H DilliardCanadaAsiya Javayant NEGOTIATION
Leja R NestleCanadaIoni Bowcher NEW
Tony N OstroskyFranceAsiya Javayant QUALIFIED
Johnson C CampainFranceStephen Shaw PROPOSAL
James F WaycottArgentinaStephen Shaw UNQUALIFIED
Izzy I MacleadUnited KingdomIoni Bowcher NEGOTIATION
Juan A GlickRussiaIvan Magalhaes NEGOTIATION
Misaki Q DilliardIndiaXuxue Feng QUALIFIED
Mujtaba W MacleadBrazilElwin Sharvill QUALIFIED
Tony G CampainFranceElwin Sharvill NEW
Salvatore F VenereItalyIvan Magalhaes RENEWAL
Kadeem B MorascaSpainIvan Magalhaes PROPOSAL
Wickens X RulapaughJapanStephen Shaw PROPOSAL
Greenwood N SergiArgentinaElwin Sharvill PROPOSAL
Antonio H KuskoUnited KingdomOnyama Limba RENEWAL
Emily X RimArgentinaOnyama Limba QUALIFIED
James N PoquetteFranceXuxue Feng PROPOSAL
Adams Q AmigonItalyStephen Shaw QUALIFIED
Smith I ButtCanadaIoni Bowcher UNQUALIFIED
Munro C PerinBrazilAnna Fali RENEWAL
Rodrigues L PoquetteCanadaIoni Bowcher RENEWAL
Mayumi E MorascaArgentinaElwin Sharvill NEW
Tony P PerinBrazilAnna Fali NEGOTIATION
Costa V MacleadRussiaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Morrow W ButtRussiaXuxue Feng NEGOTIATION
Chavez G InouyeBrazilOnyama Limba UNQUALIFIED
Leon M AlbaresCanadaStephen Shaw RENEWAL
Kaitlin B InouyeRussiaXuxue Feng NEGOTIATION
Aruna G CaudyRussiaIvan Magalhaes NEW
Aditya V StockhamArgentinaAmy Elsner RENEWAL
Wickens T PaprockiJapanXuxue Feng PROPOSAL
Cody V MorascaItalyStephen Shaw QUALIFIED
Kadeem I BriddickJapanAnna Fali NEW
Rodrigues P MaletIndiaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna V SergiBrazil2025-04-14Feiner Bros NEGOTIATION38Asiya Javayant
1001Arvin V ButtAustralia2025-04-14Feltz Printing Service QUALIFIED32Onyama Limba
1002Stacey Q VenereSpain2025-04-06Dorl, James J Esq PROPOSAL40Ivan Magalhaes
1003Clifford F OldroydSpain2025-04-03Benton, John B Jr NEGOTIATION41Anna Fali
1004Maisha X GillianArgentina2025-04-22Chapman, Ross E Esq PROPOSAL77Asiya Javayant
1005Murillo O SaylorsIndia2025-04-12Feltz Printing Service NEW71Onyama Limba
1006Faith H OldroydJapan2025-04-17Truhlar And Truhlar Attys NEW48Xuxue Feng
1007Isabel S SlusarskiItaly2025-04-28Dorl, James J Esq RENEWAL38Anna Fali
1008Jefferson C ShinkoIndia2025-04-26Chapman, Ross E Esq NEW89Bernardo Dominic
1009Clifford E PerinJapan2025-04-20Buckley Miller Wright QUALIFIED64Xuxue Feng
1010Emily U GillianJapan2025-04-28King, Christopher A Esq UNQUALIFIED54Asiya Javayant
1011Darci P AmigonArgentina2025-04-09Chapman, Ross E Esq NEW90Xuxue Feng
1012Maisha N AmigonRussia2025-04-30Morlong Associates NEW30Onyama Limba
1013Mujtaba Q GlickJapan2025-04-02Morlong Associates RENEWAL81Ivan Magalhaes
1014David U WhobreyUnited Kingdom2025-04-28Buckley Miller Wright UNQUALIFIED26Amy Elsner
1015Ricardo X TollnerRussia2025-04-06Benton, John B Jr UNQUALIFIED47Xuxue Feng
1016Aika J MorascaSpain2025-04-01Buckley Miller Wright UNQUALIFIED66Stephen Shaw
1017Arvin Q InouyeJapan2025-04-24Morlong Associates NEGOTIATION52Amy Elsner
1018Adams Q TollnerAustralia2025-04-16Truhlar And Truhlar Attys PROPOSAL72Xuxue Feng
1019Aruna W NestleRussia2025-04-15Truhlar And Truhlar Attys NEW43Bernardo Dominic
1020Sinclair J ShinkoItaly2025-04-26Commercial Press NEGOTIATION11Amy Elsner
1021Leja H NestleArgentina2025-04-12Truhlar And Truhlar Attys UNQUALIFIED28Stephen Shaw
1022Chavez E DarakjyItaly2025-04-25Truhlar And Truhlar Attys NEGOTIATION95Ioni Bowcher
1023Izzy H StockhamSpain2025-04-14Printing Dimensions UNQUALIFIED37Onyama Limba
1024Misaki X GauchoArgentina2025-04-22Chanay, Jeffrey A Esq NEW66Anna Fali
1025Izzy W BologniaFrance2025-04-09Commercial Press PROPOSAL9Ivan Magalhaes
1026Emily M MaletGermany2025-04-12King, Christopher A Esq RENEWAL47Stephen Shaw
1027Misaki C GarufiItaly2025-04-21Chanay, Jeffrey A Esq RENEWAL57Amy Elsner
1028Rodrigues M WieserAustralia2025-04-02Buckley Miller Wright NEW91Stephen Shaw
1029Wickens V WieserCanada2025-04-05King, Christopher A Esq UNQUALIFIED65Amy Elsner
1030Ashley B BowleyRussia2025-04-02Rousseaux, Michael Esq PROPOSAL74Ivan Magalhaes
1031Kaitlin M RoysterRussia2025-04-12Printing Dimensions RENEWAL64Asiya Javayant
1032Jennifer M AmigonRussia2025-04-06Morlong Associates QUALIFIED12Bernardo Dominic
1033Tony S BriddickRussia2025-04-19Chanay, Jeffrey A Esq PROPOSAL32Amy Elsner
1034Ashley Y PerinJapan2025-04-30Rousseaux, Michael Esq RENEWAL82Asiya Javayant
1035Aruna E ChuiRussia2025-04-13Commercial Press QUALIFIED25Ivan Magalhaes
1036Jones P AmigonArgentina2025-04-19Benton, John B Jr QUALIFIED65Ioni Bowcher
1037Leja K RoysterRussia2025-04-09Commercial Press PROPOSAL76Bernardo Dominic
1038Antonio K PerinGermany2025-04-30Buckley Miller Wright QUALIFIED88Amy Elsner
1039Antonio G SergiJapan2025-04-25Dorl, James J Esq RENEWAL56Elwin Sharvill
1040Murillo T MaletIndia2025-04-08Chemel, James L Cpa PROPOSAL2Xuxue Feng
1041Kaitlin C DilliardArgentina2025-04-25Chapman, Ross E Esq RENEWAL82Bernardo Dominic
1042Murillo Q RutaRussia2025-04-29Morlong Associates RENEWAL98Asiya Javayant
1043Mujtaba V TollnerUnited Kingdom2025-04-09Rangoni Of Florence NEGOTIATION86Bernardo Dominic
1044Faith O SchemmerCanada2025-04-21Buckley Miller Wright PROPOSAL49Anna Fali
1045Silvio M BriddickItaly2025-04-18Rousseaux, Michael Esq NEW71Anna Fali
1046Claire N ChuiArgentina2025-04-29Commercial Press RENEWAL66Bernardo Dominic
1047Greenwood W BriddickUnited Kingdom2025-04-02Rangoni Of Florence QUALIFIED41Bernardo Dominic
1048Juan S ChuiAustralia2025-04-14Rousseaux, Michael Esq QUALIFIED18Anna Fali
1049Aditya U DarakjyGermany2025-04-13Chemel, James L Cpa RENEWAL91Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Silvio S MorascaBrazilAmy Elsner NEGOTIATION
Rodrigues F PerinArgentinaBernardo Dominic QUALIFIED
Adams L NickaAustraliaOnyama Limba PROPOSAL
Aruna D SaylorsUnited KingdomAsiya Javayant UNQUALIFIED
Morrow I GillianCanadaOnyama Limba UNQUALIFIED
Francesco V StensethJapanAsiya Javayant NEGOTIATION
Isabel V GillianRussiaAmy Elsner NEGOTIATION
Emily L SchemmerAustraliaAnna Fali QUALIFIED
James S StensethRussiaBernardo Dominic UNQUALIFIED
Tony L KuskoJapanOnyama Limba UNQUALIFIED
Smith J NestleJapanAsiya Javayant QUALIFIED
Aruna B MacleadBrazilIvan Magalhaes QUALIFIED
Leon X RoysterBrazilBernardo Dominic UNQUALIFIED
Arvin B OstroskyGermanyIvan Magalhaes RENEWAL
Kaitlin S BologniaFranceIoni Bowcher RENEWAL
Isabel T VocelkaRussiaIvan Magalhaes QUALIFIED
Antonio B SchemmerUnited KingdomAsiya Javayant PROPOSAL
Deepesh M BowleyUnited KingdomElwin Sharvill UNQUALIFIED
Izzy G DoeArgentinaXuxue Feng RENEWAL
Jefferson Z AmigonIndiaIvan Magalhaes UNQUALIFIED
Wickens P GlickCanadaStephen Shaw NEGOTIATION
Salvatore Z SergiUnited KingdomIoni Bowcher NEW
Silvio D GillianIndiaXuxue Feng NEGOTIATION
Tony N MacleadArgentinaElwin Sharvill UNQUALIFIED
Leon E SchemmerGermanyIvan Magalhaes RENEWAL
Julie W GarufiSpainOnyama Limba PROPOSAL
Munro A GarufiItalyAnna Fali RENEWAL
Juan G GauchoAustraliaAmy Elsner UNQUALIFIED
James T KuskoArgentinaOnyama Limba UNQUALIFIED
Jones Q CampainSpainXuxue Feng NEGOTIATION
Jones O DarakjyAustraliaXuxue Feng RENEWAL
Kaitlin Z MorascaAustraliaAsiya Javayant NEGOTIATION
Stacey R CampainSpainBernardo Dominic QUALIFIED
Murillo V StensethIndiaElwin Sharvill NEGOTIATION
Ricardo G MacleadFranceElwin Sharvill NEGOTIATION
Jefferson R DilliardCanadaIvan Magalhaes UNQUALIFIED
Leon N BologniaCanadaElwin Sharvill NEW
Silvio L CaudyJapanIoni Bowcher QUALIFIED
Costa O KolmetzArgentinaIvan Magalhaes PROPOSAL
Murillo C WaycottFranceAnna Fali UNQUALIFIED
Maria N SergiGermanyBernardo Dominic NEW
Darci S RutaFranceAmy Elsner UNQUALIFIED
Francesco Y WieserItalyStephen Shaw QUALIFIED
Misaki O ButtAustraliaAsiya Javayant RENEWAL
Kaitlin Z DoeArgentinaBernardo Dominic UNQUALIFIED
Jeanfrancois S SchemmerSpainAnna Fali QUALIFIED
Salvatore R DoeBrazilStephen Shaw RENEWAL
Kadeem V WaycottAustraliaOnyama Limba QUALIFIED
Smith T DilliardSpainXuxue Feng RENEWAL
Greenwood T FigeroaUnited KingdomXuxue Feng RENEWAL
Frozen Columns
Name
Octavia F Marrier
Ivar H Malet
Izzy H Albares
Jefferson G Morasca
Jeanfrancois T Ostrosky
Claire A Foller
Emily K Albares
Murillo C Slusarski
Isabel U Stenseth
Mujtaba A Gaucho
Francesco L Ostrosky
Julie A Stockham
Stacey R Malet
Leja L Wieser
Clifford N Gillian
Maisha C Dilliard
Maria D Venere
Maria P Shinko
Claire I Rulapaugh
Darci S Morasca
Mayumi D Amigon
Clifford W Maclead
Silvio M Wieser
Maisha A Bolognia
Clifford W Briddick
Emily G Butt
Jefferson P Caudy
Aika S Tollner
Julie M Foller
Nicolas R Ostrosky
Aruna T Whobrey
Murillo F Kusko
Mayumi Y Kolmetz
Julie K Nicka
Kadeem H Malet
Francesco R Malet
Johnson N Dilliard
Emily A Iturbide
Julie X Foller
Clifford G Gillian
Maria C Stenseth
Munro U Glick
Greenwood F Dilliard
Darci X Inouye
Emily O Stenseth
Sinclair M Dilliard
Emily V Stenseth
Kaitlin W Darakjy
Murillo D Bolognia
Misaki V Iturbide
IdCountryDate
1000Australia2025-04-04
1001Germany2025-04-07
1002Germany2025-04-01
1003Australia2025-04-05
1004Spain2025-04-13
1005India2025-04-10
1006Argentina2025-04-28
1007Germany2025-04-23
1008Brazil2025-04-18
1009Japan2025-04-11
1010Australia2025-04-18
1011Brazil2025-04-03
1012Australia2025-04-19
1013Canada2025-04-23
1014Canada2025-04-28
1015Italy2025-04-07
1016Japan2025-04-28
1017India2025-04-13
1018United Kingdom2025-04-21
1019Germany2025-04-16
1020Spain2025-04-07
1021Germany2025-04-02
1022Brazil2025-04-28
1023Australia2025-04-01
1024Spain2025-04-29
1025India2025-04-17
1026Germany2025-04-28
1027Japan2025-04-05
1028Japan2025-04-02
1029Canada2025-04-06
1030Japan2025-04-09
1031Canada2025-04-17
1032Russia2025-04-29
1033Japan2025-04-03
1034Australia2025-04-11
1035United Kingdom2025-04-29
1036United Kingdom2025-04-25
1037Italy2025-04-14
1038France2025-04-21
1039Argentina2025-04-26
1040United Kingdom2025-04-13
1041United Kingdom2025-04-26
1042Germany2025-04-02
1043Spain2025-04-30
1044Spain2025-04-07
1045Spain2025-04-22
1046India2025-04-18
1047Japan2025-04-17
1048Argentina2025-04-13
1049Germany2025-04-02

On-Demand Data

NameIdCountryDate
Ricardo M Glick1000United Kingdom2025-04-25
Clifford G Caldarera1001Argentina2025-04-03
Octavia Y Venere1002Spain2025-04-20
Johnson H Inouye1003Italy2025-04-27
Julie E Tollner1004France2025-04-14
Ashley I Royster1005Canada2025-04-24
Murillo I Royster1006United Kingdom2025-04-22
Leon H Waycott1007Russia2025-04-10
Leja M Bowley1008Italy2025-04-05
Jefferson V Schemmer1009India2025-04-23
Darci V Oldroyd1010Japan2025-04-25
Mayumi M Briddick1011Spain2025-04-13
Jennifer X Stenseth1012Spain2025-04-25
Octavia O Sergi1013Argentina2025-04-28
Johnson U Wieser1014United Kingdom2025-04-27
Morrow I Slusarski1015Australia2025-04-17
Jefferson E Darakjy1016Russia2025-04-04
Francesco P Paprocki1017Russia2025-04-16
Ashley H Poquette1018Brazil2025-04-11
Nicolas K Stockham1019Germany2025-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily D GauchoItalyIvan Magalhaes RENEWAL
Emily R GillianBrazilAnna Fali UNQUALIFIED
Mayumi O InouyeUnited KingdomBernardo Dominic PROPOSAL
Faith W DilliardJapanElwin Sharvill PROPOSAL
Silvio U VocelkaGermanyXuxue Feng UNQUALIFIED
Munro J MaletGermanyAnna Fali NEGOTIATION
Salvatore J SergiAustraliaBernardo Dominic NEGOTIATION
Wickens B FigeroaItalyStephen Shaw NEGOTIATION
Mayumi Q InouyeItalyXuxue Feng NEW
Juan L RutaIndiaAnna Fali QUALIFIED
Faith D RimFranceOnyama Limba NEW
Arvin L GillianIndiaElwin Sharvill RENEWAL
Stacey G FlosiSpainIvan Magalhaes PROPOSAL
Emily Q TollnerBrazilAsiya Javayant RENEWAL
Faith L PoquetteSpainStephen Shaw QUALIFIED
Misaki Y NestleAustraliaElwin Sharvill UNQUALIFIED
Stacey D InouyeArgentinaElwin Sharvill RENEWAL
Francesco A VenereItalyXuxue Feng PROPOSAL
Rodrigues D SlusarskiRussiaAmy Elsner UNQUALIFIED
Stacey S MarrierBrazilIoni Bowcher PROPOSAL
Chavez X GauchoSpainXuxue Feng RENEWAL
Sinclair A MorascaGermanyStephen Shaw RENEWAL
Alejandro I ChuiUnited KingdomElwin Sharvill RENEWAL
Wickens V OldroydCanadaBernardo Dominic QUALIFIED
Francesco G RoysterCanadaIvan Magalhaes NEGOTIATION
Darci V RimFranceAmy Elsner NEW
Salvatore V VocelkaIndiaBernardo Dominic UNQUALIFIED
Arvin V PerinCanadaIoni Bowcher RENEWAL
Greenwood M VocelkaAustraliaAsiya Javayant QUALIFIED
Leja B KolmetzBrazilAmy Elsner UNQUALIFIED
Jefferson M VenereFranceIoni Bowcher RENEWAL
Costa Z GlickSpainAmy Elsner QUALIFIED
Sinclair P DoeJapanIvan Magalhaes NEGOTIATION
Sinclair O GillianRussiaAmy Elsner UNQUALIFIED
Faith O WhobreyJapanAsiya Javayant RENEWAL
Jones C FollerFranceAmy Elsner RENEWAL
Faith V FlosiRussiaElwin Sharvill QUALIFIED
Silvio R StensethGermanyAsiya Javayant PROPOSAL
Francesco Z FigeroaRussiaOnyama Limba NEW
Morrow R DilliardBrazilAnna Fali 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>