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 N NickaArgentinaBernardo Dominic QUALIFIED
Emily P OldroydFranceXuxue Feng PROPOSAL
Isabel H FerenczJapanAnna Fali NEW
Kaitlin Y MarrierSpainAnna Fali PROPOSAL
Nicolas G DoeUnited KingdomElwin Sharvill NEGOTIATION
Jefferson T StockhamRussiaStephen Shaw QUALIFIED
Maria Q WieserSpainElwin Sharvill NEGOTIATION
Adams W StockhamCanadaOnyama Limba PROPOSAL
Ashley O OldroydSpainXuxue Feng PROPOSAL
Stacey S BologniaGermanyBernardo Dominic RENEWAL
Munro O GillianAustraliaOnyama Limba NEGOTIATION
Maria C FlosiGermanyStephen Shaw NEGOTIATION
James K MorascaArgentinaStephen Shaw NEGOTIATION
Ivar E RimArgentinaIoni Bowcher NEGOTIATION
Darci A AlbaresItalyAnna Fali PROPOSAL
Deepesh M CaudyBrazilAmy Elsner NEW
Maisha A OldroydJapanAnna Fali QUALIFIED
Antonio F MaletBrazilBernardo Dominic NEW
Leja C PoquetteGermanyStephen Shaw NEW
Juan Q WhobreyBrazilStephen Shaw RENEWAL
Adams P CaudyUnited KingdomAnna Fali RENEWAL
Aika S RoysterItalyIoni Bowcher NEW
Leon R FollerIndiaBernardo Dominic QUALIFIED
Alejandro Q WhobreyRussiaOnyama Limba NEGOTIATION
Stacey G BowleyItalyStephen Shaw UNQUALIFIED
Jennifer D RoysterIndiaAmy Elsner PROPOSAL
Sinclair N BowleyAustraliaAmy Elsner UNQUALIFIED
Ashley Y MaletRussiaStephen Shaw QUALIFIED
Maria V WaycottItalyAsiya Javayant QUALIFIED
Julie G OstroskySpainAnna Fali RENEWAL
Jennifer P DoeBrazilAsiya Javayant UNQUALIFIED
Aditya N VenereUnited KingdomBernardo Dominic PROPOSAL
Maria P RulapaughBrazilIvan Magalhaes NEGOTIATION
Faith W WhobreyUnited KingdomBernardo Dominic UNQUALIFIED
Octavia X StensethArgentinaXuxue Feng UNQUALIFIED
Juan S CampainFranceIoni Bowcher UNQUALIFIED
Maisha F InouyeArgentinaXuxue Feng UNQUALIFIED
Arvin S DoeSpainIoni Bowcher NEW
Emily R SaylorsArgentinaAnna Fali UNQUALIFIED
Greenwood P PaprockiJapanStephen Shaw UNQUALIFIED
Clifford N SchemmerBrazilOnyama Limba UNQUALIFIED
Adams Y StockhamItalyIvan Magalhaes UNQUALIFIED
Chavez M TollnerJapanIvan Magalhaes NEGOTIATION
Octavia A StensethBrazilAnna Fali NEGOTIATION
Emily X AlbaresUnited KingdomBernardo Dominic UNQUALIFIED
Wickens C FigeroaSpainBernardo Dominic NEW
Faith W TollnerBrazilIvan Magalhaes NEGOTIATION
Smith T NestleBrazilOnyama Limba NEGOTIATION
Jeanfrancois C RoysterAustraliaElwin Sharvill NEW
Costa R BowleyBrazilOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Murillo X PerinBrazilIvan Magalhaes RENEWAL
Wickens Y BologniaArgentinaBernardo Dominic QUALIFIED
Rodrigues Q KuskoJapanElwin Sharvill UNQUALIFIED
Adams G MaletAustraliaStephen Shaw PROPOSAL
Jones I WieserArgentinaStephen Shaw UNQUALIFIED
Wickens R MaletFranceAmy Elsner QUALIFIED
Smith Q DilliardAustraliaBernardo Dominic NEGOTIATION
Emily F MaletRussiaXuxue Feng NEW
Aruna V FigeroaAustraliaAsiya Javayant NEW
Ricardo W SlusarskiArgentinaBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin A RutaFrance2026-06-28Morlong Associates PROPOSAL74Ioni Bowcher
1001Misaki K AmigonFrance2026-06-06Feltz Printing Service RENEWAL61Bernardo Dominic
1002Leon F SergiIndia2026-06-11Chemel, James L Cpa QUALIFIED25Onyama Limba
1003Morrow S AlbaresBrazil2026-06-24Truhlar And Truhlar Attys RENEWAL34Anna Fali
1004Costa F IturbideUnited Kingdom2026-06-15Commercial Press NEW87Ivan Magalhaes
1005Nicolas U PerinSpain2026-06-26Printing Dimensions PROPOSAL30Ivan Magalhaes
1006Darci Z MarrierRussia2026-06-04Chemel, James L Cpa PROPOSAL99Stephen Shaw
1007Juan D CaudyIndia2026-06-11King, Christopher A Esq NEW39Asiya Javayant
1008Antonio Z StockhamCanada2026-06-15Printing Dimensions QUALIFIED90Ivan Magalhaes
1009Jefferson J SlusarskiBrazil2026-06-23Chemel, James L Cpa PROPOSAL57Elwin Sharvill
1010Aika O PaprockiJapan2026-06-18Benton, John B Jr NEGOTIATION19Ioni Bowcher
1011David J SergiGermany2026-06-03Rangoni Of Florence NEGOTIATION51Stephen Shaw
1012Darci P RoysterBrazil2026-06-09Buckley Miller Wright UNQUALIFIED20Ioni Bowcher
1013Mujtaba Q MarrierJapan2026-06-10Rangoni Of Florence NEGOTIATION35Elwin Sharvill
1014Aditya K ButtJapan2026-06-07Rousseaux, Michael Esq PROPOSAL92Bernardo Dominic
1015Greenwood U DarakjyBrazil2026-06-14King, Christopher A Esq PROPOSAL50Asiya Javayant
1016Maria O AlbaresJapan2026-06-13Truhlar And Truhlar Attys UNQUALIFIED86Ioni Bowcher
1017Octavia G CaudyRussia2026-06-14Morlong Associates QUALIFIED60Xuxue Feng
1018Greenwood O MaletArgentina2026-06-22Rangoni Of Florence NEW79Onyama Limba
1019Munro D GauchoBrazil2026-06-23Commercial Press NEW62Onyama Limba
1020Alejandro R MorascaArgentina2026-06-19Chanay, Jeffrey A Esq UNQUALIFIED15Xuxue Feng
1021Mujtaba O StensethBrazil2026-06-19King, Christopher A Esq UNQUALIFIED60Elwin Sharvill
1022Arvin J FlosiRussia2026-06-28Chemel, James L Cpa PROPOSAL52Bernardo Dominic
1023Adams Q NestleCanada2026-06-29Morlong Associates NEW39Ioni Bowcher
1024Maria Z SlusarskiArgentina2026-06-04Truhlar And Truhlar Attys RENEWAL98Stephen Shaw
1025Adams E RutaJapan2026-06-03Benton, John B Jr RENEWAL8Asiya Javayant
1026Costa D GlickRussia2026-06-19Commercial Press QUALIFIED11Bernardo Dominic
1027Jennifer U AlbaresIndia2026-06-22King, Christopher A Esq UNQUALIFIED50Bernardo Dominic
1028Claire I NestleIndia2026-06-21Morlong Associates UNQUALIFIED79Bernardo Dominic
1029Cody W RimJapan2026-06-19Chapman, Ross E Esq PROPOSAL46Amy Elsner
1030Faith X MacleadAustralia2026-06-24Morlong Associates UNQUALIFIED20Anna Fali
1031David F MaletRussia2026-06-13Feltz Printing Service RENEWAL30Amy Elsner
1032Faith O AmigonRussia2026-06-25Printing Dimensions QUALIFIED80Xuxue Feng
1033Maisha L NickaUnited Kingdom2026-06-10Printing Dimensions PROPOSAL12Onyama Limba
1034Jeanfrancois O WhobreyGermany2026-06-06Dorl, James J Esq RENEWAL45Amy Elsner
1035Munro J MorascaCanada2026-06-18King, Christopher A Esq NEW12Elwin Sharvill
1036Francesco A CampainItaly2026-06-22Benton, John B Jr NEGOTIATION62Onyama Limba
1037Isabel F ShinkoRussia2026-06-21Feiner Bros UNQUALIFIED83Amy Elsner
1038Juan W StensethRussia2026-06-21Chapman, Ross E Esq UNQUALIFIED86Ioni Bowcher
1039Isabel B DarakjyUnited Kingdom2026-06-11Rangoni Of Florence UNQUALIFIED27Onyama Limba
1040James A ChuiCanada2026-06-29Truhlar And Truhlar Attys RENEWAL50Stephen Shaw
1041Mayumi A GauchoUnited Kingdom2026-06-16Benton, John B Jr UNQUALIFIED48Stephen Shaw
1042Izzy Y FollerFrance2026-06-13Feiner Bros PROPOSAL29Anna Fali
1043Francesco K GlickBrazil2026-06-03Chanay, Jeffrey A Esq PROPOSAL90Ivan Magalhaes
1044James H StensethJapan2026-06-23Commercial Press UNQUALIFIED47Anna Fali
1045Antonio S GarufiJapan2026-06-04Rangoni Of Florence RENEWAL32Ioni Bowcher
1046Sinclair W DarakjyItaly2026-06-19Chanay, Jeffrey A Esq NEGOTIATION82Anna Fali
1047Jefferson M TollnerAustralia2026-06-17Chapman, Ross E Esq QUALIFIED46Asiya Javayant
1048Morrow I MaletCanada2026-06-22Feltz Printing Service UNQUALIFIED52Ioni Bowcher
1049Cody I SlusarskiIndia2026-06-30Buckley Miller Wright PROPOSAL15Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Silvio I WieserAustraliaAnna Fali QUALIFIED
Kaitlin Q ButtIndiaAmy Elsner RENEWAL
Adams R FigeroaBrazilXuxue Feng RENEWAL
Sinclair Z WhobreyJapanIoni Bowcher NEW
Salvatore N RoysterGermanyOnyama Limba PROPOSAL
Darci S MaletItalyOnyama Limba UNQUALIFIED
Francesco U FerenczArgentinaAsiya Javayant RENEWAL
Aditya N SaylorsUnited KingdomElwin Sharvill NEGOTIATION
Tony F MacleadAustraliaBernardo Dominic NEGOTIATION
Wickens Q DoeBrazilAsiya Javayant NEGOTIATION
Morrow N RoysterCanadaOnyama Limba NEW
Adams H SaylorsArgentinaAnna Fali RENEWAL
Wickens K BowleyItalyAmy Elsner RENEWAL
Chavez B GauchoItalyBernardo Dominic PROPOSAL
Ashley K FollerGermanyElwin Sharvill NEGOTIATION
Claire P DilliardCanadaAnna Fali NEW
Smith I SchemmerGermanyAnna Fali PROPOSAL
Deepesh W GillianItalyElwin Sharvill QUALIFIED
Wickens O CampainAustraliaAnna Fali QUALIFIED
Antonio K NickaUnited KingdomAnna Fali NEGOTIATION
Emily A StockhamGermanyAmy Elsner NEGOTIATION
Antonio I MaletItalyIoni Bowcher QUALIFIED
Juan Q IturbideUnited KingdomAmy Elsner QUALIFIED
Smith W FerenczSpainAnna Fali RENEWAL
Adams E WhobreyIndiaIvan Magalhaes PROPOSAL
Salvatore F RimSpainBernardo Dominic PROPOSAL
Izzy Z BowleyFranceElwin Sharvill RENEWAL
Octavia F NickaCanadaOnyama Limba NEW
Isabel H DilliardUnited KingdomStephen Shaw UNQUALIFIED
Costa E TollnerUnited KingdomAmy Elsner PROPOSAL
Aditya I ButtGermanyElwin Sharvill NEW
Mujtaba J WieserArgentinaOnyama Limba NEW
Jefferson N FerenczJapanStephen Shaw NEGOTIATION
Jefferson A PoquetteItalyBernardo Dominic UNQUALIFIED
Ashley Z MorascaJapanAnna Fali QUALIFIED
Arvin Z GauchoUnited KingdomElwin Sharvill NEGOTIATION
Murillo N DilliardBrazilIvan Magalhaes UNQUALIFIED
Antonio T NickaAustraliaXuxue Feng QUALIFIED
Aditya T TollnerCanadaStephen Shaw NEW
Faith W KuskoCanadaXuxue Feng NEW
Julie Z SaylorsSpainOnyama Limba QUALIFIED
Jennifer P ChuiSpainIvan Magalhaes RENEWAL
Ivar B StockhamAustraliaIvan Magalhaes UNQUALIFIED
Aditya B NestleSpainIoni Bowcher UNQUALIFIED
Jefferson N VenereRussiaElwin Sharvill PROPOSAL
Alejandro S RulapaughJapanElwin Sharvill NEW
Octavia X GlickCanadaXuxue Feng NEW
James F WieserCanadaStephen Shaw UNQUALIFIED
Arvin L StensethItalyElwin Sharvill UNQUALIFIED
Misaki Z AmigonCanadaAsiya Javayant QUALIFIED
Frozen Columns
Name
Maisha M Gaucho
Jeanfrancois E Ostrosky
Ricardo P Vocelka
Aika O Venere
Antonio W Stenseth
Jefferson N Chui
Faith T Glick
Sinclair X Wieser
Darci V Wieser
Munro G Caudy
Kaitlin Q Stenseth
Leja K Iturbide
Mujtaba U Ostrosky
Emily V Schemmer
Costa V Stenseth
Ashley M Wieser
Isabel O Garufi
Ashley U Amigon
Maisha J Albares
Murillo L Iturbide
Alejandro E Morasca
Maisha U Sergi
Claire L Caldarera
Aruna E Doe
Jennifer Z Foller
Ivar B Iturbide
Jeanfrancois F Venere
Tony B Waycott
Jones H Nicka
Johnson K Schemmer
Rodrigues I Rim
Morrow G Briddick
Faith B Rulapaugh
Maisha V Chui
Claire R Foller
Darci E Amigon
Sinclair H Marrier
Nicolas B Albares
Wickens E Morasca
Jefferson V Dilliard
Francesco A Inouye
Ashley J Gaucho
Munro O Sergi
Emily F Inouye
Mujtaba Q Figeroa
Claire F Butt
Misaki W Garufi
James S Iturbide
Mayumi Q Ruta
Cody T Ferencz
IdCountryDate
1000Argentina2026-06-19
1001France2026-06-25
1002Australia2026-06-07
1003France2026-06-27
1004Russia2026-06-14
1005India2026-06-04
1006France2026-06-17
1007Italy2026-06-10
1008Russia2026-07-01
1009Japan2026-06-04
1010United Kingdom2026-06-07
1011Brazil2026-06-22
1012Argentina2026-06-18
1013France2026-06-14
1014Italy2026-06-23
1015Brazil2026-06-10
1016Brazil2026-06-08
1017Japan2026-06-23
1018Canada2026-06-03
1019United Kingdom2026-06-22
1020Spain2026-06-14
1021Argentina2026-06-09
1022France2026-06-25
1023United Kingdom2026-06-25
1024Australia2026-06-14
1025France2026-06-16
1026United Kingdom2026-06-16
1027United Kingdom2026-06-08
1028Germany2026-07-01
1029India2026-06-08
1030Brazil2026-06-22
1031Canada2026-06-07
1032India2026-06-05
1033France2026-06-07
1034Canada2026-06-07
1035India2026-06-17
1036Italy2026-06-19
1037Italy2026-06-11
1038United Kingdom2026-06-06
1039Spain2026-06-19
1040Canada2026-06-20
1041India2026-06-10
1042Spain2026-06-30
1043India2026-06-14
1044Canada2026-06-04
1045Brazil2026-06-24
1046France2026-06-26
1047Brazil2026-06-22
1048Spain2026-06-24
1049United Kingdom2026-06-05

On-Demand Data

NameIdCountryDate
Mayumi X Nicka1000Canada2026-06-27
David C Marrier1001Argentina2026-06-07
Isabel S Sergi1002Australia2026-06-27
Tony V Poquette1003India2026-06-21
Sinclair D Inouye1004United Kingdom2026-06-12
Kadeem A Gillian1005Russia2026-06-07
Izzy Z Caldarera1006United Kingdom2026-06-16
Smith L Shinko1007Australia2026-06-15
James G Malet1008France2026-06-04
Mayumi M Paprocki1009Argentina2026-06-19
Aika S Gillian1010Spain2026-06-05
Kaitlin V Doe1011Spain2026-06-13
Leja P Dilliard1012Spain2026-06-14
Claire U Darakjy1013Japan2026-06-18
Stacey N Ruta1014Japan2026-06-21
Chavez L Doe1015Canada2026-06-21
Alejandro H Sergi1016Australia2026-06-14
Misaki P Flosi1017France2026-06-21
Mujtaba Q Poquette1018Canada2026-06-23
Misaki E Stockham1019Japan2026-06-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire Y FerenczSpainXuxue Feng RENEWAL
Aditya O CaldareraFranceXuxue Feng NEW
Ashley F RulapaughGermanyAnna Fali UNQUALIFIED
Mujtaba O AmigonAustraliaOnyama Limba PROPOSAL
Chavez W GauchoUnited KingdomOnyama Limba RENEWAL
Misaki R SergiGermanyElwin Sharvill NEW
Kadeem O VenereJapanBernardo Dominic UNQUALIFIED
Isabel E BriddickGermanyAsiya Javayant QUALIFIED
Morrow W DarakjyFranceIvan Magalhaes UNQUALIFIED
Mujtaba O SergiGermanyAsiya Javayant PROPOSAL
Aditya S DoeGermanyIvan Magalhaes NEGOTIATION
Adams K StensethUnited KingdomIvan Magalhaes NEW
Clifford W FlosiArgentinaBernardo Dominic QUALIFIED
Mayumi P StensethBrazilAsiya Javayant RENEWAL
Wickens W StockhamIndiaIvan Magalhaes NEGOTIATION
Mujtaba H GauchoJapanAmy Elsner NEW
Leja G WieserFranceAnna Fali QUALIFIED
Emily F AlbaresArgentinaIvan Magalhaes NEW
Nicolas J DilliardCanadaIvan Magalhaes UNQUALIFIED
Rodrigues T SergiSpainAmy Elsner NEW
Juan F CaldareraAustraliaStephen Shaw NEW
Silvio B KuskoBrazilAmy Elsner RENEWAL
Francesco V MarrierIndiaAsiya Javayant NEGOTIATION
Adams X GauchoArgentinaAsiya Javayant RENEWAL
Jeanfrancois Y CampainBrazilXuxue Feng NEGOTIATION
Salvatore I GauchoArgentinaIoni Bowcher PROPOSAL
Mujtaba V BriddickBrazilOnyama Limba NEW
David I KolmetzUnited KingdomElwin Sharvill PROPOSAL
Aika R ChuiGermanyElwin Sharvill QUALIFIED
Alejandro F MarrierUnited KingdomIvan Magalhaes RENEWAL
Adams A KolmetzFranceBernardo Dominic NEW
Nicolas K MarrierSpainIoni Bowcher NEW
Francesco D RoysterSpainAmy Elsner NEGOTIATION
Deepesh A GlickArgentinaIoni Bowcher QUALIFIED
Aika A GarufiSpainStephen Shaw UNQUALIFIED
Greenwood X ShinkoFranceOnyama Limba RENEWAL
Misaki C AmigonArgentinaAsiya Javayant RENEWAL
Darci C MaletJapanBernardo Dominic RENEWAL
Jeanfrancois N SlusarskiArgentinaAmy Elsner RENEWAL
Murillo V CaldareraRussiaAnna Fali UNQUALIFIED

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