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
Jeanfrancois V VocelkaRussiaStephen Shaw NEW
Darci N RimGermanyStephen Shaw QUALIFIED
Aditya S MarrierFranceBernardo Dominic NEW
Jones E DilliardSpainAsiya Javayant PROPOSAL
Costa V OstroskyGermanyAnna Fali NEGOTIATION
Octavia Z NickaBrazilBernardo Dominic NEW
Mayumi D DilliardJapanXuxue Feng NEW
Emily I VenereCanadaStephen Shaw QUALIFIED
Deepesh V MacleadFranceAsiya Javayant NEGOTIATION
Chavez U GlickCanadaAsiya Javayant PROPOSAL
Faith P OldroydItalyAnna Fali QUALIFIED
Izzy H DarakjyUnited KingdomOnyama Limba RENEWAL
Darci P RutaArgentinaElwin Sharvill NEW
Ashley I ShinkoGermanyOnyama Limba QUALIFIED
Rodrigues D SaylorsSpainStephen Shaw NEGOTIATION
Aditya T FlosiFranceOnyama Limba PROPOSAL
Kaitlin D OstroskyBrazilElwin Sharvill NEGOTIATION
Julie F DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Smith B SergiUnited KingdomStephen Shaw NEGOTIATION
Chavez A CampainJapanStephen Shaw NEW
Jennifer S PaprockiBrazilAsiya Javayant NEGOTIATION
James V DoeRussiaStephen Shaw NEW
James L StensethBrazilBernardo Dominic QUALIFIED
Leon V RulapaughUnited KingdomIoni Bowcher PROPOSAL
Francesco S FigeroaIndiaAmy Elsner UNQUALIFIED
Silvio Z StensethFranceBernardo Dominic NEGOTIATION
Emily Q VocelkaGermanyElwin Sharvill UNQUALIFIED
Kaitlin R InouyeJapanAsiya Javayant NEGOTIATION
Alejandro R GarufiArgentinaBernardo Dominic UNQUALIFIED
Maria D KolmetzUnited KingdomBernardo Dominic RENEWAL
Izzy D BowleyUnited KingdomOnyama Limba RENEWAL
Johnson Z NickaFranceIvan Magalhaes NEW
Ivar T CaldareraSpainAnna Fali NEGOTIATION
Stacey I VocelkaCanadaAsiya Javayant QUALIFIED
Aditya C SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
Juan J RimSpainXuxue Feng NEW
Juan O ButtArgentinaXuxue Feng UNQUALIFIED
Clifford E DoeGermanyElwin Sharvill NEW
Ricardo H WaycottGermanyStephen Shaw QUALIFIED
Maisha U PerinItalyIvan Magalhaes QUALIFIED
Cody H FerenczBrazilXuxue Feng QUALIFIED
Juan N ChuiCanadaElwin Sharvill NEW
Wickens Q ChuiJapanAsiya Javayant RENEWAL
Mujtaba V FollerUnited KingdomElwin Sharvill NEW
Maria X TollnerArgentinaElwin Sharvill QUALIFIED
Maisha K InouyeArgentinaXuxue Feng PROPOSAL
Jeanfrancois F ChuiFranceXuxue Feng QUALIFIED
Aika D FigeroaSpainStephen Shaw PROPOSAL
Smith J MaletRussiaIvan Magalhaes UNQUALIFIED
James V CampainCanadaAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Costa X GauchoIndiaAsiya Javayant RENEWAL
Smith M InouyeJapanXuxue Feng PROPOSAL
Ashley S StockhamRussiaBernardo Dominic QUALIFIED
Johnson R BowleySpainIvan Magalhaes RENEWAL
Arvin J GarufiJapanOnyama Limba RENEWAL
Faith I CampainJapanBernardo Dominic UNQUALIFIED
Maria E KuskoFranceAsiya Javayant RENEWAL
Aruna N DoeSpainIvan Magalhaes RENEWAL
Stacey Y RoysterFranceElwin Sharvill NEGOTIATION
Izzy J BowleyIndiaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams E PoquetteBrazil2026-07-12Truhlar And Truhlar Attys PROPOSAL45Stephen Shaw
1001Octavia B NickaGermany2026-07-21Buckley Miller Wright NEGOTIATION54Anna Fali
1002Tony E PoquetteRussia2026-07-06Benton, John B Jr RENEWAL56Elwin Sharvill
1003Claire H BowleyIndia2026-07-03Feiner Bros PROPOSAL29Anna Fali
1004Maria S PaprockiCanada2026-07-17Chapman, Ross E Esq QUALIFIED97Anna Fali
1005Nicolas S PerinGermany2026-07-08Rousseaux, Michael Esq NEGOTIATION5Asiya Javayant
1006Arvin Z VocelkaFrance2026-07-09Printing Dimensions NEW44Elwin Sharvill
1007Wickens W StockhamSpain2026-07-20Chanay, Jeffrey A Esq NEW12Elwin Sharvill
1008Rodrigues O AlbaresCanada2026-07-13Rousseaux, Michael Esq RENEWAL40Anna Fali
1009Munro O SlusarskiIndia2026-06-30King, Christopher A Esq UNQUALIFIED79Xuxue Feng
1010Johnson Y PerinSpain2026-07-07Buckley Miller Wright PROPOSAL68Amy Elsner
1011Ivar O BriddickJapan2026-07-28Commercial Press NEW74Asiya Javayant
1012Salvatore X SaylorsAustralia2026-07-01Rangoni Of Florence NEGOTIATION22Amy Elsner
1013Leon P RoysterArgentina2026-07-10Morlong Associates UNQUALIFIED17Anna Fali
1014Cody O VenereArgentina2026-07-07Dorl, James J Esq RENEWAL0Asiya Javayant
1015Smith I WaycottGermany2026-07-01Buckley Miller Wright PROPOSAL36Elwin Sharvill
1016Claire K SergiCanada2026-07-29King, Christopher A Esq PROPOSAL77Ioni Bowcher
1017Misaki T AlbaresCanada2026-07-20Printing Dimensions NEW91Ivan Magalhaes
1018Nicolas X KolmetzBrazil2026-07-09Rousseaux, Michael Esq NEW87Amy Elsner
1019Ashley I IturbideRussia2026-07-13Commercial Press QUALIFIED51Amy Elsner
1020Maria H RimIndia2026-07-09Rousseaux, Michael Esq PROPOSAL40Ivan Magalhaes
1021Arvin L ShinkoGermany2026-07-14Buckley Miller Wright RENEWAL39Anna Fali
1022Leja S GlickIndia2026-07-02Commercial Press PROPOSAL32Ioni Bowcher
1023James Y OstroskyIndia2026-07-09Benton, John B Jr NEGOTIATION22Xuxue Feng
1024Jones D BriddickJapan2026-07-18Rousseaux, Michael Esq PROPOSAL74Amy Elsner
1025Ivar T WhobreyGermany2026-07-04Buckley Miller Wright NEGOTIATION5Ivan Magalhaes
1026Emily R AlbaresArgentina2026-07-27King, Christopher A Esq PROPOSAL94Xuxue Feng
1027Silvio F GauchoSpain2026-07-08Rousseaux, Michael Esq QUALIFIED56Amy Elsner
1028Jones R SchemmerCanada2026-07-29Truhlar And Truhlar Attys NEW9Xuxue Feng
1029Tony Q RulapaughUnited Kingdom2026-07-22Buckley Miller Wright UNQUALIFIED56Elwin Sharvill
1030Deepesh W BriddickArgentina2026-07-25Truhlar And Truhlar Attys NEW69Xuxue Feng
1031Kadeem Q WaycottFrance2026-07-01Feiner Bros RENEWAL32Asiya Javayant
1032Izzy B GillianAustralia2026-07-27Feiner Bros RENEWAL81Amy Elsner
1033Salvatore F NickaAustralia2026-07-05Chapman, Ross E Esq PROPOSAL64Ioni Bowcher
1034Nicolas Z TollnerItaly2026-07-10Feiner Bros PROPOSAL65Xuxue Feng
1035Costa O SaylorsAustralia2026-07-19Chanay, Jeffrey A Esq QUALIFIED59Stephen Shaw
1036Leja G TollnerRussia2026-07-24Truhlar And Truhlar Attys QUALIFIED84Bernardo Dominic
1037Izzy I RimCanada2026-07-06Chemel, James L Cpa NEW56Elwin Sharvill
1038James E StensethIndia2026-06-30Benton, John B Jr NEW26Bernardo Dominic
1039Jennifer K WieserCanada2026-07-29Feltz Printing Service QUALIFIED59Ivan Magalhaes
1040Nicolas B NestleAustralia2026-07-06Rangoni Of Florence NEW80Ioni Bowcher
1041Costa R OstroskyIndia2026-07-25Feiner Bros PROPOSAL1Anna Fali
1042Jefferson O PerinRussia2026-07-27Chemel, James L Cpa RENEWAL5Bernardo Dominic
1043Munro H MaletGermany2026-07-16Rousseaux, Michael Esq NEW52Bernardo Dominic
1044Francesco F CaudyAustralia2026-07-28Rousseaux, Michael Esq UNQUALIFIED15Stephen Shaw
1045Ivar K PoquetteBrazil2026-07-08Truhlar And Truhlar Attys QUALIFIED38Asiya Javayant
1046Smith D BowleyGermany2026-07-13Feltz Printing Service UNQUALIFIED59Ioni Bowcher
1047Johnson Y StensethGermany2026-07-27Feiner Bros NEGOTIATION29Xuxue Feng
1048Arvin C CaldareraUnited Kingdom2026-07-06Commercial Press RENEWAL9Anna Fali
1049Jones Q BologniaSpain2026-07-09Morlong Associates PROPOSAL60Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maisha R RutaUnited KingdomStephen Shaw QUALIFIED
Izzy B CampainJapanIoni Bowcher PROPOSAL
Sinclair T FlosiFranceBernardo Dominic NEGOTIATION
Leja K MaletFranceElwin Sharvill RENEWAL
Mayumi F AmigonItalyIoni Bowcher UNQUALIFIED
Morrow U WieserIndiaXuxue Feng NEW
Mujtaba L TollnerArgentinaAsiya Javayant NEW
Tony H MorascaBrazilBernardo Dominic RENEWAL
Faith X FigeroaItalyStephen Shaw QUALIFIED
Jeanfrancois Z AmigonCanadaOnyama Limba PROPOSAL
Tony Y RoysterGermanyOnyama Limba QUALIFIED
Ashley P FlosiGermanyStephen Shaw NEGOTIATION
Kaitlin C GlickCanadaStephen Shaw NEGOTIATION
David Q ShinkoJapanIvan Magalhaes QUALIFIED
Jefferson U MaletSpainBernardo Dominic PROPOSAL
Kaitlin Y MaletBrazilStephen Shaw NEGOTIATION
Chavez A OstroskyAustraliaElwin Sharvill RENEWAL
Isabel H CampainFranceAsiya Javayant NEW
Misaki L ShinkoGermanyBernardo Dominic NEGOTIATION
Darci H GillianGermanyAsiya Javayant PROPOSAL
Silvio Z PerinCanadaBernardo Dominic NEW
Kaitlin K RoysterCanadaBernardo Dominic NEGOTIATION
Mayumi N CampainRussiaAnna Fali RENEWAL
Octavia Y StensethBrazilBernardo Dominic UNQUALIFIED
Chavez U SaylorsAustraliaXuxue Feng RENEWAL
Maisha T CaldareraBrazilAmy Elsner NEW
Rodrigues F StockhamBrazilAsiya Javayant NEW
Misaki S NestleArgentinaOnyama Limba PROPOSAL
Maria A StensethBrazilOnyama Limba NEW
Cody Q SlusarskiGermanyElwin Sharvill UNQUALIFIED
Faith Z CampainGermanyElwin Sharvill PROPOSAL
Jennifer J BologniaCanadaElwin Sharvill RENEWAL
Jones P OldroydIndiaBernardo Dominic NEW
Kadeem M OstroskyJapanElwin Sharvill NEGOTIATION
Ricardo O BowleyJapanAsiya Javayant PROPOSAL
Emily P ShinkoCanadaIoni Bowcher NEW
Emily X CaudyRussiaOnyama Limba UNQUALIFIED
Jefferson V WieserBrazilAnna Fali QUALIFIED
Faith N WieserCanadaAsiya Javayant UNQUALIFIED
Ivar I WaycottItalyAsiya Javayant UNQUALIFIED
Aruna O AmigonCanadaIoni Bowcher NEGOTIATION
Julie M ButtBrazilElwin Sharvill UNQUALIFIED
Salvatore A FigeroaJapanIoni Bowcher NEW
Sinclair M RimFranceXuxue Feng RENEWAL
Rodrigues N SlusarskiGermanyAnna Fali UNQUALIFIED
Murillo C MarrierItalyOnyama Limba RENEWAL
Silvio S InouyeArgentinaIoni Bowcher PROPOSAL
Murillo F GlickBrazilBernardo Dominic QUALIFIED
Leon P CampainItalyAmy Elsner NEW
Claire X AmigonAustraliaIvan Magalhaes QUALIFIED
Frozen Columns
Name
Octavia Z Ostrosky
Juan L Briddick
Nicolas C Royster
Aika Q Royster
Salvatore C Vocelka
Aika D Sergi
Mayumi T Gillian
James I Stockham
Leon W Ferencz
Chavez S Glick
Julie Y Shinko
Misaki P Venere
Clifford J Oldroyd
Emily C Wieser
Francesco L Campain
Tony S Flosi
Emily Z Wieser
Antonio E Darakjy
Rodrigues L Paprocki
Aruna Y Morasca
Darci Z Ferencz
Juan Y Waycott
Ashley F Paprocki
Deepesh D Bowley
Leja L Iturbide
Leon Q Darakjy
Wickens E Tollner
Chavez D Garufi
Chavez W Flosi
Octavia U Royster
Ivar J Butt
Costa U Maclead
Cody I Morasca
Ashley O Garufi
Ricardo V Wieser
Rodrigues J Nicka
Jones I Paprocki
Izzy V Perin
Faith D Wieser
Emily D Shinko
Leja T Briddick
Salvatore O Chui
Tony X Briddick
Claire B Doe
Ricardo H Rulapaugh
Munro L Poquette
Sinclair L Inouye
Deepesh B Kolmetz
Adams Q Shinko
Julie T Iturbide
IdCountryDate
1000Canada2026-07-20
1001United Kingdom2026-07-11
1002Italy2026-07-19
1003Australia2026-07-04
1004United Kingdom2026-07-02
1005France2026-07-28
1006India2026-07-17
1007United Kingdom2026-07-25
1008Australia2026-07-29
1009Spain2026-07-26
1010United Kingdom2026-06-30
1011Germany2026-07-23
1012India2026-07-24
1013Canada2026-07-08
1014Spain2026-07-28
1015Japan2026-07-10
1016Canada2026-07-14
1017Argentina2026-07-08
1018Italy2026-07-13
1019Russia2026-07-17
1020Brazil2026-07-09
1021Australia2026-07-01
1022France2026-07-19
1023Brazil2026-07-05
1024France2026-07-12
1025Germany2026-07-02
1026Spain2026-07-22
1027France2026-07-26
1028Australia2026-07-23
1029Australia2026-07-14
1030United Kingdom2026-06-30
1031Spain2026-07-28
1032Canada2026-07-04
1033Canada2026-07-20
1034Brazil2026-07-19
1035India2026-07-24
1036Russia2026-07-26
1037United Kingdom2026-07-14
1038Australia2026-07-20
1039Germany2026-07-03
1040Australia2026-07-19
1041France2026-07-12
1042Australia2026-07-18
1043Australia2026-07-05
1044Italy2026-07-23
1045Germany2026-07-10
1046Germany2026-07-28
1047Australia2026-07-11
1048France2026-07-21
1049India2026-07-23

On-Demand Data

NameIdCountryDate
Arvin I Whobrey1000Argentina2026-07-23
Costa U Chui1001Australia2026-07-06
Alejandro R Dilliard1002Brazil2026-07-03
Aika S Shinko1003Spain2026-07-21
Mujtaba I Oldroyd1004Spain2026-07-05
Octavia A Glick1005France2026-07-18
Clifford X Perin1006Australia2026-07-09
Arvin R Caldarera1007Russia2026-07-24
Isabel E Garufi1008Argentina2026-07-22
Smith G Chui1009Brazil2026-07-27
Mujtaba K Schemmer1010Australia2026-07-15
Faith P Kusko1011Italy2026-07-01
Sinclair P Ostrosky1012Argentina2026-07-02
Antonio L Caudy1013Italy2026-07-12
Adams W Caldarera1014Argentina2026-07-16
Salvatore H Flosi1015Italy2026-07-07
Ivar W Tollner1016Spain2026-07-14
Izzy K Inouye1017Argentina2026-07-11
Leja B Malet1018Canada2026-07-09
Kadeem M Bolognia1019Australia2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria Y ButtCanadaOnyama Limba NEGOTIATION
Leon M SchemmerFranceAsiya Javayant NEGOTIATION
Clifford U OldroydIndiaStephen Shaw UNQUALIFIED
Arvin G AlbaresBrazilBernardo Dominic NEW
Jefferson X MacleadFranceElwin Sharvill QUALIFIED
Stacey O StensethSpainAnna Fali PROPOSAL
Jennifer J ButtItalyIoni Bowcher NEGOTIATION
Stacey O VenereArgentinaBernardo Dominic NEGOTIATION
Johnson O FerenczRussiaStephen Shaw PROPOSAL
Octavia G DilliardRussiaIoni Bowcher PROPOSAL
Misaki V MorascaArgentinaIoni Bowcher PROPOSAL
Emily X KolmetzIndiaStephen Shaw QUALIFIED
Maria Q KolmetzRussiaAnna Fali QUALIFIED
Costa B FlosiRussiaStephen Shaw UNQUALIFIED
Murillo F FlosiUnited KingdomBernardo Dominic RENEWAL
Sinclair D VenereAustraliaIoni Bowcher QUALIFIED
Kaitlin M GlickItalyAmy Elsner RENEWAL
Ashley K AmigonUnited KingdomXuxue Feng UNQUALIFIED
Ashley U RoysterItalyIvan Magalhaes NEGOTIATION
Deepesh R FerenczFranceStephen Shaw UNQUALIFIED
Ivar D ChuiGermanyBernardo Dominic NEGOTIATION
Juan C FlosiIndiaOnyama Limba UNQUALIFIED
Ricardo F StockhamItalyAmy Elsner NEGOTIATION
Francesco Q WaycottUnited KingdomStephen Shaw NEW
Chavez A ButtAustraliaIvan Magalhaes PROPOSAL
James O ButtAustraliaAmy Elsner NEGOTIATION
Isabel D ChuiArgentinaAmy Elsner UNQUALIFIED
Octavia H BowleyAustraliaOnyama Limba NEW
Rodrigues N GarufiFranceAmy Elsner NEGOTIATION
Octavia B FollerFranceBernardo Dominic RENEWAL
Tony B MacleadSpainBernardo Dominic NEGOTIATION
Jennifer O NestleAustraliaAmy Elsner UNQUALIFIED
Juan L CaldareraAustraliaXuxue Feng QUALIFIED
Nicolas E MaletGermanyAsiya Javayant RENEWAL
Chavez I MaletAustraliaXuxue Feng RENEWAL
Maria Z KolmetzBrazilIvan Magalhaes NEW
Costa Z SlusarskiItalyXuxue Feng RENEWAL
Morrow O TollnerBrazilIoni Bowcher PROPOSAL
Izzy L VocelkaItalyAsiya Javayant NEGOTIATION
Isabel U GlickArgentinaIoni Bowcher 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>