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
Ashley J StensethRussiaIvan Magalhaes PROPOSAL
Rodrigues J GillianArgentinaOnyama Limba RENEWAL
Rodrigues F GarufiUnited KingdomElwin Sharvill PROPOSAL
Nicolas L FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Aditya K RimAustraliaElwin Sharvill QUALIFIED
Misaki G SaylorsRussiaIoni Bowcher NEW
Octavia P KolmetzAustraliaAmy Elsner RENEWAL
Stacey G AmigonArgentinaAmy Elsner PROPOSAL
Greenwood G KolmetzFranceIoni Bowcher NEW
Clifford F WhobreyCanadaElwin Sharvill QUALIFIED
Leja Y CaudySpainStephen Shaw NEGOTIATION
Leon G MacleadCanadaBernardo Dominic RENEWAL
James G GarufiGermanyXuxue Feng NEGOTIATION
Mujtaba Z WhobreyRussiaAnna Fali QUALIFIED
Jeanfrancois R BriddickCanadaAnna Fali NEGOTIATION
Aditya Z MacleadItalyAnna Fali NEGOTIATION
Ashley Z WhobreySpainOnyama Limba NEGOTIATION
Maisha L ShinkoItalyAnna Fali QUALIFIED
Maisha P CampainBrazilOnyama Limba RENEWAL
Smith O IturbideFranceAnna Fali NEW
Jeanfrancois Y GauchoFranceXuxue Feng RENEWAL
Johnson S WieserBrazilStephen Shaw RENEWAL
Chavez X FlosiArgentinaAnna Fali RENEWAL
Sinclair A SchemmerSpainOnyama Limba NEW
Mayumi R OstroskyRussiaOnyama Limba PROPOSAL
Ashley Y AmigonRussiaAmy Elsner UNQUALIFIED
Munro M AmigonGermanyIvan Magalhaes PROPOSAL
Sinclair S RoysterIndiaBernardo Dominic PROPOSAL
Wickens I WhobreyBrazilElwin Sharvill RENEWAL
Claire K BologniaGermanyStephen Shaw NEW
Ivar Q SergiIndiaStephen Shaw NEW
Kadeem R MorascaBrazilStephen Shaw UNQUALIFIED
Aika O MacleadIndiaBernardo Dominic NEGOTIATION
Francesco N CampainGermanyBernardo Dominic QUALIFIED
Izzy T PerinSpainXuxue Feng NEGOTIATION
Claire P SergiIndiaIoni Bowcher RENEWAL
Murillo V FigeroaJapanStephen Shaw NEGOTIATION
Kaitlin S AlbaresRussiaIvan Magalhaes UNQUALIFIED
Chavez O DilliardCanadaIoni Bowcher PROPOSAL
Silvio J TollnerBrazilAmy Elsner NEW
Juan T StockhamArgentinaElwin Sharvill UNQUALIFIED
Izzy D DilliardUnited KingdomBernardo Dominic UNQUALIFIED
Aika M VenereAustraliaAnna Fali PROPOSAL
Faith L RoysterJapanIvan Magalhaes NEGOTIATION
Deepesh W PaprockiBrazilXuxue Feng QUALIFIED
Kaitlin Z RimBrazilAmy Elsner QUALIFIED
Mayumi S RutaSpainAnna Fali NEW
Salvatore Q FigeroaRussiaOnyama Limba NEGOTIATION
Ivar P MacleadAustraliaAmy Elsner QUALIFIED
Francesco D DarakjyIndiaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Wickens S StockhamRussiaStephen Shaw QUALIFIED
Nicolas I MaletGermanyAsiya Javayant QUALIFIED
Stacey N MacleadAustraliaAnna Fali NEW
Chavez W MaletRussiaBernardo Dominic QUALIFIED
Francesco X GauchoCanadaIvan Magalhaes NEW
Kaitlin Z PaprockiSpainElwin Sharvill NEGOTIATION
Mayumi C SchemmerAustraliaAnna Fali PROPOSAL
Francesco I CaudyArgentinaXuxue Feng PROPOSAL
Julie R SlusarskiItalyElwin Sharvill RENEWAL
Leja I SlusarskiArgentinaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams X RulapaughFrance2026-07-05Rousseaux, Michael Esq QUALIFIED55Bernardo Dominic
1001Jeanfrancois V WieserSpain2026-07-21King, Christopher A Esq NEW44Bernardo Dominic
1002Aika F OstroskyCanada2026-07-28Buckley Miller Wright UNQUALIFIED66Amy Elsner
1003Misaki R ChuiSpain2026-07-07Commercial Press NEW46Onyama Limba
1004Ivar P StockhamArgentina2026-07-14Buckley Miller Wright RENEWAL49Anna Fali
1005Izzy C WaycottGermany2026-07-03Truhlar And Truhlar Attys NEW47Xuxue Feng
1006Francesco Q TollnerArgentina2026-07-03Rousseaux, Michael Esq RENEWAL27Asiya Javayant
1007Mayumi C FigeroaCanada2026-07-01Commercial Press PROPOSAL20Elwin Sharvill
1008Tony H RoysterItaly2026-07-12Chapman, Ross E Esq PROPOSAL18Onyama Limba
1009Salvatore O MarrierArgentina2026-07-07Chanay, Jeffrey A Esq NEGOTIATION55Anna Fali
1010Maisha T ShinkoUnited Kingdom2026-07-13Chapman, Ross E Esq NEW43Xuxue Feng
1011David M GlickGermany2026-07-11Commercial Press PROPOSAL57Anna Fali
1012Adams W DilliardAustralia2026-07-13Printing Dimensions NEGOTIATION62Ioni Bowcher
1013Juan J VocelkaJapan2026-07-11Benton, John B Jr NEGOTIATION77Stephen Shaw
1014Alejandro Q IturbideUnited Kingdom2026-07-08Chanay, Jeffrey A Esq RENEWAL72Onyama Limba
1015Rodrigues W IturbideRussia2026-07-13Rangoni Of Florence NEW43Bernardo Dominic
1016Morrow U GillianJapan2026-07-13Printing Dimensions PROPOSAL98Asiya Javayant
1017Kaitlin S FlosiJapan2026-06-30Rangoni Of Florence QUALIFIED29Stephen Shaw
1018Rodrigues P WieserFrance2026-07-03Feltz Printing Service RENEWAL0Stephen Shaw
1019David J SlusarskiRussia2026-07-07Truhlar And Truhlar Attys NEW11Amy Elsner
1020Stacey O StensethSpain2026-07-08Truhlar And Truhlar Attys UNQUALIFIED74Bernardo Dominic
1021Chavez Q OldroydUnited Kingdom2026-07-16Commercial Press QUALIFIED55Amy Elsner
1022Salvatore W DarakjyGermany2026-07-23Benton, John B Jr UNQUALIFIED41Elwin Sharvill
1023Sinclair O StockhamBrazil2026-07-17Chemel, James L Cpa QUALIFIED49Asiya Javayant
1024Antonio K VocelkaGermany2026-07-24King, Christopher A Esq UNQUALIFIED68Elwin Sharvill
1025Jones H GillianJapan2026-07-19Rousseaux, Michael Esq PROPOSAL48Asiya Javayant
1026Cody E NickaGermany2026-07-23Rangoni Of Florence QUALIFIED87Elwin Sharvill
1027Costa R RimJapan2026-07-14Rousseaux, Michael Esq QUALIFIED36Asiya Javayant
1028Johnson C PaprockiBrazil2026-07-17Chapman, Ross E Esq QUALIFIED8Stephen Shaw
1029Izzy S BriddickRussia2026-07-27Printing Dimensions RENEWAL46Asiya Javayant
1030Emily S PerinRussia2026-06-30Feltz Printing Service NEGOTIATION26Onyama Limba
1031Sinclair J BowleyGermany2026-07-15Chapman, Ross E Esq NEW53Elwin Sharvill
1032Ashley H WaycottArgentina2026-07-17Printing Dimensions PROPOSAL93Anna Fali
1033Greenwood G FigeroaSpain2026-06-30Chapman, Ross E Esq QUALIFIED68Stephen Shaw
1034Mujtaba J PoquetteFrance2026-06-30Chapman, Ross E Esq PROPOSAL80Amy Elsner
1035Johnson C GarufiArgentina2026-07-18Rangoni Of Florence UNQUALIFIED88Xuxue Feng
1036Claire N CaldareraUnited Kingdom2026-07-25Truhlar And Truhlar Attys RENEWAL61Stephen Shaw
1037Munro Z SergiUnited Kingdom2026-07-27Chapman, Ross E Esq NEW29Ioni Bowcher
1038Isabel T VenereSpain2026-06-30Feiner Bros QUALIFIED62Onyama Limba
1039Ivar Y VocelkaCanada2026-07-21Chanay, Jeffrey A Esq RENEWAL44Bernardo Dominic
1040Maisha R MorascaItaly2026-07-10Dorl, James J Esq NEW94Ioni Bowcher
1041Munro I SlusarskiGermany2026-07-14Printing Dimensions RENEWAL83Elwin Sharvill
1042Chavez Y MorascaRussia2026-07-05Chemel, James L Cpa UNQUALIFIED98Bernardo Dominic
1043Jennifer Y DarakjyGermany2026-07-08Commercial Press UNQUALIFIED52Amy Elsner
1044Leon R MarrierIndia2026-07-23Commercial Press UNQUALIFIED70Anna Fali
1045Misaki A AlbaresUnited Kingdom2026-07-13Feltz Printing Service UNQUALIFIED8Ivan Magalhaes
1046Cody Z RulapaughCanada2026-07-03Buckley Miller Wright PROPOSAL87Amy Elsner
1047Jennifer S RoysterIndia2026-07-23Commercial Press RENEWAL59Bernardo Dominic
1048Nicolas N RulapaughUnited Kingdom2026-07-14Feltz Printing Service NEGOTIATION67Bernardo Dominic
1049Isabel U ChuiJapan2026-07-17Benton, John B Jr NEW70Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Silvio A AlbaresSpainElwin Sharvill NEW
Tony G WieserArgentinaIvan Magalhaes PROPOSAL
Jefferson K OldroydRussiaElwin Sharvill UNQUALIFIED
Claire I NestleFranceIvan Magalhaes RENEWAL
Morrow V DarakjyItalyIvan Magalhaes NEGOTIATION
Deepesh N SlusarskiUnited KingdomXuxue Feng RENEWAL
Faith R AlbaresIndiaBernardo Dominic QUALIFIED
Julie U MaletGermanyIvan Magalhaes NEW
Deepesh O WhobreySpainIoni Bowcher NEW
Aika W PoquetteIndiaOnyama Limba PROPOSAL
Ashley D OstroskyIndiaAmy Elsner NEGOTIATION
Arvin R TollnerAustraliaIvan Magalhaes PROPOSAL
Octavia W OstroskyCanadaAsiya Javayant QUALIFIED
Leon T StockhamBrazilElwin Sharvill NEW
James P WhobreyIndiaOnyama Limba QUALIFIED
Misaki M PaprockiFranceAmy Elsner UNQUALIFIED
Arvin O PerinSpainElwin Sharvill QUALIFIED
Johnson Y MarrierIndiaAnna Fali RENEWAL
Mayumi O ChuiUnited KingdomElwin Sharvill RENEWAL
Isabel Q SaylorsItalyIoni Bowcher QUALIFIED
Johnson N VocelkaRussiaIoni Bowcher NEW
Darci F FigeroaIndiaStephen Shaw RENEWAL
Faith G StockhamBrazilOnyama Limba NEGOTIATION
Alejandro X KuskoItalyStephen Shaw NEW
Aika Z GarufiItalyElwin Sharvill QUALIFIED
Costa B VenereGermanyIvan Magalhaes PROPOSAL
Wickens U AmigonItalyAsiya Javayant PROPOSAL
Nicolas N StensethRussiaElwin Sharvill NEW
Misaki F OldroydGermanyIvan Magalhaes PROPOSAL
Leja B CaudyFranceAnna Fali UNQUALIFIED
Smith E DoeGermanyAsiya Javayant NEGOTIATION
Aika C ButtSpainXuxue Feng QUALIFIED
Aika D DoeFranceBernardo Dominic NEW
Costa S DilliardRussiaIoni Bowcher NEW
Leja G PerinCanadaAsiya Javayant QUALIFIED
Juan J BowleyIndiaAmy Elsner NEGOTIATION
Salvatore L NestleBrazilOnyama Limba QUALIFIED
Jones P WhobreyUnited KingdomIoni Bowcher RENEWAL
Ricardo U FlosiUnited KingdomStephen Shaw NEW
Sinclair F OstroskyArgentinaElwin Sharvill PROPOSAL
Aika P GauchoAustraliaAsiya Javayant UNQUALIFIED
Maisha O PerinUnited KingdomElwin Sharvill RENEWAL
David R SaylorsItalyIvan Magalhaes QUALIFIED
Cody Y OstroskyArgentinaAsiya Javayant QUALIFIED
Maria J StensethItalyOnyama Limba RENEWAL
Rodrigues G CampainAustraliaIvan Magalhaes RENEWAL
Clifford G AlbaresFranceAmy Elsner NEW
David M GauchoCanadaAsiya Javayant UNQUALIFIED
Stacey Y AmigonCanadaElwin Sharvill QUALIFIED
Antonio R FigeroaSpainBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Stacey R Caudy
Sinclair V Gillian
Arvin F Dilliard
Jeanfrancois G Briddick
Tony C Ruta
Aditya X Oldroyd
Chavez S Maclead
Ashley I Kusko
Darci K Briddick
Leon Y Oldroyd
Salvatore B Garufi
Jefferson F Rulapaugh
Greenwood E Briddick
Jefferson H Ferencz
Clifford Y Butt
Clifford C Waycott
Kaitlin U Albares
Leon X Dilliard
Tony O Glick
Adams C Stenseth
Greenwood V Paprocki
Salvatore H Caldarera
Ashley N Garufi
Mayumi Z Marrier
Alejandro T Bolognia
Silvio V Whobrey
Leja I Royster
Chavez K Poquette
Kadeem X Nicka
Nicolas B Sergi
Faith X Albares
Jefferson F Royster
Faith N Campain
Izzy N Nestle
Isabel S Oldroyd
Kaitlin N Kolmetz
Leon W Dilliard
Deepesh H Rim
Alejandro B Royster
Silvio P Nestle
Morrow M Waycott
Izzy C Poquette
Jeanfrancois R Glick
Ashley H Flosi
Misaki J Vocelka
Maria O Schemmer
Johnson C Darakjy
Cody F Marrier
Isabel P Shinko
Jefferson X Butt
IdCountryDate
1000Italy2026-07-22
1001Russia2026-07-11
1002Australia2026-07-18
1003Canada2026-07-16
1004Australia2026-07-20
1005Canada2026-07-22
1006Argentina2026-07-14
1007United Kingdom2026-07-20
1008Australia2026-07-01
1009Brazil2026-07-04
1010Russia2026-07-20
1011India2026-07-22
1012Japan2026-06-29
1013Russia2026-07-25
1014Japan2026-07-11
1015Germany2026-06-30
1016Brazil2026-07-03
1017Argentina2026-07-23
1018Argentina2026-07-26
1019France2026-07-03
1020France2026-07-21
1021India2026-07-07
1022Italy2026-07-02
1023Germany2026-07-24
1024Germany2026-07-09
1025Russia2026-07-25
1026Spain2026-07-11
1027Japan2026-07-14
1028India2026-07-28
1029Brazil2026-07-05
1030Spain2026-07-02
1031Australia2026-07-27
1032Germany2026-07-01
1033Canada2026-07-27
1034Brazil2026-07-03
1035United Kingdom2026-07-15
1036France2026-07-13
1037France2026-07-11
1038United Kingdom2026-07-27
1039Russia2026-07-27
1040Russia2026-07-03
1041Brazil2026-07-20
1042France2026-07-03
1043Australia2026-06-30
1044Russia2026-07-05
1045Italy2026-07-02
1046Russia2026-07-08
1047Germany2026-07-14
1048Brazil2026-07-28
1049India2026-07-13

On-Demand Data

NameIdCountryDate
Sinclair B Bolognia1000Australia2026-07-10
Deepesh X Gillian1001Argentina2026-07-14
Tony C Waycott1002Japan2026-07-08
Ivar B Campain1003Australia2026-07-20
Rodrigues G Stockham1004Russia2026-07-14
Octavia G Waycott1005Spain2026-07-09
Aruna X Chui1006Australia2026-06-29
Maria Q Campain1007Australia2026-07-28
Faith A Bowley1008Russia2026-06-29
Emily I Ferencz1009Canada2026-07-07
Jones J Chui1010Canada2026-07-13
Nicolas H Caldarera1011Germany2026-07-25
Misaki V Slusarski1012India2026-07-23
Ivar B Paprocki1013Japan2026-07-15
Francesco C Gaucho1014Brazil2026-07-12
Ashley P Iturbide1015Brazil2026-07-08
Silvio F Gaucho1016Germany2026-07-03
Faith T Figeroa1017France2026-07-08
Ashley Z Perin1018Germany2026-07-11
Jefferson Q Darakjy1019United Kingdom2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan Y RulapaughAustraliaIoni Bowcher NEGOTIATION
Izzy E RimAustraliaAsiya Javayant UNQUALIFIED
Leja A SchemmerJapanXuxue Feng PROPOSAL
Claire S OstroskyJapanAnna Fali UNQUALIFIED
Chavez A GlickItalyElwin Sharvill QUALIFIED
Jones O PoquetteArgentinaIvan Magalhaes PROPOSAL
Emily Y FlosiGermanyIvan Magalhaes NEGOTIATION
Julie D OldroydFranceAsiya Javayant NEW
Sinclair G KolmetzCanadaIvan Magalhaes PROPOSAL
Murillo F BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Arvin M ShinkoAustraliaAmy Elsner NEGOTIATION
Sinclair E SlusarskiJapanOnyama Limba NEGOTIATION
Costa I FollerUnited KingdomElwin Sharvill UNQUALIFIED
Adams X GlickSpainElwin Sharvill QUALIFIED
Arvin Y BriddickItalyBernardo Dominic RENEWAL
Claire Z FigeroaSpainElwin Sharvill RENEWAL
Antonio Z FerenczUnited KingdomAnna Fali RENEWAL
Julie M PoquetteItalyAmy Elsner PROPOSAL
Isabel K RulapaughUnited KingdomStephen Shaw NEW
Munro V DoeArgentinaIvan Magalhaes NEW
Kadeem O SlusarskiArgentinaStephen Shaw NEGOTIATION
Jones N DarakjyFranceAsiya Javayant NEGOTIATION
Arvin N DarakjySpainOnyama Limba PROPOSAL
Aditya J SlusarskiGermanyBernardo Dominic UNQUALIFIED
James X GillianSpainIvan Magalhaes NEGOTIATION
Clifford I RoysterSpainAmy Elsner QUALIFIED
Johnson D GillianItalyBernardo Dominic NEGOTIATION
Antonio G ButtArgentinaAnna Fali QUALIFIED
Costa K MaletCanadaBernardo Dominic QUALIFIED
Julie H VocelkaSpainIvan Magalhaes NEW
Stacey U SchemmerSpainAsiya Javayant RENEWAL
Octavia N SlusarskiGermanyAsiya Javayant PROPOSAL
Misaki Y FollerRussiaAnna Fali QUALIFIED
Deepesh L WaycottUnited KingdomOnyama Limba QUALIFIED
Smith Q CaudyAustraliaOnyama Limba NEGOTIATION
Sinclair A GlickIndiaElwin Sharvill PROPOSAL
Wickens P WhobreySpainBernardo Dominic NEGOTIATION
Octavia B SergiCanadaElwin Sharvill UNQUALIFIED
Jennifer B BriddickFranceOnyama Limba NEW
Francesco R DoeIndiaElwin Sharvill NEGOTIATION

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