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
Johnson A WieserBrazilElwin Sharvill QUALIFIED
Leja Y InouyeFranceStephen Shaw QUALIFIED
Adams G ButtArgentinaStephen Shaw UNQUALIFIED
Francesco N SergiItalyStephen Shaw NEW
Aditya Y VocelkaAustraliaBernardo Dominic NEW
Greenwood S WaycottUnited KingdomStephen Shaw RENEWAL
Juan M FollerIndiaBernardo Dominic UNQUALIFIED
Julie M ButtRussiaIoni Bowcher NEGOTIATION
Silvio Q WhobreyGermanyIvan Magalhaes RENEWAL
Kaitlin Y BowleyCanadaOnyama Limba NEW
Clifford X WhobreyJapanElwin Sharvill QUALIFIED
Antonio T CaldareraJapanAnna Fali NEW
James U CaldareraArgentinaAmy Elsner UNQUALIFIED
Johnson Q GillianUnited KingdomBernardo Dominic PROPOSAL
Deepesh Q OldroydRussiaIvan Magalhaes NEW
Jones D InouyeJapanIvan Magalhaes PROPOSAL
Emily M MacleadJapanIoni Bowcher RENEWAL
Clifford R DoeAustraliaAnna Fali NEGOTIATION
Maisha E TollnerFranceOnyama Limba RENEWAL
Francesco R CaldareraSpainStephen Shaw UNQUALIFIED
Rodrigues P MaletJapanBernardo Dominic PROPOSAL
Jones T DilliardRussiaOnyama Limba NEW
Jeanfrancois V IturbideCanadaOnyama Limba QUALIFIED
Darci U InouyeBrazilOnyama Limba PROPOSAL
Mayumi F PaprockiIndiaIvan Magalhaes UNQUALIFIED
Misaki Q MaletItalyOnyama Limba RENEWAL
Greenwood L BologniaRussiaOnyama Limba QUALIFIED
Greenwood H GlickJapanXuxue Feng QUALIFIED
Isabel R MaletGermanyOnyama Limba NEW
Tony K IturbideSpainOnyama Limba NEW
Arvin B DoeCanadaBernardo Dominic QUALIFIED
Silvio O SergiJapanIoni Bowcher NEW
Jefferson O GarufiJapanElwin Sharvill RENEWAL
Wickens T CaldareraJapanIvan Magalhaes RENEWAL
Chavez U FollerCanadaAsiya Javayant NEW
Kadeem Q GauchoItalyAmy Elsner NEGOTIATION
Stacey G PaprockiJapanStephen Shaw PROPOSAL
Nicolas D RulapaughFranceIvan Magalhaes NEW
Jennifer P NestleJapanBernardo Dominic NEW
Stacey A SergiBrazilXuxue Feng NEW
Morrow V RoysterCanadaAmy Elsner NEGOTIATION
Munro L GlickIndiaBernardo Dominic PROPOSAL
Arvin L FollerUnited KingdomXuxue Feng UNQUALIFIED
Kadeem A VenereItalyAnna Fali RENEWAL
Silvio E InouyeItalyAmy Elsner QUALIFIED
Isabel J ShinkoAustraliaOnyama Limba UNQUALIFIED
Deepesh C MaletArgentinaOnyama Limba PROPOSAL
Octavia Z MarrierSpainIoni Bowcher NEGOTIATION
Faith E OstroskyBrazilIvan Magalhaes QUALIFIED
Stacey U MaletUnited KingdomBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith S PaprockiIndiaAsiya Javayant PROPOSAL
Cody H SchemmerAustraliaIvan Magalhaes UNQUALIFIED
Clifford I OldroydAustraliaOnyama Limba UNQUALIFIED
Antonio J NestleUnited KingdomAmy Elsner NEW
Leon D CampainUnited KingdomOnyama Limba PROPOSAL
Ashley V MacleadBrazilAnna Fali RENEWAL
Ricardo N SlusarskiUnited KingdomAnna Fali UNQUALIFIED
Greenwood I IturbideBrazilIvan Magalhaes RENEWAL
Murillo S WaycottItalyOnyama Limba UNQUALIFIED
James T MarrierFranceOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja Y KuskoSpain2024-06-24Benton, John B Jr UNQUALIFIED92Ioni Bowcher
1001Munro X FigeroaIndia2024-06-24Truhlar And Truhlar Attys NEW42Stephen Shaw
1002Morrow M BriddickBrazil2024-05-26Chemel, James L Cpa UNQUALIFIED47Stephen Shaw
1003Maisha B BriddickRussia2024-06-03Printing Dimensions RENEWAL29Bernardo Dominic
1004Adams I NestleCanada2024-06-08Rousseaux, Michael Esq QUALIFIED19Amy Elsner
1005Sinclair F CaudySpain2024-05-27Buckley Miller Wright RENEWAL15Elwin Sharvill
1006Faith A GauchoBrazil2024-06-04Chemel, James L Cpa PROPOSAL33Xuxue Feng
1007Salvatore C StensethRussia2024-06-15Rousseaux, Michael Esq UNQUALIFIED67Amy Elsner
1008Nicolas L CampainSpain2024-06-24Chanay, Jeffrey A Esq RENEWAL88Bernardo Dominic
1009Silvio B SlusarskiItaly2024-06-07Buckley Miller Wright RENEWAL21Amy Elsner
1010Emily K CaldareraArgentina2024-06-14Rousseaux, Michael Esq PROPOSAL86Ioni Bowcher
1011Maisha H ShinkoArgentina2024-05-30Benton, John B Jr UNQUALIFIED53Onyama Limba
1012Arvin V OldroydArgentina2024-06-14Feltz Printing Service NEGOTIATION66Stephen Shaw
1013Misaki L BowleyArgentina2024-06-12Rousseaux, Michael Esq NEGOTIATION39Xuxue Feng
1014Faith R ChuiUnited Kingdom2024-06-05Rangoni Of Florence PROPOSAL62Anna Fali
1015Claire P FerenczItaly2024-06-18Chapman, Ross E Esq NEW30Anna Fali
1016Smith K MaletIndia2024-05-31Morlong Associates UNQUALIFIED58Asiya Javayant
1017Ashley Q AmigonGermany2024-06-09Commercial Press NEW22Xuxue Feng
1018Munro N FlosiIndia2024-06-07Buckley Miller Wright RENEWAL84Bernardo Dominic
1019Isabel C OstroskyArgentina2024-06-15Chemel, James L Cpa RENEWAL41Bernardo Dominic
1020Misaki I RoysterGermany2024-06-05Chapman, Ross E Esq UNQUALIFIED4Ivan Magalhaes
1021Tony A GillianCanada2024-05-26Commercial Press RENEWAL83Amy Elsner
1022Emily X ButtIndia2024-06-04Commercial Press QUALIFIED36Xuxue Feng
1023Adams E AlbaresJapan2024-06-16Truhlar And Truhlar Attys RENEWAL68Xuxue Feng
1024Adams S CaudyArgentina2024-06-16Buckley Miller Wright QUALIFIED32Amy Elsner
1025Jennifer N GauchoSpain2024-05-30Benton, John B Jr PROPOSAL7Anna Fali
1026Antonio S CampainBrazil2024-06-24Rousseaux, Michael Esq UNQUALIFIED6Ioni Bowcher
1027Aruna M SergiAustralia2024-05-28Dorl, James J Esq NEGOTIATION63Bernardo Dominic
1028Salvatore L InouyeBrazil2024-06-22Benton, John B Jr QUALIFIED9Asiya Javayant
1029Aditya B DilliardItaly2024-06-19Chanay, Jeffrey A Esq UNQUALIFIED55Onyama Limba
1030Juan Z WaycottAustralia2024-06-19Rangoni Of Florence NEGOTIATION10Ivan Magalhaes
1031Nicolas C MorascaArgentina2024-06-21Benton, John B Jr NEW19Ivan Magalhaes
1032Salvatore G CaldareraRussia2024-06-19Chanay, Jeffrey A Esq NEGOTIATION93Anna Fali
1033Adams I SchemmerGermany2024-06-24King, Christopher A Esq UNQUALIFIED67Elwin Sharvill
1034Murillo E FollerGermany2024-06-02Truhlar And Truhlar Attys PROPOSAL30Elwin Sharvill
1035Izzy G MarrierFrance2024-06-03Rousseaux, Michael Esq NEGOTIATION93Bernardo Dominic
1036Leon H StockhamBrazil2024-06-15Benton, John B Jr UNQUALIFIED44Xuxue Feng
1037Adams Y MaletFrance2024-06-13Chanay, Jeffrey A Esq NEGOTIATION48Anna Fali
1038Wickens V SergiBrazil2024-06-19Buckley Miller Wright UNQUALIFIED34Anna Fali
1039Jones N CaudySpain2024-06-23Chemel, James L Cpa NEW85Bernardo Dominic
1040Mayumi U PerinArgentina2024-06-10Feltz Printing Service QUALIFIED22Ioni Bowcher
1041Faith A WieserArgentina2024-06-22Benton, John B Jr UNQUALIFIED0Bernardo Dominic
1042Adams M VocelkaBrazil2024-06-14Chanay, Jeffrey A Esq PROPOSAL65Asiya Javayant
1043Johnson P FerenczFrance2024-06-16Truhlar And Truhlar Attys QUALIFIED80Asiya Javayant
1044Jefferson Q GauchoCanada2024-06-13Feiner Bros NEW7Onyama Limba
1045Wickens N GillianRussia2024-06-12Benton, John B Jr RENEWAL21Asiya Javayant
1046Emily U ButtFrance2024-06-18Rousseaux, Michael Esq NEGOTIATION79Bernardo Dominic
1047Silvio V IturbideArgentina2024-05-29Morlong Associates PROPOSAL44Amy Elsner
1048Kadeem F WhobreyBrazil2024-06-12Chanay, Jeffrey A Esq UNQUALIFIED20Asiya Javayant
1049Nicolas P FlosiSpain2024-06-23Printing Dimensions QUALIFIED1Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Leja Z GauchoArgentinaAnna Fali PROPOSAL
Clifford T BowleyArgentinaStephen Shaw UNQUALIFIED
Leon S ShinkoItalyOnyama Limba NEW
Ricardo S OstroskySpainBernardo Dominic NEW
Isabel Z OstroskyItalyOnyama Limba PROPOSAL
James W FlosiFranceIvan Magalhaes PROPOSAL
Aruna U FollerUnited KingdomXuxue Feng NEW
Clifford Y WieserCanadaXuxue Feng PROPOSAL
Arvin Z BriddickIndiaStephen Shaw RENEWAL
Emily Q WhobreySpainStephen Shaw PROPOSAL
Jeanfrancois V OstroskyArgentinaAmy Elsner RENEWAL
Leja H BriddickGermanyOnyama Limba NEW
Sinclair P RutaItalyElwin Sharvill QUALIFIED
Smith O StensethItalyXuxue Feng RENEWAL
Chavez K ButtFranceStephen Shaw RENEWAL
Mayumi N BowleyItalyStephen Shaw NEW
David U PoquetteFranceElwin Sharvill RENEWAL
Stacey M SlusarskiArgentinaStephen Shaw UNQUALIFIED
Francesco M CampainJapanBernardo Dominic PROPOSAL
Kadeem X GlickAustraliaAsiya Javayant UNQUALIFIED
Deepesh Q MaletFranceXuxue Feng RENEWAL
Kaitlin Y MaletBrazilIvan Magalhaes UNQUALIFIED
David Y CampainRussiaOnyama Limba PROPOSAL
Darci P BriddickFranceAnna Fali UNQUALIFIED
Misaki R KolmetzBrazilOnyama Limba UNQUALIFIED
Claire L WieserSpainIoni Bowcher UNQUALIFIED
Jones H StockhamSpainXuxue Feng PROPOSAL
James F DoeBrazilAnna Fali QUALIFIED
David W MaletBrazilAmy Elsner PROPOSAL
Julie N NestleCanadaOnyama Limba RENEWAL
Jefferson A RutaAustraliaIvan Magalhaes RENEWAL
Aruna G GillianArgentinaIvan Magalhaes RENEWAL
Claire N MaletGermanyStephen Shaw NEGOTIATION
Jones R MaletCanadaElwin Sharvill RENEWAL
Rodrigues B ChuiUnited KingdomAnna Fali PROPOSAL
Mayumi M GauchoCanadaElwin Sharvill PROPOSAL
Johnson P SaylorsAustraliaStephen Shaw UNQUALIFIED
Clifford J RulapaughRussiaIoni Bowcher PROPOSAL
James L KuskoBrazilIvan Magalhaes QUALIFIED
Ashley N PaprockiSpainAmy Elsner QUALIFIED
Rodrigues E VenereItalyBernardo Dominic UNQUALIFIED
Ricardo S SergiFranceAsiya Javayant NEGOTIATION
Jefferson A WaycottAustraliaElwin Sharvill UNQUALIFIED
Jefferson Y GarufiItalyBernardo Dominic PROPOSAL
Munro P StockhamUnited KingdomAmy Elsner PROPOSAL
Wickens S DoeGermanyAmy Elsner RENEWAL
Cody I AmigonGermanyStephen Shaw NEW
Leon V WhobreyIndiaIoni Bowcher RENEWAL
Emily H ButtGermanyStephen Shaw PROPOSAL
Alejandro L CaldareraItalyIoni Bowcher NEW
Frozen Columns
Name
Morrow E Glick
Claire P Venere
Francesco E Nestle
Arvin Z Bolognia
Leon V Royster
Deepesh F Kolmetz
Darci Y Ferencz
Salvatore W Venere
Francesco P Morasca
Isabel K Malet
Rodrigues X Stenseth
Kaitlin F Doe
Kadeem S Iturbide
Wickens J Darakjy
Aruna T Dilliard
Jennifer O Bolognia
Faith P Caldarera
Jones U Stenseth
Kadeem U Inouye
Stacey S Gillian
Isabel F Maclead
Murillo N Figeroa
Aditya G Butt
Jeanfrancois L Foller
Kaitlin L Flosi
Silvio M Ostrosky
Cody E Figeroa
Ricardo P Malet
Rodrigues F Glick
Sinclair L Morasca
Stacey P Briddick
Smith D Caldarera
Maisha P Waycott
Deepesh O Malet
Faith Q Sergi
Juan M Royster
Aruna W Morasca
Maisha H Amigon
Juan M Bolognia
Faith J Foller
Chavez N Wieser
Arvin W Ferencz
Arvin B Flosi
Deepesh I Saylors
Smith X Poquette
Ivar L Ruta
Jefferson T Rim
Aditya F Stenseth
Kadeem H Ruta
Chavez B Campain
IdCountryDate
1000Canada2024-06-06
1001Brazil2024-06-03
1002India2024-06-15
1003Russia2024-06-05
1004Argentina2024-06-20
1005Australia2024-06-19
1006Russia2024-06-06
1007Canada2024-06-04
1008Japan2024-06-08
1009Spain2024-06-14
1010United Kingdom2024-06-23
1011Spain2024-06-18
1012India2024-06-07
1013Argentina2024-06-01
1014Germany2024-06-09
1015India2024-05-28
1016Germany2024-06-15
1017India2024-06-06
1018Japan2024-06-18
1019Japan2024-06-16
1020France2024-05-27
1021France2024-05-27
1022Russia2024-06-20
1023Canada2024-05-31
1024Australia2024-06-03
1025United Kingdom2024-06-01
1026Canada2024-05-29
1027Canada2024-06-16
1028Russia2024-05-29
1029Russia2024-06-12
1030India2024-06-17
1031Germany2024-06-17
1032India2024-06-12
1033Brazil2024-05-27
1034Italy2024-06-07
1035Spain2024-06-19
1036Spain2024-05-26
1037Brazil2024-06-24
1038Japan2024-06-21
1039France2024-06-11
1040United Kingdom2024-05-31
1041United Kingdom2024-05-30
1042France2024-06-08
1043Canada2024-05-27
1044Canada2024-06-02
1045Italy2024-05-30
1046Argentina2024-06-03
1047France2024-05-26
1048Spain2024-06-11
1049Germany2024-06-21

On-Demand Data

NameIdCountryDate
Chavez K Briddick1000Spain2024-06-06
Adams P Stenseth1001United Kingdom2024-06-04
David V Caldarera1002Spain2024-06-17
Jennifer F Bolognia1003Spain2024-06-10
Mayumi N Royster1004India2024-05-28
Antonio O Kolmetz1005United Kingdom2024-06-22
Antonio Y Amigon1006Argentina2024-06-16
Costa M Inouye1007Argentina2024-06-11
Aditya Y Briddick1008Germany2024-05-28
Stacey K Tollner1009Italy2024-06-02
Costa T Rim1010Germany2024-05-27
Sinclair Q Oldroyd1011Australia2024-06-16
Mujtaba F Doe1012Australia2024-06-12
Sinclair C Gaucho1013Australia2024-06-09
Salvatore M Perin1014Italy2024-06-17
Octavia C Venere1015Germany2024-06-01
Smith J Amigon1016Brazil2024-06-16
Jones U Venere1017Japan2024-06-24
Salvatore C Sergi1018Spain2024-06-11
Isabel S Iturbide1019Japan2024-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie L StensethJapanOnyama Limba NEGOTIATION
Emily L OldroydIndiaXuxue Feng RENEWAL
Izzy K DilliardGermanyAnna Fali PROPOSAL
Rodrigues Q WieserBrazilXuxue Feng NEW
Jennifer J TollnerJapanElwin Sharvill QUALIFIED
Francesco V WaycottGermanyBernardo Dominic UNQUALIFIED
Nicolas B MaletBrazilAsiya Javayant NEW
Mayumi M NickaItalyIoni Bowcher NEGOTIATION
Jeanfrancois F CampainSpainAmy Elsner QUALIFIED
Johnson N DarakjyArgentinaIoni Bowcher NEW
Claire A CaldareraCanadaOnyama Limba QUALIFIED
Morrow V FollerFranceStephen Shaw QUALIFIED
Salvatore L SaylorsIndiaElwin Sharvill UNQUALIFIED
Alejandro T KolmetzGermanyElwin Sharvill PROPOSAL
Adams R RimUnited KingdomAmy Elsner UNQUALIFIED
Izzy U MorascaJapanOnyama Limba QUALIFIED
Cody P FerenczAustraliaStephen Shaw QUALIFIED
Emily Z OldroydItalyElwin Sharvill QUALIFIED
Ricardo F FigeroaGermanyStephen Shaw RENEWAL
Arvin K DilliardJapanElwin Sharvill NEW
Munro X PaprockiBrazilBernardo Dominic NEGOTIATION
Rodrigues W KuskoUnited KingdomOnyama Limba QUALIFIED
Clifford F GlickAustraliaStephen Shaw NEGOTIATION
Adams J DoeCanadaXuxue Feng NEGOTIATION
Greenwood A OstroskyArgentinaXuxue Feng UNQUALIFIED
Maisha Q GillianBrazilIvan Magalhaes QUALIFIED
James X VocelkaArgentinaAmy Elsner QUALIFIED
Kaitlin Y ButtFranceXuxue Feng RENEWAL
Claire H GlickFranceAsiya Javayant NEW
Faith W PoquetteCanadaOnyama Limba NEGOTIATION
Faith D DoeUnited KingdomIoni Bowcher PROPOSAL
Munro W FlosiJapanOnyama Limba PROPOSAL
Deepesh U RulapaughCanadaAmy Elsner NEW
Arvin B DilliardItalyAmy Elsner PROPOSAL
Ashley L SaylorsCanadaIvan Magalhaes RENEWAL
Silvio J NestleBrazilXuxue Feng NEW
Faith J FerenczBrazilBernardo Dominic PROPOSAL
Kaitlin Q SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Faith H BowleyRussiaElwin Sharvill NEW
Sinclair U CaldareraSpainStephen Shaw PROPOSAL

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