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
Maria U GlickBrazilElwin Sharvill RENEWAL
Jennifer Y MaletUnited KingdomAsiya Javayant QUALIFIED
James P PoquetteItalyIvan Magalhaes UNQUALIFIED
Arvin K KuskoArgentinaAmy Elsner UNQUALIFIED
Maisha I GarufiIndiaAnna Fali NEGOTIATION
Mayumi H StensethItalyOnyama Limba NEGOTIATION
Aditya Q OstroskyFranceElwin Sharvill NEW
Clifford O WaycottItalyXuxue Feng RENEWAL
Francesco B GillianIndiaElwin Sharvill UNQUALIFIED
Ricardo G InouyeItalyElwin Sharvill NEGOTIATION
Faith S GlickBrazilStephen Shaw NEW
Murillo S DoeJapanElwin Sharvill PROPOSAL
Adams T GauchoItalyElwin Sharvill NEGOTIATION
Francesco S CaldareraCanadaIoni Bowcher QUALIFIED
Izzy W KolmetzIndiaXuxue Feng QUALIFIED
Kadeem Y StensethFranceAnna Fali RENEWAL
Ricardo L ShinkoIndiaAnna Fali QUALIFIED
Ashley B AmigonJapanXuxue Feng QUALIFIED
Leon V SaylorsGermanyAmy Elsner UNQUALIFIED
Ricardo H WaycottAustraliaAsiya Javayant QUALIFIED
Darci V IturbideBrazilElwin Sharvill UNQUALIFIED
Alejandro N PaprockiBrazilBernardo Dominic NEGOTIATION
Izzy A AmigonJapanXuxue Feng UNQUALIFIED
Leja K AlbaresBrazilAmy Elsner PROPOSAL
Jefferson Y MacleadBrazilAmy Elsner PROPOSAL
Darci I WaycottGermanyAnna Fali NEGOTIATION
Juan T KuskoArgentinaXuxue Feng PROPOSAL
Murillo M SlusarskiCanadaIoni Bowcher NEW
Antonio Q GauchoCanadaOnyama Limba PROPOSAL
Murillo R ButtIndiaIoni Bowcher UNQUALIFIED
Mayumi F GauchoUnited KingdomAsiya Javayant RENEWAL
Nicolas D FigeroaRussiaStephen Shaw NEW
Leon C TollnerItalyOnyama Limba NEW
Emily U WieserRussiaStephen Shaw RENEWAL
Greenwood N VocelkaJapanIoni Bowcher RENEWAL
Arvin K InouyeGermanyElwin Sharvill NEGOTIATION
Arvin Y CampainFranceStephen Shaw RENEWAL
Francesco Z CaudyGermanyAmy Elsner UNQUALIFIED
Claire E IturbideUnited KingdomAnna Fali QUALIFIED
Adams B MarrierJapanAmy Elsner QUALIFIED
Murillo V SlusarskiItalyElwin Sharvill NEGOTIATION
Cody U TollnerUnited KingdomIoni Bowcher RENEWAL
Claire Q SergiArgentinaStephen Shaw NEGOTIATION
David W BowleySpainIvan Magalhaes UNQUALIFIED
Jefferson U WaycottFranceBernardo Dominic PROPOSAL
Maisha G DilliardJapanAmy Elsner NEW
Sinclair F MorascaItalyIvan Magalhaes QUALIFIED
Kaitlin B GillianGermanyStephen Shaw RENEWAL
Clifford O PoquetteBrazilOnyama Limba RENEWAL
Francesco J KuskoJapanXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leja O ButtFranceStephen Shaw PROPOSAL
Alejandro Z RutaGermanyAmy Elsner UNQUALIFIED
David Y SaylorsCanadaAnna Fali UNQUALIFIED
Stacey D GillianRussiaOnyama Limba NEGOTIATION
Claire X FigeroaItalyBernardo Dominic QUALIFIED
Ricardo M FollerAustraliaBernardo Dominic QUALIFIED
Claire B MorascaArgentinaAmy Elsner RENEWAL
Maisha O SlusarskiJapanOnyama Limba RENEWAL
Emily E RoysterJapanStephen Shaw NEGOTIATION
Alejandro O FigeroaGermanyAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams X FlosiIndia2026-06-25King, Christopher A Esq NEW86Asiya Javayant
1001Cody Y CaudyUnited Kingdom2026-06-12Benton, John B Jr QUALIFIED77Ioni Bowcher
1002Juan O InouyeGermany2026-06-13King, Christopher A Esq NEW62Ivan Magalhaes
1003Misaki S RimItaly2026-06-20Truhlar And Truhlar Attys QUALIFIED89Ivan Magalhaes
1004Costa K WieserIndia2026-06-14Feiner Bros UNQUALIFIED92Onyama Limba
1005Mujtaba N FigeroaAustralia2026-07-04Commercial Press PROPOSAL18Asiya Javayant
1006Isabel N CampainArgentina2026-07-06Benton, John B Jr UNQUALIFIED24Elwin Sharvill
1007James B SergiGermany2026-06-20Chemel, James L Cpa NEGOTIATION79Ioni Bowcher
1008Greenwood Q WieserAustralia2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED19Ivan Magalhaes
1009Maisha S GarufiSpain2026-06-24Dorl, James J Esq NEGOTIATION24Elwin Sharvill
1010Rodrigues D SaylorsAustralia2026-06-18King, Christopher A Esq RENEWAL30Ioni Bowcher
1011Antonio D PaprockiRussia2026-06-25Printing Dimensions PROPOSAL66Xuxue Feng
1012Faith X MarrierBrazil2026-06-27Feiner Bros PROPOSAL81Stephen Shaw
1013Claire Q ShinkoGermany2026-06-28Rangoni Of Florence NEGOTIATION33Ivan Magalhaes
1014Ashley V FlosiCanada2026-06-24Chemel, James L Cpa QUALIFIED3Asiya Javayant
1015Chavez V StensethGermany2026-06-11Chapman, Ross E Esq UNQUALIFIED12Xuxue Feng
1016Nicolas L SergiSpain2026-07-03Rousseaux, Michael Esq UNQUALIFIED47Stephen Shaw
1017David T ButtBrazil2026-06-30Rangoni Of Florence QUALIFIED81Onyama Limba
1018Emily S SaylorsUnited Kingdom2026-07-04Dorl, James J Esq NEW70Ioni Bowcher
1019Smith R FerenczIndia2026-07-07Commercial Press QUALIFIED84Stephen Shaw
1020Octavia U CampainArgentina2026-06-22Rousseaux, Michael Esq PROPOSAL76Xuxue Feng
1021Jefferson Q DoeArgentina2026-06-11Buckley Miller Wright PROPOSAL69Elwin Sharvill
1022Wickens Q RimItaly2026-07-03Printing Dimensions QUALIFIED48Elwin Sharvill
1023Johnson Y OstroskyIndia2026-06-21Buckley Miller Wright RENEWAL7Amy Elsner
1024Tony V SaylorsRussia2026-06-17Benton, John B Jr QUALIFIED60Asiya Javayant
1025Ivar V WaycottItaly2026-07-03Dorl, James J Esq RENEWAL19Ioni Bowcher
1026Darci J RimRussia2026-06-16Rousseaux, Michael Esq QUALIFIED91Ivan Magalhaes
1027Leja P CampainRussia2026-06-29Printing Dimensions PROPOSAL15Xuxue Feng
1028Cody Q WieserJapan2026-06-16King, Christopher A Esq UNQUALIFIED39Amy Elsner
1029Maisha I OldroydAustralia2026-06-20Feltz Printing Service NEGOTIATION12Xuxue Feng
1030Silvio W RutaBrazil2026-06-27Feiner Bros PROPOSAL89Anna Fali
1031Leja D BologniaJapan2026-06-14Benton, John B Jr NEW78Elwin Sharvill
1032Leon W VenereArgentina2026-06-19King, Christopher A Esq NEGOTIATION87Onyama Limba
1033Leja W ChuiCanada2026-06-16Chapman, Ross E Esq NEGOTIATION40Asiya Javayant
1034Faith Q WaycottAustralia2026-06-24Rangoni Of Florence QUALIFIED86Elwin Sharvill
1035Octavia Q RimAustralia2026-06-17Dorl, James J Esq NEGOTIATION55Ioni Bowcher
1036Julie B ChuiArgentina2026-06-15Feiner Bros PROPOSAL91Ioni Bowcher
1037Jefferson B GauchoBrazil2026-07-08Chemel, James L Cpa NEW39Elwin Sharvill
1038Francesco I CaldareraJapan2026-07-03Benton, John B Jr PROPOSAL0Xuxue Feng
1039Isabel N BowleyAustralia2026-06-14Dorl, James J Esq NEW41Ivan Magalhaes
1040Arvin J MarrierItaly2026-06-23Feiner Bros RENEWAL25Xuxue Feng
1041Clifford W RutaArgentina2026-06-12King, Christopher A Esq NEW50Asiya Javayant
1042Smith W ShinkoAustralia2026-06-22Chanay, Jeffrey A Esq QUALIFIED4Bernardo Dominic
1043Darci C MarrierIndia2026-06-30Chanay, Jeffrey A Esq NEGOTIATION50Amy Elsner
1044Aika S DarakjyGermany2026-06-15Rangoni Of Florence QUALIFIED97Bernardo Dominic
1045Aika K RimUnited Kingdom2026-06-11Rousseaux, Michael Esq NEGOTIATION66Ivan Magalhaes
1046Stacey N CaldareraItaly2026-07-08Feiner Bros UNQUALIFIED62Elwin Sharvill
1047Octavia N ChuiCanada2026-07-02Chanay, Jeffrey A Esq RENEWAL78Xuxue Feng
1048Cody D SergiRussia2026-07-04King, Christopher A Esq PROPOSAL84Bernardo Dominic
1049Jennifer K GillianGermany2026-06-17Rangoni Of Florence RENEWAL50Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois O MorascaBrazilBernardo Dominic PROPOSAL
Jones X MaletUnited KingdomElwin Sharvill NEW
Ashley P CaldareraItalyAmy Elsner UNQUALIFIED
Sinclair X RimGermanyIvan Magalhaes NEW
Wickens A GlickUnited KingdomIoni Bowcher UNQUALIFIED
Emily R SlusarskiSpainAmy Elsner UNQUALIFIED
Tony S OstroskyCanadaIvan Magalhaes UNQUALIFIED
Ivar S MacleadRussiaIvan Magalhaes NEGOTIATION
Octavia X KuskoRussiaElwin Sharvill PROPOSAL
Misaki W MaletSpainIoni Bowcher NEGOTIATION
Leon T SlusarskiItalyIvan Magalhaes NEGOTIATION
Costa R GauchoArgentinaStephen Shaw NEW
Misaki D SlusarskiRussiaIvan Magalhaes UNQUALIFIED
Silvio W MarrierRussiaAmy Elsner PROPOSAL
Izzy S PaprockiJapanXuxue Feng PROPOSAL
Aruna I ChuiRussiaIvan Magalhaes PROPOSAL
Maria O RulapaughAustraliaElwin Sharvill PROPOSAL
Misaki W FerenczRussiaIoni Bowcher QUALIFIED
Jeanfrancois N KolmetzJapanIvan Magalhaes NEW
Jones O SlusarskiRussiaAmy Elsner RENEWAL
Mayumi E WhobreyIndiaElwin Sharvill UNQUALIFIED
Jefferson X RutaAustraliaOnyama Limba UNQUALIFIED
Aditya T FollerRussiaOnyama Limba PROPOSAL
Claire O CaldareraCanadaAmy Elsner QUALIFIED
Faith T FigeroaFranceXuxue Feng NEW
Arvin X SchemmerIndiaAmy Elsner RENEWAL
Costa R OldroydCanadaIoni Bowcher NEW
Adams C OldroydIndiaStephen Shaw UNQUALIFIED
Cody J BowleySpainXuxue Feng NEW
Salvatore U SlusarskiJapanIoni Bowcher RENEWAL
Claire L RutaFranceStephen Shaw NEGOTIATION
Aditya Y RulapaughCanadaAsiya Javayant RENEWAL
David X AlbaresCanadaOnyama Limba PROPOSAL
Kadeem P FlosiRussiaIvan Magalhaes NEGOTIATION
Octavia S WaycottUnited KingdomAnna Fali RENEWAL
Julie J GillianItalyXuxue Feng PROPOSAL
Leon E RoysterUnited KingdomOnyama Limba NEGOTIATION
Stacey C KolmetzIndiaBernardo Dominic PROPOSAL
Salvatore C SchemmerRussiaOnyama Limba NEW
Claire B FerenczSpainStephen Shaw PROPOSAL
Octavia F WieserAustraliaOnyama Limba NEW
Maisha I PaprockiArgentinaElwin Sharvill NEW
Darci G RimUnited KingdomStephen Shaw NEGOTIATION
Antonio W PerinIndiaAnna Fali RENEWAL
Chavez Y WhobreyFranceAmy Elsner RENEWAL
Sinclair M WaycottIndiaElwin Sharvill UNQUALIFIED
Wickens B TollnerArgentinaXuxue Feng PROPOSAL
Sinclair Y PaprockiAustraliaBernardo Dominic RENEWAL
Johnson R DoeJapanBernardo Dominic NEGOTIATION
Octavia V FollerRussiaOnyama Limba NEW
Frozen Columns
Name
Isabel U Rulapaugh
Octavia U Poquette
Aditya D Inouye
Leja F Ostrosky
Maria J Kusko
Clifford Q Vocelka
Kaitlin Q Ferencz
Mayumi N Foller
Julie T Vocelka
Tony A Paprocki
Julie J Slusarski
Julie W Malet
Claire F Ferencz
Stacey L Iturbide
Silvio L Rim
Mujtaba L Morasca
Aruna X Gillian
Kadeem M Garufi
Chavez F Shinko
Deepesh S Rulapaugh
Silvio C Vocelka
Leja A Nicka
Alejandro B Wieser
Ashley P Dilliard
Stacey C Schemmer
Izzy Z Malet
Deepesh N Paprocki
Maria A Nestle
Sinclair Q Doe
Jefferson R Slusarski
Maria I Caudy
Aditya D Poquette
Maisha S Paprocki
Nicolas O Gillian
Ashley T Perin
Adams A Gaucho
Wickens E Nestle
Octavia T Figeroa
Kaitlin S Nestle
Cody N Saylors
Juan O Albares
Morrow I Venere
David A Kusko
Maisha V Darakjy
Jones R Venere
Deepesh Y Nestle
Juan R Figeroa
Sinclair B Caudy
Leja W Amigon
Nicolas P Malet
IdCountryDate
1000Canada2026-06-19
1001Japan2026-06-14
1002France2026-06-28
1003Brazil2026-06-16
1004United Kingdom2026-06-16
1005Australia2026-06-18
1006Germany2026-06-18
1007India2026-07-01
1008Spain2026-06-23
1009Japan2026-07-04
1010United Kingdom2026-06-11
1011Germany2026-06-15
1012Germany2026-06-14
1013Brazil2026-07-07
1014Italy2026-07-08
1015France2026-07-09
1016France2026-06-28
1017United Kingdom2026-06-25
1018Argentina2026-06-28
1019Spain2026-07-03
1020France2026-06-16
1021India2026-06-22
1022United Kingdom2026-06-16
1023Germany2026-07-02
1024Australia2026-06-28
1025United Kingdom2026-07-04
1026France2026-06-23
1027Japan2026-07-01
1028Spain2026-06-27
1029France2026-06-13
1030Canada2026-06-23
1031India2026-06-27
1032Australia2026-06-28
1033Germany2026-07-01
1034Germany2026-07-05
1035Japan2026-06-13
1036India2026-06-28
1037France2026-06-29
1038India2026-07-02
1039Canada2026-06-12
1040Canada2026-07-05
1041Australia2026-06-18
1042Australia2026-06-14
1043Canada2026-06-16
1044Argentina2026-07-07
1045Canada2026-06-19
1046Australia2026-07-07
1047Italy2026-06-19
1048India2026-06-23
1049Canada2026-06-18

On-Demand Data

NameIdCountryDate
Aika E Whobrey1000France2026-06-30
Leon T Inouye1001Italy2026-07-04
Francesco F Oldroyd1002United Kingdom2026-06-17
Costa Y Darakjy1003Canada2026-06-22
Leja U Dilliard1004Russia2026-07-02
Leon K Perin1005Brazil2026-06-23
Isabel T Darakjy1006Spain2026-06-17
Wickens O Malet1007Japan2026-07-06
Faith W Gillian1008France2026-06-28
David W Malet1009Australia2026-06-28
Mayumi L Albares1010Russia2026-06-27
Maria G Waycott1011India2026-07-09
Maisha C Stockham1012Argentina2026-06-19
Nicolas S Ruta1013Japan2026-06-22
Tony M Oldroyd1014Australia2026-07-08
Morrow K Marrier1015Italy2026-06-22
Faith Q Chui1016Canada2026-06-22
Jennifer D Campain1017Russia2026-07-09
Isabel A Stockham1018Spain2026-06-12
Leon Y Amigon1019Argentina2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues L FlosiArgentinaBernardo Dominic RENEWAL
Sinclair G IturbideSpainIoni Bowcher NEGOTIATION
Aika H BologniaFranceIoni Bowcher PROPOSAL
Maria N ButtFranceAmy Elsner UNQUALIFIED
Clifford V MarrierFranceAmy Elsner NEW
Ashley G MacleadAustraliaElwin Sharvill NEW
Jennifer J PaprockiUnited KingdomOnyama Limba QUALIFIED
Maria G GillianRussiaXuxue Feng QUALIFIED
Izzy R PerinUnited KingdomElwin Sharvill UNQUALIFIED
James R KuskoIndiaOnyama Limba NEW
James G ChuiAustraliaBernardo Dominic NEGOTIATION
Munro Z ButtItalyAsiya Javayant PROPOSAL
Francesco S GarufiUnited KingdomElwin Sharvill NEGOTIATION
Johnson M MacleadBrazilIoni Bowcher PROPOSAL
Munro O AlbaresFranceAsiya Javayant UNQUALIFIED
Rodrigues L KolmetzIndiaAnna Fali QUALIFIED
Isabel L DarakjyBrazilBernardo Dominic NEW
Francesco Q WieserCanadaElwin Sharvill PROPOSAL
Murillo E FerenczIndiaBernardo Dominic QUALIFIED
Misaki I MorascaBrazilAsiya Javayant UNQUALIFIED
Johnson K GlickUnited KingdomBernardo Dominic UNQUALIFIED
Ricardo H VocelkaItalyAmy Elsner UNQUALIFIED
Cody B StockhamArgentinaBernardo Dominic UNQUALIFIED
Silvio F RimRussiaStephen Shaw PROPOSAL
Maria J GlickBrazilBernardo Dominic QUALIFIED
Munro Z GillianCanadaStephen Shaw NEGOTIATION
Chavez Z CaldareraGermanyIoni Bowcher QUALIFIED
Munro N VenereCanadaXuxue Feng PROPOSAL
Stacey Z IturbideJapanIoni Bowcher UNQUALIFIED
Kaitlin E MaletBrazilXuxue Feng NEW
Leon P RimGermanyBernardo Dominic NEW
Adams W KolmetzGermanyOnyama Limba PROPOSAL
Maria B PerinJapanIoni Bowcher PROPOSAL
Octavia U WieserBrazilIoni Bowcher RENEWAL
Morrow W CaldareraAustraliaIoni Bowcher NEGOTIATION
Maisha N IturbideAustraliaIoni Bowcher NEW
Greenwood J SchemmerFranceOnyama Limba QUALIFIED
Johnson H DilliardIndiaStephen Shaw NEW
Clifford L GlickIndiaStephen Shaw NEW
Tony Y MorascaCanadaIoni Bowcher 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>