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
Kadeem E BowleySpainStephen Shaw QUALIFIED
Sinclair M MarrierArgentinaAsiya Javayant QUALIFIED
Ricardo B RimArgentinaBernardo Dominic PROPOSAL
Leja D KolmetzFranceStephen Shaw PROPOSAL
Nicolas D RoysterIndiaOnyama Limba QUALIFIED
Chavez J PoquetteUnited KingdomElwin Sharvill RENEWAL
Greenwood J DarakjyCanadaStephen Shaw QUALIFIED
Murillo L FollerSpainElwin Sharvill NEW
Tony Q AmigonIndiaAmy Elsner PROPOSAL
Faith V NestleFranceAsiya Javayant RENEWAL
Francesco D SchemmerSpainAsiya Javayant RENEWAL
Silvio I PoquetteArgentinaAmy Elsner PROPOSAL
Kaitlin S GauchoArgentinaOnyama Limba NEGOTIATION
Arvin X IturbideAustraliaElwin Sharvill UNQUALIFIED
Chavez J SlusarskiIndiaOnyama Limba UNQUALIFIED
Jeanfrancois J FerenczSpainStephen Shaw QUALIFIED
Ashley A RutaRussiaIvan Magalhaes PROPOSAL
Mujtaba G OldroydItalyBernardo Dominic UNQUALIFIED
Adams I RulapaughSpainAmy Elsner UNQUALIFIED
Deepesh L SergiSpainAnna Fali UNQUALIFIED
Mujtaba D NickaGermanyElwin Sharvill NEGOTIATION
Izzy S OstroskyBrazilXuxue Feng PROPOSAL
Arvin Q WhobreyBrazilIoni Bowcher QUALIFIED
Arvin T KolmetzItalyIvan Magalhaes NEW
Jeanfrancois W MaletFranceOnyama Limba NEW
Misaki Z GillianArgentinaAmy Elsner PROPOSAL
Antonio Q VenereRussiaXuxue Feng NEW
Morrow Z StockhamArgentinaAmy Elsner NEW
Murillo P VocelkaBrazilStephen Shaw PROPOSAL
Aditya Y FollerGermanyAmy Elsner QUALIFIED
Murillo S FollerItalyAsiya Javayant NEGOTIATION
Ashley I BriddickFranceAnna Fali QUALIFIED
Aruna X GillianArgentinaIoni Bowcher NEW
Jefferson Z RutaItalyIvan Magalhaes NEW
Morrow Y KuskoJapanBernardo Dominic PROPOSAL
Juan Q RulapaughIndiaAnna Fali QUALIFIED
Deepesh A CaudyJapanXuxue Feng UNQUALIFIED
Julie L KuskoArgentinaIvan Magalhaes RENEWAL
Munro S CaldareraRussiaOnyama Limba NEW
Octavia D ChuiRussiaIoni Bowcher QUALIFIED
Izzy P WhobreyFranceIvan Magalhaes PROPOSAL
Kaitlin V RulapaughGermanyBernardo Dominic NEGOTIATION
Antonio Y VenereUnited KingdomOnyama Limba NEGOTIATION
Aruna J TollnerIndiaAmy Elsner NEGOTIATION
Stacey N ShinkoAustraliaElwin Sharvill UNQUALIFIED
Julie R SaylorsJapanAmy Elsner PROPOSAL
Clifford W MarrierIndiaAnna Fali NEGOTIATION
Emily P CaldareraGermanyAsiya Javayant RENEWAL
Johnson F CaldareraRussiaXuxue Feng PROPOSAL
Juan Q FollerFranceXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
James M WhobreySpainXuxue Feng PROPOSAL
Darci M PoquetteSpainAsiya Javayant RENEWAL
Jefferson F KolmetzIndiaXuxue Feng RENEWAL
Morrow E RulapaughItalyElwin Sharvill QUALIFIED
Rodrigues K KuskoRussiaIvan Magalhaes UNQUALIFIED
Kaitlin B CaldareraRussiaBernardo Dominic QUALIFIED
Isabel I TollnerUnited KingdomAnna Fali NEW
Darci H InouyeBrazilIoni Bowcher QUALIFIED
Claire R VenereRussiaIvan Magalhaes NEGOTIATION
Faith B TollnerSpainOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas F RulapaughGermany2026-08-24Printing Dimensions PROPOSAL54Bernardo Dominic
1001Silvio L CaldareraJapan2026-08-24Benton, John B Jr RENEWAL71Amy Elsner
1002Costa C NestleUnited Kingdom2026-08-16Chanay, Jeffrey A Esq QUALIFIED58Stephen Shaw
1003Johnson A DilliardSpain2026-08-15Dorl, James J Esq NEGOTIATION35Ioni Bowcher
1004Kaitlin I DarakjyArgentina2026-08-31Benton, John B Jr NEGOTIATION61Bernardo Dominic
1005Emily M PaprockiArgentina2026-08-07Rousseaux, Michael Esq NEGOTIATION22Amy Elsner
1006Ivar X BowleyFrance2026-08-15Chapman, Ross E Esq PROPOSAL85Stephen Shaw
1007Francesco M NickaFrance2026-08-06Rousseaux, Michael Esq PROPOSAL41Onyama Limba
1008Smith N GlickBrazil2026-08-27Commercial Press NEGOTIATION53Ioni Bowcher
1009Aruna H WaycottJapan2026-08-26King, Christopher A Esq UNQUALIFIED33Asiya Javayant
1010Clifford H FlosiGermany2026-08-27Rangoni Of Florence QUALIFIED39Ivan Magalhaes
1011David N BowleyFrance2026-08-13Feiner Bros PROPOSAL76Anna Fali
1012Aruna A DoeItaly2026-08-14Buckley Miller Wright NEW66Elwin Sharvill
1013Salvatore M BowleyBrazil2026-08-17Chemel, James L Cpa UNQUALIFIED52Xuxue Feng
1014James W RoysterBrazil2026-08-02Feiner Bros NEW85Ioni Bowcher
1015Morrow W FigeroaFrance2026-08-08Chanay, Jeffrey A Esq NEGOTIATION78Xuxue Feng
1016Aditya M TollnerIndia2026-08-07Rangoni Of Florence RENEWAL70Amy Elsner
1017Antonio G CampainIndia2026-08-04Chapman, Ross E Esq NEGOTIATION38Elwin Sharvill
1018Ashley F RulapaughJapan2026-08-26Rangoni Of Florence RENEWAL18Asiya Javayant
1019Morrow X AmigonAustralia2026-08-16Rangoni Of Florence PROPOSAL25Onyama Limba
1020Murillo M DoeIndia2026-08-13Chemel, James L Cpa QUALIFIED58Bernardo Dominic
1021Misaki V CampainIndia2026-08-10Benton, John B Jr PROPOSAL64Onyama Limba
1022Greenwood B KuskoArgentina2026-08-22Chanay, Jeffrey A Esq UNQUALIFIED22Bernardo Dominic
1023Maisha T NestleGermany2026-08-04Rousseaux, Michael Esq QUALIFIED44Elwin Sharvill
1024Emily O MaletItaly2026-08-25Commercial Press RENEWAL19Onyama Limba
1025Octavia O AlbaresArgentina2026-08-25Rangoni Of Florence PROPOSAL96Elwin Sharvill
1026Jeanfrancois Q PaprockiIndia2026-08-30Chemel, James L Cpa RENEWAL59Onyama Limba
1027Darci X WieserJapan2026-08-04Chapman, Ross E Esq NEW23Asiya Javayant
1028Julie N StensethGermany2026-08-12Commercial Press NEW90Ioni Bowcher
1029Nicolas M VenereItaly2026-08-16Truhlar And Truhlar Attys NEW5Xuxue Feng
1030Costa V GauchoUnited Kingdom2026-08-22Feiner Bros RENEWAL91Xuxue Feng
1031Clifford J OstroskyJapan2026-08-15Chanay, Jeffrey A Esq PROPOSAL41Anna Fali
1032Alejandro X MaletBrazil2026-08-02Rousseaux, Michael Esq NEW39Ioni Bowcher
1033Adams I SchemmerCanada2026-08-10Buckley Miller Wright QUALIFIED57Bernardo Dominic
1034Deepesh Y RoysterFrance2026-08-14Feltz Printing Service NEW24Ioni Bowcher
1035Claire J KolmetzItaly2026-08-04Printing Dimensions NEW33Stephen Shaw
1036Costa A GarufiItaly2026-08-04Printing Dimensions NEGOTIATION0Ivan Magalhaes
1037Maria N AlbaresArgentina2026-08-18Buckley Miller Wright NEGOTIATION94Anna Fali
1038Claire J RulapaughItaly2026-08-26Truhlar And Truhlar Attys QUALIFIED8Onyama Limba
1039Aruna C WaycottGermany2026-08-29Rousseaux, Michael Esq NEGOTIATION9Elwin Sharvill
1040Aditya Q GlickIndia2026-08-27Truhlar And Truhlar Attys NEW42Asiya Javayant
1041Emily N SergiUnited Kingdom2026-08-11Feltz Printing Service UNQUALIFIED10Onyama Limba
1042Izzy E WieserFrance2026-08-31Commercial Press PROPOSAL27Bernardo Dominic
1043Maria Z OstroskySpain2026-08-16Chapman, Ross E Esq UNQUALIFIED83Xuxue Feng
1044David I PaprockiAustralia2026-08-22Benton, John B Jr PROPOSAL95Amy Elsner
1045Mujtaba W AmigonCanada2026-08-13Feiner Bros RENEWAL78Onyama Limba
1046Aika J KolmetzArgentina2026-08-31King, Christopher A Esq QUALIFIED27Anna Fali
1047Jeanfrancois N GlickSpain2026-08-26King, Christopher A Esq RENEWAL77Stephen Shaw
1048Izzy J StensethRussia2026-08-19Buckley Miller Wright NEGOTIATION71Amy Elsner
1049Deepesh Q CampainFrance2026-08-22Rangoni Of Florence PROPOSAL66Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maria C KuskoSpainIvan Magalhaes UNQUALIFIED
Juan F VocelkaIndiaBernardo Dominic UNQUALIFIED
Jefferson C WaycottRussiaStephen Shaw QUALIFIED
Salvatore A MaletItalyStephen Shaw PROPOSAL
Octavia H SchemmerJapanIoni Bowcher UNQUALIFIED
Jefferson D CaudyAustraliaIvan Magalhaes NEGOTIATION
Claire S PaprockiJapanStephen Shaw RENEWAL
Ashley S WhobreyGermanyIoni Bowcher QUALIFIED
Kadeem C NestleAustraliaOnyama Limba QUALIFIED
Ashley O CaudyRussiaBernardo Dominic PROPOSAL
Cody U MaletUnited KingdomAsiya Javayant RENEWAL
Ivar F ButtRussiaElwin Sharvill RENEWAL
Julie U TollnerJapanElwin Sharvill PROPOSAL
Octavia K GarufiJapanAnna Fali NEGOTIATION
Murillo W BologniaArgentinaIoni Bowcher PROPOSAL
Mujtaba K KolmetzSpainStephen Shaw UNQUALIFIED
Munro Y BriddickAustraliaXuxue Feng QUALIFIED
James P FigeroaIndiaIoni Bowcher QUALIFIED
Johnson M AmigonGermanyAsiya Javayant NEW
Murillo B WaycottArgentinaAsiya Javayant NEW
Stacey B WaycottSpainElwin Sharvill UNQUALIFIED
Arvin R PerinGermanyAsiya Javayant PROPOSAL
Aruna Y OstroskySpainIoni Bowcher UNQUALIFIED
Arvin V BriddickItalyAnna Fali NEW
Juan Z RimBrazilAsiya Javayant NEGOTIATION
Ivar V MarrierRussiaBernardo Dominic UNQUALIFIED
Clifford O CampainUnited KingdomAmy Elsner PROPOSAL
Morrow J GarufiAustraliaAnna Fali NEGOTIATION
Isabel E MorascaSpainXuxue Feng PROPOSAL
Francesco Z SaylorsArgentinaIvan Magalhaes RENEWAL
Silvio G PerinBrazilAsiya Javayant NEW
Aruna N AmigonCanadaAnna Fali QUALIFIED
Stacey W RutaCanadaBernardo Dominic NEGOTIATION
Jennifer B DilliardRussiaOnyama Limba RENEWAL
Salvatore B BowleyFranceAmy Elsner NEGOTIATION
Munro B MaletItalyAnna Fali UNQUALIFIED
Costa D DarakjyFranceElwin Sharvill NEGOTIATION
Nicolas W PaprockiItalyElwin Sharvill UNQUALIFIED
Jennifer X KolmetzGermanyStephen Shaw NEW
Stacey B NestleCanadaXuxue Feng RENEWAL
Cody W MaletBrazilBernardo Dominic PROPOSAL
Julie K VenereCanadaIoni Bowcher RENEWAL
Misaki Y BowleyGermanyOnyama Limba QUALIFIED
Alejandro N ShinkoRussiaStephen Shaw RENEWAL
Murillo R DarakjyUnited KingdomOnyama Limba NEGOTIATION
Faith X VocelkaJapanXuxue Feng QUALIFIED
Jefferson B FerenczAustraliaIoni Bowcher NEGOTIATION
Maisha R MaletBrazilXuxue Feng NEW
Cody F OstroskyRussiaOnyama Limba UNQUALIFIED
Faith Q SchemmerJapanAsiya Javayant QUALIFIED
Frozen Columns
Name
Claire S Perin
Aika Z Bolognia
Deepesh G Paprocki
Maria D Saylors
Tony Y Briddick
Aditya C Oldroyd
Leon Z Albares
Cody O Figeroa
Silvio Y Darakjy
Wickens P Briddick
Jennifer M Marrier
Aditya O Gaucho
Adams L Perin
Adams E Rulapaugh
Rodrigues N Caldarera
Kaitlin C Bowley
Kaitlin C Rulapaugh
Claire G Kusko
Emily S Sergi
Mayumi I Tollner
Jennifer K Caudy
Wickens M Slusarski
Tony S Gillian
Nicolas A Maclead
Francesco R Schemmer
Isabel V Kolmetz
Kaitlin M Butt
Emily H Foller
Cody V Kolmetz
Juan Q Nicka
Maria I Sergi
Deepesh Y Maclead
Leja R Iturbide
Antonio B Kolmetz
Mujtaba H Royster
Costa L Venere
Kadeem O Bolognia
Darci N Vocelka
Jeanfrancois U Chui
Faith N Caldarera
Jeanfrancois Y Chui
David Q Stockham
Costa R Sergi
Deepesh R Oldroyd
Clifford E Maclead
Jeanfrancois X Sergi
Izzy S Flosi
Mayumi D Gaucho
Morrow W Malet
Isabel X Flosi
IdCountryDate
1000Argentina2026-08-21
1001Russia2026-08-31
1002Italy2026-08-08
1003Russia2026-08-16
1004Canada2026-08-12
1005India2026-08-18
1006Spain2026-08-31
1007India2026-08-19
1008Australia2026-08-23
1009Argentina2026-08-24
1010India2026-08-06
1011Brazil2026-08-14
1012Germany2026-08-20
1013United Kingdom2026-08-17
1014Canada2026-08-20
1015France2026-08-07
1016France2026-08-21
1017France2026-08-24
1018Canada2026-08-11
1019Japan2026-08-15
1020India2026-08-31
1021Argentina2026-08-19
1022Australia2026-08-09
1023United Kingdom2026-08-25
1024India2026-08-15
1025Argentina2026-08-27
1026France2026-08-23
1027United Kingdom2026-08-25
1028India2026-08-08
1029India2026-08-15
1030India2026-08-30
1031India2026-08-15
1032Argentina2026-08-20
1033Italy2026-08-22
1034Spain2026-08-03
1035Brazil2026-08-17
1036United Kingdom2026-08-07
1037Russia2026-08-26
1038Germany2026-08-11
1039Russia2026-08-05
1040Spain2026-08-20
1041Argentina2026-08-09
1042Brazil2026-08-09
1043Italy2026-08-09
1044Brazil2026-08-25
1045Argentina2026-08-13
1046Australia2026-08-16
1047Russia2026-08-17
1048Argentina2026-08-12
1049Italy2026-08-09

On-Demand Data

NameIdCountryDate
Jones V Darakjy1000France2026-08-15
Tony T Butt1001Argentina2026-08-25
Salvatore B Waycott1002Italy2026-08-03
Chavez O Ferencz1003Canada2026-08-06
Chavez R Chui1004Russia2026-08-05
David I Rulapaugh1005Germany2026-08-15
Jones E Caudy1006Argentina2026-08-21
Aruna U Bolognia1007Argentina2026-08-27
Isabel V Sergi1008Italy2026-08-11
Kaitlin K Kolmetz1009Russia2026-08-27
Silvio C Caudy1010Brazil2026-08-16
Alejandro N Albares1011Argentina2026-08-02
Izzy W Amigon1012Australia2026-08-27
Rodrigues E Briddick1013Spain2026-08-05
Silvio Z Whobrey1014Russia2026-08-05
Jones G Garufi1015Brazil2026-08-17
Aditya M Nicka1016Japan2026-08-22
Nicolas T Schemmer1017Canada2026-08-30
Antonio N Figeroa1018India2026-08-29
James G Stenseth1019Germany2026-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa N StockhamFranceAsiya Javayant RENEWAL
Juan H CaudyItalyXuxue Feng QUALIFIED
Smith J FollerJapanStephen Shaw NEGOTIATION
Costa C CampainCanadaIoni Bowcher RENEWAL
Izzy I RoysterSpainAmy Elsner PROPOSAL
Kaitlin C FollerUnited KingdomIvan Magalhaes RENEWAL
Morrow F WaycottBrazilXuxue Feng NEGOTIATION
Misaki W AmigonAustraliaAmy Elsner UNQUALIFIED
Maisha L GillianUnited KingdomAnna Fali NEGOTIATION
Adams I FollerSpainAmy Elsner QUALIFIED
Leon J KolmetzBrazilXuxue Feng NEW
Rodrigues X DoeItalyAsiya Javayant PROPOSAL
Mayumi V AmigonCanadaElwin Sharvill QUALIFIED
Izzy K InouyeUnited KingdomAmy Elsner UNQUALIFIED
Emily Y ChuiFranceStephen Shaw NEGOTIATION
Murillo S RimSpainOnyama Limba PROPOSAL
Antonio H TollnerGermanyBernardo Dominic UNQUALIFIED
Salvatore A InouyeArgentinaOnyama Limba RENEWAL
Adams B RulapaughSpainXuxue Feng NEGOTIATION
Johnson O TollnerAustraliaElwin Sharvill NEW
Antonio B GauchoRussiaStephen Shaw UNQUALIFIED
Greenwood I WieserSpainAsiya Javayant NEGOTIATION
Maisha T GillianJapanAmy Elsner PROPOSAL
Adams E SchemmerCanadaStephen Shaw UNQUALIFIED
Murillo K BowleyArgentinaBernardo Dominic UNQUALIFIED
Darci E NickaItalyBernardo Dominic UNQUALIFIED
Julie S DarakjyFranceElwin Sharvill QUALIFIED
Aika N GillianFranceElwin Sharvill PROPOSAL
Murillo Z StensethCanadaAmy Elsner QUALIFIED
Johnson F SlusarskiFranceAnna Fali PROPOSAL
Adams Z FlosiItalyStephen Shaw NEGOTIATION
Leja Q NestleIndiaOnyama Limba QUALIFIED
Silvio F FollerIndiaAmy Elsner NEGOTIATION
Jennifer S CampainRussiaAmy Elsner NEGOTIATION
Octavia U WieserSpainIvan Magalhaes PROPOSAL
Aruna M MacleadGermanyAsiya Javayant NEW
Misaki K CaldareraFranceIoni Bowcher QUALIFIED
Clifford F MorascaUnited KingdomStephen Shaw NEW
Leja L MaletAustraliaBernardo Dominic QUALIFIED
Mayumi C GlickSpainIoni Bowcher NEW

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