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
Aditya Z FigeroaGermanyElwin Sharvill PROPOSAL
Sinclair C OstroskyJapanAsiya Javayant QUALIFIED
Kadeem Y KuskoJapanOnyama Limba RENEWAL
Johnson Z DarakjyRussiaAsiya Javayant QUALIFIED
Leon M GillianBrazilAsiya Javayant NEGOTIATION
Stacey Y GlickArgentinaElwin Sharvill PROPOSAL
Cody W VocelkaFranceXuxue Feng UNQUALIFIED
Juan N KuskoUnited KingdomXuxue Feng NEW
Leja O OldroydAustraliaBernardo Dominic UNQUALIFIED
Ricardo P MaletItalyElwin Sharvill RENEWAL
Jones A OldroydSpainOnyama Limba NEGOTIATION
Tony R FigeroaGermanyOnyama Limba NEW
Johnson N GauchoAustraliaXuxue Feng UNQUALIFIED
Murillo I NestleArgentinaStephen Shaw UNQUALIFIED
Izzy B CampainArgentinaIvan Magalhaes NEGOTIATION
Alejandro H NickaSpainAsiya Javayant QUALIFIED
Antonio H IturbideBrazilOnyama Limba NEW
Jefferson Z InouyeRussiaBernardo Dominic RENEWAL
Mujtaba Z StockhamRussiaOnyama Limba QUALIFIED
Emily A GlickItalyOnyama Limba UNQUALIFIED
Francesco P NestleRussiaOnyama Limba RENEWAL
Kaitlin H CampainFranceStephen Shaw QUALIFIED
Sinclair X SergiRussiaAnna Fali UNQUALIFIED
Chavez A CaldareraJapanElwin Sharvill UNQUALIFIED
Wickens X SergiAustraliaAmy Elsner QUALIFIED
Chavez R SergiRussiaOnyama Limba PROPOSAL
Maria C MorascaCanadaOnyama Limba UNQUALIFIED
Darci E OldroydAustraliaXuxue Feng NEGOTIATION
Morrow M GillianBrazilBernardo Dominic UNQUALIFIED
James O VenereUnited KingdomIoni Bowcher RENEWAL
David B WhobreySpainIoni Bowcher PROPOSAL
Smith X FollerSpainStephen Shaw UNQUALIFIED
Misaki R NickaJapanOnyama Limba NEW
David U AmigonUnited KingdomIvan Magalhaes PROPOSAL
Francesco J NickaItalyAnna Fali NEW
Wickens G VocelkaBrazilAnna Fali UNQUALIFIED
Silvio F KuskoArgentinaAnna Fali NEW
Smith N CaudyBrazilElwin Sharvill RENEWAL
Emily J GauchoGermanyElwin Sharvill RENEWAL
Octavia E RoysterJapanStephen Shaw PROPOSAL
David G StensethItalyBernardo Dominic NEW
Rodrigues K TollnerSpainIoni Bowcher RENEWAL
Juan I PaprockiItalyBernardo Dominic UNQUALIFIED
Cody Z SchemmerAustraliaAnna Fali UNQUALIFIED
Julie H CaudyArgentinaAsiya Javayant PROPOSAL
James T BriddickJapanAmy Elsner NEW
Rodrigues T KolmetzItalyBernardo Dominic QUALIFIED
Aditya A IturbideCanadaStephen Shaw QUALIFIED
Julie F BriddickCanadaIoni Bowcher NEGOTIATION
David Y KolmetzCanadaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Aditya V AlbaresAustraliaXuxue Feng NEGOTIATION
Morrow O KuskoIndiaIoni Bowcher QUALIFIED
Salvatore W PerinSpainAsiya Javayant QUALIFIED
Wickens Y AmigonArgentinaAsiya Javayant PROPOSAL
Maria O FollerJapanIvan Magalhaes RENEWAL
Alejandro C AmigonRussiaIoni Bowcher NEW
Aika E PaprockiSpainIvan Magalhaes RENEWAL
Octavia K DarakjyRussiaXuxue Feng QUALIFIED
Francesco W MorascaRussiaIvan Magalhaes UNQUALIFIED
Munro U MorascaAustraliaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore C BriddickBrazil2026-07-01Feltz Printing Service NEGOTIATION61Stephen Shaw
1001Morrow L GarufiArgentina2026-06-25Chanay, Jeffrey A Esq NEW22Stephen Shaw
1002Kadeem L MacleadUnited Kingdom2026-06-10Truhlar And Truhlar Attys UNQUALIFIED17Asiya Javayant
1003Antonio C GillianJapan2026-06-12Benton, John B Jr NEW61Bernardo Dominic
1004Rodrigues S KolmetzIndia2026-06-18Chemel, James L Cpa NEGOTIATION6Elwin Sharvill
1005Stacey H PoquetteItaly2026-07-06Feiner Bros NEW97Onyama Limba
1006Jeanfrancois A VenereArgentina2026-07-04Chemel, James L Cpa UNQUALIFIED46Asiya Javayant
1007David O GlickCanada2026-06-27Buckley Miller Wright QUALIFIED74Ivan Magalhaes
1008Aditya V RoysterUnited Kingdom2026-07-03Rousseaux, Michael Esq QUALIFIED51Ivan Magalhaes
1009Faith N RimGermany2026-06-23Buckley Miller Wright NEGOTIATION27Asiya Javayant
1010Leja D PoquetteCanada2026-07-02Commercial Press NEW59Bernardo Dominic
1011Greenwood A FerenczBrazil2026-06-26Printing Dimensions UNQUALIFIED6Anna Fali
1012Cody T InouyeIndia2026-06-28King, Christopher A Esq PROPOSAL95Elwin Sharvill
1013Leon V KolmetzUnited Kingdom2026-07-04Chapman, Ross E Esq UNQUALIFIED19Stephen Shaw
1014Faith P MaletFrance2026-06-27Chanay, Jeffrey A Esq RENEWAL10Onyama Limba
1015Arvin F DilliardItaly2026-06-29Feiner Bros UNQUALIFIED31Anna Fali
1016Jefferson E PaprockiBrazil2026-07-02Dorl, James J Esq QUALIFIED70Asiya Javayant
1017Alejandro W SlusarskiBrazil2026-07-03Dorl, James J Esq RENEWAL55Asiya Javayant
1018Isabel I PaprockiIndia2026-07-02King, Christopher A Esq PROPOSAL22Bernardo Dominic
1019Cody Z MacleadJapan2026-06-21Chapman, Ross E Esq NEW16Anna Fali
1020Tony Z StensethSpain2026-07-03Rousseaux, Michael Esq QUALIFIED35Anna Fali
1021Munro I BowleyItaly2026-06-15Morlong Associates RENEWAL4Ioni Bowcher
1022Chavez R WieserArgentina2026-06-27Dorl, James J Esq QUALIFIED31Anna Fali
1023Aditya R DilliardGermany2026-07-02Chapman, Ross E Esq PROPOSAL48Asiya Javayant
1024Kaitlin P RimSpain2026-06-24King, Christopher A Esq PROPOSAL99Xuxue Feng
1025Wickens L StockhamIndia2026-06-16Commercial Press PROPOSAL36Amy Elsner
1026Chavez A FollerUnited Kingdom2026-07-07Chapman, Ross E Esq UNQUALIFIED46Ioni Bowcher
1027Francesco A GillianIndia2026-06-14Feltz Printing Service PROPOSAL26Stephen Shaw
1028Mayumi E WieserArgentina2026-07-02Morlong Associates QUALIFIED78Stephen Shaw
1029Adams B SaylorsCanada2026-06-25Truhlar And Truhlar Attys NEGOTIATION97Onyama Limba
1030Smith Y SaylorsUnited Kingdom2026-06-23Truhlar And Truhlar Attys UNQUALIFIED50Asiya Javayant
1031Izzy S FlosiFrance2026-06-17Feltz Printing Service UNQUALIFIED0Anna Fali
1032Salvatore K CaldareraFrance2026-07-09Dorl, James J Esq NEGOTIATION3Ivan Magalhaes
1033Aruna T AlbaresJapan2026-06-14Feltz Printing Service QUALIFIED44Amy Elsner
1034Emily F MaletAustralia2026-06-24Feiner Bros PROPOSAL27Elwin Sharvill
1035Emily K MaletRussia2026-06-21Dorl, James J Esq PROPOSAL54Elwin Sharvill
1036Nicolas H FigeroaUnited Kingdom2026-06-22Feltz Printing Service QUALIFIED39Onyama Limba
1037Julie X BowleySpain2026-06-25Printing Dimensions UNQUALIFIED9Bernardo Dominic
1038Ashley S DoeSpain2026-06-24Feiner Bros RENEWAL50Asiya Javayant
1039Octavia M InouyeArgentina2026-06-14Chanay, Jeffrey A Esq NEGOTIATION39Anna Fali
1040Adams P MarrierArgentina2026-07-08Buckley Miller Wright NEGOTIATION24Amy Elsner
1041Kadeem S RimSpain2026-06-12Rousseaux, Michael Esq RENEWAL23Bernardo Dominic
1042Ricardo Q PaprockiArgentina2026-06-29Morlong Associates NEGOTIATION92Elwin Sharvill
1043Aditya V RulapaughSpain2026-06-15Rangoni Of Florence NEW19Stephen Shaw
1044Sinclair X VocelkaSpain2026-06-26Feiner Bros NEW64Ivan Magalhaes
1045Leon U PaprockiCanada2026-06-24Benton, John B Jr UNQUALIFIED40Ioni Bowcher
1046Mayumi D RutaArgentina2026-06-29Printing Dimensions PROPOSAL6Ivan Magalhaes
1047Kaitlin E OstroskyRussia2026-06-11Truhlar And Truhlar Attys RENEWAL96Xuxue Feng
1048Sinclair V ButtBrazil2026-06-23Chapman, Ross E Esq QUALIFIED46Stephen Shaw
1049Leon Z VenereSpain2026-06-14Chanay, Jeffrey A Esq QUALIFIED23Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Arvin Z GauchoCanadaOnyama Limba RENEWAL
Greenwood P KuskoSpainAnna Fali RENEWAL
Maria X KuskoItalyAmy Elsner UNQUALIFIED
James F BowleyFranceOnyama Limba NEW
Stacey G AmigonRussiaIvan Magalhaes QUALIFIED
Leon M DarakjyGermanyIoni Bowcher NEW
Kadeem I FigeroaRussiaAsiya Javayant UNQUALIFIED
Greenwood W StensethCanadaStephen Shaw QUALIFIED
Claire C OldroydUnited KingdomIoni Bowcher NEGOTIATION
Ivar H VenereCanadaAsiya Javayant QUALIFIED
Stacey G OstroskyJapanElwin Sharvill QUALIFIED
Morrow W BowleyCanadaAnna Fali PROPOSAL
Francesco K WhobreyGermanyBernardo Dominic UNQUALIFIED
Smith F FollerIndiaIvan Magalhaes NEW
Alejandro C OstroskyUnited KingdomAsiya Javayant NEW
Nicolas K GauchoIndiaOnyama Limba RENEWAL
Mayumi C MaletItalyStephen Shaw RENEWAL
Maisha J CampainJapanAsiya Javayant RENEWAL
Wickens O CaldareraUnited KingdomElwin Sharvill NEGOTIATION
Mayumi M AlbaresArgentinaAnna Fali QUALIFIED
Maisha Q WaycottBrazilIvan Magalhaes NEW
Chavez S GillianArgentinaAnna Fali QUALIFIED
Deepesh A FollerGermanyIoni Bowcher NEW
Clifford S DoeIndiaOnyama Limba NEGOTIATION
Maisha O ButtItalyStephen Shaw NEGOTIATION
Johnson X WhobreyIndiaAmy Elsner UNQUALIFIED
Munro L CampainFranceElwin Sharvill NEGOTIATION
Tony Z KuskoFranceElwin Sharvill QUALIFIED
Antonio G SaylorsGermanyAmy Elsner PROPOSAL
Morrow O MaletRussiaElwin Sharvill NEGOTIATION
Julie N GillianIndiaStephen Shaw NEGOTIATION
Clifford N BologniaJapanElwin Sharvill RENEWAL
Greenwood Z FerenczRussiaAnna Fali RENEWAL
Jefferson P MaletJapanIoni Bowcher UNQUALIFIED
Octavia B KolmetzAustraliaAsiya Javayant RENEWAL
Kadeem A SergiJapanElwin Sharvill UNQUALIFIED
Kadeem A SaylorsBrazilElwin Sharvill UNQUALIFIED
Tony L OstroskyAustraliaIvan Magalhaes RENEWAL
Adams M RoysterJapanAsiya Javayant NEW
Aruna I RoysterRussiaAnna Fali QUALIFIED
Salvatore J CaudyItalyXuxue Feng NEGOTIATION
Aika M FollerSpainAmy Elsner QUALIFIED
Aika D FerenczAustraliaAnna Fali PROPOSAL
Aruna S WhobreyIndiaXuxue Feng QUALIFIED
David I BriddickCanadaAsiya Javayant QUALIFIED
Rodrigues O NestleCanadaStephen Shaw NEW
Wickens Q ButtSpainStephen Shaw UNQUALIFIED
Isabel C RulapaughFranceIvan Magalhaes NEGOTIATION
Izzy I ButtSpainAnna Fali UNQUALIFIED
Deepesh A IturbideAustraliaAmy Elsner RENEWAL
Frozen Columns
Name
Silvio N Albares
Johnson N Venere
Antonio W Iturbide
Sinclair M Kusko
Silvio E Bolognia
Jeanfrancois T Nestle
Morrow C Campain
Deepesh D Oldroyd
Salvatore J Caudy
Stacey S Caudy
Munro D Flosi
Silvio J Bowley
James D Vocelka
Mujtaba T Garufi
Alejandro S Flosi
Aditya C Dilliard
Wickens N Chui
Morrow T Tollner
Maisha A Albares
Ivar Q Kusko
Jones E Schemmer
Aika L Malet
Jennifer N Nicka
Wickens T Gaucho
Clifford Q Inouye
Aruna M Waycott
Salvatore R Kusko
Clifford N Venere
Rodrigues L Oldroyd
Murillo S Shinko
Cody L Malet
Salvatore H Royster
Murillo C Ruta
Nicolas L Shinko
Salvatore K Morasca
Deepesh B Saylors
Jefferson X Schemmer
Emily U Glick
Stacey F Schemmer
Emily F Campain
Sinclair N Vocelka
Ashley I Foller
Aruna P Malet
Costa T Sergi
Kaitlin K Tollner
Leja L Bowley
David G Bowley
Smith I Dilliard
Isabel G Bowley
Aruna B Maclead
IdCountryDate
1000Spain2026-07-06
1001United Kingdom2026-07-03
1002Brazil2026-06-24
1003Argentina2026-06-11
1004France2026-07-08
1005India2026-06-13
1006Italy2026-06-28
1007Japan2026-06-15
1008Canada2026-06-20
1009Germany2026-07-07
1010France2026-06-12
1011Spain2026-07-03
1012India2026-06-28
1013Australia2026-06-17
1014Spain2026-06-21
1015Germany2026-06-12
1016Argentina2026-06-12
1017Italy2026-06-26
1018Brazil2026-06-21
1019Russia2026-06-25
1020Russia2026-07-01
1021Canada2026-06-21
1022India2026-06-10
1023Australia2026-07-09
1024France2026-06-22
1025Germany2026-06-19
1026Italy2026-06-29
1027Argentina2026-06-16
1028India2026-07-07
1029India2026-07-04
1030Canada2026-06-15
1031Argentina2026-07-07
1032France2026-06-23
1033Japan2026-06-10
1034Germany2026-07-04
1035Japan2026-06-11
1036France2026-06-17
1037Brazil2026-07-06
1038Australia2026-06-10
1039Argentina2026-06-30
1040Argentina2026-06-24
1041United Kingdom2026-06-23
1042Canada2026-07-04
1043Japan2026-06-27
1044Japan2026-07-04
1045Italy2026-07-06
1046India2026-07-08
1047France2026-06-16
1048United Kingdom2026-06-19
1049France2026-07-05

On-Demand Data

NameIdCountryDate
Leon M Stockham1000Canada2026-07-04
Julie C Bowley1001Japan2026-07-07
Mayumi P Butt1002Spain2026-06-28
Kadeem Y Bolognia1003Germany2026-06-27
Clifford V Chui1004India2026-07-07
Greenwood U Maclead1005Russia2026-07-06
Smith A Maclead1006Brazil2026-06-21
David R Darakjy1007Italy2026-07-06
Antonio P Kolmetz1008Spain2026-06-10
Costa Z Stockham1009Canada2026-06-13
Izzy O Albares1010Spain2026-06-15
Darci A Caldarera1011Spain2026-06-13
Salvatore W Nicka1012Russia2026-07-09
Silvio X Poquette1013Canada2026-06-26
Deepesh V Bowley1014Spain2026-07-04
Jefferson V Malet1015India2026-06-21
Tony U Ferencz1016Italy2026-06-12
Ricardo P Bowley1017Australia2026-07-05
Rodrigues H Garufi1018France2026-06-28
Cody X Albares1019France2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson X ShinkoItalyIoni Bowcher PROPOSAL
Octavia G VenereArgentinaOnyama Limba RENEWAL
Jefferson H MarrierItalyOnyama Limba QUALIFIED
Rodrigues F MaletArgentinaIoni Bowcher QUALIFIED
Izzy Q TollnerSpainStephen Shaw NEGOTIATION
Chavez Q MorascaItalyOnyama Limba PROPOSAL
Julie P MaletBrazilBernardo Dominic QUALIFIED
Adams I StensethSpainIoni Bowcher QUALIFIED
Emily K GlickGermanyElwin Sharvill UNQUALIFIED
Mujtaba W FollerArgentinaElwin Sharvill PROPOSAL
Tony T SergiJapanAmy Elsner QUALIFIED
Rodrigues D ShinkoIndiaAmy Elsner UNQUALIFIED
Jennifer H StensethItalyIvan Magalhaes UNQUALIFIED
Silvio C KolmetzArgentinaBernardo Dominic UNQUALIFIED
Morrow B InouyeBrazilOnyama Limba UNQUALIFIED
Juan M MarrierItalyIoni Bowcher NEGOTIATION
Sinclair C AlbaresUnited KingdomElwin Sharvill QUALIFIED
Aika J RulapaughCanadaXuxue Feng UNQUALIFIED
Alejandro F MacleadGermanyIvan Magalhaes UNQUALIFIED
Octavia V CaudySpainAsiya Javayant PROPOSAL
Francesco B PerinItalyOnyama Limba RENEWAL
Ashley G NickaRussiaAmy Elsner PROPOSAL
Arvin C MacleadSpainOnyama Limba NEW
Ashley B PaprockiIndiaElwin Sharvill NEGOTIATION
Costa K NestleUnited KingdomAnna Fali RENEWAL
Izzy I OldroydGermanyStephen Shaw QUALIFIED
Arvin X MarrierRussiaStephen Shaw NEGOTIATION
Mujtaba X RutaItalyXuxue Feng RENEWAL
Ricardo I OstroskyGermanyIoni Bowcher NEW
Faith D VocelkaIndiaAsiya Javayant NEW
Misaki S PaprockiIndiaIvan Magalhaes RENEWAL
Chavez R CaudyFranceBernardo Dominic NEW
Leja M GlickArgentinaAsiya Javayant PROPOSAL
Octavia K MaletIndiaStephen Shaw PROPOSAL
Maria U AlbaresGermanyIoni Bowcher UNQUALIFIED
Izzy Z FlosiBrazilXuxue Feng NEGOTIATION
Johnson A FerenczAustraliaAsiya Javayant PROPOSAL
Kadeem Y NestleRussiaAsiya Javayant NEW
Emily B ButtBrazilAnna Fali UNQUALIFIED
Francesco X CampainItalyStephen Shaw UNQUALIFIED

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