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
Isabel P WieserAustraliaAmy Elsner NEGOTIATION
Greenwood M AlbaresBrazilXuxue Feng RENEWAL
Rodrigues E MacleadGermanyBernardo Dominic UNQUALIFIED
Adams M CampainJapanIoni Bowcher QUALIFIED
Costa I FlosiFranceAnna Fali QUALIFIED
Ivar T GauchoFranceOnyama Limba QUALIFIED
Tony X InouyeBrazilIoni Bowcher NEW
Claire B BologniaBrazilIoni Bowcher QUALIFIED
Antonio E TollnerIndiaAsiya Javayant RENEWAL
Isabel T PaprockiFranceStephen Shaw RENEWAL
Ricardo N StensethBrazilIvan Magalhaes NEGOTIATION
Chavez X DoeGermanyXuxue Feng QUALIFIED
Maisha W MacleadSpainIoni Bowcher QUALIFIED
Cody F InouyeAustraliaXuxue Feng NEW
Murillo B ButtBrazilStephen Shaw PROPOSAL
Jones R VocelkaBrazilOnyama Limba PROPOSAL
Cody A SergiJapanElwin Sharvill NEGOTIATION
Izzy J ButtJapanAnna Fali QUALIFIED
Aika H GauchoRussiaAsiya Javayant PROPOSAL
Ashley B SchemmerIndiaIvan Magalhaes NEW
Silvio Z KuskoFranceStephen Shaw UNQUALIFIED
Antonio H OstroskyFranceOnyama Limba NEGOTIATION
Silvio E GillianSpainIoni Bowcher RENEWAL
Leja Y VocelkaCanadaStephen Shaw QUALIFIED
Aruna C KuskoJapanOnyama Limba NEGOTIATION
Kadeem M IturbideGermanyAmy Elsner NEGOTIATION
Darci R RoysterBrazilAsiya Javayant NEW
Silvio H NestleGermanyIoni Bowcher RENEWAL
Jeanfrancois R SchemmerCanadaIoni Bowcher UNQUALIFIED
Francesco Z BowleyFranceElwin Sharvill NEGOTIATION
Munro G CaudyArgentinaAnna Fali RENEWAL
Ashley V GlickJapanIoni Bowcher PROPOSAL
Wickens Y GarufiRussiaBernardo Dominic PROPOSAL
Nicolas L SchemmerGermanyIoni Bowcher QUALIFIED
Jones F CampainItalyIvan Magalhaes NEGOTIATION
Alejandro L AlbaresSpainStephen Shaw PROPOSAL
Johnson I VenereGermanyBernardo Dominic UNQUALIFIED
Cody C InouyeRussiaAnna Fali RENEWAL
Octavia J OldroydUnited KingdomBernardo Dominic QUALIFIED
Salvatore W RutaArgentinaStephen Shaw NEW
Antonio F PerinIndiaAmy Elsner UNQUALIFIED
Greenwood X TollnerUnited KingdomAmy Elsner PROPOSAL
Morrow D SaylorsItalyElwin Sharvill PROPOSAL
Antonio I PerinUnited KingdomElwin Sharvill NEW
Maria S KolmetzIndiaStephen Shaw UNQUALIFIED
Rodrigues X PaprockiRussiaStephen Shaw PROPOSAL
Munro P VocelkaSpainOnyama Limba QUALIFIED
Costa U DilliardAustraliaIvan Magalhaes QUALIFIED
Francesco M SchemmerJapanBernardo Dominic NEW
Faith R MarrierJapanBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Ricardo Z ShinkoJapanAmy Elsner QUALIFIED
Jefferson N PaprockiItalyXuxue Feng QUALIFIED
Aruna Y OstroskySpainAnna Fali UNQUALIFIED
Arvin E AlbaresJapanAnna Fali QUALIFIED
Adams M FerenczArgentinaBernardo Dominic UNQUALIFIED
Leon E MaletBrazilIvan Magalhaes PROPOSAL
Jefferson P GillianCanadaAnna Fali UNQUALIFIED
Arvin W RutaGermanyAnna Fali RENEWAL
Faith K GauchoSpainXuxue Feng NEGOTIATION
Misaki K DarakjyFranceStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio Y RutaJapan2026-07-14Chemel, James L Cpa RENEWAL84Onyama Limba
1001Aika U AlbaresRussia2026-07-10Feiner Bros UNQUALIFIED33Asiya Javayant
1002Wickens R MacleadAustralia2026-07-09Dorl, James J Esq NEW68Asiya Javayant
1003Cody R RutaItaly2026-07-25Buckley Miller Wright PROPOSAL8Bernardo Dominic
1004Greenwood Z FlosiFrance2026-07-04Feltz Printing Service QUALIFIED18Anna Fali
1005Maria Z WieserItaly2026-07-13Truhlar And Truhlar Attys NEW48Elwin Sharvill
1006Tony Q NestleSpain2026-07-14Chemel, James L Cpa PROPOSAL65Elwin Sharvill
1007Kadeem L OldroydItaly2026-07-20Morlong Associates RENEWAL24Xuxue Feng
1008Faith K PaprockiBrazil2026-07-10Rousseaux, Michael Esq NEGOTIATION62Ioni Bowcher
1009Claire I MorascaUnited Kingdom2026-07-26Rangoni Of Florence NEGOTIATION42Onyama Limba
1010Aika V AmigonFrance2026-07-05Chemel, James L Cpa RENEWAL64Stephen Shaw
1011Clifford L RutaUnited Kingdom2026-06-28Dorl, James J Esq UNQUALIFIED25Anna Fali
1012Jennifer U MorascaUnited Kingdom2026-07-01Rousseaux, Michael Esq PROPOSAL46Anna Fali
1013Silvio E DoeBrazil2026-07-09Morlong Associates NEGOTIATION14Xuxue Feng
1014Maria X NickaJapan2026-07-17Commercial Press QUALIFIED96Elwin Sharvill
1015Silvio S SergiCanada2026-06-28Chanay, Jeffrey A Esq NEGOTIATION59Onyama Limba
1016Tony L PaprockiFrance2026-07-10Dorl, James J Esq UNQUALIFIED69Bernardo Dominic
1017Emily A FerenczRussia2026-07-23Morlong Associates NEW0Stephen Shaw
1018Smith Z InouyeItaly2026-07-21Dorl, James J Esq QUALIFIED0Asiya Javayant
1019Munro S CaldareraUnited Kingdom2026-07-12Rangoni Of Florence NEGOTIATION54Ivan Magalhaes
1020Francesco N CampainRussia2026-07-04Feltz Printing Service QUALIFIED51Ioni Bowcher
1021Munro T GauchoAustralia2026-07-06Dorl, James J Esq PROPOSAL12Bernardo Dominic
1022Nicolas B AlbaresSpain2026-07-18Dorl, James J Esq RENEWAL28Anna Fali
1023Leja I PaprockiItaly2026-07-02Chanay, Jeffrey A Esq NEGOTIATION33Elwin Sharvill
1024Julie L MaletCanada2026-07-08Feltz Printing Service RENEWAL1Asiya Javayant
1025Darci Y WhobreyGermany2026-07-23Rousseaux, Michael Esq PROPOSAL44Xuxue Feng
1026Leon K StensethIndia2026-07-13Chemel, James L Cpa QUALIFIED65Asiya Javayant
1027Maria K MaletGermany2026-07-01Dorl, James J Esq QUALIFIED53Bernardo Dominic
1028Costa E StensethBrazil2026-07-10Morlong Associates UNQUALIFIED38Ivan Magalhaes
1029Arvin V BowleySpain2026-07-24Feiner Bros NEGOTIATION53Xuxue Feng
1030Aruna Q RimIndia2026-07-11Chapman, Ross E Esq UNQUALIFIED96Elwin Sharvill
1031Clifford V GlickIndia2026-07-13Buckley Miller Wright NEGOTIATION86Bernardo Dominic
1032Silvio Y BriddickItaly2026-07-25Chemel, James L Cpa NEGOTIATION13Stephen Shaw
1033James Q StockhamRussia2026-07-08Chanay, Jeffrey A Esq PROPOSAL20Asiya Javayant
1034Octavia F FlosiBrazil2026-07-04Dorl, James J Esq PROPOSAL94Stephen Shaw
1035Arvin W PaprockiCanada2026-07-22Feltz Printing Service QUALIFIED63Ivan Magalhaes
1036Octavia W StensethIndia2026-07-04Rousseaux, Michael Esq RENEWAL43Amy Elsner
1037Leja R CaudySpain2026-07-12Dorl, James J Esq RENEWAL27Asiya Javayant
1038Silvio S KolmetzFrance2026-07-19Benton, John B Jr RENEWAL9Amy Elsner
1039Juan W MaletAustralia2026-07-16Dorl, James J Esq UNQUALIFIED65Ioni Bowcher
1040Leja T MorascaIndia2026-07-05Chanay, Jeffrey A Esq NEW49Asiya Javayant
1041Aruna M MaletArgentina2026-07-27Buckley Miller Wright NEGOTIATION22Asiya Javayant
1042Costa Z CaldareraFrance2026-07-25Commercial Press UNQUALIFIED45Asiya Javayant
1043Deepesh L StockhamRussia2026-07-07Printing Dimensions NEGOTIATION70Bernardo Dominic
1044Antonio B ButtIndia2026-07-19Feiner Bros NEGOTIATION18Anna Fali
1045Aika U RulapaughAustralia2026-07-22Commercial Press NEW18Anna Fali
1046Murillo H NickaRussia2026-07-10Printing Dimensions RENEWAL41Anna Fali
1047Wickens T MorascaArgentina2026-07-17Printing Dimensions RENEWAL95Xuxue Feng
1048Mayumi J SchemmerRussia2026-07-05Chemel, James L Cpa RENEWAL41Bernardo Dominic
1049Aika S AlbaresGermany2026-07-14Benton, John B Jr QUALIFIED96Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Arvin S CaudyUnited KingdomIoni Bowcher PROPOSAL
Silvio N DarakjyItalyBernardo Dominic PROPOSAL
Silvio B StensethJapanOnyama Limba RENEWAL
Sinclair C CaldareraArgentinaOnyama Limba RENEWAL
Julie L IturbideSpainXuxue Feng NEW
Murillo H SchemmerRussiaAnna Fali PROPOSAL
Aika Z MaletJapanOnyama Limba RENEWAL
Izzy T AlbaresSpainElwin Sharvill PROPOSAL
Izzy L WhobreyUnited KingdomAmy Elsner RENEWAL
Maria E VenereAustraliaOnyama Limba PROPOSAL
Juan N PerinIndiaAsiya Javayant QUALIFIED
Emily X PoquetteBrazilOnyama Limba NEW
Morrow C FlosiUnited KingdomAnna Fali RENEWAL
Jeanfrancois L StockhamAustraliaOnyama Limba QUALIFIED
Antonio Y SchemmerFranceAnna Fali PROPOSAL
Isabel G NickaGermanyOnyama Limba QUALIFIED
Emily J ButtItalyOnyama Limba UNQUALIFIED
Chavez L FlosiSpainStephen Shaw NEGOTIATION
Ricardo G DoeArgentinaXuxue Feng QUALIFIED
Francesco M CaudyCanadaAsiya Javayant NEGOTIATION
Chavez X WaycottArgentinaBernardo Dominic NEW
Ricardo C RimJapanStephen Shaw QUALIFIED
Silvio B CaldareraUnited KingdomIvan Magalhaes NEGOTIATION
Misaki C FollerBrazilAmy Elsner PROPOSAL
Aika J CaldareraBrazilElwin Sharvill UNQUALIFIED
Jones I GlickRussiaXuxue Feng RENEWAL
Jefferson B WhobreyItalyElwin Sharvill NEGOTIATION
Leja N MaletGermanyBernardo Dominic NEGOTIATION
Maisha H RimRussiaIvan Magalhaes NEGOTIATION
Isabel E RulapaughAustraliaOnyama Limba UNQUALIFIED
Arvin U PoquetteUnited KingdomAsiya Javayant QUALIFIED
Alejandro K VocelkaFranceXuxue Feng PROPOSAL
Adams W FollerItalyBernardo Dominic NEW
Johnson Z TollnerBrazilAmy Elsner RENEWAL
Juan D PoquetteItalyAsiya Javayant RENEWAL
Aika D AmigonFranceStephen Shaw QUALIFIED
Sinclair N VenereItalyBernardo Dominic UNQUALIFIED
Mayumi J WhobreyBrazilStephen Shaw RENEWAL
Kaitlin M KolmetzRussiaOnyama Limba NEGOTIATION
Ivar X CaudyAustraliaBernardo Dominic UNQUALIFIED
Stacey Q DoeUnited KingdomXuxue Feng PROPOSAL
Munro X CaudyUnited KingdomIvan Magalhaes RENEWAL
Juan N FigeroaAustraliaElwin Sharvill NEGOTIATION
Ashley X VocelkaIndiaIoni Bowcher NEGOTIATION
Juan W SlusarskiItalyStephen Shaw NEW
James U PoquetteRussiaAsiya Javayant PROPOSAL
Munro Q NickaArgentinaIoni Bowcher QUALIFIED
Aruna H DoeItalyIvan Magalhaes NEW
Juan I BriddickJapanBernardo Dominic RENEWAL
Salvatore X WaycottGermanyAmy Elsner NEW
Frozen Columns
Name
Aruna F Ferencz
Francesco Z Wieser
Faith P Ostrosky
Johnson E Schemmer
Rodrigues W Venere
Juan H Campain
Leon V Tollner
Ricardo P Malet
Adams I Vocelka
Nicolas H Shinko
Faith Y Malet
Silvio L Bowley
Misaki V Malet
Emily V Vocelka
Clifford Y Whobrey
Jefferson U Marrier
Clifford E Schemmer
Aruna K Malet
Deepesh B Caldarera
Maisha Q Kusko
Aruna K Waycott
Juan D Stockham
Aruna G Gaucho
Morrow C Ostrosky
Arvin Q Paprocki
Juan A Vocelka
Morrow B Briddick
Deepesh U Royster
Wickens H Amigon
Aruna I Venere
Greenwood Z Caudy
Salvatore I Rulapaugh
Mayumi K Perin
Tony I Paprocki
Silvio M Whobrey
Ivar P Vocelka
Mayumi U Kusko
Jones Z Bolognia
Rodrigues U Stenseth
Chavez M Figeroa
Jennifer L Flosi
Adams A Garufi
Isabel D Darakjy
Mayumi B Ferencz
Tony E Figeroa
Darci O Venere
Cody Z Royster
Ricardo R Caldarera
Murillo I Rulapaugh
Ricardo T Amigon
IdCountryDate
1000Brazil2026-07-24
1001Brazil2026-07-09
1002India2026-07-21
1003Italy2026-07-18
1004Japan2026-07-22
1005France2026-07-20
1006Italy2026-07-15
1007Argentina2026-07-08
1008Japan2026-07-15
1009Brazil2026-07-10
1010Argentina2026-07-11
1011Argentina2026-07-14
1012Brazil2026-07-20
1013Italy2026-07-27
1014Germany2026-07-16
1015Spain2026-07-15
1016Spain2026-07-05
1017Spain2026-06-29
1018Japan2026-07-23
1019Germany2026-07-17
1020France2026-07-20
1021Argentina2026-07-06
1022Canada2026-07-03
1023Brazil2026-06-28
1024United Kingdom2026-07-22
1025United Kingdom2026-07-12
1026Canada2026-07-16
1027United Kingdom2026-07-17
1028Australia2026-07-02
1029Brazil2026-07-02
1030Japan2026-06-28
1031India2026-07-03
1032Russia2026-07-09
1033India2026-07-21
1034Australia2026-07-03
1035United Kingdom2026-07-20
1036Australia2026-06-30
1037Russia2026-07-05
1038India2026-07-12
1039Germany2026-07-26
1040Australia2026-07-13
1041Germany2026-07-09
1042Canada2026-07-05
1043Germany2026-07-04
1044Australia2026-07-14
1045Canada2026-07-05
1046Italy2026-07-16
1047Italy2026-07-12
1048Italy2026-07-11
1049Germany2026-07-24

On-Demand Data

NameIdCountryDate
Isabel F Kusko1000Spain2026-07-21
Morrow N Perin1001India2026-07-12
Clifford D Glick1002Spain2026-07-13
Antonio S Bolognia1003France2026-07-03
Nicolas X Doe1004France2026-07-26
Leon T Caldarera1005Canada2026-06-29
Emily Z Perin1006Argentina2026-07-04
Juan T Kusko1007Japan2026-07-23
Kaitlin E Stenseth1008Canada2026-07-21
Ashley G Marrier1009Germany2026-07-04
Alejandro E Glick1010Russia2026-06-29
Aditya Z Caldarera1011Spain2026-07-11
Francesco P Kusko1012Brazil2026-07-23
Deepesh Z Oldroyd1013India2026-07-10
Misaki K Morasca1014Russia2026-07-10
Kadeem O Whobrey1015Brazil2026-07-03
Costa N Caldarera1016Italy2026-07-20
Smith R Iturbide1017France2026-07-20
Kadeem J Vocelka1018Argentina2026-07-20
Mayumi Y Dilliard1019Japan2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones B RutaArgentinaIoni Bowcher PROPOSAL
Izzy B SergiIndiaOnyama Limba NEW
Jennifer I MorascaIndiaIoni Bowcher UNQUALIFIED
Tony J RimArgentinaOnyama Limba NEW
Greenwood W OstroskyAustraliaAsiya Javayant PROPOSAL
Mujtaba A TollnerItalyIvan Magalhaes NEGOTIATION
Darci B BriddickSpainIvan Magalhaes UNQUALIFIED
Clifford Z MaletFranceOnyama Limba NEGOTIATION
Murillo U GillianJapanAnna Fali NEGOTIATION
Ricardo W MacleadArgentinaAmy Elsner UNQUALIFIED
Mayumi H CaldareraAustraliaOnyama Limba PROPOSAL
Maisha F GauchoItalyXuxue Feng UNQUALIFIED
Costa T InouyeIndiaAmy Elsner NEGOTIATION
Nicolas G VocelkaJapanOnyama Limba NEGOTIATION
Ivar W RulapaughSpainStephen Shaw PROPOSAL
Leon I OstroskyIndiaAnna Fali RENEWAL
Silvio B OstroskyFranceIoni Bowcher PROPOSAL
Smith S CampainFranceElwin Sharvill PROPOSAL
Izzy R BriddickIndiaAnna Fali UNQUALIFIED
Kaitlin A SchemmerAustraliaOnyama Limba NEW
Ivar K RimUnited KingdomIoni Bowcher QUALIFIED
Claire N RulapaughArgentinaIvan Magalhaes NEW
Deepesh S SchemmerCanadaAmy Elsner RENEWAL
Jefferson N RulapaughArgentinaAmy Elsner QUALIFIED
Rodrigues A SaylorsFranceStephen Shaw QUALIFIED
Morrow Q MaletSpainXuxue Feng PROPOSAL
Cody A MaletGermanyAsiya Javayant NEGOTIATION
Costa M RulapaughSpainXuxue Feng NEW
Rodrigues Z CampainIndiaIoni Bowcher UNQUALIFIED
Deepesh H DoeBrazilIoni Bowcher UNQUALIFIED
Kadeem R CaudyRussiaAnna Fali RENEWAL
Emily I StockhamItalyAsiya Javayant UNQUALIFIED
Leon Z CaldareraFranceIvan Magalhaes RENEWAL
Tony A OldroydJapanXuxue Feng RENEWAL
Aika S RoysterIndiaStephen Shaw QUALIFIED
Isabel G CaldareraCanadaAnna Fali PROPOSAL
Maria R BriddickSpainAnna Fali UNQUALIFIED
Octavia B MarrierAustraliaElwin Sharvill QUALIFIED
Rodrigues C IturbideFranceBernardo Dominic RENEWAL
Silvio E WhobreyUnited KingdomAnna Fali PROPOSAL

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