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
Jefferson R FlosiFranceAmy Elsner UNQUALIFIED
Clifford H IturbideItalyAnna Fali NEGOTIATION
Nicolas Y InouyeBrazilAmy Elsner UNQUALIFIED
Aika R WaycottRussiaIoni Bowcher UNQUALIFIED
Izzy M VenereArgentinaAnna Fali UNQUALIFIED
Jones X SaylorsCanadaStephen Shaw NEGOTIATION
Ricardo X WieserIndiaOnyama Limba RENEWAL
Juan C CaldareraIndiaBernardo Dominic NEGOTIATION
Rodrigues J ShinkoItalyIoni Bowcher UNQUALIFIED
Izzy G CampainCanadaAnna Fali QUALIFIED
Ashley C WhobreyArgentinaAsiya Javayant UNQUALIFIED
Clifford Q FigeroaSpainOnyama Limba NEGOTIATION
Mayumi N FigeroaJapanXuxue Feng NEGOTIATION
Faith W VocelkaSpainElwin Sharvill NEW
Munro F StockhamRussiaXuxue Feng UNQUALIFIED
Cody I RulapaughArgentinaAmy Elsner NEGOTIATION
Arvin G RutaItalyElwin Sharvill NEW
Chavez I SchemmerAustraliaAnna Fali UNQUALIFIED
Costa U NickaFranceOnyama Limba RENEWAL
Jones M KuskoCanadaBernardo Dominic PROPOSAL
Jones Y AlbaresFranceXuxue Feng NEGOTIATION
Tony G WieserItalyXuxue Feng NEW
Aika W AmigonFranceAmy Elsner QUALIFIED
Kadeem T WhobreyAustraliaIoni Bowcher PROPOSAL
Emily W PerinArgentinaAsiya Javayant QUALIFIED
Isabel E AlbaresSpainElwin Sharvill NEW
Clifford W RimBrazilStephen Shaw NEW
Alejandro A CampainCanadaIvan Magalhaes QUALIFIED
Deepesh Y TollnerArgentinaAmy Elsner UNQUALIFIED
Emily J OstroskyArgentinaIoni Bowcher NEGOTIATION
Faith I GarufiFranceStephen Shaw NEW
Leon L VenereRussiaAsiya Javayant QUALIFIED
Octavia Z BologniaBrazilStephen Shaw QUALIFIED
Wickens G MacleadAustraliaElwin Sharvill UNQUALIFIED
Stacey N KolmetzGermanyBernardo Dominic NEW
James D GarufiItalyAnna Fali NEGOTIATION
Jeanfrancois K KuskoIndiaElwin Sharvill PROPOSAL
Julie P MaletArgentinaStephen Shaw QUALIFIED
Cody H WieserArgentinaStephen Shaw NEGOTIATION
Jefferson M FlosiIndiaAmy Elsner NEGOTIATION
Aruna D StockhamArgentinaOnyama Limba NEW
Izzy W MacleadIndiaXuxue Feng PROPOSAL
Darci Q DilliardSpainElwin Sharvill NEW
James A WaycottIndiaXuxue Feng UNQUALIFIED
Jennifer Y IturbideUnited KingdomStephen Shaw NEGOTIATION
Morrow Y GauchoUnited KingdomStephen Shaw UNQUALIFIED
Aruna D RoysterItalyXuxue Feng RENEWAL
Murillo L MacleadIndiaXuxue Feng NEGOTIATION
Julie A PerinJapanAmy Elsner RENEWAL
Adams G VenereGermanyOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa H VocelkaRussiaAsiya Javayant RENEWAL
Mujtaba Z SergiAustraliaAsiya Javayant UNQUALIFIED
Silvio M IturbideAustraliaOnyama Limba NEGOTIATION
Murillo E GarufiSpainAnna Fali RENEWAL
Izzy S GillianGermanyOnyama Limba QUALIFIED
Jeanfrancois S KolmetzAustraliaStephen Shaw RENEWAL
Arvin M SlusarskiUnited KingdomAmy Elsner RENEWAL
Mujtaba D PoquetteRussiaIoni Bowcher PROPOSAL
Mayumi L MarrierBrazilAsiya Javayant PROPOSAL
Emily J OstroskyArgentinaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy A RimCanada2026-06-22Rousseaux, Michael Esq QUALIFIED47Asiya Javayant
1001Leja K CampainAustralia2026-06-28Chapman, Ross E Esq QUALIFIED64Ivan Magalhaes
1002Misaki S WaycottFrance2026-07-17Feltz Printing Service NEGOTIATION98Amy Elsner
1003Nicolas X SchemmerBrazil2026-06-19Benton, John B Jr NEW23Elwin Sharvill
1004Francesco Z BowleyGermany2026-06-20King, Christopher A Esq RENEWAL46Ivan Magalhaes
1005Aruna V GauchoCanada2026-07-10Dorl, James J Esq NEW99Asiya Javayant
1006Deepesh G MarrierFrance2026-06-25Chemel, James L Cpa PROPOSAL30Anna Fali
1007Ivar I FerenczUnited Kingdom2026-06-29Morlong Associates RENEWAL20Stephen Shaw
1008Leja M MaletSpain2026-06-28Printing Dimensions NEGOTIATION86Ivan Magalhaes
1009Wickens S DoeBrazil2026-06-19Dorl, James J Esq NEGOTIATION81Ioni Bowcher
1010Ivar D MorascaFrance2026-06-29Chapman, Ross E Esq NEGOTIATION98Anna Fali
1011Munro E ShinkoFrance2026-06-24King, Christopher A Esq PROPOSAL56Ioni Bowcher
1012Nicolas X FerenczIndia2026-07-17Commercial Press NEGOTIATION73Anna Fali
1013Maria J WaycottFrance2026-06-26Rousseaux, Michael Esq QUALIFIED81Bernardo Dominic
1014Stacey E FollerFrance2026-07-03Benton, John B Jr UNQUALIFIED50Elwin Sharvill
1015Deepesh F VenereBrazil2026-06-27Rangoni Of Florence UNQUALIFIED91Stephen Shaw
1016Faith W NestleIndia2026-07-06Benton, John B Jr PROPOSAL67Anna Fali
1017Claire B OldroydRussia2026-07-08Rousseaux, Michael Esq NEW71Amy Elsner
1018Ricardo S FlosiRussia2026-06-23Morlong Associates RENEWAL48Ioni Bowcher
1019Francesco D SlusarskiArgentina2026-07-13Morlong Associates NEW70Xuxue Feng
1020Ashley C FlosiGermany2026-07-10Feltz Printing Service PROPOSAL96Ioni Bowcher
1021Faith A GillianItaly2026-07-02Morlong Associates RENEWAL35Elwin Sharvill
1022Sinclair P RulapaughUnited Kingdom2026-07-01Feiner Bros UNQUALIFIED5Elwin Sharvill
1023Mujtaba C SergiGermany2026-07-13Rousseaux, Michael Esq NEW72Ivan Magalhaes
1024James S ChuiAustralia2026-06-20King, Christopher A Esq QUALIFIED99Ivan Magalhaes
1025Ricardo F MacleadArgentina2026-07-13Chanay, Jeffrey A Esq UNQUALIFIED85Anna Fali
1026Clifford L SaylorsGermany2026-07-17Rangoni Of Florence UNQUALIFIED58Amy Elsner
1027Ashley N BriddickAustralia2026-07-13Morlong Associates RENEWAL54Asiya Javayant
1028Julie A StockhamCanada2026-07-14Chemel, James L Cpa NEGOTIATION82Ioni Bowcher
1029David O KuskoUnited Kingdom2026-07-08King, Christopher A Esq QUALIFIED64Bernardo Dominic
1030Isabel D BriddickGermany2026-06-26Buckley Miller Wright PROPOSAL19Stephen Shaw
1031Aruna I ButtAustralia2026-06-26Feltz Printing Service RENEWAL14Elwin Sharvill
1032Francesco U GlickUnited Kingdom2026-07-12Morlong Associates QUALIFIED15Onyama Limba
1033Aditya J MorascaBrazil2026-07-11Rangoni Of Florence PROPOSAL28Stephen Shaw
1034Juan G PaprockiJapan2026-06-21Dorl, James J Esq UNQUALIFIED20Anna Fali
1035Emily Y MarrierItaly2026-06-20Truhlar And Truhlar Attys RENEWAL93Asiya Javayant
1036Juan X WieserCanada2026-07-06Printing Dimensions UNQUALIFIED57Onyama Limba
1037Ivar F ButtJapan2026-07-08King, Christopher A Esq PROPOSAL97Amy Elsner
1038Nicolas L MarrierAustralia2026-07-16Chanay, Jeffrey A Esq RENEWAL6Elwin Sharvill
1039Greenwood B TollnerUnited Kingdom2026-06-30Feiner Bros NEW92Ioni Bowcher
1040Smith X InouyeItaly2026-06-25Rangoni Of Florence RENEWAL80Asiya Javayant
1041Jones F GarufiIndia2026-07-05Truhlar And Truhlar Attys PROPOSAL15Asiya Javayant
1042Aruna J MacleadItaly2026-07-16Feltz Printing Service PROPOSAL25Amy Elsner
1043Adams Y DoeJapan2026-06-28Truhlar And Truhlar Attys UNQUALIFIED96Amy Elsner
1044Aika K CampainIndia2026-06-25Feiner Bros UNQUALIFIED92Bernardo Dominic
1045Kaitlin V RulapaughCanada2026-06-21Printing Dimensions UNQUALIFIED1Stephen Shaw
1046Isabel F StockhamBrazil2026-06-27Feiner Bros NEW34Xuxue Feng
1047Greenwood L RoysterJapan2026-06-23Truhlar And Truhlar Attys PROPOSAL35Stephen Shaw
1048Ivar W FerenczJapan2026-07-03Chanay, Jeffrey A Esq QUALIFIED69Amy Elsner
1049Misaki M BologniaAustralia2026-07-11Buckley Miller Wright NEW53Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Arvin M AmigonArgentinaAnna Fali PROPOSAL
Isabel G NestleJapanElwin Sharvill PROPOSAL
Alejandro K WieserItalyXuxue Feng NEGOTIATION
Jones I StensethFranceAsiya Javayant PROPOSAL
Deepesh Q MaletBrazilAnna Fali PROPOSAL
Munro X AlbaresItalyXuxue Feng UNQUALIFIED
Misaki B WaycottBrazilIvan Magalhaes NEW
Deepesh Y OldroydFranceAmy Elsner PROPOSAL
Antonio W GillianJapanOnyama Limba NEW
Adams Y RulapaughFranceAmy Elsner NEW
Jennifer T BologniaJapanAsiya Javayant QUALIFIED
Jefferson M MarrierJapanAnna Fali RENEWAL
Jones Y InouyeIndiaAmy Elsner QUALIFIED
Ricardo H ShinkoSpainIvan Magalhaes QUALIFIED
Leon F OstroskyCanadaStephen Shaw UNQUALIFIED
Chavez X AlbaresIndiaAsiya Javayant PROPOSAL
Tony V MarrierCanadaOnyama Limba UNQUALIFIED
Wickens Z MaletBrazilAnna Fali RENEWAL
James S MacleadRussiaIvan Magalhaes NEW
Ivar F BowleyRussiaOnyama Limba NEW
Aditya B BriddickItalyOnyama Limba QUALIFIED
Mayumi A SlusarskiSpainAsiya Javayant RENEWAL
Arvin G NestleRussiaAsiya Javayant NEGOTIATION
Misaki B PoquetteUnited KingdomAsiya Javayant QUALIFIED
Cody G PaprockiFranceAnna Fali PROPOSAL
Stacey O InouyeAustraliaAmy Elsner PROPOSAL
Tony C RulapaughGermanyElwin Sharvill QUALIFIED
Ashley P CaudyUnited KingdomIvan Magalhaes NEGOTIATION
Kadeem O CaldareraSpainElwin Sharvill UNQUALIFIED
Johnson G IturbideBrazilAsiya Javayant QUALIFIED
Isabel C ChuiFranceStephen Shaw NEW
Emily C FollerSpainStephen Shaw NEGOTIATION
Jones U GillianFranceAnna Fali QUALIFIED
Kadeem P BriddickFranceOnyama Limba NEGOTIATION
Rodrigues L IturbideJapanIoni Bowcher NEGOTIATION
Maria X FlosiBrazilAsiya Javayant QUALIFIED
Greenwood L InouyeArgentinaOnyama Limba QUALIFIED
Cody Q BowleyBrazilAsiya Javayant UNQUALIFIED
Ricardo K DilliardSpainStephen Shaw RENEWAL
Isabel G KuskoItalyOnyama Limba RENEWAL
Nicolas G ShinkoArgentinaOnyama Limba NEW
Kadeem A MaletJapanAmy Elsner RENEWAL
Costa W PerinItalyXuxue Feng NEW
Aditya W VenereBrazilBernardo Dominic UNQUALIFIED
Leja H SchemmerCanadaXuxue Feng RENEWAL
Ashley L NickaIndiaElwin Sharvill RENEWAL
Aditya X TollnerSpainElwin Sharvill NEW
Maisha W SlusarskiAustraliaXuxue Feng RENEWAL
Greenwood H NestleGermanyXuxue Feng QUALIFIED
Jeanfrancois O VocelkaRussiaBernardo Dominic PROPOSAL
Frozen Columns
Name
Wickens L Bolognia
Murillo R Royster
Kadeem M Tollner
Jeanfrancois F Vocelka
Darci D Kusko
Cody Z Ferencz
Smith O Slusarski
Salvatore C Campain
Julie P Schemmer
Leon Y Kusko
Maria V Albares
Smith G Darakjy
Ivar U Kolmetz
Emily V Tollner
Jennifer W Kolmetz
Clifford G Figeroa
Faith R Perin
David Q Gillian
Maria X Kolmetz
Mujtaba B Campain
Aika W Perin
Misaki H Caldarera
Greenwood J Royster
Jones V Caldarera
Izzy M Foller
Julie N Saylors
Darci V Stenseth
Jefferson Q Briddick
Ashley K Nicka
Maria S Waycott
Morrow S Inouye
Kaitlin V Vocelka
Ashley T Stockham
Smith C Nicka
Greenwood L Waycott
Aika U Gillian
Maisha T Slusarski
Ivar Z Flosi
Deepesh J Sergi
Rodrigues U Foller
Mujtaba G Poquette
Maisha F Kusko
Leja B Saylors
Munro E Paprocki
David D Paprocki
David V Morasca
Faith R Caldarera
Francesco X Albares
Deepesh E Caudy
Octavia J Doe
IdCountryDate
1000Japan2026-07-11
1001Canada2026-07-13
1002Argentina2026-06-26
1003Russia2026-07-12
1004Japan2026-06-27
1005Italy2026-07-17
1006Japan2026-06-24
1007Brazil2026-06-27
1008Italy2026-06-27
1009Germany2026-07-05
1010Russia2026-06-27
1011India2026-07-18
1012India2026-07-12
1013Canada2026-07-03
1014Spain2026-06-25
1015Germany2026-07-17
1016Japan2026-06-26
1017Russia2026-07-10
1018Canada2026-06-26
1019Japan2026-06-19
1020Argentina2026-06-21
1021Germany2026-07-01
1022Argentina2026-06-22
1023France2026-06-27
1024Spain2026-06-19
1025Russia2026-07-04
1026Italy2026-06-25
1027France2026-07-09
1028Brazil2026-06-22
1029Australia2026-07-06
1030Spain2026-06-29
1031Argentina2026-06-25
1032France2026-06-20
1033Italy2026-06-21
1034Germany2026-07-08
1035Canada2026-07-05
1036France2026-07-04
1037India2026-06-29
1038Argentina2026-07-12
1039Spain2026-06-29
1040Italy2026-06-23
1041Germany2026-06-25
1042Germany2026-07-03
1043Germany2026-07-04
1044Italy2026-06-28
1045Argentina2026-07-16
1046Brazil2026-06-22
1047Japan2026-06-30
1048Italy2026-06-24
1049Argentina2026-07-05

On-Demand Data

NameIdCountryDate
Kaitlin O Stenseth1000Italy2026-07-01
Rodrigues M Butt1001Italy2026-07-14
Salvatore X Albares1002Brazil2026-06-24
Alejandro X Wieser1003Brazil2026-07-15
Mayumi D Garufi1004Spain2026-07-09
Ashley C Marrier1005Canada2026-06-30
Mayumi N Butt1006Australia2026-07-10
Mujtaba N Albares1007United Kingdom2026-06-28
Juan N Stockham1008United Kingdom2026-07-10
Claire B Foller1009Germany2026-07-14
Nicolas T Doe1010Canada2026-07-02
Jefferson C Inouye1011Germany2026-06-19
Maisha V Garufi1012Canada2026-07-07
Isabel S Amigon1013Japan2026-07-05
Emily F Nicka1014Canada2026-06-23
Ricardo V Campain1015Spain2026-06-22
Salvatore Q Rulapaugh1016Australia2026-07-09
Deepesh L Chui1017Australia2026-07-04
Emily O Saylors1018Italy2026-06-24
Deepesh L Inouye1019India2026-07-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford P WhobreySpainAsiya Javayant UNQUALIFIED
Octavia N SaylorsIndiaBernardo Dominic NEGOTIATION
Chavez B WhobreyRussiaStephen Shaw NEGOTIATION
Ricardo K VocelkaArgentinaXuxue Feng QUALIFIED
Izzy Q ChuiArgentinaIvan Magalhaes QUALIFIED
Aruna R RimArgentinaIoni Bowcher UNQUALIFIED
Smith U KuskoUnited KingdomIvan Magalhaes RENEWAL
Jennifer S StensethItalyAsiya Javayant NEW
Clifford R ChuiGermanyOnyama Limba RENEWAL
Misaki B RutaRussiaStephen Shaw NEW
Rodrigues C FigeroaAustraliaAmy Elsner NEW
Leon S ChuiItalyIvan Magalhaes PROPOSAL
Emily E MacleadUnited KingdomAsiya Javayant PROPOSAL
Darci K MorascaRussiaIoni Bowcher PROPOSAL
Aditya G FlosiJapanStephen Shaw RENEWAL
David B GillianItalyAsiya Javayant UNQUALIFIED
Clifford N MorascaUnited KingdomIoni Bowcher NEGOTIATION
Kadeem P AlbaresRussiaXuxue Feng NEW
Wickens W FigeroaArgentinaAsiya Javayant NEGOTIATION
Octavia P GarufiFranceAnna Fali UNQUALIFIED
Jones W RoysterIndiaStephen Shaw NEW
Morrow O RutaJapanIoni Bowcher UNQUALIFIED
Aditya O StensethJapanIoni Bowcher NEW
Smith U BowleyUnited KingdomOnyama Limba QUALIFIED
Kaitlin Z VocelkaUnited KingdomOnyama Limba NEW
Ricardo K VenereJapanIoni Bowcher UNQUALIFIED
Aika W OldroydCanadaBernardo Dominic RENEWAL
Cody D ShinkoArgentinaOnyama Limba UNQUALIFIED
Ricardo Z CaldareraSpainAmy Elsner NEW
Deepesh Z MaletItalyAmy Elsner NEW
Emily K MaletBrazilStephen Shaw UNQUALIFIED
Octavia H RutaSpainAnna Fali NEW
James U NickaItalyAsiya Javayant UNQUALIFIED
Aditya T CaldareraUnited KingdomAsiya Javayant NEW
Sinclair R VenereBrazilAsiya Javayant NEGOTIATION
Mujtaba Q ButtFranceIvan Magalhaes PROPOSAL
Silvio G FlosiItalyAsiya Javayant PROPOSAL
Francesco U WaycottRussiaElwin Sharvill PROPOSAL
Nicolas H RoysterFranceIvan Magalhaes NEGOTIATION
Tony D OldroydArgentinaAmy Elsner PROPOSAL

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