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
Estonian
Persian
Finnish
Danish
Hindi
Indonesian
Icelandic
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
Morrow T GarufiArgentinaAnna Fali NEGOTIATION
Francesco H GlickJapanAnna Fali RENEWAL
Silvio N CaldareraBrazilStephen Shaw NEGOTIATION
Aika D AlbaresItalyBernardo Dominic NEGOTIATION
Jennifer A WieserFranceAnna Fali NEGOTIATION
Misaki W FlosiItalyOnyama Limba QUALIFIED
Francesco D GlickUnited KingdomIoni Bowcher RENEWAL
Deepesh D WhobreyUnited KingdomStephen Shaw NEW
Murillo N OstroskyArgentinaAsiya Javayant NEW
Octavia M AmigonItalyAmy Elsner UNQUALIFIED
Aika K BriddickFranceOnyama Limba RENEWAL
Silvio Z PaprockiIndiaAnna Fali UNQUALIFIED
Arvin Q NickaUnited KingdomIvan Magalhaes RENEWAL
Johnson A KuskoUnited KingdomStephen Shaw NEGOTIATION
Murillo W FollerGermanyBernardo Dominic PROPOSAL
Claire R NickaFranceAsiya Javayant NEW
Misaki D RutaFranceBernardo Dominic QUALIFIED
Aditya J PaprockiGermanyStephen Shaw PROPOSAL
Ashley W GarufiRussiaAmy Elsner NEW
Deepesh M WhobreyJapanStephen Shaw UNQUALIFIED
Arvin U BowleyJapanXuxue Feng PROPOSAL
Ivar G VocelkaItalyAsiya Javayant NEW
Arvin F WaycottCanadaAsiya Javayant NEGOTIATION
Cody Q ShinkoUnited KingdomAnna Fali UNQUALIFIED
Mujtaba Z InouyeFranceXuxue Feng NEGOTIATION
Maria V KuskoFranceBernardo Dominic RENEWAL
Mayumi D RutaItalyElwin Sharvill PROPOSAL
Maisha B KolmetzArgentinaAnna Fali RENEWAL
Salvatore M NickaCanadaAnna Fali NEGOTIATION
Ivar F StockhamItalyOnyama Limba QUALIFIED
Nicolas Y GlickSpainAsiya Javayant NEGOTIATION
Kaitlin D ButtRussiaAsiya Javayant NEGOTIATION
Juan P BologniaRussiaAnna Fali RENEWAL
Smith T OldroydGermanyElwin Sharvill QUALIFIED
Clifford U BologniaUnited KingdomStephen Shaw NEW
Sinclair M KolmetzGermanyAsiya Javayant NEW
Johnson W FlosiCanadaStephen Shaw UNQUALIFIED
Aruna M PoquetteArgentinaAsiya Javayant QUALIFIED
Salvatore W VocelkaIndiaElwin Sharvill NEW
Leja T FigeroaJapanBernardo Dominic RENEWAL
Jeanfrancois M NestleBrazilElwin Sharvill NEW
Misaki H FerenczBrazilBernardo Dominic PROPOSAL
Izzy M RulapaughItalyElwin Sharvill QUALIFIED
Leon W VenereItalyBernardo Dominic NEW
Silvio O BowleyCanadaAnna Fali RENEWAL
Leon W InouyeJapanAnna Fali UNQUALIFIED
Cody Y MarrierJapanOnyama Limba NEGOTIATION
Deepesh M MorascaSpainElwin Sharvill PROPOSAL
Morrow U BriddickBrazilBernardo Dominic PROPOSAL
Aruna B AmigonGermanyOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo V ButtCanadaStephen Shaw UNQUALIFIED
Greenwood C AmigonBrazilOnyama Limba PROPOSAL
Darci F PerinAustraliaIoni Bowcher PROPOSAL
Julie L PerinItalyXuxue Feng RENEWAL
Alejandro U WaycottArgentinaIvan Magalhaes RENEWAL
Salvatore Y MarrierItalyXuxue Feng NEGOTIATION
Cody D IturbideArgentinaStephen Shaw PROPOSAL
Ashley Y OstroskyFranceOnyama Limba NEW
Maria D BriddickBrazilAmy Elsner PROPOSAL
Chavez U GauchoJapanAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith R NickaSpain2025-05-29Benton, John B Jr UNQUALIFIED93Bernardo Dominic
1001Jones C MarrierIndia2025-05-20Chapman, Ross E Esq QUALIFIED67Asiya Javayant
1002Sinclair S GillianUnited Kingdom2025-05-20King, Christopher A Esq QUALIFIED27Bernardo Dominic
1003Jennifer O VenereCanada2025-05-09Chapman, Ross E Esq QUALIFIED81Ivan Magalhaes
1004Faith M FerenczCanada2025-05-19Dorl, James J Esq PROPOSAL56Asiya Javayant
1005Wickens Q PerinBrazil2025-05-16Chemel, James L Cpa QUALIFIED11Asiya Javayant
1006Claire N CaldareraAustralia2025-05-26Printing Dimensions QUALIFIED43Stephen Shaw
1007Costa P PaprockiSpain2025-05-13Chapman, Ross E Esq UNQUALIFIED95Bernardo Dominic
1008Sinclair H KuskoJapan2025-05-30Chanay, Jeffrey A Esq NEW94Anna Fali
1009Costa Z BologniaGermany2025-05-25Commercial Press NEW40Bernardo Dominic
1010Munro W RimJapan2025-05-22Benton, John B Jr QUALIFIED2Ivan Magalhaes
1011Sinclair I MaletIndia2025-05-20Feltz Printing Service QUALIFIED88Xuxue Feng
1012Deepesh B FlosiCanada2025-06-02Benton, John B Jr NEGOTIATION39Ioni Bowcher
1013Cody J VocelkaGermany2025-05-23Dorl, James J Esq PROPOSAL14Xuxue Feng
1014Clifford O ShinkoIndia2025-05-30Chemel, James L Cpa RENEWAL26Ioni Bowcher
1015Faith C FerenczGermany2025-05-16Printing Dimensions RENEWAL77Ivan Magalhaes
1016Claire W ChuiUnited Kingdom2025-05-24Benton, John B Jr QUALIFIED84Bernardo Dominic
1017Maisha W BowleyUnited Kingdom2025-05-17Benton, John B Jr RENEWAL39Asiya Javayant
1018Smith I MacleadRussia2025-05-13Benton, John B Jr QUALIFIED29Xuxue Feng
1019Munro N WhobreyBrazil2025-05-28Chapman, Ross E Esq RENEWAL1Onyama Limba
1020Maria M CaldareraCanada2025-05-31Printing Dimensions RENEWAL19Ivan Magalhaes
1021Isabel K CaldareraBrazil2025-05-16Chanay, Jeffrey A Esq RENEWAL55Elwin Sharvill
1022Johnson B WaycottArgentina2025-05-25Morlong Associates QUALIFIED4Onyama Limba
1023Ashley A IturbideSpain2025-05-08Rousseaux, Michael Esq NEW80Asiya Javayant
1024Adams G RulapaughGermany2025-05-14Rangoni Of Florence RENEWAL11Amy Elsner
1025Izzy Y InouyeArgentina2025-06-06Rousseaux, Michael Esq QUALIFIED94Anna Fali
1026Costa F RoysterIndia2025-05-19Chemel, James L Cpa QUALIFIED57Ivan Magalhaes
1027Isabel B GauchoFrance2025-05-28Feltz Printing Service PROPOSAL97Elwin Sharvill
1028Chavez H WhobreyItaly2025-05-27Feiner Bros PROPOSAL77Stephen Shaw
1029Jennifer N WaycottBrazil2025-05-28Benton, John B Jr PROPOSAL67Stephen Shaw
1030Greenwood I RimSpain2025-06-02Rangoni Of Florence NEGOTIATION62Anna Fali
1031Silvio U RutaAustralia2025-05-13Feltz Printing Service NEW5Elwin Sharvill
1032Stacey L NestleBrazil2025-05-24Rangoni Of Florence NEGOTIATION30Amy Elsner
1033Julie Z GarufiIndia2025-06-03Commercial Press QUALIFIED36Bernardo Dominic
1034Smith A MorascaGermany2025-06-06Dorl, James J Esq QUALIFIED74Elwin Sharvill
1035Murillo V MaletCanada2025-05-19Chapman, Ross E Esq RENEWAL68Onyama Limba
1036Deepesh S ChuiIndia2025-05-28Feltz Printing Service QUALIFIED84Amy Elsner
1037Smith V NickaUnited Kingdom2025-05-15Feiner Bros RENEWAL12Ivan Magalhaes
1038Adams P SchemmerBrazil2025-05-28Feltz Printing Service QUALIFIED13Xuxue Feng
1039Mujtaba I KuskoCanada2025-06-02Chanay, Jeffrey A Esq UNQUALIFIED36Asiya Javayant
1040Stacey S CaudyCanada2025-05-24Truhlar And Truhlar Attys UNQUALIFIED35Ivan Magalhaes
1041Kadeem Q InouyeCanada2025-05-14Rangoni Of Florence RENEWAL20Bernardo Dominic
1042Ashley V FollerAustralia2025-06-02Benton, John B Jr QUALIFIED71Anna Fali
1043Francesco Z RimJapan2025-05-26Commercial Press NEW48Ioni Bowcher
1044Greenwood E RimItaly2025-06-06Commercial Press NEGOTIATION19Asiya Javayant
1045Ivar Q MaletGermany2025-05-09Printing Dimensions PROPOSAL7Asiya Javayant
1046Tony B CaudyRussia2025-05-17Chemel, James L Cpa NEW47Amy Elsner
1047Ricardo T AlbaresCanada2025-05-11Rangoni Of Florence QUALIFIED24Asiya Javayant
1048Cody B CampainSpain2025-05-17Chanay, Jeffrey A Esq NEW36Asiya Javayant
1049Julie J FerenczAustralia2025-05-09Chanay, Jeffrey A Esq QUALIFIED9Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Munro B DarakjyRussiaAnna Fali NEGOTIATION
Izzy S MaletItalyOnyama Limba QUALIFIED
Aika K CaldareraGermanyAnna Fali UNQUALIFIED
Deepesh N MaletAustraliaXuxue Feng PROPOSAL
Jefferson M SchemmerItalyIoni Bowcher PROPOSAL
Tony Z SchemmerItalyElwin Sharvill UNQUALIFIED
Isabel D RutaItalyAmy Elsner PROPOSAL
Morrow D TollnerRussiaAnna Fali NEW
Adams U MaletRussiaXuxue Feng NEW
Nicolas X NickaArgentinaElwin Sharvill NEW
Julie N BriddickBrazilAsiya Javayant NEW
Leja O WaycottItalyXuxue Feng NEW
Chavez K BowleyItalyIoni Bowcher NEW
Chavez N AlbaresArgentinaIvan Magalhaes NEW
Silvio F IturbideBrazilIoni Bowcher QUALIFIED
Faith V DarakjyUnited KingdomXuxue Feng PROPOSAL
Aditya E WaycottUnited KingdomBernardo Dominic PROPOSAL
Faith E SaylorsIndiaBernardo Dominic UNQUALIFIED
Morrow F ChuiItalyIvan Magalhaes NEGOTIATION
Alejandro G CaudyGermanyOnyama Limba NEGOTIATION
Silvio X ShinkoSpainAsiya Javayant NEGOTIATION
Murillo Y InouyeBrazilAnna Fali UNQUALIFIED
Misaki L MacleadAustraliaXuxue Feng PROPOSAL
Maisha Z OldroydAustraliaIoni Bowcher NEGOTIATION
Misaki S FerenczIndiaXuxue Feng QUALIFIED
Cody K StensethItalyAmy Elsner RENEWAL
Jennifer Q PoquetteAustraliaIoni Bowcher QUALIFIED
Clifford Q NickaFranceAmy Elsner PROPOSAL
Clifford J FigeroaFranceAmy Elsner RENEWAL
Leon L GlickJapanOnyama Limba RENEWAL
Misaki H SlusarskiBrazilIoni Bowcher NEGOTIATION
Stacey V MaletItalyBernardo Dominic NEW
Antonio M FigeroaBrazilElwin Sharvill NEW
Faith B KuskoFranceBernardo Dominic NEW
Kadeem U SchemmerRussiaBernardo Dominic QUALIFIED
Aika J KuskoBrazilAmy Elsner NEGOTIATION
Aruna O RulapaughIndiaElwin Sharvill RENEWAL
Ivar D RimCanadaAnna Fali QUALIFIED
Morrow N RoysterArgentinaIoni Bowcher RENEWAL
Wickens I VocelkaGermanyAsiya Javayant RENEWAL
Arvin U MarrierJapanIvan Magalhaes NEW
Alejandro R RoysterSpainAsiya Javayant NEGOTIATION
Kadeem N MaletItalyOnyama Limba QUALIFIED
Darci O CaudyArgentinaAnna Fali RENEWAL
Smith U GarufiBrazilOnyama Limba NEGOTIATION
Jones G GarufiGermanyBernardo Dominic NEW
Izzy X KuskoFranceOnyama Limba PROPOSAL
Jefferson Y OstroskyFranceElwin Sharvill RENEWAL
Rodrigues R SaylorsGermanyAnna Fali UNQUALIFIED
Clifford N MacleadCanadaAnna Fali RENEWAL
Frozen Columns
Name
Antonio I Schemmer
Claire V Nestle
Isabel K Briddick
Mujtaba V Wieser
Antonio U Royster
Antonio X Sergi
Leja O Flosi
Tony H Ruta
Murillo C Inouye
Munro Q Doe
Silvio U Malet
Ashley O Kusko
Aruna Z Bowley
Jones G Oldroyd
Darci Y Wieser
Faith D Perin
David V Ostrosky
Jefferson U Stenseth
Salvatore Q Rim
Sinclair H Gillian
Ashley R Marrier
Nicolas S Paprocki
Clifford D Venere
Ricardo N Foller
Smith I Darakjy
Cody B Ruta
Claire E Maclead
Adams J Venere
Faith B Stockham
Ashley S Gaucho
Misaki D Doe
Alejandro S Saylors
Ricardo B Garufi
Jennifer O Shinko
Aika L Gaucho
Francesco V Shinko
Antonio K Doe
Salvatore F Amigon
Emily O Caldarera
Adams S Stenseth
Antonio J Perin
Salvatore Z Gaucho
Kaitlin D Malet
James G Inouye
Misaki T Caudy
Ricardo C Kusko
Costa D Stockham
Salvatore X Rim
Salvatore C Stockham
Morrow O Nicka
IdCountryDate
1000United Kingdom2025-05-24
1001India2025-05-16
1002India2025-05-23
1003Canada2025-05-30
1004Russia2025-05-13
1005Japan2025-05-23
1006India2025-05-29
1007Spain2025-05-15
1008Canada2025-06-04
1009Germany2025-05-20
1010Australia2025-05-15
1011Argentina2025-05-21
1012Argentina2025-05-21
1013India2025-05-11
1014Russia2025-05-28
1015Spain2025-05-21
1016United Kingdom2025-05-08
1017Spain2025-06-04
1018Brazil2025-05-08
1019Italy2025-05-22
1020Australia2025-05-21
1021Italy2025-05-22
1022Argentina2025-05-28
1023Argentina2025-06-02
1024Russia2025-05-17
1025Australia2025-05-29
1026Spain2025-05-10
1027Japan2025-05-30
1028Brazil2025-05-21
1029United Kingdom2025-06-06
1030Italy2025-06-05
1031India2025-05-24
1032Germany2025-06-03
1033Canada2025-06-03
1034Germany2025-06-01
1035Spain2025-06-04
1036Canada2025-05-31
1037Russia2025-05-27
1038Japan2025-05-25
1039Spain2025-06-04
1040Germany2025-06-06
1041Brazil2025-05-26
1042Japan2025-05-28
1043United Kingdom2025-05-17
1044United Kingdom2025-05-16
1045Canada2025-05-09
1046United Kingdom2025-05-21
1047Italy2025-05-25
1048Brazil2025-05-13
1049Brazil2025-05-25

On-Demand Data

NameIdCountryDate
Wickens P Paprocki1000United Kingdom2025-05-31
Ivar K Butt1001Germany2025-05-22
Aika V Sergi1002Italy2025-06-03
Claire V Figeroa1003Australia2025-05-24
Morrow R Wieser1004France2025-05-11
Jones N Campain1005Argentina2025-05-27
Alejandro T Amigon1006Japan2025-05-09
Kaitlin P Foller1007India2025-05-13
Misaki Y Venere1008Argentina2025-06-02
Clifford Y Malet1009Germany2025-05-26
Francesco G Ferencz1010Italy2025-05-12
Juan X Ferencz1011Italy2025-05-10
Sinclair T Butt1012Brazil2025-06-01
Kadeem L Nicka1013India2025-05-26
Alejandro J Whobrey1014Italy2025-05-26
Munro C Chui1015Spain2025-05-13
Kaitlin N Garufi1016Spain2025-05-15
Salvatore U Malet1017Russia2025-05-08
Leja T Nicka1018Australia2025-05-22
Munro R Albares1019United Kingdom2025-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James P BriddickArgentinaOnyama Limba UNQUALIFIED
Ricardo E PaprockiFranceElwin Sharvill NEW
Sinclair U NestleUnited KingdomStephen Shaw QUALIFIED
Costa Y MaletSpainBernardo Dominic QUALIFIED
Jones K ShinkoFranceStephen Shaw UNQUALIFIED
Tony V FerenczArgentinaIoni Bowcher NEW
Kadeem Y GauchoAustraliaElwin Sharvill QUALIFIED
Emily D CaudyFranceOnyama Limba NEGOTIATION
Maria D FollerBrazilElwin Sharvill NEW
Jeanfrancois W VocelkaArgentinaElwin Sharvill NEW
Maisha D MorascaBrazilOnyama Limba RENEWAL
Jefferson D AmigonArgentinaBernardo Dominic NEW
Isabel T PerinItalyAnna Fali NEGOTIATION
Tony Q BologniaGermanyAsiya Javayant NEGOTIATION
Arvin Y SchemmerFranceIoni Bowcher UNQUALIFIED
Alejandro D ButtCanadaIvan Magalhaes RENEWAL
Murillo X MarrierGermanyBernardo Dominic PROPOSAL
Jefferson P BriddickAustraliaStephen Shaw QUALIFIED
Darci F RulapaughArgentinaBernardo Dominic QUALIFIED
Ricardo D TollnerJapanOnyama Limba UNQUALIFIED
Wickens D DoeUnited KingdomElwin Sharvill NEGOTIATION
Silvio H ButtAustraliaXuxue Feng RENEWAL
Adams H GlickIndiaAsiya Javayant UNQUALIFIED
Tony L VocelkaSpainElwin Sharvill QUALIFIED
Octavia B MaletUnited KingdomIoni Bowcher NEW
Ashley J StensethAustraliaIvan Magalhaes PROPOSAL
Stacey W OstroskyGermanyIvan Magalhaes RENEWAL
Jones B GauchoCanadaStephen Shaw PROPOSAL
Antonio U PaprockiItalyXuxue Feng UNQUALIFIED
Costa Y BriddickCanadaIoni Bowcher NEW
Mayumi R AlbaresJapanAmy Elsner UNQUALIFIED
Leja F AmigonIndiaAnna Fali NEW
Aruna L CaldareraCanadaAmy Elsner UNQUALIFIED
Tony N GillianRussiaOnyama Limba QUALIFIED
Stacey A FollerFranceAnna Fali RENEWAL
Ivar Z ButtSpainAsiya Javayant RENEWAL
Francesco Q CaudyRussiaElwin Sharvill PROPOSAL
Sinclair P OldroydArgentinaOnyama Limba RENEWAL
Juan Q AmigonItalyElwin Sharvill PROPOSAL
Stacey C ChuiAustraliaAmy Elsner PROPOSAL

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