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
Jefferson A FigeroaCanadaXuxue Feng RENEWAL
Alejandro J RulapaughFranceAnna Fali NEW
Leja P BriddickCanadaAmy Elsner UNQUALIFIED
Maria M OldroydAustraliaAmy Elsner QUALIFIED
Stacey Y BologniaJapanIvan Magalhaes RENEWAL
Murillo V FollerGermanyStephen Shaw QUALIFIED
Arvin H PaprockiArgentinaXuxue Feng NEW
Wickens I BologniaUnited KingdomAnna Fali PROPOSAL
Leon D CaudyJapanIvan Magalhaes NEGOTIATION
Jennifer V CampainRussiaStephen Shaw NEGOTIATION
Aruna W VenereAustraliaStephen Shaw NEW
Wickens K GauchoCanadaBernardo Dominic NEGOTIATION
Johnson G DoeSpainAnna Fali PROPOSAL
Francesco Z GillianIndiaBernardo Dominic PROPOSAL
Johnson F DoeArgentinaAnna Fali UNQUALIFIED
Nicolas R MorascaGermanyIvan Magalhaes PROPOSAL
Greenwood F FollerGermanyAsiya Javayant NEGOTIATION
Emily K WaycottIndiaElwin Sharvill NEGOTIATION
Greenwood D SergiRussiaElwin Sharvill NEW
Francesco W VocelkaUnited KingdomAmy Elsner NEGOTIATION
Ashley Q TollnerGermanyIvan Magalhaes NEGOTIATION
Kadeem W AlbaresIndiaStephen Shaw PROPOSAL
Chavez M PaprockiArgentinaIoni Bowcher NEW
Izzy K NestleAustraliaAnna Fali NEGOTIATION
Arvin T SergiJapanBernardo Dominic QUALIFIED
Arvin P DarakjyRussiaElwin Sharvill RENEWAL
Mayumi V StensethArgentinaXuxue Feng UNQUALIFIED
Aika R CampainFranceIvan Magalhaes PROPOSAL
Nicolas L MaletBrazilIoni Bowcher QUALIFIED
Adams T RimFranceIoni Bowcher PROPOSAL
Leja A MaletGermanyOnyama Limba QUALIFIED
Leja E VenereItalyXuxue Feng QUALIFIED
David Q CaudyJapanAsiya Javayant QUALIFIED
David F KolmetzCanadaBernardo Dominic PROPOSAL
Misaki Y OstroskyUnited KingdomIoni Bowcher NEW
Juan E PoquetteRussiaXuxue Feng NEGOTIATION
Aika J RimFranceXuxue Feng UNQUALIFIED
Jennifer J GauchoIndiaElwin Sharvill QUALIFIED
Juan B PerinIndiaAnna Fali UNQUALIFIED
Faith Z BowleyItalyAsiya Javayant NEGOTIATION
Greenwood O KuskoSpainAsiya Javayant RENEWAL
Jones R FerenczItalyAnna Fali UNQUALIFIED
Costa Z ChuiCanadaXuxue Feng QUALIFIED
Izzy V RoysterSpainAnna Fali PROPOSAL
Johnson X FerenczFranceOnyama Limba NEW
Tony I GlickIndiaIoni Bowcher QUALIFIED
Aruna S MaletItalyBernardo Dominic UNQUALIFIED
Kaitlin Z RoysterBrazilAsiya Javayant NEW
Deepesh J BologniaUnited KingdomOnyama Limba UNQUALIFIED
Maisha F SlusarskiIndiaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Salvatore U DarakjyAustraliaXuxue Feng NEW
Jennifer E RoysterFranceAnna Fali NEGOTIATION
Aditya Z RulapaughRussiaAmy Elsner PROPOSAL
James X BowleyCanadaStephen Shaw UNQUALIFIED
Aika Z MacleadIndiaAnna Fali PROPOSAL
Murillo Z CampainGermanyOnyama Limba NEGOTIATION
Tony C FlosiBrazilStephen Shaw PROPOSAL
Claire B RoysterCanadaStephen Shaw QUALIFIED
Kadeem P SchemmerAustraliaXuxue Feng PROPOSAL
Aika Q DarakjyAustraliaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco S VenereItaly2026-06-16Printing Dimensions NEGOTIATION47Ioni Bowcher
1001Ashley I WieserArgentina2026-06-19Dorl, James J Esq NEW2Anna Fali
1002Silvio Z BologniaAustralia2026-06-25Feltz Printing Service PROPOSAL44Asiya Javayant
1003Kaitlin R NestleUnited Kingdom2026-06-07Chapman, Ross E Esq NEGOTIATION95Asiya Javayant
1004Misaki A BowleyFrance2026-06-18Buckley Miller Wright QUALIFIED46Bernardo Dominic
1005Morrow N SaylorsRussia2026-06-04Chanay, Jeffrey A Esq NEGOTIATION5Asiya Javayant
1006Ivar B RimItaly2026-07-01Morlong Associates PROPOSAL51Bernardo Dominic
1007Kadeem A StockhamGermany2026-06-24Commercial Press NEW26Xuxue Feng
1008Ashley E DoeIndia2026-06-07King, Christopher A Esq RENEWAL65Ioni Bowcher
1009Ricardo I NestleFrance2026-06-09Feltz Printing Service NEGOTIATION93Elwin Sharvill
1010Francesco T PoquetteBrazil2026-06-29Buckley Miller Wright QUALIFIED50Elwin Sharvill
1011Smith R FigeroaRussia2026-06-24Benton, John B Jr UNQUALIFIED15Onyama Limba
1012Mayumi Y SaylorsRussia2026-06-17Chapman, Ross E Esq RENEWAL3Ivan Magalhaes
1013Wickens R AmigonRussia2026-06-24Printing Dimensions RENEWAL72Anna Fali
1014Ivar K NickaBrazil2026-06-17Chapman, Ross E Esq NEGOTIATION56Anna Fali
1015Deepesh G DoeAustralia2026-06-09Printing Dimensions UNQUALIFIED49Stephen Shaw
1016Izzy X CaldareraItaly2026-06-06Buckley Miller Wright UNQUALIFIED15Elwin Sharvill
1017Izzy T BowleyBrazil2026-06-08Chanay, Jeffrey A Esq UNQUALIFIED23Asiya Javayant
1018Juan D OldroydAustralia2026-06-27Feiner Bros QUALIFIED14Bernardo Dominic
1019Sinclair S DoeBrazil2026-06-15King, Christopher A Esq NEW99Bernardo Dominic
1020Rodrigues L VocelkaIndia2026-06-29Printing Dimensions PROPOSAL3Onyama Limba
1021Sinclair M WaycottCanada2026-06-08Chanay, Jeffrey A Esq NEGOTIATION96Elwin Sharvill
1022Stacey O MorascaUnited Kingdom2026-06-14Chanay, Jeffrey A Esq PROPOSAL81Asiya Javayant
1023Sinclair N RoysterBrazil2026-06-06Printing Dimensions UNQUALIFIED0Asiya Javayant
1024Mujtaba F AmigonUnited Kingdom2026-06-16Rangoni Of Florence RENEWAL91Elwin Sharvill
1025Sinclair Z MaletArgentina2026-06-29Benton, John B Jr QUALIFIED68Asiya Javayant
1026Sinclair Q PerinBrazil2026-06-30Rangoni Of Florence PROPOSAL9Onyama Limba
1027Kadeem H WaycottBrazil2026-07-02Morlong Associates RENEWAL99Xuxue Feng
1028Leja L DoeAustralia2026-06-09Chemel, James L Cpa QUALIFIED17Xuxue Feng
1029Greenwood Q VocelkaJapan2026-06-04Rousseaux, Michael Esq NEGOTIATION86Ivan Magalhaes
1030Deepesh G TollnerCanada2026-06-06Rousseaux, Michael Esq RENEWAL78Asiya Javayant
1031Greenwood A StockhamArgentina2026-06-19Rousseaux, Michael Esq NEGOTIATION49Stephen Shaw
1032Munro S RoysterRussia2026-06-24Morlong Associates PROPOSAL68Elwin Sharvill
1033Clifford A WhobreyArgentina2026-06-12Chapman, Ross E Esq UNQUALIFIED1Ioni Bowcher
1034Clifford T SergiAustralia2026-06-19Chemel, James L Cpa PROPOSAL38Xuxue Feng
1035Aditya N AlbaresItaly2026-06-03Chanay, Jeffrey A Esq UNQUALIFIED48Amy Elsner
1036Misaki R ShinkoAustralia2026-06-09Chemel, James L Cpa NEGOTIATION1Bernardo Dominic
1037Misaki A RoysterJapan2026-06-17King, Christopher A Esq QUALIFIED25Amy Elsner
1038Misaki L AlbaresItaly2026-06-30Feltz Printing Service NEGOTIATION22Anna Fali
1039Jones D DilliardArgentina2026-06-14Chemel, James L Cpa PROPOSAL29Ivan Magalhaes
1040Aika A RulapaughFrance2026-06-10Buckley Miller Wright RENEWAL58Ioni Bowcher
1041Aika X CaldareraArgentina2026-06-09Benton, John B Jr NEW92Stephen Shaw
1042David K GarufiJapan2026-06-25Chanay, Jeffrey A Esq RENEWAL15Elwin Sharvill
1043Jefferson F InouyeBrazil2026-06-07Morlong Associates NEGOTIATION39Xuxue Feng
1044Ashley F InouyeCanada2026-06-22Dorl, James J Esq NEW94Elwin Sharvill
1045Aditya W ShinkoIndia2026-06-07Chapman, Ross E Esq RENEWAL34Ioni Bowcher
1046Antonio B CampainRussia2026-06-17Buckley Miller Wright NEW79Onyama Limba
1047Costa Q MaletSpain2026-06-30Feiner Bros RENEWAL20Xuxue Feng
1048Aika H IturbideCanada2026-06-16Chapman, Ross E Esq NEGOTIATION31Anna Fali
1049Arvin X GarufiBrazil2026-06-15Benton, John B Jr NEW73Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Faith W StockhamIndiaElwin Sharvill NEGOTIATION
Juan S MarrierRussiaElwin Sharvill NEW
Sinclair H WaycottSpainAnna Fali NEGOTIATION
Munro R VenereIndiaOnyama Limba UNQUALIFIED
Costa U CaudyGermanyAmy Elsner RENEWAL
Jefferson F MaletCanadaIoni Bowcher RENEWAL
Sinclair P WhobreyItalyOnyama Limba QUALIFIED
Murillo Z SlusarskiBrazilXuxue Feng RENEWAL
Adams Q WaycottUnited KingdomStephen Shaw PROPOSAL
Maisha N AmigonItalyAsiya Javayant NEW
Kaitlin T TollnerIndiaBernardo Dominic NEW
Greenwood C GillianCanadaBernardo Dominic RENEWAL
Greenwood K MarrierBrazilIoni Bowcher QUALIFIED
Emily K GlickAustraliaAmy Elsner PROPOSAL
Jennifer Y GarufiCanadaBernardo Dominic NEGOTIATION
Tony I MarrierAustraliaAnna Fali UNQUALIFIED
Isabel S PerinRussiaStephen Shaw RENEWAL
Izzy F CaudyGermanyIvan Magalhaes RENEWAL
Ashley Q TollnerRussiaBernardo Dominic NEGOTIATION
Chavez N MaletGermanyAsiya Javayant RENEWAL
Maria Q RimArgentinaAsiya Javayant UNQUALIFIED
Munro O WaycottAustraliaElwin Sharvill UNQUALIFIED
Juan L ButtIndiaStephen Shaw PROPOSAL
Darci S StockhamAustraliaOnyama Limba NEW
Julie N MacleadArgentinaAmy Elsner UNQUALIFIED
Ivar Q PerinArgentinaIoni Bowcher UNQUALIFIED
Isabel B FigeroaJapanOnyama Limba UNQUALIFIED
Mujtaba W KuskoSpainAmy Elsner NEW
Rodrigues M SlusarskiArgentinaIvan Magalhaes RENEWAL
Francesco G BowleyFranceBernardo Dominic UNQUALIFIED
Emily N NestleGermanyAmy Elsner PROPOSAL
Kaitlin Z IturbideUnited KingdomAmy Elsner NEW
Misaki J KuskoIndiaBernardo Dominic NEGOTIATION
Chavez E AlbaresArgentinaAsiya Javayant RENEWAL
Ashley S VenereGermanyStephen Shaw QUALIFIED
Faith R TollnerFranceElwin Sharvill QUALIFIED
Sinclair O VocelkaGermanyAnna Fali QUALIFIED
Ivar M FlosiUnited KingdomXuxue Feng PROPOSAL
Leja D MarrierUnited KingdomXuxue Feng NEGOTIATION
Greenwood N FollerRussiaBernardo Dominic NEW
Leja O FollerSpainStephen Shaw NEW
Claire R SaylorsSpainBernardo Dominic UNQUALIFIED
Sinclair R MacleadIndiaBernardo Dominic QUALIFIED
Maria O VocelkaGermanyAsiya Javayant QUALIFIED
Cody E SaylorsRussiaAmy Elsner RENEWAL
Munro T GarufiSpainIvan Magalhaes RENEWAL
Aruna C SlusarskiIndiaBernardo Dominic PROPOSAL
James N RulapaughRussiaIvan Magalhaes NEW
Chavez E FlosiSpainAmy Elsner QUALIFIED
Jeanfrancois T DarakjyArgentinaIoni Bowcher NEW
Frozen Columns
Name
Kadeem W Bolognia
James N Whobrey
David Z Waycott
Kaitlin N Venere
Clifford J Caldarera
Leon P Rulapaugh
Octavia A Bolognia
Aditya P Butt
Deepesh F Whobrey
Adams G Rulapaugh
Misaki W Marrier
Darci N Malet
Aika S Flosi
Nicolas J Whobrey
Wickens F Caudy
James B Perin
Arvin M Vocelka
Aruna Q Saylors
Francesco U Amigon
Cody Y Figeroa
Aruna A Malet
Mayumi H Oldroyd
Maisha J Foller
Cody A Paprocki
Julie A Figeroa
Arvin W Chui
Morrow E Paprocki
Francesco M Ferencz
Aika N Paprocki
Tony W Slusarski
Faith O Kolmetz
Francesco G Iturbide
Salvatore D Chui
Claire V Flosi
Aditya P Ostrosky
Leja Z Royster
Jennifer V Foller
Nicolas U Stockham
Sinclair Y Saylors
Maria S Bolognia
Greenwood J Nicka
Maria K Campain
Rodrigues P Schemmer
James M Doe
Wickens D Gillian
Aika D Malet
Stacey A Ruta
Izzy C Gillian
Salvatore E Bowley
Juan V Flosi
IdCountryDate
1000Germany2026-07-01
1001Russia2026-06-30
1002Brazil2026-06-29
1003Russia2026-06-14
1004India2026-06-15
1005Argentina2026-06-18
1006Spain2026-06-05
1007France2026-06-24
1008Italy2026-06-20
1009Argentina2026-06-26
1010Japan2026-06-12
1011Italy2026-06-05
1012Germany2026-06-18
1013Australia2026-06-14
1014Japan2026-06-10
1015Argentina2026-06-13
1016Italy2026-06-03
1017Germany2026-06-06
1018Germany2026-06-04
1019United Kingdom2026-06-20
1020Australia2026-06-28
1021India2026-06-12
1022Argentina2026-06-07
1023Germany2026-06-29
1024Argentina2026-06-22
1025Germany2026-06-11
1026Russia2026-07-01
1027Russia2026-06-27
1028Germany2026-07-01
1029United Kingdom2026-06-17
1030Germany2026-06-10
1031Italy2026-06-24
1032Brazil2026-06-23
1033India2026-06-18
1034Spain2026-06-22
1035Spain2026-06-29
1036Argentina2026-06-09
1037Canada2026-06-18
1038Brazil2026-06-20
1039Brazil2026-06-10
1040United Kingdom2026-06-29
1041Germany2026-06-07
1042United Kingdom2026-06-26
1043Canada2026-06-04
1044Brazil2026-06-23
1045United Kingdom2026-06-27
1046Canada2026-06-24
1047Spain2026-06-06
1048Spain2026-06-14
1049Germany2026-06-08

On-Demand Data

NameIdCountryDate
Silvio A Schemmer1000France2026-06-08
Claire Y Saylors1001United Kingdom2026-06-26
Murillo V Campain1002United Kingdom2026-06-22
Sinclair G Perin1003Argentina2026-06-12
Emily D Kolmetz1004India2026-06-15
Claire N Venere1005Russia2026-07-02
Leja G Maclead1006Spain2026-06-13
Deepesh C Ruta1007Russia2026-06-13
Aditya C Shinko1008Canada2026-06-04
Clifford O Caldarera1009France2026-06-26
Jeanfrancois C Poquette1010United Kingdom2026-06-05
Clifford N Garufi1011Argentina2026-06-23
Costa D Foller1012Italy2026-06-09
Jefferson G Oldroyd1013India2026-06-03
Jennifer Y Albares1014Italy2026-06-23
Misaki X Darakjy1015Argentina2026-06-06
Maria X Marrier1016France2026-06-25
Silvio H Marrier1017Brazil2026-06-06
Munro F Shinko1018Italy2026-06-07
Juan N Kusko1019Germany2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo H MaletBrazilAmy Elsner NEGOTIATION
Ashley U TollnerUnited KingdomElwin Sharvill NEW
Salvatore W SchemmerJapanElwin Sharvill NEGOTIATION
Wickens J SergiIndiaStephen Shaw NEGOTIATION
Cody K FigeroaFranceAsiya Javayant PROPOSAL
James O ButtSpainIoni Bowcher UNQUALIFIED
Wickens O OstroskyCanadaXuxue Feng NEGOTIATION
Kadeem L GlickJapanAnna Fali RENEWAL
Leja B DoeBrazilIvan Magalhaes NEW
Aika P BowleyItalyXuxue Feng UNQUALIFIED
Antonio B AmigonIndiaBernardo Dominic PROPOSAL
Julie O RoysterAustraliaStephen Shaw NEW
Francesco B FlosiSpainStephen Shaw NEGOTIATION
Maria T FerenczBrazilBernardo Dominic NEW
Darci P ChuiBrazilAnna Fali UNQUALIFIED
Silvio R NickaSpainAmy Elsner UNQUALIFIED
Mayumi D StockhamUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin A CaudySpainXuxue Feng RENEWAL
Ashley Z RulapaughArgentinaIvan Magalhaes QUALIFIED
Misaki J SaylorsRussiaIoni Bowcher PROPOSAL
Francesco D MacleadJapanAsiya Javayant RENEWAL
Ivar D RimSpainAmy Elsner UNQUALIFIED
Smith J StensethArgentinaIvan Magalhaes RENEWAL
Wickens E MarrierArgentinaBernardo Dominic UNQUALIFIED
Jeanfrancois N OstroskyRussiaElwin Sharvill PROPOSAL
Leja Q RimGermanyAmy Elsner NEGOTIATION
Silvio F GlickBrazilXuxue Feng UNQUALIFIED
Murillo Y VenereUnited KingdomOnyama Limba QUALIFIED
Kadeem Y BriddickBrazilAnna Fali NEW
Darci A VocelkaCanadaBernardo Dominic PROPOSAL
Claire I DoeJapanStephen Shaw RENEWAL
Mayumi G KolmetzItalyOnyama Limba QUALIFIED
Smith M DilliardGermanyOnyama Limba RENEWAL
Smith M FlosiBrazilIvan Magalhaes QUALIFIED
Kadeem G OldroydJapanIoni Bowcher UNQUALIFIED
Aika K GauchoArgentinaAnna Fali NEGOTIATION
Francesco V PoquetteAustraliaIvan Magalhaes NEW
Juan J CampainRussiaElwin Sharvill UNQUALIFIED
Morrow D SlusarskiIndiaStephen Shaw RENEWAL
Maria H DoeFranceAmy Elsner 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>