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
Maisha A NickaItalyAsiya Javayant UNQUALIFIED
Francesco A StockhamGermanyIvan Magalhaes PROPOSAL
Octavia Y MorascaBrazilIoni Bowcher RENEWAL
Leja C RutaItalyAnna Fali PROPOSAL
Silvio Y PaprockiGermanyElwin Sharvill NEW
Jeanfrancois F AlbaresIndiaIvan Magalhaes PROPOSAL
Smith B WieserSpainBernardo Dominic PROPOSAL
Julie N MaletCanadaElwin Sharvill NEGOTIATION
Jennifer Z RimArgentinaBernardo Dominic RENEWAL
Nicolas N FigeroaArgentinaIoni Bowcher NEGOTIATION
Wickens X GlickIndiaAsiya Javayant QUALIFIED
Munro B VenereJapanStephen Shaw UNQUALIFIED
Jones I ChuiArgentinaElwin Sharvill UNQUALIFIED
Stacey N MorascaBrazilIoni Bowcher UNQUALIFIED
Ricardo J RoysterIndiaOnyama Limba PROPOSAL
Darci L MaletItalyXuxue Feng RENEWAL
Ivar Y GlickIndiaAmy Elsner UNQUALIFIED
Jennifer U AlbaresRussiaStephen Shaw NEW
Aika S ChuiSpainAmy Elsner PROPOSAL
Deepesh J GlickBrazilElwin Sharvill UNQUALIFIED
Smith E FlosiSpainIvan Magalhaes NEW
Alejandro E SlusarskiCanadaIvan Magalhaes PROPOSAL
Aika B PaprockiRussiaXuxue Feng UNQUALIFIED
Sinclair R RulapaughIndiaAsiya Javayant PROPOSAL
Aika O GillianCanadaXuxue Feng PROPOSAL
Tony Y CampainAustraliaIvan Magalhaes UNQUALIFIED
Darci A InouyeItalyAnna Fali PROPOSAL
Rodrigues K PerinCanadaOnyama Limba QUALIFIED
Chavez A SaylorsBrazilIvan Magalhaes QUALIFIED
Maria P GlickAustraliaOnyama Limba RENEWAL
Jefferson Z CampainIndiaAsiya Javayant PROPOSAL
Claire X StensethItalyAmy Elsner NEW
Aruna D DilliardCanadaAsiya Javayant NEW
Maria E MorascaBrazilBernardo Dominic NEW
Alejandro I ShinkoSpainXuxue Feng UNQUALIFIED
Jeanfrancois H DilliardGermanyIoni Bowcher PROPOSAL
Adams G DilliardAustraliaXuxue Feng UNQUALIFIED
Darci D PoquetteUnited KingdomAmy Elsner NEGOTIATION
Kaitlin O PaprockiAustraliaAsiya Javayant UNQUALIFIED
Aruna P FlosiJapanElwin Sharvill RENEWAL
Jeanfrancois T WhobreyBrazilElwin Sharvill QUALIFIED
Salvatore Y NickaArgentinaStephen Shaw PROPOSAL
James B CaldareraIndiaXuxue Feng NEW
Nicolas D MaletFranceAsiya Javayant UNQUALIFIED
Darci P RimArgentinaOnyama Limba NEW
Faith U GlickArgentinaAsiya Javayant UNQUALIFIED
Ashley G MorascaSpainXuxue Feng NEW
Faith M WieserUnited KingdomBernardo Dominic NEGOTIATION
Francesco G TollnerUnited KingdomOnyama Limba PROPOSAL
Rodrigues E GlickArgentinaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aditya H PoquetteIndiaElwin Sharvill PROPOSAL
Maria V RutaAustraliaElwin Sharvill NEW
Johnson C SchemmerCanadaBernardo Dominic UNQUALIFIED
Izzy X ChuiSpainIvan Magalhaes PROPOSAL
Costa J MorascaIndiaAmy Elsner UNQUALIFIED
Clifford M OldroydJapanAnna Fali QUALIFIED
Sinclair A StensethAustraliaElwin Sharvill QUALIFIED
Stacey C GlickJapanAmy Elsner UNQUALIFIED
Stacey D FlosiItalyBernardo Dominic PROPOSAL
Clifford Z VenereArgentinaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki J GauchoArgentina2026-06-28Buckley Miller Wright UNQUALIFIED44Asiya Javayant
1001Mujtaba T SaylorsItaly2026-06-21Feltz Printing Service NEW6Onyama Limba
1002Murillo B OldroydGermany2026-07-05Morlong Associates NEGOTIATION5Onyama Limba
1003Mayumi N RutaGermany2026-06-13Benton, John B Jr NEGOTIATION12Onyama Limba
1004Ashley R RulapaughGermany2026-06-11Feiner Bros PROPOSAL0Ioni Bowcher
1005Greenwood N MorascaBrazil2026-07-01Feiner Bros UNQUALIFIED17Ivan Magalhaes
1006Isabel R InouyeSpain2026-06-11Chanay, Jeffrey A Esq NEW49Amy Elsner
1007Sinclair S VocelkaRussia2026-06-20Dorl, James J Esq QUALIFIED39Elwin Sharvill
1008Izzy A PerinBrazil2026-06-24Feltz Printing Service NEGOTIATION35Bernardo Dominic
1009Darci U SchemmerBrazil2026-06-17Rousseaux, Michael Esq QUALIFIED50Asiya Javayant
1010Kadeem X BowleyCanada2026-06-26Commercial Press QUALIFIED73Stephen Shaw
1011Costa G DoeGermany2026-07-04Feiner Bros PROPOSAL82Ioni Bowcher
1012Nicolas P RutaArgentina2026-06-19Commercial Press UNQUALIFIED4Ioni Bowcher
1013Julie H RutaItaly2026-06-22King, Christopher A Esq RENEWAL35Ivan Magalhaes
1014Maria S KolmetzSpain2026-06-09Rousseaux, Michael Esq QUALIFIED68Anna Fali
1015Ricardo A StensethJapan2026-06-17Feltz Printing Service UNQUALIFIED60Asiya Javayant
1016Clifford J DarakjyAustralia2026-06-23Printing Dimensions NEGOTIATION27Bernardo Dominic
1017Clifford T ShinkoAustralia2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED19Anna Fali
1018Francesco I CampainSpain2026-06-20Truhlar And Truhlar Attys UNQUALIFIED70Xuxue Feng
1019Claire H AlbaresIndia2026-06-18Benton, John B Jr QUALIFIED66Xuxue Feng
1020Maria G ButtSpain2026-06-16Feiner Bros PROPOSAL52Ioni Bowcher
1021Misaki N TollnerJapan2026-06-08Chemel, James L Cpa PROPOSAL61Ioni Bowcher
1022Jennifer E PoquetteGermany2026-06-14Benton, John B Jr NEGOTIATION11Stephen Shaw
1023Tony W VocelkaArgentina2026-06-20Rousseaux, Michael Esq NEW96Onyama Limba
1024Ricardo M FollerCanada2026-06-29Commercial Press NEGOTIATION45Ioni Bowcher
1025Salvatore A GillianRussia2026-06-16Truhlar And Truhlar Attys NEW34Stephen Shaw
1026Ricardo N FerenczGermany2026-06-13Rangoni Of Florence QUALIFIED37Elwin Sharvill
1027Rodrigues J SaylorsJapan2026-07-02Chemel, James L Cpa UNQUALIFIED85Ioni Bowcher
1028Aika W WhobreyBrazil2026-07-06Chemel, James L Cpa UNQUALIFIED22Onyama Limba
1029Salvatore D MaletAustralia2026-06-22Rousseaux, Michael Esq RENEWAL56Elwin Sharvill
1030Aruna U CaudyCanada2026-06-30Morlong Associates UNQUALIFIED1Xuxue Feng
1031Faith N FollerItaly2026-06-13King, Christopher A Esq RENEWAL36Onyama Limba
1032Kaitlin M GillianItaly2026-06-07Morlong Associates NEW12Elwin Sharvill
1033Costa P PaprockiGermany2026-06-20King, Christopher A Esq PROPOSAL84Asiya Javayant
1034Costa E GarufiSpain2026-06-22Commercial Press NEW46Xuxue Feng
1035Izzy O BologniaUnited Kingdom2026-06-16Dorl, James J Esq QUALIFIED73Asiya Javayant
1036Ricardo T DarakjyItaly2026-06-25King, Christopher A Esq QUALIFIED77Bernardo Dominic
1037Clifford F NestleFrance2026-06-10Dorl, James J Esq NEW14Xuxue Feng
1038Leja K RoysterGermany2026-06-29Chanay, Jeffrey A Esq NEGOTIATION32Ivan Magalhaes
1039Costa C PoquetteItaly2026-07-06Feiner Bros RENEWAL67Onyama Limba
1040Rodrigues Y NickaRussia2026-06-28Truhlar And Truhlar Attys PROPOSAL29Elwin Sharvill
1041Izzy R DilliardRussia2026-06-14Commercial Press NEGOTIATION48Bernardo Dominic
1042Alejandro X VocelkaUnited Kingdom2026-06-07Chemel, James L Cpa NEW34Anna Fali
1043Octavia D GauchoItaly2026-07-03Feiner Bros NEGOTIATION57Asiya Javayant
1044Johnson T MarrierArgentina2026-07-01Commercial Press UNQUALIFIED93Bernardo Dominic
1045Clifford V StensethItaly2026-06-15Chapman, Ross E Esq NEW28Ivan Magalhaes
1046Claire C KolmetzJapan2026-06-12Buckley Miller Wright NEGOTIATION62Elwin Sharvill
1047Murillo G AlbaresFrance2026-06-10Rangoni Of Florence NEW36Xuxue Feng
1048Emily U OldroydAustralia2026-06-28Benton, John B Jr UNQUALIFIED40Asiya Javayant
1049Leon Y AmigonItaly2026-07-01Chapman, Ross E Esq RENEWAL34Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Sinclair B RoysterJapanStephen Shaw PROPOSAL
Maria F BologniaRussiaBernardo Dominic UNQUALIFIED
Sinclair S GillianIndiaAmy Elsner RENEWAL
Cody C RulapaughItalyAmy Elsner UNQUALIFIED
Chavez B KuskoJapanElwin Sharvill UNQUALIFIED
Faith P DoeGermanyElwin Sharvill NEGOTIATION
Wickens D OldroydAustraliaXuxue Feng UNQUALIFIED
Johnson V CaldareraAustraliaAsiya Javayant NEW
Sinclair A SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Misaki Z VocelkaFranceIvan Magalhaes UNQUALIFIED
Octavia Z SaylorsFranceIoni Bowcher RENEWAL
Ashley U SchemmerFranceIvan Magalhaes UNQUALIFIED
Darci V FlosiJapanElwin Sharvill QUALIFIED
Ashley X FlosiCanadaAsiya Javayant NEGOTIATION
Greenwood N SaylorsGermanyBernardo Dominic UNQUALIFIED
James G FlosiFranceXuxue Feng NEGOTIATION
Smith I WhobreySpainIvan Magalhaes RENEWAL
David F WhobreyRussiaIvan Magalhaes RENEWAL
Aruna N MaletItalyStephen Shaw RENEWAL
Sinclair Q WieserGermanyAsiya Javayant RENEWAL
Costa S MacleadJapanOnyama Limba RENEWAL
Chavez A WhobreyGermanyIvan Magalhaes NEGOTIATION
Maisha A BriddickGermanyAsiya Javayant PROPOSAL
Claire A BowleySpainAsiya Javayant NEW
Jefferson H SergiAustraliaAsiya Javayant NEW
Munro E ChuiJapanXuxue Feng QUALIFIED
Cody C DarakjyCanadaElwin Sharvill PROPOSAL
Kadeem B RutaSpainXuxue Feng NEW
Sinclair H StockhamCanadaAnna Fali NEW
Kaitlin Z VocelkaSpainIoni Bowcher QUALIFIED
Adams S SlusarskiAustraliaIvan Magalhaes UNQUALIFIED
Faith K CampainUnited KingdomIoni Bowcher NEW
Jeanfrancois N IturbideAustraliaIvan Magalhaes UNQUALIFIED
Isabel Y RoysterItalyStephen Shaw UNQUALIFIED
Octavia A VenereRussiaAsiya Javayant RENEWAL
Nicolas G SaylorsJapanAnna Fali UNQUALIFIED
Juan G PerinArgentinaIvan Magalhaes NEGOTIATION
Clifford L FlosiAustraliaAmy Elsner RENEWAL
Aditya P SaylorsUnited KingdomBernardo Dominic NEW
Munro B AlbaresIndiaAmy Elsner QUALIFIED
Ricardo U PoquetteItalyOnyama Limba QUALIFIED
David V MarrierRussiaIoni Bowcher UNQUALIFIED
Cody A RoysterCanadaStephen Shaw UNQUALIFIED
Cody D VocelkaSpainAmy Elsner RENEWAL
Darci Y ChuiCanadaOnyama Limba NEGOTIATION
Johnson L BologniaAustraliaStephen Shaw NEW
Octavia V AmigonBrazilAmy Elsner RENEWAL
Tony G SaylorsBrazilAmy Elsner QUALIFIED
Jefferson J MaletAustraliaXuxue Feng NEGOTIATION
Maisha W BologniaGermanyXuxue Feng UNQUALIFIED
Frozen Columns
Name
Kaitlin T Malet
Maria X Stenseth
Deepesh H Kolmetz
Ivar V Figeroa
Isabel Q Foller
Ivar T Nicka
Alejandro E Garufi
Juan N Maclead
Clifford L Garufi
Costa U Nestle
Cody T Kusko
Maisha T Caldarera
Silvio G Schemmer
Chavez T Campain
Izzy M Nicka
Adams B Darakjy
Aika C Stockham
Deepesh K Paprocki
Deepesh I Glick
Juan O Darakjy
Silvio S Slusarski
Greenwood Q Ferencz
Alejandro L Iturbide
Costa M Foller
Arvin I Flosi
Alejandro F Waycott
Jones K Marrier
Leon B Kolmetz
Claire K Inouye
Silvio H Campain
Stacey D Slusarski
Misaki B Bowley
Arvin H Paprocki
Johnson I Briddick
Silvio V Nestle
Tony Z Inouye
Nicolas V Darakjy
Aditya T Dilliard
Tony I Marrier
Smith M Ostrosky
Alejandro Z Wieser
Salvatore W Shinko
Faith O Campain
Chavez G Oldroyd
Ashley M Perin
Maisha A Perin
Aika A Slusarski
Leon T Waycott
Arvin O Venere
Stacey E Slusarski
IdCountryDate
1000France2026-07-01
1001Germany2026-06-26
1002Spain2026-07-02
1003Japan2026-06-24
1004Australia2026-06-28
1005Russia2026-07-03
1006Spain2026-06-19
1007Canada2026-06-15
1008Italy2026-06-23
1009Russia2026-06-18
1010Canada2026-06-30
1011Canada2026-06-10
1012Argentina2026-06-17
1013Brazil2026-06-23
1014Germany2026-06-16
1015Russia2026-06-25
1016United Kingdom2026-06-22
1017Spain2026-07-02
1018Japan2026-07-06
1019France2026-06-30
1020Spain2026-07-03
1021Spain2026-06-30
1022Australia2026-07-06
1023India2026-07-05
1024Russia2026-06-18
1025Russia2026-06-26
1026Spain2026-06-25
1027Germany2026-06-18
1028Australia2026-06-11
1029Germany2026-06-14
1030France2026-06-10
1031Russia2026-07-04
1032Canada2026-06-15
1033Japan2026-06-17
1034United Kingdom2026-06-23
1035Germany2026-06-17
1036India2026-07-05
1037United Kingdom2026-06-27
1038United Kingdom2026-07-04
1039Argentina2026-07-01
1040France2026-06-09
1041India2026-06-07
1042Russia2026-06-27
1043India2026-07-06
1044France2026-06-10
1045France2026-06-25
1046Canada2026-07-06
1047Russia2026-06-17
1048Canada2026-07-06
1049Spain2026-06-30

On-Demand Data

NameIdCountryDate
Julie A Ferencz1000Australia2026-06-23
Kadeem E Doe1001Russia2026-07-04
Jeanfrancois Q Kolmetz1002Canada2026-06-15
Deepesh Q Doe1003United Kingdom2026-06-10
Jennifer A Saylors1004Japan2026-07-04
Izzy K Campain1005France2026-06-13
Mayumi H Schemmer1006Canada2026-07-05
Antonio W Saylors1007Italy2026-06-12
Francesco H Chui1008India2026-07-03
Faith I Rim1009Brazil2026-06-12
Kaitlin C Butt1010France2026-06-09
Mayumi Y Oldroyd1011Canada2026-07-01
Kadeem E Iturbide1012India2026-06-27
Rodrigues U Rim1013Canada2026-06-16
Julie C Chui1014India2026-06-10
Chavez P Darakjy1015Brazil2026-06-20
James Q Paprocki1016Russia2026-06-13
Salvatore C Dilliard1017India2026-06-21
Aika K Malet1018Canada2026-06-27
Johnson Q Figeroa1019Russia2026-06-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin W WieserBrazilAmy Elsner NEGOTIATION
Jones N WieserUnited KingdomIoni Bowcher PROPOSAL
Leon R DilliardAustraliaOnyama Limba PROPOSAL
Munro Y FlosiIndiaIvan Magalhaes RENEWAL
Smith B FlosiIndiaStephen Shaw RENEWAL
Maria D IturbideItalyIoni Bowcher NEW
Izzy N GillianArgentinaElwin Sharvill UNQUALIFIED
Sinclair U FigeroaCanadaAsiya Javayant RENEWAL
Kadeem O SchemmerSpainXuxue Feng QUALIFIED
Maisha J SaylorsBrazilAmy Elsner RENEWAL
Chavez K WaycottArgentinaElwin Sharvill RENEWAL
Misaki R StensethAustraliaElwin Sharvill NEW
Juan J FigeroaFranceBernardo Dominic NEGOTIATION
Leon N VocelkaAustraliaAmy Elsner QUALIFIED
Maisha Y InouyeRussiaElwin Sharvill QUALIFIED
Julie N FerenczUnited KingdomOnyama Limba QUALIFIED
Tony M MacleadIndiaAmy Elsner PROPOSAL
Aditya M FlosiIndiaAmy Elsner UNQUALIFIED
Mayumi X IturbideRussiaElwin Sharvill QUALIFIED
Morrow Y MaletFranceOnyama Limba NEW
Claire X BologniaSpainBernardo Dominic NEGOTIATION
Cody N ButtGermanyIoni Bowcher NEGOTIATION
James D BologniaAustraliaBernardo Dominic NEW
Emily I ShinkoRussiaElwin Sharvill PROPOSAL
Silvio F ButtItalyStephen Shaw NEW
Morrow P RutaAustraliaOnyama Limba PROPOSAL
Mayumi V CampainAustraliaElwin Sharvill UNQUALIFIED
Mujtaba D BologniaSpainIvan Magalhaes UNQUALIFIED
Jefferson B GauchoAustraliaStephen Shaw UNQUALIFIED
Rodrigues H RutaSpainAmy Elsner PROPOSAL
Francesco O StockhamItalyOnyama Limba QUALIFIED
Julie U StensethAustraliaBernardo Dominic PROPOSAL
Greenwood H BowleyBrazilStephen Shaw NEW
Chavez G OstroskyJapanIoni Bowcher QUALIFIED
Rodrigues E DarakjyRussiaAsiya Javayant QUALIFIED
Jefferson H NickaIndiaElwin Sharvill RENEWAL
James R RimSpainOnyama Limba PROPOSAL
Stacey M StockhamFranceAmy Elsner PROPOSAL
Misaki U CampainBrazilIvan Magalhaes QUALIFIED
Stacey J WhobreyArgentinaXuxue Feng QUALIFIED

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