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
David K MaletUnited KingdomXuxue Feng RENEWAL
Juan O FigeroaFranceAsiya Javayant NEGOTIATION
Nicolas B PerinSpainBernardo Dominic NEGOTIATION
Rodrigues E StockhamItalyIoni Bowcher NEGOTIATION
Clifford V OldroydCanadaStephen Shaw PROPOSAL
Kadeem X KuskoAustraliaElwin Sharvill NEGOTIATION
Adams U SlusarskiCanadaOnyama Limba PROPOSAL
Sinclair N DarakjyFranceAmy Elsner NEW
Ivar B WhobreyCanadaAnna Fali NEGOTIATION
Darci R DarakjyItalyAmy Elsner RENEWAL
Kadeem A GillianBrazilAnna Fali NEGOTIATION
Cody Q RulapaughSpainStephen Shaw NEGOTIATION
Silvio K IturbideItalyIvan Magalhaes UNQUALIFIED
Darci G MaletFranceXuxue Feng NEW
Kaitlin U IturbideUnited KingdomElwin Sharvill QUALIFIED
Jeanfrancois Y SaylorsFranceIoni Bowcher NEW
Nicolas Y WhobreyBrazilOnyama Limba NEGOTIATION
Ivar A PerinItalyIvan Magalhaes UNQUALIFIED
Kadeem D FerenczItalyOnyama Limba NEGOTIATION
Isabel O MorascaCanadaOnyama Limba PROPOSAL
Julie J NestleBrazilIoni Bowcher RENEWAL
Maria H TollnerBrazilIvan Magalhaes QUALIFIED
Mujtaba W PerinFranceAnna Fali QUALIFIED
Jeanfrancois Z WaycottAustraliaAnna Fali QUALIFIED
Aditya R FollerCanadaIoni Bowcher NEGOTIATION
Aruna A MarrierUnited KingdomIoni Bowcher RENEWAL
Emily N FerenczCanadaXuxue Feng PROPOSAL
Adams U FollerUnited KingdomOnyama Limba QUALIFIED
Silvio G CampainAustraliaAsiya Javayant RENEWAL
Kaitlin L ChuiCanadaElwin Sharvill RENEWAL
Morrow X FlosiGermanyStephen Shaw NEGOTIATION
Juan P ButtJapanStephen Shaw QUALIFIED
Aditya E InouyeFranceStephen Shaw RENEWAL
Jones C SergiArgentinaAnna Fali NEW
Ashley R MaletJapanStephen Shaw UNQUALIFIED
Silvio W PaprockiAustraliaOnyama Limba UNQUALIFIED
Isabel I OstroskyItalyAnna Fali NEW
Deepesh P SergiArgentinaAsiya Javayant NEGOTIATION
Darci H CaudyArgentinaIvan Magalhaes PROPOSAL
Julie H ButtGermanyIoni Bowcher PROPOSAL
Leon I InouyeUnited KingdomBernardo Dominic RENEWAL
Kadeem K MaletFranceXuxue Feng PROPOSAL
Johnson E GarufiRussiaAsiya Javayant RENEWAL
Adams G InouyeIndiaAmy Elsner QUALIFIED
Claire D DarakjyFranceAmy Elsner QUALIFIED
Sinclair N VocelkaUnited KingdomAnna Fali NEW
Misaki S SchemmerJapanOnyama Limba RENEWAL
Morrow B BologniaGermanyXuxue Feng NEGOTIATION
Clifford O FollerItalyAsiya Javayant NEGOTIATION
Maisha T BriddickJapanOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Johnson B WaycottArgentinaIoni Bowcher QUALIFIED
Aditya H RutaItalyIvan Magalhaes QUALIFIED
Misaki P WaycottAustraliaStephen Shaw UNQUALIFIED
Misaki T GlickItalyAsiya Javayant PROPOSAL
Arvin H DarakjyArgentinaIvan Magalhaes RENEWAL
Smith I GarufiSpainAsiya Javayant RENEWAL
Leja A InouyeAustraliaAnna Fali NEGOTIATION
Deepesh N DoeSpainXuxue Feng QUALIFIED
Faith F ButtGermanyAsiya Javayant PROPOSAL
Francesco W MaletItalyOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna O KuskoFrance2026-07-31Buckley Miller Wright NEW19Ivan Magalhaes
1001Johnson U SergiUnited Kingdom2026-08-03Feltz Printing Service NEGOTIATION69Amy Elsner
1002Cody I DilliardBrazil2026-07-24Rousseaux, Michael Esq NEW13Bernardo Dominic
1003Salvatore C PaprockiSpain2026-07-30Feiner Bros QUALIFIED69Ivan Magalhaes
1004James Q IturbideAustralia2026-07-24King, Christopher A Esq UNQUALIFIED71Stephen Shaw
1005Munro R GarufiItaly2026-07-18Chanay, Jeffrey A Esq NEW29Xuxue Feng
1006Jeanfrancois G SergiSpain2026-07-23Dorl, James J Esq NEGOTIATION53Ioni Bowcher
1007Morrow O BriddickJapan2026-08-11Feiner Bros UNQUALIFIED89Elwin Sharvill
1008Ashley E OldroydRussia2026-08-10Chemel, James L Cpa PROPOSAL32Anna Fali
1009Darci I NestleCanada2026-07-29Printing Dimensions PROPOSAL72Bernardo Dominic
1010Maria U MorascaBrazil2026-07-27Dorl, James J Esq RENEWAL19Onyama Limba
1011Darci Z FigeroaItaly2026-07-19Dorl, James J Esq RENEWAL82Bernardo Dominic
1012Mujtaba Q PaprockiArgentina2026-07-29Morlong Associates RENEWAL58Elwin Sharvill
1013Jones Q MorascaJapan2026-07-14Chanay, Jeffrey A Esq QUALIFIED77Xuxue Feng
1014Ricardo O OldroydFrance2026-07-28Chemel, James L Cpa UNQUALIFIED79Ivan Magalhaes
1015Nicolas H OstroskyUnited Kingdom2026-07-29Feltz Printing Service RENEWAL64Ivan Magalhaes
1016Wickens T BologniaItaly2026-07-30Chemel, James L Cpa NEGOTIATION60Anna Fali
1017Tony P KuskoFrance2026-07-17Rangoni Of Florence UNQUALIFIED21Elwin Sharvill
1018Aditya P RoysterFrance2026-08-02Commercial Press RENEWAL29Elwin Sharvill
1019Antonio E SaylorsRussia2026-08-09Feiner Bros NEGOTIATION44Ivan Magalhaes
1020Jefferson I ChuiBrazil2026-07-24King, Christopher A Esq RENEWAL3Ioni Bowcher
1021Arvin Q WhobreyArgentina2026-08-09Feiner Bros RENEWAL19Ivan Magalhaes
1022Faith K PoquetteBrazil2026-07-26Truhlar And Truhlar Attys QUALIFIED71Asiya Javayant
1023Isabel V ChuiRussia2026-07-26Truhlar And Truhlar Attys UNQUALIFIED92Ioni Bowcher
1024Leja E BowleyAustralia2026-07-18Feltz Printing Service RENEWAL19Asiya Javayant
1025David W ButtArgentina2026-08-08Chemel, James L Cpa NEGOTIATION81Elwin Sharvill
1026Munro T SergiBrazil2026-08-08Feltz Printing Service RENEWAL45Asiya Javayant
1027Jeanfrancois J GauchoFrance2026-07-14Dorl, James J Esq UNQUALIFIED43Onyama Limba
1028Deepesh P WhobreyJapan2026-07-27Commercial Press UNQUALIFIED97Ioni Bowcher
1029Leja T ChuiArgentina2026-07-20Printing Dimensions UNQUALIFIED43Amy Elsner
1030Murillo N FerenczSpain2026-07-19Chanay, Jeffrey A Esq PROPOSAL40Elwin Sharvill
1031Leon T RimUnited Kingdom2026-08-09Rangoni Of Florence PROPOSAL19Asiya Javayant
1032Ivar Q FollerIndia2026-07-28Commercial Press PROPOSAL56Onyama Limba
1033Aruna T WhobreyJapan2026-07-25Feiner Bros QUALIFIED48Onyama Limba
1034Alejandro P MaletSpain2026-07-15Chemel, James L Cpa RENEWAL2Stephen Shaw
1035James D AlbaresCanada2026-08-09Chanay, Jeffrey A Esq PROPOSAL17Xuxue Feng
1036Murillo Z NestleAustralia2026-07-26King, Christopher A Esq NEGOTIATION52Elwin Sharvill
1037Silvio H AmigonCanada2026-07-22Morlong Associates RENEWAL66Anna Fali
1038Clifford M RulapaughArgentina2026-08-09Chanay, Jeffrey A Esq PROPOSAL71Asiya Javayant
1039Jennifer J BowleyUnited Kingdom2026-07-19Chemel, James L Cpa UNQUALIFIED12Amy Elsner
1040Kadeem M MacleadFrance2026-08-03Printing Dimensions NEW64Onyama Limba
1041Aruna K CaudyUnited Kingdom2026-07-20Buckley Miller Wright NEGOTIATION52Bernardo Dominic
1042Leja B StensethArgentina2026-08-02Rangoni Of Florence UNQUALIFIED13Ivan Magalhaes
1043Rodrigues D VocelkaCanada2026-08-05Feltz Printing Service PROPOSAL19Amy Elsner
1044Deepesh X MarrierBrazil2026-07-17Commercial Press PROPOSAL19Asiya Javayant
1045Kadeem F StockhamIndia2026-07-13Rangoni Of Florence PROPOSAL37Ivan Magalhaes
1046Leja A RimJapan2026-08-09Dorl, James J Esq RENEWAL72Ivan Magalhaes
1047Clifford S MaletGermany2026-07-22King, Christopher A Esq NEW56Amy Elsner
1048Aruna O KuskoJapan2026-07-18Rangoni Of Florence PROPOSAL24Onyama Limba
1049Jennifer I MorascaUnited Kingdom2026-07-15Chanay, Jeffrey A Esq PROPOSAL37Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jefferson S GarufiFranceIoni Bowcher RENEWAL
Jones B AlbaresItalyAnna Fali NEW
David L RutaGermanyOnyama Limba RENEWAL
Smith F SaylorsCanadaAnna Fali NEW
Arvin C FlosiGermanyStephen Shaw NEGOTIATION
Jeanfrancois K TollnerSpainXuxue Feng NEW
Morrow M WieserUnited KingdomIvan Magalhaes UNQUALIFIED
James C AlbaresSpainIoni Bowcher RENEWAL
Smith H DarakjySpainIvan Magalhaes NEW
Munro R MorascaJapanStephen Shaw UNQUALIFIED
Misaki C DilliardIndiaAmy Elsner RENEWAL
Murillo W NickaFranceOnyama Limba QUALIFIED
Ricardo I VocelkaBrazilBernardo Dominic NEGOTIATION
Cody N RimFranceElwin Sharvill NEW
Tony K RimBrazilBernardo Dominic PROPOSAL
Tony H RulapaughJapanElwin Sharvill NEW
Nicolas I TollnerItalyXuxue Feng QUALIFIED
Juan Q KolmetzItalyAmy Elsner NEGOTIATION
Clifford K StockhamSpainStephen Shaw NEGOTIATION
Johnson P RulapaughBrazilAnna Fali NEGOTIATION
Clifford W ChuiFranceElwin Sharvill NEW
Francesco Q StensethFranceBernardo Dominic NEGOTIATION
Julie O BriddickArgentinaElwin Sharvill QUALIFIED
Murillo R MaletFranceIoni Bowcher PROPOSAL
Chavez A CampainBrazilXuxue Feng RENEWAL
Nicolas S RimItalyAnna Fali PROPOSAL
Aruna Z SchemmerAustraliaXuxue Feng PROPOSAL
Smith F IturbideItalyStephen Shaw UNQUALIFIED
Isabel O ButtCanadaAsiya Javayant PROPOSAL
Silvio E InouyeFranceIoni Bowcher UNQUALIFIED
Clifford M WieserUnited KingdomAmy Elsner NEW
Adams P InouyeFranceXuxue Feng UNQUALIFIED
David Y ButtIndiaStephen Shaw QUALIFIED
Aditya Z GauchoSpainAmy Elsner NEW
Morrow G RoysterAustraliaAmy Elsner PROPOSAL
Mujtaba O GauchoJapanIvan Magalhaes NEGOTIATION
Stacey F MaletFranceOnyama Limba NEGOTIATION
Chavez G CaldareraUnited KingdomAmy Elsner NEW
Jennifer T MarrierUnited KingdomAnna Fali QUALIFIED
Aditya Y AmigonItalyIvan Magalhaes RENEWAL
Stacey H GarufiArgentinaAmy Elsner UNQUALIFIED
Alejandro L MorascaBrazilStephen Shaw QUALIFIED
David P PaprockiFranceAmy Elsner UNQUALIFIED
Antonio A FollerBrazilOnyama Limba UNQUALIFIED
Sinclair E FlosiSpainStephen Shaw NEW
Sinclair G ButtBrazilIoni Bowcher UNQUALIFIED
Adams E MarrierJapanIvan Magalhaes QUALIFIED
Costa G FollerJapanAmy Elsner QUALIFIED
Clifford J CaudyGermanyStephen Shaw NEGOTIATION
Wickens W DoeRussiaAsiya Javayant PROPOSAL
Frozen Columns
Name
Johnson X Iturbide
Silvio J Kolmetz
Juan J Nicka
Antonio E Stenseth
Alejandro W Iturbide
Greenwood W Malet
Tony Q Garufi
Arvin T Darakjy
Costa N Sergi
Izzy W Kolmetz
Kadeem F Tollner
Jeanfrancois L Inouye
Antonio O Ostrosky
Kaitlin S Poquette
Octavia O Kolmetz
Jeanfrancois T Glick
Johnson C Darakjy
Stacey I Sergi
Izzy P Vocelka
Mujtaba P Wieser
Isabel G Gillian
Sinclair X Maclead
Julie D Kolmetz
Wickens C Stockham
Aika U Glick
Julie E Stockham
Octavia M Kolmetz
Darci P Maclead
Maria V Ostrosky
Chavez N Dilliard
Darci N Malet
Rodrigues C Kusko
Kaitlin K Iturbide
Cody S Dilliard
Aika E Kusko
Julie P Nestle
Ricardo Q Briddick
Kadeem C Stenseth
Cody J Paprocki
Kaitlin F Waycott
Kaitlin S Caldarera
Kadeem L Ferencz
Izzy Z Caldarera
Deepesh K Shinko
Octavia F Gaucho
Chavez U Iturbide
Antonio B Morasca
Aika B Wieser
Sinclair D Marrier
Jones U Malet
IdCountryDate
1000India2026-08-05
1001India2026-07-29
1002Japan2026-07-21
1003Russia2026-07-15
1004Canada2026-07-15
1005Argentina2026-07-28
1006Brazil2026-08-04
1007Australia2026-08-10
1008Spain2026-08-01
1009Italy2026-07-26
1010Spain2026-07-21
1011Italy2026-07-24
1012Brazil2026-07-20
1013Brazil2026-08-11
1014Germany2026-07-26
1015Italy2026-08-06
1016Brazil2026-07-31
1017Russia2026-07-28
1018France2026-07-15
1019Germany2026-07-26
1020Germany2026-08-07
1021Argentina2026-07-17
1022Japan2026-07-19
1023Germany2026-07-18
1024Canada2026-07-13
1025Australia2026-08-03
1026Germany2026-07-22
1027Germany2026-07-15
1028Italy2026-08-08
1029United Kingdom2026-07-31
1030France2026-08-11
1031Germany2026-07-19
1032Australia2026-08-10
1033Argentina2026-07-16
1034Russia2026-07-27
1035United Kingdom2026-07-29
1036Canada2026-07-17
1037Italy2026-08-11
1038Spain2026-07-28
1039Canada2026-07-31
1040Russia2026-07-17
1041Russia2026-07-31
1042Japan2026-07-17
1043Argentina2026-08-04
1044United Kingdom2026-07-14
1045India2026-08-07
1046Argentina2026-07-21
1047India2026-07-24
1048Japan2026-07-21
1049Spain2026-07-26

On-Demand Data

NameIdCountryDate
Nicolas T Bolognia1000Canada2026-07-27
Isabel C Caudy1001Spain2026-07-17
Kadeem Y Glick1002Russia2026-07-31
James R Sergi1003India2026-08-06
Aika E Oldroyd1004Australia2026-07-19
Kadeem T Saylors1005Japan2026-08-01
Darci N Caudy1006Germany2026-08-01
Octavia Z Ostrosky1007India2026-07-16
Ashley L Bowley1008Brazil2026-08-04
Cody K Iturbide1009Australia2026-08-10
Salvatore M Poquette1010United Kingdom2026-08-10
Darci F Darakjy1011Brazil2026-07-20
Tony C Perin1012Germany2026-07-24
Adams W Perin1013Australia2026-08-11
Jennifer I Bowley1014India2026-08-02
Morrow S Maclead1015Canada2026-07-16
Antonio M Dilliard1016Australia2026-08-05
Kadeem P Darakjy1017United Kingdom2026-08-02
Jennifer C Venere1018Brazil2026-07-13
Misaki K Stenseth1019Canada2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo D OldroydCanadaElwin Sharvill NEW
Jennifer A GillianAustraliaIvan Magalhaes RENEWAL
Claire M FollerUnited KingdomStephen Shaw UNQUALIFIED
Mujtaba K DoeUnited KingdomBernardo Dominic PROPOSAL
Aika H RoysterRussiaAnna Fali UNQUALIFIED
Aruna U SaylorsAustraliaElwin Sharvill PROPOSAL
Munro M DoeBrazilAmy Elsner NEGOTIATION
Faith B AmigonSpainIvan Magalhaes QUALIFIED
Nicolas A FigeroaSpainAnna Fali UNQUALIFIED
Alejandro T MarrierJapanAsiya Javayant NEW
Morrow B MacleadJapanAnna Fali QUALIFIED
Stacey F CaldareraSpainAmy Elsner NEGOTIATION
Jennifer T SchemmerArgentinaElwin Sharvill PROPOSAL
Adams N VenereItalyElwin Sharvill NEW
Arvin A SaylorsItalyXuxue Feng QUALIFIED
Chavez T GillianItalyIvan Magalhaes RENEWAL
Leon L GauchoArgentinaXuxue Feng NEW
Silvio K BriddickIndiaStephen Shaw PROPOSAL
Octavia M ButtItalyAsiya Javayant QUALIFIED
Aruna D StensethFranceOnyama Limba PROPOSAL
Chavez Y WhobreyRussiaAsiya Javayant NEW
Claire K CaldareraItalyIvan Magalhaes NEGOTIATION
Izzy G RimCanadaStephen Shaw PROPOSAL
Leon K DilliardSpainBernardo Dominic QUALIFIED
Izzy F MaletJapanElwin Sharvill NEGOTIATION
Kadeem W OldroydSpainOnyama Limba RENEWAL
Costa W SchemmerFranceIoni Bowcher NEW
Aika P BologniaGermanyOnyama Limba RENEWAL
Aruna J BowleyUnited KingdomOnyama Limba QUALIFIED
Salvatore H MorascaArgentinaStephen Shaw UNQUALIFIED
Johnson M MaletFranceElwin Sharvill QUALIFIED
Alejandro T BologniaUnited KingdomIoni Bowcher PROPOSAL
Ivar A TollnerIndiaAnna Fali NEW
Jeanfrancois P MorascaArgentinaXuxue Feng PROPOSAL
Clifford C NestleGermanyAsiya Javayant PROPOSAL
Mayumi T PerinGermanyElwin Sharvill NEGOTIATION
Johnson Q NestleCanadaAmy Elsner UNQUALIFIED
Costa A NickaIndiaBernardo Dominic PROPOSAL
Kaitlin T NickaArgentinaXuxue Feng QUALIFIED
Kadeem N StensethRussiaOnyama Limba 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>