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
Ashley Y DoeGermanyOnyama Limba UNQUALIFIED
Morrow C MaletRussiaOnyama Limba PROPOSAL
David F GauchoBrazilStephen Shaw RENEWAL
Kaitlin Z ButtCanadaXuxue Feng RENEWAL
Maria S RutaArgentinaOnyama Limba UNQUALIFIED
Nicolas P FerenczBrazilElwin Sharvill PROPOSAL
Jennifer P FlosiJapanAmy Elsner NEW
Izzy M FerenczCanadaIoni Bowcher NEGOTIATION
Wickens S SaylorsItalyOnyama Limba RENEWAL
Leja W RutaArgentinaStephen Shaw NEGOTIATION
Arvin H PerinRussiaIvan Magalhaes RENEWAL
Aika H IturbideUnited KingdomAmy Elsner NEW
Cody Q ChuiRussiaAnna Fali UNQUALIFIED
Murillo K BowleySpainAsiya Javayant RENEWAL
Ivar E SchemmerArgentinaElwin Sharvill NEW
Aruna R MacleadJapanIvan Magalhaes PROPOSAL
Misaki F BriddickItalyAsiya Javayant NEGOTIATION
Mujtaba U WhobreyGermanyIoni Bowcher PROPOSAL
Smith M GarufiUnited KingdomAsiya Javayant QUALIFIED
Cody T RimFranceElwin Sharvill UNQUALIFIED
Silvio T SlusarskiCanadaIvan Magalhaes NEGOTIATION
Juan Q KolmetzArgentinaXuxue Feng NEGOTIATION
Sinclair W KolmetzCanadaElwin Sharvill NEW
Izzy G ShinkoBrazilBernardo Dominic NEW
Mujtaba R FigeroaRussiaXuxue Feng NEW
Ricardo A BowleyItalyElwin Sharvill PROPOSAL
Aruna T AmigonFranceOnyama Limba NEGOTIATION
Rodrigues H CampainSpainElwin Sharvill QUALIFIED
Mayumi G GillianRussiaOnyama Limba QUALIFIED
Jennifer D SergiCanadaAsiya Javayant UNQUALIFIED
Jones L InouyeArgentinaXuxue Feng RENEWAL
Octavia X PaprockiIndiaIvan Magalhaes UNQUALIFIED
Ricardo Q BowleyFranceXuxue Feng UNQUALIFIED
Leon X MorascaBrazilXuxue Feng PROPOSAL
Silvio B StensethIndiaBernardo Dominic RENEWAL
Cody I RutaRussiaOnyama Limba RENEWAL
Izzy O SergiUnited KingdomAmy Elsner NEW
Clifford V FlosiRussiaIoni Bowcher RENEWAL
Aruna L SlusarskiRussiaAsiya Javayant NEGOTIATION
Tony G WaycottCanadaIvan Magalhaes NEW
Jefferson W VocelkaBrazilAnna Fali QUALIFIED
Salvatore N GillianItalyAnna Fali QUALIFIED
Antonio V KuskoCanadaAnna Fali PROPOSAL
Murillo I IturbideSpainElwin Sharvill UNQUALIFIED
Darci R InouyeCanadaIvan Magalhaes PROPOSAL
Darci N MacleadGermanyStephen Shaw RENEWAL
Munro E CaudyUnited KingdomStephen Shaw PROPOSAL
Deepesh I KuskoRussiaIoni Bowcher QUALIFIED
Salvatore J RutaGermanyAnna Fali PROPOSAL
Costa W IturbideUnited KingdomAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna C DarakjyGermanyXuxue Feng UNQUALIFIED
Salvatore E AmigonAustraliaStephen Shaw QUALIFIED
Alejandro F GlickCanadaXuxue Feng RENEWAL
Ricardo P FlosiArgentinaIvan Magalhaes PROPOSAL
Salvatore D FigeroaFranceAmy Elsner UNQUALIFIED
James K SchemmerArgentinaOnyama Limba UNQUALIFIED
Kadeem N FigeroaGermanyXuxue Feng RENEWAL
Ivar W GauchoItalyXuxue Feng RENEWAL
Darci P FollerSpainStephen Shaw NEW
Maisha N SchemmerAustraliaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith C SchemmerIndia2026-07-23Commercial Press NEGOTIATION10Asiya Javayant
1001Alejandro S CaldareraJapan2026-07-29Feltz Printing Service QUALIFIED8Onyama Limba
1002Kaitlin I OldroydGermany2026-08-01Benton, John B Jr PROPOSAL12Xuxue Feng
1003Jennifer E GauchoSpain2026-08-06Dorl, James J Esq QUALIFIED23Stephen Shaw
1004Izzy V DoeAustralia2026-08-07Truhlar And Truhlar Attys NEW14Xuxue Feng
1005Misaki Z MorascaItaly2026-07-14Chapman, Ross E Esq QUALIFIED58Amy Elsner
1006Isabel U RulapaughJapan2026-07-30Truhlar And Truhlar Attys UNQUALIFIED24Bernardo Dominic
1007Isabel A ChuiAustralia2026-07-10Rousseaux, Michael Esq UNQUALIFIED55Ioni Bowcher
1008Johnson L GlickBrazil2026-07-24Rangoni Of Florence NEW45Onyama Limba
1009Juan R WhobreyIndia2026-07-10Rangoni Of Florence PROPOSAL59Elwin Sharvill
1010Salvatore F FigeroaSpain2026-07-22Feltz Printing Service NEW64Asiya Javayant
1011Juan J MaletGermany2026-08-07Feiner Bros QUALIFIED78Bernardo Dominic
1012Octavia Y NestleArgentina2026-07-26Rousseaux, Michael Esq QUALIFIED41Elwin Sharvill
1013Isabel L DilliardGermany2026-07-21Benton, John B Jr RENEWAL23Onyama Limba
1014Jennifer L CampainIndia2026-07-21Benton, John B Jr NEW85Ivan Magalhaes
1015Arvin K GillianIndia2026-07-23Morlong Associates NEW26Ivan Magalhaes
1016Adams D RulapaughArgentina2026-08-02King, Christopher A Esq NEGOTIATION73Elwin Sharvill
1017Silvio L GillianSpain2026-08-03Rangoni Of Florence UNQUALIFIED41Amy Elsner
1018Misaki C MacleadIndia2026-08-01Feltz Printing Service NEGOTIATION11Asiya Javayant
1019Morrow Y VocelkaJapan2026-08-02Chemel, James L Cpa RENEWAL41Stephen Shaw
1020Ricardo C AlbaresArgentina2026-07-30Commercial Press UNQUALIFIED93Onyama Limba
1021Johnson O FollerJapan2026-07-21Benton, John B Jr NEW99Anna Fali
1022Johnson F SergiBrazil2026-07-09Benton, John B Jr PROPOSAL24Onyama Limba
1023Munro U PerinRussia2026-07-20Dorl, James J Esq PROPOSAL61Anna Fali
1024Jones U MarrierUnited Kingdom2026-07-31Chanay, Jeffrey A Esq QUALIFIED34Asiya Javayant
1025Misaki D RutaItaly2026-07-29Chapman, Ross E Esq NEGOTIATION46Stephen Shaw
1026Greenwood V InouyeSpain2026-07-27Feltz Printing Service NEGOTIATION80Elwin Sharvill
1027Maria F AmigonJapan2026-07-17Benton, John B Jr NEGOTIATION28Asiya Javayant
1028Darci I FerenczItaly2026-07-12Benton, John B Jr QUALIFIED98Onyama Limba
1029Morrow M BologniaSpain2026-08-01Rousseaux, Michael Esq RENEWAL94Amy Elsner
1030Jennifer G WieserGermany2026-07-13Rousseaux, Michael Esq PROPOSAL34Stephen Shaw
1031Claire N RimItaly2026-08-01Feiner Bros QUALIFIED80Bernardo Dominic
1032Deepesh V IturbideItaly2026-07-21Printing Dimensions PROPOSAL57Anna Fali
1033Aika H PaprockiGermany2026-07-12Commercial Press RENEWAL18Asiya Javayant
1034Deepesh I VenereUnited Kingdom2026-07-29Commercial Press NEW60Ivan Magalhaes
1035Aika M PoquetteSpain2026-07-29Buckley Miller Wright NEW32Ivan Magalhaes
1036Tony N BologniaSpain2026-08-01Feiner Bros NEGOTIATION30Anna Fali
1037Jefferson H NickaSpain2026-07-26Truhlar And Truhlar Attys QUALIFIED72Ivan Magalhaes
1038Aika Q WieserSpain2026-07-19Chemel, James L Cpa NEGOTIATION69Elwin Sharvill
1039Aika V BologniaIndia2026-07-12Feiner Bros UNQUALIFIED3Stephen Shaw
1040Greenwood H ButtFrance2026-07-25King, Christopher A Esq QUALIFIED60Bernardo Dominic
1041Nicolas X FlosiBrazil2026-07-31Rangoni Of Florence RENEWAL21Elwin Sharvill
1042Tony K KuskoUnited Kingdom2026-07-26Chemel, James L Cpa NEGOTIATION15Ioni Bowcher
1043Darci I MacleadGermany2026-08-02Truhlar And Truhlar Attys RENEWAL69Anna Fali
1044Juan F GarufiArgentina2026-07-22Rangoni Of Florence PROPOSAL80Bernardo Dominic
1045Stacey V MorascaIndia2026-07-24Commercial Press UNQUALIFIED63Asiya Javayant
1046Aruna G GarufiFrance2026-07-13King, Christopher A Esq UNQUALIFIED8Bernardo Dominic
1047Silvio I GarufiCanada2026-07-27Morlong Associates QUALIFIED95Onyama Limba
1048Juan E WieserAustralia2026-07-31Chanay, Jeffrey A Esq NEGOTIATION26Anna Fali
1049Mujtaba Z ButtIndia2026-07-15Chapman, Ross E Esq NEGOTIATION15Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Tony O OldroydCanadaAmy Elsner RENEWAL
Silvio U CaldareraRussiaIoni Bowcher PROPOSAL
Jones C ButtGermanyXuxue Feng NEW
Deepesh R OldroydCanadaBernardo Dominic RENEWAL
Nicolas P ButtCanadaAsiya Javayant RENEWAL
James U RimGermanyIvan Magalhaes QUALIFIED
Ivar G KolmetzGermanyBernardo Dominic NEGOTIATION
Cody K WaycottSpainAsiya Javayant QUALIFIED
Sinclair K GarufiFranceBernardo Dominic RENEWAL
Juan Q BowleyRussiaStephen Shaw NEW
Francesco Y CaudyFranceAsiya Javayant PROPOSAL
Mujtaba H StockhamItalyIoni Bowcher PROPOSAL
Claire F BowleyIndiaAsiya Javayant QUALIFIED
Alejandro R RulapaughBrazilStephen Shaw QUALIFIED
Antonio T SlusarskiCanadaBernardo Dominic QUALIFIED
Kaitlin U RutaSpainStephen Shaw QUALIFIED
Salvatore T FigeroaIndiaIvan Magalhaes NEGOTIATION
Antonio X DoeBrazilStephen Shaw QUALIFIED
Octavia L RulapaughFranceAsiya Javayant NEW
Murillo L NickaSpainIoni Bowcher UNQUALIFIED
Deepesh A OldroydSpainXuxue Feng NEW
Francesco F RutaSpainOnyama Limba NEW
Johnson A MaletItalyElwin Sharvill UNQUALIFIED
Julie C ChuiIndiaOnyama Limba RENEWAL
Sinclair H PaprockiJapanElwin Sharvill PROPOSAL
Aruna E GillianRussiaBernardo Dominic QUALIFIED
Ricardo Y KuskoItalyStephen Shaw UNQUALIFIED
Jennifer B ShinkoBrazilStephen Shaw RENEWAL
Leja L RulapaughCanadaXuxue Feng QUALIFIED
Arvin C SergiFranceAnna Fali UNQUALIFIED
Greenwood P RoysterJapanStephen Shaw QUALIFIED
Aruna U VenereJapanXuxue Feng QUALIFIED
Francesco H DarakjyAustraliaAnna Fali QUALIFIED
Aditya E SergiAustraliaAnna Fali NEW
Darci U MorascaSpainOnyama Limba NEGOTIATION
Smith W FlosiBrazilXuxue Feng NEW
Clifford T ButtSpainStephen Shaw RENEWAL
Antonio Z RutaIndiaXuxue Feng NEW
Alejandro F SlusarskiJapanAmy Elsner PROPOSAL
Kaitlin R WhobreyFranceIoni Bowcher QUALIFIED
Francesco T ChuiItalyAsiya Javayant QUALIFIED
Greenwood A DoeUnited KingdomOnyama Limba UNQUALIFIED
Arvin X GauchoAustraliaIoni Bowcher NEGOTIATION
Costa W MaletGermanyStephen Shaw NEW
Salvatore F ButtRussiaAnna Fali UNQUALIFIED
Jefferson X InouyeAustraliaStephen Shaw NEGOTIATION
Arvin K FlosiIndiaElwin Sharvill RENEWAL
Isabel O RulapaughUnited KingdomAmy Elsner RENEWAL
Deepesh S AmigonItalyAnna Fali UNQUALIFIED
Adams C BriddickSpainIvan Magalhaes PROPOSAL
Frozen Columns
Name
Deepesh C Nestle
Darci E Nicka
Misaki O Ruta
Jefferson P Wieser
Deepesh J Wieser
Silvio H Albares
Jeanfrancois N Bowley
Wickens C Amigon
Arvin U Shinko
Wickens O Albares
Juan C Butt
James W Dilliard
Ricardo D Butt
Emily J Rulapaugh
Smith G Perin
Aruna X Foller
Darci S Gillian
Greenwood Y Flosi
Greenwood J Venere
Leon M Garufi
Ricardo U Morasca
Jennifer A Inouye
Isabel I Shinko
Claire E Paprocki
Sinclair C Figeroa
Jennifer T Glick
Clifford B Ferencz
Smith V Garufi
Sinclair R Malet
Ashley Q Dilliard
Darci C Nestle
Sinclair V Maclead
Darci Q Garufi
Ivar C Ruta
Mujtaba M Stenseth
Isabel M Poquette
Kaitlin N Nicka
Ivar R Rim
Ivar M Campain
Octavia W Nestle
Deepesh W Nestle
Julie M Inouye
Silvio K Sergi
Clifford Z Royster
Maisha W Poquette
Tony Z Glick
Ivar F Briddick
Jeanfrancois H Campain
Octavia U Nestle
Deepesh K Nestle
IdCountryDate
1000Russia2026-07-11
1001Argentina2026-07-24
1002United Kingdom2026-07-13
1003Spain2026-07-15
1004Japan2026-07-14
1005Canada2026-08-04
1006France2026-07-18
1007Germany2026-08-04
1008Japan2026-07-26
1009Italy2026-07-23
1010Italy2026-07-28
1011Japan2026-08-06
1012United Kingdom2026-07-18
1013United Kingdom2026-08-06
1014Australia2026-07-22
1015Argentina2026-07-11
1016Australia2026-08-06
1017Argentina2026-07-28
1018France2026-07-30
1019Brazil2026-07-27
1020Germany2026-07-13
1021Argentina2026-07-28
1022Germany2026-07-14
1023Germany2026-08-07
1024India2026-07-21
1025Australia2026-07-21
1026Spain2026-07-15
1027France2026-07-21
1028India2026-08-07
1029Argentina2026-08-04
1030Brazil2026-08-07
1031Germany2026-07-14
1032Canada2026-08-05
1033India2026-07-20
1034Russia2026-07-30
1035Germany2026-07-15
1036Australia2026-07-22
1037India2026-07-16
1038France2026-07-16
1039Germany2026-07-15
1040Japan2026-07-18
1041Spain2026-07-17
1042Italy2026-08-04
1043France2026-07-19
1044France2026-08-04
1045Canada2026-08-04
1046Canada2026-07-15
1047Italy2026-08-01
1048Argentina2026-07-14
1049Canada2026-07-30

On-Demand Data

NameIdCountryDate
Deepesh W Schemmer1000Australia2026-07-20
Maisha Y Maclead1001Canada2026-08-03
Darci O Nicka1002Spain2026-07-30
Maisha U Glick1003Spain2026-07-13
Ricardo O Maclead1004Russia2026-08-01
Munro F Garufi1005Italy2026-07-12
Juan D Ostrosky1006Australia2026-07-27
Murillo F Glick1007Italy2026-07-10
Sinclair L Marrier1008India2026-07-20
Aditya C Gaucho1009Italy2026-07-26
Leon N Glick1010Spain2026-07-29
Misaki I Chui1011Japan2026-07-30
Nicolas E Figeroa1012United Kingdom2026-07-26
Morrow D Caudy1013Canada2026-07-18
Salvatore X Chui1014France2026-08-05
Misaki D Chui1015Russia2026-07-19
Ivar F Malet1016Canada2026-07-21
Kadeem B Kusko1017Argentina2026-07-13
Johnson N Kusko1018Argentina2026-07-30
Emily M Ruta1019Russia2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson S KolmetzRussiaOnyama Limba PROPOSAL
Cody G BriddickIndiaBernardo Dominic UNQUALIFIED
Nicolas H FlosiArgentinaAnna Fali NEW
Tony A RulapaughRussiaAsiya Javayant RENEWAL
Smith N GillianUnited KingdomAsiya Javayant NEGOTIATION
Misaki X FerenczUnited KingdomElwin Sharvill NEW
Murillo V RutaFranceAnna Fali UNQUALIFIED
Chavez T DoeBrazilAnna Fali NEGOTIATION
Misaki L CampainRussiaStephen Shaw NEGOTIATION
Jennifer P BriddickGermanyOnyama Limba NEGOTIATION
Juan F IturbideAustraliaIoni Bowcher UNQUALIFIED
Chavez A FerenczJapanAmy Elsner NEGOTIATION
Nicolas K SergiRussiaIvan Magalhaes NEGOTIATION
Silvio H BologniaUnited KingdomBernardo Dominic RENEWAL
Smith C NickaArgentinaAnna Fali QUALIFIED
Jones X SaylorsFranceIvan Magalhaes NEW
Greenwood V BologniaItalyIvan Magalhaes QUALIFIED
Deepesh A MaletCanadaBernardo Dominic PROPOSAL
Darci F StensethItalyElwin Sharvill UNQUALIFIED
Silvio A BriddickRussiaStephen Shaw QUALIFIED
Kaitlin U KolmetzUnited KingdomAnna Fali NEW
Nicolas I ChuiItalyAnna Fali NEW
Cody G SergiCanadaAmy Elsner PROPOSAL
Sinclair W GauchoSpainAnna Fali PROPOSAL
Adams H ButtSpainIvan Magalhaes QUALIFIED
Maria D MaletItalyAsiya Javayant RENEWAL
Kaitlin E BowleySpainAnna Fali UNQUALIFIED
Ashley R ChuiIndiaAnna Fali PROPOSAL
Salvatore H IturbideRussiaAsiya Javayant NEGOTIATION
Jeanfrancois E IturbideArgentinaAnna Fali QUALIFIED
Leon B GauchoIndiaIvan Magalhaes QUALIFIED
Nicolas W ButtItalyOnyama Limba NEGOTIATION
Antonio I CaldareraUnited KingdomStephen Shaw NEW
Nicolas Q GillianIndiaIoni Bowcher RENEWAL
Juan B BowleyArgentinaXuxue Feng QUALIFIED
Leon Y RutaFranceBernardo Dominic NEGOTIATION
Wickens B SlusarskiAustraliaIvan Magalhaes NEW
Silvio Y ButtUnited KingdomAmy Elsner NEW
Aditya X MacleadBrazilStephen Shaw QUALIFIED
Sinclair L GillianRussiaIvan Magalhaes 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>