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
Tony X CaldareraRussiaAsiya Javayant NEGOTIATION
Misaki V AmigonUnited KingdomIoni Bowcher NEW
Leon J RutaRussiaStephen Shaw UNQUALIFIED
Maria M GillianArgentinaXuxue Feng NEW
Cody P OldroydAustraliaAnna Fali QUALIFIED
David G WhobreyGermanyBernardo Dominic NEW
Alejandro G BowleySpainStephen Shaw NEW
Johnson V AmigonJapanXuxue Feng NEW
Chavez U AlbaresBrazilStephen Shaw RENEWAL
Misaki P RulapaughJapanXuxue Feng QUALIFIED
Antonio D OldroydAustraliaAsiya Javayant UNQUALIFIED
Ricardo J TollnerAustraliaAsiya Javayant NEW
Deepesh V SergiCanadaAnna Fali PROPOSAL
Nicolas P PoquetteAustraliaAnna Fali NEGOTIATION
Chavez T MaletUnited KingdomStephen Shaw NEW
Leon E BologniaFranceAmy Elsner QUALIFIED
Ivar E BowleyIndiaXuxue Feng PROPOSAL
Julie K ButtAustraliaAmy Elsner NEGOTIATION
Stacey W MorascaFranceXuxue Feng RENEWAL
Murillo R GarufiItalyAnna Fali PROPOSAL
Mujtaba T WaycottCanadaOnyama Limba NEW
Murillo Q PoquetteUnited KingdomIoni Bowcher UNQUALIFIED
Ricardo P MarrierUnited KingdomIoni Bowcher PROPOSAL
David N ShinkoArgentinaAmy Elsner NEGOTIATION
Chavez J SergiAustraliaAsiya Javayant UNQUALIFIED
Tony N StockhamBrazilAnna Fali QUALIFIED
Ricardo B GillianItalyXuxue Feng NEGOTIATION
Smith V StockhamItalyOnyama Limba NEW
Mayumi Q SlusarskiArgentinaIoni Bowcher PROPOSAL
Costa D FollerGermanyAmy Elsner UNQUALIFIED
Stacey H WieserAustraliaElwin Sharvill PROPOSAL
Cody X GauchoCanadaOnyama Limba PROPOSAL
Morrow T AlbaresJapanElwin Sharvill PROPOSAL
Murillo N FerenczJapanAmy Elsner QUALIFIED
Kadeem B SlusarskiIndiaOnyama Limba QUALIFIED
Julie M DarakjyItalyIoni Bowcher NEW
Nicolas P AlbaresRussiaElwin Sharvill RENEWAL
Claire S GillianArgentinaOnyama Limba UNQUALIFIED
Julie F FlosiFranceOnyama Limba RENEWAL
Rodrigues S DilliardItalyElwin Sharvill UNQUALIFIED
Morrow I VenereFranceBernardo Dominic RENEWAL
Jefferson G OldroydIndiaIoni Bowcher RENEWAL
Murillo M AlbaresJapanAnna Fali PROPOSAL
Deepesh L WieserSpainStephen Shaw NEGOTIATION
Wickens S IturbideBrazilBernardo Dominic QUALIFIED
Jennifer H FollerIndiaIvan Magalhaes QUALIFIED
Octavia M GlickItalyBernardo Dominic PROPOSAL
Claire A NickaItalyXuxue Feng QUALIFIED
Ivar O GauchoItalyAsiya Javayant QUALIFIED
Jeanfrancois T GillianRussiaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon Q GlickJapanIvan Magalhaes NEW
Morrow F DoeAustraliaIoni Bowcher PROPOSAL
Morrow L CampainJapanAmy Elsner NEW
Jennifer U SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Isabel K MarrierBrazilAnna Fali NEGOTIATION
Adams P RutaItalyIoni Bowcher NEGOTIATION
David S DoeGermanyElwin Sharvill UNQUALIFIED
Francesco G TollnerCanadaXuxue Feng QUALIFIED
Kadeem X WaycottGermanyOnyama Limba RENEWAL
Antonio T FollerItalyStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones D BologniaGermany2026-08-29Dorl, James J Esq NEW85Ioni Bowcher
1001Rodrigues B KolmetzArgentina2026-08-22Chanay, Jeffrey A Esq RENEWAL8Onyama Limba
1002Deepesh M GlickBrazil2026-08-02Benton, John B Jr PROPOSAL94Ivan Magalhaes
1003Octavia O KuskoArgentina2026-08-05Chapman, Ross E Esq RENEWAL22Stephen Shaw
1004Leja X FigeroaAustralia2026-08-16Truhlar And Truhlar Attys PROPOSAL69Ioni Bowcher
1005Murillo D CaldareraBrazil2026-08-29Dorl, James J Esq PROPOSAL75Asiya Javayant
1006Alejandro U VenereCanada2026-08-24Rousseaux, Michael Esq QUALIFIED36Asiya Javayant
1007Rodrigues T SlusarskiUnited Kingdom2026-08-25Commercial Press UNQUALIFIED18Elwin Sharvill
1008Faith D VocelkaCanada2026-08-17Morlong Associates NEW7Ioni Bowcher
1009Maria G KolmetzBrazil2026-08-09Benton, John B Jr NEW56Onyama Limba
1010Jeanfrancois T InouyeCanada2026-08-29Printing Dimensions NEW0Stephen Shaw
1011Leja H ShinkoItaly2026-08-17Truhlar And Truhlar Attys UNQUALIFIED32Bernardo Dominic
1012Cody S FollerUnited Kingdom2026-08-28Chemel, James L Cpa UNQUALIFIED78Anna Fali
1013Ashley F ShinkoRussia2026-08-27Rangoni Of Florence QUALIFIED36Xuxue Feng
1014Silvio Q FollerFrance2026-08-07Dorl, James J Esq NEW81Xuxue Feng
1015Ashley N SlusarskiCanada2026-08-10Dorl, James J Esq QUALIFIED11Anna Fali
1016Misaki U SergiIndia2026-08-12Chemel, James L Cpa RENEWAL15Elwin Sharvill
1017Maria F StensethUnited Kingdom2026-08-16Buckley Miller Wright NEGOTIATION81Onyama Limba
1018Greenwood F SaylorsUnited Kingdom2026-08-25Morlong Associates NEW97Ioni Bowcher
1019Maisha I ChuiArgentina2026-08-12Dorl, James J Esq NEGOTIATION42Onyama Limba
1020Leon V MarrierUnited Kingdom2026-08-26Dorl, James J Esq UNQUALIFIED69Xuxue Feng
1021Julie N RoysterAustralia2026-08-19Dorl, James J Esq PROPOSAL12Ioni Bowcher
1022Chavez H NestleJapan2026-08-27Buckley Miller Wright UNQUALIFIED3Asiya Javayant
1023Alejandro L StockhamJapan2026-08-07Chanay, Jeffrey A Esq PROPOSAL32Xuxue Feng
1024Jones B DoeIndia2026-08-26Feltz Printing Service NEW97Onyama Limba
1025Costa J BologniaUnited Kingdom2026-08-30Morlong Associates RENEWAL23Stephen Shaw
1026David L RulapaughIndia2026-08-03Printing Dimensions RENEWAL53Ivan Magalhaes
1027Leon L MaletGermany2026-08-23Printing Dimensions UNQUALIFIED81Onyama Limba
1028Chavez W GlickJapan2026-08-03Chanay, Jeffrey A Esq NEGOTIATION21Ioni Bowcher
1029Tony D InouyeAustralia2026-08-16Chemel, James L Cpa NEGOTIATION49Onyama Limba
1030Silvio D MaletItaly2026-08-22Chemel, James L Cpa NEGOTIATION66Xuxue Feng
1031Faith U NestleJapan2026-08-30Benton, John B Jr UNQUALIFIED18Ioni Bowcher
1032Salvatore S RulapaughUnited Kingdom2026-08-12Truhlar And Truhlar Attys QUALIFIED98Stephen Shaw
1033Jeanfrancois M CaudyRussia2026-08-05King, Christopher A Esq QUALIFIED71Ioni Bowcher
1034Claire X OldroydAustralia2026-08-19Rousseaux, Michael Esq NEGOTIATION21Xuxue Feng
1035Octavia Q PerinCanada2026-08-22Morlong Associates PROPOSAL93Asiya Javayant
1036Antonio G MaletBrazil2026-08-06King, Christopher A Esq UNQUALIFIED12Bernardo Dominic
1037Mayumi P InouyeRussia2026-08-15Rangoni Of Florence NEGOTIATION31Xuxue Feng
1038Morrow C FlosiBrazil2026-08-26Chanay, Jeffrey A Esq UNQUALIFIED62Stephen Shaw
1039Maria Y ShinkoRussia2026-08-12Commercial Press PROPOSAL95Xuxue Feng
1040Ivar D StensethCanada2026-08-11Chapman, Ross E Esq RENEWAL96Anna Fali
1041Sinclair J VenereAustralia2026-08-24Printing Dimensions UNQUALIFIED30Amy Elsner
1042Alejandro Q MaletAustralia2026-08-20Rangoni Of Florence NEW45Stephen Shaw
1043Ivar G MaletSpain2026-08-21Truhlar And Truhlar Attys NEW52Onyama Limba
1044Smith T KuskoSpain2026-08-24Morlong Associates NEW92Elwin Sharvill
1045David Q BriddickJapan2026-08-06Rousseaux, Michael Esq NEW4Onyama Limba
1046Mujtaba U OldroydJapan2026-08-15Feltz Printing Service NEGOTIATION31Bernardo Dominic
1047Misaki R SlusarskiCanada2026-08-22Buckley Miller Wright RENEWAL80Amy Elsner
1048Leon J GarufiUnited Kingdom2026-08-04Benton, John B Jr UNQUALIFIED50Ioni Bowcher
1049Adams K RoysterGermany2026-08-09Commercial Press NEW14Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Morrow C WhobreyIndiaOnyama Limba NEGOTIATION
Claire K CaudyArgentinaIoni Bowcher NEGOTIATION
Juan O OldroydArgentinaAmy Elsner NEGOTIATION
Aika O BologniaSpainIoni Bowcher RENEWAL
Arvin L MarrierRussiaOnyama Limba NEGOTIATION
Faith P GillianJapanStephen Shaw UNQUALIFIED
Aika C NickaAustraliaElwin Sharvill NEGOTIATION
Antonio D PoquetteAustraliaElwin Sharvill UNQUALIFIED
Jones H AlbaresSpainAmy Elsner NEW
Darci T KuskoArgentinaBernardo Dominic QUALIFIED
Ashley G AlbaresFranceBernardo Dominic RENEWAL
Octavia Q BriddickFranceOnyama Limba PROPOSAL
Chavez R CaldareraArgentinaXuxue Feng NEW
Nicolas P RulapaughJapanIoni Bowcher NEW
David Z BologniaSpainIoni Bowcher RENEWAL
Maisha Y KolmetzCanadaIvan Magalhaes PROPOSAL
Faith L NickaIndiaElwin Sharvill UNQUALIFIED
Ricardo Y BowleyIndiaAmy Elsner RENEWAL
Alejandro U BowleySpainAsiya Javayant UNQUALIFIED
Jones G InouyeBrazilStephen Shaw PROPOSAL
Izzy K ButtAustraliaAnna Fali UNQUALIFIED
Maisha W BologniaAustraliaBernardo Dominic QUALIFIED
Costa G BowleyJapanAnna Fali NEW
Salvatore I StensethFranceBernardo Dominic UNQUALIFIED
Maisha P PaprockiRussiaXuxue Feng PROPOSAL
Maisha U WieserSpainXuxue Feng NEGOTIATION
Wickens Q DarakjySpainIvan Magalhaes PROPOSAL
Leon G GillianRussiaIoni Bowcher UNQUALIFIED
Nicolas Y DilliardJapanStephen Shaw QUALIFIED
Deepesh Q ChuiSpainXuxue Feng NEGOTIATION
Smith L TollnerItalyIvan Magalhaes UNQUALIFIED
Emily Q StockhamSpainIoni Bowcher QUALIFIED
Nicolas M NickaCanadaAsiya Javayant NEW
Juan Z ChuiArgentinaXuxue Feng QUALIFIED
Aruna V AlbaresAustraliaIoni Bowcher UNQUALIFIED
Sinclair P CaudyRussiaStephen Shaw UNQUALIFIED
Jefferson N PerinIndiaAmy Elsner NEGOTIATION
Jennifer C RulapaughSpainAnna Fali PROPOSAL
Salvatore B CaudySpainIoni Bowcher QUALIFIED
Kadeem G DilliardAustraliaBernardo Dominic NEW
Chavez X MacleadGermanyAnna Fali QUALIFIED
Juan P SergiArgentinaIoni Bowcher NEGOTIATION
Antonio T RutaSpainIvan Magalhaes QUALIFIED
Darci K ButtAustraliaIvan Magalhaes NEGOTIATION
Antonio V DarakjyItalyElwin Sharvill PROPOSAL
Cody J TollnerUnited KingdomElwin Sharvill NEW
Juan Y SaylorsIndiaOnyama Limba PROPOSAL
Jeanfrancois G BowleyItalyBernardo Dominic NEGOTIATION
Mayumi A RulapaughRussiaStephen Shaw PROPOSAL
Kaitlin R GauchoUnited KingdomAnna Fali NEW
Frozen Columns
Name
Clifford I Doe
Misaki V Slusarski
Emily O Rulapaugh
Juan A Caldarera
Arvin J Figeroa
Munro Z Nicka
Salvatore T Sergi
Maria M Vocelka
Claire N Paprocki
Mayumi Q Schemmer
Leja U Ferencz
Greenwood U Flosi
Ricardo Y Venere
Aika S Venere
Julie D Slusarski
Francesco N Albares
Jones D Kusko
Leon A Campain
Octavia G Stenseth
Johnson L Caldarera
Aika T Dilliard
James F Ostrosky
Deepesh P Briddick
Aika E Malet
Juan Q Malet
Aika I Rulapaugh
Darci P Figeroa
Darci K Albares
Jefferson M Caudy
Deepesh E Malet
Octavia W Amigon
Maria W Slusarski
Emily P Ruta
Aika Q Albares
Faith V Wieser
Adams Q Kusko
Johnson S Rulapaugh
Mujtaba C Venere
James R Ferencz
Kadeem Z Venere
Jefferson O Caldarera
Leon S Royster
Isabel Y Maclead
Misaki D Maclead
Aditya U Whobrey
Chavez U Tollner
Aika R Ruta
Wickens F Figeroa
Leon W Perin
Aruna I Nestle
IdCountryDate
1000Brazil2026-08-13
1001Spain2026-08-26
1002Spain2026-08-05
1003Canada2026-08-16
1004Germany2026-08-21
1005Italy2026-08-15
1006Germany2026-08-18
1007Canada2026-08-16
1008Canada2026-08-22
1009Argentina2026-08-22
1010France2026-08-18
1011Argentina2026-08-25
1012India2026-08-22
1013Australia2026-08-13
1014Argentina2026-08-17
1015United Kingdom2026-08-30
1016Japan2026-08-05
1017Argentina2026-08-13
1018Japan2026-08-03
1019Russia2026-08-17
1020France2026-08-18
1021Japan2026-08-26
1022United Kingdom2026-08-09
1023Germany2026-08-04
1024India2026-08-04
1025Australia2026-08-18
1026France2026-08-14
1027United Kingdom2026-08-24
1028United Kingdom2026-08-10
1029India2026-08-26
1030Canada2026-08-03
1031Australia2026-08-13
1032France2026-08-20
1033United Kingdom2026-08-14
1034Spain2026-08-19
1035Canada2026-08-20
1036Japan2026-08-27
1037Argentina2026-08-08
1038Spain2026-08-25
1039Italy2026-08-10
1040India2026-08-04
1041France2026-08-15
1042Brazil2026-08-20
1043Japan2026-08-21
1044Australia2026-08-29
1045Argentina2026-08-12
1046Brazil2026-08-21
1047Argentina2026-08-05
1048Germany2026-08-08
1049Argentina2026-08-08

On-Demand Data

NameIdCountryDate
Nicolas U Caldarera1000Italy2026-08-06
Kadeem X Garufi1001United Kingdom2026-08-01
Jeanfrancois D Ruta1002Brazil2026-08-10
James F Slusarski1003Italy2026-08-29
Claire Z Iturbide1004United Kingdom2026-08-06
Clifford A Kolmetz1005Spain2026-08-20
Juan W Iturbide1006Brazil2026-08-29
Cody F Campain1007Brazil2026-08-05
Munro P Glick1008France2026-08-10
Tony N Kusko1009India2026-08-22
Jones P Stockham1010Russia2026-08-02
Morrow B Rulapaugh1011Russia2026-08-24
David O Caudy1012Spain2026-08-15
Izzy T Maclead1013Italy2026-08-08
Jones I Flosi1014Germany2026-08-21
Munro F Shinko1015Russia2026-08-19
Aditya J Butt1016Brazil2026-08-30
Smith E Poquette1017Russia2026-08-01
Alejandro M Chui1018Canada2026-08-04
Ashley Y Garufi1019Germany2026-08-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David K FigeroaItalyAnna Fali NEW
Jefferson S DarakjyUnited KingdomOnyama Limba UNQUALIFIED
Nicolas G GarufiFranceBernardo Dominic PROPOSAL
Aruna T MorascaRussiaXuxue Feng NEW
Mujtaba J FollerCanadaIvan Magalhaes QUALIFIED
Greenwood E FlosiJapanXuxue Feng NEW
Greenwood F MaletCanadaAnna Fali PROPOSAL
Octavia P RimRussiaXuxue Feng NEGOTIATION
Salvatore E ChuiRussiaAnna Fali NEGOTIATION
Isabel E RoysterJapanStephen Shaw PROPOSAL
Cody G StockhamItalyElwin Sharvill NEW
Faith D KuskoArgentinaIoni Bowcher QUALIFIED
Morrow E WaycottArgentinaElwin Sharvill RENEWAL
Leon E GauchoAustraliaAsiya Javayant UNQUALIFIED
Ivar E SergiRussiaAmy Elsner RENEWAL
Francesco T GauchoUnited KingdomXuxue Feng QUALIFIED
Tony N KolmetzSpainBernardo Dominic RENEWAL
Mujtaba Y ChuiRussiaElwin Sharvill RENEWAL
Leja O DarakjyCanadaAmy Elsner NEW
James L FlosiArgentinaAmy Elsner PROPOSAL
Isabel Q NestleJapanBernardo Dominic UNQUALIFIED
Chavez N TollnerArgentinaBernardo Dominic PROPOSAL
Francesco E InouyeCanadaXuxue Feng NEW
James P CaudySpainElwin Sharvill UNQUALIFIED
Munro Z DoeFranceXuxue Feng PROPOSAL
Isabel M ShinkoRussiaXuxue Feng RENEWAL
Misaki P CaldareraSpainIvan Magalhaes NEGOTIATION
Julie K MarrierItalyOnyama Limba PROPOSAL
Jeanfrancois K CaldareraUnited KingdomAnna Fali NEGOTIATION
Clifford X SchemmerRussiaAnna Fali NEW
Ricardo F RoysterBrazilAsiya Javayant RENEWAL
David C FigeroaJapanBernardo Dominic UNQUALIFIED
Kadeem Q KolmetzItalyXuxue Feng NEW
Deepesh G InouyeRussiaIoni Bowcher UNQUALIFIED
Smith P KuskoJapanOnyama Limba PROPOSAL
Juan M WhobreyGermanyElwin Sharvill QUALIFIED
Wickens A WaycottSpainStephen Shaw QUALIFIED
Clifford K NestleJapanAnna Fali NEW
Leja N PaprockiCanadaStephen Shaw NEW
Jefferson B OldroydAustraliaIoni Bowcher NEGOTIATION

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