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
Leon E ChuiUnited KingdomElwin Sharvill QUALIFIED
David W BriddickRussiaElwin Sharvill NEW
Aruna W MaletCanadaStephen Shaw QUALIFIED
Tony V PerinAustraliaAsiya Javayant UNQUALIFIED
Morrow I RimArgentinaIvan Magalhaes UNQUALIFIED
Jennifer L ShinkoRussiaAsiya Javayant UNQUALIFIED
Darci H BriddickIndiaOnyama Limba NEGOTIATION
Smith G BowleyAustraliaAmy Elsner UNQUALIFIED
Johnson N GillianUnited KingdomStephen Shaw NEW
Morrow I AlbaresCanadaAmy Elsner UNQUALIFIED
Wickens F GlickFranceIoni Bowcher RENEWAL
Chavez K MacleadBrazilIoni Bowcher PROPOSAL
Aditya D GauchoGermanyAsiya Javayant NEW
Smith Y VocelkaGermanyIvan Magalhaes NEGOTIATION
Isabel P WieserSpainIoni Bowcher UNQUALIFIED
Costa Y PoquetteUnited KingdomXuxue Feng RENEWAL
Aika T SergiRussiaIvan Magalhaes RENEWAL
Kadeem O AlbaresRussiaElwin Sharvill PROPOSAL
Ashley B GillianJapanAnna Fali PROPOSAL
Francesco L PerinRussiaAnna Fali NEW
Maisha C ChuiSpainAmy Elsner NEW
Isabel O OstroskyJapanIvan Magalhaes UNQUALIFIED
Ricardo L PerinUnited KingdomElwin Sharvill UNQUALIFIED
Clifford H FerenczSpainAnna Fali PROPOSAL
Alejandro R OldroydSpainIoni Bowcher RENEWAL
Mujtaba H PoquetteGermanyBernardo Dominic UNQUALIFIED
Stacey P MacleadAustraliaOnyama Limba PROPOSAL
Misaki X IturbideJapanXuxue Feng RENEWAL
Greenwood O GauchoSpainOnyama Limba PROPOSAL
James O IturbideSpainIvan Magalhaes NEGOTIATION
Greenwood Q SchemmerJapanIvan Magalhaes PROPOSAL
Emily Q GlickUnited KingdomAnna Fali NEGOTIATION
Aditya K IturbideCanadaAsiya Javayant UNQUALIFIED
Mujtaba G GillianCanadaXuxue Feng RENEWAL
Salvatore R BologniaItalyAsiya Javayant PROPOSAL
Deepesh Z OldroydRussiaAsiya Javayant QUALIFIED
James Q CaudyGermanyAmy Elsner NEW
Tony R FigeroaArgentinaAmy Elsner UNQUALIFIED
Jennifer R SaylorsRussiaIvan Magalhaes PROPOSAL
Mayumi D VenereJapanElwin Sharvill QUALIFIED
Sinclair B SchemmerSpainIvan Magalhaes RENEWAL
Smith D BowleySpainXuxue Feng PROPOSAL
Arvin D ShinkoBrazilElwin Sharvill QUALIFIED
Faith D WaycottArgentinaElwin Sharvill NEGOTIATION
Cody W AlbaresJapanAnna Fali NEW
Leon U KolmetzJapanAsiya Javayant NEW
Silvio Q CampainGermanyIoni Bowcher UNQUALIFIED
Julie Z ChuiBrazilAsiya Javayant PROPOSAL
Smith T CaldareraArgentinaAnna Fali NEGOTIATION
Misaki N MarrierRussiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia L GarufiBrazilAnna Fali PROPOSAL
Francesco R ChuiRussiaAnna Fali NEGOTIATION
Jones L CaudyBrazilAmy Elsner NEW
Salvatore O MaletItalyAsiya Javayant UNQUALIFIED
Ivar E ShinkoGermanyIoni Bowcher PROPOSAL
Cody T NickaUnited KingdomBernardo Dominic NEGOTIATION
Chavez M MacleadItalyBernardo Dominic PROPOSAL
Chavez Q RulapaughIndiaStephen Shaw UNQUALIFIED
Kadeem X RoysterRussiaIoni Bowcher QUALIFIED
Leja S CaldareraCanadaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna I KolmetzItaly2025-05-29Rangoni Of Florence NEGOTIATION63Ioni Bowcher
1001Aruna V AmigonCanada2025-05-27Buckley Miller Wright NEGOTIATION69Amy Elsner
1002David B StockhamUnited Kingdom2025-05-17Chemel, James L Cpa RENEWAL64Anna Fali
1003Munro L FerenczRussia2025-05-26Rousseaux, Michael Esq NEGOTIATION73Stephen Shaw
1004Clifford C PerinCanada2025-05-28Rousseaux, Michael Esq PROPOSAL34Elwin Sharvill
1005Cody T PerinBrazil2025-06-02Feiner Bros UNQUALIFIED74Ivan Magalhaes
1006Ivar Y CaudyArgentina2025-05-24Chanay, Jeffrey A Esq RENEWAL34Onyama Limba
1007Costa P IturbideRussia2025-05-17Chemel, James L Cpa RENEWAL23Xuxue Feng
1008Mujtaba I RimCanada2025-05-30Chemel, James L Cpa NEGOTIATION61Onyama Limba
1009Darci G PaprockiCanada2025-05-18Morlong Associates PROPOSAL51Asiya Javayant
1010Antonio Q ButtSpain2025-06-10Printing Dimensions NEW35Elwin Sharvill
1011Kaitlin X StockhamRussia2025-06-15Feltz Printing Service UNQUALIFIED19Elwin Sharvill
1012Ricardo N FollerSpain2025-05-24Commercial Press QUALIFIED7Asiya Javayant
1013Juan A StensethGermany2025-05-25Printing Dimensions RENEWAL75Ivan Magalhaes
1014Johnson Q DarakjyJapan2025-06-15Morlong Associates PROPOSAL87Ivan Magalhaes
1015Francesco P RoysterJapan2025-06-10Chanay, Jeffrey A Esq NEW3Stephen Shaw
1016Johnson S ChuiIndia2025-05-31Commercial Press RENEWAL31Ioni Bowcher
1017Maria J DilliardGermany2025-05-28Commercial Press RENEWAL7Bernardo Dominic
1018Mujtaba H CaldareraJapan2025-05-30Dorl, James J Esq NEGOTIATION9Elwin Sharvill
1019Antonio D StockhamBrazil2025-05-24Rousseaux, Michael Esq UNQUALIFIED89Stephen Shaw
1020Aditya I WaycottFrance2025-05-30Feiner Bros UNQUALIFIED80Anna Fali
1021Greenwood V CaldareraAustralia2025-06-14Dorl, James J Esq RENEWAL26Ivan Magalhaes
1022Mujtaba C FigeroaArgentina2025-06-15Chapman, Ross E Esq QUALIFIED47Ioni Bowcher
1023Jennifer M WhobreyJapan2025-05-22Commercial Press NEW53Asiya Javayant
1024Greenwood U FollerJapan2025-06-01Chanay, Jeffrey A Esq UNQUALIFIED79Stephen Shaw
1025Greenwood S TollnerUnited Kingdom2025-05-30Dorl, James J Esq NEGOTIATION48Ivan Magalhaes
1026Maria P AlbaresIndia2025-06-15Benton, John B Jr NEGOTIATION52Elwin Sharvill
1027Juan J FlosiRussia2025-06-11King, Christopher A Esq RENEWAL29Anna Fali
1028Antonio N AmigonFrance2025-06-12Printing Dimensions PROPOSAL7Anna Fali
1029Tony W RutaSpain2025-05-28Feltz Printing Service NEW69Anna Fali
1030Aditya O SergiJapan2025-05-23Commercial Press QUALIFIED67Asiya Javayant
1031Kaitlin U OldroydArgentina2025-05-27Feiner Bros NEW10Amy Elsner
1032Munro C RulapaughJapan2025-06-12Dorl, James J Esq UNQUALIFIED57Xuxue Feng
1033Nicolas J NestleIndia2025-06-04Truhlar And Truhlar Attys NEW64Bernardo Dominic
1034Stacey M SlusarskiJapan2025-05-19Commercial Press NEGOTIATION81Stephen Shaw
1035Leja S AlbaresBrazil2025-05-30Rousseaux, Michael Esq UNQUALIFIED24Ivan Magalhaes
1036Deepesh L BologniaItaly2025-06-11Truhlar And Truhlar Attys PROPOSAL41Ivan Magalhaes
1037Julie C SergiAustralia2025-05-27King, Christopher A Esq QUALIFIED17Ioni Bowcher
1038Antonio F WhobreyUnited Kingdom2025-05-31Truhlar And Truhlar Attys NEW15Asiya Javayant
1039Darci M BologniaFrance2025-05-29Chemel, James L Cpa PROPOSAL83Elwin Sharvill
1040Kadeem J MaletSpain2025-06-13Printing Dimensions QUALIFIED51Ivan Magalhaes
1041Mujtaba T PaprockiAustralia2025-06-14Truhlar And Truhlar Attys RENEWAL47Elwin Sharvill
1042Silvio R TollnerItaly2025-06-12Feiner Bros NEW61Stephen Shaw
1043Alejandro N VocelkaItaly2025-05-17Rangoni Of Florence RENEWAL57Elwin Sharvill
1044Sinclair U SergiUnited Kingdom2025-06-09Rousseaux, Michael Esq RENEWAL23Ivan Magalhaes
1045Claire V DarakjyFrance2025-05-23Chemel, James L Cpa NEW74Ivan Magalhaes
1046Greenwood A CampainSpain2025-05-23Rangoni Of Florence UNQUALIFIED84Elwin Sharvill
1047Maisha A RutaIndia2025-05-24Rangoni Of Florence UNQUALIFIED22Xuxue Feng
1048Salvatore R DilliardGermany2025-05-17Chapman, Ross E Esq NEGOTIATION43Onyama Limba
1049Deepesh F GlickSpain2025-05-22Commercial Press NEGOTIATION34Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Cody J PoquetteItalyAmy Elsner NEW
Leja R CaldareraSpainStephen Shaw NEGOTIATION
Rodrigues R GillianArgentinaAnna Fali UNQUALIFIED
Johnson A MaletSpainIvan Magalhaes PROPOSAL
Juan Y PerinIndiaIvan Magalhaes RENEWAL
James D CaldareraAustraliaAnna Fali UNQUALIFIED
Leon L BologniaItalyBernardo Dominic UNQUALIFIED
Jefferson A AmigonIndiaAnna Fali PROPOSAL
Salvatore U DoeArgentinaAnna Fali NEW
Claire M MaletBrazilXuxue Feng QUALIFIED
Aruna S RulapaughItalyIvan Magalhaes NEW
Maisha O BowleyItalyXuxue Feng NEW
Mayumi D MarrierFranceAmy Elsner PROPOSAL
Smith J IturbideFranceIvan Magalhaes PROPOSAL
Clifford O VenereItalyElwin Sharvill QUALIFIED
Izzy G VenereFranceAmy Elsner NEW
Faith R GillianCanadaIvan Magalhaes NEW
Mayumi W RoysterItalyIvan Magalhaes NEW
Chavez W SergiFranceOnyama Limba NEW
Emily P AmigonUnited KingdomAnna Fali QUALIFIED
Emily Q ButtIndiaAsiya Javayant NEW
Deepesh L ButtSpainOnyama Limba NEGOTIATION
Jones U DoeGermanyXuxue Feng NEGOTIATION
Isabel F NickaFranceBernardo Dominic RENEWAL
Nicolas Y GlickFranceStephen Shaw QUALIFIED
Izzy L GarufiCanadaBernardo Dominic UNQUALIFIED
Aruna W GillianIndiaBernardo Dominic RENEWAL
Claire R SchemmerRussiaIoni Bowcher PROPOSAL
Ricardo W GauchoAustraliaBernardo Dominic NEGOTIATION
Ivar Z ChuiIndiaStephen Shaw UNQUALIFIED
Francesco M DarakjyArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois M SergiCanadaStephen Shaw UNQUALIFIED
Julie U SlusarskiJapanIvan Magalhaes NEW
Jefferson U GarufiArgentinaOnyama Limba PROPOSAL
Clifford C GlickJapanIvan Magalhaes NEGOTIATION
Kadeem J ShinkoFranceOnyama Limba NEGOTIATION
Salvatore L GauchoSpainElwin Sharvill PROPOSAL
Misaki K CaudyUnited KingdomStephen Shaw RENEWAL
Juan I NickaSpainAnna Fali UNQUALIFIED
Deepesh F MarrierSpainStephen Shaw NEW
Leja K KuskoItalyAnna Fali PROPOSAL
David I PaprockiIndiaAnna Fali PROPOSAL
Wickens W FollerItalyStephen Shaw QUALIFIED
Aditya P FigeroaRussiaAsiya Javayant QUALIFIED
Silvio B AlbaresJapanStephen Shaw QUALIFIED
Octavia V NickaArgentinaStephen Shaw PROPOSAL
Adams J FlosiGermanyIoni Bowcher NEGOTIATION
Kadeem R VenereAustraliaOnyama Limba PROPOSAL
David H FerenczJapanXuxue Feng UNQUALIFIED
Smith Z DarakjyRussiaXuxue Feng NEGOTIATION
Frozen Columns
Name
Antonio Q Campain
Izzy I Stockham
Jefferson B Vocelka
Aditya S Wieser
Deepesh K Amigon
Isabel W Sergi
Deepesh O Vocelka
Silvio X Stenseth
Chavez C Malet
Darci P Albares
James S Rulapaugh
Antonio L Figeroa
Kaitlin X Albares
Claire A Morasca
Jones P Paprocki
Jeanfrancois X Sergi
Clifford H Rulapaugh
Johnson X Dilliard
Emily G Ostrosky
Clifford G Maclead
Munro B Venere
Mayumi V Gillian
Johnson F Sergi
Misaki F Campain
Emily W Slusarski
Costa T Poquette
Aditya U Vocelka
Maria K Butt
Darci E Poquette
Murillo H Royster
Smith Y Vocelka
Morrow E Flosi
Arvin Z Shinko
Alejandro X Caudy
Aika C Morasca
Stacey I Whobrey
Chavez L Caldarera
Isabel W Sergi
Chavez V Rulapaugh
Ivar D Schemmer
Faith A Inouye
Smith X Schemmer
Darci U Garufi
Aruna E Bolognia
Ivar D Nicka
Jefferson M Wieser
Rodrigues Y Venere
Antonio C Perin
Murillo D Flosi
David M Ostrosky
IdCountryDate
1000Germany2025-05-19
1001Brazil2025-06-08
1002France2025-06-06
1003France2025-06-15
1004Spain2025-06-01
1005Australia2025-06-03
1006Argentina2025-06-15
1007Spain2025-06-11
1008Brazil2025-06-12
1009Spain2025-06-08
1010Japan2025-05-20
1011India2025-05-19
1012Australia2025-05-31
1013Russia2025-06-06
1014Japan2025-05-19
1015United Kingdom2025-06-04
1016Argentina2025-06-07
1017United Kingdom2025-06-11
1018India2025-05-25
1019Russia2025-05-20
1020Japan2025-06-01
1021Russia2025-06-05
1022Germany2025-06-04
1023Brazil2025-06-10
1024Italy2025-05-30
1025Russia2025-05-21
1026Canada2025-06-12
1027Australia2025-05-30
1028Argentina2025-05-17
1029Germany2025-06-05
1030Australia2025-06-02
1031Spain2025-05-23
1032Italy2025-05-22
1033Australia2025-06-07
1034Brazil2025-05-30
1035Japan2025-05-27
1036India2025-05-21
1037Japan2025-06-03
1038Russia2025-06-04
1039Germany2025-06-11
1040Germany2025-06-15
1041Spain2025-06-09
1042Japan2025-06-04
1043France2025-05-19
1044India2025-05-28
1045Brazil2025-06-10
1046Argentina2025-06-09
1047Italy2025-05-25
1048United Kingdom2025-05-19
1049Spain2025-06-11

On-Demand Data

NameIdCountryDate
Misaki S Ruta1000Spain2025-06-13
Nicolas U Maclead1001Italy2025-06-04
Munro Y Royster1002United Kingdom2025-05-18
Ricardo D Inouye1003Japan2025-06-15
Jeanfrancois I Stockham1004Australia2025-05-29
Ashley P Kolmetz1005France2025-06-15
Mujtaba U Foller1006Japan2025-06-11
Greenwood V Saylors1007France2025-06-07
Aika K Rulapaugh1008Japan2025-05-26
Johnson G Nestle1009Russia2025-05-28
Cody Q Caudy1010Brazil2025-06-13
Kaitlin Z Venere1011Germany2025-06-04
Kaitlin J Malet1012Spain2025-05-24
Nicolas C Stenseth1013Germany2025-06-05
Isabel A Paprocki1014France2025-05-23
Salvatore R Malet1015Italy2025-06-08
Aika Y Caudy1016France2025-06-14
Nicolas Z Foller1017Italy2025-06-01
Deepesh Y Stenseth1018Germany2025-05-17
Ivar S Bowley1019Brazil2025-06-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer M PoquetteUnited KingdomAmy Elsner UNQUALIFIED
David B OstroskyRussiaAsiya Javayant RENEWAL
Jones U KuskoAustraliaAsiya Javayant QUALIFIED
Aika E OstroskyFranceStephen Shaw RENEWAL
Mayumi C FollerSpainOnyama Limba QUALIFIED
Kaitlin T ChuiSpainStephen Shaw UNQUALIFIED
Nicolas F MaletSpainAsiya Javayant NEW
Aditya O MacleadIndiaAmy Elsner NEW
Clifford Z KuskoCanadaIoni Bowcher QUALIFIED
Clifford J KolmetzIndiaIvan Magalhaes QUALIFIED
Tony R FerenczJapanBernardo Dominic NEW
Stacey A PoquetteGermanyAsiya Javayant RENEWAL
Ivar N ShinkoFranceIvan Magalhaes RENEWAL
Rodrigues Q PoquetteAustraliaElwin Sharvill PROPOSAL
James U GillianCanadaAnna Fali UNQUALIFIED
Kadeem N PaprockiJapanAnna Fali UNQUALIFIED
Alejandro G VocelkaIndiaStephen Shaw NEW
Izzy V OldroydIndiaBernardo Dominic PROPOSAL
Ricardo W SchemmerRussiaElwin Sharvill PROPOSAL
Francesco K MacleadBrazilIvan Magalhaes NEW
Nicolas U StensethGermanyStephen Shaw UNQUALIFIED
Emily C InouyeFranceXuxue Feng RENEWAL
Johnson W RoysterItalyAsiya Javayant QUALIFIED
Isabel B PaprockiAustraliaXuxue Feng NEW
Clifford F RulapaughBrazilAnna Fali NEGOTIATION
Sinclair I FigeroaGermanyAsiya Javayant RENEWAL
Wickens T PerinItalyIoni Bowcher NEGOTIATION
Kadeem N GillianItalyElwin Sharvill RENEWAL
Sinclair M MacleadUnited KingdomElwin Sharvill UNQUALIFIED
Chavez W GarufiUnited KingdomElwin Sharvill NEGOTIATION
Costa E GarufiAustraliaAsiya Javayant QUALIFIED
Kadeem E OldroydFranceAsiya Javayant NEW
Kadeem A KuskoUnited KingdomElwin Sharvill QUALIFIED
Antonio V SchemmerArgentinaOnyama Limba UNQUALIFIED
Faith F WaycottFranceIvan Magalhaes UNQUALIFIED
Morrow D RulapaughJapanIvan Magalhaes PROPOSAL
Johnson S SergiItalyElwin Sharvill NEW
Emily Z NickaJapanIoni Bowcher NEW
Wickens Z NestleBrazilOnyama Limba RENEWAL
Emily M GarufiJapanIoni Bowcher 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>