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
Stacey D CampainJapanAmy Elsner QUALIFIED
Misaki A DarakjyBrazilElwin Sharvill QUALIFIED
Octavia X ShinkoAustraliaStephen Shaw UNQUALIFIED
Darci T SchemmerSpainIvan Magalhaes UNQUALIFIED
Claire Z MaletUnited KingdomIvan Magalhaes QUALIFIED
James D ShinkoFranceAsiya Javayant RENEWAL
Jefferson B RoysterRussiaAsiya Javayant UNQUALIFIED
Stacey H OldroydRussiaBernardo Dominic QUALIFIED
Rodrigues E BowleyBrazilStephen Shaw QUALIFIED
Maria P OstroskyArgentinaXuxue Feng NEGOTIATION
Faith Z AmigonUnited KingdomBernardo Dominic NEGOTIATION
Leon P ChuiRussiaAmy Elsner NEGOTIATION
Ricardo I PerinArgentinaAnna Fali PROPOSAL
Murillo Y DarakjySpainElwin Sharvill PROPOSAL
Darci J DoeAustraliaAmy Elsner QUALIFIED
Isabel D KuskoSpainAmy Elsner NEGOTIATION
Mayumi V PerinSpainAmy Elsner NEW
Ashley L OldroydBrazilAsiya Javayant PROPOSAL
Isabel A MorascaFranceXuxue Feng UNQUALIFIED
Kadeem X SergiJapanAnna Fali QUALIFIED
Aditya L GarufiIndiaIvan Magalhaes NEGOTIATION
Stacey C FerenczJapanIvan Magalhaes NEGOTIATION
Alejandro E MaletGermanyElwin Sharvill NEW
Mayumi V RulapaughAustraliaStephen Shaw RENEWAL
Aika J StensethFranceAsiya Javayant NEW
Chavez Z RoysterItalyIvan Magalhaes UNQUALIFIED
Julie R WaycottGermanyIvan Magalhaes UNQUALIFIED
Mujtaba I RimAustraliaOnyama Limba QUALIFIED
Octavia O CaldareraArgentinaIvan Magalhaes QUALIFIED
Sinclair H MacleadItalyStephen Shaw RENEWAL
Jennifer T GarufiSpainAsiya Javayant NEW
Murillo P DoeRussiaIvan Magalhaes QUALIFIED
Aruna S DilliardArgentinaIoni Bowcher UNQUALIFIED
James L IturbideItalyElwin Sharvill UNQUALIFIED
Salvatore K CaldareraIndiaAnna Fali RENEWAL
James C NickaGermanyOnyama Limba UNQUALIFIED
Ricardo Z FollerArgentinaXuxue Feng NEW
Antonio C StensethUnited KingdomXuxue Feng NEW
Murillo R MorascaCanadaStephen Shaw QUALIFIED
Ricardo X FerenczItalyIoni Bowcher QUALIFIED
Octavia R KolmetzGermanyBernardo Dominic RENEWAL
Maria P FlosiAustraliaAnna Fali RENEWAL
Sinclair A NickaSpainAmy Elsner QUALIFIED
Alejandro N OstroskyArgentinaXuxue Feng RENEWAL
James V AmigonRussiaAmy Elsner PROPOSAL
Sinclair Y WieserItalyStephen Shaw QUALIFIED
Aditya R GarufiAustraliaAsiya Javayant UNQUALIFIED
Aruna Q SergiFranceIvan Magalhaes QUALIFIED
Misaki C CaudyCanadaXuxue Feng PROPOSAL
Julie G DarakjyAustraliaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki H MarrierCanadaAsiya Javayant PROPOSAL
Rodrigues A StensethArgentinaAnna Fali NEGOTIATION
Julie M ButtGermanyBernardo Dominic NEGOTIATION
Maria B DilliardJapanAmy Elsner PROPOSAL
Munro K GauchoSpainAsiya Javayant PROPOSAL
Munro V FigeroaFranceAnna Fali NEW
Kadeem Y IturbideBrazilBernardo Dominic NEW
Arvin U CaldareraJapanElwin Sharvill PROPOSAL
Ricardo X CaudyIndiaAnna Fali RENEWAL
Leja S RutaUnited KingdomBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci Y RoysterJapan2025-04-23Chanay, Jeffrey A Esq RENEWAL33Xuxue Feng
1001Maisha V NickaUnited Kingdom2025-04-19King, Christopher A Esq QUALIFIED20Stephen Shaw
1002Aditya D WaycottJapan2025-04-21Truhlar And Truhlar Attys NEGOTIATION53Stephen Shaw
1003Ricardo L MaletRussia2025-04-11Truhlar And Truhlar Attys QUALIFIED8Stephen Shaw
1004David F RulapaughFrance2025-04-07Truhlar And Truhlar Attys QUALIFIED23Amy Elsner
1005Antonio R InouyeArgentina2025-04-15Feiner Bros RENEWAL38Ivan Magalhaes
1006Costa T CaldareraItaly2025-04-29Printing Dimensions NEW6Xuxue Feng
1007Salvatore T RoysterGermany2025-04-11Rangoni Of Florence NEGOTIATION29Stephen Shaw
1008Darci G KolmetzBrazil2025-04-03Benton, John B Jr UNQUALIFIED80Ioni Bowcher
1009Salvatore Z IturbideBrazil2025-04-12Chapman, Ross E Esq NEW44Bernardo Dominic
1010Arvin V OstroskyBrazil2025-04-03King, Christopher A Esq NEW47Xuxue Feng
1011Ricardo G SlusarskiSpain2025-04-22Commercial Press NEW29Stephen Shaw
1012Tony F KolmetzSpain2025-04-02Chanay, Jeffrey A Esq RENEWAL46Bernardo Dominic
1013Costa M RoysterGermany2025-04-20Feltz Printing Service UNQUALIFIED39Elwin Sharvill
1014Faith P SaylorsCanada2025-04-12Feltz Printing Service RENEWAL71Onyama Limba
1015Faith I KuskoJapan2025-04-02Chanay, Jeffrey A Esq NEGOTIATION50Amy Elsner
1016Stacey M ButtBrazil2025-04-05Feltz Printing Service PROPOSAL65Onyama Limba
1017Jefferson Q WieserBrazil2025-04-07Morlong Associates UNQUALIFIED88Bernardo Dominic
1018Jennifer H GlickAustralia2025-04-13Morlong Associates UNQUALIFIED25Anna Fali
1019Aika R FollerFrance2025-04-15Rousseaux, Michael Esq RENEWAL68Elwin Sharvill
1020Mujtaba A ShinkoAustralia2025-04-22Truhlar And Truhlar Attys NEGOTIATION86Amy Elsner
1021Alejandro W FollerGermany2025-04-01Feiner Bros NEW70Asiya Javayant
1022Leon D GillianArgentina2025-04-24Truhlar And Truhlar Attys QUALIFIED4Bernardo Dominic
1023Arvin C KolmetzSpain2025-04-27Chapman, Ross E Esq RENEWAL99Ivan Magalhaes
1024Izzy I VocelkaSpain2025-04-24Buckley Miller Wright NEW71Onyama Limba
1025Jeanfrancois J GauchoUnited Kingdom2025-04-23Rousseaux, Michael Esq NEW65Onyama Limba
1026Ivar J MaletCanada2025-04-08Feltz Printing Service RENEWAL30Bernardo Dominic
1027Juan R ChuiRussia2025-04-27Truhlar And Truhlar Attys UNQUALIFIED33Bernardo Dominic
1028Alejandro I RutaCanada2025-04-08King, Christopher A Esq PROPOSAL33Onyama Limba
1029Maria Q RulapaughArgentina2025-04-22Feltz Printing Service NEGOTIATION56Bernardo Dominic
1030Leja Z FollerAustralia2025-04-20Morlong Associates PROPOSAL30Amy Elsner
1031Alejandro Q GillianAustralia2025-04-12King, Christopher A Esq UNQUALIFIED64Anna Fali
1032Jefferson Y SlusarskiBrazil2025-04-05Feltz Printing Service UNQUALIFIED17Ivan Magalhaes
1033Kaitlin J GauchoRussia2025-04-23Feltz Printing Service RENEWAL73Onyama Limba
1034Antonio X WhobreyAustralia2025-04-09Commercial Press RENEWAL67Ioni Bowcher
1035Jefferson T PoquetteRussia2025-04-04Chanay, Jeffrey A Esq UNQUALIFIED49Ivan Magalhaes
1036Johnson I PaprockiSpain2025-04-09Rangoni Of Florence RENEWAL57Bernardo Dominic
1037Jefferson Z StensethJapan2025-04-24Printing Dimensions NEGOTIATION46Stephen Shaw
1038Morrow T WieserBrazil2025-04-27Morlong Associates PROPOSAL97Anna Fali
1039James Z GillianGermany2025-04-26Chanay, Jeffrey A Esq QUALIFIED21Elwin Sharvill
1040Jeanfrancois C StensethArgentina2025-04-15Benton, John B Jr UNQUALIFIED96Ioni Bowcher
1041Kadeem P FlosiCanada2025-04-25Printing Dimensions RENEWAL16Anna Fali
1042Kaitlin F OldroydIndia2025-04-18Chemel, James L Cpa RENEWAL87Bernardo Dominic
1043Cody Q SchemmerBrazil2025-04-26Chapman, Ross E Esq QUALIFIED30Amy Elsner
1044Claire D ShinkoCanada2025-04-07Chapman, Ross E Esq NEGOTIATION75Amy Elsner
1045Silvio O RutaFrance2025-04-18Feltz Printing Service NEGOTIATION15Ivan Magalhaes
1046Mayumi A RulapaughBrazil2025-04-20King, Christopher A Esq RENEWAL27Xuxue Feng
1047Silvio N MarrierJapan2025-04-06Rangoni Of Florence RENEWAL6Onyama Limba
1048Chavez T SlusarskiFrance2025-04-23Morlong Associates PROPOSAL2Ioni Bowcher
1049Smith S PaprockiRussia2025-04-26King, Christopher A Esq NEGOTIATION2Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Misaki Y BowleyItalyElwin Sharvill NEGOTIATION
Jennifer G WieserJapanOnyama Limba UNQUALIFIED
Stacey V TollnerAustraliaOnyama Limba UNQUALIFIED
Wickens Y ButtArgentinaOnyama Limba NEGOTIATION
Silvio I WieserItalyIvan Magalhaes NEGOTIATION
Claire V CampainAustraliaAnna Fali PROPOSAL
Rodrigues T SaylorsAustraliaIvan Magalhaes NEGOTIATION
Aditya F PaprockiSpainAmy Elsner UNQUALIFIED
Julie I RoysterJapanAnna Fali QUALIFIED
Jeanfrancois E CaldareraSpainIvan Magalhaes NEW
David P MaletUnited KingdomXuxue Feng NEGOTIATION
Emily R DarakjyArgentinaBernardo Dominic NEGOTIATION
Smith C FlosiItalyStephen Shaw QUALIFIED
Leja P GarufiFranceIoni Bowcher QUALIFIED
Jeanfrancois K RulapaughSpainElwin Sharvill NEGOTIATION
Ivar S ButtGermanyAmy Elsner PROPOSAL
Julie X MorascaJapanIvan Magalhaes QUALIFIED
Izzy B FigeroaAustraliaBernardo Dominic UNQUALIFIED
Costa I NickaBrazilBernardo Dominic NEW
Juan G BriddickUnited KingdomAmy Elsner PROPOSAL
Darci H SlusarskiGermanyIoni Bowcher NEW
Chavez N MaletCanadaOnyama Limba UNQUALIFIED
Alejandro Q TollnerRussiaIvan Magalhaes RENEWAL
Aruna N RutaSpainIvan Magalhaes QUALIFIED
Costa G OstroskyBrazilStephen Shaw QUALIFIED
Nicolas H WaycottSpainOnyama Limba NEGOTIATION
Alejandro U BologniaArgentinaBernardo Dominic UNQUALIFIED
Costa R DoeIndiaStephen Shaw QUALIFIED
Smith S AmigonAustraliaAnna Fali NEW
Munro S NickaSpainAsiya Javayant NEGOTIATION
Sinclair B GillianGermanyXuxue Feng NEW
Sinclair D MaletCanadaAnna Fali PROPOSAL
Emily F BowleyItalyIvan Magalhaes UNQUALIFIED
Ashley G DoeItalyBernardo Dominic NEW
Mujtaba Q GauchoIndiaAsiya Javayant NEGOTIATION
Francesco O FigeroaAustraliaOnyama Limba RENEWAL
Arvin Q ButtAustraliaIvan Magalhaes NEW
Morrow T FlosiIndiaAnna Fali PROPOSAL
Leon P StensethFranceAsiya Javayant NEW
Arvin T RulapaughFranceAsiya Javayant NEW
Smith V SlusarskiItalyIvan Magalhaes NEW
Mayumi X WieserItalyIvan Magalhaes PROPOSAL
Rodrigues O RimItalyAnna Fali NEW
Smith D WieserUnited KingdomAmy Elsner RENEWAL
Chavez P KolmetzIndiaAmy Elsner QUALIFIED
Murillo O DilliardAustraliaAmy Elsner NEGOTIATION
Maisha K CaudyItalyIvan Magalhaes RENEWAL
Cody R BologniaFranceBernardo Dominic PROPOSAL
Kadeem E ShinkoBrazilElwin Sharvill PROPOSAL
Jeanfrancois N GlickFranceStephen Shaw PROPOSAL
Frozen Columns
Name
Johnson K Glick
Maisha Q Paprocki
Maisha O Royster
Sinclair A Butt
Costa E Ruta
Aruna L Caldarera
Munro D Darakjy
Adams O Ruta
Izzy M Caldarera
Jones O Bolognia
Deepesh V Albares
Ricardo N Saylors
Ivar Z Malet
Clifford T Tollner
Maria D Nicka
Kadeem N Sergi
Isabel C Glick
Sinclair C Malet
Greenwood F Albares
Murillo I Paprocki
Maria X Morasca
Ivar D Amigon
Mayumi N Glick
Misaki F Bowley
Misaki D Saylors
Mayumi U Ruta
Deepesh A Venere
Maria V Ferencz
Maria O Perin
Mujtaba B Tollner
Isabel C Morasca
David A Venere
Ricardo S Malet
Maisha G Malet
Kaitlin J Nicka
Sinclair D Albares
Clifford U Kolmetz
Sinclair D Whobrey
Claire L Morasca
Aika K Darakjy
Chavez Y Stenseth
Munro B Whobrey
Stacey P Rulapaugh
Ashley G Nestle
Ivar R Chui
Deepesh A Caudy
Mujtaba U Whobrey
Greenwood V Darakjy
Wickens X Dilliard
Emily Q Kusko
IdCountryDate
1000Italy2025-04-12
1001Japan2025-04-07
1002Italy2025-04-29
1003India2025-04-09
1004Italy2025-04-06
1005United Kingdom2025-04-20
1006Brazil2025-04-29
1007France2025-04-06
1008India2025-04-12
1009United Kingdom2025-04-30
1010United Kingdom2025-04-04
1011Russia2025-04-21
1012Spain2025-04-22
1013Canada2025-04-05
1014Russia2025-04-08
1015Argentina2025-04-20
1016Spain2025-04-11
1017Germany2025-04-18
1018Canada2025-04-12
1019Brazil2025-04-17
1020Japan2025-04-22
1021France2025-04-17
1022France2025-04-17
1023Spain2025-04-07
1024Argentina2025-04-21
1025India2025-04-09
1026Russia2025-04-09
1027Canada2025-04-26
1028France2025-04-01
1029France2025-04-21
1030India2025-04-25
1031United Kingdom2025-04-13
1032France2025-04-07
1033Argentina2025-04-10
1034Italy2025-04-14
1035Germany2025-04-09
1036Russia2025-04-05
1037Argentina2025-04-08
1038Germany2025-04-29
1039Spain2025-04-02
1040Italy2025-04-02
1041France2025-04-21
1042Australia2025-04-29
1043India2025-04-27
1044Japan2025-04-24
1045Canada2025-04-12
1046Australia2025-04-17
1047Australia2025-04-12
1048Argentina2025-04-26
1049Argentina2025-04-06

On-Demand Data

NameIdCountryDate
Jefferson H Shinko1000Russia2025-04-09
Ricardo I Maclead1001Russia2025-04-27
Jeanfrancois I Flosi1002Italy2025-04-03
Faith V Ferencz1003Brazil2025-04-04
Johnson W Malet1004France2025-04-18
Octavia O Saylors1005Australia2025-04-14
Cody F Saylors1006Japan2025-04-01
Kadeem F Glick1007Russia2025-04-09
Aika M Amigon1008Brazil2025-04-28
Morrow Y Waycott1009France2025-04-29
Mujtaba M Garufi1010Argentina2025-04-17
Octavia U Royster1011India2025-04-13
Darci I Vocelka1012Russia2025-04-18
Maria D Doe1013Australia2025-04-05
Tony M Flosi1014Argentina2025-04-30
Izzy R Amigon1015Italy2025-04-07
Ivar M Darakjy1016Brazil2025-04-21
Aditya V Slusarski1017Argentina2025-04-07
Isabel F Gillian1018Italy2025-04-18
Aditya B Gillian1019Brazil2025-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily K FigeroaIndiaAsiya Javayant UNQUALIFIED
David Q KolmetzUnited KingdomIvan Magalhaes NEGOTIATION
Jennifer M NestleBrazilAnna Fali PROPOSAL
Aditya D RulapaughJapanBernardo Dominic RENEWAL
Maisha D MarrierUnited KingdomElwin Sharvill NEW
Morrow C NickaIndiaElwin Sharvill RENEWAL
Jefferson T TollnerRussiaElwin Sharvill UNQUALIFIED
Deepesh Q RimArgentinaAmy Elsner UNQUALIFIED
Ashley S AmigonCanadaStephen Shaw NEW
Wickens J RutaArgentinaAmy Elsner PROPOSAL
Cody W GillianAustraliaIoni Bowcher NEGOTIATION
Faith V DoeGermanyAsiya Javayant UNQUALIFIED
Aditya S RulapaughArgentinaAsiya Javayant PROPOSAL
Ivar E BologniaItalyBernardo Dominic NEGOTIATION
Aruna B CampainUnited KingdomStephen Shaw PROPOSAL
Julie X WieserCanadaStephen Shaw RENEWAL
Maria O RutaArgentinaIvan Magalhaes PROPOSAL
Rodrigues I OstroskyItalyXuxue Feng NEGOTIATION
Isabel B WaycottFranceStephen Shaw PROPOSAL
Tony T GarufiCanadaAmy Elsner RENEWAL
Deepesh G DoeIndiaOnyama Limba PROPOSAL
Rodrigues T WaycottGermanyIvan Magalhaes NEGOTIATION
Jennifer I MaletItalyStephen Shaw QUALIFIED
Izzy I PoquetteGermanyXuxue Feng RENEWAL
Stacey N PoquetteUnited KingdomOnyama Limba PROPOSAL
Murillo D PoquetteJapanIvan Magalhaes RENEWAL
Jeanfrancois Q DoeUnited KingdomAsiya Javayant NEW
Claire F WaycottFranceOnyama Limba PROPOSAL
Stacey S DarakjyJapanBernardo Dominic NEW
Salvatore I ShinkoSpainAmy Elsner PROPOSAL
Octavia R VocelkaSpainAmy Elsner RENEWAL
David Q FigeroaRussiaBernardo Dominic NEW
Leon P ShinkoRussiaXuxue Feng NEGOTIATION
Jefferson F SlusarskiIndiaAsiya Javayant RENEWAL
Kadeem S PaprockiArgentinaAmy Elsner RENEWAL
Rodrigues Q ChuiCanadaIvan Magalhaes RENEWAL
Murillo C ButtJapanIvan Magalhaes PROPOSAL
Cody R RimJapanIvan Magalhaes RENEWAL
Jones W StockhamFranceIoni Bowcher PROPOSAL
Jeanfrancois N BriddickCanadaIvan Magalhaes 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>