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
Stacey N OstroskyIndiaStephen Shaw RENEWAL
Arvin E BowleyItalyAsiya Javayant QUALIFIED
Jones A MacleadJapanAnna Fali RENEWAL
Aditya J StensethJapanIvan Magalhaes PROPOSAL
Costa J DarakjySpainElwin Sharvill PROPOSAL
Murillo K CaldareraRussiaXuxue Feng UNQUALIFIED
Morrow W PoquetteFranceAnna Fali RENEWAL
Greenwood Y BologniaRussiaStephen Shaw RENEWAL
Mujtaba I MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Antonio Z GarufiGermanyOnyama Limba NEW
Arvin J CampainFranceElwin Sharvill QUALIFIED
Isabel Y BriddickCanadaAsiya Javayant PROPOSAL
Ashley E OstroskyJapanIvan Magalhaes UNQUALIFIED
Leja E GarufiAustraliaIvan Magalhaes RENEWAL
Octavia A GarufiUnited KingdomStephen Shaw NEW
Arvin V FlosiUnited KingdomAnna Fali RENEWAL
Misaki L BologniaCanadaStephen Shaw RENEWAL
Juan S BologniaBrazilElwin Sharvill QUALIFIED
Deepesh T WhobreyArgentinaOnyama Limba PROPOSAL
Arvin X SaylorsIndiaElwin Sharvill PROPOSAL
Ivar O SlusarskiGermanyIoni Bowcher RENEWAL
Salvatore M TollnerUnited KingdomIvan Magalhaes UNQUALIFIED
Nicolas G RoysterBrazilStephen Shaw UNQUALIFIED
Isabel O OldroydJapanAsiya Javayant UNQUALIFIED
Nicolas E SchemmerGermanyElwin Sharvill QUALIFIED
Cody F BologniaItalyElwin Sharvill NEGOTIATION
Murillo G ChuiRussiaElwin Sharvill QUALIFIED
Maria Y GarufiBrazilOnyama Limba PROPOSAL
Johnson X ChuiCanadaAmy Elsner PROPOSAL
Francesco J KolmetzFranceIoni Bowcher UNQUALIFIED
Salvatore I NickaArgentinaElwin Sharvill PROPOSAL
Izzy O RulapaughItalyElwin Sharvill NEGOTIATION
Ashley I RutaUnited KingdomBernardo Dominic PROPOSAL
Morrow G VocelkaGermanyAmy Elsner NEW
Smith M OldroydRussiaIoni Bowcher UNQUALIFIED
Tony L BriddickAustraliaStephen Shaw RENEWAL
Mujtaba K SergiAustraliaXuxue Feng RENEWAL
Smith K WieserAustraliaStephen Shaw QUALIFIED
Chavez R PerinIndiaOnyama Limba NEW
Isabel F SchemmerArgentinaAsiya Javayant NEW
Claire R RimArgentinaOnyama Limba NEGOTIATION
Octavia J MaletItalyStephen Shaw RENEWAL
Emily Q VocelkaCanadaIoni Bowcher RENEWAL
Aika U KuskoArgentinaBernardo Dominic UNQUALIFIED
Deepesh O OstroskyItalyStephen Shaw UNQUALIFIED
Faith C NickaBrazilAmy Elsner PROPOSAL
Misaki M MorascaRussiaAnna Fali NEW
Sinclair F AmigonCanadaStephen Shaw PROPOSAL
Isabel N DarakjyArgentinaXuxue Feng NEW
James G ShinkoJapanOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem Y BologniaItalyIoni Bowcher UNQUALIFIED
Octavia V PerinJapanAmy Elsner NEGOTIATION
Aruna T DoeAustraliaXuxue Feng NEW
Octavia J SaylorsBrazilIvan Magalhaes UNQUALIFIED
Nicolas X MacleadItalyBernardo Dominic UNQUALIFIED
Tony D DoeFranceOnyama Limba UNQUALIFIED
Morrow G CaudyCanadaXuxue Feng RENEWAL
Maria I FigeroaCanadaIoni Bowcher RENEWAL
Greenwood Z MarrierAustraliaElwin Sharvill UNQUALIFIED
Aruna K GauchoFranceXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria G StockhamUnited Kingdom2026-07-30Feltz Printing Service UNQUALIFIED99Elwin Sharvill
1001Clifford L CampainFrance2026-08-04Chemel, James L Cpa NEW88Stephen Shaw
1002Adams X IturbideUnited Kingdom2026-07-27Buckley Miller Wright PROPOSAL36Xuxue Feng
1003Alejandro K MaletItaly2026-08-10Feltz Printing Service QUALIFIED57Asiya Javayant
1004Smith S PerinArgentina2026-08-07Commercial Press PROPOSAL74Onyama Limba
1005Tony N CampainBrazil2026-07-19Rangoni Of Florence NEGOTIATION0Anna Fali
1006Murillo J NickaUnited Kingdom2026-07-27Buckley Miller Wright NEGOTIATION25Ioni Bowcher
1007Johnson Q FollerRussia2026-07-26King, Christopher A Esq PROPOSAL79Amy Elsner
1008Alejandro D PerinItaly2026-08-12Buckley Miller Wright UNQUALIFIED56Asiya Javayant
1009Kaitlin Y OldroydGermany2026-07-29Feiner Bros PROPOSAL36Amy Elsner
1010James L ChuiRussia2026-08-01Dorl, James J Esq PROPOSAL14Asiya Javayant
1011Rodrigues T SergiArgentina2026-07-28Chemel, James L Cpa RENEWAL45Amy Elsner
1012Aika R MacleadArgentina2026-07-19Buckley Miller Wright NEGOTIATION49Amy Elsner
1013Maria W KuskoRussia2026-07-27Truhlar And Truhlar Attys NEGOTIATION60Onyama Limba
1014Cody V PoquetteAustralia2026-08-08Chapman, Ross E Esq PROPOSAL29Asiya Javayant
1015Aika Y IturbideItaly2026-08-14Morlong Associates QUALIFIED61Xuxue Feng
1016Wickens H MacleadArgentina2026-07-20Chemel, James L Cpa NEW80Amy Elsner
1017Sinclair B OstroskyArgentina2026-08-15Morlong Associates UNQUALIFIED28Anna Fali
1018Deepesh Y OstroskyCanada2026-08-09Chapman, Ross E Esq NEW57Xuxue Feng
1019Costa E StockhamRussia2026-07-29Feltz Printing Service RENEWAL94Ioni Bowcher
1020Juan L KuskoUnited Kingdom2026-07-30Rousseaux, Michael Esq UNQUALIFIED20Onyama Limba
1021Tony V BologniaSpain2026-07-22Truhlar And Truhlar Attys PROPOSAL56Onyama Limba
1022Aditya Y GarufiJapan2026-08-01Dorl, James J Esq PROPOSAL10Ivan Magalhaes
1023Jennifer K MacleadCanada2026-07-22Rangoni Of Florence NEW37Elwin Sharvill
1024Antonio V OldroydAustralia2026-08-13Benton, John B Jr UNQUALIFIED79Ioni Bowcher
1025Chavez Z WaycottUnited Kingdom2026-08-05Truhlar And Truhlar Attys NEGOTIATION67Ivan Magalhaes
1026Cody Y AlbaresUnited Kingdom2026-07-21Chapman, Ross E Esq NEGOTIATION6Ivan Magalhaes
1027Sinclair L BowleyGermany2026-07-29Morlong Associates NEW17Anna Fali
1028Clifford N GarufiRussia2026-07-24Morlong Associates NEGOTIATION78Asiya Javayant
1029Leon Y BologniaArgentina2026-07-30King, Christopher A Esq NEW67Xuxue Feng
1030Jefferson Q VocelkaAustralia2026-07-24Rangoni Of Florence NEW84Bernardo Dominic
1031Mayumi W PoquetteItaly2026-08-12Dorl, James J Esq NEW13Onyama Limba
1032Nicolas A RimCanada2026-07-28Feiner Bros NEW64Anna Fali
1033Jennifer R MaletSpain2026-08-15Rangoni Of Florence UNQUALIFIED41Anna Fali
1034Kadeem I MarrierBrazil2026-07-27Rangoni Of Florence NEW86Ioni Bowcher
1035Aditya B InouyeFrance2026-08-11Rangoni Of Florence UNQUALIFIED69Elwin Sharvill
1036Maria H KuskoGermany2026-07-23Feltz Printing Service RENEWAL47Stephen Shaw
1037David K BowleyAustralia2026-07-21King, Christopher A Esq NEW48Elwin Sharvill
1038Jennifer I SergiArgentina2026-08-06King, Christopher A Esq RENEWAL96Onyama Limba
1039Ashley R SergiGermany2026-08-11Benton, John B Jr PROPOSAL67Stephen Shaw
1040Izzy V StensethSpain2026-08-03Chanay, Jeffrey A Esq QUALIFIED68Asiya Javayant
1041Rodrigues F TollnerIndia2026-08-16Buckley Miller Wright PROPOSAL49Anna Fali
1042Arvin B OstroskyUnited Kingdom2026-08-15Chanay, Jeffrey A Esq NEW70Elwin Sharvill
1043Tony C GlickCanada2026-08-08Feiner Bros QUALIFIED28Elwin Sharvill
1044Stacey A SchemmerIndia2026-08-02Rousseaux, Michael Esq RENEWAL43Asiya Javayant
1045Tony D NestleRussia2026-08-11Morlong Associates NEW21Asiya Javayant
1046Greenwood V RimFrance2026-07-20Morlong Associates QUALIFIED80Ivan Magalhaes
1047Darci D RimAustralia2026-08-16Feiner Bros UNQUALIFIED15Elwin Sharvill
1048Salvatore I TollnerItaly2026-07-19Truhlar And Truhlar Attys NEW78Ioni Bowcher
1049James M PerinIndia2026-07-22Morlong Associates NEW10Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Francesco I DilliardBrazilIoni Bowcher RENEWAL
Chavez S MacleadIndiaBernardo Dominic RENEWAL
Kadeem V DoeItalyOnyama Limba PROPOSAL
Julie W CaudyGermanyAmy Elsner QUALIFIED
Chavez L NestleItalyStephen Shaw PROPOSAL
Antonio L IturbideUnited KingdomStephen Shaw NEGOTIATION
Kadeem P MorascaAustraliaXuxue Feng UNQUALIFIED
Sinclair X PoquetteBrazilXuxue Feng QUALIFIED
Cody G MaletSpainAmy Elsner RENEWAL
Alejandro U MaletItalyIoni Bowcher UNQUALIFIED
Silvio S WaycottIndiaElwin Sharvill RENEWAL
Chavez Q InouyeGermanyAnna Fali QUALIFIED
Rodrigues S SlusarskiSpainBernardo Dominic QUALIFIED
Silvio X KuskoArgentinaAnna Fali NEW
Maria T IturbideSpainIvan Magalhaes NEGOTIATION
Aruna S RoysterFranceBernardo Dominic UNQUALIFIED
Wickens T FlosiItalyAsiya Javayant NEGOTIATION
Tony G MarrierSpainStephen Shaw RENEWAL
Izzy K SchemmerSpainAnna Fali NEW
Kadeem H TollnerBrazilStephen Shaw RENEWAL
Izzy A WhobreyIndiaIoni Bowcher QUALIFIED
Misaki I DoeIndiaXuxue Feng NEW
Jefferson X SaylorsJapanAnna Fali RENEWAL
Leon Y IturbideGermanyIoni Bowcher RENEWAL
Isabel N MaletAustraliaXuxue Feng PROPOSAL
Chavez Q SlusarskiSpainIvan Magalhaes RENEWAL
Maisha S WhobreyFranceOnyama Limba QUALIFIED
Kaitlin O SchemmerBrazilElwin Sharvill RENEWAL
Morrow M ChuiJapanAsiya Javayant QUALIFIED
Sinclair F FigeroaCanadaBernardo Dominic QUALIFIED
Morrow B SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Ivar B FigeroaFranceIoni Bowcher RENEWAL
Aditya X MorascaArgentinaIvan Magalhaes PROPOSAL
Ashley D IturbideSpainBernardo Dominic PROPOSAL
Morrow H ShinkoIndiaBernardo Dominic NEW
Octavia Y PerinBrazilBernardo Dominic UNQUALIFIED
Faith W RimArgentinaIoni Bowcher NEW
Darci O DoeIndiaElwin Sharvill UNQUALIFIED
Ivar E StockhamSpainIoni Bowcher NEGOTIATION
Misaki V DoeItalyBernardo Dominic NEW
Ricardo P OstroskyItalyOnyama Limba UNQUALIFIED
Leja Q CaudySpainIoni Bowcher PROPOSAL
David B KuskoJapanStephen Shaw PROPOSAL
Costa F SergiJapanAnna Fali NEGOTIATION
Francesco Q VocelkaGermanyAnna Fali QUALIFIED
Julie G SergiJapanAsiya Javayant NEGOTIATION
Stacey Q NestleJapanXuxue Feng RENEWAL
Octavia L MaletRussiaIvan Magalhaes RENEWAL
Jennifer X ChuiJapanAmy Elsner PROPOSAL
Mayumi N SaylorsCanadaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Maria T Amigon
David E Morasca
Murillo E Garufi
David F Sergi
Nicolas E Rulapaugh
Nicolas L Saylors
Arvin W Vocelka
Munro M Ruta
Cody X Caldarera
Nicolas P Shinko
Alejandro D Rulapaugh
Aditya F Bowley
Jeanfrancois O Poquette
Chavez A Marrier
Johnson U Stenseth
Murillo C Garufi
Darci N Stenseth
Tony F Chui
Emily O Sergi
Cody U Shinko
Deepesh M Shinko
Julie T Oldroyd
Ricardo P Bolognia
Ashley D Vocelka
Tony D Gillian
Rodrigues X Oldroyd
Johnson G Rulapaugh
Tony P Vocelka
Ricardo A Rim
Jones Q Morasca
Jeanfrancois H Bowley
Deepesh W Iturbide
Ricardo R Garufi
James U Chui
Deepesh P Dilliard
Jefferson E Ferencz
Aika J Garufi
Antonio J Albares
Sinclair Z Venere
Nicolas G Figeroa
Rodrigues I Gaucho
Isabel X Paprocki
Johnson R Venere
Juan G Stenseth
Faith J Chui
Cody M Oldroyd
Jones G Royster
Johnson N Bowley
Claire L Bowley
Wickens Z Rim
IdCountryDate
1000Italy2026-07-18
1001United Kingdom2026-08-01
1002Canada2026-07-28
1003Spain2026-08-08
1004Germany2026-08-09
1005France2026-07-28
1006Brazil2026-08-11
1007United Kingdom2026-08-16
1008Italy2026-08-13
1009Brazil2026-08-09
1010India2026-08-13
1011Germany2026-08-16
1012Spain2026-08-04
1013Australia2026-07-31
1014Italy2026-08-15
1015Argentina2026-07-21
1016Japan2026-08-13
1017Spain2026-07-27
1018Italy2026-07-26
1019India2026-07-25
1020Germany2026-08-02
1021Argentina2026-08-05
1022Italy2026-07-21
1023France2026-07-23
1024Australia2026-08-04
1025Japan2026-07-29
1026Germany2026-07-26
1027Argentina2026-08-13
1028Japan2026-08-05
1029Australia2026-07-22
1030United Kingdom2026-07-22
1031Japan2026-08-07
1032Spain2026-07-21
1033Italy2026-07-30
1034Russia2026-08-05
1035United Kingdom2026-07-31
1036Australia2026-07-28
1037Germany2026-07-27
1038Australia2026-07-21
1039Spain2026-07-20
1040Australia2026-07-27
1041Spain2026-07-31
1042Australia2026-08-15
1043Italy2026-07-31
1044Germany2026-08-10
1045Spain2026-08-16
1046Germany2026-08-10
1047United Kingdom2026-07-27
1048India2026-08-08
1049United Kingdom2026-08-08

On-Demand Data

NameIdCountryDate
Darci O Venere1000Russia2026-07-24
Kaitlin K Waycott1001Russia2026-07-31
Morrow K Dilliard1002India2026-08-08
Izzy M Tollner1003Italy2026-08-05
Salvatore U Waycott1004Canada2026-08-10
Johnson W Darakjy1005Argentina2026-08-06
Tony T Inouye1006Australia2026-08-16
Cody D Gillian1007Argentina2026-08-11
Silvio C Iturbide1008Germany2026-07-30
Stacey A Glick1009Germany2026-07-24
Juan J Shinko1010Brazil2026-07-31
Misaki K Ostrosky1011Australia2026-08-13
Clifford E Malet1012France2026-07-26
Isabel N Bowley1013Brazil2026-08-02
Nicolas H Bolognia1014Russia2026-07-18
Aditya B Paprocki1015United Kingdom2026-07-19
Juan K Tollner1016Russia2026-07-29
Munro O Briddick1017Brazil2026-08-01
Antonio L Nestle1018Germany2026-08-06
Claire Y Foller1019Canada2026-07-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia M WieserFranceOnyama Limba NEW
Chavez V WieserArgentinaOnyama Limba PROPOSAL
Cody L StockhamJapanBernardo Dominic UNQUALIFIED
Rodrigues A ChuiCanadaIvan Magalhaes RENEWAL
Rodrigues D TollnerArgentinaAmy Elsner NEW
Antonio H SlusarskiSpainIoni Bowcher NEGOTIATION
Antonio W DoeGermanyXuxue Feng UNQUALIFIED
Maisha S BowleyFranceStephen Shaw NEW
Cody V WieserGermanyAmy Elsner NEGOTIATION
Jeanfrancois O MaletFranceIoni Bowcher NEW
Francesco I GarufiGermanyOnyama Limba NEGOTIATION
Murillo M WieserAustraliaAnna Fali NEW
Darci K KolmetzRussiaElwin Sharvill QUALIFIED
Murillo U CaudyUnited KingdomXuxue Feng PROPOSAL
Clifford F ButtItalyElwin Sharvill NEGOTIATION
Adams M MaletArgentinaIvan Magalhaes PROPOSAL
Jones I SergiGermanyIvan Magalhaes NEW
Wickens T SchemmerAustraliaOnyama Limba RENEWAL
Deepesh H KuskoArgentinaIoni Bowcher RENEWAL
Deepesh D MarrierFranceAmy Elsner RENEWAL
Ricardo N SaylorsJapanAnna Fali NEW
Arvin Z SlusarskiCanadaStephen Shaw QUALIFIED
Sinclair C SlusarskiGermanyOnyama Limba RENEWAL
Octavia H SaylorsItalyAsiya Javayant RENEWAL
Wickens D GillianGermanyElwin Sharvill NEW
Maisha S MaletIndiaStephen Shaw UNQUALIFIED
David I AmigonGermanyBernardo Dominic PROPOSAL
Johnson I VocelkaSpainIoni Bowcher PROPOSAL
Aika H PaprockiGermanyXuxue Feng PROPOSAL
Aruna K InouyeSpainElwin Sharvill RENEWAL
Smith Q CaudyFranceBernardo Dominic NEW
Faith M WaycottFranceStephen Shaw QUALIFIED
Leon F BologniaSpainIvan Magalhaes RENEWAL
Izzy G TollnerFranceAnna Fali PROPOSAL
Julie W MarrierFranceAnna Fali UNQUALIFIED
Julie G GillianFranceAmy Elsner QUALIFIED
Alejandro A ShinkoFranceBernardo Dominic NEW
Ashley Y GillianItalyElwin Sharvill PROPOSAL
Julie M PerinUnited KingdomXuxue Feng UNQUALIFIED
Izzy C NestleFranceAmy Elsner 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>