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
Morrow I SchemmerGermanyOnyama Limba NEW
Alejandro S VocelkaIndiaXuxue Feng NEGOTIATION
Wickens M ShinkoBrazilOnyama Limba UNQUALIFIED
Jennifer Q TollnerAustraliaXuxue Feng QUALIFIED
Mayumi H FigeroaIndiaXuxue Feng NEW
Jefferson I VocelkaCanadaOnyama Limba NEW
Juan J MaletBrazilAsiya Javayant QUALIFIED
Mujtaba Y AmigonItalyAsiya Javayant UNQUALIFIED
Greenwood J ChuiArgentinaBernardo Dominic UNQUALIFIED
Alejandro P BowleyFranceBernardo Dominic QUALIFIED
Jennifer A InouyeArgentinaAnna Fali RENEWAL
Mujtaba X NestleIndiaAmy Elsner PROPOSAL
Tony I NickaBrazilAmy Elsner PROPOSAL
Kaitlin A TollnerCanadaBernardo Dominic RENEWAL
Kadeem W FigeroaArgentinaIvan Magalhaes NEW
Misaki K DarakjyRussiaBernardo Dominic UNQUALIFIED
Jefferson R KolmetzItalyXuxue Feng PROPOSAL
Stacey D WieserItalyAmy Elsner RENEWAL
Julie Q MaletArgentinaAmy Elsner NEGOTIATION
Leon A SlusarskiUnited KingdomAnna Fali UNQUALIFIED
Costa T InouyeIndiaAsiya Javayant PROPOSAL
Cody R MaletIndiaIoni Bowcher PROPOSAL
James Z OldroydGermanyIoni Bowcher NEGOTIATION
Jeanfrancois Z VocelkaBrazilAmy Elsner RENEWAL
Morrow Z CampainItalyStephen Shaw NEGOTIATION
Francesco Z AlbaresAustraliaOnyama Limba QUALIFIED
Octavia L CampainItalyAnna Fali NEGOTIATION
Leon M InouyeIndiaBernardo Dominic QUALIFIED
Isabel Z IturbideCanadaElwin Sharvill QUALIFIED
Nicolas J StockhamRussiaBernardo Dominic RENEWAL
Darci U MaletAustraliaIoni Bowcher UNQUALIFIED
Emily C ShinkoFranceIoni Bowcher UNQUALIFIED
Alejandro U GillianBrazilAnna Fali NEGOTIATION
Emily B SlusarskiAustraliaElwin Sharvill QUALIFIED
Nicolas K WieserSpainElwin Sharvill UNQUALIFIED
Morrow T RoysterCanadaIoni Bowcher NEW
Darci A KuskoCanadaIoni Bowcher QUALIFIED
Jennifer Z KolmetzRussiaAmy Elsner PROPOSAL
Leja C InouyeArgentinaElwin Sharvill NEW
Silvio G FollerItalyStephen Shaw NEW
Julie D RutaFranceElwin Sharvill NEGOTIATION
Maria Y VenereCanadaBernardo Dominic RENEWAL
Salvatore J CaldareraArgentinaElwin Sharvill NEW
Claire E NestleAustraliaIoni Bowcher NEGOTIATION
Emily Y CampainJapanXuxue Feng UNQUALIFIED
Alejandro P NickaGermanyXuxue Feng RENEWAL
Julie K SlusarskiJapanIoni Bowcher RENEWAL
Salvatore O RulapaughSpainOnyama Limba UNQUALIFIED
Deepesh Q GlickJapanStephen Shaw NEW
Maria J TollnerRussiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith J RoysterAustraliaIvan Magalhaes RENEWAL
Jeanfrancois H GlickUnited KingdomIvan Magalhaes QUALIFIED
Jones L StensethIndiaIoni Bowcher RENEWAL
Darci V RulapaughItalyElwin Sharvill NEGOTIATION
Mujtaba H RutaArgentinaAmy Elsner NEW
Leon A MaletCanadaAmy Elsner UNQUALIFIED
Isabel A PerinRussiaElwin Sharvill PROPOSAL
Mujtaba E PoquetteAustraliaElwin Sharvill PROPOSAL
Isabel V NestleAustraliaIvan Magalhaes QUALIFIED
Adams U GauchoJapanXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer W RutaUnited Kingdom2024-06-03Commercial Press QUALIFIED72Xuxue Feng
1001Adams T PoquetteJapan2024-06-04Benton, John B Jr NEW39Anna Fali
1002Jones Z MacleadRussia2024-06-18Rangoni Of Florence UNQUALIFIED68Elwin Sharvill
1003Murillo D AlbaresRussia2024-06-23Rangoni Of Florence RENEWAL65Onyama Limba
1004Rodrigues P CaldareraSpain2024-05-28Chemel, James L Cpa NEGOTIATION33Bernardo Dominic
1005Greenwood K BriddickGermany2024-05-25Buckley Miller Wright PROPOSAL95Stephen Shaw
1006Cody C FollerJapan2024-06-06Feltz Printing Service NEGOTIATION37Asiya Javayant
1007James J NestleGermany2024-05-26Chanay, Jeffrey A Esq UNQUALIFIED5Anna Fali
1008Stacey E FerenczAustralia2024-05-26Printing Dimensions UNQUALIFIED6Elwin Sharvill
1009Morrow X PaprockiFrance2024-06-02Chapman, Ross E Esq NEGOTIATION21Amy Elsner
1010Rodrigues R PerinArgentina2024-05-28Morlong Associates PROPOSAL35Ioni Bowcher
1011Alejandro M GlickRussia2024-06-07Commercial Press QUALIFIED70Stephen Shaw
1012Alejandro A MaletGermany2024-05-27Truhlar And Truhlar Attys NEW2Amy Elsner
1013Aika U PoquetteCanada2024-05-26Printing Dimensions NEW57Asiya Javayant
1014Sinclair B FigeroaIndia2024-06-15Chemel, James L Cpa NEGOTIATION54Onyama Limba
1015Julie A SlusarskiCanada2024-06-07Chanay, Jeffrey A Esq NEW16Asiya Javayant
1016Alejandro I BologniaAustralia2024-06-13Chapman, Ross E Esq NEW14Anna Fali
1017Darci C PaprockiJapan2024-05-27Benton, John B Jr UNQUALIFIED29Onyama Limba
1018Misaki Z BriddickGermany2024-05-26Chemel, James L Cpa NEGOTIATION52Asiya Javayant
1019Faith Y IturbideUnited Kingdom2024-06-12Printing Dimensions UNQUALIFIED6Amy Elsner
1020Jeanfrancois I ShinkoGermany2024-06-01Buckley Miller Wright PROPOSAL79Amy Elsner
1021Jones G RoysterCanada2024-06-14Truhlar And Truhlar Attys NEW44Anna Fali
1022Smith D KolmetzCanada2024-06-17Rousseaux, Michael Esq QUALIFIED69Stephen Shaw
1023Munro Z AlbaresCanada2024-06-14Morlong Associates NEW35Amy Elsner
1024Juan W CampainRussia2024-06-11Buckley Miller Wright PROPOSAL2Stephen Shaw
1025Murillo Z GauchoUnited Kingdom2024-05-31Buckley Miller Wright UNQUALIFIED5Bernardo Dominic
1026Johnson Q MarrierGermany2024-06-08Rangoni Of Florence PROPOSAL24Stephen Shaw
1027Emily S MarrierAustralia2024-06-09Chemel, James L Cpa RENEWAL12Stephen Shaw
1028Jennifer M WhobreySpain2024-06-09Chanay, Jeffrey A Esq QUALIFIED98Ioni Bowcher
1029Johnson S BologniaGermany2024-05-27Feiner Bros UNQUALIFIED39Xuxue Feng
1030Antonio F AmigonGermany2024-06-13Truhlar And Truhlar Attys PROPOSAL32Bernardo Dominic
1031Misaki V FlosiIndia2024-06-06Rangoni Of Florence PROPOSAL54Ioni Bowcher
1032Kadeem J ShinkoItaly2024-06-06Commercial Press NEW82Bernardo Dominic
1033Kaitlin E GlickArgentina2024-06-09Chemel, James L Cpa QUALIFIED17Anna Fali
1034Maisha I FlosiIndia2024-06-01Chemel, James L Cpa NEGOTIATION62Amy Elsner
1035Greenwood G GlickGermany2024-06-19Benton, John B Jr PROPOSAL15Ivan Magalhaes
1036Alejandro G StockhamCanada2024-06-21Rangoni Of Florence QUALIFIED96Anna Fali
1037David N FlosiSpain2024-06-18Chapman, Ross E Esq UNQUALIFIED90Stephen Shaw
1038Darci C OstroskyAustralia2024-05-25Buckley Miller Wright UNQUALIFIED83Onyama Limba
1039Munro L NestleIndia2024-06-07King, Christopher A Esq NEW7Anna Fali
1040Jefferson J SaylorsUnited Kingdom2024-05-28Feiner Bros UNQUALIFIED98Ioni Bowcher
1041Jennifer D VocelkaCanada2024-06-14Printing Dimensions RENEWAL33Onyama Limba
1042Jones J RoysterItaly2024-05-29Rangoni Of Florence NEW63Anna Fali
1043Ricardo N PoquetteGermany2024-06-04Chemel, James L Cpa NEGOTIATION79Bernardo Dominic
1044Izzy A MaletAustralia2024-05-28Chapman, Ross E Esq UNQUALIFIED83Asiya Javayant
1045Aika E CaldareraArgentina2024-06-01Benton, John B Jr QUALIFIED14Onyama Limba
1046Kadeem T GarufiAustralia2024-06-04Truhlar And Truhlar Attys NEGOTIATION44Bernardo Dominic
1047Murillo Y OldroydCanada2024-05-26Chanay, Jeffrey A Esq RENEWAL23Xuxue Feng
1048Ivar F RimGermany2024-06-03Dorl, James J Esq QUALIFIED56Bernardo Dominic
1049Claire P FerenczIndia2024-06-08Dorl, James J Esq PROPOSAL47Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Julie G FigeroaCanadaXuxue Feng NEGOTIATION
Isabel J CaudyAustraliaStephen Shaw RENEWAL
Mayumi J KuskoCanadaBernardo Dominic PROPOSAL
Misaki L RutaIndiaAsiya Javayant QUALIFIED
Cody W IturbideGermanyAmy Elsner NEW
Greenwood H MacleadBrazilAmy Elsner UNQUALIFIED
Ivar C OldroydSpainBernardo Dominic PROPOSAL
Munro A BowleyArgentinaXuxue Feng NEGOTIATION
Izzy P GlickBrazilAnna Fali PROPOSAL
Mujtaba A BowleyFranceIvan Magalhaes QUALIFIED
Jones N RutaJapanIoni Bowcher UNQUALIFIED
Sinclair Q IturbideBrazilAsiya Javayant QUALIFIED
Tony B ButtIndiaIvan Magalhaes PROPOSAL
Salvatore I BologniaAustraliaElwin Sharvill NEGOTIATION
Johnson B VenereJapanIvan Magalhaes RENEWAL
Salvatore Q OstroskyArgentinaStephen Shaw PROPOSAL
Johnson V MarrierIndiaAnna Fali NEGOTIATION
Morrow E GillianGermanyIvan Magalhaes RENEWAL
Aditya S MarrierIndiaOnyama Limba UNQUALIFIED
Alejandro T DoeJapanIoni Bowcher RENEWAL
Smith K CaldareraAustraliaAnna Fali NEW
Adams R CaldareraAustraliaAsiya Javayant NEGOTIATION
Cody I PaprockiArgentinaAsiya Javayant NEW
Maria H BologniaRussiaAsiya Javayant QUALIFIED
Deepesh D NestleCanadaStephen Shaw UNQUALIFIED
Ricardo K VenereUnited KingdomAmy Elsner QUALIFIED
Jefferson F RimJapanAnna Fali NEW
Mujtaba K TollnerArgentinaIvan Magalhaes PROPOSAL
Salvatore S IturbideRussiaOnyama Limba QUALIFIED
Maisha U MaletRussiaIvan Magalhaes RENEWAL
Aditya T PerinJapanIvan Magalhaes UNQUALIFIED
Francesco J WhobreyGermanyStephen Shaw RENEWAL
Smith B FollerAustraliaXuxue Feng QUALIFIED
Ivar Z StockhamArgentinaOnyama Limba NEW
Mayumi P MacleadCanadaOnyama Limba RENEWAL
Clifford Q CaldareraIndiaIoni Bowcher QUALIFIED
Chavez Q WhobreyUnited KingdomIoni Bowcher RENEWAL
Alejandro K SchemmerUnited KingdomElwin Sharvill NEGOTIATION
Misaki X CaudyFranceAsiya Javayant QUALIFIED
Arvin V MaletArgentinaIoni Bowcher RENEWAL
Wickens K ButtItalyStephen Shaw PROPOSAL
Faith A BologniaArgentinaElwin Sharvill QUALIFIED
Leja J SergiFranceElwin Sharvill PROPOSAL
Izzy C DoeAustraliaAmy Elsner UNQUALIFIED
Costa Z OldroydGermanyElwin Sharvill UNQUALIFIED
Chavez R IturbideRussiaXuxue Feng NEW
Chavez J BowleyFranceStephen Shaw UNQUALIFIED
James V BriddickRussiaIvan Magalhaes QUALIFIED
Salvatore H GauchoBrazilStephen Shaw NEGOTIATION
Jeanfrancois D MacleadFranceBernardo Dominic NEW
Frozen Columns
Name
Sinclair Q Amigon
Maria H Perin
Wickens B Kusko
Mayumi Z Ferencz
Kadeem M Tollner
Maria K Campain
Maisha K Dilliard
Nicolas B Kolmetz
James C Slusarski
Mayumi O Nicka
Morrow A Bolognia
Salvatore T Ostrosky
Aruna W Morasca
Cody M Dilliard
Greenwood R Royster
Clifford H Gillian
Ashley A Albares
Rodrigues A Vocelka
Leon D Caudy
Claire I Gillian
Smith B Stockham
Cody E Ferencz
Wickens T Stenseth
Francesco T Ferencz
Jones E Schemmer
Salvatore Q Oldroyd
Kaitlin J Schemmer
Kaitlin X Rim
Chavez A Doe
Stacey X Doe
Sinclair E Kusko
David J Kolmetz
Arvin W Flosi
Chavez Q Ostrosky
Darci U Ruta
Izzy T Wieser
Wickens G Ruta
Julie W Perin
Isabel Q Saylors
Chavez P Flosi
Emily Z Doe
Aditya V Briddick
Darci K Whobrey
Maria O Nestle
Nicolas L Ferencz
Faith O Royster
Claire F Malet
Izzy L Stockham
Rodrigues P Schemmer
James V Iturbide
IdCountryDate
1000India2024-06-16
1001Russia2024-06-18
1002Brazil2024-05-31
1003Canada2024-05-31
1004France2024-06-20
1005Canada2024-05-30
1006Spain2024-06-02
1007Brazil2024-06-16
1008Japan2024-06-05
1009Australia2024-06-10
1010Spain2024-05-27
1011Germany2024-06-21
1012Argentina2024-06-01
1013Germany2024-06-22
1014Canada2024-06-14
1015Russia2024-06-18
1016United Kingdom2024-05-31
1017France2024-06-02
1018France2024-06-13
1019Canada2024-05-26
1020Germany2024-06-06
1021Brazil2024-05-28
1022Canada2024-06-11
1023Russia2024-06-03
1024Brazil2024-06-04
1025Russia2024-06-09
1026Australia2024-06-01
1027Germany2024-05-28
1028Japan2024-06-08
1029Canada2024-06-09
1030Canada2024-05-26
1031Spain2024-06-06
1032United Kingdom2024-06-09
1033France2024-05-28
1034Germany2024-05-27
1035Spain2024-06-21
1036Spain2024-06-04
1037Spain2024-05-31
1038Italy2024-06-23
1039Spain2024-06-01
1040Spain2024-06-04
1041Germany2024-06-18
1042Canada2024-06-07
1043Argentina2024-06-21
1044Italy2024-06-14
1045Argentina2024-06-13
1046Germany2024-06-12
1047Argentina2024-06-20
1048India2024-06-04
1049Argentina2024-06-08

On-Demand Data

NameIdCountryDate
Smith I Nestle1000Brazil2024-06-10
Leja Q Flosi1001United Kingdom2024-06-14
Murillo F Paprocki1002Spain2024-05-26
Darci Q Inouye1003Australia2024-06-13
David L Butt1004Canada2024-05-26
Izzy N Caudy1005Italy2024-05-26
Munro T Gaucho1006Argentina2024-06-20
Costa J Chui1007Russia2024-06-11
Julie G Amigon1008Spain2024-06-22
Aditya U Sergi1009United Kingdom2024-06-09
Isabel C Marrier1010Japan2024-06-03
Leja J Shinko1011Canada2024-06-07
Greenwood U Kolmetz1012Russia2024-06-21
Aditya W Sergi1013Russia2024-06-11
Tony M Shinko1014Australia2024-06-01
Rodrigues P Shinko1015Russia2024-06-21
Murillo I Wieser1016Russia2024-05-25
Aruna X Rulapaugh1017India2024-06-23
Aruna S Figeroa1018Argentina2024-06-15
Chavez J Slusarski1019India2024-06-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David S DoeSpainBernardo Dominic NEGOTIATION
Maria P CaldareraGermanyAsiya Javayant PROPOSAL
Costa N BriddickRussiaAnna Fali QUALIFIED
Faith V CampainFranceIvan Magalhaes RENEWAL
Deepesh S WieserCanadaAsiya Javayant NEW
Francesco D FlosiBrazilAsiya Javayant QUALIFIED
Leon T ShinkoCanadaElwin Sharvill PROPOSAL
Morrow M SchemmerJapanStephen Shaw RENEWAL
David X CampainRussiaAsiya Javayant NEGOTIATION
Aruna F CaldareraRussiaBernardo Dominic UNQUALIFIED
James K GlickSpainIoni Bowcher QUALIFIED
Munro A SchemmerBrazilAsiya Javayant RENEWAL
Maria C RimUnited KingdomOnyama Limba NEW
James T VenereCanadaOnyama Limba QUALIFIED
Misaki X RulapaughCanadaElwin Sharvill PROPOSAL
Misaki Q DoeSpainIvan Magalhaes NEW
Jones M CaldareraUnited KingdomIvan Magalhaes QUALIFIED
David C SaylorsArgentinaAsiya Javayant RENEWAL
Isabel Q OstroskyJapanAmy Elsner UNQUALIFIED
Juan E InouyeUnited KingdomAmy Elsner UNQUALIFIED
Aika I ShinkoUnited KingdomIoni Bowcher RENEWAL
Mayumi I CampainGermanyAsiya Javayant NEGOTIATION
Kaitlin Y OldroydFranceStephen Shaw UNQUALIFIED
Aruna P SaylorsGermanyStephen Shaw QUALIFIED
Jennifer X TollnerSpainIvan Magalhaes QUALIFIED
James Z MorascaArgentinaStephen Shaw PROPOSAL
Darci T OldroydFranceAsiya Javayant QUALIFIED
Juan J TollnerAustraliaAsiya Javayant UNQUALIFIED
Jones W FigeroaArgentinaOnyama Limba RENEWAL
Aruna C PaprockiJapanAmy Elsner UNQUALIFIED
Jennifer A RutaUnited KingdomAmy Elsner QUALIFIED
Arvin S FollerUnited KingdomElwin Sharvill PROPOSAL
James S MarrierRussiaAmy Elsner NEGOTIATION
Jefferson Y WhobreyIndiaAnna Fali NEGOTIATION
Emily P ChuiArgentinaStephen Shaw QUALIFIED
Morrow J DilliardJapanElwin Sharvill QUALIFIED
Faith A KolmetzGermanyIoni Bowcher RENEWAL
Leon W MorascaArgentinaAmy Elsner NEW
Silvio K SaylorsCanadaAsiya Javayant NEW
Leon C SchemmerJapanXuxue Feng 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>