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
Ivar X SlusarskiSpainIvan Magalhaes NEW
Johnson G WaycottRussiaAnna Fali NEW
Leja F BowleyBrazilXuxue Feng UNQUALIFIED
Juan L WhobreyBrazilBernardo Dominic UNQUALIFIED
Francesco Z WhobreyCanadaStephen Shaw NEGOTIATION
Tony O MaletCanadaAnna Fali RENEWAL
Aruna H ShinkoItalyIoni Bowcher PROPOSAL
Arvin N IturbideItalyStephen Shaw NEW
Juan E MarrierItalyIvan Magalhaes NEGOTIATION
Ashley L MorascaAustraliaStephen Shaw NEGOTIATION
Darci R MorascaGermanyStephen Shaw PROPOSAL
Clifford L VocelkaGermanyAsiya Javayant QUALIFIED
Claire B NickaArgentinaIvan Magalhaes RENEWAL
Deepesh A VocelkaAustraliaElwin Sharvill UNQUALIFIED
Kaitlin Y InouyeArgentinaXuxue Feng UNQUALIFIED
Murillo W FigeroaItalyStephen Shaw PROPOSAL
Salvatore N VocelkaUnited KingdomIoni Bowcher RENEWAL
Misaki C DarakjyRussiaIoni Bowcher RENEWAL
Morrow S GauchoCanadaAnna Fali NEW
Wickens F MarrierItalyIoni Bowcher PROPOSAL
Ashley Q CaldareraFranceAmy Elsner NEGOTIATION
Smith H OstroskyIndiaAsiya Javayant NEGOTIATION
Faith E StensethRussiaAnna Fali UNQUALIFIED
Silvio N MacleadBrazilElwin Sharvill QUALIFIED
Mayumi H VocelkaIndiaStephen Shaw UNQUALIFIED
Ricardo O KuskoItalyOnyama Limba PROPOSAL
Jennifer Q NestleAustraliaAmy Elsner PROPOSAL
Juan L PaprockiIndiaAnna Fali RENEWAL
Murillo O WhobreyRussiaXuxue Feng RENEWAL
Murillo T FlosiArgentinaBernardo Dominic UNQUALIFIED
Maria C WaycottAustraliaOnyama Limba NEGOTIATION
Stacey X SchemmerCanadaStephen Shaw QUALIFIED
Francesco K SaylorsIndiaAnna Fali NEGOTIATION
Jefferson Y MaletArgentinaIvan Magalhaes NEGOTIATION
Wickens P GauchoItalyXuxue Feng PROPOSAL
Mayumi K FerenczItalyIoni Bowcher UNQUALIFIED
Misaki G SlusarskiBrazilIoni Bowcher NEGOTIATION
Munro C KuskoIndiaAmy Elsner RENEWAL
Jeanfrancois W BowleyGermanyAnna Fali NEGOTIATION
Sinclair J CaldareraBrazilBernardo Dominic UNQUALIFIED
Mujtaba F OstroskyUnited KingdomXuxue Feng UNQUALIFIED
Adams I IturbideAustraliaOnyama Limba NEW
Leon J StockhamJapanAnna Fali PROPOSAL
Faith J DarakjySpainIvan Magalhaes NEGOTIATION
Alejandro N FlosiBrazilElwin Sharvill RENEWAL
Misaki Z TollnerIndiaElwin Sharvill NEGOTIATION
Claire V BologniaFranceAsiya Javayant PROPOSAL
Greenwood Z FollerRussiaAnna Fali QUALIFIED
James Q VocelkaFranceIoni Bowcher NEGOTIATION
Morrow P PaprockiArgentinaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Adams V PerinFranceBernardo Dominic UNQUALIFIED
Maria T BologniaSpainIvan Magalhaes QUALIFIED
Leon I GauchoAustraliaIvan Magalhaes NEW
Jeanfrancois U MaletRussiaStephen Shaw RENEWAL
Aditya C FollerItalyOnyama Limba UNQUALIFIED
Juan I FollerJapanIoni Bowcher RENEWAL
Claire F StensethRussiaIvan Magalhaes QUALIFIED
Cody E ButtBrazilOnyama Limba NEGOTIATION
Leja D OstroskyGermanyAsiya Javayant QUALIFIED
Sinclair H MaletArgentinaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith I ShinkoFrance2026-06-28King, Christopher A Esq PROPOSAL29Stephen Shaw
1001Misaki D BowleyUnited Kingdom2026-06-26Commercial Press NEGOTIATION88Elwin Sharvill
1002Alejandro V DilliardJapan2026-06-13Printing Dimensions QUALIFIED7Xuxue Feng
1003Isabel F OstroskyItaly2026-06-29Chapman, Ross E Esq RENEWAL5Amy Elsner
1004Isabel U RulapaughUnited Kingdom2026-06-18Printing Dimensions UNQUALIFIED63Amy Elsner
1005Johnson K MacleadIndia2026-07-07Rangoni Of Florence UNQUALIFIED8Ivan Magalhaes
1006Arvin M CaudyFrance2026-07-06Rousseaux, Michael Esq NEW26Amy Elsner
1007Octavia H BriddickCanada2026-06-28Chanay, Jeffrey A Esq NEGOTIATION51Elwin Sharvill
1008Darci U GlickUnited Kingdom2026-07-03Rangoni Of Florence NEW9Bernardo Dominic
1009Silvio G PerinFrance2026-07-02Printing Dimensions UNQUALIFIED55Asiya Javayant
1010Leja C BriddickFrance2026-07-01Rousseaux, Michael Esq PROPOSAL98Stephen Shaw
1011Adams G GauchoBrazil2026-06-23Benton, John B Jr RENEWAL55Xuxue Feng
1012Cody P DilliardSpain2026-06-10Printing Dimensions PROPOSAL37Ivan Magalhaes
1013Antonio I GauchoBrazil2026-06-13Feltz Printing Service UNQUALIFIED16Ivan Magalhaes
1014David Q FollerIndia2026-06-17Truhlar And Truhlar Attys RENEWAL69Xuxue Feng
1015Jefferson N ButtJapan2026-06-10Chemel, James L Cpa NEGOTIATION81Anna Fali
1016Nicolas H KuskoSpain2026-06-21Truhlar And Truhlar Attys NEW81Stephen Shaw
1017Faith X InouyeGermany2026-06-25Buckley Miller Wright PROPOSAL32Anna Fali
1018Greenwood P AmigonRussia2026-06-23Rousseaux, Michael Esq QUALIFIED71Stephen Shaw
1019Clifford L CampainAustralia2026-06-30Chapman, Ross E Esq NEGOTIATION81Asiya Javayant
1020James Z BowleyCanada2026-07-06Chemel, James L Cpa UNQUALIFIED5Ioni Bowcher
1021Octavia J TollnerFrance2026-06-28Chapman, Ross E Esq UNQUALIFIED52Bernardo Dominic
1022Jennifer F KolmetzArgentina2026-06-11Chemel, James L Cpa QUALIFIED12Anna Fali
1023Misaki X CaldareraIndia2026-07-09Dorl, James J Esq NEGOTIATION93Onyama Limba
1024Morrow Q BologniaSpain2026-06-21Chanay, Jeffrey A Esq PROPOSAL98Amy Elsner
1025Francesco Q OstroskyRussia2026-06-21Benton, John B Jr PROPOSAL78Asiya Javayant
1026Jeanfrancois U BologniaIndia2026-07-02Benton, John B Jr PROPOSAL80Bernardo Dominic
1027Kadeem O PerinGermany2026-07-02Chemel, James L Cpa QUALIFIED66Xuxue Feng
1028Claire X MaletCanada2026-06-25Feiner Bros QUALIFIED77Stephen Shaw
1029Johnson J RimFrance2026-06-16Dorl, James J Esq RENEWAL15Ivan Magalhaes
1030David Z GlickJapan2026-06-24Printing Dimensions NEW87Stephen Shaw
1031Kadeem L SlusarskiUnited Kingdom2026-07-05Dorl, James J Esq NEW96Ivan Magalhaes
1032Clifford L GlickRussia2026-06-13Dorl, James J Esq PROPOSAL2Amy Elsner
1033Antonio F GillianIndia2026-07-07Feiner Bros QUALIFIED90Elwin Sharvill
1034Salvatore A KolmetzFrance2026-07-04Printing Dimensions UNQUALIFIED69Ioni Bowcher
1035Ashley T IturbideGermany2026-06-26King, Christopher A Esq PROPOSAL35Asiya Javayant
1036Chavez E ShinkoFrance2026-06-12King, Christopher A Esq PROPOSAL86Amy Elsner
1037Arvin A GlickFrance2026-06-13Feiner Bros NEW49Asiya Javayant
1038Faith Q KuskoUnited Kingdom2026-06-14Printing Dimensions UNQUALIFIED97Bernardo Dominic
1039Nicolas G GauchoGermany2026-06-14Commercial Press NEGOTIATION71Asiya Javayant
1040Mujtaba H OstroskyCanada2026-07-07Chapman, Ross E Esq PROPOSAL56Elwin Sharvill
1041Tony H MaletJapan2026-06-14Chapman, Ross E Esq NEW78Asiya Javayant
1042Jefferson G RutaSpain2026-07-09Rangoni Of Florence RENEWAL31Bernardo Dominic
1043Aruna N TollnerArgentina2026-07-01Morlong Associates NEW91Bernardo Dominic
1044Rodrigues Q BologniaIndia2026-06-24Dorl, James J Esq UNQUALIFIED61Ioni Bowcher
1045Jeanfrancois X CampainUnited Kingdom2026-06-20Commercial Press UNQUALIFIED53Ivan Magalhaes
1046Greenwood I PoquetteGermany2026-06-30King, Christopher A Esq NEW34Onyama Limba
1047Smith T FigeroaUnited Kingdom2026-06-23Feltz Printing Service NEGOTIATION86Stephen Shaw
1048Mujtaba O OstroskyIndia2026-06-25Chanay, Jeffrey A Esq PROPOSAL56Asiya Javayant
1049Izzy X NestleFrance2026-07-08Dorl, James J Esq RENEWAL39Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Salvatore X BowleyBrazilIvan Magalhaes NEGOTIATION
Greenwood V SaylorsSpainAsiya Javayant NEW
Aditya V GlickGermanyIvan Magalhaes PROPOSAL
Antonio K RimJapanAmy Elsner RENEWAL
Tony D InouyeCanadaStephen Shaw PROPOSAL
Jeanfrancois D RoysterGermanyOnyama Limba NEGOTIATION
Cody C SaylorsItalyBernardo Dominic UNQUALIFIED
Leja P FlosiRussiaStephen Shaw RENEWAL
Munro D RulapaughItalyIvan Magalhaes NEW
Tony B FigeroaFranceElwin Sharvill RENEWAL
Alejandro L GarufiUnited KingdomBernardo Dominic NEGOTIATION
Maisha Z FollerSpainAsiya Javayant RENEWAL
Smith B RoysterSpainOnyama Limba QUALIFIED
Smith Q BologniaIndiaIvan Magalhaes NEW
Johnson C CaldareraItalyXuxue Feng PROPOSAL
Chavez Q PerinItalyIoni Bowcher PROPOSAL
Faith P FollerRussiaAnna Fali UNQUALIFIED
Aruna Y DilliardAustraliaXuxue Feng UNQUALIFIED
Deepesh I MarrierSpainAsiya Javayant PROPOSAL
Munro A KuskoItalyAmy Elsner UNQUALIFIED
Izzy M MarrierJapanElwin Sharvill NEW
Faith A VenereGermanyBernardo Dominic NEW
Cody H FlosiBrazilStephen Shaw RENEWAL
Tony N PerinIndiaAsiya Javayant NEW
Julie B MacleadBrazilAmy Elsner PROPOSAL
Wickens C WieserJapanIoni Bowcher RENEWAL
Aditya V SlusarskiFranceAnna Fali QUALIFIED
Izzy V ChuiGermanyAnna Fali NEGOTIATION
Tony T CampainFranceAsiya Javayant UNQUALIFIED
Nicolas R StensethFranceElwin Sharvill NEW
Aditya Z PoquetteFranceElwin Sharvill QUALIFIED
Misaki U GauchoUnited KingdomXuxue Feng QUALIFIED
Juan O DarakjyCanadaBernardo Dominic QUALIFIED
Murillo G RimBrazilIvan Magalhaes QUALIFIED
Adams R AmigonBrazilElwin Sharvill RENEWAL
Deepesh L GillianGermanyIvan Magalhaes NEW
Leon Y IturbideUnited KingdomAnna Fali PROPOSAL
Darci O DarakjyBrazilAmy Elsner QUALIFIED
Aruna S BologniaFranceAmy Elsner RENEWAL
Arvin V GillianBrazilElwin Sharvill NEGOTIATION
Salvatore E RoysterCanadaOnyama Limba PROPOSAL
Sinclair L RutaItalyBernardo Dominic RENEWAL
David U VocelkaGermanyOnyama Limba PROPOSAL
Ashley S GauchoAustraliaIoni Bowcher QUALIFIED
Maisha U KuskoRussiaAnna Fali RENEWAL
Alejandro J SergiFranceStephen Shaw RENEWAL
Emily R DilliardIndiaElwin Sharvill QUALIFIED
Ashley D SaylorsJapanAsiya Javayant UNQUALIFIED
Chavez M ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Maria T StensethSpainXuxue Feng NEGOTIATION
Frozen Columns
Name
Jones A Briddick
Leja E Bowley
Alejandro M Ostrosky
Maisha B Royster
Jefferson M Tollner
Leon R Venere
Isabel X Paprocki
Aditya B Ferencz
Rodrigues H Ostrosky
Leon P Malet
Julie F Malet
Kadeem Q Bowley
Kadeem N Stockham
Darci A Whobrey
Mayumi V Caudy
Costa H Kolmetz
Stacey Y Oldroyd
Leon I Tollner
Maria N Perin
Isabel Y Briddick
Arvin T Nestle
Darci W Kusko
Mujtaba R Morasca
Cody K Maclead
Tony K Dilliard
Misaki N Malet
Tony A Foller
Aika J Garufi
Chavez R Rulapaugh
Kadeem K Inouye
Jefferson Q Perin
Tony L Doe
Munro E Campain
Munro K Ruta
Antonio D Whobrey
Isabel B Dilliard
Kaitlin H Briddick
Maria J Poquette
Isabel C Vocelka
Morrow Y Albares
Tony F Tollner
Juan F Kolmetz
Ivar D Perin
Antonio L Venere
Emily S Inouye
Claire H Oldroyd
Stacey D Gillian
Aruna R Ferencz
Aditya K Vocelka
Leon P Caudy
IdCountryDate
1000Russia2026-06-25
1001Argentina2026-06-11
1002United Kingdom2026-07-05
1003Italy2026-06-28
1004France2026-06-11
1005Italy2026-06-26
1006Argentina2026-07-04
1007Australia2026-07-07
1008Japan2026-07-08
1009United Kingdom2026-07-01
1010Russia2026-06-16
1011Argentina2026-06-10
1012Australia2026-06-17
1013Germany2026-06-19
1014Spain2026-06-22
1015Argentina2026-07-05
1016India2026-07-08
1017Spain2026-06-11
1018India2026-06-20
1019India2026-06-17
1020Russia2026-07-08
1021India2026-06-14
1022Russia2026-06-21
1023Germany2026-06-21
1024France2026-06-14
1025India2026-07-03
1026United Kingdom2026-06-27
1027Brazil2026-06-26
1028Italy2026-07-05
1029Russia2026-06-10
1030Russia2026-07-02
1031Italy2026-06-28
1032Australia2026-06-25
1033Australia2026-06-23
1034Germany2026-07-06
1035United Kingdom2026-06-11
1036India2026-06-10
1037India2026-06-12
1038Japan2026-06-17
1039Argentina2026-06-14
1040India2026-06-16
1041Argentina2026-06-17
1042Germany2026-07-05
1043Spain2026-07-01
1044Canada2026-07-08
1045Italy2026-06-19
1046United Kingdom2026-07-02
1047Australia2026-06-29
1048France2026-06-21
1049Germany2026-06-19

On-Demand Data

NameIdCountryDate
Isabel T Glick1000United Kingdom2026-06-13
Johnson Q Ferencz1001Italy2026-07-07
Maria B Rulapaugh1002Germany2026-06-26
Costa Q Nestle1003Argentina2026-06-16
Aika G Rulapaugh1004Spain2026-06-16
Isabel M Gaucho1005Australia2026-07-01
Jeanfrancois J Malet1006Australia2026-06-17
Murillo T Gaucho1007Canada2026-06-13
Mayumi B Inouye1008Italy2026-06-23
Aruna Z Stenseth1009Italy2026-06-12
Murillo M Rulapaugh1010India2026-07-01
Johnson G Nestle1011Russia2026-06-10
Morrow E Maclead1012United Kingdom2026-07-05
Tony I Shinko1013Australia2026-06-27
Ricardo G Figeroa1014Russia2026-06-19
Juan Y Chui1015Australia2026-06-22
Darci Y Malet1016Italy2026-07-03
Ivar U Schemmer1017Canada2026-06-21
Tony U Bowley1018Brazil2026-06-11
Claire Q Oldroyd1019Japan2026-06-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo G PerinSpainIvan Magalhaes NEGOTIATION
Costa Z SergiIndiaXuxue Feng UNQUALIFIED
Aika M GauchoRussiaXuxue Feng UNQUALIFIED
Costa D PoquetteSpainAsiya Javayant PROPOSAL
Jones B FollerItalyAnna Fali NEGOTIATION
Juan N WhobreyArgentinaElwin Sharvill QUALIFIED
Wickens B FerenczJapanAsiya Javayant QUALIFIED
Smith Y RulapaughGermanyXuxue Feng RENEWAL
Salvatore F CaudyUnited KingdomBernardo Dominic PROPOSAL
Ashley L RimGermanyBernardo Dominic RENEWAL
Ricardo R DilliardAustraliaAmy Elsner NEW
Cody K IturbideUnited KingdomIvan Magalhaes RENEWAL
Maria M ButtJapanBernardo Dominic NEGOTIATION
Costa U PerinArgentinaXuxue Feng PROPOSAL
Adams U PaprockiFranceIoni Bowcher RENEWAL
Murillo R IturbideSpainElwin Sharvill QUALIFIED
Claire I OldroydJapanIvan Magalhaes RENEWAL
Kaitlin N MorascaFranceStephen Shaw QUALIFIED
Jeanfrancois F DarakjyGermanyXuxue Feng NEGOTIATION
Adams N CaudyJapanIoni Bowcher QUALIFIED
Munro Q GauchoIndiaIoni Bowcher NEW
Wickens P OldroydIndiaXuxue Feng NEW
Johnson M RulapaughRussiaIvan Magalhaes RENEWAL
Chavez D BowleyBrazilAmy Elsner RENEWAL
Julie I NickaAustraliaAnna Fali NEGOTIATION
Jennifer U StockhamItalyAmy Elsner UNQUALIFIED
Aditya S WieserItalyBernardo Dominic NEGOTIATION
Salvatore C MaletArgentinaBernardo Dominic UNQUALIFIED
Jennifer S VocelkaUnited KingdomIvan Magalhaes QUALIFIED
Nicolas Q PoquetteItalyAnna Fali NEW
Stacey H InouyeCanadaOnyama Limba QUALIFIED
Aika Z DarakjyItalyAnna Fali NEW
Munro R FlosiItalyAnna Fali PROPOSAL
Aika M VocelkaUnited KingdomOnyama Limba NEGOTIATION
Maria T SaylorsAustraliaAmy Elsner PROPOSAL
David F IturbideIndiaAsiya Javayant PROPOSAL
Aruna L WhobreyFranceBernardo Dominic PROPOSAL
Smith A FlosiIndiaIoni Bowcher RENEWAL
Sinclair A CaldareraRussiaStephen Shaw NEW
Nicolas C BriddickUnited KingdomAmy Elsner RENEWAL

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