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
Jones U SaylorsFranceIoni Bowcher NEGOTIATION
Wickens H CampainJapanIvan Magalhaes RENEWAL
Aika Q MorascaRussiaBernardo Dominic NEW
Johnson T PerinItalyBernardo Dominic NEGOTIATION
Wickens U BologniaIndiaAmy Elsner QUALIFIED
Arvin I NickaUnited KingdomIoni Bowcher UNQUALIFIED
Silvio W NickaFranceBernardo Dominic RENEWAL
Alejandro R BowleyRussiaOnyama Limba RENEWAL
Claire S CaldareraArgentinaXuxue Feng RENEWAL
Tony K CaudyArgentinaXuxue Feng NEW
Munro I FollerItalyBernardo Dominic UNQUALIFIED
Alejandro Y BologniaBrazilAmy Elsner NEGOTIATION
Claire G MorascaArgentinaAmy Elsner RENEWAL
Kaitlin F WaycottGermanyIoni Bowcher NEGOTIATION
Claire Y DoeBrazilIvan Magalhaes NEGOTIATION
Nicolas I OstroskyJapanIoni Bowcher QUALIFIED
Leon B WieserItalyOnyama Limba NEW
Leon M FollerAustraliaAsiya Javayant RENEWAL
Kaitlin W RulapaughArgentinaOnyama Limba UNQUALIFIED
Nicolas B IturbideAustraliaAmy Elsner NEGOTIATION
Clifford X MaletIndiaOnyama Limba PROPOSAL
Munro K InouyeFranceStephen Shaw NEW
Antonio Y WaycottGermanyOnyama Limba UNQUALIFIED
Adams P PerinAustraliaStephen Shaw QUALIFIED
Nicolas N WhobreyArgentinaIoni Bowcher UNQUALIFIED
James H TollnerIndiaXuxue Feng PROPOSAL
Rodrigues Y RutaAustraliaBernardo Dominic QUALIFIED
Maria X WhobreyAustraliaOnyama Limba NEW
Leon N GlickIndiaAmy Elsner QUALIFIED
Octavia Z MorascaGermanyElwin Sharvill NEGOTIATION
Tony O OstroskyGermanyAsiya Javayant UNQUALIFIED
Smith Q PoquetteSpainElwin Sharvill NEGOTIATION
Silvio C DarakjyAustraliaAsiya Javayant RENEWAL
Sinclair G FlosiUnited KingdomAsiya Javayant QUALIFIED
Leja I DilliardJapanIvan Magalhaes RENEWAL
Ashley J ButtItalyElwin Sharvill QUALIFIED
Jennifer I PaprockiUnited KingdomBernardo Dominic RENEWAL
Jennifer M MacleadUnited KingdomAmy Elsner QUALIFIED
Silvio C VocelkaCanadaAnna Fali QUALIFIED
Ivar V ShinkoSpainBernardo Dominic QUALIFIED
Maisha T InouyeUnited KingdomElwin Sharvill QUALIFIED
Antonio G FigeroaIndiaIvan Magalhaes PROPOSAL
Maria J RimJapanIvan Magalhaes NEW
Emily G GauchoIndiaStephen Shaw PROPOSAL
Ivar B SchemmerSpainAsiya Javayant NEW
Kadeem H BriddickIndiaOnyama Limba RENEWAL
Arvin L FerenczCanadaElwin Sharvill NEGOTIATION
Ashley M DilliardArgentinaStephen Shaw NEGOTIATION
Maria H DoeAustraliaAmy Elsner RENEWAL
Ivar N KuskoAustraliaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Emily B RoysterArgentinaAsiya Javayant QUALIFIED
Morrow P SchemmerFranceXuxue Feng NEW
Jefferson Q BowleyBrazilElwin Sharvill UNQUALIFIED
Rodrigues Z CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Darci Q KuskoCanadaBernardo Dominic NEW
Aruna H SchemmerCanadaAmy Elsner NEGOTIATION
Juan E GlickIndiaOnyama Limba QUALIFIED
Nicolas E GauchoAustraliaAmy Elsner RENEWAL
Mujtaba L SergiRussiaAsiya Javayant NEW
Julie L MacleadJapanAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley S BowleyFrance2026-06-11Rousseaux, Michael Esq RENEWAL63Ivan Magalhaes
1001Jennifer S MaletAustralia2026-07-06Rousseaux, Michael Esq PROPOSAL58Xuxue Feng
1002Munro D MaletCanada2026-06-18Buckley Miller Wright NEW31Ioni Bowcher
1003Ivar H RulapaughItaly2026-06-26Buckley Miller Wright NEW50Asiya Javayant
1004Cody B KuskoRussia2026-07-01Feiner Bros PROPOSAL8Asiya Javayant
1005Aditya E SchemmerIndia2026-07-02Feltz Printing Service NEGOTIATION28Elwin Sharvill
1006Leon B PaprockiArgentina2026-06-18Printing Dimensions NEW7Anna Fali
1007Aruna B VenereItaly2026-06-14Feltz Printing Service QUALIFIED75Elwin Sharvill
1008Julie P PoquetteFrance2026-07-06Chapman, Ross E Esq PROPOSAL44Onyama Limba
1009Cody R IturbideCanada2026-07-08Morlong Associates UNQUALIFIED55Ivan Magalhaes
1010Leja P SaylorsBrazil2026-06-11Commercial Press NEW93Stephen Shaw
1011Izzy R WieserRussia2026-06-17Dorl, James J Esq RENEWAL10Elwin Sharvill
1012Maisha Y OldroydGermany2026-06-19Rangoni Of Florence NEGOTIATION85Xuxue Feng
1013Leja N SlusarskiGermany2026-06-15Morlong Associates NEGOTIATION51Bernardo Dominic
1014Claire Y PoquetteAustralia2026-06-30Rousseaux, Michael Esq RENEWAL42Ivan Magalhaes
1015Maisha V StensethJapan2026-07-09Chemel, James L Cpa NEW76Amy Elsner
1016Emily N NickaGermany2026-06-18Commercial Press UNQUALIFIED96Xuxue Feng
1017Clifford T PoquetteItaly2026-06-27Dorl, James J Esq UNQUALIFIED51Ioni Bowcher
1018David W AlbaresFrance2026-06-29Printing Dimensions UNQUALIFIED67Stephen Shaw
1019Emily Z WaycottJapan2026-06-14Dorl, James J Esq PROPOSAL21Asiya Javayant
1020Kaitlin E BriddickIndia2026-06-14Dorl, James J Esq NEW5Ioni Bowcher
1021Juan C DilliardBrazil2026-07-10Buckley Miller Wright NEGOTIATION6Amy Elsner
1022Sinclair W PerinIndia2026-06-12King, Christopher A Esq QUALIFIED71Anna Fali
1023Silvio G SchemmerItaly2026-07-10Feiner Bros UNQUALIFIED92Xuxue Feng
1024Izzy Y MacleadGermany2026-07-07Truhlar And Truhlar Attys RENEWAL47Anna Fali
1025Rodrigues E FollerCanada2026-06-15Rangoni Of Florence QUALIFIED88Anna Fali
1026Johnson C DarakjyUnited Kingdom2026-06-20Chemel, James L Cpa NEGOTIATION52Onyama Limba
1027Antonio H CampainAustralia2026-07-05Benton, John B Jr UNQUALIFIED8Ioni Bowcher
1028Chavez H NestleGermany2026-07-10Commercial Press NEGOTIATION51Ioni Bowcher
1029Leon J TollnerUnited Kingdom2026-06-20Chapman, Ross E Esq NEW50Elwin Sharvill
1030Darci D DarakjyIndia2026-07-02Morlong Associates UNQUALIFIED21Ivan Magalhaes
1031Claire O PaprockiItaly2026-07-06Morlong Associates RENEWAL39Ivan Magalhaes
1032Isabel R DoeItaly2026-06-28Feltz Printing Service QUALIFIED40Anna Fali
1033Maria J FigeroaRussia2026-07-02Feiner Bros RENEWAL2Bernardo Dominic
1034Octavia M MaletFrance2026-06-11Morlong Associates QUALIFIED80Ivan Magalhaes
1035Chavez Y SergiAustralia2026-06-27King, Christopher A Esq UNQUALIFIED90Onyama Limba
1036Chavez K WhobreyGermany2026-06-16Dorl, James J Esq UNQUALIFIED76Amy Elsner
1037Octavia H InouyeAustralia2026-06-30King, Christopher A Esq QUALIFIED16Elwin Sharvill
1038Tony R AlbaresGermany2026-07-10Truhlar And Truhlar Attys RENEWAL18Elwin Sharvill
1039Sinclair Z PaprockiSpain2026-07-06Buckley Miller Wright RENEWAL54Amy Elsner
1040Murillo A WaycottArgentina2026-06-30Chemel, James L Cpa NEGOTIATION37Xuxue Feng
1041Jefferson R PoquetteArgentina2026-06-26Chanay, Jeffrey A Esq NEW83Ivan Magalhaes
1042Jeanfrancois V DilliardIndia2026-06-27Feltz Printing Service QUALIFIED9Stephen Shaw
1043Sinclair Y PaprockiCanada2026-06-27Feltz Printing Service NEGOTIATION37Elwin Sharvill
1044Munro I FigeroaFrance2026-06-12Dorl, James J Esq PROPOSAL86Bernardo Dominic
1045Smith N DilliardUnited Kingdom2026-06-19Chanay, Jeffrey A Esq NEW62Ivan Magalhaes
1046Stacey R SlusarskiArgentina2026-07-09Commercial Press NEW1Xuxue Feng
1047Jones Y MaletSpain2026-06-17Morlong Associates PROPOSAL49Ioni Bowcher
1048Aruna M FerenczArgentina2026-06-16Buckley Miller Wright NEW22Stephen Shaw
1049Aditya G MacleadIndia2026-06-17Printing Dimensions RENEWAL53Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maisha U GarufiGermanyXuxue Feng QUALIFIED
Chavez C AlbaresIndiaAsiya Javayant RENEWAL
Ricardo C PaprockiCanadaAsiya Javayant NEGOTIATION
Antonio Y ButtRussiaAsiya Javayant NEW
David M KuskoGermanyElwin Sharvill PROPOSAL
Francesco W DilliardAustraliaIvan Magalhaes NEGOTIATION
Ivar F PoquetteIndiaStephen Shaw UNQUALIFIED
Costa Z AlbaresJapanIvan Magalhaes PROPOSAL
Adams R DarakjyArgentinaAsiya Javayant PROPOSAL
Stacey O BologniaArgentinaElwin Sharvill NEGOTIATION
Leon Y OstroskyIndiaIvan Magalhaes QUALIFIED
Ivar J MorascaUnited KingdomIvan Magalhaes NEW
Jefferson D WieserJapanIoni Bowcher QUALIFIED
Julie S IturbideCanadaAmy Elsner QUALIFIED
Kadeem W WhobreyAustraliaAnna Fali QUALIFIED
Silvio K PaprockiBrazilStephen Shaw UNQUALIFIED
Aditya E RoysterItalyAnna Fali PROPOSAL
Cody J SlusarskiBrazilAsiya Javayant UNQUALIFIED
Isabel D VocelkaItalyIoni Bowcher NEGOTIATION
Leon R ChuiRussiaStephen Shaw NEW
Adams I ButtSpainAmy Elsner QUALIFIED
Cody J CampainAustraliaBernardo Dominic NEGOTIATION
Octavia W IturbideAustraliaOnyama Limba PROPOSAL
Jeanfrancois M TollnerRussiaOnyama Limba RENEWAL
David R MaletRussiaIoni Bowcher NEGOTIATION
Aditya C WhobreyArgentinaIvan Magalhaes UNQUALIFIED
Faith Q OldroydGermanyIoni Bowcher RENEWAL
Ivar P AlbaresAustraliaElwin Sharvill PROPOSAL
Sinclair X WieserRussiaStephen Shaw QUALIFIED
Jennifer Q AmigonUnited KingdomAsiya Javayant PROPOSAL
Jefferson M OstroskyItalyIoni Bowcher NEW
Murillo E PerinIndiaStephen Shaw NEGOTIATION
Rodrigues N CaldareraAustraliaAsiya Javayant UNQUALIFIED
Morrow Q GlickJapanIvan Magalhaes NEW
Nicolas J VenereArgentinaXuxue Feng NEW
Emily O DoeGermanyAmy Elsner UNQUALIFIED
Aditya J GarufiCanadaIvan Magalhaes NEGOTIATION
Francesco J DarakjyFranceAmy Elsner RENEWAL
Rodrigues M FlosiGermanyXuxue Feng RENEWAL
Leon D AlbaresItalyIvan Magalhaes RENEWAL
Salvatore W AlbaresFranceElwin Sharvill QUALIFIED
Nicolas A RimBrazilOnyama Limba NEW
Kadeem X CampainAustraliaAnna Fali RENEWAL
Rodrigues U WieserCanadaAmy Elsner NEGOTIATION
Nicolas D VenereItalyElwin Sharvill NEGOTIATION
Kadeem J PaprockiJapanElwin Sharvill PROPOSAL
Jeanfrancois L RulapaughUnited KingdomIvan Magalhaes NEW
Claire H AmigonItalyAnna Fali NEW
Antonio Z WieserRussiaIvan Magalhaes PROPOSAL
Stacey W PaprockiArgentinaBernardo Dominic NEW
Frozen Columns
Name
Cody L Sergi
Misaki Q Gillian
Francesco X Morasca
Izzy T Butt
Costa L Ostrosky
Rodrigues P Flosi
Kadeem K Shinko
Salvatore A Campain
Aruna L Stockham
Mayumi R Royster
Maisha S Chui
Claire S Iturbide
Ivar S Campain
Mayumi S Perin
Stacey N Doe
Munro O Paprocki
Jeanfrancois R Foller
Stacey V Iturbide
Kaitlin Y Darakjy
Deepesh T Rim
Mayumi W Slusarski
Aditya F Caldarera
Maria I Gaucho
Adams K Nicka
Jeanfrancois K Stenseth
Greenwood P Figeroa
Tony U Amigon
Juan S Caldarera
Aditya P Flosi
Isabel D Royster
Jefferson C Amigon
Chavez R Albares
Munro L Iturbide
Clifford G Royster
Maria T Butt
Salvatore O Kusko
Adams D Doe
Juan X Bolognia
Clifford B Butt
Jefferson E Campain
Jefferson W Poquette
Nicolas B Royster
Darci M Waycott
Juan G Schemmer
Kadeem S Maclead
Antonio K Stockham
Aika J Albares
Antonio R Ostrosky
Silvio D Shinko
Silvio C Caldarera
IdCountryDate
1000Japan2026-07-04
1001Germany2026-06-30
1002Brazil2026-06-25
1003France2026-06-19
1004India2026-06-11
1005United Kingdom2026-06-28
1006Brazil2026-06-24
1007Australia2026-07-05
1008India2026-06-26
1009India2026-06-29
1010India2026-07-04
1011India2026-07-08
1012Spain2026-06-24
1013India2026-06-15
1014Argentina2026-06-24
1015United Kingdom2026-06-13
1016Japan2026-06-16
1017Italy2026-07-08
1018Brazil2026-07-04
1019Argentina2026-07-03
1020United Kingdom2026-06-19
1021Argentina2026-06-11
1022Australia2026-06-12
1023Canada2026-07-01
1024Australia2026-07-05
1025India2026-06-21
1026Brazil2026-07-02
1027Italy2026-07-06
1028Australia2026-07-04
1029Canada2026-07-01
1030France2026-06-23
1031France2026-06-19
1032Russia2026-06-30
1033United Kingdom2026-07-07
1034France2026-07-03
1035Japan2026-06-26
1036Argentina2026-07-02
1037Brazil2026-06-18
1038France2026-07-03
1039Japan2026-06-16
1040Canada2026-06-27
1041France2026-07-04
1042Canada2026-07-03
1043Germany2026-06-13
1044India2026-07-04
1045Russia2026-06-14
1046India2026-06-16
1047Argentina2026-06-16
1048Brazil2026-06-24
1049Italy2026-06-17

On-Demand Data

NameIdCountryDate
Leon J Dilliard1000Japan2026-07-09
Johnson F Poquette1001Australia2026-06-22
Costa F Paprocki1002France2026-06-24
Mujtaba T Ostrosky1003Spain2026-06-15
Claire S Sergi1004India2026-07-10
Misaki H Waycott1005Canada2026-07-10
Wickens N Marrier1006France2026-07-08
Silvio Z Paprocki1007Spain2026-06-24
Kaitlin D Maclead1008Argentina2026-06-14
Antonio X Butt1009Germany2026-06-16
Darci B Wieser1010Russia2026-06-30
Faith I Kusko1011Russia2026-06-28
Morrow P Doe1012Russia2026-07-03
Darci J Shinko1013Russia2026-06-29
Faith R Perin1014Japan2026-06-27
James C Amigon1015India2026-06-17
Darci E Albares1016Japan2026-06-29
Cody R Bolognia1017Spain2026-06-23
Murillo E Malet1018Japan2026-06-27
Emily G Stockham1019Argentina2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro F MorascaJapanAnna Fali NEGOTIATION
Aika Q NickaAustraliaAnna Fali PROPOSAL
Stacey A BowleyFranceOnyama Limba NEW
Arvin L KuskoJapanIoni Bowcher RENEWAL
Salvatore H SchemmerSpainOnyama Limba RENEWAL
Ashley O MorascaFranceIvan Magalhaes QUALIFIED
David T MaletGermanyIvan Magalhaes UNQUALIFIED
Octavia T AmigonArgentinaOnyama Limba NEW
Kaitlin O RoysterCanadaElwin Sharvill RENEWAL
Murillo M SergiItalyOnyama Limba PROPOSAL
Aika N RoysterUnited KingdomXuxue Feng NEW
Morrow B MaletCanadaIoni Bowcher RENEWAL
Adams Y VocelkaIndiaBernardo Dominic RENEWAL
Rodrigues K WieserRussiaIvan Magalhaes PROPOSAL
Isabel H MarrierArgentinaXuxue Feng PROPOSAL
Mujtaba U AmigonGermanyElwin Sharvill RENEWAL
Munro M BowleyAustraliaAnna Fali QUALIFIED
Smith P GarufiAustraliaAmy Elsner RENEWAL
Claire E NickaArgentinaXuxue Feng QUALIFIED
Izzy K MarrierGermanyStephen Shaw NEGOTIATION
Francesco T PaprockiJapanBernardo Dominic RENEWAL
Jones M ChuiItalyAsiya Javayant NEW
Sinclair J ChuiGermanyAnna Fali UNQUALIFIED
Sinclair C CaudyRussiaStephen Shaw UNQUALIFIED
Munro F AmigonGermanyElwin Sharvill UNQUALIFIED
Adams D DoeFranceAsiya Javayant UNQUALIFIED
Ivar T RutaCanadaBernardo Dominic PROPOSAL
Jefferson V RimSpainAsiya Javayant NEGOTIATION
Emily C BriddickUnited KingdomBernardo Dominic QUALIFIED
Munro W GillianAustraliaBernardo Dominic QUALIFIED
Darci Z WaycottBrazilIoni Bowcher QUALIFIED
Julie K TollnerJapanIoni Bowcher PROPOSAL
Rodrigues W FollerSpainStephen Shaw PROPOSAL
Maria W KuskoUnited KingdomBernardo Dominic UNQUALIFIED
Wickens F AlbaresFranceXuxue Feng QUALIFIED
James T RutaIndiaAnna Fali NEW
Smith Y KolmetzIndiaAsiya Javayant NEW
Ricardo V VenereItalyBernardo Dominic UNQUALIFIED
Julie Y GlickItalyElwin Sharvill RENEWAL
Murillo N CaldareraArgentinaOnyama Limba 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>