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
Sinclair R BowleyUnited KingdomAmy Elsner UNQUALIFIED
Aditya V CaudyGermanyAnna Fali QUALIFIED
Clifford I GarufiJapanOnyama Limba QUALIFIED
Emily S BriddickGermanyXuxue Feng PROPOSAL
David T CaudyFranceIoni Bowcher NEGOTIATION
Deepesh Y GarufiSpainAmy Elsner UNQUALIFIED
Salvatore X OldroydIndiaElwin Sharvill PROPOSAL
Isabel U SergiJapanAnna Fali NEW
Darci E NickaSpainIoni Bowcher PROPOSAL
David N RoysterItalyStephen Shaw UNQUALIFIED
Aika J DarakjyBrazilIoni Bowcher NEW
Aruna E InouyeFranceAsiya Javayant UNQUALIFIED
David X RimAustraliaOnyama Limba RENEWAL
Maria Q NickaUnited KingdomStephen Shaw NEGOTIATION
Aika E MaletCanadaElwin Sharvill NEW
Tony D SaylorsBrazilIvan Magalhaes RENEWAL
Mujtaba D FollerGermanyIoni Bowcher PROPOSAL
Adams Z BologniaAustraliaAsiya Javayant QUALIFIED
Tony X GlickBrazilAnna Fali PROPOSAL
Jennifer P RimAustraliaElwin Sharvill PROPOSAL
Maisha H AmigonJapanOnyama Limba RENEWAL
Munro S FollerItalyXuxue Feng NEW
Johnson X PerinRussiaBernardo Dominic QUALIFIED
Claire H NestleIndiaAmy Elsner NEGOTIATION
Cody F ButtUnited KingdomAnna Fali UNQUALIFIED
David V MorascaBrazilIvan Magalhaes QUALIFIED
Wickens R DarakjyJapanBernardo Dominic NEW
Costa J GlickUnited KingdomOnyama Limba NEW
James S OldroydRussiaElwin Sharvill NEGOTIATION
Nicolas V SlusarskiItalyElwin Sharvill PROPOSAL
Ivar O KuskoJapanIvan Magalhaes NEW
Faith R FollerCanadaOnyama Limba RENEWAL
Cody K RimRussiaOnyama Limba NEW
Emily D KolmetzArgentinaIoni Bowcher NEGOTIATION
Salvatore U StensethSpainOnyama Limba PROPOSAL
Juan D PaprockiIndiaXuxue Feng QUALIFIED
Morrow A SlusarskiCanadaIvan Magalhaes QUALIFIED
Faith B DarakjyGermanyXuxue Feng QUALIFIED
Leja Y VenereBrazilXuxue Feng QUALIFIED
Jennifer D OstroskyBrazilAmy Elsner NEGOTIATION
Ashley V GlickRussiaIvan Magalhaes RENEWAL
Maria U FlosiCanadaAmy Elsner NEW
Jeanfrancois Z MaletBrazilBernardo Dominic UNQUALIFIED
Murillo G VocelkaUnited KingdomAnna Fali NEGOTIATION
Leja C TollnerJapanElwin Sharvill NEW
Octavia E WieserFranceElwin Sharvill PROPOSAL
Aruna C MaletItalyIvan Magalhaes UNQUALIFIED
Salvatore V VocelkaIndiaAnna Fali QUALIFIED
Kadeem M FollerUnited KingdomXuxue Feng PROPOSAL
David T RimGermanyIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco T SchemmerItalyElwin Sharvill RENEWAL
Cody J WhobreyGermanyAmy Elsner NEW
Aditya N ShinkoCanadaXuxue Feng PROPOSAL
Claire U InouyeIndiaAnna Fali NEW
Octavia Q MaletBrazilXuxue Feng NEGOTIATION
Salvatore R BriddickUnited KingdomAsiya Javayant PROPOSAL
Murillo M DilliardSpainElwin Sharvill QUALIFIED
Faith Z SchemmerSpainStephen Shaw PROPOSAL
Costa A GillianRussiaAnna Fali NEGOTIATION
Darci G CaudyRussiaAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones K CampainArgentina2026-07-09Dorl, James J Esq NEW74Elwin Sharvill
1001Aditya E DarakjyAustralia2026-06-28Commercial Press PROPOSAL18Xuxue Feng
1002Kadeem R SergiSpain2026-07-16Printing Dimensions NEGOTIATION19Xuxue Feng
1003Sinclair B ShinkoBrazil2026-07-17Feltz Printing Service NEW81Elwin Sharvill
1004Faith T DilliardGermany2026-07-07Chapman, Ross E Esq UNQUALIFIED77Asiya Javayant
1005Jeanfrancois M GauchoGermany2026-07-04Feiner Bros UNQUALIFIED72Ioni Bowcher
1006Murillo P ShinkoAustralia2026-06-24Buckley Miller Wright NEW58Bernardo Dominic
1007Wickens V SlusarskiAustralia2026-07-10Rangoni Of Florence UNQUALIFIED56Ioni Bowcher
1008Sinclair B IturbideIndia2026-06-30Chapman, Ross E Esq NEGOTIATION93Anna Fali
1009Salvatore N BriddickItaly2026-06-27Rangoni Of Florence QUALIFIED42Onyama Limba
1010Antonio Y PoquetteJapan2026-07-03Chanay, Jeffrey A Esq QUALIFIED64Elwin Sharvill
1011Aditya U ButtBrazil2026-06-21Feltz Printing Service NEGOTIATION34Ioni Bowcher
1012Kaitlin E MorascaGermany2026-07-02King, Christopher A Esq RENEWAL89Bernardo Dominic
1013Jeanfrancois Q OldroydIndia2026-06-25King, Christopher A Esq PROPOSAL53Elwin Sharvill
1014Ivar D CaudyBrazil2026-06-27Benton, John B Jr NEW62Stephen Shaw
1015Claire T DoeSpain2026-06-30Benton, John B Jr UNQUALIFIED30Elwin Sharvill
1016Costa N CaudyCanada2026-07-02Chemel, James L Cpa UNQUALIFIED76Ioni Bowcher
1017Wickens J DarakjyUnited Kingdom2026-06-23Chanay, Jeffrey A Esq NEW16Amy Elsner
1018Kaitlin N CaldareraRussia2026-06-24Morlong Associates PROPOSAL80Ivan Magalhaes
1019Murillo X GillianBrazil2026-07-12Printing Dimensions NEW56Asiya Javayant
1020Jefferson V KuskoJapan2026-06-27Dorl, James J Esq QUALIFIED73Stephen Shaw
1021Izzy T RimJapan2026-06-24Truhlar And Truhlar Attys RENEWAL54Onyama Limba
1022Murillo N ButtArgentina2026-07-14Feltz Printing Service NEGOTIATION40Bernardo Dominic
1023Leon E SlusarskiIndia2026-06-26Benton, John B Jr PROPOSAL23Xuxue Feng
1024Jones D PerinItaly2026-07-11Buckley Miller Wright NEW87Anna Fali
1025Aika S IturbideRussia2026-06-26Printing Dimensions NEGOTIATION49Asiya Javayant
1026Deepesh W MarrierArgentina2026-06-19Benton, John B Jr UNQUALIFIED97Amy Elsner
1027Clifford R PaprockiAustralia2026-06-27Chemel, James L Cpa UNQUALIFIED98Ioni Bowcher
1028Octavia F FlosiJapan2026-07-04King, Christopher A Esq NEW93Onyama Limba
1029Alejandro M VenereRussia2026-06-20Chanay, Jeffrey A Esq NEW90Anna Fali
1030Tony F GlickArgentina2026-06-30Dorl, James J Esq UNQUALIFIED94Ioni Bowcher
1031Alejandro X CaldareraIndia2026-06-29Feiner Bros NEGOTIATION98Xuxue Feng
1032Faith L PerinIndia2026-06-25Benton, John B Jr QUALIFIED33Elwin Sharvill
1033Deepesh D SaylorsFrance2026-06-27Dorl, James J Esq RENEWAL6Bernardo Dominic
1034Tony O MacleadJapan2026-07-06Chanay, Jeffrey A Esq UNQUALIFIED22Asiya Javayant
1035Greenwood U ChuiArgentina2026-06-21Morlong Associates QUALIFIED48Xuxue Feng
1036Greenwood F VenereCanada2026-06-24King, Christopher A Esq QUALIFIED52Onyama Limba
1037Isabel X AmigonBrazil2026-07-14Chapman, Ross E Esq NEW90Onyama Limba
1038Misaki W WhobreySpain2026-07-17Dorl, James J Esq PROPOSAL37Xuxue Feng
1039Leja L MaletCanada2026-06-24Printing Dimensions QUALIFIED24Xuxue Feng
1040Arvin Z GillianFrance2026-06-22Buckley Miller Wright PROPOSAL90Xuxue Feng
1041Francesco N MaletArgentina2026-06-20Commercial Press QUALIFIED2Ivan Magalhaes
1042Aditya B KolmetzJapan2026-06-22Chemel, James L Cpa NEGOTIATION87Anna Fali
1043Smith O TollnerFrance2026-07-06Morlong Associates RENEWAL21Amy Elsner
1044Aruna T MaletArgentina2026-07-03Rousseaux, Michael Esq RENEWAL83Amy Elsner
1045Ricardo S KuskoBrazil2026-07-12Morlong Associates NEGOTIATION48Onyama Limba
1046Tony W CampainRussia2026-06-25Printing Dimensions QUALIFIED41Ioni Bowcher
1047Aruna B TollnerIndia2026-07-06Chemel, James L Cpa NEGOTIATION68Bernardo Dominic
1048Leja L FigeroaRussia2026-06-25King, Christopher A Esq RENEWAL18Ivan Magalhaes
1049Aditya G KuskoRussia2026-06-22Feltz Printing Service PROPOSAL55Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Wickens D CaudyItalyAnna Fali QUALIFIED
Alejandro P PoquetteCanadaAnna Fali PROPOSAL
Octavia B WieserGermanyIoni Bowcher RENEWAL
Rodrigues Z KuskoFranceIvan Magalhaes UNQUALIFIED
Greenwood V CaldareraSpainIvan Magalhaes QUALIFIED
Rodrigues R OldroydRussiaBernardo Dominic NEGOTIATION
Leon R GarufiAustraliaIvan Magalhaes RENEWAL
Murillo G CaldareraAustraliaIoni Bowcher RENEWAL
Munro T VocelkaBrazilElwin Sharvill RENEWAL
Deepesh C IturbideBrazilOnyama Limba NEGOTIATION
Costa C ChuiRussiaAnna Fali NEGOTIATION
Antonio E InouyeAustraliaIvan Magalhaes PROPOSAL
Ashley R BriddickUnited KingdomStephen Shaw UNQUALIFIED
Smith L SchemmerAustraliaStephen Shaw NEW
Adams N ButtSpainAsiya Javayant UNQUALIFIED
Deepesh F MacleadGermanyBernardo Dominic NEW
Johnson I SlusarskiItalyXuxue Feng PROPOSAL
Adams P GauchoFranceIoni Bowcher PROPOSAL
Faith X OldroydItalyBernardo Dominic QUALIFIED
Kadeem P WhobreyArgentinaOnyama Limba RENEWAL
Mujtaba S RoysterBrazilAmy Elsner RENEWAL
Alejandro U FigeroaCanadaAsiya Javayant PROPOSAL
Stacey J BowleyGermanyXuxue Feng UNQUALIFIED
Smith U GarufiAustraliaXuxue Feng UNQUALIFIED
David B KuskoGermanyOnyama Limba UNQUALIFIED
Chavez N MorascaBrazilIoni Bowcher NEGOTIATION
Aika G BologniaAustraliaStephen Shaw UNQUALIFIED
Ricardo G FlosiFranceStephen Shaw PROPOSAL
Leja E OldroydGermanyXuxue Feng RENEWAL
Mujtaba I RulapaughJapanElwin Sharvill UNQUALIFIED
Kadeem W CaldareraJapanXuxue Feng PROPOSAL
Jennifer N StockhamUnited KingdomIoni Bowcher QUALIFIED
Deepesh E OstroskyIndiaIoni Bowcher RENEWAL
Salvatore D GlickIndiaAnna Fali NEGOTIATION
Faith D RutaAustraliaBernardo Dominic RENEWAL
Salvatore X DoeJapanAmy Elsner RENEWAL
Darci O NestleBrazilXuxue Feng QUALIFIED
Rodrigues K PerinSpainAsiya Javayant RENEWAL
Greenwood B MacleadSpainAnna Fali NEW
Darci X SchemmerGermanyAmy Elsner RENEWAL
Murillo Y PoquetteFranceElwin Sharvill NEGOTIATION
Ivar R FigeroaBrazilIvan Magalhaes NEGOTIATION
Silvio W OstroskyFranceAnna Fali NEW
Alejandro W GillianArgentinaBernardo Dominic NEGOTIATION
Jones U MorascaRussiaAsiya Javayant PROPOSAL
Murillo I KolmetzBrazilStephen Shaw NEGOTIATION
Mayumi R FollerUnited KingdomXuxue Feng QUALIFIED
Wickens L ChuiIndiaBernardo Dominic RENEWAL
Salvatore M WieserJapanIvan Magalhaes PROPOSAL
Arvin A StensethCanadaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Kaitlin O Dilliard
Ivar B Royster
Mayumi J Chui
Johnson S Rim
Greenwood W Chui
Ashley N Foller
Arvin G Bolognia
Jefferson Q Nestle
Cody E Albares
Jeanfrancois B Kusko
Tony T Shinko
Julie D Vocelka
James O Bolognia
Mayumi U Albares
Arvin K Rim
Arvin E Slusarski
Jennifer W Campain
Jefferson V Slusarski
Kaitlin U Inouye
Leon M Bolognia
Jefferson G Campain
Jeanfrancois Z Iturbide
Wickens I Rulapaugh
Adams R Kolmetz
David V Ruta
Costa S Sergi
Greenwood I Wieser
Mujtaba R Garufi
David U Schemmer
Smith T Gaucho
Claire F Ostrosky
Jennifer U Stenseth
Adams D Foller
Rodrigues G Bolognia
James D Saylors
Antonio B Ferencz
Nicolas V Sergi
Silvio S Flosi
Jones Y Nicka
Francesco O Rim
James P Perin
Isabel D Sergi
Francesco N Butt
Darci V Glick
Maria D Sergi
Kadeem C Gaucho
Maria I Amigon
Francesco G Caudy
Silvio L Vocelka
Arvin D Caudy
IdCountryDate
1000Spain2026-06-29
1001Australia2026-06-24
1002Japan2026-06-24
1003Australia2026-07-11
1004Brazil2026-07-16
1005Russia2026-06-23
1006Russia2026-06-18
1007France2026-06-22
1008Canada2026-07-09
1009India2026-06-19
1010Canada2026-06-23
1011Japan2026-07-09
1012Japan2026-07-08
1013Italy2026-07-07
1014India2026-07-12
1015United Kingdom2026-07-04
1016United Kingdom2026-06-29
1017Japan2026-06-23
1018Canada2026-06-21
1019Canada2026-06-18
1020Germany2026-06-20
1021France2026-06-29
1022Canada2026-07-13
1023Brazil2026-07-01
1024Spain2026-06-20
1025Canada2026-06-30
1026Australia2026-07-17
1027Italy2026-07-02
1028United Kingdom2026-06-29
1029Brazil2026-06-23
1030Germany2026-06-18
1031Brazil2026-06-23
1032India2026-07-11
1033Canada2026-06-26
1034Russia2026-07-11
1035Russia2026-07-16
1036Brazil2026-07-02
1037France2026-06-29
1038Australia2026-07-02
1039France2026-07-12
1040United Kingdom2026-06-20
1041France2026-06-22
1042Canada2026-06-18
1043Germany2026-06-23
1044Spain2026-07-04
1045Japan2026-06-27
1046Brazil2026-07-02
1047Argentina2026-07-10
1048India2026-07-11
1049Argentina2026-06-26

On-Demand Data

NameIdCountryDate
Isabel R Waycott1000Argentina2026-07-06
Mujtaba O Nestle1001Japan2026-06-24
Munro Z Vocelka1002Argentina2026-06-20
Juan D Campain1003Australia2026-07-16
Alejandro M Poquette1004Brazil2026-07-15
David L Malet1005Russia2026-07-17
Jeanfrancois F Maclead1006Brazil2026-06-21
Jefferson T Kolmetz1007Australia2026-07-08
Chavez B Royster1008United Kingdom2026-06-19
Izzy F Morasca1009Australia2026-07-12
Salvatore W Perin1010Italy2026-06-26
Costa C Wieser1011France2026-07-17
Greenwood M Briddick1012Canada2026-06-23
Mujtaba I Royster1013Russia2026-06-30
Arvin M Kusko1014United Kingdom2026-07-07
Clifford R Morasca1015United Kingdom2026-06-29
Tony P Glick1016Australia2026-06-26
Mayumi F Albares1017India2026-07-12
Maria L Campain1018India2026-07-01
Aika V Nestle1019France2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh J DilliardIndiaIvan Magalhaes UNQUALIFIED
Arvin N PaprockiBrazilAsiya Javayant RENEWAL
Rodrigues A MarrierIndiaAnna Fali RENEWAL
Munro S WhobreyUnited KingdomAnna Fali RENEWAL
Ivar B SchemmerArgentinaStephen Shaw QUALIFIED
Faith X RimFranceBernardo Dominic RENEWAL
Maisha F MaletBrazilOnyama Limba RENEWAL
Jeanfrancois I RimFranceAnna Fali PROPOSAL
Johnson L SaylorsIndiaStephen Shaw NEW
Ivar T DoeIndiaXuxue Feng NEGOTIATION
Mujtaba T OldroydGermanyAnna Fali PROPOSAL
Rodrigues Y GarufiBrazilOnyama Limba NEW
Antonio J ShinkoFranceAnna Fali NEGOTIATION
Smith Y WaycottCanadaBernardo Dominic UNQUALIFIED
Faith F StockhamFranceIvan Magalhaes RENEWAL
Francesco E SaylorsGermanyStephen Shaw UNQUALIFIED
Alejandro G KolmetzJapanStephen Shaw NEW
Aruna A BriddickSpainOnyama Limba NEGOTIATION
Salvatore A PoquetteArgentinaIoni Bowcher NEGOTIATION
Morrow Y BowleyUnited KingdomOnyama Limba QUALIFIED
Jennifer X GauchoJapanStephen Shaw PROPOSAL
Jennifer Z MorascaFranceBernardo Dominic UNQUALIFIED
Darci D OldroydBrazilIoni Bowcher UNQUALIFIED
Chavez C MacleadRussiaAsiya Javayant UNQUALIFIED
Stacey U MaletAustraliaElwin Sharvill PROPOSAL
Ashley G MarrierItalyElwin Sharvill NEW
Jefferson P OstroskyCanadaElwin Sharvill QUALIFIED
David M MorascaIndiaOnyama Limba UNQUALIFIED
James X DarakjyFranceIoni Bowcher PROPOSAL
Julie I KolmetzItalyStephen Shaw QUALIFIED
Morrow Q GarufiCanadaElwin Sharvill UNQUALIFIED
Deepesh X GauchoCanadaElwin Sharvill NEGOTIATION
Emily F CaudyCanadaElwin Sharvill RENEWAL
Sinclair M MaletArgentinaAmy Elsner NEGOTIATION
Antonio L PerinSpainElwin Sharvill NEGOTIATION
Cody S MacleadFranceAsiya Javayant NEW
Arvin X FigeroaBrazilOnyama Limba NEW
Maria K DilliardJapanOnyama Limba QUALIFIED
Aditya R AmigonGermanyStephen Shaw NEW
Francesco P BriddickFranceStephen Shaw 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>