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 C FigeroaCanadaOnyama Limba NEGOTIATION
Rodrigues N IturbideAustraliaXuxue Feng NEGOTIATION
Clifford I WaycottArgentinaStephen Shaw UNQUALIFIED
David Y InouyeBrazilBernardo Dominic NEW
Isabel S VocelkaFranceAsiya Javayant NEW
Julie C BowleyUnited KingdomAmy Elsner RENEWAL
Smith A DilliardFranceAsiya Javayant NEW
Murillo D PoquetteCanadaIoni Bowcher RENEWAL
Aditya T RimCanadaElwin Sharvill RENEWAL
Clifford T MarrierArgentinaAsiya Javayant NEGOTIATION
Maria H KuskoJapanIoni Bowcher QUALIFIED
Salvatore D MaletSpainIoni Bowcher RENEWAL
Ricardo I VocelkaSpainIoni Bowcher NEW
Smith O GlickItalyBernardo Dominic PROPOSAL
Izzy B GarufiJapanIoni Bowcher RENEWAL
Aruna U MaletIndiaAnna Fali PROPOSAL
Johnson K ButtGermanyOnyama Limba RENEWAL
James P BologniaItalyIvan Magalhaes NEGOTIATION
Aditya N RoysterBrazilElwin Sharvill RENEWAL
Maisha N AlbaresArgentinaStephen Shaw QUALIFIED
Maisha T StensethUnited KingdomBernardo Dominic RENEWAL
Kadeem N PaprockiGermanyIvan Magalhaes QUALIFIED
Aika X AlbaresArgentinaIoni Bowcher NEGOTIATION
Faith Q OldroydAustraliaAsiya Javayant RENEWAL
Leon Y DoeIndiaXuxue Feng QUALIFIED
Sinclair C SergiFranceAsiya Javayant NEW
Wickens B CaudyArgentinaElwin Sharvill PROPOSAL
Costa F PaprockiAustraliaStephen Shaw NEGOTIATION
Johnson O WhobreyCanadaStephen Shaw PROPOSAL
Alejandro A PaprockiSpainOnyama Limba RENEWAL
Cody V RutaArgentinaIoni Bowcher QUALIFIED
Emily I WieserIndiaElwin Sharvill RENEWAL
Leon J FollerAustraliaAnna Fali NEGOTIATION
Claire B GarufiCanadaBernardo Dominic NEGOTIATION
Adams P FerenczUnited KingdomAnna Fali QUALIFIED
Stacey F ChuiFranceOnyama Limba PROPOSAL
Sinclair T FollerIndiaXuxue Feng NEW
Emily A StensethCanadaElwin Sharvill PROPOSAL
Wickens Q TollnerIndiaIoni Bowcher NEGOTIATION
Mayumi O WhobreyCanadaElwin Sharvill PROPOSAL
Leja J AlbaresUnited KingdomElwin Sharvill RENEWAL
Stacey A PoquetteIndiaAmy Elsner QUALIFIED
Nicolas H RoysterJapanAnna Fali RENEWAL
Aruna B PoquetteArgentinaOnyama Limba NEW
Greenwood L CaudyRussiaStephen Shaw NEW
Izzy F GarufiSpainAmy Elsner NEGOTIATION
Maria Q FigeroaGermanyAmy Elsner NEW
Tony P PerinArgentinaIvan Magalhaes NEW
Isabel Q InouyeIndiaElwin Sharvill RENEWAL
Johnson K CampainFranceElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro S ButtIndiaAsiya Javayant QUALIFIED
Ricardo E CaudySpainStephen Shaw QUALIFIED
Octavia Y OldroydAustraliaAmy Elsner UNQUALIFIED
Darci I FlosiUnited KingdomStephen Shaw RENEWAL
Rodrigues O IturbideJapanXuxue Feng NEW
Morrow J MaletGermanyIoni Bowcher UNQUALIFIED
Aruna I GillianRussiaIvan Magalhaes NEGOTIATION
Mayumi N OstroskySpainAmy Elsner UNQUALIFIED
Nicolas P ChuiJapanBernardo Dominic PROPOSAL
Leja F BowleyGermanyIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford J OldroydSpain2024-06-15Commercial Press UNQUALIFIED14Xuxue Feng
1001Kaitlin S RutaBrazil2024-06-05Benton, John B Jr UNQUALIFIED22Anna Fali
1002Julie L OstroskyIndia2024-06-18Dorl, James J Esq NEGOTIATION42Asiya Javayant
1003Kadeem O CaudyGermany2024-05-27Chapman, Ross E Esq NEW57Anna Fali
1004Costa H MorascaJapan2024-06-04Buckley Miller Wright NEW7Onyama Limba
1005Antonio Q GillianUnited Kingdom2024-05-28Printing Dimensions NEW12Elwin Sharvill
1006Mayumi A StensethBrazil2024-06-17Chanay, Jeffrey A Esq RENEWAL27Ioni Bowcher
1007Misaki U ShinkoIndia2024-06-10Chapman, Ross E Esq PROPOSAL79Asiya Javayant
1008Emily B GauchoSpain2024-06-12Rousseaux, Michael Esq PROPOSAL45Anna Fali
1009Arvin B BologniaSpain2024-06-17Feiner Bros NEW66Elwin Sharvill
1010Ashley V DoeRussia2024-06-10Feiner Bros RENEWAL23Bernardo Dominic
1011Octavia E NestleFrance2024-06-15Chapman, Ross E Esq UNQUALIFIED85Amy Elsner
1012Kadeem K ButtRussia2024-06-10Chapman, Ross E Esq NEGOTIATION50Asiya Javayant
1013Ashley S GauchoIndia2024-05-26Chemel, James L Cpa PROPOSAL87Asiya Javayant
1014Izzy I StensethFrance2024-05-27Commercial Press RENEWAL52Amy Elsner
1015Cody Z WhobreyArgentina2024-06-23Printing Dimensions RENEWAL38Bernardo Dominic
1016Izzy X FerenczArgentina2024-06-01King, Christopher A Esq UNQUALIFIED12Elwin Sharvill
1017David Q TollnerAustralia2024-06-05Buckley Miller Wright RENEWAL45Xuxue Feng
1018Costa Q FlosiGermany2024-05-29Dorl, James J Esq RENEWAL61Bernardo Dominic
1019Rodrigues R AmigonItaly2024-06-07Rangoni Of Florence UNQUALIFIED94Xuxue Feng
1020David B VenereCanada2024-05-28Chapman, Ross E Esq RENEWAL46Anna Fali
1021Ricardo O WhobreyCanada2024-06-09Feiner Bros UNQUALIFIED63Asiya Javayant
1022Morrow X VocelkaItaly2024-06-20Truhlar And Truhlar Attys PROPOSAL35Amy Elsner
1023Salvatore Z DilliardFrance2024-06-13Feiner Bros RENEWAL22Stephen Shaw
1024James A DilliardBrazil2024-06-24Chapman, Ross E Esq UNQUALIFIED15Ivan Magalhaes
1025James J BologniaGermany2024-06-23King, Christopher A Esq QUALIFIED68Ioni Bowcher
1026Aruna F CampainItaly2024-06-14Commercial Press NEW90Onyama Limba
1027Antonio H GillianCanada2024-06-12Printing Dimensions QUALIFIED52Onyama Limba
1028Octavia P RulapaughArgentina2024-06-03Rangoni Of Florence RENEWAL18Ioni Bowcher
1029Costa S AlbaresJapan2024-06-08Rangoni Of Florence RENEWAL23Onyama Limba
1030Ashley T SlusarskiSpain2024-06-22Buckley Miller Wright PROPOSAL22Ioni Bowcher
1031Rodrigues V SergiItaly2024-06-20Chemel, James L Cpa NEW6Elwin Sharvill
1032Leon O AlbaresRussia2024-06-03Benton, John B Jr RENEWAL53Onyama Limba
1033Arvin M PaprockiArgentina2024-06-04Chemel, James L Cpa UNQUALIFIED35Stephen Shaw
1034Nicolas P MorascaSpain2024-05-28Feiner Bros RENEWAL24Ivan Magalhaes
1035Mujtaba I GillianRussia2024-06-23Rangoni Of Florence UNQUALIFIED12Bernardo Dominic
1036Maisha Z PaprockiIndia2024-06-19Truhlar And Truhlar Attys PROPOSAL29Anna Fali
1037Jones Y FlosiSpain2024-06-16Rangoni Of Florence NEGOTIATION16Anna Fali
1038Munro I MaletSpain2024-06-13Printing Dimensions NEW58Anna Fali
1039David S NestleUnited Kingdom2024-06-15Truhlar And Truhlar Attys UNQUALIFIED75Bernardo Dominic
1040Silvio T GarufiGermany2024-06-04Chanay, Jeffrey A Esq NEGOTIATION89Asiya Javayant
1041Mayumi C MaletIndia2024-06-09Buckley Miller Wright NEW7Onyama Limba
1042Aditya U TollnerFrance2024-06-14Morlong Associates RENEWAL43Ivan Magalhaes
1043Salvatore X GillianJapan2024-06-24Truhlar And Truhlar Attys NEW64Asiya Javayant
1044Emily Y WhobreyRussia2024-05-27Rangoni Of Florence RENEWAL73Anna Fali
1045Murillo C DarakjyFrance2024-06-04Buckley Miller Wright NEGOTIATION0Ivan Magalhaes
1046Antonio Y DilliardBrazil2024-06-18Printing Dimensions RENEWAL98Stephen Shaw
1047Ivar Q WieserBrazil2024-06-03Chanay, Jeffrey A Esq QUALIFIED43Ioni Bowcher
1048Jeanfrancois F RutaUnited Kingdom2024-06-15Truhlar And Truhlar Attys QUALIFIED3Amy Elsner
1049Claire I FlosiRussia2024-06-23Chanay, Jeffrey A Esq UNQUALIFIED53Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Emily Z RutaSpainAnna Fali NEGOTIATION
Salvatore M MacleadItalyOnyama Limba NEW
Greenwood J MaletJapanBernardo Dominic UNQUALIFIED
Aika V ButtSpainAsiya Javayant QUALIFIED
Stacey M PoquetteItalyIoni Bowcher NEGOTIATION
Misaki K RoysterCanadaStephen Shaw NEGOTIATION
Adams R WaycottRussiaIoni Bowcher NEGOTIATION
Alejandro J BologniaArgentinaXuxue Feng QUALIFIED
Costa J ShinkoAustraliaStephen Shaw NEW
Deepesh S SchemmerUnited KingdomXuxue Feng PROPOSAL
Julie Q StockhamSpainIvan Magalhaes NEW
Francesco G DarakjyAustraliaAsiya Javayant UNQUALIFIED
Julie I FollerItalyIoni Bowcher QUALIFIED
Kaitlin T NickaItalyAsiya Javayant RENEWAL
Clifford X GauchoRussiaAmy Elsner NEW
Emily G AlbaresUnited KingdomAnna Fali NEGOTIATION
Jennifer B SlusarskiAustraliaIoni Bowcher NEGOTIATION
Kadeem Y StockhamGermanyIvan Magalhaes NEW
Octavia N SergiRussiaAnna Fali NEW
Nicolas L FigeroaAustraliaElwin Sharvill RENEWAL
Darci A MarrierFranceStephen Shaw QUALIFIED
Claire V TollnerAustraliaAmy Elsner NEW
Rodrigues J VocelkaBrazilAsiya Javayant NEW
Jennifer F GauchoSpainAsiya Javayant NEGOTIATION
Leja T MaletArgentinaXuxue Feng NEW
Greenwood S KuskoSpainAnna Fali QUALIFIED
James Z PerinBrazilIoni Bowcher NEW
Arvin U CaudyUnited KingdomBernardo Dominic NEGOTIATION
Kadeem T AlbaresSpainElwin Sharvill QUALIFIED
Juan U FollerBrazilIoni Bowcher QUALIFIED
Jennifer O PaprockiSpainIoni Bowcher RENEWAL
Kadeem A SchemmerSpainStephen Shaw NEW
Mujtaba M StockhamIndiaAmy Elsner NEW
Costa L FollerArgentinaElwin Sharvill QUALIFIED
Isabel Z NickaRussiaElwin Sharvill UNQUALIFIED
Leon Z MacleadIndiaStephen Shaw QUALIFIED
Kadeem Q AlbaresArgentinaOnyama Limba QUALIFIED
Maria V MarrierBrazilIoni Bowcher UNQUALIFIED
Sinclair G FlosiRussiaBernardo Dominic UNQUALIFIED
Johnson I NickaUnited KingdomStephen Shaw QUALIFIED
Deepesh D FollerGermanyAsiya Javayant NEW
Jeanfrancois L VocelkaRussiaAmy Elsner RENEWAL
Tony F SergiBrazilIoni Bowcher QUALIFIED
Sinclair W GlickRussiaAsiya Javayant NEW
Octavia T VenereFranceBernardo Dominic NEW
Emily L ChuiGermanyXuxue Feng NEW
Antonio B GauchoFranceBernardo Dominic UNQUALIFIED
Greenwood K DarakjySpainAsiya Javayant NEGOTIATION
Maisha G WaycottItalyElwin Sharvill UNQUALIFIED
Francesco E PerinSpainStephen Shaw NEGOTIATION
Frozen Columns
Name
Salvatore Q Oldroyd
Antonio P Shinko
Aditya S Slusarski
Isabel W Gaucho
Deepesh C Kolmetz
Greenwood G Slusarski
Adams W Ferencz
Morrow I Bowley
Francesco L Malet
Ivar G Dilliard
Kaitlin A Darakjy
Tony L Nicka
Mayumi F Saylors
Tony G Nestle
Maria X Kolmetz
Ricardo I Ruta
Ricardo Q Dilliard
Tony E Perin
Isabel K Chui
Darci M Inouye
Jeanfrancois N Whobrey
Maria S Rim
Kadeem W Briddick
Maisha P Maclead
Ashley Q Nestle
Johnson M Maclead
Morrow T Chui
Darci M Chui
Morrow J Vocelka
David C Amigon
Misaki Y Vocelka
Ricardo A Rulapaugh
Kaitlin I Kusko
Ricardo X Gaucho
Aditya R Venere
Faith B Sergi
Arvin X Whobrey
Chavez E Tollner
Wickens Z Nestle
Aditya V Kusko
Misaki I Ostrosky
Leja K Vocelka
Silvio M Malet
Ashley U Bowley
Juan B Rim
Sinclair J Royster
Maisha M Kolmetz
Chavez B Nicka
Emily N Campain
Darci V Amigon
IdCountryDate
1000Germany2024-05-31
1001Spain2024-06-04
1002Canada2024-06-11
1003Australia2024-05-26
1004Italy2024-06-11
1005Brazil2024-06-03
1006Russia2024-06-19
1007Argentina2024-06-09
1008Argentina2024-06-18
1009France2024-06-08
1010Spain2024-05-31
1011Italy2024-06-09
1012France2024-06-05
1013Italy2024-06-05
1014Italy2024-06-10
1015France2024-06-16
1016Australia2024-05-29
1017Russia2024-06-23
1018India2024-06-12
1019India2024-06-24
1020Russia2024-06-22
1021Spain2024-06-10
1022India2024-06-23
1023Brazil2024-05-29
1024Japan2024-06-08
1025Brazil2024-05-26
1026Canada2024-06-19
1027Spain2024-06-21
1028France2024-06-21
1029Spain2024-06-04
1030Italy2024-05-26
1031Japan2024-05-30
1032Canada2024-06-22
1033Japan2024-06-21
1034Spain2024-06-12
1035Australia2024-05-30
1036Australia2024-06-11
1037Spain2024-06-08
1038India2024-05-27
1039France2024-05-31
1040Germany2024-05-27
1041Argentina2024-05-26
1042Germany2024-06-17
1043Germany2024-06-19
1044France2024-06-20
1045India2024-05-28
1046Russia2024-05-30
1047Japan2024-06-23
1048Canada2024-06-19
1049Japan2024-06-02

On-Demand Data

NameIdCountryDate
Arvin X Briddick1000Italy2024-06-06
Isabel X Stockham1001India2024-06-03
Jennifer T Tollner1002Japan2024-06-20
Alejandro Z Slusarski1003France2024-06-10
Smith C Kusko1004India2024-06-04
Johnson Z Campain1005Spain2024-05-31
Johnson P Darakjy1006Argentina2024-06-15
Claire Y Perin1007Italy2024-05-29
Wickens W Royster1008Japan2024-06-04
Jennifer B Waycott1009France2024-06-04
Faith V Albares1010Japan2024-06-03
Juan V Doe1011Brazil2024-06-07
Leja S Amigon1012Japan2024-06-11
Leja V Kusko1013Argentina2024-06-06
Aika B Stenseth1014Brazil2024-06-19
Francesco Z Kolmetz1015Spain2024-06-12
Cody X Gillian1016Canada2024-06-08
Kadeem G Nestle1017Italy2024-06-02
Wickens R Iturbide1018France2024-05-29
Aditya S Bowley1019Germany2024-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon F PoquetteSpainBernardo Dominic UNQUALIFIED
Ivar A RimSpainAnna Fali RENEWAL
Claire B FigeroaSpainElwin Sharvill NEW
Jefferson K CaudyAustraliaXuxue Feng UNQUALIFIED
Mayumi G WaycottUnited KingdomAnna Fali NEW
Mujtaba C BologniaJapanBernardo Dominic NEGOTIATION
Francesco O ButtIndiaBernardo Dominic PROPOSAL
Jeanfrancois O RutaArgentinaIvan Magalhaes NEW
Arvin T CaudyUnited KingdomIoni Bowcher RENEWAL
Rodrigues R FigeroaJapanAnna Fali UNQUALIFIED
Maria I ShinkoFranceXuxue Feng PROPOSAL
Antonio I MacleadIndiaBernardo Dominic PROPOSAL
Salvatore W MarrierBrazilElwin Sharvill NEW
Stacey K StensethFranceAnna Fali NEW
Johnson N KuskoItalyIoni Bowcher UNQUALIFIED
Jennifer N InouyeAustraliaXuxue Feng PROPOSAL
Leon Z WhobreyJapanElwin Sharvill NEGOTIATION
Kadeem L PaprockiCanadaAsiya Javayant NEW
Deepesh I ChuiCanadaIoni Bowcher NEW
Nicolas P GarufiItalyXuxue Feng NEW
Mujtaba T ChuiUnited KingdomAnna Fali NEGOTIATION
Sinclair M MaletItalyIoni Bowcher UNQUALIFIED
Sinclair I MorascaFranceAsiya Javayant QUALIFIED
Munro F StensethJapanOnyama Limba PROPOSAL
Faith Y ChuiJapanAmy Elsner PROPOSAL
Clifford E BologniaSpainIoni Bowcher UNQUALIFIED
Arvin I FigeroaBrazilOnyama Limba UNQUALIFIED
Johnson F WhobreySpainElwin Sharvill NEW
Greenwood K ShinkoCanadaIoni Bowcher QUALIFIED
Jefferson F BriddickCanadaElwin Sharvill NEGOTIATION
Francesco T WieserRussiaXuxue Feng PROPOSAL
Jennifer M NickaBrazilAmy Elsner QUALIFIED
Cody W IturbideBrazilIoni Bowcher RENEWAL
Greenwood W IturbideItalyOnyama Limba QUALIFIED
Mujtaba M InouyeBrazilOnyama Limba NEGOTIATION
Aruna S FigeroaJapanElwin Sharvill PROPOSAL
Murillo F OldroydGermanyXuxue Feng PROPOSAL
Jeanfrancois S NickaUnited KingdomBernardo Dominic PROPOSAL
Juan J WaycottGermanyOnyama Limba NEGOTIATION
Munro E DarakjyGermanyAsiya Javayant NEW

<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>