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
Cody H AmigonItalyBernardo Dominic NEGOTIATION
Jennifer I MorascaIndiaIoni Bowcher NEGOTIATION
Stacey J PoquetteBrazilBernardo Dominic UNQUALIFIED
Deepesh P SaylorsGermanyAmy Elsner PROPOSAL
Ashley P RoysterIndiaOnyama Limba PROPOSAL
Clifford L RoysterIndiaIoni Bowcher NEGOTIATION
Aruna K PoquetteAustraliaXuxue Feng RENEWAL
James P VocelkaFranceElwin Sharvill NEGOTIATION
Stacey T BowleyUnited KingdomBernardo Dominic QUALIFIED
Stacey Q DarakjyJapanBernardo Dominic NEW
Chavez K CaudyUnited KingdomElwin Sharvill QUALIFIED
Morrow F MacleadArgentinaOnyama Limba UNQUALIFIED
Costa D VocelkaFranceIvan Magalhaes RENEWAL
Ashley J SlusarskiItalyAmy Elsner NEGOTIATION
Smith H WhobreyIndiaXuxue Feng QUALIFIED
Maria U RoysterSpainAsiya Javayant NEGOTIATION
Rodrigues P BologniaArgentinaAmy Elsner QUALIFIED
Maria R AlbaresArgentinaIoni Bowcher QUALIFIED
Greenwood T FerenczIndiaAnna Fali PROPOSAL
Mujtaba B GarufiArgentinaIoni Bowcher PROPOSAL
Mayumi M ShinkoCanadaXuxue Feng NEGOTIATION
Tony M StensethBrazilOnyama Limba QUALIFIED
Isabel Y FigeroaJapanOnyama Limba NEGOTIATION
Adams C MorascaAustraliaIvan Magalhaes PROPOSAL
Salvatore C PerinRussiaXuxue Feng RENEWAL
Costa X ShinkoCanadaIoni Bowcher NEW
Munro P PoquetteItalyBernardo Dominic RENEWAL
Jones Q PaprockiFranceBernardo Dominic NEW
Faith D PerinAustraliaElwin Sharvill NEGOTIATION
Greenwood A WaycottCanadaAnna Fali NEW
James U ButtRussiaOnyama Limba NEGOTIATION
Aruna X BowleyRussiaOnyama Limba QUALIFIED
Jefferson W RoysterSpainAmy Elsner QUALIFIED
Julie Q RutaSpainXuxue Feng NEGOTIATION
Izzy W GillianUnited KingdomStephen Shaw NEGOTIATION
Chavez Z TollnerAustraliaBernardo Dominic NEW
Ashley W RimFranceElwin Sharvill QUALIFIED
Kadeem Y PaprockiIndiaIoni Bowcher PROPOSAL
Maria W MarrierArgentinaAsiya Javayant QUALIFIED
Smith H VocelkaCanadaIoni Bowcher UNQUALIFIED
Julie S RimAustraliaAsiya Javayant UNQUALIFIED
Maria J MarrierRussiaIvan Magalhaes UNQUALIFIED
Clifford M SergiCanadaAsiya Javayant UNQUALIFIED
Misaki J FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore F ShinkoBrazilOnyama Limba QUALIFIED
Jennifer K OldroydRussiaAnna Fali NEW
Aruna I MaletRussiaStephen Shaw NEW
Isabel Z ShinkoSpainAnna Fali RENEWAL
Izzy Q DilliardJapanIvan Magalhaes QUALIFIED
Jeanfrancois O GauchoSpainIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith M MaletBrazilAsiya Javayant UNQUALIFIED
Julie Z MorascaGermanyXuxue Feng PROPOSAL
James K PoquetteUnited KingdomOnyama Limba PROPOSAL
Ashley Y VocelkaJapanElwin Sharvill UNQUALIFIED
Mujtaba X ChuiIndiaIvan Magalhaes NEW
Arvin N TollnerBrazilIvan Magalhaes RENEWAL
Darci O VenereIndiaElwin Sharvill NEW
Faith P MaletJapanIoni Bowcher QUALIFIED
Stacey F PerinGermanyAsiya Javayant UNQUALIFIED
Rodrigues L WaycottJapanAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith C SergiFrance2026-08-11Printing Dimensions NEGOTIATION42Ivan Magalhaes
1001Stacey L CampainFrance2026-08-02Buckley Miller Wright NEW55Amy Elsner
1002Nicolas C IturbideIndia2026-08-12Truhlar And Truhlar Attys QUALIFIED57Ioni Bowcher
1003James E SchemmerJapan2026-08-17Feltz Printing Service RENEWAL41Asiya Javayant
1004Leon E BologniaItaly2026-08-10Morlong Associates UNQUALIFIED89Elwin Sharvill
1005Julie U SaylorsItaly2026-08-14Feiner Bros UNQUALIFIED40Xuxue Feng
1006Rodrigues B DoeArgentina2026-08-02Printing Dimensions RENEWAL26Ivan Magalhaes
1007Ashley W MarrierAustralia2026-08-18King, Christopher A Esq PROPOSAL14Ioni Bowcher
1008Wickens O AlbaresGermany2026-07-29Truhlar And Truhlar Attys UNQUALIFIED32Xuxue Feng
1009Stacey A WieserIndia2026-08-13Feiner Bros QUALIFIED70Elwin Sharvill
1010Murillo L GauchoCanada2026-07-21Rousseaux, Michael Esq RENEWAL4Asiya Javayant
1011Mujtaba K DilliardBrazil2026-08-08King, Christopher A Esq NEW51Anna Fali
1012Juan C MarrierIndia2026-08-05Chanay, Jeffrey A Esq RENEWAL56Ivan Magalhaes
1013Ivar V CaldareraIndia2026-08-03Feiner Bros RENEWAL58Onyama Limba
1014Alejandro X GillianJapan2026-07-28Benton, John B Jr UNQUALIFIED25Ivan Magalhaes
1015Aika B MaletUnited Kingdom2026-08-01Commercial Press NEW86Stephen Shaw
1016Aditya V AmigonUnited Kingdom2026-08-03Truhlar And Truhlar Attys UNQUALIFIED56Xuxue Feng
1017Antonio W PaprockiItaly2026-07-28Rangoni Of Florence NEW17Amy Elsner
1018Misaki C KolmetzUnited Kingdom2026-08-04Rangoni Of Florence NEGOTIATION39Bernardo Dominic
1019Murillo N WhobreyRussia2026-08-13Rousseaux, Michael Esq NEGOTIATION10Anna Fali
1020James R CampainItaly2026-08-18Printing Dimensions RENEWAL23Ioni Bowcher
1021Johnson F RoysterJapan2026-07-28Chanay, Jeffrey A Esq PROPOSAL16Ioni Bowcher
1022James V ShinkoRussia2026-08-09King, Christopher A Esq NEGOTIATION88Bernardo Dominic
1023Smith I WieserIndia2026-08-14Chanay, Jeffrey A Esq RENEWAL87Amy Elsner
1024Morrow E PoquetteIndia2026-08-17Printing Dimensions PROPOSAL29Elwin Sharvill
1025Ricardo T KolmetzBrazil2026-08-04King, Christopher A Esq NEW16Xuxue Feng
1026Salvatore W ShinkoUnited Kingdom2026-07-21Morlong Associates NEGOTIATION20Xuxue Feng
1027David H FigeroaFrance2026-08-07Chapman, Ross E Esq QUALIFIED74Bernardo Dominic
1028Darci N BriddickUnited Kingdom2026-08-09Feiner Bros UNQUALIFIED99Xuxue Feng
1029Claire X VenereArgentina2026-08-09Chapman, Ross E Esq QUALIFIED63Onyama Limba
1030Leon T ButtRussia2026-08-13Dorl, James J Esq QUALIFIED24Anna Fali
1031Jones B MorascaArgentina2026-07-28Feltz Printing Service NEW75Elwin Sharvill
1032Arvin H RulapaughSpain2026-08-14Chemel, James L Cpa NEW11Bernardo Dominic
1033Tony Q MarrierUnited Kingdom2026-07-25Chemel, James L Cpa RENEWAL11Amy Elsner
1034Faith E RimCanada2026-08-07Truhlar And Truhlar Attys RENEWAL16Bernardo Dominic
1035Ricardo B FollerBrazil2026-08-13Truhlar And Truhlar Attys NEW72Asiya Javayant
1036Adams I DoeIndia2026-08-05Buckley Miller Wright RENEWAL70Bernardo Dominic
1037Costa Y ChuiArgentina2026-07-24Rangoni Of Florence NEGOTIATION53Asiya Javayant
1038Smith E ShinkoBrazil2026-08-03Benton, John B Jr NEGOTIATION98Onyama Limba
1039Octavia U BologniaRussia2026-08-02Dorl, James J Esq PROPOSAL83Ioni Bowcher
1040Morrow O PerinItaly2026-07-20Benton, John B Jr NEGOTIATION56Onyama Limba
1041Mayumi Z GillianArgentina2026-07-22Chapman, Ross E Esq NEW49Xuxue Feng
1042Greenwood V PerinUnited Kingdom2026-08-02Chanay, Jeffrey A Esq PROPOSAL67Onyama Limba
1043Antonio W AlbaresFrance2026-07-27King, Christopher A Esq QUALIFIED76Amy Elsner
1044Chavez F VocelkaItaly2026-08-17Rangoni Of Florence RENEWAL37Asiya Javayant
1045Nicolas U GarufiArgentina2026-08-02Feltz Printing Service NEGOTIATION99Ioni Bowcher
1046Leon D OstroskyUnited Kingdom2026-08-07Chemel, James L Cpa NEGOTIATION85Anna Fali
1047Sinclair Y StockhamUnited Kingdom2026-07-31Feiner Bros PROPOSAL18Anna Fali
1048Mujtaba U RutaAustralia2026-07-21Feltz Printing Service PROPOSAL28Onyama Limba
1049Silvio H VocelkaSpain2026-07-24Commercial Press PROPOSAL90Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Silvio R DilliardRussiaAnna Fali QUALIFIED
Francesco B FlosiJapanAsiya Javayant NEW
Maria A WieserJapanStephen Shaw UNQUALIFIED
Cody Z CaldareraSpainOnyama Limba PROPOSAL
Smith H WhobreyIndiaIoni Bowcher PROPOSAL
Silvio E GauchoRussiaAmy Elsner NEW
Izzy K KuskoGermanyAmy Elsner RENEWAL
Antonio A FlosiGermanyElwin Sharvill PROPOSAL
Murillo R RoysterAustraliaIoni Bowcher PROPOSAL
Alejandro N IturbideIndiaOnyama Limba NEGOTIATION
Leja K RulapaughItalyStephen Shaw UNQUALIFIED
Maria C DoeGermanyStephen Shaw NEW
Wickens L GlickGermanyElwin Sharvill NEW
Maria I WhobreyFranceBernardo Dominic NEGOTIATION
Sinclair P GauchoGermanyAmy Elsner NEW
Stacey Q OstroskySpainAmy Elsner PROPOSAL
Johnson I SergiGermanyStephen Shaw QUALIFIED
Smith O MorascaGermanyXuxue Feng QUALIFIED
Emily H BologniaCanadaBernardo Dominic RENEWAL
Misaki I WhobreyIndiaElwin Sharvill RENEWAL
Jeanfrancois K DarakjyCanadaAmy Elsner NEW
Johnson G ButtBrazilAnna Fali QUALIFIED
Alejandro G RutaIndiaElwin Sharvill UNQUALIFIED
James K KuskoJapanElwin Sharvill NEGOTIATION
Emily N PerinUnited KingdomElwin Sharvill RENEWAL
Adams E MorascaBrazilAsiya Javayant NEW
Ivar L RoysterBrazilAnna Fali NEGOTIATION
Chavez I KolmetzBrazilIvan Magalhaes UNQUALIFIED
Sinclair P AmigonIndiaIoni Bowcher NEGOTIATION
Jones N MarrierArgentinaStephen Shaw QUALIFIED
Aditya U WaycottJapanIvan Magalhaes PROPOSAL
Ashley C DarakjyArgentinaAsiya Javayant NEW
Alejandro Z InouyeIndiaStephen Shaw NEW
Francesco A WieserUnited KingdomAnna Fali NEGOTIATION
Darci N SaylorsItalyXuxue Feng PROPOSAL
Misaki I DoeJapanStephen Shaw PROPOSAL
Misaki S ButtSpainAmy Elsner NEW
Ivar X DilliardArgentinaStephen Shaw NEGOTIATION
Faith W AmigonGermanyBernardo Dominic RENEWAL
Faith N FollerIndiaOnyama Limba NEW
Sinclair C GarufiItalyAmy Elsner UNQUALIFIED
Smith X GarufiCanadaAnna Fali PROPOSAL
Mayumi L DarakjyRussiaAsiya Javayant PROPOSAL
Munro D WhobreyItalyAnna Fali NEW
Misaki J NickaRussiaOnyama Limba PROPOSAL
Isabel N FlosiSpainAsiya Javayant QUALIFIED
Mayumi C ShinkoJapanXuxue Feng PROPOSAL
Maria Z NestleFranceXuxue Feng UNQUALIFIED
Deepesh C KuskoIndiaAsiya Javayant NEGOTIATION
Adams S FlosiBrazilAnna Fali NEGOTIATION
Frozen Columns
Name
Leon F Inouye
Leon K Garufi
Leja K Ruta
Rodrigues L Nicka
Darci A Malet
David C Malet
Antonio T Marrier
Alejandro R Shinko
Aika O Bowley
Faith D Caudy
Claire X Ruta
Faith I Schemmer
Nicolas U Kusko
Leon D Wieser
Johnson W Inouye
Morrow J Dilliard
Izzy V Maclead
Kaitlin Q Paprocki
Sinclair E Shinko
Chavez G Caldarera
Misaki I Sergi
Claire V Figeroa
Emily L Ferencz
Stacey H Iturbide
Misaki L Nicka
Costa Q Dilliard
Aruna A Rulapaugh
Maisha Z Vocelka
James Z Inouye
Ashley I Bowley
Jones D Royster
Claire T Perin
Rodrigues M Iturbide
Leja T Rulapaugh
Kadeem Y Kolmetz
Wickens H Gillian
Mayumi U Poquette
Jeanfrancois P Ferencz
Darci O Stockham
Misaki H Paprocki
James E Sergi
Mayumi E Maclead
Aruna U Briddick
Aditya F Glick
Maisha J Darakjy
Sinclair T Foller
Morrow V Whobrey
Juan R Garufi
Morrow A Vocelka
Aditya T Caldarera
IdCountryDate
1000India2026-08-13
1001Italy2026-08-08
1002Japan2026-08-07
1003Argentina2026-07-20
1004France2026-08-18
1005India2026-08-06
1006France2026-08-13
1007Brazil2026-08-08
1008United Kingdom2026-07-26
1009United Kingdom2026-08-14
1010France2026-07-31
1011United Kingdom2026-07-30
1012Italy2026-07-25
1013Brazil2026-08-10
1014Japan2026-08-16
1015Australia2026-08-09
1016France2026-08-05
1017India2026-08-05
1018Germany2026-07-21
1019Spain2026-08-13
1020Italy2026-07-27
1021Italy2026-07-25
1022Spain2026-07-28
1023Australia2026-07-20
1024Italy2026-08-13
1025Spain2026-07-20
1026Brazil2026-07-28
1027India2026-07-29
1028Brazil2026-08-07
1029Italy2026-07-31
1030Japan2026-08-15
1031United Kingdom2026-07-28
1032Spain2026-07-27
1033Spain2026-08-05
1034Italy2026-08-07
1035Spain2026-08-16
1036Brazil2026-07-26
1037India2026-08-04
1038France2026-07-26
1039Australia2026-08-14
1040India2026-08-07
1041Australia2026-07-31
1042Brazil2026-08-18
1043France2026-08-18
1044Italy2026-08-05
1045Canada2026-08-01
1046Spain2026-08-13
1047Spain2026-08-13
1048Canada2026-08-05
1049Spain2026-08-09

On-Demand Data

NameIdCountryDate
Chavez V Stockham1000Spain2026-07-21
Faith H Caldarera1001Canada2026-08-18
Mujtaba H Briddick1002Russia2026-08-07
David P Briddick1003Japan2026-08-14
Morrow L Briddick1004India2026-07-30
Francesco P Paprocki1005Argentina2026-08-17
Sinclair Y Waycott1006Australia2026-07-24
Antonio H Albares1007Australia2026-07-21
Mayumi T Albares1008Argentina2026-08-15
Morrow Q Ostrosky1009United Kingdom2026-07-23
Jennifer D Butt1010Germany2026-07-23
Ivar T Gaucho1011United Kingdom2026-08-04
Ashley A Wieser1012Germany2026-07-22
Leja U Gaucho1013France2026-08-14
Chavez C Slusarski1014Spain2026-07-23
Ashley B Gaucho1015France2026-08-02
Faith S Butt1016India2026-08-17
Nicolas C Perin1017Argentina2026-07-24
Maria L Nestle1018Italy2026-07-27
Jefferson G Albares1019Australia2026-07-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan K VocelkaBrazilAnna Fali QUALIFIED
Ashley E StensethCanadaIvan Magalhaes PROPOSAL
Aditya P VocelkaJapanElwin Sharvill UNQUALIFIED
Ricardo V WaycottGermanyIoni Bowcher NEGOTIATION
Costa P MorascaJapanAnna Fali NEGOTIATION
Izzy O FollerItalyIvan Magalhaes UNQUALIFIED
Kaitlin C DoeIndiaAmy Elsner RENEWAL
Antonio Z RimArgentinaElwin Sharvill NEGOTIATION
Sinclair L WieserIndiaStephen Shaw NEGOTIATION
Rodrigues L KuskoIndiaOnyama Limba NEW
Ashley B KolmetzRussiaElwin Sharvill NEW
Silvio Z TollnerRussiaOnyama Limba NEGOTIATION
Murillo P TollnerRussiaStephen Shaw PROPOSAL
Maria G SlusarskiSpainAmy Elsner QUALIFIED
Ashley W PaprockiArgentinaAmy Elsner QUALIFIED
Faith B WieserSpainIoni Bowcher NEW
Aditya F CaldareraAustraliaBernardo Dominic RENEWAL
Isabel X BologniaRussiaIoni Bowcher QUALIFIED
Silvio P BriddickIndiaBernardo Dominic RENEWAL
Adams O TollnerGermanyIvan Magalhaes RENEWAL
Morrow E KuskoCanadaAnna Fali PROPOSAL
Alejandro S FollerRussiaIoni Bowcher NEW
Jennifer Y SergiRussiaAmy Elsner QUALIFIED
Stacey U BriddickRussiaElwin Sharvill RENEWAL
James K BowleyFranceElwin Sharvill PROPOSAL
Leon S ChuiArgentinaIvan Magalhaes UNQUALIFIED
Silvio H BriddickItalyOnyama Limba RENEWAL
Deepesh I NestleArgentinaXuxue Feng NEW
Maisha S WieserItalyAnna Fali NEGOTIATION
Faith J BowleyArgentinaAnna Fali QUALIFIED
Deepesh R IturbideItalyIoni Bowcher NEGOTIATION
Maisha A BowleyCanadaStephen Shaw NEGOTIATION
Aditya E SchemmerArgentinaIvan Magalhaes RENEWAL
Antonio O BowleyFranceIoni Bowcher UNQUALIFIED
Chavez V SergiArgentinaAsiya Javayant QUALIFIED
Kadeem A MacleadAustraliaAsiya Javayant NEGOTIATION
Ricardo O DilliardJapanAnna Fali NEGOTIATION
Jennifer M DarakjyBrazilBernardo Dominic UNQUALIFIED
Jones D MarrierArgentinaIoni Bowcher UNQUALIFIED
Jones W FigeroaItalyAnna Fali 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>