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
Mayumi A OstroskyGermanyAnna Fali RENEWAL
Jones B BologniaFranceOnyama Limba NEGOTIATION
Aruna H RoysterBrazilStephen Shaw NEGOTIATION
Kaitlin O PerinIndiaAmy Elsner QUALIFIED
Nicolas L CaudyJapanAmy Elsner QUALIFIED
Leja P PoquetteRussiaElwin Sharvill NEGOTIATION
Maisha J WhobreyFranceBernardo Dominic UNQUALIFIED
Juan F PaprockiBrazilBernardo Dominic NEGOTIATION
Jeanfrancois C KuskoAustraliaAsiya Javayant NEGOTIATION
Silvio I CampainIndiaAmy Elsner NEGOTIATION
Kaitlin K AlbaresArgentinaXuxue Feng PROPOSAL
Deepesh A SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Jones X DilliardIndiaElwin Sharvill RENEWAL
Jones R OstroskyArgentinaStephen Shaw QUALIFIED
Munro Q CampainSpainAsiya Javayant NEGOTIATION
Stacey R StensethCanadaBernardo Dominic NEW
Darci P MarrierAustraliaOnyama Limba UNQUALIFIED
Mayumi U SlusarskiFranceXuxue Feng UNQUALIFIED
Deepesh D DilliardGermanyAnna Fali RENEWAL
Ashley V WaycottUnited KingdomXuxue Feng RENEWAL
Claire F WieserRussiaElwin Sharvill NEW
Kaitlin Y FerenczSpainBernardo Dominic QUALIFIED
Wickens W OldroydRussiaElwin Sharvill UNQUALIFIED
Clifford C FigeroaIndiaIvan Magalhaes QUALIFIED
Tony D FollerFranceAnna Fali PROPOSAL
Maria G MaletRussiaBernardo Dominic RENEWAL
Stacey M KuskoAustraliaXuxue Feng NEW
Isabel G BologniaAustraliaIoni Bowcher NEW
Leon I CampainSpainXuxue Feng UNQUALIFIED
Juan E CampainBrazilBernardo Dominic NEGOTIATION
Chavez D GarufiItalyBernardo Dominic QUALIFIED
Tony A VocelkaArgentinaXuxue Feng RENEWAL
Kaitlin Z ButtSpainElwin Sharvill UNQUALIFIED
Cody O BologniaJapanStephen Shaw RENEWAL
Aditya I MaletFranceAmy Elsner NEW
Johnson V WhobreyUnited KingdomElwin Sharvill NEGOTIATION
Deepesh F SlusarskiArgentinaIvan Magalhaes NEW
Clifford E NickaSpainIvan Magalhaes QUALIFIED
Salvatore X MaletAustraliaBernardo Dominic PROPOSAL
Jefferson V FigeroaFranceIoni Bowcher PROPOSAL
Rodrigues S NestleIndiaIvan Magalhaes QUALIFIED
Francesco P BologniaSpainAmy Elsner PROPOSAL
Cody B ShinkoFranceBernardo Dominic QUALIFIED
David R MaletBrazilAsiya Javayant NEW
Tony C KuskoJapanStephen Shaw PROPOSAL
Jennifer F NickaRussiaElwin Sharvill NEW
Mayumi N GillianAustraliaXuxue Feng PROPOSAL
Tony H OldroydRussiaIoni Bowcher UNQUALIFIED
Emily I InouyeBrazilIoni Bowcher UNQUALIFIED
Arvin F OstroskyCanadaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Francesco T RimIndiaIoni Bowcher NEGOTIATION
Silvio S MarrierFranceAnna Fali UNQUALIFIED
Darci S PerinArgentinaOnyama Limba NEGOTIATION
Claire I OldroydAustraliaBernardo Dominic PROPOSAL
Faith A GauchoFranceIvan Magalhaes UNQUALIFIED
Jefferson L KuskoGermanyAnna Fali QUALIFIED
Tony P WieserCanadaIoni Bowcher NEGOTIATION
Wickens L TollnerSpainIvan Magalhaes NEW
Arvin P KolmetzGermanyAnna Fali PROPOSAL
Ashley J AmigonBrazilIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro M BriddickRussia2024-06-04King, Christopher A Esq UNQUALIFIED2Bernardo Dominic
1001David K NickaAustralia2024-06-08Morlong Associates PROPOSAL62Elwin Sharvill
1002Darci U MorascaJapan2024-05-29Printing Dimensions NEW53Asiya Javayant
1003Emily I NickaFrance2024-06-17Rangoni Of Florence QUALIFIED15Stephen Shaw
1004Misaki B FerenczCanada2024-06-21Commercial Press UNQUALIFIED67Ioni Bowcher
1005Francesco T StockhamCanada2024-06-12Chemel, James L Cpa QUALIFIED66Asiya Javayant
1006Maria T BriddickJapan2024-06-19Truhlar And Truhlar Attys NEGOTIATION20Elwin Sharvill
1007Kadeem E MarrierJapan2024-05-26Feiner Bros QUALIFIED48Elwin Sharvill
1008Isabel B AlbaresFrance2024-06-23Rousseaux, Michael Esq RENEWAL26Bernardo Dominic
1009Misaki E PerinAustralia2024-06-01Truhlar And Truhlar Attys UNQUALIFIED28Asiya Javayant
1010Antonio K GlickUnited Kingdom2024-06-12Feiner Bros NEW50Asiya Javayant
1011Antonio P CampainCanada2024-06-10Chapman, Ross E Esq RENEWAL73Ivan Magalhaes
1012Leon O SlusarskiGermany2024-06-02Feiner Bros PROPOSAL63Bernardo Dominic
1013Morrow U VocelkaItaly2024-06-13Buckley Miller Wright QUALIFIED88Onyama Limba
1014Faith Q CampainAustralia2024-06-07King, Christopher A Esq NEGOTIATION68Ioni Bowcher
1015Ivar V BologniaJapan2024-05-27Buckley Miller Wright NEGOTIATION38Asiya Javayant
1016Leja F TollnerArgentina2024-06-22Rangoni Of Florence QUALIFIED81Ivan Magalhaes
1017Jennifer P KolmetzUnited Kingdom2024-06-15Chapman, Ross E Esq RENEWAL98Asiya Javayant
1018Claire U VenereItaly2024-06-06Truhlar And Truhlar Attys QUALIFIED96Onyama Limba
1019Murillo A ChuiItaly2024-06-15Feiner Bros NEGOTIATION34Onyama Limba
1020Isabel I RoysterJapan2024-05-25Rousseaux, Michael Esq QUALIFIED18Asiya Javayant
1021Silvio C FerenczGermany2024-06-08Chemel, James L Cpa NEGOTIATION44Stephen Shaw
1022Stacey U InouyeArgentina2024-06-23Rousseaux, Michael Esq QUALIFIED71Ivan Magalhaes
1023Mayumi C DilliardIndia2024-06-08Rousseaux, Michael Esq NEW98Bernardo Dominic
1024Leon X MarrierRussia2024-06-22Rangoni Of Florence NEGOTIATION71Bernardo Dominic
1025Chavez D GauchoFrance2024-06-06Dorl, James J Esq NEW8Stephen Shaw
1026Greenwood G SaylorsFrance2024-06-02Rangoni Of Florence PROPOSAL27Stephen Shaw
1027Ashley R VocelkaItaly2024-05-26Commercial Press RENEWAL91Ioni Bowcher
1028Ivar P PoquetteItaly2024-06-21Morlong Associates RENEWAL33Anna Fali
1029Jones D OldroydBrazil2024-06-07Chemel, James L Cpa NEGOTIATION91Ioni Bowcher
1030Mujtaba A FlosiItaly2024-05-26Truhlar And Truhlar Attys NEW89Stephen Shaw
1031Arvin E IturbideCanada2024-05-28Chemel, James L Cpa RENEWAL85Ioni Bowcher
1032Faith G SlusarskiUnited Kingdom2024-05-30Truhlar And Truhlar Attys QUALIFIED58Bernardo Dominic
1033Leja V GauchoBrazil2024-06-13Feiner Bros NEW56Anna Fali
1034David C StensethBrazil2024-06-11Chanay, Jeffrey A Esq QUALIFIED93Amy Elsner
1035Maisha T ButtAustralia2024-06-21Chemel, James L Cpa UNQUALIFIED61Elwin Sharvill
1036Morrow G BowleyGermany2024-06-02Dorl, James J Esq NEGOTIATION29Onyama Limba
1037Johnson H SergiAustralia2024-06-20Printing Dimensions RENEWAL43Xuxue Feng
1038Nicolas O CaudyArgentina2024-06-01Chapman, Ross E Esq NEW1Ivan Magalhaes
1039Adams H AlbaresJapan2024-06-20Morlong Associates PROPOSAL97Asiya Javayant
1040Salvatore I GauchoAustralia2024-06-20Buckley Miller Wright NEW34Asiya Javayant
1041Rodrigues V GillianIndia2024-05-30Printing Dimensions RENEWAL2Onyama Limba
1042Claire L BowleyArgentina2024-06-13Truhlar And Truhlar Attys NEGOTIATION33Anna Fali
1043Octavia J MacleadJapan2024-06-05Commercial Press NEGOTIATION64Ivan Magalhaes
1044Johnson N VocelkaRussia2024-06-05Commercial Press PROPOSAL94Onyama Limba
1045Mayumi I GillianSpain2024-05-28Truhlar And Truhlar Attys UNQUALIFIED38Stephen Shaw
1046Julie T VocelkaFrance2024-06-22Buckley Miller Wright QUALIFIED38Amy Elsner
1047Aika F MaletGermany2024-06-23Feltz Printing Service QUALIFIED78Stephen Shaw
1048Emily X FigeroaRussia2024-06-14Morlong Associates UNQUALIFIED5Elwin Sharvill
1049Isabel Z GauchoAustralia2024-06-04Truhlar And Truhlar Attys QUALIFIED82Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Nicolas O WieserFranceOnyama Limba PROPOSAL
Juan W ShinkoAustraliaAmy Elsner PROPOSAL
Aruna I SergiSpainBernardo Dominic UNQUALIFIED
Francesco V SergiIndiaAnna Fali PROPOSAL
Antonio K InouyeRussiaAmy Elsner PROPOSAL
Ivar P PoquetteIndiaStephen Shaw NEGOTIATION
Wickens I GauchoFranceIvan Magalhaes NEGOTIATION
Ivar B OldroydSpainXuxue Feng RENEWAL
David Q RoysterArgentinaAmy Elsner UNQUALIFIED
Mujtaba V DoeIndiaBernardo Dominic NEW
Ashley K StockhamGermanyElwin Sharvill UNQUALIFIED
Smith J SchemmerAustraliaIvan Magalhaes PROPOSAL
Silvio Z VenereAustraliaIvan Magalhaes UNQUALIFIED
Johnson S MorascaJapanAsiya Javayant RENEWAL
Mayumi B CaldareraCanadaIoni Bowcher NEGOTIATION
Wickens Y RutaUnited KingdomElwin Sharvill NEW
Rodrigues B MaletCanadaIvan Magalhaes UNQUALIFIED
Alejandro U MacleadIndiaXuxue Feng NEW
Juan E DoeAustraliaBernardo Dominic RENEWAL
Morrow B BowleyRussiaXuxue Feng UNQUALIFIED
Octavia H KolmetzJapanIoni Bowcher NEW
Sinclair H VenereRussiaXuxue Feng UNQUALIFIED
Darci J ChuiRussiaBernardo Dominic NEGOTIATION
Julie T WaycottArgentinaBernardo Dominic PROPOSAL
Silvio D GillianSpainBernardo Dominic NEGOTIATION
Silvio J GlickArgentinaAnna Fali PROPOSAL
James H TollnerArgentinaIvan Magalhaes PROPOSAL
Faith T RimIndiaBernardo Dominic NEW
Misaki Z DoeCanadaAmy Elsner QUALIFIED
Tony J GlickFranceXuxue Feng NEGOTIATION
Octavia H AmigonUnited KingdomXuxue Feng PROPOSAL
Darci V OstroskyGermanyIvan Magalhaes NEGOTIATION
Mayumi N AmigonIndiaAsiya Javayant PROPOSAL
Jennifer G BriddickSpainAsiya Javayant QUALIFIED
Alejandro U MaletItalyStephen Shaw RENEWAL
Aika B GarufiSpainIoni Bowcher RENEWAL
Adams V MorascaIndiaBernardo Dominic QUALIFIED
Mayumi M WhobreyUnited KingdomOnyama Limba PROPOSAL
Claire I DilliardArgentinaAnna Fali RENEWAL
Aruna I OstroskyCanadaBernardo Dominic NEW
Sinclair N KuskoArgentinaIvan Magalhaes PROPOSAL
Maria Y StockhamFranceIvan Magalhaes NEGOTIATION
Jeanfrancois N OstroskyGermanyElwin Sharvill PROPOSAL
Arvin E VocelkaIndiaElwin Sharvill UNQUALIFIED
Stacey N IturbideCanadaIvan Magalhaes UNQUALIFIED
Morrow K CampainArgentinaAnna Fali UNQUALIFIED
Kadeem N GlickRussiaAnna Fali NEW
Octavia X TollnerFranceAnna Fali NEGOTIATION
Nicolas P MaletCanadaOnyama Limba QUALIFIED
Greenwood Y BowleyItalyAsiya Javayant PROPOSAL
Frozen Columns
Name
Faith J Malet
Stacey Z Foller
Isabel E Butt
Costa G Shinko
Leon P Tollner
Ivar H Caldarera
Tony P Gaucho
Alejandro R Foller
Kadeem W Foller
Costa W Whobrey
Munro O Dilliard
Izzy B Rulapaugh
Johnson T Stockham
Jeanfrancois T Marrier
Greenwood B Paprocki
Cody N Saylors
Stacey U Flosi
Ivar G Whobrey
Emily O Darakjy
Ricardo H Waycott
Greenwood M Doe
Silvio E Butt
Tony E Sergi
Claire W Whobrey
Jefferson K Gillian
Francesco H Foller
Aruna U Malet
Maria P Kolmetz
Isabel V Royster
Salvatore D Kusko
Francesco Z Shinko
Emily C Caldarera
James W Nestle
Emily P Maclead
Aruna T Ruta
Ricardo Y Oldroyd
Izzy Z Malet
Jones M Tollner
Faith F Waycott
Julie X Morasca
Greenwood J Rulapaugh
Aika O Iturbide
Jones Y Kusko
Francesco C Ruta
James Q Bolognia
Jefferson P Gaucho
Ricardo E Chui
Cody E Stenseth
Claire N Waycott
Salvatore D Darakjy
IdCountryDate
1000France2024-06-10
1001France2024-06-14
1002Germany2024-06-03
1003Japan2024-06-18
1004Italy2024-06-16
1005Argentina2024-06-19
1006Argentina2024-06-01
1007France2024-05-31
1008Germany2024-06-22
1009France2024-06-11
1010India2024-06-16
1011Argentina2024-06-21
1012Russia2024-05-31
1013Australia2024-06-06
1014Canada2024-05-25
1015Spain2024-06-21
1016Australia2024-06-08
1017United Kingdom2024-05-27
1018Germany2024-06-02
1019Brazil2024-06-05
1020United Kingdom2024-05-30
1021India2024-06-14
1022Russia2024-06-12
1023France2024-06-09
1024Spain2024-06-10
1025Italy2024-05-30
1026Argentina2024-05-29
1027Italy2024-06-01
1028Canada2024-06-05
1029Brazil2024-06-21
1030Germany2024-06-17
1031Russia2024-06-01
1032Brazil2024-06-04
1033France2024-06-21
1034Italy2024-06-14
1035United Kingdom2024-06-11
1036Brazil2024-05-28
1037Argentina2024-05-29
1038Argentina2024-05-27
1039Canada2024-06-12
1040Canada2024-06-02
1041India2024-06-16
1042Russia2024-05-29
1043Australia2024-06-03
1044Germany2024-06-18
1045Canada2024-05-26
1046Argentina2024-06-22
1047Australia2024-06-12
1048Russia2024-06-03
1049United Kingdom2024-06-21

On-Demand Data

NameIdCountryDate
Aditya H Ruta1000Australia2024-06-01
Morrow N Rim1001Spain2024-06-05
Salvatore Q Garufi1002Germany2024-06-23
Wickens T Royster1003Italy2024-06-04
Jones W Caudy1004Australia2024-06-13
Murillo F Sergi1005India2024-06-03
Smith W Iturbide1006United Kingdom2024-06-09
Aika L Oldroyd1007Brazil2024-06-09
Kadeem T Dilliard1008Japan2024-05-30
Wickens Q Foller1009Russia2024-06-07
Alejandro K Slusarski1010India2024-05-26
Francesco B Dilliard1011Canada2024-06-18
Aditya H Whobrey1012Japan2024-06-08
Juan G Gillian1013Canada2024-06-03
Mayumi Z Campain1014Germany2024-05-27
Costa Z Waycott1015Germany2024-06-04
Johnson T Caudy1016Japan2024-05-31
Leon T Ostrosky1017Australia2024-06-03
Clifford B Waycott1018Australia2024-06-22
Kaitlin X Ruta1019India2024-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody Z NickaCanadaAnna Fali RENEWAL
Adams C BologniaAustraliaIvan Magalhaes UNQUALIFIED
James V CaudyCanadaAmy Elsner RENEWAL
Maisha B AmigonCanadaElwin Sharvill PROPOSAL
James T TollnerUnited KingdomBernardo Dominic NEGOTIATION
Kadeem Y SchemmerIndiaIvan Magalhaes QUALIFIED
Mayumi K DarakjyAustraliaXuxue Feng RENEWAL
Munro N MorascaSpainIvan Magalhaes PROPOSAL
David Z PoquetteAustraliaIoni Bowcher NEGOTIATION
Kaitlin K SaylorsBrazilStephen Shaw NEGOTIATION
Faith I SchemmerItalyAmy Elsner QUALIFIED
Jeanfrancois F FigeroaIndiaAsiya Javayant QUALIFIED
Kadeem M FlosiUnited KingdomAsiya Javayant UNQUALIFIED
Julie K VocelkaJapanXuxue Feng RENEWAL
Jeanfrancois A IturbideGermanyAmy Elsner QUALIFIED
Silvio Z VocelkaIndiaOnyama Limba RENEWAL
Francesco L WhobreySpainAnna Fali UNQUALIFIED
Juan Z CampainSpainAsiya Javayant PROPOSAL
Faith M CaldareraAustraliaXuxue Feng PROPOSAL
Ivar V WaycottJapanIoni Bowcher NEW
Morrow Y StensethIndiaIoni Bowcher QUALIFIED
Jefferson X MarrierJapanAnna Fali PROPOSAL
Leja Z AmigonAustraliaAmy Elsner QUALIFIED
Johnson F SlusarskiCanadaAnna Fali QUALIFIED
Ivar T TollnerCanadaAmy Elsner NEW
Ivar D BriddickFranceOnyama Limba UNQUALIFIED
Leon G GarufiSpainIvan Magalhaes NEW
Alejandro A DarakjyCanadaBernardo Dominic RENEWAL
Morrow F StockhamItalyOnyama Limba RENEWAL
Smith B ChuiItalyOnyama Limba NEW
Greenwood W TollnerCanadaBernardo Dominic QUALIFIED
Chavez X InouyeRussiaStephen Shaw NEW
Alejandro T FerenczCanadaAnna Fali NEGOTIATION
Sinclair P DoeCanadaIoni Bowcher NEGOTIATION
Alejandro N SchemmerFranceElwin Sharvill PROPOSAL
Deepesh Y StensethFranceAmy Elsner RENEWAL
Murillo Z KuskoAustraliaElwin Sharvill PROPOSAL
Maria J AmigonArgentinaAnna Fali UNQUALIFIED
Wickens F KuskoBrazilIoni Bowcher QUALIFIED
Leja F RimIndiaAsiya Javayant QUALIFIED

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