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
Francesco O RulapaughIndiaXuxue Feng UNQUALIFIED
Octavia Z InouyeGermanyIoni Bowcher QUALIFIED
Morrow H GillianJapanAmy Elsner NEGOTIATION
Morrow E MacleadIndiaBernardo Dominic QUALIFIED
Maria Y VenereUnited KingdomElwin Sharvill PROPOSAL
Faith G ChuiAustraliaAnna Fali PROPOSAL
Leon R SaylorsSpainStephen Shaw QUALIFIED
Claire V KuskoUnited KingdomAmy Elsner RENEWAL
Jennifer B MaletIndiaElwin Sharvill NEW
Deepesh D BriddickGermanyIoni Bowcher NEGOTIATION
Adams Z NestleFranceStephen Shaw PROPOSAL
Greenwood I GarufiAustraliaIvan Magalhaes NEW
Kadeem F StockhamIndiaOnyama Limba NEW
Cody W GlickGermanyOnyama Limba QUALIFIED
Francesco R NickaIndiaBernardo Dominic RENEWAL
Tony V MaletRussiaIvan Magalhaes PROPOSAL
Sinclair F BologniaRussiaOnyama Limba PROPOSAL
Jones W ButtBrazilXuxue Feng UNQUALIFIED
Ricardo K MacleadCanadaAnna Fali PROPOSAL
Kaitlin O KolmetzAustraliaStephen Shaw RENEWAL
Kadeem Q NickaGermanyAnna Fali PROPOSAL
Kadeem Z SlusarskiSpainStephen Shaw PROPOSAL
Smith A FlosiGermanyBernardo Dominic PROPOSAL
Kaitlin A MorascaItalyElwin Sharvill NEW
Sinclair O NickaIndiaAsiya Javayant QUALIFIED
Octavia S CampainIndiaAnna Fali RENEWAL
Mayumi V AmigonArgentinaStephen Shaw RENEWAL
Izzy Q DilliardRussiaStephen Shaw PROPOSAL
Rodrigues I FigeroaGermanyAmy Elsner UNQUALIFIED
Chavez P RutaAustraliaAsiya Javayant NEW
Wickens M FlosiArgentinaIoni Bowcher NEW
Johnson A PoquetteJapanAmy Elsner UNQUALIFIED
Maria J RimFranceIoni Bowcher RENEWAL
Jeanfrancois V TollnerAustraliaIvan Magalhaes NEGOTIATION
Wickens U MaletArgentinaXuxue Feng UNQUALIFIED
James X TollnerJapanIoni Bowcher PROPOSAL
Sinclair R DoeSpainOnyama Limba PROPOSAL
Deepesh I VenereArgentinaStephen Shaw NEW
Claire O StockhamJapanXuxue Feng UNQUALIFIED
Juan U RutaSpainElwin Sharvill UNQUALIFIED
Smith T VenereAustraliaStephen Shaw NEW
Claire Q RimAustraliaIvan Magalhaes RENEWAL
Izzy K DarakjyUnited KingdomAmy Elsner NEGOTIATION
Jones Z InouyeSpainAmy Elsner NEW
Jones R MacleadSpainXuxue Feng PROPOSAL
Silvio X OldroydIndiaIvan Magalhaes UNQUALIFIED
Cody X MacleadCanadaIoni Bowcher QUALIFIED
Isabel P KolmetzIndiaElwin Sharvill PROPOSAL
Morrow U MaletArgentinaAnna Fali QUALIFIED
Alejandro J VocelkaBrazilAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
David V SchemmerAustraliaBernardo Dominic UNQUALIFIED
Emily V IturbideJapanElwin Sharvill NEW
Costa I DoeIndiaAsiya Javayant PROPOSAL
Aditya Q InouyeSpainAmy Elsner NEGOTIATION
Clifford P MaletRussiaAsiya Javayant QUALIFIED
Arvin O RoysterFranceIvan Magalhaes PROPOSAL
Leja B OstroskyBrazilAsiya Javayant NEW
Adams K FollerCanadaElwin Sharvill QUALIFIED
Ashley I ChuiFranceXuxue Feng PROPOSAL
Mujtaba T VenereRussiaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio M WieserUnited Kingdom2026-07-16Truhlar And Truhlar Attys PROPOSAL99Amy Elsner
1001James J WieserBrazil2026-07-17Rangoni Of Florence NEGOTIATION55Xuxue Feng
1002Emily L AlbaresJapan2026-07-10Rangoni Of Florence NEGOTIATION73Anna Fali
1003Aruna I SaylorsArgentina2026-06-29Benton, John B Jr QUALIFIED76Ivan Magalhaes
1004Julie Q FlosiJapan2026-06-23Buckley Miller Wright NEW13Stephen Shaw
1005Greenwood U KolmetzUnited Kingdom2026-07-10Morlong Associates RENEWAL5Anna Fali
1006Rodrigues P FigeroaArgentina2026-07-02Truhlar And Truhlar Attys RENEWAL96Anna Fali
1007Smith A TollnerArgentina2026-06-22Commercial Press PROPOSAL30Anna Fali
1008Maria Q FlosiJapan2026-06-23Buckley Miller Wright PROPOSAL11Bernardo Dominic
1009Jennifer I SlusarskiBrazil2026-07-15Truhlar And Truhlar Attys QUALIFIED41Stephen Shaw
1010Mujtaba U RutaRussia2026-06-26King, Christopher A Esq NEGOTIATION42Asiya Javayant
1011Adams I WhobreyUnited Kingdom2026-07-12Chanay, Jeffrey A Esq PROPOSAL29Ivan Magalhaes
1012Aika I RimGermany2026-06-28Dorl, James J Esq NEW54Asiya Javayant
1013Ricardo G WhobreyItaly2026-06-21Feltz Printing Service NEW8Bernardo Dominic
1014Ricardo N MarrierJapan2026-07-12Rangoni Of Florence NEW47Ioni Bowcher
1015Cody W SaylorsFrance2026-06-20Chapman, Ross E Esq NEW19Onyama Limba
1016Morrow A WaycottArgentina2026-07-01Rousseaux, Michael Esq QUALIFIED94Xuxue Feng
1017Aika L CaldareraAustralia2026-06-25Commercial Press NEW94Asiya Javayant
1018Alejandro K IturbideArgentina2026-06-19Morlong Associates NEW84Onyama Limba
1019James W DarakjyBrazil2026-07-09Morlong Associates PROPOSAL42Asiya Javayant
1020Adams P SlusarskiItaly2026-06-28Rousseaux, Michael Esq RENEWAL75Ioni Bowcher
1021Leja F MorascaSpain2026-07-04Buckley Miller Wright RENEWAL55Ivan Magalhaes
1022Ashley H DilliardItaly2026-06-29Chapman, Ross E Esq NEGOTIATION83Anna Fali
1023Chavez O MaletFrance2026-07-06Feiner Bros RENEWAL21Elwin Sharvill
1024Smith S DilliardItaly2026-07-12Feiner Bros NEGOTIATION74Asiya Javayant
1025Aditya I OstroskyJapan2026-07-07Chapman, Ross E Esq NEGOTIATION22Elwin Sharvill
1026Deepesh J GlickFrance2026-06-27Morlong Associates NEW61Stephen Shaw
1027Antonio U GillianFrance2026-07-10Feltz Printing Service NEGOTIATION94Ivan Magalhaes
1028Chavez C GlickJapan2026-06-29Dorl, James J Esq PROPOSAL51Amy Elsner
1029Mayumi D IturbideAustralia2026-07-11Feiner Bros NEW44Bernardo Dominic
1030Octavia N ChuiRussia2026-07-04Morlong Associates RENEWAL5Bernardo Dominic
1031Wickens S WhobreySpain2026-07-14Commercial Press RENEWAL78Bernardo Dominic
1032Wickens D ChuiSpain2026-06-25Feiner Bros NEW86Bernardo Dominic
1033Deepesh X OstroskyFrance2026-06-28Morlong Associates RENEWAL73Ivan Magalhaes
1034Cody X FollerFrance2026-06-27Truhlar And Truhlar Attys PROPOSAL19Ioni Bowcher
1035Johnson M GauchoFrance2026-07-03Chanay, Jeffrey A Esq QUALIFIED8Ivan Magalhaes
1036Ricardo Z GarufiCanada2026-06-22Morlong Associates UNQUALIFIED61Ivan Magalhaes
1037Jones T WieserAustralia2026-07-05Printing Dimensions NEGOTIATION77Ivan Magalhaes
1038Leon Z NickaArgentina2026-06-22King, Christopher A Esq RENEWAL50Ioni Bowcher
1039Chavez D RutaAustralia2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED38Amy Elsner
1040Alejandro Q AlbaresJapan2026-06-29Rangoni Of Florence NEW59Bernardo Dominic
1041Aditya P MorascaJapan2026-06-22Rangoni Of Florence PROPOSAL92Bernardo Dominic
1042James M MacleadGermany2026-06-29Printing Dimensions NEW32Asiya Javayant
1043Octavia P MorascaSpain2026-06-19Dorl, James J Esq UNQUALIFIED98Ioni Bowcher
1044Jones B OstroskyItaly2026-06-18Chanay, Jeffrey A Esq RENEWAL87Ivan Magalhaes
1045Maria E RoysterGermany2026-06-30Buckley Miller Wright PROPOSAL67Asiya Javayant
1046Leja Q RoysterBrazil2026-06-18Commercial Press PROPOSAL24Xuxue Feng
1047Munro E GauchoBrazil2026-06-28Rousseaux, Michael Esq NEW31Xuxue Feng
1048David Y GlickBrazil2026-06-19Benton, John B Jr NEW38Anna Fali
1049Greenwood D SaylorsAustralia2026-07-04Morlong Associates QUALIFIED11Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Faith Y CaldareraAustraliaAnna Fali NEW
Murillo Q ButtAustraliaIvan Magalhaes NEGOTIATION
Maria S InouyeFranceXuxue Feng NEW
Leon K SaylorsCanadaStephen Shaw NEW
Jeanfrancois N StensethJapanIoni Bowcher NEW
Maisha X GarufiArgentinaElwin Sharvill QUALIFIED
Wickens E RoysterArgentinaBernardo Dominic UNQUALIFIED
Mayumi R RutaUnited KingdomElwin Sharvill UNQUALIFIED
Stacey D BologniaCanadaIoni Bowcher RENEWAL
Isabel G ChuiAustraliaIoni Bowcher UNQUALIFIED
Smith T DarakjyItalyElwin Sharvill RENEWAL
Johnson D AmigonSpainIoni Bowcher RENEWAL
Ricardo J PoquetteBrazilElwin Sharvill PROPOSAL
Ricardo Z ShinkoCanadaOnyama Limba PROPOSAL
Rodrigues P AmigonBrazilAmy Elsner NEGOTIATION
Julie H BowleyIndiaIoni Bowcher UNQUALIFIED
Izzy Q SlusarskiCanadaBernardo Dominic PROPOSAL
Kaitlin H GauchoArgentinaAnna Fali PROPOSAL
Maisha E GauchoItalyIvan Magalhaes NEGOTIATION
Ashley M ButtArgentinaElwin Sharvill NEGOTIATION
Sinclair N BowleyUnited KingdomIvan Magalhaes RENEWAL
Aruna T DoeFranceStephen Shaw NEW
Isabel W MacleadFranceXuxue Feng UNQUALIFIED
Octavia X KuskoJapanIvan Magalhaes QUALIFIED
Greenwood S SaylorsSpainIoni Bowcher QUALIFIED
Maria L StensethCanadaOnyama Limba UNQUALIFIED
Leon M MarrierItalyIvan Magalhaes PROPOSAL
Leja T ChuiUnited KingdomOnyama Limba PROPOSAL
Jefferson P WieserJapanBernardo Dominic PROPOSAL
Munro A DilliardGermanyAmy Elsner UNQUALIFIED
Costa G FlosiIndiaElwin Sharvill UNQUALIFIED
Aika E AmigonGermanyElwin Sharvill PROPOSAL
Ashley Q AlbaresArgentinaAsiya Javayant NEGOTIATION
Johnson B MaletBrazilOnyama Limba QUALIFIED
Jones T AlbaresIndiaIvan Magalhaes NEW
Ivar K SchemmerArgentinaOnyama Limba NEW
Jeanfrancois J InouyeUnited KingdomAnna Fali QUALIFIED
Greenwood X NestleJapanXuxue Feng RENEWAL
Jeanfrancois E NestleJapanElwin Sharvill PROPOSAL
Cody F FlosiSpainAsiya Javayant NEW
Darci H FerenczBrazilAnna Fali PROPOSAL
Darci M FollerArgentinaAsiya Javayant QUALIFIED
Jeanfrancois U GauchoArgentinaOnyama Limba UNQUALIFIED
Alejandro B DilliardJapanIoni Bowcher PROPOSAL
Silvio V CaldareraGermanyAnna Fali UNQUALIFIED
Claire P AmigonArgentinaAmy Elsner PROPOSAL
Octavia Z ButtFranceOnyama Limba RENEWAL
Leon L BowleyIndiaBernardo Dominic NEW
Ashley P FerenczArgentinaIvan Magalhaes NEGOTIATION
Leon K ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Jefferson S Amigon
Greenwood I Tollner
Deepesh P Inouye
Jeanfrancois C Garufi
Morrow Q Whobrey
Adams M Bowley
Silvio A Sergi
Nicolas I Nestle
Munro Q Chui
Jefferson P Kusko
Mujtaba X Glick
Jefferson E Paprocki
Aika J Nicka
Arvin S Doe
Izzy P Wieser
David F Stockham
Emily M Paprocki
Leon K Malet
Nicolas C Oldroyd
Clifford F Foller
Claire D Nestle
Jennifer F Sergi
Sinclair E Royster
Aditya X Morasca
Murillo Y Dilliard
Leja Y Caudy
Kadeem Z Vocelka
Jefferson E Caudy
Mujtaba J Gillian
Francesco M Sergi
Kadeem J Rim
Maisha X Morasca
Clifford F Doe
Johnson F Kolmetz
Aika Y Kusko
Deepesh H Sergi
James B Rim
Antonio V Whobrey
Juan D Schemmer
Stacey K Maclead
Ricardo P Slusarski
Aika V Sergi
Murillo L Amigon
Munro C Caldarera
Chavez Z Poquette
Rodrigues M Saylors
Leon V Dilliard
Munro Z Inouye
Arvin E Poquette
Alejandro V Darakjy
IdCountryDate
1000Italy2026-07-03
1001Australia2026-07-02
1002Germany2026-07-17
1003Spain2026-07-17
1004United Kingdom2026-06-23
1005Germany2026-07-04
1006Germany2026-06-21
1007United Kingdom2026-06-26
1008Japan2026-06-19
1009France2026-06-23
1010Brazil2026-07-06
1011Canada2026-07-01
1012Canada2026-06-25
1013Australia2026-07-03
1014Japan2026-06-29
1015Australia2026-07-13
1016France2026-06-19
1017India2026-07-16
1018Italy2026-07-05
1019Argentina2026-07-13
1020Brazil2026-06-23
1021Spain2026-07-10
1022Italy2026-07-11
1023India2026-07-12
1024United Kingdom2026-06-22
1025Canada2026-07-01
1026Russia2026-07-12
1027Canada2026-06-18
1028Spain2026-06-20
1029Spain2026-07-09
1030Argentina2026-07-10
1031Germany2026-06-24
1032Brazil2026-07-02
1033United Kingdom2026-06-26
1034Australia2026-07-06
1035France2026-06-18
1036Argentina2026-07-17
1037Australia2026-06-23
1038France2026-07-01
1039Russia2026-07-07
1040United Kingdom2026-07-02
1041France2026-07-01
1042Australia2026-07-16
1043Brazil2026-07-16
1044Spain2026-06-23
1045Argentina2026-06-23
1046Brazil2026-06-20
1047Russia2026-06-24
1048Italy2026-06-23
1049Russia2026-06-20

On-Demand Data

NameIdCountryDate
Tony O Kusko1000Italy2026-06-29
Johnson D Maclead1001Spain2026-07-17
Jennifer W Campain1002Brazil2026-07-06
Isabel W Ruta1003Japan2026-06-22
Claire T Vocelka1004India2026-07-01
Ashley E Venere1005Russia2026-07-06
Adams U Nicka1006Russia2026-07-16
Rodrigues H Nestle1007India2026-06-26
Kadeem M Nicka1008United Kingdom2026-07-11
Antonio V Iturbide1009Germany2026-07-04
Faith G Rulapaugh1010Russia2026-07-14
Kaitlin L Whobrey1011Australia2026-06-21
Juan F Maclead1012Canada2026-06-30
Antonio H Stockham1013Canada2026-06-18
Johnson A Dilliard1014Germany2026-07-11
Arvin N Amigon1015Brazil2026-07-06
Morrow B Morasca1016Germany2026-07-13
Isabel O Ferencz1017Japan2026-06-27
David B Rulapaugh1018Italy2026-07-09
Emily P Oldroyd1019Japan2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens G CaudySpainAnna Fali RENEWAL
Kadeem B GlickItalyAmy Elsner UNQUALIFIED
Morrow R PerinGermanyXuxue Feng QUALIFIED
David L NestleArgentinaElwin Sharvill PROPOSAL
Alejandro Q CampainBrazilAsiya Javayant NEW
Sinclair A ShinkoFranceAmy Elsner NEW
James T DilliardFranceBernardo Dominic NEGOTIATION
Ricardo X IturbideItalyXuxue Feng UNQUALIFIED
Tony W MaletSpainIvan Magalhaes NEW
Juan D BriddickAustraliaIoni Bowcher NEW
Isabel T GlickFranceBernardo Dominic PROPOSAL
Misaki B VenereIndiaXuxue Feng RENEWAL
James O SergiCanadaAnna Fali UNQUALIFIED
Antonio C BriddickAustraliaAmy Elsner UNQUALIFIED
Isabel U IturbideFranceBernardo Dominic PROPOSAL
Johnson E RutaSpainAmy Elsner PROPOSAL
Claire J ShinkoRussiaIvan Magalhaes QUALIFIED
Jones I PerinSpainAsiya Javayant QUALIFIED
Juan J TollnerIndiaStephen Shaw NEW
Izzy Q BologniaIndiaIoni Bowcher UNQUALIFIED
Stacey G SaylorsAustraliaElwin Sharvill QUALIFIED
Emily J BologniaSpainAnna Fali NEGOTIATION
Johnson R PerinItalyAnna Fali NEW
Claire A FlosiGermanyAmy Elsner UNQUALIFIED
Aika Y GlickBrazilStephen Shaw NEGOTIATION
Johnson F FerenczUnited KingdomElwin Sharvill NEGOTIATION
Leon L AmigonFranceXuxue Feng QUALIFIED
David K DarakjyCanadaOnyama Limba NEGOTIATION
Isabel E RimCanadaOnyama Limba NEW
Greenwood N BowleyCanadaAsiya Javayant NEGOTIATION
Wickens K PerinArgentinaBernardo Dominic UNQUALIFIED
Emily W GlickBrazilStephen Shaw UNQUALIFIED
Cody X RoysterFranceIoni Bowcher UNQUALIFIED
Cody I VocelkaFranceIvan Magalhaes NEW
Salvatore M SlusarskiUnited KingdomAnna Fali QUALIFIED
Costa G IturbideCanadaIoni Bowcher RENEWAL
Aika U NestleGermanyAsiya Javayant PROPOSAL
Jennifer X FigeroaFranceBernardo Dominic NEW
Silvio S DarakjyCanadaIoni Bowcher RENEWAL
Chavez U GlickUnited KingdomAsiya Javayant NEW

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