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
Aruna M KolmetzRussiaAnna Fali PROPOSAL
Alejandro D BriddickSpainAsiya Javayant UNQUALIFIED
Julie I GlickSpainIvan Magalhaes NEGOTIATION
Maria B KuskoSpainOnyama Limba QUALIFIED
Munro X ChuiItalyXuxue Feng QUALIFIED
Nicolas O DarakjyFranceIvan Magalhaes UNQUALIFIED
Izzy J OstroskyItalyIoni Bowcher NEGOTIATION
Misaki C CaudyCanadaIvan Magalhaes UNQUALIFIED
Mujtaba K OstroskyFranceStephen Shaw QUALIFIED
Salvatore P AmigonIndiaAmy Elsner UNQUALIFIED
Murillo K RulapaughUnited KingdomXuxue Feng NEGOTIATION
Izzy G GlickIndiaXuxue Feng RENEWAL
Greenwood N ShinkoGermanyBernardo Dominic QUALIFIED
Arvin D BologniaGermanyIoni Bowcher UNQUALIFIED
Rodrigues P NickaCanadaOnyama Limba RENEWAL
Adams F MacleadBrazilIvan Magalhaes UNQUALIFIED
Octavia F NickaArgentinaOnyama Limba PROPOSAL
Jefferson C OstroskyCanadaXuxue Feng UNQUALIFIED
Octavia N NickaItalyAnna Fali UNQUALIFIED
Francesco E WhobreyCanadaIoni Bowcher NEGOTIATION
Jones Y ChuiItalyStephen Shaw NEW
Silvio V FlosiJapanIoni Bowcher QUALIFIED
Izzy Z StensethIndiaXuxue Feng UNQUALIFIED
James V InouyeBrazilIoni Bowcher NEGOTIATION
Alejandro E SlusarskiBrazilOnyama Limba RENEWAL
Jennifer P ShinkoAustraliaElwin Sharvill NEGOTIATION
Cody K WaycottCanadaAmy Elsner RENEWAL
Kaitlin G DilliardGermanyAsiya Javayant NEW
Antonio K WhobreySpainOnyama Limba RENEWAL
Alejandro X CampainFranceIvan Magalhaes RENEWAL
Stacey U StensethItalyOnyama Limba NEW
Jennifer L VocelkaArgentinaIvan Magalhaes RENEWAL
Costa H VocelkaGermanyIvan Magalhaes NEW
Rodrigues F WieserJapanIvan Magalhaes NEGOTIATION
Aruna S WieserAustraliaIoni Bowcher UNQUALIFIED
Jeanfrancois A GarufiArgentinaIoni Bowcher UNQUALIFIED
Stacey Y FollerGermanyAsiya Javayant UNQUALIFIED
Clifford P SaylorsItalyIoni Bowcher NEW
Isabel Y NestleRussiaOnyama Limba PROPOSAL
Aditya M RulapaughUnited KingdomElwin Sharvill NEW
Francesco X OstroskyUnited KingdomOnyama Limba RENEWAL
Stacey S CaudyItalyElwin Sharvill UNQUALIFIED
Francesco Y OldroydRussiaAsiya Javayant QUALIFIED
Tony B BologniaIndiaAnna Fali RENEWAL
Morrow B KuskoRussiaAmy Elsner NEW
Smith A MaletFranceElwin Sharvill RENEWAL
Mujtaba N VenereFranceStephen Shaw NEW
Stacey A DarakjyFranceElwin Sharvill RENEWAL
Mayumi X GillianAustraliaXuxue Feng QUALIFIED
James W NickaJapanIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jefferson T TollnerSpainElwin Sharvill UNQUALIFIED
Misaki X GarufiCanadaAsiya Javayant QUALIFIED
Faith D CampainJapanElwin Sharvill PROPOSAL
Salvatore V ShinkoItalyIvan Magalhaes PROPOSAL
Mayumi Z GillianFranceIvan Magalhaes RENEWAL
Rodrigues H BowleyAustraliaIoni Bowcher PROPOSAL
Leja I MaletIndiaStephen Shaw NEW
Ashley Z GlickArgentinaIvan Magalhaes PROPOSAL
Jennifer N BriddickCanadaOnyama Limba PROPOSAL
Faith L FerenczArgentinaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo E CampainBrazil2026-07-09Chanay, Jeffrey A Esq UNQUALIFIED83Bernardo Dominic
1001James F StockhamBrazil2026-07-10King, Christopher A Esq PROPOSAL32Ioni Bowcher
1002James I WieserGermany2026-08-01Feltz Printing Service PROPOSAL13Elwin Sharvill
1003Jennifer C KolmetzUnited Kingdom2026-07-24Chemel, James L Cpa QUALIFIED40Anna Fali
1004Octavia K TollnerBrazil2026-07-28Printing Dimensions RENEWAL25Asiya Javayant
1005Misaki G DoeUnited Kingdom2026-07-09Feltz Printing Service PROPOSAL88Elwin Sharvill
1006Darci M SlusarskiArgentina2026-07-15Commercial Press QUALIFIED6Ivan Magalhaes
1007Costa C DarakjyFrance2026-07-19King, Christopher A Esq RENEWAL7Amy Elsner
1008Octavia U VenereFrance2026-07-22Benton, John B Jr NEGOTIATION88Bernardo Dominic
1009Greenwood I StensethItaly2026-07-08Morlong Associates PROPOSAL37Elwin Sharvill
1010David A TollnerBrazil2026-08-03Rousseaux, Michael Esq PROPOSAL24Bernardo Dominic
1011Adams N MacleadSpain2026-07-26Commercial Press NEW38Ivan Magalhaes
1012James S MorascaBrazil2026-07-08Printing Dimensions UNQUALIFIED54Elwin Sharvill
1013Juan O GlickFrance2026-07-08Dorl, James J Esq RENEWAL89Ivan Magalhaes
1014Darci K GlickRussia2026-08-05Chemel, James L Cpa NEGOTIATION34Onyama Limba
1015Sinclair M RulapaughCanada2026-07-15Rangoni Of Florence NEGOTIATION9Xuxue Feng
1016Izzy I DoeSpain2026-07-12Buckley Miller Wright QUALIFIED67Elwin Sharvill
1017Francesco H RutaRussia2026-07-26Feltz Printing Service NEGOTIATION2Anna Fali
1018Leon S GlickFrance2026-08-01Dorl, James J Esq RENEWAL19Anna Fali
1019Stacey D RoysterUnited Kingdom2026-07-23Rangoni Of Florence NEGOTIATION93Stephen Shaw
1020Maria H AlbaresGermany2026-07-16Chanay, Jeffrey A Esq UNQUALIFIED61Anna Fali
1021Clifford F DoeArgentina2026-07-29Morlong Associates NEGOTIATION38Ioni Bowcher
1022Darci H BowleyJapan2026-07-15Feiner Bros UNQUALIFIED42Anna Fali
1023Jeanfrancois O CaudyCanada2026-07-12Rousseaux, Michael Esq RENEWAL47Elwin Sharvill
1024Adams B AlbaresIndia2026-07-11Commercial Press NEGOTIATION11Xuxue Feng
1025Adams T MacleadBrazil2026-08-05Morlong Associates RENEWAL40Ivan Magalhaes
1026Francesco J MarrierJapan2026-07-21Printing Dimensions UNQUALIFIED62Elwin Sharvill
1027Aditya K NickaItaly2026-07-24Benton, John B Jr UNQUALIFIED99Onyama Limba
1028Arvin W ChuiIndia2026-07-22Chanay, Jeffrey A Esq PROPOSAL45Elwin Sharvill
1029Stacey W ShinkoBrazil2026-07-29Chapman, Ross E Esq NEGOTIATION54Ivan Magalhaes
1030Greenwood E PoquetteCanada2026-08-04King, Christopher A Esq PROPOSAL37Anna Fali
1031Morrow U PaprockiCanada2026-07-13Printing Dimensions RENEWAL26Anna Fali
1032Isabel P BowleyBrazil2026-07-24Rangoni Of Florence RENEWAL46Ioni Bowcher
1033Greenwood W RutaSpain2026-07-09Chapman, Ross E Esq NEW98Anna Fali
1034David V TollnerJapan2026-08-02Truhlar And Truhlar Attys NEGOTIATION7Elwin Sharvill
1035Arvin K MarrierJapan2026-08-06Chanay, Jeffrey A Esq UNQUALIFIED9Amy Elsner
1036Aruna O TollnerUnited Kingdom2026-07-25Benton, John B Jr RENEWAL59Ioni Bowcher
1037Claire G NickaSpain2026-07-26Printing Dimensions PROPOSAL32Elwin Sharvill
1038Maisha D WieserCanada2026-08-04Rangoni Of Florence PROPOSAL77Bernardo Dominic
1039Darci J MacleadIndia2026-07-30Chapman, Ross E Esq UNQUALIFIED62Anna Fali
1040Smith W FigeroaIndia2026-07-14Chapman, Ross E Esq NEGOTIATION52Xuxue Feng
1041Johnson I FigeroaFrance2026-07-11Feiner Bros PROPOSAL7Bernardo Dominic
1042Greenwood F GauchoCanada2026-07-28Buckley Miller Wright NEGOTIATION82Anna Fali
1043Smith B MacleadGermany2026-08-01King, Christopher A Esq RENEWAL31Anna Fali
1044Ivar P ShinkoGermany2026-07-19Chemel, James L Cpa NEW92Amy Elsner
1045James M RoysterUnited Kingdom2026-07-27Benton, John B Jr RENEWAL60Bernardo Dominic
1046Isabel R DilliardArgentina2026-07-12King, Christopher A Esq RENEWAL72Xuxue Feng
1047Alejandro K GauchoSpain2026-08-01Benton, John B Jr RENEWAL4Stephen Shaw
1048Ivar Q CaudyUnited Kingdom2026-08-04King, Christopher A Esq RENEWAL50Asiya Javayant
1049Ashley L IturbideCanada2026-07-23Commercial Press UNQUALIFIED62Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Faith K GlickArgentinaElwin Sharvill NEGOTIATION
Rodrigues N WhobreyUnited KingdomElwin Sharvill NEW
Darci Q PerinCanadaIvan Magalhaes NEW
Aika P MaletSpainIvan Magalhaes PROPOSAL
Morrow T MorascaRussiaStephen Shaw NEGOTIATION
Nicolas Z WieserAustraliaIoni Bowcher NEW
Mayumi P KolmetzRussiaAmy Elsner RENEWAL
Salvatore H SlusarskiJapanOnyama Limba UNQUALIFIED
Mayumi Y IturbideSpainIoni Bowcher NEW
Claire I PerinIndiaIvan Magalhaes NEGOTIATION
Kadeem E SaylorsItalyAmy Elsner PROPOSAL
Salvatore X FollerCanadaOnyama Limba NEW
Aditya J FollerAustraliaIvan Magalhaes NEW
Morrow C WieserSpainElwin Sharvill QUALIFIED
Aika U GauchoIndiaIoni Bowcher RENEWAL
Stacey H AlbaresGermanyIoni Bowcher PROPOSAL
James V NickaSpainXuxue Feng NEGOTIATION
Adams P StockhamAustraliaStephen Shaw QUALIFIED
Cody N MacleadSpainOnyama Limba RENEWAL
Morrow K GlickFranceElwin Sharvill NEW
Leja L DilliardFranceStephen Shaw NEGOTIATION
James U ShinkoCanadaElwin Sharvill RENEWAL
Nicolas Z FlosiCanadaAsiya Javayant NEGOTIATION
Mujtaba S SlusarskiItalyStephen Shaw NEGOTIATION
Antonio H StockhamSpainXuxue Feng UNQUALIFIED
Tony Z KolmetzJapanAnna Fali NEGOTIATION
Deepesh E RimRussiaOnyama Limba NEW
Ricardo Q InouyeFranceElwin Sharvill RENEWAL
Leon L GlickBrazilAnna Fali PROPOSAL
Salvatore T RoysterBrazilOnyama Limba NEGOTIATION
Aika A AmigonJapanElwin Sharvill RENEWAL
Clifford R PerinAustraliaXuxue Feng UNQUALIFIED
Kaitlin W BriddickAustraliaAmy Elsner QUALIFIED
Ricardo E ButtItalyOnyama Limba PROPOSAL
Kaitlin X OldroydArgentinaAsiya Javayant RENEWAL
Claire O GillianCanadaOnyama Limba PROPOSAL
Aika R SchemmerRussiaIvan Magalhaes RENEWAL
Rodrigues F SergiCanadaXuxue Feng UNQUALIFIED
Alejandro V WhobreyFranceBernardo Dominic NEGOTIATION
Francesco K GillianFranceAmy Elsner QUALIFIED
Wickens B IturbideGermanyElwin Sharvill NEW
Jeanfrancois Z WaycottIndiaBernardo Dominic NEGOTIATION
Antonio D GillianGermanyStephen Shaw NEW
Ivar D FollerJapanOnyama Limba PROPOSAL
Jeanfrancois S DoeUnited KingdomIoni Bowcher NEGOTIATION
Cody K GauchoUnited KingdomStephen Shaw NEW
Arvin L NickaBrazilAmy Elsner PROPOSAL
Jennifer K FigeroaBrazilAsiya Javayant PROPOSAL
Silvio X FerenczGermanyOnyama Limba RENEWAL
Munro S VocelkaGermanyStephen Shaw NEGOTIATION
Frozen Columns
Name
Ricardo X Sergi
Maisha B Rulapaugh
Ivar E Ostrosky
David T Venere
Morrow Y Venere
Mayumi D Slusarski
Misaki Q Ferencz
Isabel H Ruta
Deepesh E Ferencz
Deepesh F Rulapaugh
Aika D Campain
Morrow A Stenseth
Morrow X Ostrosky
Deepesh K Caudy
Rodrigues T Whobrey
Aika I Inouye
Ricardo M Chui
Jefferson Z Vocelka
David Z Ferencz
Darci Q Doe
Arvin J Ferencz
Clifford B Oldroyd
Cody O Ostrosky
Faith N Malet
Deepesh M Shinko
Maria Y Bolognia
Francesco L Ostrosky
Jeanfrancois S Poquette
Morrow T Waycott
Costa K Gaucho
Mayumi Y Briddick
Juan Q Gillian
Leja T Maclead
Murillo K Sergi
Ashley E Gaucho
Isabel I Gillian
Johnson S Marrier
Alejandro K Ruta
Ivar Q Morasca
Cody S Wieser
Smith T Maclead
Misaki E Paprocki
David M Campain
Wickens N Caudy
Mayumi L Bowley
Arvin F Nicka
Misaki G Perin
Octavia Z Gillian
Mujtaba Z Amigon
Julie Y Stockham
IdCountryDate
1000Japan2026-07-15
1001Argentina2026-07-26
1002France2026-07-31
1003India2026-07-11
1004United Kingdom2026-07-15
1005Brazil2026-07-21
1006France2026-07-20
1007Brazil2026-07-08
1008Brazil2026-08-05
1009Japan2026-07-11
1010Argentina2026-07-20
1011Spain2026-07-09
1012Australia2026-07-30
1013Japan2026-07-21
1014Italy2026-07-30
1015Germany2026-07-15
1016India2026-07-09
1017India2026-08-04
1018Canada2026-08-02
1019United Kingdom2026-07-27
1020Australia2026-08-04
1021Canada2026-07-18
1022Australia2026-07-30
1023Japan2026-07-13
1024France2026-07-18
1025France2026-07-09
1026Brazil2026-07-11
1027United Kingdom2026-08-03
1028Germany2026-07-10
1029Japan2026-08-05
1030Australia2026-08-03
1031Japan2026-08-02
1032Russia2026-07-08
1033Italy2026-07-13
1034Canada2026-07-24
1035United Kingdom2026-07-27
1036United Kingdom2026-07-30
1037United Kingdom2026-07-23
1038Japan2026-07-10
1039Brazil2026-07-18
1040Russia2026-07-21
1041Canada2026-07-16
1042Italy2026-08-05
1043Australia2026-07-27
1044Canada2026-07-09
1045Brazil2026-07-15
1046Argentina2026-08-03
1047Japan2026-07-21
1048Japan2026-07-29
1049Germany2026-08-02

On-Demand Data

NameIdCountryDate
Mayumi S Dilliard1000Spain2026-07-13
Tony V Briddick1001Germany2026-07-25
Aditya J Nicka1002Italy2026-07-29
Sinclair X Campain1003Australia2026-07-23
Arvin N Malet1004Australia2026-07-11
Arvin I Briddick1005Spain2026-07-14
Jefferson J Chui1006Russia2026-07-24
Sinclair O Rim1007Argentina2026-08-01
Munro S Oldroyd1008Italy2026-08-06
Chavez G Ostrosky1009Germany2026-07-17
Claire Q Shinko1010Russia2026-08-01
Aika D Wieser1011France2026-07-12
Clifford I Malet1012United Kingdom2026-07-23
Izzy V Tollner1013France2026-07-15
Wickens S Maclead1014United Kingdom2026-07-17
Sinclair R Nicka1015Germany2026-07-08
Johnson E Perin1016United Kingdom2026-07-10
Juan F Maclead1017Germany2026-07-25
Leja T Perin1018Germany2026-07-17
Murillo W Sergi1019Germany2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams M FlosiJapanAmy Elsner RENEWAL
Ricardo J SergiUnited KingdomXuxue Feng PROPOSAL
Kaitlin T DilliardSpainElwin Sharvill PROPOSAL
Jefferson J ChuiGermanyElwin Sharvill PROPOSAL
Aika V SergiAustraliaAmy Elsner RENEWAL
Adams B WaycottAustraliaAmy Elsner QUALIFIED
Jeanfrancois G MacleadItalyElwin Sharvill PROPOSAL
Cody C BriddickRussiaStephen Shaw QUALIFIED
Sinclair I FollerArgentinaElwin Sharvill QUALIFIED
Faith G KuskoBrazilAnna Fali PROPOSAL
Ivar W FlosiAustraliaAmy Elsner RENEWAL
Darci T WaycottIndiaOnyama Limba RENEWAL
Chavez X RoysterGermanyXuxue Feng NEGOTIATION
Antonio G InouyeGermanyAmy Elsner PROPOSAL
Nicolas Z RutaSpainXuxue Feng UNQUALIFIED
Johnson N BologniaArgentinaXuxue Feng RENEWAL
Leon T AlbaresGermanyElwin Sharvill UNQUALIFIED
Isabel B MacleadAustraliaIvan Magalhaes PROPOSAL
Wickens W BologniaSpainIvan Magalhaes QUALIFIED
Ashley G FigeroaBrazilElwin Sharvill RENEWAL
Sinclair S OldroydFranceAnna Fali NEGOTIATION
Jeanfrancois R RimRussiaIoni Bowcher RENEWAL
Aditya K MaletGermanyAsiya Javayant RENEWAL
Izzy C StensethRussiaIoni Bowcher RENEWAL
Antonio M OstroskyRussiaOnyama Limba QUALIFIED
Arvin B InouyeArgentinaElwin Sharvill QUALIFIED
Claire I MacleadArgentinaBernardo Dominic QUALIFIED
Julie X FlosiArgentinaIvan Magalhaes QUALIFIED
Ivar J KuskoArgentinaXuxue Feng NEGOTIATION
Wickens L GillianGermanyAmy Elsner NEGOTIATION
Adams N DilliardSpainBernardo Dominic QUALIFIED
Greenwood V PerinBrazilBernardo Dominic NEW
Tony T MorascaSpainAsiya Javayant NEW
Mayumi U StockhamSpainXuxue Feng NEGOTIATION
Stacey W GauchoItalyOnyama Limba NEW
Izzy F WaycottRussiaIoni Bowcher UNQUALIFIED
Alejandro S WhobreyIndiaIoni Bowcher QUALIFIED
Silvio O TollnerFranceXuxue Feng UNQUALIFIED
Emily Y GarufiAustraliaIoni Bowcher NEGOTIATION
Octavia C MaletSpainBernardo 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>