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
Silvio I GlickJapanIoni Bowcher QUALIFIED
Johnson F MacleadCanadaIvan Magalhaes NEW
Ricardo U VenereSpainIvan Magalhaes QUALIFIED
Ricardo V WhobreyArgentinaXuxue Feng UNQUALIFIED
Aika K OldroydUnited KingdomBernardo Dominic NEGOTIATION
Mayumi H BriddickItalyIoni Bowcher PROPOSAL
Kaitlin B CaldareraArgentinaIoni Bowcher QUALIFIED
David T RoysterCanadaIvan Magalhaes NEW
Emily H NickaRussiaIoni Bowcher RENEWAL
Isabel L RulapaughUnited KingdomAsiya Javayant QUALIFIED
Johnson W GarufiSpainAmy Elsner RENEWAL
James I NestleGermanyAmy Elsner QUALIFIED
Morrow G DoeRussiaXuxue Feng QUALIFIED
Nicolas J MarrierBrazilBernardo Dominic PROPOSAL
Deepesh P WieserCanadaStephen Shaw RENEWAL
Misaki K DilliardUnited KingdomAnna Fali QUALIFIED
James N PerinRussiaStephen Shaw RENEWAL
Aika J VocelkaAustraliaAsiya Javayant QUALIFIED
Rodrigues A MaletItalyOnyama Limba NEW
Silvio W StensethRussiaStephen Shaw PROPOSAL
Juan U NickaRussiaOnyama Limba NEW
Kaitlin T MacleadAustraliaIoni Bowcher NEW
Julie T FlosiCanadaIoni Bowcher NEGOTIATION
Isabel C StockhamRussiaOnyama Limba NEGOTIATION
Johnson I RimBrazilXuxue Feng NEW
Leon F RoysterJapanOnyama Limba QUALIFIED
Morrow Q AlbaresItalyIoni Bowcher NEGOTIATION
Johnson P OstroskyItalyBernardo Dominic PROPOSAL
Leja W FlosiSpainIvan Magalhaes RENEWAL
Sinclair U DoeItalyAsiya Javayant NEGOTIATION
Munro M AlbaresFranceStephen Shaw NEGOTIATION
Greenwood S StensethIndiaIoni Bowcher QUALIFIED
Stacey S PoquetteJapanAnna Fali RENEWAL
Sinclair Z ChuiRussiaBernardo Dominic PROPOSAL
Leja R ButtItalyAsiya Javayant QUALIFIED
Greenwood V CampainAustraliaBernardo Dominic QUALIFIED
David A CaldareraBrazilAnna Fali NEGOTIATION
Deepesh Y OldroydBrazilIoni Bowcher UNQUALIFIED
Silvio G SlusarskiAustraliaIvan Magalhaes NEGOTIATION
Cody T GauchoSpainIoni Bowcher PROPOSAL
Silvio Y CaldareraFranceAmy Elsner RENEWAL
Maisha O StockhamArgentinaAnna Fali QUALIFIED
Kadeem Q ShinkoJapanIvan Magalhaes NEGOTIATION
Nicolas X KuskoGermanyAsiya Javayant NEW
Greenwood R PoquetteCanadaBernardo Dominic QUALIFIED
Munro Z RoysterItalyAmy Elsner UNQUALIFIED
Aruna H GarufiJapanIoni Bowcher NEGOTIATION
Rodrigues T PaprockiItalyAmy Elsner RENEWAL
Arvin R IturbideArgentinaAmy Elsner RENEWAL
Jennifer V InouyeIndiaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aruna R GauchoFranceElwin Sharvill NEW
David P FlosiSpainXuxue Feng NEW
Wickens O RimArgentinaAsiya Javayant QUALIFIED
Kadeem S RoysterBrazilXuxue Feng NEW
Kaitlin X DilliardArgentinaStephen Shaw QUALIFIED
Jones C PaprockiAustraliaStephen Shaw PROPOSAL
Ivar C GillianIndiaStephen Shaw QUALIFIED
Julie K InouyeUnited KingdomAsiya Javayant QUALIFIED
Morrow P NestleIndiaIoni Bowcher QUALIFIED
Deepesh G BologniaRussiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria U SaylorsGermany2026-08-26King, Christopher A Esq NEGOTIATION76Asiya Javayant
1001Misaki O OldroydUnited Kingdom2026-08-13Rousseaux, Michael Esq QUALIFIED9Ioni Bowcher
1002Tony X ButtGermany2026-08-19Rousseaux, Michael Esq UNQUALIFIED9Bernardo Dominic
1003Mayumi U RulapaughRussia2026-08-07Rangoni Of Florence PROPOSAL88Onyama Limba
1004Kaitlin U FerenczBrazil2026-08-05Rousseaux, Michael Esq NEGOTIATION11Amy Elsner
1005Adams M WieserIndia2026-08-24Feltz Printing Service UNQUALIFIED21Asiya Javayant
1006Silvio P SergiAustralia2026-08-22Buckley Miller Wright NEGOTIATION89Asiya Javayant
1007Cody F SaylorsCanada2026-08-24Chemel, James L Cpa NEGOTIATION58Xuxue Feng
1008Ashley I RutaUnited Kingdom2026-08-17Chanay, Jeffrey A Esq PROPOSAL53Ioni Bowcher
1009Maria V GillianJapan2026-08-03Rousseaux, Michael Esq UNQUALIFIED20Anna Fali
1010Sinclair C WieserArgentina2026-08-16Feltz Printing Service QUALIFIED54Asiya Javayant
1011Nicolas W MarrierJapan2026-08-22Chapman, Ross E Esq NEGOTIATION37Xuxue Feng
1012Claire H FollerRussia2026-08-09Commercial Press NEGOTIATION46Elwin Sharvill
1013Izzy V MacleadFrance2026-09-01King, Christopher A Esq RENEWAL62Ivan Magalhaes
1014Munro M MacleadBrazil2026-08-12Buckley Miller Wright NEGOTIATION31Elwin Sharvill
1015Octavia E StensethUnited Kingdom2026-08-09Truhlar And Truhlar Attys PROPOSAL24Onyama Limba
1016Mujtaba D NickaFrance2026-08-29Rangoni Of Florence RENEWAL1Asiya Javayant
1017Darci C KolmetzSpain2026-09-01Commercial Press RENEWAL86Onyama Limba
1018Mujtaba R DarakjyItaly2026-08-15Dorl, James J Esq UNQUALIFIED90Ivan Magalhaes
1019Murillo T CampainCanada2026-08-26Buckley Miller Wright NEW38Ioni Bowcher
1020Adams R MarrierArgentina2026-08-09Dorl, James J Esq NEGOTIATION14Ivan Magalhaes
1021Claire N AlbaresBrazil2026-08-03Commercial Press PROPOSAL60Amy Elsner
1022James H KuskoRussia2026-08-10Dorl, James J Esq UNQUALIFIED23Onyama Limba
1023David I WhobreySpain2026-08-03Morlong Associates UNQUALIFIED88Stephen Shaw
1024Claire I KolmetzBrazil2026-08-23Rousseaux, Michael Esq PROPOSAL53Ioni Bowcher
1025Jones A OstroskyUnited Kingdom2026-08-24Feltz Printing Service QUALIFIED99Anna Fali
1026Octavia I IturbideItaly2026-08-15Commercial Press NEGOTIATION78Ivan Magalhaes
1027Morrow B GarufiBrazil2026-08-23Chanay, Jeffrey A Esq PROPOSAL3Ioni Bowcher
1028Faith W IturbideIndia2026-08-03Commercial Press NEW25Ioni Bowcher
1029Stacey Z VocelkaBrazil2026-08-31Feiner Bros NEW65Amy Elsner
1030Silvio L OldroydAustralia2026-08-03Feltz Printing Service NEW70Onyama Limba
1031Chavez I VenereGermany2026-08-18Rousseaux, Michael Esq NEGOTIATION90Xuxue Feng
1032Silvio W NestleUnited Kingdom2026-08-17Buckley Miller Wright NEW71Onyama Limba
1033Francesco V FerenczAustralia2026-08-04Printing Dimensions NEGOTIATION84Ioni Bowcher
1034Isabel M IturbideUnited Kingdom2026-08-07Chanay, Jeffrey A Esq UNQUALIFIED93Ioni Bowcher
1035Rodrigues B MarrierSpain2026-08-31Dorl, James J Esq NEW12Anna Fali
1036Kadeem U ChuiUnited Kingdom2026-08-22Rousseaux, Michael Esq NEGOTIATION74Amy Elsner
1037Nicolas A OldroydItaly2026-08-09Printing Dimensions NEGOTIATION21Elwin Sharvill
1038Kadeem O NestleUnited Kingdom2026-08-20Commercial Press NEGOTIATION51Amy Elsner
1039Smith Q GarufiFrance2026-08-16Printing Dimensions QUALIFIED32Ivan Magalhaes
1040Misaki Y WhobreyGermany2026-08-24Truhlar And Truhlar Attys NEW96Elwin Sharvill
1041Murillo S BologniaIndia2026-08-05Morlong Associates QUALIFIED35Ivan Magalhaes
1042Octavia H WhobreyRussia2026-08-23Chapman, Ross E Esq QUALIFIED68Ioni Bowcher
1043Emily K GarufiSpain2026-08-10Commercial Press QUALIFIED11Ivan Magalhaes
1044Maria F SergiItaly2026-08-24Buckley Miller Wright QUALIFIED78Anna Fali
1045Clifford B GauchoItaly2026-08-25Truhlar And Truhlar Attys RENEWAL4Onyama Limba
1046Ivar I FerenczSpain2026-08-30Printing Dimensions PROPOSAL56Bernardo Dominic
1047Sinclair S StensethIndia2026-08-28Chapman, Ross E Esq RENEWAL7Anna Fali
1048Arvin O KuskoAustralia2026-08-20Morlong Associates PROPOSAL77Xuxue Feng
1049Morrow H StockhamUnited Kingdom2026-08-22Morlong Associates UNQUALIFIED59Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Darci V PaprockiRussiaAmy Elsner NEW
Aruna P SaylorsFranceAmy Elsner PROPOSAL
Arvin D StensethArgentinaIoni Bowcher QUALIFIED
Smith P RulapaughGermanyElwin Sharvill QUALIFIED
Tony H RutaArgentinaAmy Elsner UNQUALIFIED
Mujtaba O SaylorsUnited KingdomAnna Fali QUALIFIED
Wickens Q CampainGermanyAsiya Javayant RENEWAL
Salvatore S DoeBrazilXuxue Feng QUALIFIED
Alejandro L GarufiCanadaOnyama Limba NEW
Jennifer K PaprockiSpainXuxue Feng RENEWAL
Arvin D IturbideFranceBernardo Dominic NEW
Aika W MaletJapanElwin Sharvill NEGOTIATION
Adams T KuskoBrazilOnyama Limba NEGOTIATION
Murillo E BologniaRussiaBernardo Dominic UNQUALIFIED
Faith P NickaUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois S CampainBrazilIvan Magalhaes PROPOSAL
Leja W FlosiItalyXuxue Feng RENEWAL
Murillo H RoysterUnited KingdomStephen Shaw NEW
Francesco P MarrierCanadaBernardo Dominic QUALIFIED
Maisha W OldroydCanadaBernardo Dominic PROPOSAL
Costa Z StensethGermanyAnna Fali QUALIFIED
Murillo N GillianBrazilElwin Sharvill RENEWAL
Leon O RimFranceOnyama Limba NEW
James E RutaJapanIvan Magalhaes QUALIFIED
Chavez U StockhamSpainBernardo Dominic NEW
Aika C AmigonFranceAsiya Javayant QUALIFIED
Sinclair J DoeGermanyStephen Shaw RENEWAL
Izzy X FlosiArgentinaAsiya Javayant PROPOSAL
Munro A KolmetzAustraliaIoni Bowcher QUALIFIED
Munro D OstroskyUnited KingdomOnyama Limba QUALIFIED
Izzy G VocelkaBrazilAnna Fali RENEWAL
Mujtaba N MaletArgentinaStephen Shaw UNQUALIFIED
Mujtaba N MaletBrazilXuxue Feng QUALIFIED
Smith F RutaBrazilIoni Bowcher PROPOSAL
Ashley Z NestleIndiaElwin Sharvill PROPOSAL
Claire Z SlusarskiItalyElwin Sharvill PROPOSAL
Murillo H RulapaughBrazilBernardo Dominic NEGOTIATION
Faith H PerinFranceOnyama Limba PROPOSAL
Tony D CampainBrazilIoni Bowcher QUALIFIED
David W InouyeIndiaElwin Sharvill RENEWAL
Maria P MaletAustraliaIvan Magalhaes QUALIFIED
Isabel X RulapaughUnited KingdomStephen Shaw NEW
Kaitlin C CaudyCanadaElwin Sharvill QUALIFIED
Jeanfrancois L WhobreyCanadaIoni Bowcher NEGOTIATION
Sinclair H KuskoGermanyElwin Sharvill RENEWAL
Aika Y KolmetzUnited KingdomAsiya Javayant RENEWAL
Cody G MorascaFranceStephen Shaw NEGOTIATION
Ivar W KuskoIndiaXuxue Feng UNQUALIFIED
Leon D GauchoItalyBernardo Dominic NEW
Costa R PaprockiIndiaElwin Sharvill PROPOSAL
Frozen Columns
Name
Johnson T Glick
Maria Q Gillian
Leja Q Malet
Nicolas C Venere
Silvio K Royster
Maisha S Briddick
Deepesh E Malet
Stacey L Saylors
Adams B Poquette
Emily M Kusko
Leon R Perin
Wickens V Inouye
Wickens T Stenseth
Salvatore E Schemmer
Costa D Sergi
Emily B Marrier
Greenwood M Venere
Claire V Sergi
Kaitlin K Vocelka
Kadeem X Amigon
Antonio Y Campain
Chavez K Tollner
Johnson K Briddick
Greenwood B Vocelka
Mayumi H Glick
Ashley Y Ruta
Jeanfrancois Y Ostrosky
Julie U Albares
Ivar R Doe
Costa C Slusarski
Wickens F Garufi
Mayumi M Ostrosky
Kadeem V Marrier
Antonio H Chui
David O Dilliard
Smith J Ferencz
Costa L Garufi
Emily N Malet
Kaitlin S Malet
Adams P Iturbide
Darci L Figeroa
Jones N Stenseth
Clifford T Bowley
Leon H Perin
Leon D Schemmer
Clifford K Bolognia
Leon I Butt
Aruna F Wieser
Tony I Flosi
Nicolas T Kolmetz
IdCountryDate
1000Germany2026-08-24
1001India2026-08-05
1002Spain2026-08-12
1003Brazil2026-08-22
1004Brazil2026-08-07
1005France2026-08-04
1006India2026-08-22
1007Brazil2026-08-07
1008Spain2026-08-19
1009Argentina2026-08-29
1010Argentina2026-08-16
1011Japan2026-08-08
1012United Kingdom2026-08-21
1013India2026-08-11
1014Argentina2026-08-23
1015Canada2026-08-12
1016Germany2026-08-24
1017Australia2026-08-21
1018Spain2026-08-05
1019Germany2026-08-24
1020Brazil2026-08-12
1021Japan2026-08-29
1022India2026-08-07
1023United Kingdom2026-08-17
1024India2026-08-21
1025Spain2026-08-27
1026United Kingdom2026-08-30
1027Japan2026-08-24
1028United Kingdom2026-08-13
1029India2026-08-17
1030Italy2026-08-31
1031Russia2026-08-04
1032Brazil2026-08-18
1033Japan2026-08-14
1034Canada2026-08-19
1035United Kingdom2026-08-16
1036United Kingdom2026-08-18
1037France2026-08-16
1038Italy2026-08-14
1039Brazil2026-08-20
1040Canada2026-08-20
1041Japan2026-08-23
1042India2026-08-03
1043Argentina2026-08-25
1044Italy2026-08-11
1045Argentina2026-08-21
1046India2026-08-13
1047Australia2026-08-30
1048France2026-08-24
1049Brazil2026-08-06

On-Demand Data

NameIdCountryDate
Aditya O Ferencz1000Australia2026-08-30
Salvatore S Whobrey1001France2026-08-22
Arvin O Venere1002Canada2026-08-08
Greenwood K Amigon1003Russia2026-08-06
Sinclair F Stockham1004United Kingdom2026-08-17
Leon Z Kolmetz1005Germany2026-08-18
Jefferson Q Briddick1006Australia2026-08-16
Faith T Figeroa1007United Kingdom2026-08-26
Emily L Dilliard1008France2026-08-08
Nicolas R Dilliard1009Spain2026-08-26
James N Iturbide1010Australia2026-08-23
Darci M Schemmer1011Argentina2026-08-07
Cody P Shinko1012Australia2026-08-21
Mayumi V Waycott1013Italy2026-08-19
Octavia N Tollner1014Japan2026-08-28
Tony F Royster1015United Kingdom2026-08-19
Maria J Stenseth1016Italy2026-08-23
Jennifer J Chui1017Japan2026-08-28
Tony U Inouye1018Canada2026-08-28
Kadeem B Shinko1019United Kingdom2026-08-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David L NickaJapanAmy Elsner QUALIFIED
Silvio K PerinItalyIoni Bowcher UNQUALIFIED
Nicolas Q TollnerIndiaOnyama Limba NEGOTIATION
Aruna Z MaletItalyAmy Elsner NEGOTIATION
Deepesh D IturbideCanadaStephen Shaw NEGOTIATION
Misaki T WieserUnited KingdomStephen Shaw PROPOSAL
Adams H OstroskyGermanyXuxue Feng PROPOSAL
Francesco L MorascaArgentinaAnna Fali QUALIFIED
Smith G InouyeGermanyOnyama Limba PROPOSAL
Chavez C CaudyUnited KingdomOnyama Limba QUALIFIED
Rodrigues S InouyeAustraliaAmy Elsner NEW
Jeanfrancois G InouyeSpainIoni Bowcher NEW
Antonio O FollerJapanElwin Sharvill RENEWAL
Aika P DilliardIndiaIoni Bowcher RENEWAL
David T RoysterCanadaAnna Fali UNQUALIFIED
Faith C WaycottFranceStephen Shaw NEW
Adams K GlickSpainIvan Magalhaes RENEWAL
Aruna A IturbideRussiaAsiya Javayant QUALIFIED
Izzy B NickaRussiaAsiya Javayant NEW
Sinclair W RoysterArgentinaAmy Elsner RENEWAL
Alejandro I IturbideFranceBernardo Dominic RENEWAL
Johnson G OldroydJapanAmy Elsner RENEWAL
Ivar P RutaItalyXuxue Feng NEGOTIATION
Misaki P MacleadItalyAmy Elsner QUALIFIED
Salvatore H VocelkaCanadaElwin Sharvill UNQUALIFIED
Jefferson B MarrierRussiaAnna Fali NEW
Francesco Q FigeroaItalyBernardo Dominic NEW
Rodrigues B PoquetteCanadaElwin Sharvill NEGOTIATION
Misaki E NickaRussiaAnna Fali RENEWAL
Munro L WhobreyItalyAnna Fali UNQUALIFIED
Mayumi R FollerRussiaOnyama Limba PROPOSAL
Jones D FigeroaItalyAmy Elsner NEW
Francesco U DilliardUnited KingdomBernardo Dominic QUALIFIED
Maisha L AlbaresItalyIvan Magalhaes RENEWAL
Cody Y DilliardCanadaIvan Magalhaes NEW
Morrow F StockhamJapanXuxue Feng NEGOTIATION
Nicolas J DarakjyItalyAmy Elsner NEGOTIATION
Kadeem S SaylorsJapanAmy Elsner RENEWAL
Aditya B NestleSpainAnna Fali PROPOSAL
Rodrigues O RutaCanadaBernardo Dominic RENEWAL

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