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
Kadeem O FlosiFranceIoni Bowcher NEGOTIATION
Faith G RutaCanadaElwin Sharvill QUALIFIED
Octavia K WieserBrazilBernardo Dominic QUALIFIED
Stacey F WieserGermanyIoni Bowcher QUALIFIED
Deepesh J RimSpainIoni Bowcher QUALIFIED
Greenwood V CampainCanadaIvan Magalhaes UNQUALIFIED
Adams C ChuiRussiaAmy Elsner QUALIFIED
Stacey T ChuiFranceOnyama Limba UNQUALIFIED
Julie V RulapaughCanadaStephen Shaw QUALIFIED
Mujtaba J MaletJapanBernardo Dominic RENEWAL
Mayumi T BologniaAustraliaAsiya Javayant RENEWAL
Antonio B OstroskyBrazilAsiya Javayant RENEWAL
Ashley S VenereBrazilAnna Fali RENEWAL
Adams D FollerItalyOnyama Limba QUALIFIED
Misaki S BowleyRussiaOnyama Limba NEGOTIATION
Jefferson N CaudyCanadaElwin Sharvill PROPOSAL
Cody P PoquetteCanadaStephen Shaw PROPOSAL
Ricardo U DarakjyFranceOnyama Limba PROPOSAL
Alejandro W MaletAustraliaElwin Sharvill UNQUALIFIED
Jefferson B BologniaSpainAnna Fali UNQUALIFIED
Rodrigues J BowleyGermanyIoni Bowcher UNQUALIFIED
Aruna N DoeJapanElwin Sharvill UNQUALIFIED
Maria T MacleadJapanAsiya Javayant QUALIFIED
Smith D VocelkaIndiaOnyama Limba RENEWAL
Isabel O NickaGermanyAsiya Javayant QUALIFIED
Arvin U FigeroaArgentinaStephen Shaw NEW
Greenwood F MaletJapanAsiya Javayant PROPOSAL
Julie P DoeFranceOnyama Limba RENEWAL
Johnson Q SlusarskiSpainElwin Sharvill NEGOTIATION
Tony L GarufiFranceStephen Shaw UNQUALIFIED
James P FlosiArgentinaElwin Sharvill PROPOSAL
Jones P RoysterBrazilBernardo Dominic NEW
Salvatore M TollnerCanadaStephen Shaw NEGOTIATION
Adams Q FigeroaFranceXuxue Feng NEGOTIATION
Emily S PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Ashley V PerinBrazilBernardo Dominic NEW
Mujtaba C RutaItalyAnna Fali QUALIFIED
Leon S VenereBrazilAnna Fali QUALIFIED
Munro Z InouyeJapanAnna Fali UNQUALIFIED
Antonio S PoquetteCanadaIoni Bowcher NEW
Cody N AmigonCanadaIvan Magalhaes PROPOSAL
Maisha G OldroydBrazilOnyama Limba NEW
Kadeem E PerinItalyIvan Magalhaes NEW
Misaki N MarrierIndiaElwin Sharvill NEW
Murillo S KolmetzItalyIoni Bowcher NEGOTIATION
Clifford Z DilliardIndiaOnyama Limba NEGOTIATION
Isabel X WaycottJapanAsiya Javayant QUALIFIED
Ricardo J PaprockiFranceIvan Magalhaes PROPOSAL
Cody D CaldareraRussiaAsiya Javayant NEGOTIATION
Juan W TollnerBrazilXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois P GillianSpainAnna Fali NEW
Salvatore W MorascaIndiaBernardo Dominic NEGOTIATION
Chavez S GauchoGermanyOnyama Limba NEGOTIATION
Maria K DilliardIndiaAnna Fali NEW
Salvatore T DilliardItalyAmy Elsner QUALIFIED
Juan D GauchoUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer U FigeroaItalyStephen Shaw NEGOTIATION
Jeanfrancois N WhobreyFranceStephen Shaw NEGOTIATION
Stacey P RoysterAustraliaIvan Magalhaes PROPOSAL
Munro K SlusarskiItalyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio A InouyeBrazil2026-07-27Benton, John B Jr RENEWAL31Anna Fali
1001Greenwood A DoeBrazil2026-08-15Truhlar And Truhlar Attys NEGOTIATION11Ioni Bowcher
1002Adams L BologniaSpain2026-08-19Chapman, Ross E Esq RENEWAL88Bernardo Dominic
1003Aruna K GillianSpain2026-08-05Feltz Printing Service UNQUALIFIED25Stephen Shaw
1004Misaki S RimSpain2026-08-16Commercial Press NEW64Amy Elsner
1005Octavia N MaletSpain2026-08-11Buckley Miller Wright PROPOSAL37Xuxue Feng
1006Clifford T MaletJapan2026-08-10Rangoni Of Florence RENEWAL52Bernardo Dominic
1007Maisha C CampainBrazil2026-07-23Commercial Press RENEWAL82Ivan Magalhaes
1008Morrow T KuskoItaly2026-07-31Rousseaux, Michael Esq UNQUALIFIED54Elwin Sharvill
1009Clifford Y AlbaresFrance2026-08-18Rousseaux, Michael Esq UNQUALIFIED68Asiya Javayant
1010Salvatore J GillianUnited Kingdom2026-07-31Benton, John B Jr NEGOTIATION26Ioni Bowcher
1011Morrow H SaylorsUnited Kingdom2026-08-13Chemel, James L Cpa QUALIFIED40Ivan Magalhaes
1012Emily I FollerAustralia2026-08-16Chemel, James L Cpa QUALIFIED15Xuxue Feng
1013Ricardo Z ChuiRussia2026-08-08Rangoni Of Florence RENEWAL69Ioni Bowcher
1014Murillo M RoysterRussia2026-08-19Feltz Printing Service PROPOSAL28Asiya Javayant
1015David Z CaldareraBrazil2026-08-03Dorl, James J Esq NEW11Amy Elsner
1016Aika G VocelkaCanada2026-08-05Buckley Miller Wright NEW61Ivan Magalhaes
1017Deepesh R MacleadAustralia2026-07-28Rousseaux, Michael Esq UNQUALIFIED35Asiya Javayant
1018Salvatore N CampainBrazil2026-08-19Rangoni Of Florence QUALIFIED32Xuxue Feng
1019Jennifer E NickaJapan2026-08-02King, Christopher A Esq NEGOTIATION45Xuxue Feng
1020Juan X GarufiIndia2026-08-11Feiner Bros NEGOTIATION12Stephen Shaw
1021Maria U InouyeUnited Kingdom2026-08-06Chapman, Ross E Esq RENEWAL99Stephen Shaw
1022Emily C CaudyCanada2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED9Stephen Shaw
1023Morrow K MacleadItaly2026-08-10Truhlar And Truhlar Attys UNQUALIFIED44Onyama Limba
1024Silvio Y StensethSpain2026-08-11Rangoni Of Florence RENEWAL29Onyama Limba
1025Greenwood Q VocelkaItaly2026-07-24Morlong Associates NEW77Xuxue Feng
1026Julie Z MaletRussia2026-08-10Morlong Associates NEGOTIATION9Xuxue Feng
1027Kaitlin K SaylorsSpain2026-08-03Feiner Bros NEW82Asiya Javayant
1028Aruna C ShinkoRussia2026-08-04Truhlar And Truhlar Attys NEGOTIATION92Bernardo Dominic
1029Smith Q NickaItaly2026-08-07Rangoni Of Florence PROPOSAL75Ivan Magalhaes
1030Alejandro O FlosiRussia2026-08-14Printing Dimensions NEGOTIATION89Anna Fali
1031Aruna B GarufiJapan2026-07-26Buckley Miller Wright QUALIFIED36Amy Elsner
1032Salvatore G PoquetteRussia2026-08-10Printing Dimensions NEGOTIATION65Onyama Limba
1033Munro G GlickArgentina2026-07-31Morlong Associates NEGOTIATION73Elwin Sharvill
1034Greenwood C DoeAustralia2026-08-06Feiner Bros NEGOTIATION36Asiya Javayant
1035Jennifer Q ButtUnited Kingdom2026-08-01Printing Dimensions QUALIFIED18Xuxue Feng
1036Cody Z MaletArgentina2026-08-08Feltz Printing Service QUALIFIED37Onyama Limba
1037Aditya L GillianIndia2026-07-25Truhlar And Truhlar Attys UNQUALIFIED12Xuxue Feng
1038Murillo W FollerRussia2026-08-20Chemel, James L Cpa RENEWAL16Asiya Javayant
1039Antonio F VocelkaCanada2026-07-24Feltz Printing Service PROPOSAL65Elwin Sharvill
1040James M VenereCanada2026-08-17Buckley Miller Wright PROPOSAL30Bernardo Dominic
1041Leon X VenereRussia2026-08-09Rangoni Of Florence NEGOTIATION50Xuxue Feng
1042Aika V DarakjyUnited Kingdom2026-07-30King, Christopher A Esq RENEWAL84Onyama Limba
1043Clifford N RulapaughJapan2026-07-27Dorl, James J Esq RENEWAL0Amy Elsner
1044Clifford Q PoquetteBrazil2026-08-17Buckley Miller Wright NEW43Asiya Javayant
1045Jones P PerinCanada2026-08-08Chemel, James L Cpa UNQUALIFIED34Anna Fali
1046Misaki H GarufiBrazil2026-07-29Buckley Miller Wright PROPOSAL11Onyama Limba
1047Jones V WieserIndia2026-08-18Rangoni Of Florence PROPOSAL27Asiya Javayant
1048Murillo I OldroydItaly2026-08-17Dorl, James J Esq NEW88Amy Elsner
1049Misaki U AmigonSpain2026-07-23Chapman, Ross E Esq UNQUALIFIED8Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Costa Q OldroydUnited KingdomBernardo Dominic UNQUALIFIED
Ricardo D IturbideRussiaStephen Shaw PROPOSAL
Mujtaba Z VenereGermanyAsiya Javayant PROPOSAL
Clifford M RulapaughArgentinaOnyama Limba QUALIFIED
Faith H TollnerItalyOnyama Limba PROPOSAL
Juan K GlickItalyIvan Magalhaes PROPOSAL
Leja R GillianAustraliaBernardo Dominic NEW
Aika V GillianUnited KingdomXuxue Feng QUALIFIED
Francesco L MorascaRussiaXuxue Feng QUALIFIED
Kaitlin Q BriddickFranceXuxue Feng UNQUALIFIED
Clifford S KolmetzSpainStephen Shaw QUALIFIED
Francesco Y GauchoUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi H KuskoJapanIoni Bowcher UNQUALIFIED
Smith V MarrierRussiaIoni Bowcher PROPOSAL
Aika Y RoysterRussiaOnyama Limba NEW
Maisha D KuskoSpainAsiya Javayant PROPOSAL
Aika J PerinCanadaStephen Shaw UNQUALIFIED
Salvatore P BriddickUnited KingdomAsiya Javayant PROPOSAL
Ivar Z GarufiFranceElwin Sharvill NEGOTIATION
Munro R FerenczFranceAmy Elsner UNQUALIFIED
Ivar T GlickUnited KingdomElwin Sharvill NEGOTIATION
Maisha C DilliardGermanyBernardo Dominic NEGOTIATION
Emily T PoquetteBrazilOnyama Limba RENEWAL
Greenwood G WaycottCanadaAmy Elsner NEW
Costa D OstroskyIndiaAsiya Javayant NEW
David M MorascaArgentinaAmy Elsner QUALIFIED
Salvatore A FigeroaIndiaAsiya Javayant QUALIFIED
Silvio X RimBrazilElwin Sharvill UNQUALIFIED
Costa G CaudyBrazilXuxue Feng RENEWAL
Misaki V PerinRussiaOnyama Limba QUALIFIED
Stacey W GillianFranceStephen Shaw QUALIFIED
Cody F BowleyRussiaElwin Sharvill NEW
Smith L AlbaresRussiaIvan Magalhaes UNQUALIFIED
Silvio O MaletJapanBernardo Dominic PROPOSAL
Murillo S RoysterArgentinaIoni Bowcher QUALIFIED
Tony F KuskoCanadaStephen Shaw NEW
Aruna C SergiIndiaIvan Magalhaes UNQUALIFIED
Alejandro C MacleadItalyIvan Magalhaes NEGOTIATION
Greenwood Y CaldareraIndiaAnna Fali NEW
Emily S GillianGermanyIoni Bowcher NEW
Greenwood G PoquetteJapanXuxue Feng UNQUALIFIED
Deepesh A FigeroaRussiaAnna Fali NEW
Isabel O SlusarskiAustraliaOnyama Limba NEW
Arvin W FigeroaSpainStephen Shaw NEW
Nicolas V RulapaughItalyIoni Bowcher RENEWAL
Jennifer V InouyeJapanAnna Fali NEW
Kaitlin G PerinFranceBernardo Dominic QUALIFIED
Antonio B FlosiUnited KingdomAmy Elsner UNQUALIFIED
Stacey P AmigonJapanStephen Shaw RENEWAL
Smith C CaldareraIndiaOnyama Limba NEGOTIATION
Frozen Columns
Name
Maria G Caudy
Ivar R Ostrosky
Sinclair B Nestle
Maisha P Flosi
Arvin J Gillian
Mayumi D Albares
Ashley S Amigon
Ivar O Vocelka
Darci E Kolmetz
Mayumi Z Foller
Adams Y Caldarera
Jennifer X Shinko
Juan B Whobrey
Costa A Figeroa
Greenwood H Whobrey
Morrow R Sergi
Smith X Caldarera
Cody L Doe
Deepesh K Inouye
Emily M Waycott
Adams Q Morasca
Murillo I Kusko
Jones V Figeroa
Jeanfrancois U Doe
Emily K Dilliard
James E Venere
Johnson Q Malet
Aditya Q Tollner
Leja F Malet
Jones R Stenseth
David P Wieser
Salvatore Q Campain
Jeanfrancois U Darakjy
Jefferson F Caldarera
Maria X Whobrey
Leja W Maclead
Morrow O Morasca
Clifford G Dilliard
Wickens A Marrier
Greenwood H Shinko
Chavez L Shinko
Aditya T Marrier
Claire H Chui
Clifford R Nicka
Wickens L Waycott
Jones P Stockham
Aruna B Tollner
Nicolas L Iturbide
Adams M Bolognia
Jeanfrancois R Sergi
IdCountryDate
1000Canada2026-08-19
1001Canada2026-08-15
1002France2026-08-16
1003Brazil2026-08-11
1004United Kingdom2026-08-10
1005United Kingdom2026-08-18
1006Australia2026-08-13
1007Italy2026-07-28
1008Italy2026-08-03
1009United Kingdom2026-08-19
1010United Kingdom2026-07-24
1011Australia2026-07-30
1012India2026-08-09
1013Italy2026-08-05
1014France2026-07-26
1015Brazil2026-08-14
1016United Kingdom2026-07-30
1017Argentina2026-08-19
1018Argentina2026-07-26
1019France2026-08-07
1020India2026-07-23
1021France2026-08-10
1022India2026-08-20
1023Spain2026-08-07
1024Japan2026-07-22
1025Australia2026-08-18
1026Spain2026-08-12
1027Brazil2026-07-22
1028Italy2026-08-07
1029Argentina2026-08-01
1030United Kingdom2026-07-30
1031India2026-08-03
1032Germany2026-08-18
1033Spain2026-07-26
1034Japan2026-08-04
1035Germany2026-08-17
1036United Kingdom2026-08-10
1037France2026-08-10
1038Russia2026-08-20
1039Japan2026-08-18
1040United Kingdom2026-08-15
1041India2026-07-30
1042Japan2026-08-13
1043Italy2026-08-03
1044Russia2026-07-29
1045Canada2026-07-22
1046Italy2026-08-08
1047Argentina2026-07-25
1048Russia2026-08-15
1049Spain2026-07-31

On-Demand Data

NameIdCountryDate
Costa X Amigon1000Germany2026-08-13
Kadeem N Butt1001Canada2026-08-18
Chavez F Royster1002Spain2026-08-06
Leja V Figeroa1003Japan2026-08-08
David D Nicka1004Japan2026-08-14
Maisha O Foller1005India2026-07-27
Darci C Saylors1006Japan2026-08-17
Jones J Dilliard1007Germany2026-08-02
Maria N Maclead1008Germany2026-08-13
Ricardo S Iturbide1009Argentina2026-07-29
Julie L Oldroyd1010France2026-08-12
Murillo V Royster1011Italy2026-08-13
Silvio H Inouye1012Canada2026-08-08
Jeanfrancois V Garufi1013Brazil2026-08-18
Clifford E Nestle1014Canada2026-08-01
Antonio E Malet1015Australia2026-07-27
Nicolas K Nestle1016Canada2026-08-07
Claire R Kolmetz1017Australia2026-08-14
Maisha Y Bowley1018Germany2026-08-05
Claire I Iturbide1019United Kingdom2026-08-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson J GillianFranceBernardo Dominic UNQUALIFIED
Faith Q NestleSpainElwin Sharvill NEW
Claire S BowleySpainElwin Sharvill PROPOSAL
Mayumi X RimRussiaElwin Sharvill PROPOSAL
Francesco W RulapaughRussiaBernardo Dominic UNQUALIFIED
Jennifer F SergiBrazilAsiya Javayant NEW
Deepesh G RutaSpainAnna Fali NEW
Maria A GillianUnited KingdomAsiya Javayant NEW
Maria Q MarrierRussiaAnna Fali PROPOSAL
Darci R BologniaGermanyElwin Sharvill NEGOTIATION
Darci F KolmetzItalyAnna Fali QUALIFIED
Emily Q ChuiCanadaIvan Magalhaes NEW
David S CampainItalyIvan Magalhaes NEGOTIATION
David C StensethCanadaElwin Sharvill NEGOTIATION
Murillo T PoquetteRussiaIvan Magalhaes UNQUALIFIED
Juan M VocelkaRussiaXuxue Feng PROPOSAL
Cody H FlosiCanadaElwin Sharvill NEGOTIATION
Tony Q MacleadJapanAnna Fali PROPOSAL
Kadeem H DoeBrazilIvan Magalhaes NEGOTIATION
Arvin O RimIndiaOnyama Limba UNQUALIFIED
Claire K FlosiFranceStephen Shaw PROPOSAL
Antonio Y WhobreyCanadaOnyama Limba PROPOSAL
Ivar I StockhamIndiaElwin Sharvill UNQUALIFIED
Maria O PoquetteFranceXuxue Feng PROPOSAL
Ricardo Z FerenczSpainIvan Magalhaes UNQUALIFIED
Emily D WaycottGermanyAmy Elsner PROPOSAL
Ricardo J DarakjyItalyAnna Fali UNQUALIFIED
Mayumi K PerinBrazilElwin Sharvill QUALIFIED
Munro Y MacleadItalyAsiya Javayant UNQUALIFIED
Jefferson V DoeBrazilXuxue Feng NEGOTIATION
Jennifer K MorascaGermanyOnyama Limba NEW
Rodrigues F CaudyFranceIvan Magalhaes NEGOTIATION
Murillo T BowleyIndiaAnna Fali PROPOSAL
Morrow D PaprockiFranceIvan Magalhaes PROPOSAL
Sinclair U GarufiGermanyStephen Shaw NEGOTIATION
Mayumi U GillianCanadaAsiya Javayant UNQUALIFIED
Deepesh H IturbideJapanAnna Fali NEGOTIATION
Juan D StockhamArgentinaAnna Fali UNQUALIFIED
David V SchemmerGermanyAsiya Javayant QUALIFIED
Kaitlin V KolmetzBrazilStephen Shaw 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>