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
Izzy P PaprockiUnited KingdomAsiya Javayant QUALIFIED
Arvin O WaycottUnited KingdomIoni Bowcher UNQUALIFIED
Clifford G KuskoArgentinaAmy Elsner PROPOSAL
Ivar X SlusarskiSpainElwin Sharvill NEW
Antonio A GauchoAustraliaIvan Magalhaes RENEWAL
Izzy M BowleyJapanAnna Fali RENEWAL
Antonio Y BriddickAustraliaAmy Elsner NEW
Leja A GauchoRussiaStephen Shaw PROPOSAL
Jennifer C CampainGermanyIoni Bowcher PROPOSAL
Ashley G DoeItalyStephen Shaw QUALIFIED
Aika O RimArgentinaAmy Elsner PROPOSAL
Nicolas S TollnerCanadaAnna Fali RENEWAL
Jefferson V KuskoUnited KingdomOnyama Limba QUALIFIED
Sinclair R KuskoRussiaAnna Fali RENEWAL
Leon J GlickIndiaStephen Shaw RENEWAL
Aika W KolmetzJapanIvan Magalhaes RENEWAL
Aruna P VocelkaBrazilOnyama Limba UNQUALIFIED
Claire C GillianBrazilXuxue Feng RENEWAL
Jeanfrancois M FollerRussiaOnyama Limba PROPOSAL
James J MorascaUnited KingdomStephen Shaw QUALIFIED
Johnson G GauchoUnited KingdomStephen Shaw QUALIFIED
Wickens W PaprockiFranceIvan Magalhaes NEW
Emily H IturbideRussiaAnna Fali NEGOTIATION
Jennifer P BriddickItalyIoni Bowcher NEW
Ivar Z RulapaughCanadaIvan Magalhaes NEW
Jennifer K FigeroaGermanyIvan Magalhaes NEGOTIATION
Jennifer J BologniaBrazilBernardo Dominic NEGOTIATION
Aika V GarufiBrazilAmy Elsner RENEWAL
Claire B ShinkoUnited KingdomAnna Fali NEGOTIATION
Isabel H TollnerJapanAmy Elsner UNQUALIFIED
David S GarufiAustraliaIoni Bowcher NEGOTIATION
Munro T PaprockiUnited KingdomIvan Magalhaes RENEWAL
Kaitlin F BologniaAustraliaBernardo Dominic PROPOSAL
Julie I ShinkoRussiaOnyama Limba UNQUALIFIED
Aditya I VenereFranceElwin Sharvill QUALIFIED
Juan E SlusarskiRussiaIoni Bowcher NEW
Maisha C WhobreyAustraliaElwin Sharvill UNQUALIFIED
James L StockhamItalyBernardo Dominic NEGOTIATION
Wickens U FigeroaBrazilOnyama Limba NEGOTIATION
Stacey J RimIndiaIoni Bowcher QUALIFIED
Mujtaba E BriddickAustraliaBernardo Dominic NEGOTIATION
Emily S NickaAustraliaXuxue Feng PROPOSAL
Misaki P RimBrazilStephen Shaw NEW
Smith I DarakjyArgentinaStephen Shaw QUALIFIED
Ivar K TollnerRussiaAsiya Javayant NEW
Kaitlin G AmigonArgentinaAsiya Javayant NEW
James O SaylorsArgentinaAmy Elsner PROPOSAL
Silvio T ShinkoAustraliaIvan Magalhaes UNQUALIFIED
Munro V DilliardCanadaOnyama Limba PROPOSAL
Claire N FigeroaSpainStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Antonio B RutaAustraliaOnyama Limba UNQUALIFIED
Juan D PoquetteArgentinaElwin Sharvill PROPOSAL
Greenwood H CampainGermanyIoni Bowcher PROPOSAL
Sinclair Z BowleyGermanyAnna Fali NEW
Leon I StensethUnited KingdomIoni Bowcher PROPOSAL
Faith U AmigonIndiaStephen Shaw UNQUALIFIED
Ivar F ButtAustraliaXuxue Feng NEW
Kaitlin Z BowleyFranceAnna Fali UNQUALIFIED
Wickens W KuskoCanadaOnyama Limba UNQUALIFIED
Arvin C WhobreyGermanyBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro U TollnerCanada2026-08-25Morlong Associates UNQUALIFIED26Elwin Sharvill
1001James W AmigonSpain2026-08-03Rousseaux, Michael Esq QUALIFIED52Ivan Magalhaes
1002Murillo G RulapaughGermany2026-08-03Morlong Associates NEGOTIATION13Asiya Javayant
1003Arvin K PerinIndia2026-08-08Truhlar And Truhlar Attys PROPOSAL26Onyama Limba
1004Juan H GlickUnited Kingdom2026-08-23Chemel, James L Cpa QUALIFIED24Ioni Bowcher
1005Claire B SchemmerItaly2026-08-23Benton, John B Jr PROPOSAL32Xuxue Feng
1006Julie V SaylorsFrance2026-08-10Feltz Printing Service NEW91Ivan Magalhaes
1007Smith Q NickaArgentina2026-08-24Morlong Associates QUALIFIED80Ioni Bowcher
1008Izzy A InouyeArgentina2026-08-17Truhlar And Truhlar Attys UNQUALIFIED81Asiya Javayant
1009Kadeem A PoquetteSpain2026-08-10Feltz Printing Service RENEWAL74Ioni Bowcher
1010James E StensethItaly2026-08-20Morlong Associates QUALIFIED9Ivan Magalhaes
1011Mayumi J WhobreyUnited Kingdom2026-08-04Morlong Associates NEW66Asiya Javayant
1012Nicolas L MaletFrance2026-08-15Commercial Press NEW71Bernardo Dominic
1013Kadeem D KuskoRussia2026-08-26Rangoni Of Florence NEGOTIATION72Amy Elsner
1014Munro K TollnerGermany2026-08-07Chapman, Ross E Esq QUALIFIED5Ioni Bowcher
1015Aditya N SlusarskiSpain2026-08-03Chemel, James L Cpa NEW58Ioni Bowcher
1016Rodrigues P PaprockiJapan2026-08-15Dorl, James J Esq UNQUALIFIED40Bernardo Dominic
1017Smith K CampainBrazil2026-08-25Chapman, Ross E Esq PROPOSAL49Elwin Sharvill
1018Rodrigues Z PerinBrazil2026-08-27King, Christopher A Esq NEW70Ivan Magalhaes
1019Emily O PoquetteFrance2026-08-24Rangoni Of Florence RENEWAL50Elwin Sharvill
1020Faith A AlbaresBrazil2026-08-01Commercial Press NEGOTIATION94Stephen Shaw
1021Murillo M NestleGermany2026-08-16Buckley Miller Wright NEW4Asiya Javayant
1022Aika H VenereCanada2026-08-23Feltz Printing Service NEGOTIATION12Bernardo Dominic
1023Costa B GauchoArgentina2026-08-21Printing Dimensions NEGOTIATION60Xuxue Feng
1024Chavez U WaycottArgentina2026-08-01Chemel, James L Cpa RENEWAL51Asiya Javayant
1025Ricardo B StockhamGermany2026-08-28Buckley Miller Wright NEW60Amy Elsner
1026Salvatore W FerenczRussia2026-08-24Benton, John B Jr RENEWAL77Xuxue Feng
1027Costa N CaudyAustralia2026-08-08Buckley Miller Wright UNQUALIFIED69Bernardo Dominic
1028Jones K GauchoGermany2026-08-02Chemel, James L Cpa QUALIFIED22Xuxue Feng
1029James O VenereSpain2026-08-23Feltz Printing Service RENEWAL21Onyama Limba
1030Jones Q MaletJapan2026-08-19Chapman, Ross E Esq QUALIFIED74Asiya Javayant
1031Kaitlin G MaletItaly2026-08-15Printing Dimensions RENEWAL6Ioni Bowcher
1032Kaitlin U GarufiItaly2026-08-09Printing Dimensions NEW0Anna Fali
1033James O MorascaAustralia2026-08-07Dorl, James J Esq NEW1Stephen Shaw
1034David O GauchoIndia2026-08-26Rousseaux, Michael Esq RENEWAL78Xuxue Feng
1035Adams A VenereItaly2026-08-17Chemel, James L Cpa NEGOTIATION45Asiya Javayant
1036Misaki F PoquetteUnited Kingdom2026-08-22Dorl, James J Esq UNQUALIFIED75Xuxue Feng
1037Maisha N VenereJapan2026-08-23Chapman, Ross E Esq QUALIFIED51Elwin Sharvill
1038Kaitlin L StensethSpain2026-08-03Feltz Printing Service RENEWAL87Xuxue Feng
1039Leja N MorascaAustralia2026-08-28King, Christopher A Esq PROPOSAL7Ioni Bowcher
1040Misaki F FollerAustralia2026-08-23Morlong Associates QUALIFIED27Ioni Bowcher
1041Leja G AlbaresRussia2026-08-17Rousseaux, Michael Esq RENEWAL19Xuxue Feng
1042Maisha X AmigonFrance2026-08-30Rousseaux, Michael Esq UNQUALIFIED52Onyama Limba
1043Leon P FerenczAustralia2026-08-25Chapman, Ross E Esq UNQUALIFIED81Onyama Limba
1044Sinclair K IturbideCanada2026-08-07Chapman, Ross E Esq UNQUALIFIED89Ioni Bowcher
1045Adams F WieserBrazil2026-08-22Rangoni Of Florence NEGOTIATION91Stephen Shaw
1046Johnson G SchemmerAustralia2026-08-21Chapman, Ross E Esq NEGOTIATION90Stephen Shaw
1047James B GlickArgentina2026-08-11Chapman, Ross E Esq UNQUALIFIED94Elwin Sharvill
1048Greenwood U AmigonGermany2026-08-28Benton, John B Jr QUALIFIED16Ioni Bowcher
1049Jeanfrancois B SergiItaly2026-08-15Chemel, James L Cpa NEW99Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Nicolas M PoquetteCanadaAsiya Javayant NEGOTIATION
Misaki D MorascaUnited KingdomElwin Sharvill NEW
Ashley T StockhamCanadaIoni Bowcher PROPOSAL
Antonio M VocelkaIndiaAsiya Javayant RENEWAL
Morrow M OldroydGermanyAmy Elsner PROPOSAL
Izzy C GlickCanadaIvan Magalhaes UNQUALIFIED
Leja V FlosiIndiaXuxue Feng QUALIFIED
Aruna M DoeAustraliaOnyama Limba PROPOSAL
Mayumi C DoeRussiaIvan Magalhaes QUALIFIED
Ashley C InouyeCanadaStephen Shaw RENEWAL
Ashley E MacleadIndiaAmy Elsner NEW
Rodrigues A SlusarskiAustraliaStephen Shaw PROPOSAL
Jeanfrancois T BologniaUnited KingdomIvan Magalhaes QUALIFIED
Emily Q GauchoSpainIoni Bowcher NEW
Maisha K RulapaughJapanElwin Sharvill RENEWAL
Costa Z StockhamRussiaAmy Elsner NEGOTIATION
Jennifer T SlusarskiAustraliaStephen Shaw PROPOSAL
Francesco S SlusarskiGermanyAmy Elsner UNQUALIFIED
Faith K PoquetteFranceElwin Sharvill NEGOTIATION
Cody T FerenczItalyBernardo Dominic QUALIFIED
Tony D PaprockiIndiaOnyama Limba NEW
Smith G NickaRussiaIoni Bowcher NEGOTIATION
Octavia U VenereAustraliaElwin Sharvill RENEWAL
Ivar A DoeIndiaXuxue Feng NEGOTIATION
Leja L FigeroaSpainElwin Sharvill QUALIFIED
Smith H SergiSpainBernardo Dominic RENEWAL
Maisha E MaletJapanIoni Bowcher NEW
Johnson T PaprockiRussiaAnna Fali RENEWAL
Cody G ChuiIndiaElwin Sharvill NEW
Francesco U CaldareraCanadaElwin Sharvill NEW
Misaki O PoquetteSpainIvan Magalhaes NEGOTIATION
Antonio F RoysterUnited KingdomAnna Fali UNQUALIFIED
Claire T MorascaArgentinaXuxue Feng NEW
Murillo J MaletAustraliaIoni Bowcher NEW
Maisha V PerinArgentinaBernardo Dominic QUALIFIED
Silvio U DarakjyIndiaAsiya Javayant PROPOSAL
Misaki I OstroskyUnited KingdomAsiya Javayant QUALIFIED
Jennifer V MacleadCanadaAnna Fali PROPOSAL
Smith Z SchemmerJapanIoni Bowcher NEW
Antonio K RoysterGermanyAmy Elsner NEGOTIATION
Emily C GillianBrazilOnyama Limba UNQUALIFIED
Alejandro G MaletBrazilBernardo Dominic NEGOTIATION
Maria K WieserFranceXuxue Feng QUALIFIED
Clifford R DilliardFranceAmy Elsner RENEWAL
Leja U FerenczSpainIoni Bowcher NEW
Izzy F MaletJapanBernardo Dominic RENEWAL
Leon B VenereItalyAnna Fali UNQUALIFIED
Emily G ButtBrazilIoni Bowcher NEW
Mujtaba P FigeroaRussiaStephen Shaw NEW
Chavez A PerinGermanyIvan Magalhaes PROPOSAL
Frozen Columns
Name
Leja T Chui
Nicolas H Foller
Greenwood C Malet
Nicolas N Sergi
Adams O Perin
Kadeem X Nicka
Sinclair A Waycott
Chavez O Iturbide
Nicolas Q Maclead
James A Slusarski
Julie V Caudy
Maisha E Maclead
Kaitlin B Whobrey
Misaki Y Amigon
Stacey E Schemmer
Leja S Caldarera
Emily W Campain
Deepesh T Marrier
Arvin V Butt
Stacey T Stockham
Darci Y Bolognia
Morrow B Saylors
Julie A Waycott
Aika N Stockham
Alejandro W Wieser
Adams V Glick
Juan T Marrier
Stacey H Doe
Leja E Inouye
Kaitlin A Perin
Ashley C Ferencz
Costa Z Whobrey
Jones S Rim
Faith B Caldarera
Stacey A Rim
Francesco Q Figeroa
Darci U Briddick
Maisha Z Malet
Smith S Amigon
Alejandro H Stenseth
Adams B Bowley
Wickens V Slusarski
Jeanfrancois G Briddick
Wickens I Ruta
Claire A Caldarera
Misaki J Caudy
Costa V Tollner
Jennifer I Schemmer
Clifford V Marrier
Deepesh W Caldarera
IdCountryDate
1000Russia2026-08-20
1001Germany2026-08-21
1002Argentina2026-08-22
1003United Kingdom2026-08-06
1004India2026-08-25
1005United Kingdom2026-08-29
1006Brazil2026-08-04
1007Canada2026-08-13
1008India2026-08-03
1009Brazil2026-08-03
1010Argentina2026-08-14
1011Japan2026-08-01
1012Australia2026-08-19
1013Italy2026-08-04
1014Argentina2026-08-02
1015Germany2026-08-06
1016Canada2026-08-21
1017Argentina2026-08-28
1018France2026-08-25
1019Russia2026-08-16
1020Argentina2026-08-08
1021India2026-08-05
1022Argentina2026-08-15
1023Canada2026-08-28
1024Spain2026-08-17
1025Japan2026-08-06
1026Brazil2026-08-20
1027Italy2026-08-13
1028Russia2026-08-16
1029Brazil2026-08-28
1030India2026-08-07
1031France2026-08-04
1032Russia2026-08-23
1033India2026-08-27
1034United Kingdom2026-08-01
1035Japan2026-08-12
1036Germany2026-08-05
1037Spain2026-08-03
1038Italy2026-08-27
1039Australia2026-08-27
1040India2026-08-05
1041United Kingdom2026-08-17
1042Germany2026-08-15
1043Canada2026-08-09
1044Japan2026-08-06
1045Australia2026-08-18
1046India2026-08-09
1047United Kingdom2026-08-09
1048Canada2026-08-28
1049Brazil2026-08-20

On-Demand Data

NameIdCountryDate
Jeanfrancois S Doe1000Russia2026-08-04
Morrow E Nicka1001France2026-08-04
Julie Y Rulapaugh1002Canada2026-08-11
Deepesh L Poquette1003Argentina2026-08-14
Darci F Garufi1004Brazil2026-08-26
James Q Ferencz1005Canada2026-08-30
Maisha L Paprocki1006Japan2026-08-16
Munro C Rulapaugh1007Canada2026-08-10
Murillo A Schemmer1008Brazil2026-08-12
Emily B Venere1009Canada2026-08-05
Faith X Garufi1010Italy2026-08-09
Chavez F Malet1011Argentina2026-08-29
Adams D Whobrey1012Japan2026-08-17
Claire G Malet1013Canada2026-08-01
Cody J Gillian1014Japan2026-08-25
Antonio T Garufi1015France2026-08-07
Mayumi Z Inouye1016Spain2026-08-24
Octavia D Waycott1017Canada2026-08-13
Jefferson E Ruta1018Italy2026-08-03
Cody Q Kusko1019India2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria H OldroydSpainBernardo Dominic NEGOTIATION
Octavia A AlbaresGermanyElwin Sharvill UNQUALIFIED
Leon C WieserSpainAnna Fali PROPOSAL
Maisha W KolmetzArgentinaIvan Magalhaes NEGOTIATION
Emily E CaldareraCanadaXuxue Feng PROPOSAL
Emily C BologniaAustraliaStephen Shaw NEGOTIATION
Jefferson D MorascaItalyOnyama Limba QUALIFIED
Jefferson J GauchoAustraliaStephen Shaw QUALIFIED
Mayumi A PoquetteCanadaElwin Sharvill UNQUALIFIED
Emily F NestleItalyIvan Magalhaes UNQUALIFIED
Julie Y CampainAustraliaAsiya Javayant NEGOTIATION
Greenwood B PerinFranceOnyama Limba NEW
Arvin H DilliardArgentinaOnyama Limba RENEWAL
Morrow Y BriddickRussiaAnna Fali NEW
Jefferson N VenereIndiaAmy Elsner UNQUALIFIED
Claire P ButtJapanAmy Elsner NEW
Ashley Y GarufiItalyAnna Fali NEGOTIATION
Ricardo K BowleyBrazilBernardo Dominic RENEWAL
Cody X SaylorsRussiaIoni Bowcher NEGOTIATION
Jones W FigeroaSpainIoni Bowcher QUALIFIED
David M OldroydSpainStephen Shaw UNQUALIFIED
Faith X VenereRussiaElwin Sharvill UNQUALIFIED
Adams L WhobreyGermanyXuxue Feng NEGOTIATION
Aditya F DoeRussiaIoni Bowcher RENEWAL
Nicolas B SaylorsRussiaOnyama Limba UNQUALIFIED
Clifford W SaylorsGermanyBernardo Dominic UNQUALIFIED
David P NestleSpainAsiya Javayant NEW
Arvin O VenereSpainOnyama Limba NEGOTIATION
Murillo G IturbideIndiaElwin Sharvill RENEWAL
Chavez C NestleIndiaAmy Elsner RENEWAL
Jeanfrancois Z SergiJapanAmy Elsner UNQUALIFIED
Juan B RoysterCanadaBernardo Dominic NEW
Darci W NickaUnited KingdomAmy Elsner PROPOSAL
Arvin O MaletUnited KingdomAnna Fali NEGOTIATION
Costa P CaudyUnited KingdomXuxue Feng NEGOTIATION
Silvio G MarrierAustraliaBernardo Dominic PROPOSAL
Kadeem R OldroydItalyAnna Fali NEW
Adams C BriddickIndiaAnna Fali UNQUALIFIED
David Y BologniaFranceAmy Elsner PROPOSAL
Rodrigues I NestleUnited KingdomAsiya Javayant 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">
            <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>