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
Claire E WieserUnited KingdomAsiya Javayant PROPOSAL
Silvio T BologniaGermanyAsiya Javayant RENEWAL
Rodrigues N TollnerJapanAnna Fali UNQUALIFIED
Salvatore B RimItalyElwin Sharvill PROPOSAL
Adams F CaudySpainAmy Elsner NEGOTIATION
Chavez L FerenczItalyStephen Shaw UNQUALIFIED
Stacey J RutaFranceAsiya Javayant NEW
Sinclair D MacleadArgentinaAnna Fali QUALIFIED
Jefferson D DilliardArgentinaIoni Bowcher NEW
Claire N ChuiArgentinaStephen Shaw NEW
Ivar R MaletBrazilAnna Fali RENEWAL
Greenwood Z AlbaresGermanyStephen Shaw NEW
Octavia Y DilliardAustraliaAmy Elsner RENEWAL
Ricardo F InouyeRussiaAmy Elsner NEGOTIATION
Francesco Q BowleyCanadaIvan Magalhaes NEW
Isabel J PaprockiIndiaIoni Bowcher NEGOTIATION
Murillo M DarakjyCanadaAnna Fali NEW
Ivar Q WieserFranceBernardo Dominic RENEWAL
Ricardo U RoysterSpainBernardo Dominic NEGOTIATION
Antonio J SchemmerBrazilBernardo Dominic PROPOSAL
Claire Q NestleBrazilStephen Shaw NEW
Julie I OldroydIndiaAnna Fali QUALIFIED
Leon A PaprockiGermanyAsiya Javayant QUALIFIED
Kaitlin L BriddickBrazilBernardo Dominic PROPOSAL
Salvatore G WhobreyJapanBernardo Dominic PROPOSAL
Stacey X CaldareraUnited KingdomElwin Sharvill NEW
Munro V KuskoIndiaAsiya Javayant NEW
Jefferson A RoysterRussiaBernardo Dominic PROPOSAL
Mujtaba F ShinkoJapanAsiya Javayant UNQUALIFIED
Francesco N WaycottJapanElwin Sharvill UNQUALIFIED
Adams L WieserFranceBernardo Dominic NEGOTIATION
Kaitlin N NestleUnited KingdomOnyama Limba NEW
Isabel V PaprockiJapanStephen Shaw NEW
David S GillianSpainStephen Shaw NEGOTIATION
Julie P SlusarskiItalyIoni Bowcher NEGOTIATION
Jefferson I MacleadCanadaBernardo Dominic PROPOSAL
Claire V AlbaresBrazilAmy Elsner QUALIFIED
Rodrigues A PoquetteIndiaIoni Bowcher RENEWAL
Jefferson B StockhamIndiaElwin Sharvill PROPOSAL
Costa W NestleIndiaOnyama Limba NEW
Deepesh F OstroskyJapanAmy Elsner RENEWAL
David I GarufiRussiaAmy Elsner UNQUALIFIED
Clifford G StensethFranceAmy Elsner QUALIFIED
Antonio N FerenczUnited KingdomIoni Bowcher RENEWAL
Jeanfrancois X NickaUnited KingdomOnyama Limba NEGOTIATION
Izzy L FerenczRussiaStephen Shaw PROPOSAL
Maria S FlosiRussiaAsiya Javayant PROPOSAL
Munro O DilliardFranceAmy Elsner RENEWAL
Isabel X KolmetzBrazilStephen Shaw PROPOSAL
Misaki L GlickBrazilIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci L MaletIndiaElwin Sharvill NEW
Jeanfrancois Y NestleIndiaStephen Shaw NEGOTIATION
Silvio D RutaIndiaXuxue Feng RENEWAL
Juan Q BologniaArgentinaElwin Sharvill PROPOSAL
Kaitlin D PerinBrazilXuxue Feng QUALIFIED
Aditya O PaprockiFranceXuxue Feng NEW
Murillo H IturbideArgentinaIvan Magalhaes NEW
David T BologniaSpainIvan Magalhaes PROPOSAL
Ivar F GarufiCanadaAnna Fali QUALIFIED
James J OstroskyJapanStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith O ShinkoSpain2026-07-09Chapman, Ross E Esq RENEWAL94Ivan Magalhaes
1001Morrow R WaycottSpain2026-07-09Chapman, Ross E Esq QUALIFIED47Xuxue Feng
1002Ashley B ShinkoItaly2026-06-25Feiner Bros NEGOTIATION12Ioni Bowcher
1003Nicolas B MarrierJapan2026-06-18King, Christopher A Esq UNQUALIFIED82Asiya Javayant
1004Deepesh M IturbideArgentina2026-06-24Chanay, Jeffrey A Esq NEGOTIATION67Anna Fali
1005Darci R RoysterCanada2026-06-11Buckley Miller Wright NEGOTIATION25Xuxue Feng
1006Ivar Q RulapaughCanada2026-06-15Morlong Associates UNQUALIFIED45Elwin Sharvill
1007Stacey P BologniaFrance2026-07-07Feiner Bros PROPOSAL22Onyama Limba
1008James D MaletJapan2026-06-14Morlong Associates UNQUALIFIED39Amy Elsner
1009Arvin C NestleJapan2026-06-22Feltz Printing Service RENEWAL86Ivan Magalhaes
1010Murillo O StensethFrance2026-07-07Morlong Associates RENEWAL7Elwin Sharvill
1011Jennifer H GillianGermany2026-06-26Chapman, Ross E Esq NEGOTIATION30Stephen Shaw
1012Murillo B FigeroaFrance2026-06-13Buckley Miller Wright RENEWAL22Stephen Shaw
1013Jefferson V PaprockiFrance2026-06-20Chapman, Ross E Esq RENEWAL86Amy Elsner
1014Sinclair M StensethIndia2026-06-30Printing Dimensions QUALIFIED11Elwin Sharvill
1015Faith K DarakjyCanada2026-07-08King, Christopher A Esq NEW30Amy Elsner
1016Leon Y GauchoIndia2026-06-12Buckley Miller Wright QUALIFIED19Bernardo Dominic
1017Darci E VocelkaArgentina2026-06-14Truhlar And Truhlar Attys QUALIFIED9Elwin Sharvill
1018Mujtaba I CaudyBrazil2026-07-01Dorl, James J Esq RENEWAL55Anna Fali
1019Jones X FlosiGermany2026-06-13Feltz Printing Service PROPOSAL73Anna Fali
1020Salvatore W RulapaughBrazil2026-06-12Chanay, Jeffrey A Esq NEGOTIATION92Amy Elsner
1021Aruna A WaycottBrazil2026-06-22Chanay, Jeffrey A Esq RENEWAL71Stephen Shaw
1022Munro M MarrierRussia2026-07-06Truhlar And Truhlar Attys NEGOTIATION76Amy Elsner
1023Chavez X RutaFrance2026-06-17Buckley Miller Wright RENEWAL2Bernardo Dominic
1024Murillo T FlosiRussia2026-06-18King, Christopher A Esq UNQUALIFIED19Amy Elsner
1025Arvin V GlickItaly2026-06-11Dorl, James J Esq NEGOTIATION96Xuxue Feng
1026Rodrigues K AlbaresCanada2026-06-23Rangoni Of Florence NEW1Onyama Limba
1027Johnson B KolmetzGermany2026-06-12Commercial Press NEGOTIATION57Amy Elsner
1028Clifford X AlbaresJapan2026-06-18Benton, John B Jr UNQUALIFIED16Asiya Javayant
1029Deepesh Y KolmetzRussia2026-06-27Chapman, Ross E Esq NEGOTIATION39Asiya Javayant
1030Deepesh K NestleBrazil2026-06-13Truhlar And Truhlar Attys NEGOTIATION44Asiya Javayant
1031Ricardo B AmigonJapan2026-07-04Rousseaux, Michael Esq UNQUALIFIED58Asiya Javayant
1032Salvatore L FlosiSpain2026-06-30Morlong Associates QUALIFIED66Amy Elsner
1033James W BowleyAustralia2026-07-09Buckley Miller Wright PROPOSAL94Stephen Shaw
1034Jennifer M RutaBrazil2026-07-02Buckley Miller Wright PROPOSAL99Bernardo Dominic
1035Nicolas T SaylorsGermany2026-07-09Benton, John B Jr PROPOSAL40Ivan Magalhaes
1036Jefferson B RimIndia2026-06-12Feltz Printing Service QUALIFIED22Ivan Magalhaes
1037Octavia T StockhamIndia2026-06-14Dorl, James J Esq QUALIFIED65Elwin Sharvill
1038Wickens D WhobreyCanada2026-06-11Buckley Miller Wright UNQUALIFIED31Elwin Sharvill
1039Aika K RulapaughFrance2026-07-08Truhlar And Truhlar Attys NEW23Asiya Javayant
1040Salvatore I SergiIndia2026-07-01Feiner Bros QUALIFIED9Onyama Limba
1041Arvin Y RutaIndia2026-06-13Rangoni Of Florence QUALIFIED22Onyama Limba
1042Faith F FigeroaUnited Kingdom2026-06-15Commercial Press UNQUALIFIED88Elwin Sharvill
1043Adams B RoysterCanada2026-07-05King, Christopher A Esq NEGOTIATION37Onyama Limba
1044Juan E OldroydJapan2026-07-04Chanay, Jeffrey A Esq PROPOSAL86Onyama Limba
1045Morrow G FollerSpain2026-06-21Chemel, James L Cpa QUALIFIED90Bernardo Dominic
1046Smith E ChuiUnited Kingdom2026-06-14Morlong Associates QUALIFIED40Ioni Bowcher
1047Jennifer K RutaFrance2026-07-09Benton, John B Jr UNQUALIFIED61Ivan Magalhaes
1048Mayumi C RulapaughGermany2026-06-17Chemel, James L Cpa PROPOSAL3Onyama Limba
1049Isabel G ShinkoItaly2026-06-23Truhlar And Truhlar Attys PROPOSAL0Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Leon Q GauchoRussiaXuxue Feng NEGOTIATION
Julie N TollnerUnited KingdomBernardo Dominic PROPOSAL
Aditya M StockhamJapanBernardo Dominic QUALIFIED
Isabel P BowleyJapanAnna Fali NEGOTIATION
Tony Z DarakjyUnited KingdomOnyama Limba RENEWAL
Darci K MaletAustraliaIoni Bowcher NEW
Wickens A CaldareraItalyAsiya Javayant QUALIFIED
Maisha D MaletFranceOnyama Limba NEW
Ivar A StockhamIndiaXuxue Feng UNQUALIFIED
Silvio E DilliardJapanAmy Elsner NEGOTIATION
Tony S PaprockiRussiaXuxue Feng RENEWAL
Adams H RutaFranceIvan Magalhaes RENEWAL
Jennifer S BriddickRussiaStephen Shaw QUALIFIED
Jefferson L CaldareraFranceAsiya Javayant UNQUALIFIED
Salvatore L DilliardJapanIvan Magalhaes NEW
Emily J PaprockiUnited KingdomAsiya Javayant RENEWAL
Isabel O MarrierCanadaAsiya Javayant UNQUALIFIED
Ricardo Z FigeroaSpainStephen Shaw PROPOSAL
Smith N RutaSpainStephen Shaw NEW
Claire D TollnerIndiaXuxue Feng QUALIFIED
Deepesh Y MarrierAustraliaOnyama Limba UNQUALIFIED
Cody A BologniaGermanyAnna Fali NEGOTIATION
Murillo R CaudyCanadaStephen Shaw UNQUALIFIED
Francesco U MaletRussiaXuxue Feng RENEWAL
Smith B MaletJapanAnna Fali QUALIFIED
Jennifer Q DoeJapanBernardo Dominic NEGOTIATION
Leja O GillianGermanyXuxue Feng QUALIFIED
Claire P SergiAustraliaAnna Fali RENEWAL
Aditya Y CaldareraItalyIvan Magalhaes NEGOTIATION
Aika Y SergiItalyIoni Bowcher RENEWAL
Misaki P ButtFranceXuxue Feng UNQUALIFIED
Aruna L FerenczAustraliaIoni Bowcher QUALIFIED
Chavez S OldroydArgentinaAsiya Javayant NEGOTIATION
Jeanfrancois W CampainRussiaAsiya Javayant RENEWAL
Cody N MorascaBrazilAsiya Javayant QUALIFIED
Kadeem M ChuiFranceAnna Fali NEGOTIATION
Francesco K GlickGermanyAnna Fali UNQUALIFIED
Maria Q ShinkoCanadaAnna Fali UNQUALIFIED
Jefferson P GauchoFranceIoni Bowcher NEGOTIATION
Maisha R AmigonFranceOnyama Limba RENEWAL
Morrow W WhobreyJapanAsiya Javayant QUALIFIED
Johnson A WieserAustraliaIvan Magalhaes RENEWAL
Antonio K OldroydCanadaAmy Elsner RENEWAL
Chavez W DilliardRussiaAmy Elsner RENEWAL
James X PaprockiGermanyIoni Bowcher RENEWAL
Alejandro Z BologniaAustraliaElwin Sharvill NEW
Morrow I InouyeBrazilAsiya Javayant UNQUALIFIED
Chavez T PerinIndiaAmy Elsner RENEWAL
Octavia Z SergiArgentinaAmy Elsner RENEWAL
Claire K GarufiJapanAsiya Javayant NEGOTIATION
Frozen Columns
Name
Faith U Ostrosky
Munro Z Ferencz
Jeanfrancois J Amigon
Leja N Caudy
Alejandro H Rulapaugh
Leon K Albares
Aika K Wieser
Clifford F Inouye
Ivar V Inouye
Arvin Y Glick
Octavia L Inouye
Salvatore X Nestle
Adams Y Campain
Aika K Paprocki
Costa O Oldroyd
Salvatore T Glick
Murillo G Slusarski
Maisha V Chui
Isabel V Dilliard
Kaitlin T Caldarera
Munro E Dilliard
Adams F Waycott
Salvatore L Ruta
James J Saylors
Jeanfrancois U Maclead
Jennifer A Caudy
Maisha H Kolmetz
Kadeem M Rim
Emily K Paprocki
Antonio J Ruta
Kaitlin O Venere
Aruna B Schemmer
Greenwood M Chui
Ashley X Kusko
Ivar L Rim
Aika F Inouye
Juan V Caldarera
Alejandro B Ostrosky
Johnson M Dilliard
Aruna X Ferencz
Deepesh W Maclead
Aruna Z Glick
Morrow W Bolognia
Aika L Darakjy
Costa J Nestle
Maisha Y Dilliard
Antonio P Royster
Maisha M Sergi
Adams N Waycott
Alejandro A Malet
IdCountryDate
1000Russia2026-06-30
1001India2026-07-07
1002Canada2026-06-23
1003United Kingdom2026-06-22
1004Canada2026-06-26
1005Argentina2026-07-04
1006United Kingdom2026-06-21
1007Germany2026-07-03
1008Argentina2026-07-07
1009Spain2026-06-17
1010Germany2026-06-19
1011France2026-06-30
1012Japan2026-06-12
1013Spain2026-06-23
1014Argentina2026-06-14
1015United Kingdom2026-07-03
1016Brazil2026-07-03
1017Russia2026-07-06
1018Italy2026-06-29
1019Spain2026-06-18
1020Spain2026-07-03
1021Italy2026-07-06
1022Italy2026-07-02
1023Australia2026-07-07
1024Argentina2026-07-03
1025United Kingdom2026-06-19
1026Germany2026-07-08
1027United Kingdom2026-06-22
1028Germany2026-06-18
1029France2026-06-12
1030France2026-06-17
1031Brazil2026-07-07
1032Argentina2026-06-27
1033Spain2026-06-16
1034Argentina2026-07-04
1035Russia2026-06-17
1036Canada2026-06-12
1037France2026-07-03
1038Brazil2026-06-18
1039Russia2026-06-16
1040Russia2026-06-21
1041Canada2026-06-24
1042Canada2026-07-01
1043Italy2026-06-15
1044France2026-06-23
1045Italy2026-06-10
1046Brazil2026-06-30
1047Brazil2026-07-05
1048Argentina2026-06-27
1049India2026-06-29

On-Demand Data

NameIdCountryDate
Isabel N Butt1000Canada2026-06-20
Ricardo Z Shinko1001Australia2026-06-17
Kadeem K Chui1002Spain2026-07-03
Deepesh X Darakjy1003Brazil2026-06-14
Jeanfrancois O Foller1004Italy2026-06-27
Jefferson B Garufi1005Russia2026-07-09
Izzy G Dilliard1006Canada2026-07-06
Jones I Caldarera1007Spain2026-06-14
Emily A Garufi1008Germany2026-06-13
Claire U Poquette1009Canada2026-07-08
Jones Z Slusarski1010Japan2026-06-20
Jones X Nicka1011Japan2026-06-14
Claire H Gaucho1012Germany2026-06-13
Stacey A Stockham1013Australia2026-07-01
Aditya Y Foller1014Japan2026-06-19
Wickens R Royster1015Spain2026-06-24
Maisha M Dilliard1016Germany2026-06-19
David H Foller1017Brazil2026-06-20
Cody T Briddick1018France2026-06-18
James N Morasca1019Japan2026-06-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie Q OldroydBrazilStephen Shaw NEGOTIATION
Claire I OstroskyUnited KingdomOnyama Limba UNQUALIFIED
Ricardo U WieserRussiaElwin Sharvill PROPOSAL
Adams C ShinkoJapanAsiya Javayant UNQUALIFIED
Nicolas B MarrierFranceAmy Elsner PROPOSAL
Adams F DoeBrazilAmy Elsner NEGOTIATION
Arvin E BologniaFranceStephen Shaw RENEWAL
Leja G MarrierFranceOnyama Limba NEW
Izzy A BowleyArgentinaStephen Shaw UNQUALIFIED
Ricardo D MacleadIndiaXuxue Feng UNQUALIFIED
Sinclair S RoysterIndiaStephen Shaw QUALIFIED
Aditya T FollerItalyAmy Elsner QUALIFIED
Antonio O NestleItalyAsiya Javayant NEGOTIATION
Ricardo O NestleItalyXuxue Feng NEGOTIATION
Jennifer C TollnerCanadaAnna Fali NEGOTIATION
Misaki I PerinItalyAmy Elsner QUALIFIED
Alejandro L BologniaAustraliaElwin Sharvill PROPOSAL
Smith Q NestleUnited KingdomAsiya Javayant NEW
Jefferson M BologniaRussiaBernardo Dominic NEW
Alejandro G StensethItalyIvan Magalhaes RENEWAL
Kaitlin X VocelkaCanadaXuxue Feng RENEWAL
Morrow Y GarufiJapanAnna Fali QUALIFIED
Johnson D ButtCanadaAsiya Javayant QUALIFIED
Jennifer K ShinkoFranceIoni Bowcher PROPOSAL
Nicolas V ShinkoCanadaBernardo Dominic UNQUALIFIED
Emily U VenereSpainAsiya Javayant PROPOSAL
James A FollerCanadaAmy Elsner NEW
Johnson M BowleyCanadaXuxue Feng NEGOTIATION
Juan E SergiAustraliaOnyama Limba PROPOSAL
Aruna T DilliardSpainAmy Elsner RENEWAL
Aditya F DoeRussiaAmy Elsner RENEWAL
Jeanfrancois X SaylorsAustraliaIoni Bowcher UNQUALIFIED
Salvatore N RimCanadaAsiya Javayant QUALIFIED
Mayumi G WieserItalyIoni Bowcher QUALIFIED
Leja F MarrierRussiaIvan Magalhaes NEW
Aditya V SlusarskiAustraliaIvan Magalhaes QUALIFIED
Jones L VocelkaItalyAmy Elsner PROPOSAL
Smith W FollerRussiaAsiya Javayant NEGOTIATION
Maisha P DoeArgentinaElwin Sharvill UNQUALIFIED
Jennifer H MaletArgentinaStephen Shaw UNQUALIFIED

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