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
Faith M MaletArgentinaIoni Bowcher RENEWAL
Jeanfrancois P InouyeIndiaAsiya Javayant QUALIFIED
Emily W MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Adams L StensethBrazilAmy Elsner NEW
Costa K FigeroaUnited KingdomAmy Elsner NEGOTIATION
Jones V FollerGermanyOnyama Limba QUALIFIED
Stacey M SaylorsSpainBernardo Dominic NEGOTIATION
Cody U AmigonCanadaXuxue Feng QUALIFIED
Clifford B FlosiArgentinaAsiya Javayant NEGOTIATION
Isabel I AlbaresBrazilElwin Sharvill UNQUALIFIED
Aditya Y CampainRussiaAnna Fali PROPOSAL
Aruna Y DarakjyItalyIvan Magalhaes QUALIFIED
Smith D RutaCanadaBernardo Dominic NEGOTIATION
Antonio S NestleUnited KingdomAsiya Javayant PROPOSAL
Maisha V FollerSpainStephen Shaw NEGOTIATION
Chavez O RimGermanyBernardo Dominic NEW
Adams P IturbideCanadaBernardo Dominic RENEWAL
Emily Q CaldareraIndiaBernardo Dominic NEW
Jones H ButtCanadaAnna Fali QUALIFIED
Maisha U CaldareraArgentinaBernardo Dominic PROPOSAL
Mujtaba F BowleyUnited KingdomElwin Sharvill PROPOSAL
Leon G ButtUnited KingdomAnna Fali RENEWAL
Leon V PerinSpainOnyama Limba UNQUALIFIED
Claire A CaudyUnited KingdomIoni Bowcher UNQUALIFIED
Greenwood E WhobreySpainIvan Magalhaes QUALIFIED
Misaki G SchemmerGermanyAsiya Javayant UNQUALIFIED
Silvio P AmigonArgentinaElwin Sharvill UNQUALIFIED
Smith U IturbideArgentinaXuxue Feng QUALIFIED
Isabel T MaletJapanXuxue Feng NEW
Alejandro X FollerCanadaAnna Fali NEW
Morrow J SergiBrazilElwin Sharvill UNQUALIFIED
Aditya S StockhamAustraliaXuxue Feng RENEWAL
Aditya V StockhamFranceBernardo Dominic NEGOTIATION
Aditya B RimGermanyOnyama Limba RENEWAL
Salvatore L MorascaBrazilXuxue Feng NEGOTIATION
Alejandro W GarufiBrazilAnna Fali PROPOSAL
Octavia T PoquetteArgentinaIoni Bowcher NEW
Murillo G SchemmerJapanIvan Magalhaes UNQUALIFIED
Kadeem E ShinkoCanadaOnyama Limba RENEWAL
Alejandro T DilliardCanadaStephen Shaw NEGOTIATION
Julie L IturbideAustraliaAsiya Javayant NEW
Kaitlin Q WaycottBrazilAsiya Javayant NEGOTIATION
Kaitlin K OldroydGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois B KolmetzSpainIvan Magalhaes NEW
Costa V StockhamItalyIoni Bowcher QUALIFIED
Kadeem A GauchoIndiaIvan Magalhaes PROPOSAL
Misaki Z ButtUnited KingdomElwin Sharvill NEGOTIATION
Maria H SaylorsAustraliaOnyama Limba UNQUALIFIED
James H WhobreyAustraliaIvan Magalhaes RENEWAL
Jennifer X AmigonFranceBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Aruna W RulapaughItalyAnna Fali UNQUALIFIED
Ashley Z MacleadSpainAmy Elsner NEW
Kaitlin N ButtJapanAnna Fali QUALIFIED
Isabel I FlosiFranceAsiya Javayant RENEWAL
Maria I BowleyUnited KingdomOnyama Limba RENEWAL
Misaki K RulapaughItalyXuxue Feng UNQUALIFIED
Costa P RimSpainIvan Magalhaes PROPOSAL
Ricardo I SaylorsIndiaIoni Bowcher UNQUALIFIED
Maisha P GarufiFranceBernardo Dominic NEGOTIATION
Sinclair K SchemmerBrazilOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey D OldroydFrance2026-07-30King, Christopher A Esq UNQUALIFIED7Onyama Limba
1001Munro M RimUnited Kingdom2026-08-09Feiner Bros RENEWAL97Onyama Limba
1002Mayumi F PaprockiItaly2026-07-31Truhlar And Truhlar Attys PROPOSAL99Ioni Bowcher
1003Mujtaba O GillianSpain2026-08-09Chanay, Jeffrey A Esq QUALIFIED77Bernardo Dominic
1004Faith P GlickItaly2026-07-29Morlong Associates QUALIFIED79Onyama Limba
1005Jeanfrancois W GillianSpain2026-08-02Chapman, Ross E Esq UNQUALIFIED32Stephen Shaw
1006James T RutaCanada2026-08-07Feiner Bros QUALIFIED26Anna Fali
1007Salvatore I RulapaughItaly2026-08-08Commercial Press RENEWAL16Bernardo Dominic
1008Julie K SlusarskiJapan2026-07-28Benton, John B Jr RENEWAL50Anna Fali
1009Kaitlin H VenereAustralia2026-07-30Feiner Bros NEW95Stephen Shaw
1010Misaki X ButtUnited Kingdom2026-08-07Truhlar And Truhlar Attys NEW66Stephen Shaw
1011Izzy Y KolmetzAustralia2026-08-04Chanay, Jeffrey A Esq NEW78Ioni Bowcher
1012Antonio N MaletCanada2026-07-23Buckley Miller Wright PROPOSAL0Asiya Javayant
1013Johnson Q ShinkoRussia2026-08-05King, Christopher A Esq PROPOSAL37Stephen Shaw
1014Ricardo J MorascaArgentina2026-07-21King, Christopher A Esq NEW38Amy Elsner
1015Stacey K VocelkaArgentina2026-07-27Benton, John B Jr PROPOSAL82Elwin Sharvill
1016Misaki G TollnerBrazil2026-07-20Commercial Press NEGOTIATION0Xuxue Feng
1017Aruna P NestleJapan2026-08-01Morlong Associates QUALIFIED97Anna Fali
1018Kadeem H KolmetzAustralia2026-08-07Commercial Press NEW1Anna Fali
1019Izzy C IturbideUnited Kingdom2026-08-07King, Christopher A Esq NEGOTIATION51Xuxue Feng
1020Misaki W WieserArgentina2026-08-14Chanay, Jeffrey A Esq NEGOTIATION23Ivan Magalhaes
1021Juan G BologniaIndia2026-08-13King, Christopher A Esq UNQUALIFIED7Xuxue Feng
1022Morrow Y FigeroaArgentina2026-08-11Truhlar And Truhlar Attys UNQUALIFIED54Ivan Magalhaes
1023Aditya O InouyeFrance2026-08-17Benton, John B Jr RENEWAL42Ivan Magalhaes
1024Aditya I ShinkoBrazil2026-07-30Buckley Miller Wright UNQUALIFIED39Onyama Limba
1025Faith J MaletJapan2026-08-08Morlong Associates NEW93Elwin Sharvill
1026Aika R FlosiUnited Kingdom2026-08-05Printing Dimensions QUALIFIED14Bernardo Dominic
1027David V NestleCanada2026-07-21King, Christopher A Esq NEGOTIATION43Amy Elsner
1028Kaitlin Q MacleadItaly2026-08-06Printing Dimensions QUALIFIED51Onyama Limba
1029Nicolas G SergiItaly2026-08-01Rangoni Of Florence QUALIFIED21Asiya Javayant
1030Ricardo X MaletJapan2026-08-17Printing Dimensions UNQUALIFIED28Asiya Javayant
1031Jennifer C GlickSpain2026-08-12Printing Dimensions UNQUALIFIED23Ioni Bowcher
1032Murillo M SchemmerBrazil2026-08-02Morlong Associates PROPOSAL7Ioni Bowcher
1033Mayumi N MorascaAustralia2026-08-10Chapman, Ross E Esq UNQUALIFIED58Anna Fali
1034Ricardo H WhobreyIndia2026-07-19Buckley Miller Wright UNQUALIFIED86Onyama Limba
1035Mayumi Y DoeCanada2026-07-28Printing Dimensions NEGOTIATION40Amy Elsner
1036Jennifer Y DilliardJapan2026-08-10Rangoni Of Florence UNQUALIFIED3Asiya Javayant
1037Jeanfrancois J VenereCanada2026-08-06Truhlar And Truhlar Attys RENEWAL18Asiya Javayant
1038Murillo O RimCanada2026-07-21Rangoni Of Florence NEW24Xuxue Feng
1039Ashley R GlickCanada2026-08-16Chemel, James L Cpa QUALIFIED77Amy Elsner
1040Darci M RimItaly2026-08-13Chanay, Jeffrey A Esq UNQUALIFIED57Ivan Magalhaes
1041Ricardo W CaudyUnited Kingdom2026-08-17Feiner Bros NEW62Xuxue Feng
1042Mayumi P OstroskyFrance2026-07-30Buckley Miller Wright UNQUALIFIED93Onyama Limba
1043David O GarufiFrance2026-08-15Truhlar And Truhlar Attys QUALIFIED70Elwin Sharvill
1044Munro Y OstroskyCanada2026-08-15Chanay, Jeffrey A Esq NEW30Stephen Shaw
1045Aruna F DarakjyFrance2026-07-28Chanay, Jeffrey A Esq PROPOSAL3Ivan Magalhaes
1046Costa A KuskoCanada2026-08-05Printing Dimensions RENEWAL44Ivan Magalhaes
1047Maisha M NestleAustralia2026-07-29Feltz Printing Service NEW99Xuxue Feng
1048Ivar M PerinSpain2026-07-27King, Christopher A Esq PROPOSAL49Elwin Sharvill
1049Antonio Z TollnerGermany2026-07-28Feiner Bros NEGOTIATION3Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Smith E DilliardJapanIvan Magalhaes NEW
Chavez N ChuiSpainAnna Fali NEW
Izzy L VenereGermanyStephen Shaw PROPOSAL
Cody X FollerUnited KingdomOnyama Limba NEGOTIATION
Maisha J OldroydAustraliaAsiya Javayant QUALIFIED
Leon S PoquetteIndiaIvan Magalhaes RENEWAL
Mujtaba R DilliardJapanIoni Bowcher PROPOSAL
Leja V CaldareraArgentinaIvan Magalhaes NEW
Isabel J ButtArgentinaAmy Elsner QUALIFIED
Cody E VenereCanadaOnyama Limba NEW
Leon P AlbaresItalyAmy Elsner NEGOTIATION
Jefferson B PaprockiUnited KingdomAsiya Javayant QUALIFIED
Mujtaba V VenereGermanyIvan Magalhaes UNQUALIFIED
David Y MaletArgentinaAsiya Javayant NEW
David Q SaylorsCanadaXuxue Feng NEGOTIATION
Jones B IturbideIndiaElwin Sharvill PROPOSAL
Adams J NickaAustraliaStephen Shaw QUALIFIED
Clifford T DilliardBrazilIoni Bowcher RENEWAL
Octavia D StockhamRussiaAnna Fali RENEWAL
Aruna M CaudyIndiaIvan Magalhaes UNQUALIFIED
Munro L VenereBrazilAmy Elsner PROPOSAL
Jefferson D RutaUnited KingdomIvan Magalhaes NEGOTIATION
Sinclair W RulapaughAustraliaAnna Fali PROPOSAL
Kaitlin Y NickaArgentinaBernardo Dominic QUALIFIED
Jones I KolmetzIndiaAsiya Javayant QUALIFIED
Ashley M FlosiIndiaElwin Sharvill QUALIFIED
Nicolas X AlbaresFranceOnyama Limba NEGOTIATION
Juan D WhobreyAustraliaStephen Shaw QUALIFIED
Misaki P GauchoIndiaXuxue Feng NEGOTIATION
Wickens O SaylorsFranceAnna Fali RENEWAL
Chavez K PoquetteItalyOnyama Limba NEW
David Q VocelkaBrazilAmy Elsner NEGOTIATION
Kaitlin U DarakjySpainXuxue Feng NEGOTIATION
James J VocelkaSpainIvan Magalhaes NEW
Darci X VenereRussiaAsiya Javayant NEGOTIATION
Faith J NickaGermanyXuxue Feng NEGOTIATION
Salvatore A CampainSpainIvan Magalhaes NEW
Antonio V RoysterSpainElwin Sharvill NEGOTIATION
Alejandro G VenereArgentinaIvan Magalhaes RENEWAL
James R RulapaughRussiaElwin Sharvill NEW
Juan Y ButtCanadaStephen Shaw RENEWAL
Chavez E PaprockiBrazilOnyama Limba PROPOSAL
Mujtaba U VenereBrazilStephen Shaw NEGOTIATION
Kaitlin F SchemmerArgentinaAsiya Javayant RENEWAL
Greenwood J StockhamItalyAnna Fali UNQUALIFIED
Salvatore M DarakjyRussiaAsiya Javayant UNQUALIFIED
Salvatore G BriddickRussiaElwin Sharvill NEGOTIATION
Kadeem U MorascaFranceElwin Sharvill UNQUALIFIED
Misaki T GlickArgentinaBernardo Dominic NEW
Darci S NestleFranceElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Greenwood Q Wieser
Ivar M Ostrosky
Smith E Stenseth
Juan I Vocelka
Emily K Wieser
Mujtaba H Oldroyd
David I Inouye
Silvio U Albares
Maria V Perin
Jeanfrancois Q Kusko
Kadeem Z Ferencz
Greenwood Y Waycott
Kadeem G Paprocki
Juan Y Poquette
Munro Z Shinko
Mayumi J Ostrosky
Leon U Sergi
Sinclair E Maclead
Ricardo Q Glick
Julie M Stockham
Ashley W Bolognia
Wickens H Rim
Faith S Butt
Isabel W Butt
Faith M Slusarski
Jefferson S Shinko
Morrow E Waycott
Ivar E Vocelka
David I Malet
Tony N Stenseth
Clifford G Tollner
Nicolas D Stenseth
Jones C Slusarski
Wickens E Ferencz
Silvio K Kusko
Nicolas L Ferencz
Munro L Gillian
Izzy Z Whobrey
Emily S Venere
Francesco V Bowley
Juan B Slusarski
Tony C Tollner
Cody C Caldarera
Mujtaba O Perin
Chavez N Malet
Emily L Venere
Clifford G Albares
Ivar N Whobrey
Smith H Waycott
Jennifer R Gaucho
IdCountryDate
1000Australia2026-07-21
1001Australia2026-08-13
1002Germany2026-07-19
1003Italy2026-07-30
1004Brazil2026-08-16
1005Japan2026-08-02
1006Australia2026-07-20
1007France2026-07-26
1008United Kingdom2026-08-13
1009India2026-08-05
1010India2026-08-13
1011France2026-08-08
1012Italy2026-07-19
1013Argentina2026-07-27
1014Spain2026-08-16
1015Japan2026-08-01
1016Italy2026-07-26
1017Japan2026-08-15
1018Japan2026-08-03
1019Japan2026-07-27
1020Italy2026-07-24
1021France2026-07-27
1022India2026-08-10
1023Japan2026-08-13
1024Japan2026-08-15
1025Brazil2026-08-12
1026United Kingdom2026-08-17
1027Canada2026-07-31
1028Germany2026-07-26
1029Canada2026-08-08
1030Argentina2026-08-05
1031Italy2026-07-28
1032France2026-07-20
1033India2026-08-03
1034Brazil2026-08-09
1035Germany2026-08-16
1036Spain2026-07-21
1037United Kingdom2026-07-26
1038Russia2026-07-22
1039Spain2026-08-11
1040Italy2026-07-30
1041Brazil2026-08-11
1042Russia2026-08-15
1043Japan2026-07-27
1044Germany2026-08-02
1045France2026-07-21
1046Brazil2026-07-21
1047India2026-07-21
1048Germany2026-08-09
1049United Kingdom2026-07-31

On-Demand Data

NameIdCountryDate
Maria P Whobrey1000Japan2026-07-21
Ivar N Albares1001Japan2026-08-10
Francesco R Garufi1002Russia2026-08-14
Jeanfrancois H Royster1003Germany2026-08-08
Aruna H Albares1004Brazil2026-07-23
Faith W Morasca1005Australia2026-08-04
Isabel Q Tollner1006Argentina2026-07-27
Adams S Kusko1007Germany2026-07-25
Leon K Bowley1008Japan2026-08-15
Faith Y Venere1009Argentina2026-07-30
Jeanfrancois G Campain1010Italy2026-08-08
Julie R Rulapaugh1011Russia2026-07-30
James X Marrier1012Italy2026-08-03
Murillo S Malet1013Australia2026-07-23
Darci K Waycott1014United Kingdom2026-08-15
Arvin M Gillian1015United Kingdom2026-08-15
Faith J Chui1016Canada2026-07-26
Misaki C Whobrey1017France2026-08-17
Aditya C Bolognia1018United Kingdom2026-08-10
Wickens W Glick1019Brazil2026-08-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford J OldroydCanadaXuxue Feng NEW
Kadeem X MorascaAustraliaElwin Sharvill UNQUALIFIED
Silvio W AmigonAustraliaAmy Elsner RENEWAL
Jennifer F RutaSpainIoni Bowcher NEGOTIATION
Jefferson B BowleyArgentinaStephen Shaw QUALIFIED
Alejandro E MarrierArgentinaIoni Bowcher RENEWAL
Smith D NickaCanadaStephen Shaw UNQUALIFIED
Isabel Q VocelkaArgentinaIoni Bowcher QUALIFIED
Isabel W CaudyUnited KingdomAnna Fali UNQUALIFIED
Morrow M ChuiUnited KingdomBernardo Dominic PROPOSAL
Isabel C MarrierGermanyIvan Magalhaes PROPOSAL
Morrow O SergiIndiaAnna Fali QUALIFIED
Faith Y CaudyItalyAnna Fali RENEWAL
Murillo R RulapaughFranceBernardo Dominic RENEWAL
Francesco W GlickRussiaBernardo Dominic UNQUALIFIED
Munro P ShinkoRussiaAsiya Javayant NEGOTIATION
Mayumi V GlickFranceBernardo Dominic PROPOSAL
Jeanfrancois Q WaycottGermanyAmy Elsner PROPOSAL
Salvatore F FerenczRussiaElwin Sharvill PROPOSAL
Mayumi E StensethIndiaAsiya Javayant NEW
Smith U AmigonBrazilElwin Sharvill RENEWAL
Misaki A GarufiArgentinaAsiya Javayant QUALIFIED
Jones D DoeAustraliaXuxue Feng RENEWAL
Ivar A ShinkoFranceAsiya Javayant NEGOTIATION
Sinclair T DarakjyUnited KingdomAnna Fali QUALIFIED
Mujtaba G FollerUnited KingdomBernardo Dominic PROPOSAL
Cody S RutaItalyIvan Magalhaes UNQUALIFIED
Alejandro V FerenczCanadaAsiya Javayant QUALIFIED
Mujtaba S RimFranceXuxue Feng NEGOTIATION
David Z BriddickArgentinaElwin Sharvill NEW
David V WaycottCanadaAmy Elsner NEGOTIATION
Cody U NickaGermanyBernardo Dominic NEW
Darci M RimSpainIoni Bowcher UNQUALIFIED
Murillo T OstroskyBrazilAsiya Javayant NEW
Juan O DarakjyCanadaIoni Bowcher NEW
Darci C WieserGermanyIoni Bowcher QUALIFIED
Izzy G NestleJapanElwin Sharvill RENEWAL
Morrow A CampainCanadaBernardo Dominic UNQUALIFIED
Maisha H GillianIndiaAsiya Javayant NEW
Sinclair B SergiJapanStephen Shaw 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>