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 D RutaUnited KingdomStephen Shaw QUALIFIED
David R InouyeArgentinaIvan Magalhaes RENEWAL
Smith P SchemmerArgentinaXuxue Feng NEW
Ashley S VenereArgentinaElwin Sharvill UNQUALIFIED
Costa G SchemmerArgentinaAnna Fali UNQUALIFIED
Silvio B CampainAustraliaAmy Elsner NEGOTIATION
Costa D StockhamSpainBernardo Dominic UNQUALIFIED
Aruna U AlbaresRussiaAmy Elsner NEGOTIATION
Smith C MacleadBrazilXuxue Feng RENEWAL
Chavez F NestleUnited KingdomBernardo Dominic NEGOTIATION
Misaki Q SergiBrazilElwin Sharvill RENEWAL
Julie F FigeroaJapanXuxue Feng NEW
Julie Z MaletUnited KingdomAnna Fali UNQUALIFIED
Isabel T ShinkoCanadaAnna Fali NEW
Costa V FigeroaIndiaBernardo Dominic NEGOTIATION
Jeanfrancois F WaycottIndiaAmy Elsner UNQUALIFIED
Chavez H StockhamSpainOnyama Limba QUALIFIED
Aditya I PerinItalyIvan Magalhaes QUALIFIED
Costa J RimIndiaBernardo Dominic NEGOTIATION
Antonio S MacleadIndiaElwin Sharvill QUALIFIED
Jones E SergiFranceAsiya Javayant UNQUALIFIED
Arvin N BowleyBrazilIoni Bowcher RENEWAL
Octavia W SergiUnited KingdomAsiya Javayant UNQUALIFIED
Arvin H SchemmerIndiaElwin Sharvill QUALIFIED
Johnson B AmigonJapanAmy Elsner RENEWAL
Wickens E AmigonItalyIoni Bowcher NEGOTIATION
Maisha W CaldareraCanadaOnyama Limba QUALIFIED
Mujtaba P StensethGermanyXuxue Feng NEGOTIATION
Jefferson P FigeroaSpainStephen Shaw NEGOTIATION
Ashley S KuskoArgentinaElwin Sharvill QUALIFIED
Ricardo A StensethFranceElwin Sharvill NEGOTIATION
Octavia N VocelkaJapanAsiya Javayant NEGOTIATION
Claire P WieserUnited KingdomElwin Sharvill PROPOSAL
Greenwood O SlusarskiAustraliaOnyama Limba RENEWAL
Costa Q RimBrazilXuxue Feng RENEWAL
Izzy L ButtIndiaOnyama Limba NEGOTIATION
Jones Q BologniaUnited KingdomAnna Fali RENEWAL
Nicolas F DilliardBrazilAmy Elsner UNQUALIFIED
Jones O StockhamIndiaOnyama Limba NEGOTIATION
Mayumi Z CaldareraItalyIvan Magalhaes NEW
Francesco H AlbaresSpainAsiya Javayant QUALIFIED
Clifford F SergiBrazilIoni Bowcher NEW
Tony Q ChuiGermanyXuxue Feng RENEWAL
Maisha L BowleyUnited KingdomAsiya Javayant NEW
Munro Y CaudyCanadaXuxue Feng QUALIFIED
Kaitlin X DilliardBrazilIvan Magalhaes NEW
Sinclair J OldroydJapanIvan Magalhaes PROPOSAL
Ivar K FlosiIndiaElwin Sharvill RENEWAL
Maisha B NickaAustraliaIoni Bowcher UNQUALIFIED
Aruna V GillianUnited KingdomStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin Z SlusarskiItalyXuxue Feng UNQUALIFIED
Faith H BowleyArgentinaOnyama Limba RENEWAL
Aditya E FerenczArgentinaIoni Bowcher RENEWAL
Kaitlin J BologniaBrazilBernardo Dominic QUALIFIED
Wickens Z BriddickGermanyOnyama Limba UNQUALIFIED
David W KuskoGermanyOnyama Limba NEGOTIATION
Nicolas M OstroskyGermanyXuxue Feng QUALIFIED
Mujtaba L DoeRussiaAsiya Javayant RENEWAL
Alejandro D MaletCanadaXuxue Feng RENEWAL
Tony V MaletUnited KingdomElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie X MorascaGermany2026-07-22Feltz Printing Service UNQUALIFIED10Amy Elsner
1001Cody W NickaAustralia2026-07-20Benton, John B Jr NEGOTIATION60Onyama Limba
1002Nicolas A MacleadItaly2026-07-22Morlong Associates QUALIFIED68Xuxue Feng
1003Antonio L StockhamBrazil2026-07-03King, Christopher A Esq NEGOTIATION28Xuxue Feng
1004Leja F OstroskyJapan2026-07-16Feiner Bros QUALIFIED6Anna Fali
1005Francesco Y GillianSpain2026-07-07Benton, John B Jr PROPOSAL60Stephen Shaw
1006Francesco T MaletBrazil2026-07-21Commercial Press UNQUALIFIED42Elwin Sharvill
1007Ricardo Y MaletArgentina2026-07-18Dorl, James J Esq UNQUALIFIED1Anna Fali
1008Arvin H CaldareraGermany2026-07-24Feiner Bros NEGOTIATION87Ivan Magalhaes
1009Rodrigues V FollerBrazil2026-06-29Benton, John B Jr RENEWAL11Asiya Javayant
1010Claire G DoeGermany2026-07-17Benton, John B Jr NEGOTIATION64Asiya Javayant
1011Aruna T MorascaGermany2026-07-19Feiner Bros NEW38Amy Elsner
1012Chavez L FigeroaSpain2026-07-13Chapman, Ross E Esq RENEWAL60Asiya Javayant
1013Rodrigues I GlickCanada2026-07-22King, Christopher A Esq RENEWAL85Onyama Limba
1014Greenwood P NickaBrazil2026-07-09Truhlar And Truhlar Attys RENEWAL34Elwin Sharvill
1015Kadeem W VenereGermany2026-07-01Commercial Press QUALIFIED68Anna Fali
1016Kaitlin V WieserArgentina2026-07-27Dorl, James J Esq UNQUALIFIED47Onyama Limba
1017Wickens W PaprockiUnited Kingdom2026-07-19Chanay, Jeffrey A Esq NEGOTIATION88Anna Fali
1018David F BologniaAustralia2026-07-26Dorl, James J Esq UNQUALIFIED25Stephen Shaw
1019Nicolas I MorascaRussia2026-07-25Rangoni Of Florence NEGOTIATION96Ivan Magalhaes
1020Arvin U RoysterGermany2026-07-04King, Christopher A Esq RENEWAL8Anna Fali
1021Alejandro V MorascaUnited Kingdom2026-06-29Chemel, James L Cpa UNQUALIFIED31Stephen Shaw
1022Maisha L SergiIndia2026-07-04Feltz Printing Service RENEWAL84Ivan Magalhaes
1023Juan J DarakjyIndia2026-06-29Printing Dimensions UNQUALIFIED69Ivan Magalhaes
1024Darci D InouyeBrazil2026-07-22Chemel, James L Cpa UNQUALIFIED44Ioni Bowcher
1025Murillo B BriddickIndia2026-07-06Dorl, James J Esq NEW97Amy Elsner
1026Aruna U CaldareraArgentina2026-07-09Dorl, James J Esq NEW57Ivan Magalhaes
1027Julie A BowleyFrance2026-07-16Morlong Associates QUALIFIED4Anna Fali
1028Jefferson S FigeroaUnited Kingdom2026-07-07King, Christopher A Esq NEGOTIATION60Anna Fali
1029Aditya M IturbideIndia2026-07-21Morlong Associates RENEWAL54Amy Elsner
1030Morrow X NickaGermany2026-07-03Rousseaux, Michael Esq NEW54Asiya Javayant
1031Misaki T CaudyRussia2026-07-02Chapman, Ross E Esq NEGOTIATION21Stephen Shaw
1032Francesco S BriddickIndia2026-07-17Chanay, Jeffrey A Esq RENEWAL91Ioni Bowcher
1033David T NickaUnited Kingdom2026-07-20Rangoni Of Florence RENEWAL46Amy Elsner
1034Kadeem R FlosiJapan2026-07-19Chapman, Ross E Esq UNQUALIFIED83Asiya Javayant
1035Nicolas E RulapaughIndia2026-06-30Feltz Printing Service QUALIFIED66Stephen Shaw
1036Adams X BologniaJapan2026-07-24Feltz Printing Service RENEWAL64Onyama Limba
1037Wickens V FerenczFrance2026-07-07Chanay, Jeffrey A Esq UNQUALIFIED71Ivan Magalhaes
1038Kadeem E MorascaFrance2026-07-07Rangoni Of Florence NEGOTIATION2Stephen Shaw
1039Alejandro I MarrierCanada2026-07-16Feiner Bros RENEWAL13Stephen Shaw
1040Wickens V WaycottBrazil2026-07-07Chemel, James L Cpa NEGOTIATION85Elwin Sharvill
1041Tony J DilliardBrazil2026-07-28Rousseaux, Michael Esq UNQUALIFIED75Onyama Limba
1042Nicolas G DilliardIndia2026-07-05Chanay, Jeffrey A Esq PROPOSAL18Amy Elsner
1043Antonio V OldroydFrance2026-07-11Rousseaux, Michael Esq NEW21Anna Fali
1044Jeanfrancois B StockhamAustralia2026-07-18Feltz Printing Service PROPOSAL40Anna Fali
1045Leon J PerinIndia2026-07-01King, Christopher A Esq NEGOTIATION52Stephen Shaw
1046David W VocelkaRussia2026-07-02Chanay, Jeffrey A Esq NEW99Onyama Limba
1047Alejandro U RimGermany2026-07-03Dorl, James J Esq NEGOTIATION10Bernardo Dominic
1048James M PoquetteUnited Kingdom2026-07-24Rousseaux, Michael Esq RENEWAL83Xuxue Feng
1049Adams S InouyeBrazil2026-07-04Printing Dimensions NEGOTIATION55Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Johnson W MacleadJapanAnna Fali QUALIFIED
Ashley I SergiFranceAmy Elsner UNQUALIFIED
David N VenereItalyAnna Fali QUALIFIED
Emily R CaldareraArgentinaIoni Bowcher NEGOTIATION
Emily F ChuiJapanIoni Bowcher PROPOSAL
Murillo F MaletFranceStephen Shaw QUALIFIED
Chavez R OldroydSpainAsiya Javayant UNQUALIFIED
Francesco J BologniaArgentinaBernardo Dominic RENEWAL
Jeanfrancois O WieserFranceElwin Sharvill QUALIFIED
Johnson F BriddickCanadaAsiya Javayant NEW
Greenwood X PoquetteFranceElwin Sharvill UNQUALIFIED
Arvin I MacleadCanadaBernardo Dominic NEGOTIATION
Emily G PoquetteBrazilAsiya Javayant NEW
Silvio M GauchoIndiaIoni Bowcher PROPOSAL
Chavez P KolmetzSpainIvan Magalhaes RENEWAL
Maisha K SergiCanadaBernardo Dominic UNQUALIFIED
Misaki J BriddickGermanyXuxue Feng PROPOSAL
Cody A FlosiBrazilStephen Shaw NEW
Sinclair O VocelkaGermanyIoni Bowcher NEGOTIATION
Emily H StensethAustraliaAnna Fali UNQUALIFIED
Smith A DilliardIndiaXuxue Feng PROPOSAL
Leja C RutaItalyAsiya Javayant PROPOSAL
Stacey G DoeAustraliaStephen Shaw RENEWAL
Arvin U RimArgentinaIvan Magalhaes QUALIFIED
Adams I AmigonFranceXuxue Feng NEW
Octavia C BriddickFranceElwin Sharvill NEW
Arvin A FollerSpainXuxue Feng QUALIFIED
Arvin R VenereIndiaIvan Magalhaes NEGOTIATION
Kadeem U IturbideItalyBernardo Dominic QUALIFIED
Isabel R ShinkoSpainAnna Fali NEGOTIATION
Jennifer F TollnerArgentinaStephen Shaw QUALIFIED
Cody E GarufiArgentinaElwin Sharvill QUALIFIED
Morrow E GauchoBrazilAmy Elsner NEGOTIATION
Kaitlin Q CaudyIndiaStephen Shaw NEGOTIATION
Jefferson I MorascaArgentinaXuxue Feng NEGOTIATION
Jones R CampainSpainIoni Bowcher RENEWAL
Chavez C StockhamAustraliaXuxue Feng NEW
Leja L CaudyGermanyStephen Shaw NEW
Maria A OldroydRussiaIvan Magalhaes RENEWAL
Darci Q MaletRussiaBernardo Dominic NEGOTIATION
Munro Q DarakjyUnited KingdomBernardo Dominic QUALIFIED
Adams G RoysterJapanStephen Shaw QUALIFIED
Jefferson X CampainRussiaXuxue Feng NEW
Leon Z MacleadIndiaXuxue Feng NEW
Wickens L GillianCanadaAnna Fali QUALIFIED
Greenwood W RulapaughArgentinaIvan Magalhaes NEGOTIATION
Chavez V WhobreyAustraliaOnyama Limba UNQUALIFIED
Ashley F RoysterBrazilElwin Sharvill NEGOTIATION
Mujtaba M OldroydAustraliaXuxue Feng QUALIFIED
Costa E VocelkaGermanyAmy Elsner RENEWAL
Frozen Columns
Name
Ivar T Bolognia
Deepesh I Stenseth
Leja B Rim
Aika U Gaucho
Isabel D Perin
Cody A Dilliard
Johnson I Wieser
Ashley U Schemmer
Aditya K Whobrey
Nicolas L Morasca
Murillo P Flosi
Mayumi A Tollner
Julie W Shinko
Ricardo X Maclead
Ivar I Schemmer
Francesco X Stenseth
Clifford L Saylors
Maria E Malet
Salvatore Z Morasca
Maisha N Venere
Jeanfrancois O Whobrey
Murillo Z Malet
Izzy E Vocelka
Tony S Garufi
Jennifer G Waycott
Smith Y Nicka
Clifford N Bolognia
Aika Q Inouye
Ricardo Z Dilliard
Smith T Campain
Costa K Oldroyd
Nicolas D Maclead
Darci T Caldarera
Alejandro A Shinko
Wickens T Nestle
Deepesh Y Paprocki
Mayumi H Perin
Mujtaba O Caldarera
Clifford W Schemmer
Smith Q Dilliard
Aika C Oldroyd
Salvatore B Gillian
Kaitlin G Ostrosky
Tony I Garufi
Ricardo T Shinko
Jefferson J Albares
Murillo F Venere
Tony J Briddick
Julie Y Gaucho
Murillo W Darakjy
IdCountryDate
1000Japan2026-07-04
1001Brazil2026-07-14
1002Spain2026-07-13
1003Canada2026-07-27
1004France2026-07-07
1005United Kingdom2026-07-14
1006Japan2026-07-24
1007Japan2026-07-24
1008Italy2026-07-10
1009Italy2026-06-30
1010India2026-07-12
1011Japan2026-07-26
1012Russia2026-07-19
1013Germany2026-07-02
1014Argentina2026-07-14
1015Spain2026-07-23
1016France2026-07-04
1017France2026-07-27
1018Japan2026-07-05
1019United Kingdom2026-07-22
1020Japan2026-07-04
1021Japan2026-07-21
1022Spain2026-07-02
1023Russia2026-07-07
1024Russia2026-07-06
1025India2026-07-19
1026Germany2026-07-02
1027France2026-07-20
1028Russia2026-07-13
1029Spain2026-07-17
1030Russia2026-07-13
1031Spain2026-07-04
1032Spain2026-07-23
1033Australia2026-07-27
1034Brazil2026-07-11
1035Japan2026-07-03
1036Italy2026-07-25
1037Russia2026-07-10
1038Italy2026-07-21
1039Russia2026-07-20
1040Japan2026-07-25
1041France2026-07-20
1042Argentina2026-07-08
1043Argentina2026-07-12
1044Spain2026-07-01
1045United Kingdom2026-07-11
1046Argentina2026-07-12
1047Canada2026-07-22
1048Australia2026-07-01
1049Japan2026-06-30

On-Demand Data

NameIdCountryDate
Aruna Z Darakjy1000Russia2026-07-20
Maisha K Rulapaugh1001Germany2026-07-21
Greenwood W Darakjy1002Spain2026-07-12
James S Caldarera1003Australia2026-07-07
Costa Y Butt1004Russia2026-06-29
Aruna K Schemmer1005Japan2026-07-02
Octavia M Ostrosky1006United Kingdom2026-07-19
Jones E Royster1007Japan2026-06-30
Leja T Ferencz1008Japan2026-07-01
Leon Y Marrier1009Spain2026-07-10
Costa E Kolmetz1010Japan2026-07-13
Tony N Iturbide1011Australia2026-07-20
Salvatore C Perin1012Brazil2026-07-01
Ricardo T Iturbide1013Brazil2026-07-01
Emily X Albares1014France2026-07-17
Leon A Kolmetz1015Germany2026-07-20
Stacey I Albares1016Argentina2026-07-23
Juan A Sergi1017United Kingdom2026-06-30
Arvin J Albares1018Germany2026-07-13
Munro I Flosi1019Germany2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo I InouyeUnited KingdomAnna Fali UNQUALIFIED
Claire L BologniaItalyStephen Shaw UNQUALIFIED
Cody E DilliardArgentinaElwin Sharvill RENEWAL
Antonio T DoeSpainAnna Fali RENEWAL
Claire D MaletJapanAmy Elsner QUALIFIED
Darci N ButtIndiaBernardo Dominic UNQUALIFIED
Chavez A KuskoFranceElwin Sharvill UNQUALIFIED
Adams F RimItalyAmy Elsner QUALIFIED
Juan D CampainFranceAmy Elsner RENEWAL
David I BologniaArgentinaXuxue Feng UNQUALIFIED
David Z MacleadFranceXuxue Feng NEGOTIATION
Antonio C FollerUnited KingdomBernardo Dominic RENEWAL
Darci S PoquetteBrazilStephen Shaw PROPOSAL
Jennifer V MaletRussiaAsiya Javayant RENEWAL
Tony X NestleUnited KingdomAsiya Javayant QUALIFIED
Murillo B SaylorsJapanXuxue Feng NEW
Kadeem V ButtFranceIvan Magalhaes RENEWAL
Julie L SergiArgentinaAnna Fali PROPOSAL
Silvio A BriddickCanadaXuxue Feng QUALIFIED
Antonio Y SaylorsJapanElwin Sharvill NEGOTIATION
Mayumi U MarrierFranceIvan Magalhaes NEGOTIATION
Sinclair H SergiItalyXuxue Feng QUALIFIED
David A AlbaresUnited KingdomOnyama Limba NEGOTIATION
Francesco Q RulapaughAustraliaAsiya Javayant UNQUALIFIED
Mayumi C RoysterArgentinaStephen Shaw NEW
Deepesh R PoquetteArgentinaIvan Magalhaes PROPOSAL
Jennifer H ButtArgentinaBernardo Dominic NEGOTIATION
James E CaldareraItalyElwin Sharvill UNQUALIFIED
Leja H MaletIndiaIoni Bowcher NEGOTIATION
Francesco Y DarakjyBrazilElwin Sharvill NEGOTIATION
James S FollerIndiaOnyama Limba NEW
Cody M VocelkaCanadaAnna Fali RENEWAL
Maisha F TollnerGermanyXuxue Feng PROPOSAL
Claire I NestleItalyIvan Magalhaes RENEWAL
Jones Q MorascaBrazilOnyama Limba QUALIFIED
Julie X AmigonGermanyBernardo Dominic NEGOTIATION
Leon J SaylorsItalyBernardo Dominic UNQUALIFIED
Cody Z SlusarskiGermanyOnyama Limba NEGOTIATION
Mayumi R CaudyAustraliaBernardo Dominic NEGOTIATION
Julie R VenereFranceIvan Magalhaes 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>