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
Isabel S PerinAustraliaAmy Elsner RENEWAL
Adams X GlickIndiaOnyama Limba NEGOTIATION
Munro B GillianGermanyStephen Shaw NEW
Silvio Q TollnerCanadaStephen Shaw NEW
Aika H FlosiIndiaAnna Fali UNQUALIFIED
Clifford A MarrierIndiaAnna Fali RENEWAL
Aditya I AmigonItalyIoni Bowcher NEGOTIATION
Izzy R MaletGermanyAsiya Javayant QUALIFIED
Stacey E MaletAustraliaXuxue Feng PROPOSAL
Cody B RulapaughGermanyElwin Sharvill QUALIFIED
Ivar D FigeroaSpainIvan Magalhaes PROPOSAL
Munro Y PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Antonio Z GauchoSpainIvan Magalhaes PROPOSAL
Juan X InouyeArgentinaAnna Fali UNQUALIFIED
Chavez D PoquetteRussiaAmy Elsner PROPOSAL
Juan L AlbaresFranceOnyama Limba PROPOSAL
Clifford P PaprockiBrazilIvan Magalhaes UNQUALIFIED
Greenwood S DarakjyAustraliaIoni Bowcher QUALIFIED
Maria X IturbideGermanyIvan Magalhaes RENEWAL
Aika L DilliardArgentinaAnna Fali NEGOTIATION
Greenwood N RulapaughBrazilAnna Fali UNQUALIFIED
Sinclair C SchemmerItalyOnyama Limba RENEWAL
Isabel C BowleyCanadaXuxue Feng NEW
Kaitlin V NickaGermanyAmy Elsner NEGOTIATION
Juan N CaudyAustraliaIoni Bowcher NEGOTIATION
Faith J CaudyFranceXuxue Feng QUALIFIED
Salvatore K SaylorsCanadaElwin Sharvill NEGOTIATION
Salvatore D RimArgentinaIvan Magalhaes QUALIFIED
Cody E GillianIndiaOnyama Limba NEGOTIATION
Mujtaba V CampainIndiaBernardo Dominic UNQUALIFIED
Stacey L CaldareraSpainXuxue Feng NEW
Johnson Q GauchoUnited KingdomElwin Sharvill NEW
Cody Q RulapaughAustraliaStephen Shaw RENEWAL
Wickens W ButtJapanAsiya Javayant QUALIFIED
Juan B FigeroaItalyIoni Bowcher UNQUALIFIED
Kadeem A SlusarskiIndiaIoni Bowcher PROPOSAL
Smith K GauchoIndiaAmy Elsner RENEWAL
Isabel T DoeJapanXuxue Feng PROPOSAL
Emily N PerinItalyBernardo Dominic NEGOTIATION
Julie R DarakjyCanadaXuxue Feng PROPOSAL
Kadeem W GauchoFranceAmy Elsner UNQUALIFIED
Aditya Q MaletBrazilStephen Shaw NEW
Julie N KolmetzFranceIvan Magalhaes PROPOSAL
Maria T InouyeUnited KingdomBernardo Dominic RENEWAL
Arvin U FerenczJapanIoni Bowcher NEW
James D RutaGermanyElwin Sharvill UNQUALIFIED
Arvin G MacleadUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya U PoquetteUnited KingdomAsiya Javayant PROPOSAL
Ricardo U MaletArgentinaBernardo Dominic NEGOTIATION
Claire N InouyeAustraliaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones O DoeItalyBernardo Dominic UNQUALIFIED
Octavia H SaylorsBrazilElwin Sharvill UNQUALIFIED
Aditya T RoysterCanadaAmy Elsner UNQUALIFIED
Clifford W WieserBrazilXuxue Feng NEGOTIATION
Deepesh L MorascaUnited KingdomIoni Bowcher QUALIFIED
Kadeem S IturbideFranceAnna Fali NEGOTIATION
Antonio K AlbaresItalyStephen Shaw QUALIFIED
Costa D CaldareraArgentinaAsiya Javayant UNQUALIFIED
Francesco A ShinkoFranceIvan Magalhaes NEGOTIATION
Misaki Y WaycottJapanAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore D RutaSpain2024-05-30Buckley Miller Wright UNQUALIFIED37Xuxue Feng
1001Mayumi E TollnerUnited Kingdom2024-05-23Chemel, James L Cpa QUALIFIED46Xuxue Feng
1002Mayumi V WieserItaly2024-06-02Feiner Bros QUALIFIED99Ioni Bowcher
1003Johnson I CaldareraBrazil2024-06-15Feltz Printing Service NEGOTIATION64Xuxue Feng
1004Ashley R FigeroaBrazil2024-06-20Chemel, James L Cpa RENEWAL4Elwin Sharvill
1005Izzy Y DarakjyUnited Kingdom2024-06-14Rangoni Of Florence RENEWAL8Stephen Shaw
1006Aditya O StensethCanada2024-06-21Buckley Miller Wright RENEWAL98Onyama Limba
1007Smith U CampainIndia2024-06-06Morlong Associates RENEWAL40Stephen Shaw
1008Costa L MaletFrance2024-06-18Rangoni Of Florence UNQUALIFIED35Stephen Shaw
1009Munro O MaletRussia2024-06-19Feiner Bros QUALIFIED84Onyama Limba
1010Morrow C StockhamCanada2024-06-18Buckley Miller Wright PROPOSAL99Onyama Limba
1011Leja D SergiUnited Kingdom2024-06-06Benton, John B Jr QUALIFIED13Asiya Javayant
1012Octavia Q GauchoIndia2024-06-12Commercial Press UNQUALIFIED82Ioni Bowcher
1013Emily J ShinkoArgentina2024-05-27Truhlar And Truhlar Attys PROPOSAL58Elwin Sharvill
1014Aika H KuskoItaly2024-06-15Dorl, James J Esq QUALIFIED41Bernardo Dominic
1015Adams O CaudyAustralia2024-06-03Morlong Associates RENEWAL89Asiya Javayant
1016Francesco H SergiCanada2024-05-29Chapman, Ross E Esq PROPOSAL79Bernardo Dominic
1017Costa J SchemmerItaly2024-06-10Commercial Press QUALIFIED30Amy Elsner
1018Jeanfrancois A FigeroaFrance2024-06-21Morlong Associates RENEWAL78Anna Fali
1019Kaitlin T SlusarskiJapan2024-06-05Dorl, James J Esq UNQUALIFIED22Anna Fali
1020James Z CaudyJapan2024-06-11King, Christopher A Esq NEGOTIATION53Bernardo Dominic
1021Francesco Q CaudyGermany2024-05-23King, Christopher A Esq NEGOTIATION93Xuxue Feng
1022Chavez J WhobreyItaly2024-06-17Feiner Bros QUALIFIED63Onyama Limba
1023Tony K GlickItaly2024-06-10Chemel, James L Cpa QUALIFIED39Stephen Shaw
1024Salvatore J OldroydItaly2024-05-27Feiner Bros RENEWAL61Xuxue Feng
1025Jones R WaycottJapan2024-06-19Morlong Associates PROPOSAL36Amy Elsner
1026Greenwood M MaletRussia2024-06-05Chapman, Ross E Esq NEGOTIATION38Elwin Sharvill
1027Leon W WaycottSpain2024-06-16Buckley Miller Wright RENEWAL71Ioni Bowcher
1028Leja N RoysterUnited Kingdom2024-06-10Truhlar And Truhlar Attys UNQUALIFIED11Elwin Sharvill
1029Alejandro I PerinAustralia2024-05-26Truhlar And Truhlar Attys PROPOSAL40Asiya Javayant
1030Claire O VocelkaJapan2024-06-19Chemel, James L Cpa RENEWAL8Elwin Sharvill
1031Isabel W MorascaSpain2024-06-10Buckley Miller Wright QUALIFIED45Xuxue Feng
1032Deepesh U StensethSpain2024-06-18Dorl, James J Esq QUALIFIED48Ivan Magalhaes
1033Izzy C OldroydItaly2024-06-17Rousseaux, Michael Esq UNQUALIFIED74Amy Elsner
1034Jennifer N DoeJapan2024-06-18King, Christopher A Esq RENEWAL14Ivan Magalhaes
1035Claire C CaudyUnited Kingdom2024-06-01Dorl, James J Esq PROPOSAL6Stephen Shaw
1036Jennifer L SaylorsItaly2024-06-13Chapman, Ross E Esq PROPOSAL65Asiya Javayant
1037Octavia W MarrierIndia2024-06-07Printing Dimensions QUALIFIED57Stephen Shaw
1038Aruna S SaylorsArgentina2024-06-21Rangoni Of Florence NEGOTIATION50Ivan Magalhaes
1039Claire A NickaUnited Kingdom2024-06-01Truhlar And Truhlar Attys QUALIFIED53Onyama Limba
1040Aika M FigeroaUnited Kingdom2024-06-16Chapman, Ross E Esq PROPOSAL19Stephen Shaw
1041Mayumi X KuskoBrazil2024-06-07Chanay, Jeffrey A Esq QUALIFIED1Stephen Shaw
1042Izzy Y StockhamJapan2024-06-12Commercial Press UNQUALIFIED37Anna Fali
1043Kadeem N MaletUnited Kingdom2024-06-09King, Christopher A Esq NEW2Amy Elsner
1044Aditya K RimRussia2024-06-10King, Christopher A Esq UNQUALIFIED10Anna Fali
1045Maisha Q RulapaughGermany2024-06-15Feiner Bros NEGOTIATION71Amy Elsner
1046Emily O NestleFrance2024-05-30Feltz Printing Service RENEWAL85Ivan Magalhaes
1047Octavia Y RoysterAustralia2024-06-11Printing Dimensions PROPOSAL7Asiya Javayant
1048Mayumi S InouyeSpain2024-06-14Chanay, Jeffrey A Esq NEW59Xuxue Feng
1049Ashley I StensethArgentina2024-06-16Chapman, Ross E Esq NEW33Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Juan F RulapaughUnited KingdomIoni Bowcher UNQUALIFIED
Munro A RimGermanyOnyama Limba PROPOSAL
Costa L CaldareraRussiaIoni Bowcher NEGOTIATION
Sinclair A SlusarskiSpainXuxue Feng UNQUALIFIED
Misaki A GauchoBrazilAsiya Javayant NEGOTIATION
Ashley H NestleRussiaAmy Elsner RENEWAL
Claire W InouyeCanadaBernardo Dominic RENEWAL
Sinclair Q RutaUnited KingdomAnna Fali NEW
Arvin F RulapaughGermanyAsiya Javayant RENEWAL
Izzy B RoysterGermanyElwin Sharvill PROPOSAL
Julie O CampainAustraliaOnyama Limba NEGOTIATION
Tony M PoquetteCanadaStephen Shaw QUALIFIED
Jeanfrancois L AlbaresJapanXuxue Feng RENEWAL
Kaitlin T GarufiArgentinaStephen Shaw UNQUALIFIED
Antonio T PaprockiGermanyXuxue Feng QUALIFIED
Silvio Y KuskoAustraliaAmy Elsner NEW
Francesco N SaylorsUnited KingdomStephen Shaw UNQUALIFIED
Nicolas M MaletArgentinaAsiya Javayant QUALIFIED
Kadeem F ChuiFranceOnyama Limba RENEWAL
Wickens A RutaRussiaBernardo Dominic PROPOSAL
Chavez S NestleArgentinaElwin Sharvill UNQUALIFIED
Alejandro C AmigonIndiaAsiya Javayant NEW
Emily K MaletArgentinaIvan Magalhaes QUALIFIED
Mayumi E RimSpainBernardo Dominic RENEWAL
Jeanfrancois U ButtItalyBernardo Dominic QUALIFIED
Deepesh N FlosiItalyIoni Bowcher NEW
Misaki Z MacleadRussiaIoni Bowcher RENEWAL
Maisha O MorascaIndiaAsiya Javayant NEW
Claire Z GlickIndiaElwin Sharvill RENEWAL
Maisha C FlosiCanadaAnna Fali NEW
Stacey F StensethFranceOnyama Limba QUALIFIED
Ricardo R FigeroaJapanAsiya Javayant NEW
Emily S OstroskyJapanIvan Magalhaes NEW
Maria W BriddickRussiaBernardo Dominic QUALIFIED
Chavez W MarrierAustraliaBernardo Dominic QUALIFIED
Greenwood C CampainFranceBernardo Dominic UNQUALIFIED
Kadeem Y WhobreyUnited KingdomIvan Magalhaes NEW
Mayumi F StensethSpainIoni Bowcher RENEWAL
Maria V VocelkaUnited KingdomIoni Bowcher UNQUALIFIED
Francesco X MaletJapanAsiya Javayant NEGOTIATION
Ashley J MaletFranceAmy Elsner NEW
Jeanfrancois T ChuiJapanAmy Elsner UNQUALIFIED
Smith S VenereItalyIoni Bowcher PROPOSAL
David K MacleadCanadaElwin Sharvill PROPOSAL
Ricardo B RoysterRussiaAnna Fali UNQUALIFIED
Francesco V GauchoAustraliaOnyama Limba NEW
Maisha C MaletAustraliaAnna Fali QUALIFIED
Isabel L GlickAustraliaXuxue Feng PROPOSAL
Johnson G KolmetzFranceAmy Elsner UNQUALIFIED
Ashley W BologniaAustraliaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Smith H Royster
Leja C Garufi
Sinclair B Rim
Cody C Malet
Francesco I Poquette
Smith X Nestle
Stacey U Morasca
Aruna M Figeroa
Sinclair R Campain
Claire Q Doe
Morrow M Garufi
Munro P Ruta
Morrow P Butt
Aika J Tollner
Aruna N Marrier
Jones K Royster
Aika U Gaucho
Kadeem W Waycott
Darci D Oldroyd
Octavia K Morasca
Maisha T Schemmer
Nicolas A Shinko
Morrow J Sergi
Alejandro T Ostrosky
Stacey G Ostrosky
Maria D Rim
Adams D Royster
Rodrigues H Caldarera
David X Caldarera
Maria G Slusarski
Clifford K Chui
Sinclair R Rim
Chavez X Briddick
Wickens L Albares
Aditya B Kusko
James P Malet
Salvatore M Ostrosky
Mujtaba F Oldroyd
David I Flosi
Munro R Rulapaugh
David S Perin
Juan U Marrier
Morrow G Foller
Kaitlin K Maclead
David F Foller
Misaki B Gillian
James Z Malet
Antonio C Waycott
Aika K Whobrey
Kaitlin I Albares
IdCountryDate
1000United Kingdom2024-05-31
1001Argentina2024-06-01
1002Brazil2024-06-14
1003Australia2024-06-12
1004Canada2024-06-10
1005India2024-06-21
1006Brazil2024-06-03
1007United Kingdom2024-06-14
1008Germany2024-06-16
1009Australia2024-06-05
1010Germany2024-06-06
1011Germany2024-06-17
1012Canada2024-05-31
1013Russia2024-05-28
1014Japan2024-05-30
1015Italy2024-05-26
1016Canada2024-06-17
1017Russia2024-06-08
1018Germany2024-06-12
1019France2024-06-15
1020France2024-05-29
1021Russia2024-06-03
1022Brazil2024-06-14
1023Italy2024-06-12
1024Argentina2024-05-27
1025Germany2024-06-10
1026Argentina2024-06-13
1027France2024-05-28
1028Germany2024-05-24
1029India2024-06-02
1030United Kingdom2024-06-16
1031Germany2024-06-02
1032France2024-06-21
1033Germany2024-06-03
1034United Kingdom2024-06-21
1035Argentina2024-05-30
1036Spain2024-05-30
1037France2024-06-21
1038Spain2024-06-01
1039India2024-06-07
1040Canada2024-06-13
1041Italy2024-06-05
1042Australia2024-06-01
1043France2024-05-25
1044France2024-06-02
1045Brazil2024-06-06
1046Japan2024-05-31
1047Japan2024-06-01
1048Germany2024-06-21
1049Australia2024-06-10

On-Demand Data

NameIdCountryDate
Octavia D Stockham1000United Kingdom2024-06-14
Darci I Kolmetz1001Canada2024-06-21
Deepesh S Inouye1002Argentina2024-06-13
Silvio F Malet1003France2024-05-25
Smith B Garufi1004Italy2024-05-31
Maisha M Gaucho1005Japan2024-06-16
Sinclair I Whobrey1006Spain2024-05-28
Jefferson E Bowley1007Russia2024-06-13
Murillo J Chui1008Japan2024-05-23
Octavia A Tollner1009Russia2024-06-04
Ashley Q Garufi1010Russia2024-06-11
Alejandro I Maclead1011Spain2024-05-31
Faith X Shinko1012Argentina2024-06-19
Tony J Morasca1013Australia2024-06-07
Silvio V Albares1014Argentina2024-06-18
Ivar K Oldroyd1015Brazil2024-06-07
James T Butt1016Japan2024-06-08
Adams G Chui1017Spain2024-06-19
Greenwood J Shinko1018Canada2024-05-29
Morrow R Ruta1019Australia2024-05-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio Y DarakjyAustraliaAsiya Javayant QUALIFIED
Greenwood U CaudyCanadaIoni Bowcher QUALIFIED
Costa Y CampainUnited KingdomElwin Sharvill QUALIFIED
Maria D PoquetteItalyAmy Elsner UNQUALIFIED
Darci Q KolmetzBrazilOnyama Limba NEGOTIATION
Juan Q RimJapanAnna Fali NEW
Aika Q ChuiArgentinaIoni Bowcher PROPOSAL
Ricardo X MacleadItalyAmy Elsner NEGOTIATION
Isabel A BowleyArgentinaAmy Elsner UNQUALIFIED
Murillo G NestleAustraliaAsiya Javayant RENEWAL
Antonio S CaudyCanadaXuxue Feng RENEWAL
Ricardo N ButtAustraliaAnna Fali RENEWAL
Alejandro E IturbideAustraliaIvan Magalhaes UNQUALIFIED
Aika S WieserRussiaAmy Elsner PROPOSAL
Emily P SchemmerJapanXuxue Feng RENEWAL
Octavia I RutaSpainBernardo Dominic NEW
Darci J KuskoRussiaIvan Magalhaes RENEWAL
Sinclair N SergiGermanyStephen Shaw NEW
Jefferson S GillianIndiaIvan Magalhaes NEW
Greenwood H PoquetteJapanIvan Magalhaes PROPOSAL
Wickens P MorascaUnited KingdomIoni Bowcher QUALIFIED
Jeanfrancois I KuskoJapanIvan Magalhaes QUALIFIED
Antonio Q KolmetzCanadaOnyama Limba RENEWAL
Maisha Y BowleyFranceAmy Elsner NEGOTIATION
Leon Q VenereJapanOnyama Limba UNQUALIFIED
Murillo D AlbaresSpainStephen Shaw PROPOSAL
Jefferson T ShinkoAustraliaAnna Fali NEGOTIATION
Darci H DoeItalyAmy Elsner RENEWAL
Leon U MaletAustraliaIvan Magalhaes NEGOTIATION
Costa K NestleJapanStephen Shaw QUALIFIED
Wickens K PaprockiSpainOnyama Limba QUALIFIED
Munro H BologniaArgentinaBernardo Dominic NEW
Aruna Y FollerAustraliaAmy Elsner NEGOTIATION
Costa Y RutaUnited KingdomAsiya Javayant PROPOSAL
Smith V NestleArgentinaBernardo Dominic PROPOSAL
Mayumi P GarufiFranceIoni Bowcher NEW
Maisha V RutaCanadaXuxue Feng PROPOSAL
Jefferson Q KuskoArgentinaIvan Magalhaes NEGOTIATION
Izzy K KuskoArgentinaIoni Bowcher PROPOSAL
Leon P DarakjySpainBernardo Dominic 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>