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
Misaki D SlusarskiArgentinaAnna Fali UNQUALIFIED
Cody B StensethJapanBernardo Dominic RENEWAL
Smith W PerinFranceIvan Magalhaes QUALIFIED
Mujtaba Q GlickItalyIvan Magalhaes QUALIFIED
Aditya K WaycottBrazilAnna Fali NEGOTIATION
Mujtaba P NickaIndiaOnyama Limba PROPOSAL
Chavez C RulapaughJapanAmy Elsner RENEWAL
Kaitlin J VocelkaUnited KingdomIoni Bowcher UNQUALIFIED
Clifford F VocelkaJapanStephen Shaw NEGOTIATION
Jeanfrancois U DoeBrazilAmy Elsner QUALIFIED
Faith M PoquetteSpainAnna Fali UNQUALIFIED
Juan F VocelkaBrazilXuxue Feng QUALIFIED
Faith T AlbaresJapanAmy Elsner RENEWAL
Nicolas M AlbaresAustraliaOnyama Limba UNQUALIFIED
Ivar T FigeroaIndiaAsiya Javayant NEW
Ivar I GlickIndiaOnyama Limba PROPOSAL
Jones U ButtIndiaIvan Magalhaes RENEWAL
Aruna Z MaletBrazilIvan Magalhaes QUALIFIED
Chavez H InouyeItalyXuxue Feng NEW
Jefferson U VocelkaGermanyAmy Elsner UNQUALIFIED
Jennifer B MaletAustraliaAmy Elsner QUALIFIED
Morrow J VocelkaSpainOnyama Limba PROPOSAL
Aika Q WhobreyFranceXuxue Feng UNQUALIFIED
Clifford J ChuiFranceAnna Fali NEGOTIATION
Tony N FerenczBrazilAmy Elsner RENEWAL
Sinclair D DarakjyBrazilXuxue Feng UNQUALIFIED
Alejandro V StockhamCanadaIvan Magalhaes NEW
Tony G ButtFranceAsiya Javayant RENEWAL
Mujtaba D WhobreyJapanXuxue Feng PROPOSAL
Jennifer M StensethBrazilStephen Shaw QUALIFIED
Cody T FigeroaArgentinaOnyama Limba RENEWAL
Sinclair H CaudyBrazilOnyama Limba RENEWAL
Juan J MorascaJapanStephen Shaw UNQUALIFIED
Maria Y GauchoItalyBernardo Dominic QUALIFIED
Aruna Q GarufiFranceXuxue Feng NEW
Clifford T VenereAustraliaIvan Magalhaes UNQUALIFIED
James V WhobreyCanadaIvan Magalhaes UNQUALIFIED
Maria Y PoquetteIndiaOnyama Limba NEGOTIATION
Tony H VocelkaFranceElwin Sharvill NEGOTIATION
Aika Y NestleRussiaIvan Magalhaes NEGOTIATION
Mujtaba G FlosiItalyIvan Magalhaes RENEWAL
Ivar R RimAustraliaIvan Magalhaes QUALIFIED
Kaitlin I PoquetteUnited KingdomBernardo Dominic PROPOSAL
Misaki A TollnerCanadaAmy Elsner UNQUALIFIED
Deepesh A MarrierUnited KingdomXuxue Feng NEW
Kaitlin R VenereBrazilIoni Bowcher RENEWAL
Deepesh L MacleadItalyStephen Shaw QUALIFIED
Nicolas P AmigonItalyAsiya Javayant NEW
Johnson B SlusarskiItalyAsiya Javayant RENEWAL
Arvin Y BologniaArgentinaBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Sinclair A VocelkaAustraliaXuxue Feng NEGOTIATION
Deepesh M SlusarskiFranceElwin Sharvill NEGOTIATION
Alejandro F SchemmerFranceStephen Shaw NEGOTIATION
Kadeem S RoysterFranceElwin Sharvill PROPOSAL
Leon R DoeItalyElwin Sharvill PROPOSAL
Salvatore R GauchoItalyXuxue Feng NEW
Tony C RoysterUnited KingdomIoni Bowcher QUALIFIED
Costa Y CaudyRussiaAsiya Javayant UNQUALIFIED
James C RulapaughGermanyOnyama Limba QUALIFIED
Jefferson X FerenczUnited KingdomAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin I PoquetteItaly2026-08-15King, Christopher A Esq RENEWAL34Amy Elsner
1001Leon W MaletUnited Kingdom2026-08-18Truhlar And Truhlar Attys RENEWAL31Ivan Magalhaes
1002Ivar L RimGermany2026-08-21Commercial Press PROPOSAL23Bernardo Dominic
1003Leon P MaletArgentina2026-08-23Rangoni Of Florence UNQUALIFIED80Stephen Shaw
1004Maisha O OstroskySpain2026-08-11Chemel, James L Cpa NEW75Ivan Magalhaes
1005Sinclair N RulapaughSpain2026-08-11Benton, John B Jr RENEWAL84Ivan Magalhaes
1006Munro T WaycottIndia2026-07-25Chanay, Jeffrey A Esq NEW97Stephen Shaw
1007Emily N BologniaAustralia2026-08-14Truhlar And Truhlar Attys UNQUALIFIED99Stephen Shaw
1008Izzy A DoeArgentina2026-08-07Truhlar And Truhlar Attys NEGOTIATION30Anna Fali
1009Emily L MorascaAustralia2026-08-08Chapman, Ross E Esq UNQUALIFIED99Ioni Bowcher
1010Aika S StockhamArgentina2026-08-04Benton, John B Jr NEW51Onyama Limba
1011Juan D DoeRussia2026-08-02Feiner Bros UNQUALIFIED88Asiya Javayant
1012Darci B CaudyJapan2026-08-08King, Christopher A Esq PROPOSAL7Stephen Shaw
1013Rodrigues J WhobreyArgentina2026-08-14Benton, John B Jr QUALIFIED52Asiya Javayant
1014Jones N OstroskyUnited Kingdom2026-07-25Rangoni Of Florence RENEWAL75Ivan Magalhaes
1015Claire T OldroydJapan2026-08-23Rousseaux, Michael Esq PROPOSAL75Onyama Limba
1016Jennifer G DilliardSpain2026-07-31Printing Dimensions NEW69Ivan Magalhaes
1017Murillo O GarufiCanada2026-08-20Chanay, Jeffrey A Esq PROPOSAL38Ivan Magalhaes
1018Aika O PaprockiJapan2026-08-13Printing Dimensions PROPOSAL94Xuxue Feng
1019Leja J MorascaUnited Kingdom2026-08-23Rangoni Of Florence NEGOTIATION83Ioni Bowcher
1020Julie W MacleadRussia2026-08-16Chanay, Jeffrey A Esq NEW42Xuxue Feng
1021Tony Q VocelkaFrance2026-08-03Chapman, Ross E Esq UNQUALIFIED45Asiya Javayant
1022Isabel P GauchoGermany2026-07-27Truhlar And Truhlar Attys NEGOTIATION29Ivan Magalhaes
1023Aditya E BologniaBrazil2026-08-11Benton, John B Jr QUALIFIED82Asiya Javayant
1024Jefferson C RutaItaly2026-08-18Rousseaux, Michael Esq NEW36Onyama Limba
1025Rodrigues P CaudyArgentina2026-08-21Truhlar And Truhlar Attys NEGOTIATION35Xuxue Feng
1026Chavez E PerinGermany2026-08-05Rangoni Of Florence NEW89Elwin Sharvill
1027Ashley S RimUnited Kingdom2026-07-29Feltz Printing Service NEW30Stephen Shaw
1028Mujtaba I ChuiGermany2026-08-20Chemel, James L Cpa RENEWAL0Anna Fali
1029Misaki C OldroydFrance2026-08-03Rangoni Of Florence NEGOTIATION20Stephen Shaw
1030Mujtaba J MarrierItaly2026-08-16Commercial Press NEW50Asiya Javayant
1031Arvin F CaldareraJapan2026-08-21Chapman, Ross E Esq NEW43Ivan Magalhaes
1032Deepesh I WaycottBrazil2026-08-15Dorl, James J Esq PROPOSAL81Bernardo Dominic
1033Antonio G IturbideGermany2026-08-22Chemel, James L Cpa NEW74Amy Elsner
1034Faith B BologniaUnited Kingdom2026-08-09Feiner Bros UNQUALIFIED10Xuxue Feng
1035Nicolas P GarufiFrance2026-08-14Feiner Bros NEW39Xuxue Feng
1036Octavia N ChuiCanada2026-07-27Commercial Press NEGOTIATION89Asiya Javayant
1037Wickens H ButtFrance2026-08-02Dorl, James J Esq PROPOSAL91Elwin Sharvill
1038Smith O RulapaughItaly2026-08-03Dorl, James J Esq RENEWAL63Bernardo Dominic
1039Ashley O GillianJapan2026-08-09Feltz Printing Service NEW0Amy Elsner
1040Ashley Z MaletFrance2026-08-19Morlong Associates NEW15Onyama Limba
1041Alejandro P DoeRussia2026-08-02Feiner Bros RENEWAL46Bernardo Dominic
1042Clifford I DoeAustralia2026-08-06Morlong Associates RENEWAL21Stephen Shaw
1043Darci I WaycottBrazil2026-07-25Truhlar And Truhlar Attys QUALIFIED92Amy Elsner
1044Adams C GillianRussia2026-08-03Morlong Associates UNQUALIFIED61Onyama Limba
1045Aika N OldroydSpain2026-08-11King, Christopher A Esq QUALIFIED52Ioni Bowcher
1046Morrow V RulapaughItaly2026-08-02Benton, John B Jr UNQUALIFIED81Ioni Bowcher
1047Clifford M FollerArgentina2026-08-12Feltz Printing Service RENEWAL88Ioni Bowcher
1048Aika A VocelkaJapan2026-08-10Commercial Press RENEWAL60Xuxue Feng
1049Johnson P PaprockiCanada2026-08-01Rousseaux, Michael Esq RENEWAL50Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Darci M RimAustraliaIoni Bowcher UNQUALIFIED
Julie C WieserUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro N SlusarskiJapanElwin Sharvill PROPOSAL
Jeanfrancois Z BowleyGermanyXuxue Feng NEGOTIATION
James D RimJapanAnna Fali UNQUALIFIED
Munro L PerinSpainIvan Magalhaes NEW
Aruna E InouyeSpainStephen Shaw UNQUALIFIED
Arvin E WhobreyJapanOnyama Limba QUALIFIED
Munro F AmigonRussiaAsiya Javayant NEW
Costa Q KolmetzItalyAsiya Javayant RENEWAL
Aika R DarakjyAustraliaIvan Magalhaes QUALIFIED
Rodrigues E ChuiRussiaIvan Magalhaes RENEWAL
Stacey Q NestleRussiaAsiya Javayant QUALIFIED
Leon P OldroydSpainBernardo Dominic UNQUALIFIED
Kadeem U RoysterIndiaIvan Magalhaes NEW
Greenwood H PaprockiGermanyOnyama Limba NEGOTIATION
Maria T BowleyJapanXuxue Feng QUALIFIED
Aika E IturbideUnited KingdomIvan Magalhaes PROPOSAL
Misaki U SlusarskiItalyIvan Magalhaes QUALIFIED
Misaki O VenereAustraliaOnyama Limba QUALIFIED
Morrow T ButtRussiaBernardo Dominic RENEWAL
Wickens W NickaGermanyBernardo Dominic RENEWAL
Darci M NickaItalyElwin Sharvill QUALIFIED
Costa Z PaprockiCanadaIvan Magalhaes NEGOTIATION
Nicolas Q GlickIndiaBernardo Dominic RENEWAL
Stacey X OldroydIndiaXuxue Feng PROPOSAL
Alejandro R MaletRussiaBernardo Dominic RENEWAL
Faith E PerinGermanyOnyama Limba NEGOTIATION
Kadeem B GarufiCanadaStephen Shaw PROPOSAL
Mujtaba R KuskoBrazilBernardo Dominic QUALIFIED
Rodrigues G CaudyItalyIoni Bowcher PROPOSAL
Maisha Z GillianFranceOnyama Limba NEW
Jennifer L DilliardUnited KingdomStephen Shaw NEGOTIATION
Aika Z MaletBrazilIvan Magalhaes NEGOTIATION
Munro G TollnerArgentinaIoni Bowcher RENEWAL
Wickens U InouyeIndiaBernardo Dominic NEW
Jennifer P PaprockiCanadaOnyama Limba NEGOTIATION
Ashley U SergiArgentinaAmy Elsner PROPOSAL
Leja O GillianItalyBernardo Dominic PROPOSAL
Jones H ChuiArgentinaAnna Fali PROPOSAL
Mayumi A OstroskyAustraliaXuxue Feng QUALIFIED
James Q DoeSpainIoni Bowcher UNQUALIFIED
Aika B RulapaughSpainXuxue Feng NEW
Smith G MaletGermanyBernardo Dominic NEW
Aika N SaylorsBrazilIoni Bowcher NEGOTIATION
Murillo F RimUnited KingdomXuxue Feng RENEWAL
Maria K PaprockiSpainOnyama Limba NEGOTIATION
Octavia Z PerinRussiaOnyama Limba NEW
Izzy T GillianSpainXuxue Feng NEGOTIATION
Julie Y GillianCanadaAnna Fali UNQUALIFIED
Frozen Columns
Name
Deepesh I Tollner
Morrow S Vocelka
Aruna Y Foller
Adams U Caldarera
Sinclair T Butt
Clifford A Perin
Chavez S Garufi
Maisha X Stenseth
James T Kusko
Leja D Foller
Faith V Stockham
Mujtaba L Glick
Darci Q Briddick
Jones E Bowley
Misaki I Saylors
Ashley E Rulapaugh
Octavia C Morasca
Ashley L Whobrey
Arvin S Albares
Claire I Slusarski
Mayumi Z Ostrosky
Silvio O Kolmetz
Johnson S Tollner
Maisha Y Shinko
Ivar W Flosi
David O Nicka
Darci D Bowley
Salvatore E Glick
Aditya A Garufi
Morrow F Sergi
Clifford D Oldroyd
Aruna O Bowley
Costa L Whobrey
Chavez U Morasca
Alejandro S Paprocki
James N Dilliard
Isabel H Sergi
Kadeem H Vocelka
Isabel K Dilliard
Misaki J Schemmer
Jeanfrancois E Nicka
Mujtaba L Foller
Jones C Chui
Nicolas Q Amigon
Octavia Q Figeroa
Mujtaba A Royster
Claire C Iturbide
Tony C Gillian
Costa U Dilliard
Smith Z Poquette
IdCountryDate
1000India2026-08-09
1001Argentina2026-08-22
1002Germany2026-08-02
1003United Kingdom2026-08-22
1004Australia2026-08-01
1005Brazil2026-08-17
1006Argentina2026-08-11
1007Brazil2026-08-23
1008Canada2026-08-20
1009Spain2026-08-18
1010Brazil2026-08-19
1011Spain2026-08-15
1012India2026-07-31
1013India2026-08-11
1014Spain2026-08-02
1015Russia2026-07-31
1016Germany2026-07-27
1017Italy2026-07-28
1018United Kingdom2026-08-02
1019Japan2026-08-05
1020India2026-08-15
1021Spain2026-08-21
1022Canada2026-08-05
1023Russia2026-08-03
1024Russia2026-08-16
1025Argentina2026-08-12
1026France2026-07-29
1027Argentina2026-07-28
1028Russia2026-07-30
1029India2026-08-16
1030Argentina2026-07-31
1031India2026-08-18
1032Germany2026-07-25
1033Italy2026-08-16
1034Argentina2026-08-01
1035Italy2026-08-03
1036India2026-07-26
1037United Kingdom2026-08-05
1038Russia2026-08-10
1039Japan2026-07-26
1040Japan2026-07-26
1041India2026-08-22
1042Spain2026-07-26
1043Canada2026-08-16
1044Russia2026-07-29
1045Canada2026-08-14
1046Japan2026-08-22
1047Brazil2026-08-02
1048Argentina2026-08-20
1049Spain2026-08-04

On-Demand Data

NameIdCountryDate
Octavia I Malet1000Australia2026-07-30
Leon G Paprocki1001Argentina2026-08-02
Emily A Rulapaugh1002Argentina2026-08-13
Mayumi F Doe1003United Kingdom2026-08-01
Jeanfrancois A Albares1004Japan2026-08-21
Aditya Z Iturbide1005France2026-08-02
Munro B Malet1006Canada2026-08-18
Ivar K Saylors1007Japan2026-08-04
Octavia Q Oldroyd1008India2026-08-16
Stacey P Chui1009France2026-08-08
Stacey A Royster1010United Kingdom2026-08-20
David F Chui1011Germany2026-08-20
Darci Q Inouye1012India2026-08-13
Leon B Ostrosky1013Canada2026-08-18
Aditya Z Marrier1014Argentina2026-08-19
Francesco X Saylors1015Germany2026-08-13
Jeanfrancois T Rim1016Germany2026-08-02
Emily D Kusko1017Russia2026-08-11
Ashley D Gaucho1018Australia2026-07-27
Morrow U Foller1019Spain2026-07-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem L IturbideUnited KingdomAmy Elsner RENEWAL
James Z RutaArgentinaAsiya Javayant QUALIFIED
Aruna E InouyeSpainStephen Shaw RENEWAL
Izzy Z OstroskyBrazilIvan Magalhaes NEW
Clifford L WieserAustraliaStephen Shaw NEW
Faith E SaylorsItalyOnyama Limba NEW
Ricardo H CaldareraIndiaIoni Bowcher UNQUALIFIED
Kadeem V GauchoJapanAsiya Javayant PROPOSAL
Adams Q KolmetzIndiaBernardo Dominic QUALIFIED
Misaki F MorascaUnited KingdomAnna Fali NEW
Munro H MorascaJapanIoni Bowcher NEW
Maria A IturbideUnited KingdomAsiya Javayant NEW
Ivar G ChuiFranceIoni Bowcher QUALIFIED
Cody O DoeCanadaStephen Shaw NEGOTIATION
Silvio O AlbaresIndiaAnna Fali UNQUALIFIED
Mayumi K OldroydRussiaAsiya Javayant QUALIFIED
Leja L WieserUnited KingdomIvan Magalhaes NEW
Johnson S GlickRussiaOnyama Limba RENEWAL
Aika J TollnerGermanyOnyama Limba QUALIFIED
Aika E DilliardFranceOnyama Limba PROPOSAL
Deepesh J FlosiRussiaIvan Magalhaes QUALIFIED
Jennifer J VenereAustraliaIvan Magalhaes UNQUALIFIED
Aika O AlbaresIndiaBernardo Dominic PROPOSAL
Johnson B ShinkoJapanBernardo Dominic NEGOTIATION
Murillo I ChuiGermanyXuxue Feng NEGOTIATION
Greenwood N NickaGermanyStephen Shaw RENEWAL
Claire Y TollnerAustraliaAsiya Javayant NEW
Wickens S CaudyRussiaBernardo Dominic NEW
Silvio U MaletBrazilAsiya Javayant RENEWAL
Kadeem N OldroydSpainAsiya Javayant NEGOTIATION
James G BowleyBrazilStephen Shaw UNQUALIFIED
Izzy J OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Izzy F PoquetteFranceAnna Fali NEW
Arvin U FigeroaJapanAmy Elsner NEGOTIATION
Salvatore Y DilliardBrazilElwin Sharvill QUALIFIED
Ivar Y GauchoBrazilAmy Elsner PROPOSAL
Antonio G DoeCanadaBernardo Dominic UNQUALIFIED
Alejandro J VenereUnited KingdomBernardo Dominic PROPOSAL
Francesco U OldroydIndiaIvan Magalhaes RENEWAL
Claire P StockhamGermanyAsiya Javayant UNQUALIFIED

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