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 P MarrierFranceElwin Sharvill UNQUALIFIED
Jennifer F SchemmerJapanAsiya Javayant QUALIFIED
Wickens T GauchoSpainIvan Magalhaes NEGOTIATION
Smith V SlusarskiCanadaBernardo Dominic PROPOSAL
Jeanfrancois Y RutaUnited KingdomElwin Sharvill NEW
Maisha R WaycottUnited KingdomAsiya Javayant UNQUALIFIED
Leja E OstroskyAustraliaAnna Fali NEW
Octavia Z GillianArgentinaOnyama Limba NEGOTIATION
Costa L RimJapanAsiya Javayant QUALIFIED
Juan G SchemmerJapanBernardo Dominic NEGOTIATION
Kadeem F ShinkoCanadaXuxue Feng NEGOTIATION
Kaitlin I StensethJapanAmy Elsner NEW
Johnson T NickaIndiaStephen Shaw NEW
David T DarakjySpainIoni Bowcher PROPOSAL
Ashley N KuskoUnited KingdomXuxue Feng NEW
Aditya N GauchoRussiaIvan Magalhaes RENEWAL
Clifford H CampainArgentinaIoni Bowcher NEGOTIATION
Julie L CaldareraSpainAnna Fali NEGOTIATION
Munro W StockhamSpainAmy Elsner QUALIFIED
Faith Y MorascaGermanyAnna Fali NEW
Clifford I PoquetteAustraliaStephen Shaw QUALIFIED
Ashley N VocelkaSpainIvan Magalhaes QUALIFIED
Morrow F SaylorsSpainBernardo Dominic UNQUALIFIED
David W SlusarskiFranceXuxue Feng PROPOSAL
Mayumi R MacleadBrazilAmy Elsner PROPOSAL
Costa C MaletSpainAsiya Javayant UNQUALIFIED
Mayumi I GlickRussiaAsiya Javayant NEGOTIATION
Silvio I RutaJapanIvan Magalhaes QUALIFIED
David G RimCanadaElwin Sharvill NEW
Faith J VocelkaGermanyIoni Bowcher QUALIFIED
Aika U WaycottFranceXuxue Feng QUALIFIED
Greenwood O PerinFranceAnna Fali QUALIFIED
Clifford P WieserIndiaStephen Shaw NEGOTIATION
Ricardo B WaycottFranceAmy Elsner UNQUALIFIED
Darci H ShinkoIndiaAsiya Javayant QUALIFIED
Misaki E SaylorsBrazilAmy Elsner UNQUALIFIED
Leon N KuskoIndiaIoni Bowcher RENEWAL
Maisha U FollerRussiaBernardo Dominic NEGOTIATION
Silvio T DilliardBrazilStephen Shaw NEW
Julie J NestleJapanAsiya Javayant RENEWAL
Jennifer F ShinkoIndiaAsiya Javayant NEGOTIATION
Darci L CaldareraJapanElwin Sharvill NEW
Francesco S SchemmerFranceStephen Shaw NEGOTIATION
Faith S BologniaIndiaOnyama Limba UNQUALIFIED
Rodrigues N NestleItalyIoni Bowcher QUALIFIED
Jennifer R CampainSpainElwin Sharvill QUALIFIED
Nicolas R PaprockiJapanAsiya Javayant UNQUALIFIED
Morrow U IturbideRussiaAmy Elsner NEGOTIATION
David X RulapaughArgentinaAsiya Javayant UNQUALIFIED
Alejandro Z VocelkaArgentinaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois E MacleadBrazilXuxue Feng RENEWAL
Greenwood I SlusarskiCanadaAsiya Javayant NEW
Misaki F VenereAustraliaElwin Sharvill UNQUALIFIED
Julie Q RoysterUnited KingdomAsiya Javayant NEW
Aruna E MacleadRussiaIoni Bowcher NEGOTIATION
Ivar S GillianBrazilOnyama Limba NEW
Costa Y BowleyItalyBernardo Dominic NEGOTIATION
Juan S KuskoJapanXuxue Feng PROPOSAL
Ivar Y StensethJapanBernardo Dominic NEW
Ricardo F WieserArgentinaAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh J RutaSpain2026-07-28Rangoni Of Florence PROPOSAL90Bernardo Dominic
1001David Q InouyeAustralia2026-07-26Dorl, James J Esq QUALIFIED22Amy Elsner
1002Cody H OldroydRussia2026-08-15Chapman, Ross E Esq NEW70Ivan Magalhaes
1003Faith T FlosiRussia2026-08-15Chanay, Jeffrey A Esq UNQUALIFIED12Amy Elsner
1004Silvio X MaletBrazil2026-08-13King, Christopher A Esq NEW98Elwin Sharvill
1005Jones S MacleadJapan2026-08-11Printing Dimensions PROPOSAL27Xuxue Feng
1006Jennifer D FigeroaArgentina2026-08-12Chemel, James L Cpa UNQUALIFIED29Elwin Sharvill
1007Ivar A FollerUnited Kingdom2026-08-10Feltz Printing Service RENEWAL73Xuxue Feng
1008Leja A SergiItaly2026-08-09Benton, John B Jr UNQUALIFIED42Anna Fali
1009Clifford A MarrierRussia2026-08-07Rangoni Of Florence UNQUALIFIED79Bernardo Dominic
1010Wickens S FigeroaArgentina2026-08-07Buckley Miller Wright RENEWAL51Amy Elsner
1011Jones X WhobreyIndia2026-07-31Chanay, Jeffrey A Esq NEW44Elwin Sharvill
1012Julie G GillianArgentina2026-07-23Commercial Press NEGOTIATION17Bernardo Dominic
1013Wickens E ButtSpain2026-07-31Printing Dimensions PROPOSAL55Ioni Bowcher
1014Juan H MorascaSpain2026-08-16Rousseaux, Michael Esq QUALIFIED33Bernardo Dominic
1015Costa P KuskoFrance2026-08-08Chapman, Ross E Esq RENEWAL89Onyama Limba
1016Aditya H WieserRussia2026-08-13Benton, John B Jr UNQUALIFIED0Xuxue Feng
1017Leon O KuskoRussia2026-07-31King, Christopher A Esq UNQUALIFIED72Anna Fali
1018Ricardo R GauchoSpain2026-07-23Truhlar And Truhlar Attys PROPOSAL18Anna Fali
1019Aika I MacleadUnited Kingdom2026-07-23Commercial Press QUALIFIED59Stephen Shaw
1020Isabel H AlbaresItaly2026-08-14Rousseaux, Michael Esq NEW61Bernardo Dominic
1021Ricardo Q MaletIndia2026-08-07Chemel, James L Cpa RENEWAL29Bernardo Dominic
1022Wickens N AmigonUnited Kingdom2026-08-06Rousseaux, Michael Esq RENEWAL31Ivan Magalhaes
1023Ricardo X RoysterArgentina2026-08-13Commercial Press RENEWAL80Elwin Sharvill
1024Maisha S RutaSpain2026-08-07Chanay, Jeffrey A Esq RENEWAL67Anna Fali
1025Ashley H RoysterRussia2026-07-19Chapman, Ross E Esq QUALIFIED51Ivan Magalhaes
1026Sinclair Z StockhamFrance2026-07-22Chanay, Jeffrey A Esq NEGOTIATION18Ivan Magalhaes
1027Salvatore O VocelkaCanada2026-07-20Feiner Bros PROPOSAL19Anna Fali
1028Tony F FerenczRussia2026-08-07Rousseaux, Michael Esq RENEWAL62Amy Elsner
1029Leon C VenereIndia2026-07-24Chapman, Ross E Esq NEGOTIATION74Anna Fali
1030Claire V GarufiArgentina2026-07-18Chanay, Jeffrey A Esq UNQUALIFIED88Stephen Shaw
1031Costa W ButtUnited Kingdom2026-08-03Truhlar And Truhlar Attys NEW48Ioni Bowcher
1032Greenwood N PaprockiIndia2026-07-21King, Christopher A Esq UNQUALIFIED35Onyama Limba
1033Ivar V CaldareraRussia2026-08-14Buckley Miller Wright PROPOSAL7Elwin Sharvill
1034Julie K StensethRussia2026-07-19Commercial Press NEW83Asiya Javayant
1035Mayumi Z WhobreyAustralia2026-08-04Dorl, James J Esq PROPOSAL62Bernardo Dominic
1036Deepesh E MacleadGermany2026-07-30Dorl, James J Esq UNQUALIFIED55Onyama Limba
1037Clifford M ShinkoCanada2026-07-23Truhlar And Truhlar Attys PROPOSAL59Amy Elsner
1038Darci X OldroydArgentina2026-07-22Rangoni Of Florence QUALIFIED27Amy Elsner
1039Ricardo B MaletGermany2026-08-14Rangoni Of Florence UNQUALIFIED39Ioni Bowcher
1040Cody T PoquetteFrance2026-08-07Truhlar And Truhlar Attys UNQUALIFIED35Xuxue Feng
1041Juan B WaycottJapan2026-07-28Feltz Printing Service RENEWAL14Bernardo Dominic
1042Adams G GauchoAustralia2026-07-23Printing Dimensions PROPOSAL63Asiya Javayant
1043Aditya P DilliardAustralia2026-07-22Printing Dimensions QUALIFIED13Xuxue Feng
1044Morrow J AmigonCanada2026-07-26Feiner Bros NEGOTIATION80Amy Elsner
1045Chavez K AmigonBrazil2026-07-21Feiner Bros NEW4Onyama Limba
1046Ivar F FollerSpain2026-08-03Dorl, James J Esq UNQUALIFIED11Asiya Javayant
1047Costa G KolmetzAustralia2026-08-12Buckley Miller Wright PROPOSAL7Ivan Magalhaes
1048Stacey X OstroskyAustralia2026-07-27Printing Dimensions QUALIFIED67Bernardo Dominic
1049Silvio V FlosiAustralia2026-08-03Dorl, James J Esq NEW64Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Wickens J StockhamGermanyBernardo Dominic NEGOTIATION
Tony B FerenczFranceOnyama Limba NEGOTIATION
Chavez D DoeCanadaIoni Bowcher NEW
James X FollerJapanStephen Shaw NEGOTIATION
Stacey A GlickCanadaAsiya Javayant UNQUALIFIED
Aika E InouyeBrazilOnyama Limba NEW
Ivar H GlickSpainIvan Magalhaes UNQUALIFIED
Deepesh R SaylorsBrazilBernardo Dominic NEW
Adams P RimIndiaIvan Magalhaes RENEWAL
Aruna U OldroydUnited KingdomAnna Fali UNQUALIFIED
Morrow B PerinFranceStephen Shaw NEGOTIATION
Costa J CaldareraIndiaIoni Bowcher PROPOSAL
Cody M BriddickArgentinaAmy Elsner UNQUALIFIED
Nicolas R PaprockiItalyBernardo Dominic NEW
Kaitlin D FollerItalyStephen Shaw QUALIFIED
Leon G ShinkoItalyAnna Fali PROPOSAL
Jennifer L OldroydRussiaAmy Elsner RENEWAL
Smith U VocelkaJapanOnyama Limba NEGOTIATION
Claire W DarakjyRussiaIvan Magalhaes QUALIFIED
Octavia W RimFranceOnyama Limba NEGOTIATION
Adams R MarrierAustraliaAmy Elsner UNQUALIFIED
Costa A WieserBrazilBernardo Dominic QUALIFIED
Smith F FerenczGermanyElwin Sharvill NEGOTIATION
Ivar G BriddickCanadaIoni Bowcher PROPOSAL
Morrow Q MaletIndiaXuxue Feng NEGOTIATION
Juan X PoquetteGermanyAnna Fali QUALIFIED
Juan N CaudyAustraliaIvan Magalhaes PROPOSAL
Francesco J ButtAustraliaOnyama Limba PROPOSAL
Deepesh O MorascaGermanyIvan Magalhaes RENEWAL
Ivar Q ChuiBrazilOnyama Limba QUALIFIED
Jennifer F CampainUnited KingdomIvan Magalhaes UNQUALIFIED
Cody Q AmigonGermanyAsiya Javayant QUALIFIED
Isabel M RimArgentinaAnna Fali QUALIFIED
Ashley B PerinItalyXuxue Feng PROPOSAL
Kadeem W ShinkoItalyAnna Fali NEW
Jennifer P AlbaresItalyAmy Elsner PROPOSAL
Kaitlin F WieserIndiaStephen Shaw UNQUALIFIED
Cody S KuskoJapanBernardo Dominic PROPOSAL
Johnson K OldroydCanadaXuxue Feng PROPOSAL
David A WieserItalyXuxue Feng NEW
Johnson D SlusarskiAustraliaAnna Fali UNQUALIFIED
Jones Z BologniaArgentinaAsiya Javayant RENEWAL
Arvin T CampainRussiaAsiya Javayant UNQUALIFIED
Maisha J BologniaGermanyStephen Shaw NEW
Deepesh L GillianFranceAnna Fali NEGOTIATION
Smith I RoysterBrazilAnna Fali QUALIFIED
Chavez F ShinkoIndiaAsiya Javayant UNQUALIFIED
Mayumi X MaletArgentinaAnna Fali QUALIFIED
Cody Y ChuiIndiaAmy Elsner NEGOTIATION
Johnson U FollerRussiaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Francesco D Malet
Clifford H Stenseth
Stacey O Kolmetz
Jennifer M Caudy
Misaki V Stockham
James J Vocelka
Silvio B Maclead
Jennifer L Nestle
Greenwood L Maclead
Leon Y Poquette
Aruna P Butt
Leon U Caldarera
Emily S Rulapaugh
Antonio E Stenseth
Francesco Y Nestle
Jennifer M Glick
Munro D Butt
Claire K Morasca
Murillo D Maclead
Kadeem F Iturbide
Leon P Stockham
Alejandro Q Rim
Darci W Caldarera
Sinclair J Campain
Jones U Perin
Aika L Darakjy
Izzy J Iturbide
Julie Y Morasca
Leja X Flosi
Cody M Bolognia
Stacey X Albares
David C Ostrosky
Smith K Doe
Maria U Kusko
Darci G Butt
Costa G Rulapaugh
Aruna E Glick
Kadeem N Malet
Francesco R Gillian
Aditya K Bolognia
James B Stenseth
Aruna O Shinko
Deepesh R Morasca
Nicolas R Oldroyd
Jefferson I Royster
Wickens G Darakjy
Alejandro L Whobrey
Misaki N Rim
Jeanfrancois D Nicka
Jeanfrancois P Shinko
IdCountryDate
1000Spain2026-08-11
1001Australia2026-08-09
1002Argentina2026-08-09
1003Argentina2026-07-22
1004United Kingdom2026-07-24
1005France2026-07-26
1006France2026-07-19
1007Russia2026-08-01
1008India2026-08-06
1009Canada2026-08-12
1010Russia2026-08-10
1011Canada2026-08-03
1012Spain2026-07-19
1013Brazil2026-08-07
1014United Kingdom2026-07-26
1015Argentina2026-07-31
1016France2026-08-01
1017Italy2026-08-06
1018France2026-07-19
1019Brazil2026-07-29
1020Italy2026-07-22
1021Australia2026-08-08
1022India2026-07-31
1023Japan2026-08-06
1024Italy2026-08-01
1025Germany2026-08-15
1026Brazil2026-08-04
1027United Kingdom2026-08-02
1028India2026-08-10
1029India2026-08-10
1030Brazil2026-08-14
1031Spain2026-08-13
1032Russia2026-08-04
1033United Kingdom2026-08-05
1034United Kingdom2026-08-10
1035Canada2026-07-27
1036Japan2026-08-10
1037Canada2026-08-03
1038France2026-07-28
1039Spain2026-07-31
1040Italy2026-08-01
1041Russia2026-07-23
1042Japan2026-07-28
1043Australia2026-07-22
1044United Kingdom2026-08-01
1045Canada2026-08-14
1046Russia2026-07-18
1047Germany2026-08-13
1048Italy2026-08-12
1049Japan2026-07-18

On-Demand Data

NameIdCountryDate
Salvatore R Bowley1000United Kingdom2026-08-11
Arvin I Kusko1001Japan2026-07-31
Octavia V Morasca1002Australia2026-08-02
Ashley Y Wieser1003Spain2026-07-28
Costa A Ferencz1004Brazil2026-07-23
Chavez J Dilliard1005Australia2026-08-01
Jefferson Y Bolognia1006India2026-08-14
Arvin O Albares1007Russia2026-08-09
Chavez F Kusko1008Russia2026-08-12
Smith D Chui1009Canada2026-08-08
Wickens K Chui1010Canada2026-08-14
Maisha P Venere1011Australia2026-07-31
Ashley B Ferencz1012Australia2026-08-10
Aditya U Saylors1013Canada2026-08-12
Octavia Y Vocelka1014Russia2026-07-27
Greenwood M Gillian1015Canada2026-07-30
Wickens T Foller1016Germany2026-08-15
Silvio H Inouye1017India2026-08-01
Aika C Doe1018Australia2026-08-08
Aditya V Kusko1019Japan2026-08-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa U MaletJapanAnna Fali UNQUALIFIED
Emily S PerinRussiaElwin Sharvill UNQUALIFIED
Jennifer X SaylorsJapanOnyama Limba UNQUALIFIED
Cody K GlickBrazilAsiya Javayant NEW
Tony E BologniaGermanyIoni Bowcher UNQUALIFIED
Aika J GillianGermanyElwin Sharvill PROPOSAL
Tony A SaylorsBrazilAsiya Javayant RENEWAL
Arvin X RutaItalyXuxue Feng PROPOSAL
Cody E StensethAustraliaIoni Bowcher PROPOSAL
James I DoeUnited KingdomIoni Bowcher UNQUALIFIED
Aditya O DoeSpainBernardo Dominic UNQUALIFIED
Aika B MaletSpainIvan Magalhaes NEGOTIATION
Chavez B MacleadArgentinaBernardo Dominic UNQUALIFIED
Murillo R WieserUnited KingdomXuxue Feng QUALIFIED
Greenwood S VocelkaArgentinaBernardo Dominic NEGOTIATION
Morrow C InouyeFranceStephen Shaw QUALIFIED
Antonio R InouyeJapanBernardo Dominic NEGOTIATION
Salvatore W RutaSpainIoni Bowcher QUALIFIED
Misaki M RimBrazilAmy Elsner QUALIFIED
Leja E RulapaughSpainBernardo Dominic UNQUALIFIED
Cody K FerenczGermanyIvan Magalhaes UNQUALIFIED
Morrow F InouyeBrazilBernardo Dominic PROPOSAL
Aika I MacleadCanadaBernardo Dominic UNQUALIFIED
Nicolas I KuskoUnited KingdomStephen Shaw QUALIFIED
Mujtaba Z GarufiJapanAsiya Javayant UNQUALIFIED
Sinclair L InouyeIndiaAmy Elsner NEGOTIATION
Ricardo N GillianJapanAnna Fali QUALIFIED
Emily G FerenczJapanBernardo Dominic NEGOTIATION
Nicolas E PaprockiGermanyIvan Magalhaes PROPOSAL
Jennifer M GauchoCanadaOnyama Limba NEW
Nicolas M IturbideSpainXuxue Feng NEW
Cody F RulapaughGermanyBernardo Dominic NEGOTIATION
Aruna S SlusarskiCanadaIoni Bowcher NEW
Chavez M SergiAustraliaBernardo Dominic PROPOSAL
Ivar U StockhamCanadaBernardo Dominic UNQUALIFIED
Francesco W IturbideFranceXuxue Feng UNQUALIFIED
Silvio T PerinGermanyOnyama Limba PROPOSAL
Isabel Q RoysterAustraliaIvan Magalhaes RENEWAL
Juan U MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Rodrigues Q MacleadSpainStephen Shaw NEGOTIATION

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