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
Mujtaba K GarufiGermanyIoni Bowcher NEW
Maisha K BowleyFranceIoni Bowcher NEW
Isabel A AmigonFranceAmy Elsner RENEWAL
Kadeem A RulapaughArgentinaOnyama Limba NEW
Isabel F NickaFranceElwin Sharvill UNQUALIFIED
Jefferson E VenereIndiaXuxue Feng UNQUALIFIED
Jones X MaletUnited KingdomElwin Sharvill RENEWAL
Jefferson W KolmetzJapanElwin Sharvill NEGOTIATION
Tony N RoysterSpainIoni Bowcher NEGOTIATION
Silvio W RulapaughGermanyIoni Bowcher NEW
Clifford B CaldareraAustraliaAmy Elsner NEGOTIATION
Aruna P BowleyCanadaXuxue Feng QUALIFIED
Juan R AmigonJapanAsiya Javayant PROPOSAL
Salvatore J PerinItalyXuxue Feng NEGOTIATION
Mayumi N KuskoSpainAnna Fali UNQUALIFIED
Octavia W MaletBrazilAnna Fali QUALIFIED
Clifford D RutaBrazilStephen Shaw QUALIFIED
Leon R CaudySpainAsiya Javayant UNQUALIFIED
Jeanfrancois K MorascaBrazilBernardo Dominic NEGOTIATION
Ivar Q AmigonRussiaStephen Shaw NEW
Kaitlin Q StockhamGermanyAnna Fali NEGOTIATION
Julie C WaycottRussiaOnyama Limba NEGOTIATION
Julie L PaprockiJapanOnyama Limba RENEWAL
Morrow C WieserUnited KingdomXuxue Feng NEGOTIATION
Cody K PaprockiGermanyAnna Fali PROPOSAL
David Y PaprockiUnited KingdomAmy Elsner NEGOTIATION
Claire C GlickFranceBernardo Dominic PROPOSAL
Mujtaba H FigeroaArgentinaAmy Elsner RENEWAL
Julie O BowleyArgentinaIoni Bowcher NEGOTIATION
Johnson P ButtAustraliaAnna Fali RENEWAL
Aditya L DilliardGermanyElwin Sharvill NEGOTIATION
Izzy V BowleyUnited KingdomAnna Fali RENEWAL
Wickens J FigeroaArgentinaIoni Bowcher UNQUALIFIED
Faith H BologniaFranceAmy Elsner RENEWAL
Deepesh F KolmetzBrazilAsiya Javayant PROPOSAL
Johnson V WhobreyBrazilOnyama Limba UNQUALIFIED
Jennifer S DoeUnited KingdomXuxue Feng NEGOTIATION
Francesco L CaudyItalyIoni Bowcher RENEWAL
Mujtaba X WaycottBrazilBernardo Dominic QUALIFIED
Ashley I InouyeAustraliaOnyama Limba NEW
Maria K KuskoGermanyOnyama Limba PROPOSAL
Faith H WieserBrazilElwin Sharvill UNQUALIFIED
Rodrigues V PerinJapanAnna Fali UNQUALIFIED
Munro X WhobreyCanadaXuxue Feng RENEWAL
Faith M MaletUnited KingdomXuxue Feng RENEWAL
Kaitlin P OldroydAustraliaOnyama Limba PROPOSAL
Morrow T DarakjyFranceIvan Magalhaes NEGOTIATION
Mujtaba F FlosiSpainStephen Shaw UNQUALIFIED
Greenwood E ButtItalyXuxue Feng QUALIFIED
Deepesh J TollnerArgentinaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Aditya V NickaGermanyIoni Bowcher NEGOTIATION
Francesco P MarrierArgentinaXuxue Feng QUALIFIED
Ricardo E TollnerItalyStephen Shaw RENEWAL
Kaitlin Q AlbaresAustraliaBernardo Dominic UNQUALIFIED
Munro Y ChuiItalyOnyama Limba PROPOSAL
Francesco D FerenczAustraliaXuxue Feng NEGOTIATION
James F RutaUnited KingdomIoni Bowcher UNQUALIFIED
Leja E OstroskyUnited KingdomAnna Fali NEGOTIATION
Aruna N MaletUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin E GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens W StockhamItaly2026-07-15Printing Dimensions RENEWAL96Asiya Javayant
1001Faith R SergiIndia2026-08-09Buckley Miller Wright UNQUALIFIED57Bernardo Dominic
1002Deepesh U PoquetteIndia2026-08-04Feltz Printing Service RENEWAL10Bernardo Dominic
1003Mujtaba Q MaletRussia2026-07-19Printing Dimensions RENEWAL16Stephen Shaw
1004Faith C RoysterItaly2026-07-23Commercial Press QUALIFIED70Ioni Bowcher
1005Ricardo H RoysterItaly2026-07-22Rangoni Of Florence RENEWAL18Asiya Javayant
1006Tony H CaudyUnited Kingdom2026-08-03Chemel, James L Cpa UNQUALIFIED19Onyama Limba
1007Misaki U GlickItaly2026-07-17Rangoni Of Florence UNQUALIFIED16Onyama Limba
1008Smith M KuskoIndia2026-07-20Rangoni Of Florence QUALIFIED99Anna Fali
1009Ricardo U VenereRussia2026-07-14Feiner Bros PROPOSAL43Ioni Bowcher
1010Mujtaba S SaylorsJapan2026-07-21Printing Dimensions RENEWAL77Amy Elsner
1011Emily R DarakjyItaly2026-08-05Rousseaux, Michael Esq NEW19Elwin Sharvill
1012Emily C ButtCanada2026-07-30Rangoni Of Florence RENEWAL60Onyama Limba
1013Jennifer R MaletArgentina2026-07-29King, Christopher A Esq UNQUALIFIED34Elwin Sharvill
1014Francesco K SchemmerUnited Kingdom2026-07-19Truhlar And Truhlar Attys NEW51Amy Elsner
1015Jefferson D WieserIndia2026-07-25Chemel, James L Cpa PROPOSAL53Elwin Sharvill
1016Jones L BriddickIndia2026-07-20Feltz Printing Service RENEWAL36Stephen Shaw
1017Clifford U RutaJapan2026-08-09Morlong Associates PROPOSAL95Elwin Sharvill
1018Johnson V WhobreySpain2026-08-06Rousseaux, Michael Esq NEGOTIATION99Xuxue Feng
1019Murillo B BologniaJapan2026-08-06Dorl, James J Esq RENEWAL17Amy Elsner
1020Emily R NickaCanada2026-07-19Rousseaux, Michael Esq RENEWAL20Anna Fali
1021Murillo S NickaAustralia2026-07-17Chemel, James L Cpa RENEWAL31Elwin Sharvill
1022Aika P WaycottGermany2026-07-22Feltz Printing Service NEGOTIATION5Xuxue Feng
1023Kaitlin C SchemmerIndia2026-07-28Chapman, Ross E Esq RENEWAL31Onyama Limba
1024Izzy F GarufiBrazil2026-07-19Benton, John B Jr RENEWAL65Asiya Javayant
1025Smith U GarufiArgentina2026-07-18Dorl, James J Esq NEGOTIATION95Anna Fali
1026Octavia F WaycottRussia2026-08-04Rangoni Of Florence UNQUALIFIED68Ivan Magalhaes
1027Greenwood P RutaCanada2026-08-10Chapman, Ross E Esq QUALIFIED5Elwin Sharvill
1028Stacey D CaldareraCanada2026-07-27Chapman, Ross E Esq QUALIFIED38Stephen Shaw
1029Johnson O FlosiItaly2026-08-06Commercial Press QUALIFIED49Ivan Magalhaes
1030Faith M BriddickItaly2026-07-25Rangoni Of Florence NEGOTIATION59Anna Fali
1031Silvio P RoysterFrance2026-08-01Rousseaux, Michael Esq UNQUALIFIED92Amy Elsner
1032Kaitlin A StockhamRussia2026-08-05King, Christopher A Esq UNQUALIFIED73Ioni Bowcher
1033Ivar G RulapaughAustralia2026-07-25Chanay, Jeffrey A Esq QUALIFIED99Asiya Javayant
1034Maria E BriddickArgentina2026-08-08Morlong Associates NEW94Amy Elsner
1035Darci T CaudyGermany2026-07-25Morlong Associates QUALIFIED66Ivan Magalhaes
1036Alejandro N ButtIndia2026-07-14Printing Dimensions NEGOTIATION19Amy Elsner
1037Rodrigues C NickaFrance2026-08-08Feltz Printing Service UNQUALIFIED73Ioni Bowcher
1038Silvio Q NestleIndia2026-07-22Buckley Miller Wright NEW34Amy Elsner
1039Alejandro Y MarrierJapan2026-07-18Feiner Bros RENEWAL15Bernardo Dominic
1040Octavia D GlickFrance2026-07-27Rousseaux, Michael Esq QUALIFIED27Ioni Bowcher
1041Jennifer H GlickFrance2026-07-23Benton, John B Jr UNQUALIFIED71Ivan Magalhaes
1042Kaitlin Q BologniaItaly2026-08-07Chapman, Ross E Esq UNQUALIFIED69Xuxue Feng
1043Leja O RoysterAustralia2026-08-03Rangoni Of Florence NEW26Ioni Bowcher
1044Murillo Y SchemmerBrazil2026-07-31Dorl, James J Esq NEGOTIATION1Elwin Sharvill
1045Kadeem J AlbaresItaly2026-07-22Truhlar And Truhlar Attys UNQUALIFIED33Stephen Shaw
1046Jennifer Z VocelkaItaly2026-07-23Feltz Printing Service RENEWAL59Ioni Bowcher
1047Aika Q WieserFrance2026-07-23Truhlar And Truhlar Attys NEGOTIATION24Anna Fali
1048Leja F VenereArgentina2026-07-23Commercial Press RENEWAL44Elwin Sharvill
1049Misaki I WaycottUnited Kingdom2026-07-24Feiner Bros NEW76Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Costa Q FollerIndiaIoni Bowcher UNQUALIFIED
Johnson U FerenczGermanyElwin Sharvill NEW
Murillo B KuskoRussiaAsiya Javayant NEW
Jones M RutaSpainElwin Sharvill NEGOTIATION
Leja Y BologniaJapanAmy Elsner RENEWAL
Leja Z AmigonItalyIoni Bowcher NEW
Jones Z DarakjyAustraliaAmy Elsner RENEWAL
Silvio O WieserJapanOnyama Limba NEW
Leja M BologniaArgentinaAsiya Javayant NEGOTIATION
Octavia F CampainBrazilAnna Fali PROPOSAL
Clifford V MorascaJapanBernardo Dominic QUALIFIED
Morrow C DoeSpainBernardo Dominic RENEWAL
Francesco B FerenczItalyAmy Elsner QUALIFIED
Mayumi T WaycottJapanBernardo Dominic NEGOTIATION
James C SlusarskiUnited KingdomIoni Bowcher NEW
Nicolas H VocelkaBrazilAnna Fali QUALIFIED
David J GauchoBrazilElwin Sharvill RENEWAL
Ricardo S BologniaIndiaXuxue Feng UNQUALIFIED
Aditya Q KolmetzArgentinaXuxue Feng NEGOTIATION
Smith E RulapaughArgentinaOnyama Limba RENEWAL
Octavia H MaletFranceXuxue Feng NEGOTIATION
Morrow V VocelkaJapanElwin Sharvill RENEWAL
Ricardo R SlusarskiSpainXuxue Feng QUALIFIED
Jennifer F StockhamUnited KingdomAmy Elsner NEGOTIATION
James G GauchoBrazilIoni Bowcher NEW
Cody N VocelkaBrazilAsiya Javayant RENEWAL
Maisha U MarrierCanadaBernardo Dominic RENEWAL
Sinclair T KuskoCanadaBernardo Dominic QUALIFIED
Jeanfrancois G AlbaresFranceElwin Sharvill UNQUALIFIED
Faith R CaudyIndiaIvan Magalhaes NEGOTIATION
Darci T ShinkoIndiaAmy Elsner QUALIFIED
Leja U SlusarskiRussiaIvan Magalhaes NEW
Greenwood V GauchoBrazilAnna Fali PROPOSAL
Isabel H FlosiJapanAmy Elsner RENEWAL
Munro L GlickArgentinaIoni Bowcher RENEWAL
Wickens L GauchoItalyAsiya Javayant QUALIFIED
Darci O StockhamJapanElwin Sharvill UNQUALIFIED
Mayumi O SaylorsArgentinaAnna Fali NEGOTIATION
Claire Q GarufiGermanyAnna Fali NEGOTIATION
Aruna O ShinkoRussiaAmy Elsner PROPOSAL
Leja B PerinJapanIoni Bowcher PROPOSAL
Darci J GlickBrazilElwin Sharvill NEGOTIATION
Sinclair I WieserRussiaAmy Elsner NEGOTIATION
Sinclair R FigeroaFranceBernardo Dominic RENEWAL
Aruna W NickaJapanAsiya Javayant RENEWAL
Kaitlin Y InouyeFranceElwin Sharvill QUALIFIED
Francesco V DoeSpainBernardo Dominic NEW
Deepesh D BologniaAustraliaXuxue Feng UNQUALIFIED
Alejandro A CampainRussiaElwin Sharvill NEW
David O FigeroaUnited KingdomXuxue Feng PROPOSAL
Frozen Columns
Name
James K Kusko
Alejandro Q Figeroa
Leon M Dilliard
Aruna C Amigon
Nicolas Q Foller
Nicolas I Maclead
Octavia I Royster
Jeanfrancois J Doe
Morrow F Rim
Clifford U Stockham
Johnson F Butt
Arvin H Bolognia
Jeanfrancois J Kusko
Isabel D Inouye
Greenwood L Garufi
Izzy V Bolognia
Deepesh D Malet
Costa D Inouye
Ricardo K Poquette
Murillo C Schemmer
Izzy T Royster
Greenwood A Shinko
Faith K Bolognia
Faith V Stockham
Munro G Ferencz
Sinclair H Bowley
Ashley C Bolognia
Munro O Kolmetz
Ivar W Briddick
Mujtaba T Campain
Clifford G Schemmer
Ricardo T Whobrey
Aika R Paprocki
Jones A Caldarera
Chavez N Vocelka
Antonio V Rim
Jefferson N Amigon
Aika L Stenseth
Jennifer P Maclead
Jones A Figeroa
Francesco U Foller
Silvio Z Whobrey
Aika Z Sergi
Johnson V Ruta
Faith N Caldarera
Ivar P Maclead
Kadeem K Caldarera
Kadeem W Poquette
Maria N Vocelka
Morrow T Stenseth
IdCountryDate
1000Australia2026-07-31
1001Brazil2026-07-31
1002France2026-07-16
1003Germany2026-07-29
1004France2026-08-04
1005Australia2026-07-23
1006France2026-07-21
1007Australia2026-07-17
1008Argentina2026-07-25
1009United Kingdom2026-07-24
1010United Kingdom2026-07-26
1011Japan2026-07-23
1012India2026-08-05
1013India2026-07-31
1014Australia2026-08-04
1015Germany2026-08-11
1016France2026-07-18
1017Germany2026-07-28
1018United Kingdom2026-07-23
1019Japan2026-08-03
1020Canada2026-07-17
1021India2026-08-11
1022Canada2026-07-19
1023India2026-08-02
1024France2026-07-27
1025Canada2026-07-28
1026Japan2026-07-28
1027United Kingdom2026-07-21
1028France2026-08-04
1029Spain2026-07-17
1030Australia2026-07-15
1031Canada2026-08-03
1032Brazil2026-08-01
1033Germany2026-07-29
1034Australia2026-08-11
1035Japan2026-07-23
1036Russia2026-08-01
1037Russia2026-08-03
1038Spain2026-08-03
1039Italy2026-08-02
1040Spain2026-07-20
1041France2026-07-21
1042Germany2026-07-19
1043Italy2026-08-10
1044Argentina2026-08-10
1045Spain2026-07-16
1046Canada2026-07-22
1047Australia2026-08-12
1048Japan2026-07-16
1049Spain2026-07-23

On-Demand Data

NameIdCountryDate
Arvin H Venere1000Germany2026-07-18
Munro V Stenseth1001Canada2026-08-11
Greenwood P Nicka1002Russia2026-08-11
Murillo M Figeroa1003Australia2026-07-28
Emily X Morasca1004Australia2026-08-02
Kadeem B Bolognia1005Russia2026-07-28
Misaki U Rim1006Australia2026-08-02
Mayumi X Dilliard1007Canada2026-07-15
Claire Y Bowley1008Russia2026-07-31
Clifford A Glick1009India2026-07-15
Greenwood T Waycott1010Russia2026-07-16
Kadeem K Perin1011France2026-07-16
David J Iturbide1012Argentina2026-07-21
Salvatore C Wieser1013France2026-08-04
Jefferson X Saylors1014Canada2026-08-08
Alejandro L Dilliard1015Canada2026-07-15
Emily H Malet1016Argentina2026-07-20
Deepesh B Glick1017Russia2026-08-11
Sinclair D Stockham1018Australia2026-08-04
Clifford M Amigon1019Japan2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie T FerenczArgentinaAmy Elsner UNQUALIFIED
Maria V RoysterItalyBernardo Dominic PROPOSAL
Tony Z NestleArgentinaStephen Shaw UNQUALIFIED
Ivar A TollnerRussiaOnyama Limba UNQUALIFIED
Octavia O RimJapanIvan Magalhaes PROPOSAL
Jennifer O MorascaSpainIvan Magalhaes NEGOTIATION
Izzy X PoquetteIndiaIvan Magalhaes NEW
Mayumi N StockhamUnited KingdomIoni Bowcher PROPOSAL
Izzy E BologniaFranceElwin Sharvill RENEWAL
Jones V SchemmerGermanyIvan Magalhaes QUALIFIED
Ricardo A CaudyBrazilXuxue Feng QUALIFIED
Maria H InouyeJapanAmy Elsner PROPOSAL
Ricardo J CaudyArgentinaAmy Elsner PROPOSAL
Jennifer Q InouyeJapanAnna Fali PROPOSAL
Francesco O KuskoRussiaIoni Bowcher NEW
Chavez S ShinkoBrazilOnyama Limba NEGOTIATION
Ivar W SchemmerRussiaIoni Bowcher UNQUALIFIED
Johnson F FigeroaGermanyAnna Fali QUALIFIED
Alejandro J KolmetzRussiaIoni Bowcher PROPOSAL
Jeanfrancois C WieserSpainAmy Elsner UNQUALIFIED
Emily K KolmetzAustraliaXuxue Feng QUALIFIED
Maisha M GlickIndiaElwin Sharvill UNQUALIFIED
Johnson F FlosiArgentinaBernardo Dominic QUALIFIED
Rodrigues O BowleyRussiaStephen Shaw NEGOTIATION
Greenwood Y DarakjyItalyAsiya Javayant PROPOSAL
Alejandro D CampainBrazilBernardo Dominic UNQUALIFIED
Jennifer G VocelkaArgentinaIvan Magalhaes NEGOTIATION
Kadeem H BowleyGermanyStephen Shaw NEW
Jones J TollnerUnited KingdomOnyama Limba NEGOTIATION
Johnson Q TollnerRussiaAnna Fali UNQUALIFIED
Costa A MacleadFranceIoni Bowcher NEW
Johnson W PoquetteFranceAnna Fali QUALIFIED
Sinclair R FerenczSpainXuxue Feng QUALIFIED
Sinclair G PaprockiBrazilXuxue Feng NEW
Smith H PerinFranceIvan Magalhaes RENEWAL
Isabel I NestleIndiaAnna Fali NEGOTIATION
Leon B ChuiUnited KingdomElwin Sharvill NEW
Kadeem F GlickItalyXuxue Feng NEGOTIATION
Ivar F DoeAustraliaElwin Sharvill NEW
Julie Q StensethItalyBernardo Dominic 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>