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
Bangla
Bosnian
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
Uzbek
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Blue Saga Blue
Vela Blue Vela Blue
Arya Blue Arya Blue
Bootstrap
Bootstrap Blue Light Bootstrap Blue Light
Bootstrap Purple Light Bootstrap Purple Light
Bootstrap Blue Dark Bootstrap Blue Dark
Bootstrap Purple Dark Bootstrap Purple Dark
Material Design
Material Indigo Light Material Indigo Light
Material Deep Purple Light Material Deep Purple Light
Material Indigo Dark Material Indigo Dark
Material Deep Purple Dark Material Deep Purple Dark
Material Design Compact
Material Compact Indigo Light Material Compact Indigo Light
Material Compact Deep Purple Light Material Compact Deep Purple Light
Material Compact Indigo Dark Material Compact Indigo Dark
Material Compact Deep Purple Dark Material Compact Deep Purple Dark
Legacy
Nova Light Nova Light
Nova Dark Nova Dark
Nova Colored Nova Colored
Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Tony V MarrierArgentinaStephen Shaw QUALIFIED
Aika P ButtBrazilStephen Shaw UNQUALIFIED
Faith T NickaFranceIoni Bowcher NEW
Greenwood J CampainAustraliaAnna Fali RENEWAL
Ivar D GlickFranceIoni Bowcher UNQUALIFIED
Leon Z VocelkaCanadaStephen Shaw PROPOSAL
Ricardo F MarrierRussiaStephen Shaw QUALIFIED
Maisha M SergiUnited KingdomElwin Sharvill RENEWAL
Ivar Q VocelkaBrazilAnna Fali UNQUALIFIED
Francesco O FlosiJapanStephen Shaw PROPOSAL
Arvin X NestleRussiaAnna Fali NEGOTIATION
Morrow U SlusarskiUnited KingdomAmy Elsner PROPOSAL
Leja Q StensethGermanyXuxue Feng UNQUALIFIED
Clifford E KuskoArgentinaIoni Bowcher RENEWAL
Darci L PerinCanadaXuxue Feng RENEWAL
Isabel Q KuskoAustraliaOnyama Limba PROPOSAL
Ashley X BologniaUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya P BologniaUnited KingdomElwin Sharvill QUALIFIED
Jennifer G FlosiIndiaAnna Fali NEGOTIATION
Aditya T BologniaAustraliaXuxue Feng UNQUALIFIED
Aika R BowleySpainElwin Sharvill NEGOTIATION
Ivar I RoysterCanadaAnna Fali NEGOTIATION
Adams V GauchoSpainBernardo Dominic NEW
Cody U KolmetzAustraliaXuxue Feng NEGOTIATION
Mujtaba M DoeIndiaXuxue Feng RENEWAL
Francesco D VenereArgentinaBernardo Dominic UNQUALIFIED
Leja E KuskoGermanyIoni Bowcher QUALIFIED
Kadeem T FigeroaArgentinaIoni Bowcher UNQUALIFIED
Mujtaba S RulapaughCanadaXuxue Feng NEW
Faith V MaletGermanyOnyama Limba PROPOSAL
Aika T PoquetteBrazilIvan Magalhaes UNQUALIFIED
Julie X FlosiUnited KingdomXuxue Feng RENEWAL
Nicolas V GillianFranceAnna Fali NEW
Kaitlin Y MaletItalyStephen Shaw NEW
Maria X WieserSpainIvan Magalhaes UNQUALIFIED
Greenwood L BowleySpainAsiya Javayant QUALIFIED
Leja S VenereJapanIvan Magalhaes QUALIFIED
Ashley F SaylorsIndiaAsiya Javayant PROPOSAL
Ashley I FerenczSpainAsiya Javayant NEGOTIATION
Deepesh P StensethCanadaBernardo Dominic QUALIFIED
Aruna Z MacleadAustraliaAsiya Javayant PROPOSAL
Mayumi C FlosiArgentinaElwin Sharvill NEGOTIATION
Nicolas R VocelkaGermanyStephen Shaw NEGOTIATION
Alejandro A ShinkoRussiaAmy Elsner RENEWAL
Francesco B OstroskyGermanyAmy Elsner RENEWAL
Jones H WaycottCanadaBernardo Dominic RENEWAL
Smith G KuskoCanadaBernardo Dominic NEGOTIATION
Kadeem V DarakjyArgentinaIoni Bowcher QUALIFIED
Ivar O WaycottSpainAsiya Javayant UNQUALIFIED
Emily Z DoeSpainOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Leja E MaletJapanOnyama Limba UNQUALIFIED
Claire I NickaAustraliaAmy Elsner NEGOTIATION
Octavia E WaycottArgentinaAsiya Javayant UNQUALIFIED
Jennifer F SergiItalyBernardo Dominic NEW
Wickens O BowleyJapanAsiya Javayant RENEWAL
Ashley P KuskoUnited KingdomAmy Elsner RENEWAL
Ricardo V PoquetteAustraliaOnyama Limba NEGOTIATION
Maisha H CampainAustraliaBernardo Dominic NEW
Ashley T ButtUnited KingdomIoni Bowcher QUALIFIED
Leon U WieserSpainXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan J VenereArgentina2025-06-22Chanay, Jeffrey A Esq NEGOTIATION39Xuxue Feng
1001Stacey F DilliardSpain2025-06-18Truhlar And Truhlar Attys UNQUALIFIED7Amy Elsner
1002Costa I AmigonCanada2025-06-27Chanay, Jeffrey A Esq UNQUALIFIED99Elwin Sharvill
1003Francesco C BowleyCanada2025-06-20King, Christopher A Esq RENEWAL89Ivan Magalhaes
1004Silvio B GlickArgentina2025-06-14Buckley Miller Wright RENEWAL55Xuxue Feng
1005Aditya D CaudyJapan2025-06-21Feiner Bros NEGOTIATION91Anna Fali
1006Antonio P KolmetzRussia2025-07-07Morlong Associates UNQUALIFIED77Bernardo Dominic
1007Misaki H FlosiAustralia2025-06-25Commercial Press RENEWAL40Bernardo Dominic
1008Claire C WaycottCanada2025-07-07Rousseaux, Michael Esq PROPOSAL50Onyama Limba
1009David Q StockhamIndia2025-07-06Chapman, Ross E Esq NEW21Asiya Javayant
1010Jeanfrancois K VocelkaIndia2025-07-04Morlong Associates NEW98Stephen Shaw
1011Greenwood Z PaprockiFrance2025-06-25Rousseaux, Michael Esq UNQUALIFIED67Onyama Limba
1012Johnson X WhobreySpain2025-06-24Truhlar And Truhlar Attys NEGOTIATION13Ivan Magalhaes
1013Morrow L KolmetzItaly2025-07-04Buckley Miller Wright RENEWAL97Asiya Javayant
1014Francesco L VocelkaItaly2025-06-26Dorl, James J Esq UNQUALIFIED85Amy Elsner
1015Claire O DarakjyJapan2025-06-24Dorl, James J Esq QUALIFIED39Bernardo Dominic
1016Darci D DilliardIndia2025-06-22Printing Dimensions RENEWAL65Stephen Shaw
1017Sinclair B RimJapan2025-06-16Rangoni Of Florence QUALIFIED35Ivan Magalhaes
1018Leon M AmigonGermany2025-06-24Benton, John B Jr NEW94Xuxue Feng
1019Aika O RutaCanada2025-07-01King, Christopher A Esq UNQUALIFIED18Ioni Bowcher
1020Leja W GlickItaly2025-06-16Truhlar And Truhlar Attys QUALIFIED78Bernardo Dominic
1021Aruna Y GarufiArgentina2025-06-12Dorl, James J Esq NEGOTIATION78Ioni Bowcher
1022Francesco Q NestleSpain2025-06-12Feltz Printing Service NEW81Ioni Bowcher
1023Julie I StensethGermany2025-06-21Chapman, Ross E Esq QUALIFIED15Stephen Shaw
1024Maria P FollerArgentina2025-07-07Rangoni Of Florence PROPOSAL46Ivan Magalhaes
1025Rodrigues L KuskoJapan2025-06-20Chanay, Jeffrey A Esq QUALIFIED11Amy Elsner
1026Wickens N FlosiBrazil2025-06-14Buckley Miller Wright NEW91Asiya Javayant
1027Jennifer P AmigonUnited Kingdom2025-06-13Rousseaux, Michael Esq NEGOTIATION0Anna Fali
1028Kaitlin B StockhamFrance2025-06-15Morlong Associates NEW95Onyama Limba
1029Mayumi Q DarakjyBrazil2025-07-07Buckley Miller Wright NEGOTIATION96Xuxue Feng
1030Adams S PoquetteGermany2025-07-03Feltz Printing Service RENEWAL0Anna Fali
1031Misaki Y SchemmerArgentina2025-06-11Buckley Miller Wright PROPOSAL71Xuxue Feng
1032Izzy T DilliardBrazil2025-06-24Rangoni Of Florence NEGOTIATION67Bernardo Dominic
1033Antonio U KuskoSpain2025-07-02Chapman, Ross E Esq UNQUALIFIED64Amy Elsner
1034Ashley W ChuiCanada2025-06-18Printing Dimensions QUALIFIED65Asiya Javayant
1035Nicolas K MacleadJapan2025-07-03Feiner Bros NEW34Onyama Limba
1036Arvin R RimJapan2025-06-28Dorl, James J Esq PROPOSAL63Stephen Shaw
1037James C MacleadAustralia2025-06-20Chapman, Ross E Esq QUALIFIED30Ivan Magalhaes
1038David S ChuiIndia2025-06-12Rousseaux, Michael Esq NEW94Onyama Limba
1039Arvin L MarrierRussia2025-07-09Chanay, Jeffrey A Esq NEGOTIATION25Elwin Sharvill
1040Ashley D DilliardAustralia2025-07-08Chapman, Ross E Esq NEGOTIATION18Xuxue Feng
1041Munro K VocelkaBrazil2025-07-06Morlong Associates NEGOTIATION94Onyama Limba
1042Tony T WaycottFrance2025-06-30Chanay, Jeffrey A Esq PROPOSAL89Bernardo Dominic
1043David A IturbideSpain2025-06-20Printing Dimensions PROPOSAL36Stephen Shaw
1044Stacey O StensethRussia2025-06-15Rangoni Of Florence QUALIFIED67Amy Elsner
1045Claire G GarufiCanada2025-07-06Commercial Press RENEWAL85Ivan Magalhaes
1046Darci X MaletGermany2025-06-18Chanay, Jeffrey A Esq NEGOTIATION94Xuxue Feng
1047Kadeem O StensethArgentina2025-06-20Printing Dimensions RENEWAL13Onyama Limba
1048Arvin Y MorascaBrazil2025-06-13Commercial Press QUALIFIED10Amy Elsner
1049Silvio X RutaUnited Kingdom2025-06-27Chapman, Ross E Esq NEGOTIATION72Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba F OstroskyJapanAsiya Javayant PROPOSAL
Salvatore D KuskoJapanIvan Magalhaes NEGOTIATION
Jennifer G GarufiJapanStephen Shaw QUALIFIED
Stacey W RimFranceAsiya Javayant NEW
Kadeem D RoysterFranceAmy Elsner NEW
Aruna U GillianAustraliaOnyama Limba NEGOTIATION
Kaitlin W DoeRussiaAsiya Javayant RENEWAL
Isabel C AmigonCanadaElwin Sharvill NEW
Claire E ChuiSpainBernardo Dominic NEW
James F SergiJapanXuxue Feng RENEWAL
Johnson D GlickAustraliaAnna Fali RENEWAL
Smith R SergiBrazilIoni Bowcher UNQUALIFIED
Silvio T BologniaFranceAmy Elsner RENEWAL
Ivar V GillianIndiaAmy Elsner NEGOTIATION
Julie V GlickCanadaStephen Shaw PROPOSAL
Francesco S SchemmerItalyAmy Elsner NEW
Maria L KolmetzSpainAsiya Javayant UNQUALIFIED
Leja R SaylorsIndiaAsiya Javayant PROPOSAL
Greenwood S AlbaresFranceAsiya Javayant QUALIFIED
Stacey T StockhamSpainAmy Elsner QUALIFIED
Greenwood A MacleadIndiaAmy Elsner NEW
Morrow H GillianCanadaStephen Shaw UNQUALIFIED
Darci S VocelkaCanadaAnna Fali QUALIFIED
Darci J PoquetteFranceIoni Bowcher NEW
Johnson V SaylorsArgentinaIoni Bowcher UNQUALIFIED
Jennifer T SlusarskiUnited KingdomXuxue Feng PROPOSAL
Ashley S MorascaSpainBernardo Dominic NEW
Costa E PerinAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois I SchemmerCanadaXuxue Feng PROPOSAL
Aditya E ButtBrazilBernardo Dominic QUALIFIED
Deepesh Z MaletRussiaIvan Magalhaes NEW
Izzy S GlickFranceIvan Magalhaes NEGOTIATION
Aruna E ButtFranceOnyama Limba RENEWAL
Murillo V StockhamRussiaIvan Magalhaes QUALIFIED
Adams O ShinkoArgentinaIvan Magalhaes RENEWAL
Julie H AlbaresItalyXuxue Feng NEW
Silvio A FlosiUnited KingdomXuxue Feng RENEWAL
Izzy J PerinJapanIoni Bowcher NEW
Kadeem G GauchoSpainStephen Shaw NEW
David Q DoeGermanyAsiya Javayant RENEWAL
Chavez G PaprockiAustraliaStephen Shaw UNQUALIFIED
James V SaylorsGermanyOnyama Limba NEW
Jones D IturbideRussiaAmy Elsner QUALIFIED
Greenwood C ShinkoJapanAsiya Javayant NEW
Silvio N CaldareraArgentinaStephen Shaw PROPOSAL
Darci D SergiUnited KingdomXuxue Feng QUALIFIED
Julie G PoquetteArgentinaStephen Shaw NEGOTIATION
Chavez A FollerUnited KingdomIvan Magalhaes RENEWAL
Costa Y VenereBrazilAsiya Javayant PROPOSAL
Cody F CampainItalyAsiya Javayant QUALIFIED
Frozen Columns
Name
Mayumi G Poquette
Faith V Inouye
Costa U Doe
Izzy R Stockham
Stacey P Royster
Arvin O Slusarski
Stacey I Saylors
Mujtaba Z Tollner
Munro C Chui
Maisha Y Oldroyd
Chavez E Bowley
Wickens A Kolmetz
Johnson H Caudy
Isabel Y Saylors
Octavia M Gaucho
Aika N Amigon
Mayumi A Flosi
Antonio O Morasca
Smith M Garufi
Maisha I Slusarski
Sinclair X Kolmetz
Johnson P Royster
Juan Q Iturbide
Faith H Venere
Darci U Briddick
Leja W Vocelka
Murillo H Stenseth
Smith U Gillian
Kadeem D Rim
Maria F Perin
Cody T Bolognia
Smith Z Caudy
Jeanfrancois D Gillian
Murillo I Darakjy
Tony I Darakjy
Jennifer V Inouye
Aika L Perin
Smith R Shinko
Costa J Butt
Faith G Nestle
Silvio B Waycott
Ashley D Gillian
Arvin K Marrier
Ricardo Q Dilliard
Aditya J Caudy
Arvin D Foller
Adams I Glick
Kaitlin E Albares
Isabel G Caudy
Aika B Kolmetz
IdCountryDate
1000Japan2025-06-10
1001Australia2025-07-01
1002India2025-06-20
1003India2025-07-03
1004Spain2025-06-23
1005United Kingdom2025-06-16
1006Russia2025-06-30
1007Canada2025-07-05
1008Italy2025-06-27
1009Argentina2025-06-30
1010Japan2025-06-21
1011Argentina2025-07-03
1012Brazil2025-06-28
1013Canada2025-06-16
1014Australia2025-07-09
1015Italy2025-06-12
1016Spain2025-06-16
1017Spain2025-06-26
1018Brazil2025-06-21
1019Japan2025-06-29
1020Canada2025-06-28
1021Brazil2025-06-19
1022Spain2025-06-30
1023Canada2025-06-13
1024Italy2025-06-24
1025Argentina2025-06-16
1026India2025-07-07
1027Germany2025-06-28
1028Italy2025-06-13
1029Russia2025-07-08
1030Spain2025-06-20
1031Germany2025-07-01
1032Argentina2025-06-14
1033Germany2025-06-17
1034Canada2025-07-03
1035India2025-07-07
1036Spain2025-06-17
1037Brazil2025-07-04
1038Brazil2025-06-30
1039Germany2025-07-07
1040Canada2025-06-22
1041Japan2025-06-23
1042United Kingdom2025-06-22
1043Argentina2025-06-10
1044Russia2025-06-29
1045Russia2025-06-21
1046Russia2025-06-30
1047United Kingdom2025-06-24
1048Germany2025-06-10
1049France2025-06-22

On-Demand Data

NameIdCountryDate
Misaki V Caudy1000Germany2025-06-25
Kaitlin B Caldarera1001Russia2025-07-09
Nicolas O Rulapaugh1002Russia2025-06-17
Cody D Malet1003Brazil2025-07-07
Ashley C Kolmetz1004Argentina2025-07-03
Smith P Iturbide1005Australia2025-06-13
Silvio X Slusarski1006Germany2025-07-02
Faith V Doe1007Canada2025-07-04
Emily Q Gaucho1008Italy2025-07-07
Johnson I Stockham1009France2025-07-04
Julie T Briddick1010United Kingdom2025-07-02
Clifford D Dilliard1011United Kingdom2025-06-16
Emily N Slusarski1012Japan2025-06-24
Kaitlin Y Caudy1013France2025-06-24
Kadeem S Kolmetz1014Argentina2025-06-21
James E Vocelka1015France2025-06-25
Costa F Vocelka1016Italy2025-06-24
Julie S Glick1017India2025-06-16
Julie S Gaucho1018France2025-07-06
Costa V Campain1019France2025-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco G AlbaresAustraliaAsiya Javayant RENEWAL
Isabel D NestleGermanyBernardo Dominic NEW
Arvin E StockhamAustraliaIoni Bowcher NEW
Adams W ShinkoBrazilAnna Fali RENEWAL
Nicolas N GillianGermanyIoni Bowcher NEW
Johnson G DoeRussiaOnyama Limba QUALIFIED
Aditya G RimJapanIvan Magalhaes UNQUALIFIED
Maria B SaylorsUnited KingdomXuxue Feng NEGOTIATION
Francesco Z DilliardGermanyAmy Elsner NEGOTIATION
Jennifer G RutaJapanAsiya Javayant QUALIFIED
Arvin Q RulapaughRussiaAnna Fali RENEWAL
Aruna U WhobreySpainAsiya Javayant NEGOTIATION
James T MarrierIndiaXuxue Feng UNQUALIFIED
Smith O SaylorsBrazilAsiya Javayant UNQUALIFIED
Aika E RulapaughIndiaAsiya Javayant UNQUALIFIED
Clifford I WieserSpainStephen Shaw NEW
Misaki R PerinSpainAnna Fali PROPOSAL
Ivar U BowleyBrazilIvan Magalhaes NEW
Sinclair Q GarufiAustraliaOnyama Limba RENEWAL
Maisha M OstroskyFranceIoni Bowcher QUALIFIED
Smith T RoysterRussiaBernardo Dominic RENEWAL
Cody M OldroydRussiaOnyama Limba PROPOSAL
Munro U StensethFranceOnyama Limba NEGOTIATION
James P GauchoSpainStephen Shaw RENEWAL
Stacey B DilliardGermanyElwin Sharvill UNQUALIFIED
Murillo I MacleadGermanyIoni Bowcher NEGOTIATION
Rodrigues J CaldareraAustraliaStephen Shaw PROPOSAL
Cody U FigeroaArgentinaXuxue Feng RENEWAL
Misaki Z FigeroaSpainOnyama Limba NEW
Morrow B FollerItalyBernardo Dominic UNQUALIFIED
Alejandro Z OldroydItalyIoni Bowcher NEW
Smith I MaletIndiaAsiya Javayant NEW
Leon I SergiGermanyIoni Bowcher QUALIFIED
Julie Q MorascaBrazilAmy Elsner PROPOSAL
James K DarakjyIndiaAmy Elsner PROPOSAL
Mujtaba X MaletFranceXuxue Feng RENEWAL
Clifford Q MaletRussiaIvan Magalhaes QUALIFIED
Misaki M TollnerBrazilAsiya Javayant RENEWAL
David Y NestleBrazilBernardo Dominic RENEWAL
Adams M MarrierUnited KingdomXuxue Feng 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" frozenColumnsAlignment="left">
            <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>