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
Tony J VenereArgentinaAnna Fali NEW
Julie G RimItalyBernardo Dominic UNQUALIFIED
Octavia K DilliardItalyAmy Elsner UNQUALIFIED
Adams P RutaGermanyAmy Elsner NEGOTIATION
Stacey A CaldareraFranceAmy Elsner NEGOTIATION
Francesco S BriddickAustraliaIoni Bowcher PROPOSAL
Rodrigues N GlickSpainAmy Elsner RENEWAL
Murillo G KolmetzUnited KingdomIoni Bowcher RENEWAL
Wickens Q NickaCanadaAsiya Javayant UNQUALIFIED
Juan F WhobreyRussiaIvan Magalhaes UNQUALIFIED
Ivar B StockhamUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba T StockhamIndiaIoni Bowcher NEW
Jeanfrancois Q GarufiBrazilStephen Shaw NEW
Johnson E RoysterIndiaIoni Bowcher NEW
Adams F RulapaughUnited KingdomAsiya Javayant NEGOTIATION
Aika I VenereFranceStephen Shaw NEW
Tony A MaletCanadaStephen Shaw RENEWAL
Johnson C AlbaresCanadaAsiya Javayant RENEWAL
Jennifer U MacleadAustraliaElwin Sharvill NEW
James O StockhamSpainAnna Fali NEGOTIATION
Ivar A MaletItalyAmy Elsner RENEWAL
Maria U TollnerCanadaBernardo Dominic UNQUALIFIED
Arvin N DoeFranceXuxue Feng NEGOTIATION
Munro O VocelkaItalyBernardo Dominic NEGOTIATION
Silvio I VenereRussiaXuxue Feng PROPOSAL
Sinclair P MaletSpainXuxue Feng NEW
Morrow V CampainItalyAsiya Javayant NEGOTIATION
Maria J OstroskyArgentinaElwin Sharvill NEGOTIATION
Antonio R BowleyIndiaAsiya Javayant NEW
Francesco M FerenczSpainXuxue Feng QUALIFIED
Smith Z SchemmerIndiaXuxue Feng NEGOTIATION
Munro B GauchoJapanElwin Sharvill PROPOSAL
Wickens K DarakjyRussiaStephen Shaw NEGOTIATION
Jeanfrancois W MorascaIndiaAnna Fali NEGOTIATION
Chavez S PerinBrazilAsiya Javayant NEGOTIATION
Morrow T ButtItalyAnna Fali PROPOSAL
Mujtaba D SaylorsJapanAsiya Javayant QUALIFIED
Stacey Z WieserIndiaAsiya Javayant UNQUALIFIED
Maisha R PaprockiItalyAmy Elsner NEW
Munro Z IturbideBrazilIoni Bowcher RENEWAL
James F InouyeFranceStephen Shaw PROPOSAL
Rodrigues I WhobreyItalyOnyama Limba PROPOSAL
David H CampainBrazilAnna Fali PROPOSAL
Wickens C FollerBrazilOnyama Limba RENEWAL
Mujtaba U IturbideJapanIvan Magalhaes PROPOSAL
Jones A InouyeFranceIvan Magalhaes RENEWAL
David D OldroydFranceAnna Fali QUALIFIED
Tony I CaudyUnited KingdomIvan Magalhaes PROPOSAL
Izzy U RoysterCanadaIoni Bowcher QUALIFIED
Deepesh C MaletSpainAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith O WieserSpainStephen Shaw RENEWAL
Misaki V ChuiBrazilAmy Elsner PROPOSAL
Johnson F MacleadUnited KingdomIoni Bowcher PROPOSAL
Kaitlin X GarufiGermanyStephen Shaw PROPOSAL
Nicolas I MacleadItalyXuxue Feng NEW
Silvio I CaldareraJapanAsiya Javayant RENEWAL
Aditya U KuskoCanadaStephen Shaw NEW
Francesco P FollerItalyAmy Elsner QUALIFIED
James Q CampainBrazilAsiya Javayant RENEWAL
Ricardo O GarufiFranceStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones K WhobreyJapan2026-06-11Chanay, Jeffrey A Esq UNQUALIFIED13Onyama Limba
1001Jones C NestleAustralia2026-06-29Printing Dimensions PROPOSAL4Ivan Magalhaes
1002David P SaylorsGermany2026-06-30Buckley Miller Wright RENEWAL21Bernardo Dominic
1003Stacey E CampainUnited Kingdom2026-06-08King, Christopher A Esq NEW93Anna Fali
1004Murillo P SchemmerAustralia2026-06-25Chemel, James L Cpa RENEWAL74Ioni Bowcher
1005Murillo B CampainSpain2026-06-08Dorl, James J Esq NEW1Xuxue Feng
1006Ashley R MaletGermany2026-06-30Benton, John B Jr QUALIFIED25Elwin Sharvill
1007James F FerenczRussia2026-06-14Chapman, Ross E Esq NEW30Asiya Javayant
1008Johnson Y KuskoItaly2026-06-15Truhlar And Truhlar Attys PROPOSAL38Amy Elsner
1009Chavez N SergiJapan2026-06-08Feltz Printing Service UNQUALIFIED67Amy Elsner
1010Jennifer O VocelkaUnited Kingdom2026-06-28Feltz Printing Service RENEWAL6Stephen Shaw
1011Salvatore E SergiUnited Kingdom2026-06-28Chemel, James L Cpa NEGOTIATION0Bernardo Dominic
1012Greenwood U BologniaGermany2026-06-11Chemel, James L Cpa RENEWAL30Ivan Magalhaes
1013Deepesh R StensethFrance2026-06-09Commercial Press RENEWAL7Ioni Bowcher
1014Kaitlin H WhobreyUnited Kingdom2026-06-24Chemel, James L Cpa RENEWAL32Onyama Limba
1015Murillo O SergiJapan2026-06-15Rangoni Of Florence PROPOSAL85Bernardo Dominic
1016Salvatore O MarrierUnited Kingdom2026-06-23Chemel, James L Cpa QUALIFIED31Onyama Limba
1017Sinclair N WhobreyAustralia2026-06-11Rousseaux, Michael Esq PROPOSAL85Asiya Javayant
1018Juan W RoysterArgentina2026-06-11Commercial Press NEW87Ivan Magalhaes
1019Aruna J KolmetzJapan2026-06-28Feltz Printing Service NEGOTIATION68Onyama Limba
1020Aditya V FlosiRussia2026-06-10Commercial Press NEW82Xuxue Feng
1021Misaki N RoysterSpain2026-07-01Buckley Miller Wright NEW88Ivan Magalhaes
1022Nicolas M RimUnited Kingdom2026-06-22Commercial Press QUALIFIED63Anna Fali
1023Ivar D GlickAustralia2026-06-17Morlong Associates NEGOTIATION24Onyama Limba
1024Costa M StockhamRussia2026-06-18Chanay, Jeffrey A Esq NEGOTIATION1Stephen Shaw
1025Smith J MacleadCanada2026-06-24Rangoni Of Florence UNQUALIFIED6Stephen Shaw
1026Kadeem B PerinRussia2026-06-17Commercial Press QUALIFIED38Elwin Sharvill
1027Jones B VocelkaGermany2026-06-12Morlong Associates RENEWAL31Anna Fali
1028Mayumi E KolmetzGermany2026-06-03Feltz Printing Service NEGOTIATION56Anna Fali
1029Octavia Q ChuiCanada2026-06-18Feltz Printing Service NEW73Ivan Magalhaes
1030Leja H MarrierBrazil2026-06-17Feltz Printing Service PROPOSAL60Ivan Magalhaes
1031Francesco I VenereItaly2026-06-02Feiner Bros PROPOSAL11Anna Fali
1032Ricardo S AmigonAustralia2026-06-02Commercial Press RENEWAL5Onyama Limba
1033James T GlickJapan2026-06-22Feltz Printing Service NEGOTIATION26Anna Fali
1034Emily G GarufiAustralia2026-06-14Dorl, James J Esq UNQUALIFIED36Onyama Limba
1035Jefferson L ShinkoItaly2026-06-26Morlong Associates NEGOTIATION16Elwin Sharvill
1036Juan F PoquetteCanada2026-06-09Buckley Miller Wright QUALIFIED28Stephen Shaw
1037James Q CampainGermany2026-06-16Printing Dimensions RENEWAL5Ivan Magalhaes
1038Alejandro Q FlosiJapan2026-06-24Chemel, James L Cpa NEGOTIATION86Stephen Shaw
1039Octavia G SaylorsRussia2026-06-15Feiner Bros NEGOTIATION24Elwin Sharvill
1040Juan N BowleyFrance2026-06-18Commercial Press NEGOTIATION59Asiya Javayant
1041Aruna S PoquetteItaly2026-06-19Truhlar And Truhlar Attys NEGOTIATION70Xuxue Feng
1042Deepesh Z RulapaughUnited Kingdom2026-07-01Feiner Bros NEW40Xuxue Feng
1043Adams G WieserBrazil2026-06-06Benton, John B Jr NEW78Stephen Shaw
1044Wickens A TollnerBrazil2026-06-03Buckley Miller Wright NEGOTIATION16Xuxue Feng
1045Kadeem B SaylorsArgentina2026-06-18Commercial Press NEGOTIATION88Asiya Javayant
1046Jeanfrancois M PerinAustralia2026-06-05Rangoni Of Florence NEW86Anna Fali
1047Arvin P InouyeUnited Kingdom2026-06-22Chanay, Jeffrey A Esq NEGOTIATION51Onyama Limba
1048Clifford Y FlosiItaly2026-06-16Dorl, James J Esq NEW45Bernardo Dominic
1049Alejandro E FlosiBrazil2026-06-12Chapman, Ross E Esq NEW97Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Maria S KolmetzBrazilOnyama Limba RENEWAL
Greenwood C WieserUnited KingdomAmy Elsner QUALIFIED
Salvatore W CampainBrazilAnna Fali RENEWAL
Maisha K SaylorsJapanAnna Fali NEGOTIATION
Silvio M AmigonSpainAmy Elsner QUALIFIED
Leja Z RimUnited KingdomAnna Fali NEW
Wickens B MorascaUnited KingdomIoni Bowcher PROPOSAL
Kadeem K GauchoJapanAmy Elsner UNQUALIFIED
Octavia U GarufiArgentinaAnna Fali NEGOTIATION
Aika X InouyeJapanOnyama Limba NEGOTIATION
Antonio H RimRussiaStephen Shaw NEGOTIATION
Jones N TollnerFranceStephen Shaw PROPOSAL
Julie H MacleadUnited KingdomStephen Shaw NEGOTIATION
Silvio Y FlosiItalyAsiya Javayant PROPOSAL
Misaki S WaycottRussiaAsiya Javayant QUALIFIED
James W PerinUnited KingdomOnyama Limba NEGOTIATION
Maisha H DoeItalyStephen Shaw UNQUALIFIED
Jeanfrancois W AmigonIndiaBernardo Dominic RENEWAL
Mujtaba U SlusarskiSpainStephen Shaw NEW
Julie I MaletUnited KingdomAnna Fali NEW
Aditya G WaycottJapanStephen Shaw QUALIFIED
Greenwood B WieserJapanXuxue Feng RENEWAL
Darci U WieserGermanyXuxue Feng NEW
Antonio N WaycottGermanyIvan Magalhaes RENEWAL
Claire A InouyeJapanIvan Magalhaes NEW
Aruna E RulapaughJapanOnyama Limba RENEWAL
Cody D PerinRussiaStephen Shaw UNQUALIFIED
Chavez Y MarrierFranceIvan Magalhaes QUALIFIED
Jefferson N WaycottCanadaAmy Elsner RENEWAL
Julie Y KolmetzAustraliaAmy Elsner QUALIFIED
Silvio F SlusarskiFranceElwin Sharvill UNQUALIFIED
Aika F MorascaRussiaOnyama Limba NEW
Ivar O GarufiJapanOnyama Limba NEGOTIATION
Antonio Q AlbaresCanadaStephen Shaw PROPOSAL
Adams E PoquetteGermanyIvan Magalhaes PROPOSAL
Tony Z BowleyIndiaIoni Bowcher QUALIFIED
Nicolas Y RoysterUnited KingdomAsiya Javayant NEGOTIATION
Julie Z WaycottSpainAsiya Javayant NEGOTIATION
Rodrigues Q GillianSpainAmy Elsner UNQUALIFIED
Wickens Q MarrierFranceXuxue Feng NEW
Munro W VenereIndiaElwin Sharvill RENEWAL
Murillo V PerinSpainElwin Sharvill UNQUALIFIED
Murillo B BologniaUnited KingdomElwin Sharvill NEW
Aruna E BologniaUnited KingdomBernardo Dominic RENEWAL
Smith U GauchoBrazilAmy Elsner PROPOSAL
Alejandro S RutaUnited KingdomOnyama Limba UNQUALIFIED
Ivar L IturbideSpainOnyama Limba NEW
Aika E SergiIndiaIvan Magalhaes UNQUALIFIED
Wickens V FerenczGermanyAnna Fali UNQUALIFIED
Tony W TollnerCanadaIvan Magalhaes NEW
Frozen Columns
Name
Nicolas N Caudy
Murillo N Tollner
Emily J Doe
Deepesh E Ferencz
Leon Q Kolmetz
Jennifer G Royster
Wickens A Wieser
Faith B Perin
Izzy S Waycott
Adams T Inouye
Mayumi Y Gaucho
Costa E Ferencz
Misaki C Rulapaugh
James V Marrier
Isabel Q Rulapaugh
Maria R Ruta
Faith N Albares
Mujtaba V Kusko
Emily S Perin
Claire J Gaucho
Emily X Darakjy
Kadeem B Wieser
Aruna I Wieser
Morrow G Royster
Leon S Gillian
Ricardo X Kusko
Alejandro E Marrier
Cody H Inouye
Deepesh I Malet
Ashley M Gillian
Silvio N Malet
Jefferson G Rulapaugh
Adams F Wieser
Nicolas Y Rulapaugh
Munro Y Ostrosky
David A Poquette
Jennifer A Glick
Aruna J Garufi
Maria T Garufi
Jeanfrancois W Whobrey
Silvio I Tollner
Izzy U Stockham
Cody N Ferencz
Stacey X Perin
Jeanfrancois C Briddick
Costa C Briddick
Jennifer H Chui
Salvatore R Kolmetz
Faith E Gaucho
Leja H Morasca
IdCountryDate
1000Russia2026-06-19
1001Spain2026-06-03
1002Australia2026-06-13
1003United Kingdom2026-06-18
1004Australia2026-06-27
1005France2026-06-03
1006Japan2026-06-27
1007Australia2026-06-24
1008India2026-06-23
1009Russia2026-06-10
1010Argentina2026-06-13
1011Italy2026-06-05
1012India2026-06-25
1013India2026-06-07
1014Italy2026-06-28
1015Italy2026-06-10
1016Spain2026-06-03
1017Spain2026-06-05
1018India2026-06-10
1019India2026-06-10
1020Canada2026-06-05
1021Brazil2026-06-14
1022Russia2026-06-22
1023Brazil2026-06-10
1024Germany2026-06-28
1025United Kingdom2026-06-20
1026India2026-06-30
1027Japan2026-06-21
1028Italy2026-06-24
1029India2026-06-25
1030United Kingdom2026-06-17
1031India2026-06-12
1032Germany2026-06-27
1033India2026-06-07
1034Argentina2026-07-01
1035Italy2026-06-04
1036United Kingdom2026-06-22
1037Germany2026-06-18
1038Argentina2026-06-29
1039Brazil2026-06-12
1040United Kingdom2026-06-05
1041Argentina2026-06-10
1042Brazil2026-06-15
1043Germany2026-07-01
1044Australia2026-06-16
1045Russia2026-06-29
1046Argentina2026-06-26
1047Canada2026-06-09
1048Japan2026-06-03
1049Italy2026-06-09

On-Demand Data

NameIdCountryDate
Murillo N Kolmetz1000Germany2026-06-20
Aruna L Gaucho1001Brazil2026-06-12
Jeanfrancois S Royster1002Spain2026-06-17
Jefferson T Amigon1003Argentina2026-06-03
Jennifer O Perin1004Brazil2026-06-29
Johnson C Ostrosky1005France2026-06-17
Wickens Q Iturbide1006Brazil2026-06-16
Arvin F Malet1007United Kingdom2026-06-23
Aruna J Ostrosky1008United Kingdom2026-06-10
Arvin I Wieser1009Germany2026-06-14
Munro Q Rulapaugh1010Australia2026-06-21
Mayumi F Nestle1011Italy2026-06-19
Jefferson K Albares1012Russia2026-06-07
Clifford E Caudy1013France2026-06-11
Costa F Foller1014Italy2026-06-25
Deepesh J Ostrosky1015Germany2026-06-18
Munro E Tollner1016Argentina2026-06-19
Darci C Ostrosky1017Italy2026-06-18
Greenwood Y Glick1018Germany2026-06-15
Adams Y Maclead1019United Kingdom2026-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues E CampainArgentinaBernardo Dominic RENEWAL
Antonio V CampainBrazilAnna Fali RENEWAL
Rodrigues E SergiArgentinaXuxue Feng QUALIFIED
Aditya M FerenczArgentinaBernardo Dominic UNQUALIFIED
Octavia S WhobreyBrazilAnna Fali UNQUALIFIED
David G AlbaresIndiaIoni Bowcher PROPOSAL
Cody S BowleyCanadaAnna Fali UNQUALIFIED
Isabel K KolmetzArgentinaStephen Shaw QUALIFIED
Jefferson O SlusarskiItalyAmy Elsner RENEWAL
Arvin I VenereItalyBernardo Dominic RENEWAL
Deepesh E RoysterRussiaIoni Bowcher NEGOTIATION
Deepesh W RutaCanadaAsiya Javayant NEW
Costa N MorascaUnited KingdomIvan Magalhaes PROPOSAL
Salvatore J IturbideFranceAnna Fali UNQUALIFIED
Alejandro C RoysterAustraliaAnna Fali RENEWAL
Octavia D StockhamItalyAmy Elsner QUALIFIED
Kadeem Q WaycottIndiaIoni Bowcher RENEWAL
Munro B NestleGermanyOnyama Limba RENEWAL
Antonio L PerinItalyOnyama Limba QUALIFIED
Tony L StockhamJapanAmy Elsner UNQUALIFIED
Ricardo Z ButtSpainIoni Bowcher UNQUALIFIED
Mujtaba O BowleyItalyAmy Elsner RENEWAL
Claire I OldroydIndiaIvan Magalhaes NEGOTIATION
Chavez P TollnerItalyOnyama Limba RENEWAL
Francesco F NickaUnited KingdomIvan Magalhaes QUALIFIED
David W FollerRussiaAmy Elsner PROPOSAL
Aditya O VenereFranceBernardo Dominic UNQUALIFIED
Kaitlin H StockhamSpainOnyama Limba UNQUALIFIED
Kadeem W DoeJapanXuxue Feng NEW
Nicolas O KolmetzBrazilAnna Fali UNQUALIFIED
Arvin M MorascaRussiaAmy Elsner NEW
Smith L RoysterBrazilAnna Fali NEGOTIATION
Kadeem X StockhamAustraliaOnyama Limba PROPOSAL
Francesco E StockhamItalyIoni Bowcher NEW
Greenwood F OstroskyGermanyIoni Bowcher QUALIFIED
Adams I VenereBrazilAmy Elsner NEW
Silvio J KuskoItalyBernardo Dominic RENEWAL
Ricardo E FollerArgentinaBernardo Dominic NEGOTIATION
Greenwood I FollerArgentinaBernardo Dominic UNQUALIFIED
Aruna T SchemmerItalyAnna Fali NEGOTIATION

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