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
Francesco L ShinkoIndiaOnyama Limba NEGOTIATION
Johnson O NickaUnited KingdomIvan Magalhaes PROPOSAL
Wickens S VocelkaSpainAsiya Javayant NEGOTIATION
Clifford R FerenczFranceIvan Magalhaes NEGOTIATION
Emily D FollerFranceElwin Sharvill PROPOSAL
Alejandro M GarufiBrazilXuxue Feng NEW
David R StockhamIndiaStephen Shaw NEGOTIATION
Deepesh P GlickGermanyXuxue Feng PROPOSAL
Mujtaba W BologniaArgentinaBernardo Dominic PROPOSAL
Faith R AlbaresFranceOnyama Limba PROPOSAL
James B FlosiBrazilIoni Bowcher PROPOSAL
Claire G KolmetzCanadaAmy Elsner NEW
Aruna U SlusarskiIndiaOnyama Limba QUALIFIED
Maisha H OstroskyAustraliaAsiya Javayant NEGOTIATION
Silvio D PerinBrazilIoni Bowcher NEW
Francesco O WhobreyGermanyAnna Fali QUALIFIED
Silvio O BriddickItalyStephen Shaw RENEWAL
Isabel Z RutaRussiaAsiya Javayant UNQUALIFIED
Nicolas A InouyeBrazilAmy Elsner NEGOTIATION
Claire X FigeroaJapanXuxue Feng NEW
Emily T NickaJapanBernardo Dominic NEGOTIATION
Jefferson A MorascaSpainAnna Fali NEGOTIATION
Izzy N PaprockiCanadaOnyama Limba NEW
Jefferson G NestleAustraliaIvan Magalhaes UNQUALIFIED
Izzy K RoysterAustraliaIoni Bowcher QUALIFIED
Ivar Z SergiAustraliaIvan Magalhaes PROPOSAL
Adams V BologniaCanadaXuxue Feng QUALIFIED
Ivar B CaudySpainIvan Magalhaes PROPOSAL
Adams C RulapaughIndiaBernardo Dominic QUALIFIED
Smith U DarakjyIndiaOnyama Limba NEW
Maria B FerenczRussiaBernardo Dominic UNQUALIFIED
Ricardo M SchemmerGermanyElwin Sharvill UNQUALIFIED
Aruna P AmigonAustraliaStephen Shaw NEGOTIATION
Munro A MarrierUnited KingdomAsiya Javayant RENEWAL
Francesco V FlosiJapanIvan Magalhaes QUALIFIED
Clifford L CampainAustraliaXuxue Feng PROPOSAL
Alejandro D FlosiCanadaAnna Fali UNQUALIFIED
Greenwood Q RutaFranceXuxue Feng UNQUALIFIED
Mayumi H ChuiArgentinaBernardo Dominic NEGOTIATION
Deepesh I DoeAustraliaIvan Magalhaes PROPOSAL
Isabel L WieserItalyElwin Sharvill UNQUALIFIED
Maria E CaldareraBrazilElwin Sharvill NEGOTIATION
Leon I WieserSpainAsiya Javayant QUALIFIED
Darci E BologniaArgentinaBernardo Dominic RENEWAL
Greenwood U FigeroaAustraliaIoni Bowcher NEW
Nicolas A SergiBrazilXuxue Feng UNQUALIFIED
Octavia J AlbaresSpainIoni Bowcher NEGOTIATION
Emily X DoeRussiaAsiya Javayant UNQUALIFIED
Ivar A DoeIndiaStephen Shaw QUALIFIED
Ricardo D DoeRussiaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Stacey S CampainSpainAmy Elsner QUALIFIED
Darci L InouyeIndiaBernardo Dominic PROPOSAL
Smith O PaprockiIndiaAmy Elsner QUALIFIED
Aika J OstroskyItalyAnna Fali QUALIFIED
Aditya W MaletUnited KingdomAnna Fali QUALIFIED
Johnson Z WieserBrazilStephen Shaw RENEWAL
Octavia H BologniaBrazilXuxue Feng QUALIFIED
Silvio M FerenczUnited KingdomOnyama Limba PROPOSAL
Alejandro B VocelkaUnited KingdomIvan Magalhaes QUALIFIED
Johnson N OldroydFranceXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith B FlosiUnited Kingdom2026-07-25King, Christopher A Esq PROPOSAL64Onyama Limba
1001Jefferson M IturbideIndia2026-07-17Printing Dimensions NEGOTIATION77Amy Elsner
1002Chavez R MarrierGermany2026-07-25Printing Dimensions NEGOTIATION51Ioni Bowcher
1003Misaki A TollnerBrazil2026-07-11King, Christopher A Esq PROPOSAL0Stephen Shaw
1004Jeanfrancois I MorascaFrance2026-07-17Truhlar And Truhlar Attys NEW36Anna Fali
1005Kadeem L TollnerRussia2026-07-09Printing Dimensions RENEWAL9Bernardo Dominic
1006Leon R SaylorsItaly2026-07-18Truhlar And Truhlar Attys QUALIFIED14Ioni Bowcher
1007Smith K FlosiArgentina2026-07-22Rousseaux, Michael Esq NEGOTIATION96Elwin Sharvill
1008Jennifer P MaletArgentina2026-07-19Chemel, James L Cpa PROPOSAL85Ioni Bowcher
1009Arvin H TollnerArgentina2026-07-18Feltz Printing Service NEW48Amy Elsner
1010Mujtaba X IturbideArgentina2026-07-02Benton, John B Jr PROPOSAL34Amy Elsner
1011Jones W CampainGermany2026-07-19Morlong Associates PROPOSAL75Onyama Limba
1012Faith S NestleArgentina2026-07-01Chapman, Ross E Esq QUALIFIED52Stephen Shaw
1013James N FigeroaItaly2026-07-16Benton, John B Jr NEW3Onyama Limba
1014Emily E FigeroaCanada2026-07-15Truhlar And Truhlar Attys NEGOTIATION71Onyama Limba
1015Jeanfrancois M RulapaughIndia2026-06-27Commercial Press RENEWAL90Asiya Javayant
1016David R NickaFrance2026-07-23Chemel, James L Cpa PROPOSAL81Xuxue Feng
1017Cody M DilliardItaly2026-07-14Rangoni Of Florence NEW23Asiya Javayant
1018Jones S GarufiAustralia2026-06-26Morlong Associates UNQUALIFIED57Anna Fali
1019Jeanfrancois X OldroydItaly2026-07-03Rangoni Of Florence NEGOTIATION88Onyama Limba
1020Stacey N FigeroaCanada2026-07-12Dorl, James J Esq QUALIFIED2Onyama Limba
1021Isabel X GillianArgentina2026-07-25Rousseaux, Michael Esq UNQUALIFIED53Ioni Bowcher
1022Mujtaba A DoeItaly2026-07-06Feiner Bros PROPOSAL72Ivan Magalhaes
1023Antonio B AlbaresAustralia2026-07-17King, Christopher A Esq UNQUALIFIED18Xuxue Feng
1024Murillo H InouyeAustralia2026-07-09Dorl, James J Esq RENEWAL39Xuxue Feng
1025Aruna J FollerUnited Kingdom2026-07-23Morlong Associates QUALIFIED58Xuxue Feng
1026Jennifer Y DarakjyGermany2026-06-28Dorl, James J Esq RENEWAL16Onyama Limba
1027Misaki E AlbaresItaly2026-07-23Feiner Bros RENEWAL11Bernardo Dominic
1028Rodrigues U KolmetzUnited Kingdom2026-07-11Buckley Miller Wright RENEWAL53Elwin Sharvill
1029Juan B StockhamCanada2026-07-05Buckley Miller Wright NEW69Ivan Magalhaes
1030Jones B WhobreyCanada2026-07-07Rangoni Of Florence RENEWAL0Ivan Magalhaes
1031Ivar G NestleGermany2026-07-07Commercial Press RENEWAL64Amy Elsner
1032Aditya U SaylorsUnited Kingdom2026-07-24Commercial Press QUALIFIED83Elwin Sharvill
1033Salvatore O KolmetzBrazil2026-07-18Chanay, Jeffrey A Esq QUALIFIED98Bernardo Dominic
1034Emily H PoquetteRussia2026-06-26Chanay, Jeffrey A Esq UNQUALIFIED96Elwin Sharvill
1035Cody E NestleUnited Kingdom2026-07-17Truhlar And Truhlar Attys PROPOSAL66Amy Elsner
1036Cody V RulapaughUnited Kingdom2026-07-03Truhlar And Truhlar Attys NEGOTIATION68Xuxue Feng
1037Costa I WaycottGermany2026-07-11Truhlar And Truhlar Attys NEGOTIATION25Ivan Magalhaes
1038Maria H AlbaresUnited Kingdom2026-07-08Benton, John B Jr UNQUALIFIED94Asiya Javayant
1039Nicolas R NestleAustralia2026-07-21Rousseaux, Michael Esq QUALIFIED84Bernardo Dominic
1040Jones S FollerBrazil2026-06-30Truhlar And Truhlar Attys PROPOSAL86Onyama Limba
1041Octavia H FigeroaSpain2026-07-21Printing Dimensions PROPOSAL46Xuxue Feng
1042Francesco O FigeroaIndia2026-07-15Printing Dimensions RENEWAL99Ivan Magalhaes
1043Wickens P FerenczSpain2026-07-09Benton, John B Jr NEGOTIATION29Ioni Bowcher
1044Antonio R FollerIndia2026-06-28Feltz Printing Service UNQUALIFIED93Ivan Magalhaes
1045Aditya Z BowleyCanada2026-07-05Dorl, James J Esq QUALIFIED60Ioni Bowcher
1046Darci B SergiSpain2026-07-22Rangoni Of Florence UNQUALIFIED63Asiya Javayant
1047Francesco Q KuskoJapan2026-07-21Chanay, Jeffrey A Esq NEGOTIATION25Bernardo Dominic
1048Adams L ShinkoCanada2026-06-28Chemel, James L Cpa NEGOTIATION30Anna Fali
1049Alejandro C RimFrance2026-07-15Morlong Associates NEGOTIATION33Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Claire O KolmetzIndiaBernardo Dominic UNQUALIFIED
Adams S BriddickBrazilOnyama Limba NEW
Murillo R PaprockiFranceIoni Bowcher NEGOTIATION
Murillo X DarakjyUnited KingdomElwin Sharvill PROPOSAL
James S IturbideJapanOnyama Limba QUALIFIED
Morrow W BologniaAustraliaAmy Elsner NEGOTIATION
Leon X ChuiJapanAsiya Javayant NEGOTIATION
Izzy X OstroskyIndiaElwin Sharvill UNQUALIFIED
Octavia D GarufiRussiaAsiya Javayant QUALIFIED
Ashley X BowleySpainAmy Elsner QUALIFIED
Ivar L BriddickFranceAnna Fali NEGOTIATION
Tony C MaletCanadaAnna Fali PROPOSAL
Adams V IturbideSpainXuxue Feng RENEWAL
Faith S DilliardAustraliaBernardo Dominic NEW
Jeanfrancois Y IturbideCanadaElwin Sharvill UNQUALIFIED
Tony S BologniaGermanyAsiya Javayant PROPOSAL
Claire S WhobreyIndiaAnna Fali PROPOSAL
Leja J DilliardRussiaOnyama Limba QUALIFIED
Munro B FollerArgentinaOnyama Limba NEGOTIATION
Ricardo X DilliardGermanyOnyama Limba QUALIFIED
Jefferson Q NickaBrazilAmy Elsner PROPOSAL
Salvatore V MaletIndiaElwin Sharvill RENEWAL
Emily H GarufiSpainElwin Sharvill PROPOSAL
Silvio S NickaJapanXuxue Feng QUALIFIED
Morrow Y PaprockiCanadaOnyama Limba RENEWAL
Nicolas J NestleRussiaAnna Fali QUALIFIED
James R OldroydUnited KingdomOnyama Limba PROPOSAL
Darci J KuskoItalyAsiya Javayant PROPOSAL
Emily M WhobreySpainElwin Sharvill PROPOSAL
Chavez S CaldareraAustraliaIvan Magalhaes PROPOSAL
Aditya T SergiIndiaElwin Sharvill NEGOTIATION
Ricardo V CampainAustraliaAsiya Javayant RENEWAL
Salvatore D GillianRussiaAmy Elsner NEW
Aruna X SaylorsAustraliaOnyama Limba UNQUALIFIED
Jones B FollerAustraliaIvan Magalhaes PROPOSAL
Aika G GillianItalyBernardo Dominic NEW
Nicolas I KuskoAustraliaOnyama Limba NEGOTIATION
Maisha J ShinkoItalyAsiya Javayant RENEWAL
Silvio C TollnerBrazilAsiya Javayant NEW
Costa C TollnerAustraliaIoni Bowcher PROPOSAL
Jennifer O MaletBrazilStephen Shaw PROPOSAL
Greenwood L AmigonArgentinaElwin Sharvill UNQUALIFIED
Johnson F MaletBrazilOnyama Limba NEW
Mujtaba Y FerenczGermanyOnyama Limba UNQUALIFIED
Tony G NestleItalyIoni Bowcher NEGOTIATION
Antonio D PerinJapanIvan Magalhaes NEW
Clifford J MorascaItalyOnyama Limba UNQUALIFIED
Smith C DarakjyCanadaOnyama Limba NEGOTIATION
Isabel T RoysterSpainStephen Shaw NEGOTIATION
Costa O VocelkaAustraliaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Misaki K Shinko
Leon G Poquette
Juan E Schemmer
Ivar O Butt
Faith Z Ruta
Faith U Doe
Jefferson E Gaucho
Stacey X Sergi
Faith X Gillian
Leja I Ruta
Maisha H Saylors
Chavez D Albares
Cody O Amigon
Morrow O Caudy
Claire J Rulapaugh
Munro N Morasca
Deepesh K Rim
Aruna E Stenseth
Julie C Glick
Deepesh H Flosi
Stacey X Waycott
Izzy Y Caudy
Cody M Ferencz
Izzy W Briddick
Misaki H Poquette
Darci X Chui
Claire T Kolmetz
Jones B Caudy
Jones Y Paprocki
Murillo N Shinko
Kaitlin Y Foller
Stacey B Morasca
Wickens K Rulapaugh
Salvatore T Tollner
Leja C Shinko
Darci S Glick
Cody C Vocelka
Jones T Chui
Emily A Glick
Clifford X Gillian
James J Gillian
Smith L Figeroa
Maria P Shinko
Munro K Briddick
Claire X Iturbide
Ivar P Flosi
Ivar M Bowley
Sinclair O Maclead
Kadeem W Malet
Aika J Malet
IdCountryDate
1000France2026-06-30
1001Germany2026-07-14
1002Germany2026-07-11
1003United Kingdom2026-07-20
1004Spain2026-07-13
1005Brazil2026-07-11
1006Canada2026-07-18
1007Argentina2026-07-20
1008Brazil2026-07-05
1009Spain2026-07-22
1010United Kingdom2026-07-11
1011Canada2026-06-28
1012France2026-07-05
1013Australia2026-07-22
1014Australia2026-07-13
1015Italy2026-06-28
1016United Kingdom2026-06-30
1017Argentina2026-07-23
1018Brazil2026-07-07
1019India2026-07-02
1020Italy2026-07-04
1021France2026-07-07
1022Italy2026-07-06
1023Japan2026-07-11
1024India2026-07-11
1025Italy2026-07-07
1026Canada2026-06-27
1027Brazil2026-06-27
1028Canada2026-07-15
1029Australia2026-07-16
1030India2026-06-30
1031United Kingdom2026-07-06
1032Japan2026-07-18
1033United Kingdom2026-07-22
1034Germany2026-06-30
1035Japan2026-07-04
1036Russia2026-07-17
1037United Kingdom2026-06-27
1038Italy2026-07-22
1039Italy2026-07-21
1040Russia2026-07-23
1041Australia2026-07-13
1042Russia2026-07-20
1043Germany2026-06-27
1044United Kingdom2026-07-12
1045France2026-07-02
1046Australia2026-07-07
1047Argentina2026-07-08
1048Japan2026-07-24
1049Australia2026-07-06

On-Demand Data

NameIdCountryDate
Jones T Bowley1000Germany2026-06-27
Juan G Vocelka1001Spain2026-07-14
Ivar D Rulapaugh1002Germany2026-06-29
Izzy X Slusarski1003Italy2026-06-27
Nicolas S Bolognia1004Spain2026-07-02
Ashley V Poquette1005Australia2026-07-02
Julie T Albares1006Japan2026-07-14
Octavia A Nestle1007India2026-06-27
Jefferson G Malet1008Spain2026-07-13
Ricardo W Malet1009Argentina2026-07-15
Claire O Ferencz1010Germany2026-07-19
Leja R Caldarera1011Japan2026-07-03
Misaki G Garufi1012Japan2026-07-16
Misaki Z Iturbide1013Spain2026-07-07
Claire U Briddick1014France2026-06-30
Rodrigues S Ruta1015Russia2026-07-06
Chavez M Ferencz1016Germany2026-07-20
Wickens A Flosi1017Argentina2026-07-18
Maisha W Nestle1018Italy2026-07-09
Smith T Amigon1019Brazil2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon X KolmetzBrazilIvan Magalhaes QUALIFIED
Aruna Z WieserCanadaAnna Fali QUALIFIED
Chavez W PaprockiBrazilXuxue Feng UNQUALIFIED
Clifford L KolmetzUnited KingdomStephen Shaw QUALIFIED
Cody T RulapaughAustraliaAmy Elsner UNQUALIFIED
Izzy S KuskoRussiaBernardo Dominic RENEWAL
Stacey L ShinkoGermanyAsiya Javayant NEW
Alejandro R DoeArgentinaAmy Elsner PROPOSAL
Aruna S MaletCanadaIoni Bowcher QUALIFIED
Chavez O DoeAustraliaOnyama Limba NEW
Misaki Q ChuiAustraliaAsiya Javayant QUALIFIED
Deepesh J CaldareraJapanAsiya Javayant PROPOSAL
Izzy M OstroskyArgentinaAmy Elsner UNQUALIFIED
Octavia K OstroskyFranceAnna Fali NEW
Kadeem F MarrierIndiaElwin Sharvill UNQUALIFIED
Johnson H FerenczIndiaAsiya Javayant UNQUALIFIED
Smith T ButtArgentinaBernardo Dominic NEW
Faith J AmigonRussiaIvan Magalhaes PROPOSAL
Mujtaba K PerinSpainIoni Bowcher UNQUALIFIED
Kadeem I MaletItalyAmy Elsner NEGOTIATION
Maria D ShinkoBrazilAsiya Javayant RENEWAL
Ashley Q StensethBrazilAmy Elsner QUALIFIED
Deepesh X SaylorsGermanyAnna Fali NEGOTIATION
Alejandro I CaldareraIndiaOnyama Limba NEGOTIATION
Aditya S MacleadRussiaOnyama Limba NEGOTIATION
Sinclair U GillianBrazilAmy Elsner UNQUALIFIED
Salvatore X KolmetzGermanyStephen Shaw UNQUALIFIED
Murillo U GarufiJapanAsiya Javayant NEW
Leja G MaletIndiaAnna Fali QUALIFIED
Misaki E VocelkaItalyBernardo Dominic NEW
Alejandro M WhobreySpainStephen Shaw RENEWAL
Munro T WhobreyUnited KingdomBernardo Dominic UNQUALIFIED
Costa T VenereBrazilElwin Sharvill QUALIFIED
Mujtaba R PaprockiAustraliaXuxue Feng PROPOSAL
Tony Y NickaGermanyOnyama Limba NEW
Salvatore T CaldareraCanadaIoni Bowcher NEW
Deepesh K StockhamJapanAmy Elsner NEW
Darci I VocelkaItalyIoni Bowcher UNQUALIFIED
Costa U StockhamGermanyAnna Fali PROPOSAL
Mayumi M ShinkoUnited KingdomXuxue Feng 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>