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
Adams Q FigeroaGermanyIoni Bowcher UNQUALIFIED
Ricardo K MaletUnited KingdomOnyama Limba UNQUALIFIED
Kadeem M StensethJapanAsiya Javayant UNQUALIFIED
Francesco U MaletSpainStephen Shaw NEGOTIATION
Munro P SchemmerJapanXuxue Feng NEW
Adams S StensethUnited KingdomIoni Bowcher QUALIFIED
Isabel R MorascaBrazilXuxue Feng UNQUALIFIED
Costa X VenereCanadaStephen Shaw QUALIFIED
Octavia H MaletSpainElwin Sharvill QUALIFIED
Arvin V BowleyGermanyXuxue Feng PROPOSAL
Greenwood I StensethCanadaOnyama Limba QUALIFIED
Ashley F BowleyFranceAsiya Javayant RENEWAL
Isabel H IturbideSpainAnna Fali RENEWAL
Izzy J DilliardArgentinaIvan Magalhaes UNQUALIFIED
Izzy O FerenczBrazilOnyama Limba NEW
Munro S DarakjyUnited KingdomAsiya Javayant RENEWAL
Mayumi H CaudyUnited KingdomAsiya Javayant RENEWAL
Clifford J StensethCanadaXuxue Feng RENEWAL
Izzy F PerinUnited KingdomAsiya Javayant PROPOSAL
Maisha P WhobreyAustraliaAmy Elsner NEW
Octavia Z SlusarskiGermanyStephen Shaw NEGOTIATION
Munro S SergiItalyAmy Elsner UNQUALIFIED
Ivar N WhobreyBrazilAmy Elsner NEGOTIATION
Costa D WieserCanadaStephen Shaw NEW
James Q BowleyIndiaBernardo Dominic NEW
Jeanfrancois O OstroskyBrazilAnna Fali UNQUALIFIED
Adams B ShinkoCanadaBernardo Dominic PROPOSAL
Ivar E IturbideItalyAmy Elsner QUALIFIED
Arvin M GarufiAustraliaXuxue Feng NEGOTIATION
Mujtaba V DarakjyUnited KingdomOnyama Limba RENEWAL
Alejandro S RoysterArgentinaElwin Sharvill QUALIFIED
Emily E MaletJapanIvan Magalhaes RENEWAL
Nicolas H PerinUnited KingdomElwin Sharvill UNQUALIFIED
David S GauchoFranceIoni Bowcher NEGOTIATION
Ivar K BriddickBrazilOnyama Limba NEGOTIATION
Ashley L VocelkaJapanXuxue Feng RENEWAL
Sinclair A SaylorsJapanBernardo Dominic PROPOSAL
Mayumi M IturbideItalyAsiya Javayant UNQUALIFIED
Stacey K MarrierAustraliaXuxue Feng NEGOTIATION
Juan Z StockhamBrazilAsiya Javayant PROPOSAL
Adams B CaldareraBrazilOnyama Limba QUALIFIED
Claire E RutaCanadaOnyama Limba NEW
Maria A AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Julie G ShinkoBrazilAmy Elsner PROPOSAL
Greenwood A WhobreyIndiaIoni Bowcher QUALIFIED
Stacey R FlosiFranceIoni Bowcher PROPOSAL
Mujtaba P InouyeCanadaAsiya Javayant UNQUALIFIED
Francesco G BologniaCanadaAsiya Javayant RENEWAL
Chavez W WieserAustraliaAsiya Javayant QUALIFIED
Deepesh O BologniaIndiaAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco O KolmetzCanadaXuxue Feng NEW
Izzy K AlbaresJapanElwin Sharvill RENEWAL
Francesco N TollnerRussiaIoni Bowcher RENEWAL
Jones E FigeroaRussiaAsiya Javayant PROPOSAL
Morrow N MacleadArgentinaXuxue Feng UNQUALIFIED
Munro P BologniaJapanOnyama Limba RENEWAL
James V GauchoGermanyStephen Shaw NEW
Octavia K IturbideSpainOnyama Limba RENEWAL
Kaitlin F DoeGermanyStephen Shaw RENEWAL
Juan B CaldareraAustraliaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson B GlickArgentina2026-08-04Chemel, James L Cpa NEW39Ivan Magalhaes
1001Antonio G MaletFrance2026-07-30Benton, John B Jr PROPOSAL87Stephen Shaw
1002Aditya N SaylorsArgentina2026-07-20Benton, John B Jr RENEWAL92Asiya Javayant
1003Leja D VocelkaRussia2026-08-02Benton, John B Jr QUALIFIED99Ivan Magalhaes
1004Kaitlin S FigeroaBrazil2026-07-12Dorl, James J Esq QUALIFIED20Stephen Shaw
1005Chavez T StockhamArgentina2026-07-23Chanay, Jeffrey A Esq UNQUALIFIED2Asiya Javayant
1006Kaitlin Z PoquetteUnited Kingdom2026-07-25King, Christopher A Esq PROPOSAL91Ivan Magalhaes
1007Jones A FigeroaAustralia2026-07-15Chapman, Ross E Esq RENEWAL2Bernardo Dominic
1008Leja W BriddickJapan2026-07-31Chapman, Ross E Esq PROPOSAL39Ivan Magalhaes
1009Munro U GlickBrazil2026-07-17Dorl, James J Esq QUALIFIED41Elwin Sharvill
1010Adams W InouyeUnited Kingdom2026-07-27King, Christopher A Esq RENEWAL6Ivan Magalhaes
1011Izzy G VenereGermany2026-07-30King, Christopher A Esq QUALIFIED12Ivan Magalhaes
1012Octavia R GarufiCanada2026-07-20Feiner Bros NEW73Xuxue Feng
1013Smith M AlbaresAustralia2026-08-03Morlong Associates RENEWAL77Onyama Limba
1014Leon P RoysterCanada2026-08-02Feiner Bros QUALIFIED52Onyama Limba
1015Morrow Z GillianItaly2026-07-30Feiner Bros UNQUALIFIED41Ioni Bowcher
1016Costa Y MaletArgentina2026-07-25Feltz Printing Service QUALIFIED0Asiya Javayant
1017Chavez M AmigonFrance2026-07-12Chemel, James L Cpa PROPOSAL68Onyama Limba
1018Smith V StensethItaly2026-08-07Buckley Miller Wright NEW29Ioni Bowcher
1019Jones A CaudySpain2026-07-23Feltz Printing Service UNQUALIFIED30Xuxue Feng
1020Aika C FollerJapan2026-07-18Chapman, Ross E Esq UNQUALIFIED3Elwin Sharvill
1021Rodrigues L VocelkaArgentina2026-07-14Benton, John B Jr RENEWAL31Onyama Limba
1022Jefferson E SaylorsItaly2026-07-24Rangoni Of Florence UNQUALIFIED15Asiya Javayant
1023Francesco E MaletArgentina2026-08-08Truhlar And Truhlar Attys RENEWAL46Ivan Magalhaes
1024Wickens S IturbideIndia2026-07-22Chapman, Ross E Esq PROPOSAL28Anna Fali
1025Darci Q WieserGermany2026-07-17Truhlar And Truhlar Attys NEGOTIATION40Amy Elsner
1026Morrow E GarufiUnited Kingdom2026-08-02Rangoni Of Florence NEW3Bernardo Dominic
1027Ashley V GlickFrance2026-07-12Printing Dimensions NEW11Ioni Bowcher
1028Antonio F CaudyAustralia2026-07-10Chapman, Ross E Esq RENEWAL65Stephen Shaw
1029Stacey G RutaJapan2026-07-30Chapman, Ross E Esq RENEWAL94Onyama Limba
1030Mayumi T FlosiCanada2026-07-17Morlong Associates QUALIFIED63Anna Fali
1031Leon A ShinkoAustralia2026-07-13Chapman, Ross E Esq RENEWAL66Xuxue Feng
1032Jefferson J VenereSpain2026-08-08Chanay, Jeffrey A Esq QUALIFIED17Anna Fali
1033Silvio H IturbideFrance2026-07-26Rangoni Of Florence QUALIFIED45Stephen Shaw
1034Cody W PerinItaly2026-07-16King, Christopher A Esq NEW79Bernardo Dominic
1035Aruna Y CaldareraFrance2026-07-22Morlong Associates RENEWAL4Asiya Javayant
1036Leja X PaprockiCanada2026-08-05King, Christopher A Esq RENEWAL18Onyama Limba
1037Clifford E MacleadFrance2026-07-27Chanay, Jeffrey A Esq QUALIFIED92Ioni Bowcher
1038Ashley F BriddickUnited Kingdom2026-07-23Buckley Miller Wright NEGOTIATION32Stephen Shaw
1039Johnson X BriddickFrance2026-07-22Feiner Bros PROPOSAL58Ivan Magalhaes
1040Costa H MaletUnited Kingdom2026-08-03Printing Dimensions RENEWAL10Asiya Javayant
1041Octavia O StockhamBrazil2026-08-04Rousseaux, Michael Esq QUALIFIED97Bernardo Dominic
1042Murillo W WaycottJapan2026-07-28Feltz Printing Service NEW66Bernardo Dominic
1043Costa Q GillianCanada2026-07-31Buckley Miller Wright NEGOTIATION52Amy Elsner
1044Kadeem F MaletRussia2026-07-31Chemel, James L Cpa PROPOSAL53Anna Fali
1045Antonio K DoeAustralia2026-07-30Truhlar And Truhlar Attys QUALIFIED92Onyama Limba
1046Morrow K RimArgentina2026-07-19Printing Dimensions RENEWAL62Bernardo Dominic
1047Mujtaba S OstroskyGermany2026-07-25Chemel, James L Cpa NEW9Elwin Sharvill
1048Kaitlin R CampainAustralia2026-08-03Dorl, James J Esq PROPOSAL95Bernardo Dominic
1049Deepesh M PaprockiIndia2026-08-08Chapman, Ross E Esq RENEWAL63Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Julie Y PaprockiJapanAsiya Javayant PROPOSAL
Rodrigues U NestleItalyXuxue Feng NEGOTIATION
Kaitlin D SchemmerRussiaAsiya Javayant UNQUALIFIED
Emily X GillianJapanElwin Sharvill PROPOSAL
Aditya L MacleadFranceIoni Bowcher NEW
Julie E WaycottUnited KingdomOnyama Limba RENEWAL
Mayumi R MarrierRussiaOnyama Limba RENEWAL
Darci P GlickSpainStephen Shaw NEW
Adams E InouyeItalyAmy Elsner RENEWAL
Salvatore H PoquetteGermanyOnyama Limba NEW
Mujtaba J MaletRussiaOnyama Limba QUALIFIED
Greenwood X MacleadRussiaAnna Fali NEW
Jones M FlosiSpainXuxue Feng NEW
Cody S VenereRussiaElwin Sharvill NEW
Morrow C InouyeRussiaAsiya Javayant RENEWAL
Aditya L AlbaresJapanAsiya Javayant NEW
Arvin L FollerItalyAsiya Javayant RENEWAL
Silvio V WaycottFranceBernardo Dominic QUALIFIED
Claire R CaldareraBrazilXuxue Feng PROPOSAL
Smith V StockhamGermanyElwin Sharvill RENEWAL
Maria W RimCanadaOnyama Limba UNQUALIFIED
Ivar U TollnerBrazilIvan Magalhaes NEW
Cody U ChuiGermanyBernardo Dominic RENEWAL
Ivar Y GillianGermanyBernardo Dominic UNQUALIFIED
Aditya G StockhamItalyStephen Shaw PROPOSAL
Octavia Q CaldareraUnited KingdomXuxue Feng RENEWAL
Maria H WieserGermanyAsiya Javayant QUALIFIED
Maria E KolmetzItalyOnyama Limba NEGOTIATION
Morrow I ShinkoAustraliaAsiya Javayant RENEWAL
Aditya M BriddickUnited KingdomStephen Shaw NEW
Ricardo B InouyeGermanyAnna Fali NEGOTIATION
Costa X MaletSpainXuxue Feng NEW
Francesco M DarakjyUnited KingdomIvan Magalhaes UNQUALIFIED
Nicolas F FollerUnited KingdomOnyama Limba UNQUALIFIED
Chavez R ShinkoBrazilElwin Sharvill RENEWAL
Maisha F DilliardJapanIvan Magalhaes NEW
Darci P ButtJapanXuxue Feng RENEWAL
Clifford M CampainGermanyXuxue Feng QUALIFIED
Aditya J CampainRussiaIvan Magalhaes RENEWAL
Rodrigues M KuskoArgentinaBernardo Dominic RENEWAL
Johnson A ShinkoBrazilOnyama Limba PROPOSAL
Adams V NickaJapanOnyama Limba QUALIFIED
Deepesh Q DarakjyCanadaOnyama Limba NEGOTIATION
Costa W DarakjyJapanStephen Shaw NEW
Sinclair X DarakjyAustraliaElwin Sharvill QUALIFIED
Greenwood X GarufiAustraliaBernardo Dominic RENEWAL
Wickens G MorascaUnited KingdomIvan Magalhaes NEW
Ricardo X NickaUnited KingdomOnyama Limba UNQUALIFIED
Ashley V DoeCanadaXuxue Feng QUALIFIED
Aditya H RulapaughArgentinaAnna Fali RENEWAL
Frozen Columns
Name
Arvin A Doe
Costa Y Bowley
Costa O Waycott
Isabel O Waycott
Rodrigues J Ferencz
Costa M Garufi
Costa R Maclead
Antonio H Ruta
Johnson S Foller
Murillo G Gillian
Aika E Rulapaugh
Aruna W Darakjy
Julie V Albares
Francesco B Bowley
Ashley T Amigon
Salvatore E Ostrosky
Jones D Whobrey
Francesco V Malet
Stacey H Kusko
Rodrigues M Glick
Misaki A Glick
Jones E Albares
Chavez L Caudy
Mayumi J Glick
Murillo N Stenseth
Claire N Flosi
Tony G Amigon
Tony K Maclead
Sinclair W Gaucho
Sinclair S Slusarski
Greenwood J Butt
Deepesh V Bowley
Aruna T Perin
Isabel E Saylors
Francesco D Ostrosky
Costa P Poquette
Mayumi G Dilliard
Antonio Q Maclead
David U Nicka
Aditya H Figeroa
Greenwood I Rulapaugh
Chavez V Stockham
Munro I Inouye
David L Doe
James D Darakjy
Aditya O Bolognia
Aika V Venere
Smith V Ruta
Tony D Amigon
Alejandro D Malet
IdCountryDate
1000Argentina2026-07-26
1001Japan2026-07-19
1002Brazil2026-08-05
1003Spain2026-07-27
1004India2026-07-15
1005Japan2026-07-28
1006United Kingdom2026-07-25
1007Brazil2026-07-19
1008Japan2026-07-23
1009United Kingdom2026-07-14
1010Canada2026-07-10
1011United Kingdom2026-07-13
1012France2026-08-04
1013Spain2026-07-19
1014Brazil2026-07-15
1015Australia2026-07-30
1016Brazil2026-07-28
1017Russia2026-07-10
1018Argentina2026-07-11
1019Italy2026-07-12
1020France2026-07-19
1021France2026-08-08
1022Germany2026-07-17
1023Germany2026-07-26
1024Germany2026-07-28
1025Australia2026-07-20
1026Brazil2026-07-27
1027Germany2026-07-18
1028Japan2026-07-13
1029Spain2026-07-28
1030United Kingdom2026-08-08
1031France2026-07-10
1032Spain2026-07-20
1033Spain2026-08-08
1034Canada2026-07-29
1035Australia2026-07-10
1036France2026-07-15
1037Germany2026-07-17
1038Italy2026-07-16
1039Argentina2026-07-30
1040Russia2026-08-05
1041Argentina2026-07-28
1042Canada2026-08-03
1043France2026-08-06
1044Russia2026-07-11
1045Italy2026-08-03
1046Argentina2026-07-28
1047Argentina2026-07-27
1048India2026-07-16
1049Germany2026-08-04

On-Demand Data

NameIdCountryDate
Rodrigues P Venere1000Italy2026-08-05
Francesco W Kolmetz1001Spain2026-08-01
Isabel J Ruta1002Canada2026-08-08
Arvin T Flosi1003Russia2026-08-02
Johnson S Poquette1004Argentina2026-07-10
Ashley C Stenseth1005India2026-07-27
Izzy U Caldarera1006Canada2026-07-11
Maria C Iturbide1007Italy2026-07-11
Morrow L Flosi1008Spain2026-07-27
Darci X Flosi1009United Kingdom2026-07-31
Claire P Caudy1010Japan2026-07-27
Jones T Chui1011Spain2026-07-26
Tony X Stenseth1012Spain2026-07-17
Jefferson D Tollner1013Russia2026-07-22
Mayumi V Butt1014Canada2026-07-16
Aditya H Morasca1015Brazil2026-07-17
Johnson P Albares1016Japan2026-08-03
Aditya L Wieser1017Canada2026-07-13
Salvatore A Caudy1018Australia2026-07-28
Leon S Whobrey1019Japan2026-07-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki D StensethGermanyIoni Bowcher NEW
Julie R OldroydSpainIoni Bowcher RENEWAL
Aditya D GarufiGermanyIoni Bowcher UNQUALIFIED
Leja J WhobreyBrazilBernardo Dominic NEGOTIATION
Emily B OstroskyItalyOnyama Limba NEGOTIATION
Leja U StockhamAustraliaOnyama Limba RENEWAL
Smith V GarufiBrazilAsiya Javayant QUALIFIED
Salvatore N FerenczBrazilIoni Bowcher NEW
Smith Z ShinkoRussiaStephen Shaw PROPOSAL
Salvatore N SlusarskiRussiaOnyama Limba PROPOSAL
Greenwood L GillianItalyIvan Magalhaes QUALIFIED
Emily I KolmetzGermanyAmy Elsner UNQUALIFIED
Murillo J MacleadUnited KingdomOnyama Limba RENEWAL
Octavia Q ButtJapanElwin Sharvill RENEWAL
Antonio V RulapaughAustraliaAmy Elsner NEGOTIATION
Smith U OstroskyJapanIvan Magalhaes PROPOSAL
Cody X StensethCanadaOnyama Limba QUALIFIED
Ivar J StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Sinclair T SlusarskiBrazilBernardo Dominic PROPOSAL
Jefferson F DoeGermanyAnna Fali PROPOSAL
Salvatore F CaldareraRussiaAsiya Javayant QUALIFIED
Wickens K GarufiJapanElwin Sharvill PROPOSAL
Isabel Y CampainUnited KingdomAmy Elsner QUALIFIED
Johnson X GauchoSpainAsiya Javayant RENEWAL
Arvin Y GillianGermanyStephen Shaw RENEWAL
David Z StensethIndiaAnna Fali NEW
Ricardo E SergiGermanyAnna Fali NEGOTIATION
Deepesh H WieserRussiaElwin Sharvill PROPOSAL
Antonio I IturbideItalyAmy Elsner NEW
Cody F GillianIndiaXuxue Feng NEW
Cody P PaprockiUnited KingdomXuxue Feng NEGOTIATION
Greenwood J MaletIndiaIvan Magalhaes NEW
Maria I InouyeBrazilAsiya Javayant RENEWAL
Jennifer S RulapaughCanadaAnna Fali RENEWAL
Izzy K NestleRussiaIvan Magalhaes PROPOSAL
Sinclair U NickaIndiaAmy Elsner NEGOTIATION
Leon W RimAustraliaIvan Magalhaes RENEWAL
Jennifer S PaprockiCanadaIoni Bowcher QUALIFIED
Kadeem Q BologniaFranceXuxue Feng QUALIFIED
Smith E GillianIndiaOnyama Limba 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>