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
Arvin Z MaletRussiaIvan Magalhaes UNQUALIFIED
Aika Y WhobreyAustraliaStephen Shaw UNQUALIFIED
Tony M DoeGermanyAnna Fali RENEWAL
Nicolas X DoeAustraliaXuxue Feng NEGOTIATION
Silvio K CampainBrazilIvan Magalhaes UNQUALIFIED
Rodrigues M FerenczGermanyAmy Elsner NEW
Izzy V MaletIndiaAnna Fali PROPOSAL
Deepesh D SergiJapanBernardo Dominic RENEWAL
Murillo U BowleyUnited KingdomIoni Bowcher UNQUALIFIED
Antonio D PaprockiRussiaXuxue Feng PROPOSAL
Wickens I FollerSpainAnna Fali NEGOTIATION
Costa K CampainArgentinaAnna Fali RENEWAL
Ashley J RimGermanyAnna Fali NEW
Kaitlin B BriddickAustraliaIvan Magalhaes NEW
Wickens K PerinItalyElwin Sharvill NEGOTIATION
Aditya S BowleySpainBernardo Dominic NEW
Munro P BriddickBrazilXuxue Feng QUALIFIED
Isabel M FollerArgentinaOnyama Limba NEW
Tony E NestleRussiaXuxue Feng NEW
Emily S BriddickGermanyAnna Fali NEGOTIATION
Adams O FigeroaUnited KingdomIvan Magalhaes NEW
Ivar M CaldareraUnited KingdomBernardo Dominic NEGOTIATION
Jefferson Z RoysterUnited KingdomBernardo Dominic QUALIFIED
Izzy N NestleBrazilAnna Fali PROPOSAL
Munro A StockhamFranceBernardo Dominic RENEWAL
Aika N InouyeUnited KingdomElwin Sharvill NEGOTIATION
Misaki A WaycottArgentinaBernardo Dominic NEW
Francesco O WieserArgentinaOnyama Limba RENEWAL
Juan Y CampainCanadaElwin Sharvill UNQUALIFIED
Jefferson V AlbaresBrazilStephen Shaw UNQUALIFIED
Leja S StockhamArgentinaOnyama Limba QUALIFIED
Antonio O RoysterSpainBernardo Dominic NEGOTIATION
Jefferson C NestleRussiaBernardo Dominic UNQUALIFIED
Antonio O MaletCanadaAnna Fali RENEWAL
Greenwood N NestleCanadaIvan Magalhaes PROPOSAL
Leja G MorascaJapanStephen Shaw NEGOTIATION
Silvio K CaldareraJapanBernardo Dominic NEGOTIATION
Greenwood I KolmetzFranceIoni Bowcher PROPOSAL
Claire W RulapaughUnited KingdomIoni Bowcher NEW
Johnson O PoquetteFranceAnna Fali RENEWAL
Octavia N SergiJapanElwin Sharvill QUALIFIED
Ivar K FigeroaIndiaElwin Sharvill QUALIFIED
Emily Y GillianJapanAnna Fali UNQUALIFIED
Greenwood J WhobreyIndiaAmy Elsner QUALIFIED
Francesco E OstroskySpainAnna Fali NEGOTIATION
Maria B KolmetzUnited KingdomBernardo Dominic QUALIFIED
Maria J VenereItalyAmy Elsner RENEWAL
Deepesh J OldroydItalyStephen Shaw NEW
Deepesh X FigeroaJapanIvan Magalhaes QUALIFIED
Silvio S MarrierArgentinaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson N IturbideFranceOnyama Limba QUALIFIED
Alejandro W NickaUnited KingdomAmy Elsner QUALIFIED
Francesco X IturbideRussiaOnyama Limba UNQUALIFIED
Clifford P PerinIndiaOnyama Limba NEGOTIATION
Jeanfrancois X MorascaCanadaIoni Bowcher UNQUALIFIED
Kaitlin Q MarrierIndiaBernardo Dominic UNQUALIFIED
Costa F BriddickCanadaAmy Elsner RENEWAL
Cody G KolmetzSpainIvan Magalhaes RENEWAL
Clifford I BowleyItalyAnna Fali UNQUALIFIED
Silvio G ChuiAustraliaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony H ButtArgentina2026-07-05Feltz Printing Service PROPOSAL13Bernardo Dominic
1001Jeanfrancois W SaylorsJapan2026-07-17Benton, John B Jr UNQUALIFIED30Ivan Magalhaes
1002Maisha G NickaBrazil2026-07-20Rangoni Of Florence NEGOTIATION82Ivan Magalhaes
1003Maisha F SlusarskiFrance2026-07-09Commercial Press QUALIFIED72Xuxue Feng
1004Aika F NestleArgentina2026-07-20Rangoni Of Florence PROPOSAL77Onyama Limba
1005Cody P TollnerAustralia2026-07-06Dorl, James J Esq NEGOTIATION9Anna Fali
1006Alejandro H FlosiBrazil2026-07-14Rousseaux, Michael Esq NEW79Elwin Sharvill
1007Silvio I CampainRussia2026-07-01Feiner Bros NEGOTIATION72Anna Fali
1008Maisha D MorascaBrazil2026-07-16King, Christopher A Esq UNQUALIFIED74Amy Elsner
1009Emily Y MarrierRussia2026-06-28Dorl, James J Esq PROPOSAL18Amy Elsner
1010Misaki P OstroskySpain2026-07-15Feltz Printing Service QUALIFIED61Elwin Sharvill
1011Emily D TollnerAustralia2026-07-06Rousseaux, Michael Esq NEW30Amy Elsner
1012Alejandro W OstroskyUnited Kingdom2026-06-29Printing Dimensions QUALIFIED90Anna Fali
1013Jeanfrancois S SaylorsItaly2026-07-12Rangoni Of Florence RENEWAL34Asiya Javayant
1014Morrow S SergiAustralia2026-07-16Printing Dimensions QUALIFIED86Stephen Shaw
1015Murillo A SaylorsRussia2026-07-19Benton, John B Jr RENEWAL49Amy Elsner
1016Octavia D RutaUnited Kingdom2026-06-29Rousseaux, Michael Esq UNQUALIFIED15Ivan Magalhaes
1017Chavez K PaprockiSpain2026-07-08Benton, John B Jr PROPOSAL83Amy Elsner
1018Costa A CaldareraUnited Kingdom2026-07-11Printing Dimensions NEGOTIATION20Bernardo Dominic
1019Johnson C DilliardGermany2026-06-30Chapman, Ross E Esq NEGOTIATION60Xuxue Feng
1020Ivar A OldroydFrance2026-06-29Dorl, James J Esq PROPOSAL47Asiya Javayant
1021Morrow G GarufiRussia2026-07-18Printing Dimensions RENEWAL41Ioni Bowcher
1022Greenwood E KolmetzCanada2026-06-27Morlong Associates PROPOSAL91Bernardo Dominic
1023Darci Y RimAustralia2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED59Amy Elsner
1024Arvin A BowleyJapan2026-07-08Chanay, Jeffrey A Esq UNQUALIFIED27Xuxue Feng
1025Aditya Q MarrierBrazil2026-07-07Buckley Miller Wright PROPOSAL37Ioni Bowcher
1026David L FlosiBrazil2026-06-25Truhlar And Truhlar Attys NEW56Ivan Magalhaes
1027Maisha E PaprockiJapan2026-07-04Chapman, Ross E Esq QUALIFIED57Amy Elsner
1028Francesco J SaylorsFrance2026-07-15Benton, John B Jr UNQUALIFIED68Elwin Sharvill
1029Jefferson N FigeroaJapan2026-07-08Rousseaux, Michael Esq RENEWAL98Ivan Magalhaes
1030Munro K WaycottBrazil2026-07-07Rangoni Of Florence RENEWAL84Ivan Magalhaes
1031Clifford I ButtItaly2026-07-08Feltz Printing Service NEW32Amy Elsner
1032Kadeem B MaletRussia2026-06-26Commercial Press PROPOSAL37Asiya Javayant
1033Ricardo L FlosiItaly2026-07-03Feltz Printing Service NEW45Onyama Limba
1034Octavia D GlickIndia2026-06-25King, Christopher A Esq NEGOTIATION64Ivan Magalhaes
1035Stacey W DoeUnited Kingdom2026-07-10Rousseaux, Michael Esq UNQUALIFIED28Ivan Magalhaes
1036Kadeem O StockhamItaly2026-07-07Rousseaux, Michael Esq NEW63Onyama Limba
1037Murillo O GauchoRussia2026-07-22Feiner Bros UNQUALIFIED38Amy Elsner
1038Maria H NestleItaly2026-06-28Chemel, James L Cpa PROPOSAL57Xuxue Feng
1039Greenwood Q DoeAustralia2026-07-18Chapman, Ross E Esq UNQUALIFIED16Stephen Shaw
1040Stacey W KolmetzSpain2026-07-08Feiner Bros UNQUALIFIED60Ivan Magalhaes
1041Isabel E KuskoCanada2026-07-21Rangoni Of Florence NEGOTIATION65Xuxue Feng
1042Munro M ButtBrazil2026-07-12Dorl, James J Esq QUALIFIED23Asiya Javayant
1043Mujtaba N MorascaSpain2026-07-16Feiner Bros QUALIFIED0Bernardo Dominic
1044Ricardo X MaletAustralia2026-07-03Rangoni Of Florence PROPOSAL94Amy Elsner
1045Octavia I BowleyItaly2026-07-16Rousseaux, Michael Esq QUALIFIED19Amy Elsner
1046Faith S DilliardGermany2026-07-05Feltz Printing Service QUALIFIED75Bernardo Dominic
1047Julie Y PaprockiSpain2026-07-04Benton, John B Jr UNQUALIFIED64Onyama Limba
1048Faith N WaycottIndia2026-07-09Printing Dimensions QUALIFIED14Elwin Sharvill
1049Emily Z MorascaSpain2026-06-29Feiner Bros QUALIFIED91Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Isabel X GillianItalyStephen Shaw NEW
Juan R KolmetzFranceIvan Magalhaes PROPOSAL
Jefferson E TollnerArgentinaOnyama Limba PROPOSAL
Jefferson M ButtUnited KingdomIvan Magalhaes NEW
Salvatore D RutaAustraliaBernardo Dominic PROPOSAL
David M DilliardJapanOnyama Limba PROPOSAL
Wickens U InouyeBrazilAmy Elsner PROPOSAL
David J GauchoJapanIvan Magalhaes NEW
Alejandro R StockhamIndiaElwin Sharvill NEW
Claire J OldroydRussiaBernardo Dominic RENEWAL
Mayumi F MarrierSpainElwin Sharvill UNQUALIFIED
Alejandro G BologniaRussiaBernardo Dominic PROPOSAL
Ricardo S OldroydBrazilXuxue Feng PROPOSAL
Stacey C AlbaresSpainAmy Elsner UNQUALIFIED
Isabel V NestleAustraliaIvan Magalhaes QUALIFIED
Maria L RimFranceXuxue Feng UNQUALIFIED
Francesco A GauchoItalyXuxue Feng PROPOSAL
Misaki R BowleyJapanAsiya Javayant QUALIFIED
Kadeem Q KolmetzUnited KingdomBernardo Dominic NEW
Emily B KuskoItalyAmy Elsner QUALIFIED
Salvatore H StockhamSpainAmy Elsner UNQUALIFIED
Tony A PoquetteFranceOnyama Limba NEW
Jones O MorascaAustraliaIvan Magalhaes NEGOTIATION
Costa U MarrierAustraliaAsiya Javayant QUALIFIED
Izzy H DoeItalyAnna Fali RENEWAL
Maisha H RulapaughSpainIvan Magalhaes RENEWAL
Misaki Z VocelkaRussiaAnna Fali PROPOSAL
David O GillianIndiaAnna Fali QUALIFIED
David F AlbaresGermanyXuxue Feng UNQUALIFIED
Munro B RutaItalyIoni Bowcher QUALIFIED
Greenwood B MacleadArgentinaAnna Fali UNQUALIFIED
Johnson K PoquetteArgentinaBernardo Dominic NEGOTIATION
Maria Q FigeroaGermanyAmy Elsner NEW
Greenwood B CampainCanadaIvan Magalhaes RENEWAL
Johnson W StockhamItalyIvan Magalhaes PROPOSAL
Kaitlin J SchemmerArgentinaOnyama Limba QUALIFIED
Ivar J OstroskyBrazilElwin Sharvill PROPOSAL
Darci S GillianArgentinaAmy Elsner NEW
Munro V DoeAustraliaStephen Shaw QUALIFIED
Ivar C CaudySpainAnna Fali UNQUALIFIED
Stacey P InouyeSpainAsiya Javayant UNQUALIFIED
Sinclair Y MorascaFranceIoni Bowcher NEGOTIATION
Tony I VocelkaGermanyBernardo Dominic QUALIFIED
Deepesh A VenereSpainIoni Bowcher QUALIFIED
Isabel X NestleCanadaStephen Shaw PROPOSAL
Maria J CaudyUnited KingdomOnyama Limba NEGOTIATION
Maisha I FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem K MacleadIndiaBernardo Dominic QUALIFIED
Jefferson P BowleyItalyIvan Magalhaes PROPOSAL
Ricardo J IturbideBrazilIoni Bowcher QUALIFIED
Frozen Columns
Name
Aditya A Marrier
Izzy D Stockham
Stacey M Sergi
Maria Z Campain
Johnson S Bolognia
Ivar S Bowley
Jones F Ruta
Tony W Morasca
Munro W Rulapaugh
Cody J Marrier
Izzy N Malet
Stacey X Slusarski
Wickens J Ruta
Aika G Butt
Jennifer N Flosi
Misaki K Iturbide
Maisha T Figeroa
Aika G Kolmetz
Nicolas V Venere
Salvatore C Ruta
Octavia N Nicka
Silvio N Kolmetz
Francesco T Slusarski
Leja G Stenseth
Silvio Z Bolognia
Darci U Gillian
Kadeem L Poquette
Misaki B Malet
Francesco M Poquette
Stacey A Waycott
Francesco R Flosi
Octavia X Kolmetz
Cody L Ferencz
Cody T Venere
Clifford A Albares
Leja I Perin
Nicolas J Amigon
Jefferson J Tollner
Kaitlin V Flosi
Johnson R Figeroa
James K Glick
Greenwood A Glick
Murillo A Gillian
Wickens C Ferencz
Misaki K Caudy
Juan E Perin
Darci O Doe
Francesco B Slusarski
Ricardo I Sergi
Ivar Z Whobrey
IdCountryDate
1000Brazil2026-07-22
1001United Kingdom2026-06-26
1002Argentina2026-07-21
1003Spain2026-07-08
1004India2026-07-03
1005Argentina2026-06-26
1006Italy2026-06-26
1007France2026-07-07
1008Australia2026-07-12
1009Argentina2026-07-12
1010United Kingdom2026-07-15
1011Brazil2026-06-23
1012Germany2026-06-25
1013Japan2026-07-03
1014Argentina2026-06-24
1015Italy2026-07-14
1016United Kingdom2026-07-15
1017France2026-07-16
1018India2026-07-21
1019Argentina2026-07-04
1020Russia2026-06-30
1021Spain2026-07-08
1022India2026-07-10
1023India2026-07-04
1024Spain2026-07-05
1025India2026-07-21
1026Germany2026-07-22
1027United Kingdom2026-06-25
1028Spain2026-07-16
1029Japan2026-06-27
1030Japan2026-07-15
1031Japan2026-07-08
1032Russia2026-07-11
1033France2026-07-15
1034France2026-07-18
1035Italy2026-07-08
1036Italy2026-06-26
1037France2026-06-26
1038Australia2026-06-29
1039Germany2026-07-11
1040India2026-07-05
1041Australia2026-07-20
1042Italy2026-06-24
1043United Kingdom2026-07-18
1044Germany2026-07-19
1045Australia2026-07-20
1046United Kingdom2026-07-20
1047Russia2026-07-16
1048Argentina2026-07-14
1049Russia2026-06-30

On-Demand Data

NameIdCountryDate
Adams E Gillian1000Russia2026-06-26
Nicolas M Amigon1001Spain2026-06-26
Morrow Z Schemmer1002Argentina2026-06-29
Clifford E Albares1003Spain2026-07-14
Johnson J Malet1004Australia2026-06-24
Kaitlin L Gillian1005Brazil2026-07-01
Faith D Sergi1006Spain2026-06-24
Johnson G Gillian1007Argentina2026-07-20
Antonio S Stenseth1008Argentina2026-06-26
Clifford H Perin1009United Kingdom2026-06-30
Emily B Schemmer1010France2026-07-11
Aditya S Sergi1011France2026-07-17
Darci V Darakjy1012Argentina2026-07-08
Sinclair P Amigon1013India2026-07-12
Juan F Oldroyd1014Brazil2026-07-17
Deepesh U Albares1015Japan2026-07-02
Maria D Dilliard1016India2026-07-06
Misaki U Amigon1017Spain2026-07-17
Mayumi D Chui1018Argentina2026-06-25
Deepesh Y Stockham1019United Kingdom2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria T SergiArgentinaXuxue Feng RENEWAL
Aditya F OstroskySpainAsiya Javayant RENEWAL
Sinclair N RutaItalyBernardo Dominic PROPOSAL
Sinclair Z ShinkoFranceAnna Fali NEW
Arvin B VenereIndiaStephen Shaw RENEWAL
Ricardo U StensethGermanyAnna Fali UNQUALIFIED
Sinclair M SchemmerAustraliaBernardo Dominic PROPOSAL
Izzy T KolmetzSpainIoni Bowcher NEGOTIATION
Adams Y OldroydCanadaAnna Fali QUALIFIED
Greenwood Q WieserJapanIoni Bowcher PROPOSAL
Ivar K CaldareraUnited KingdomOnyama Limba QUALIFIED
Smith K OldroydFranceAsiya Javayant NEGOTIATION
Julie Z AlbaresFranceAsiya Javayant UNQUALIFIED
Morrow V RutaArgentinaIvan Magalhaes RENEWAL
Izzy D FlosiSpainAmy Elsner RENEWAL
Greenwood R OstroskyItalyElwin Sharvill PROPOSAL
Ivar E DarakjySpainIvan Magalhaes UNQUALIFIED
Jeanfrancois T ShinkoUnited KingdomIvan Magalhaes QUALIFIED
Aruna Q ButtRussiaIvan Magalhaes NEW
Aditya G PaprockiItalyAmy Elsner QUALIFIED
Leja V OldroydArgentinaIoni Bowcher NEW
Munro J AmigonAustraliaOnyama Limba QUALIFIED
Deepesh Y VenereJapanXuxue Feng RENEWAL
Kadeem M CaldareraSpainElwin Sharvill NEGOTIATION
Antonio C BriddickUnited KingdomElwin Sharvill QUALIFIED
Claire Z FerenczFranceAmy Elsner UNQUALIFIED
Wickens O NestleCanadaAsiya Javayant UNQUALIFIED
Leon Z BowleyArgentinaIvan Magalhaes PROPOSAL
Maria P WieserRussiaAmy Elsner RENEWAL
David P MacleadItalyAmy Elsner UNQUALIFIED
Smith W AlbaresItalyAsiya Javayant RENEWAL
Ashley N InouyeSpainAmy Elsner NEGOTIATION
Antonio A BologniaRussiaXuxue Feng UNQUALIFIED
Darci T KuskoRussiaAsiya Javayant NEGOTIATION
Costa V AlbaresItalyAsiya Javayant UNQUALIFIED
Costa H SergiJapanStephen Shaw UNQUALIFIED
Aditya B CampainUnited KingdomAmy Elsner PROPOSAL
Misaki C GillianFranceAmy Elsner RENEWAL
Aditya P KuskoArgentinaAsiya Javayant UNQUALIFIED
Misaki U IturbideIndiaOnyama Limba QUALIFIED

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