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
Smith J AlbaresBrazilAmy Elsner PROPOSAL
Ricardo A OstroskyJapanIvan Magalhaes NEW
Jeanfrancois K MorascaGermanyIoni Bowcher RENEWAL
Sinclair J SlusarskiCanadaXuxue Feng UNQUALIFIED
Kaitlin A RimFranceIoni Bowcher QUALIFIED
Aditya Q BriddickAustraliaIvan Magalhaes UNQUALIFIED
Chavez X DarakjyCanadaIvan Magalhaes PROPOSAL
Julie X OldroydFranceAsiya Javayant UNQUALIFIED
Misaki F OldroydFranceXuxue Feng UNQUALIFIED
Faith Z VenereJapanAsiya Javayant RENEWAL
Mayumi O StockhamBrazilBernardo Dominic RENEWAL
Costa U BologniaFranceAsiya Javayant UNQUALIFIED
Kadeem K FlosiFranceOnyama Limba QUALIFIED
Murillo K SchemmerSpainIoni Bowcher PROPOSAL
Izzy K BologniaFranceAmy Elsner PROPOSAL
Murillo M StensethCanadaBernardo Dominic UNQUALIFIED
Salvatore N MarrierIndiaAnna Fali PROPOSAL
Maria T StensethFranceAsiya Javayant NEW
Jones W InouyeAustraliaAnna Fali RENEWAL
Octavia G WieserSpainOnyama Limba PROPOSAL
Wickens D WieserArgentinaIoni Bowcher RENEWAL
Emily E ButtIndiaBernardo Dominic NEGOTIATION
Cody F OstroskySpainIoni Bowcher UNQUALIFIED
Ivar Z AmigonArgentinaIvan Magalhaes UNQUALIFIED
Chavez C SaylorsGermanyIvan Magalhaes QUALIFIED
Morrow N GillianSpainElwin Sharvill PROPOSAL
Juan E MarrierBrazilIvan Magalhaes RENEWAL
Alejandro A WieserItalyAsiya Javayant NEGOTIATION
Maisha E VenereCanadaOnyama Limba RENEWAL
Morrow N WieserRussiaOnyama Limba UNQUALIFIED
Stacey A VenereCanadaAmy Elsner QUALIFIED
Francesco R SchemmerIndiaOnyama Limba QUALIFIED
Juan L DilliardArgentinaAsiya Javayant PROPOSAL
Stacey D CaldareraBrazilElwin Sharvill NEW
Morrow C CaldareraSpainXuxue Feng NEGOTIATION
Johnson Z DilliardFranceAnna Fali PROPOSAL
Julie C FigeroaBrazilElwin Sharvill NEW
Kaitlin T RoysterRussiaAnna Fali UNQUALIFIED
Jefferson Z DilliardUnited KingdomIvan Magalhaes UNQUALIFIED
Maria F RutaIndiaAnna Fali RENEWAL
Julie F StockhamCanadaIoni Bowcher QUALIFIED
Maria W FlosiAustraliaStephen Shaw UNQUALIFIED
Costa J TollnerRussiaElwin Sharvill NEW
Octavia M KuskoFranceStephen Shaw RENEWAL
Leon O BologniaFranceXuxue Feng NEW
Jennifer K CaldareraFranceAmy Elsner NEW
Jones C DilliardUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois K DoeRussiaAmy Elsner RENEWAL
Leon W GauchoItalyXuxue Feng NEW
Smith A PoquetteArgentinaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois C ButtFranceOnyama Limba PROPOSAL
Tony N PoquetteJapanAsiya Javayant NEGOTIATION
Claire N MacleadAustraliaStephen Shaw QUALIFIED
Munro K BologniaBrazilOnyama Limba RENEWAL
Juan F RimRussiaStephen Shaw QUALIFIED
Claire Q GauchoAustraliaAsiya Javayant UNQUALIFIED
Mujtaba B MacleadUnited KingdomElwin Sharvill QUALIFIED
Kaitlin X FigeroaUnited KingdomIvan Magalhaes RENEWAL
Aruna L GauchoAustraliaBernardo Dominic QUALIFIED
Faith L SlusarskiSpainAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David Z GlickIndia2024-06-17Chemel, James L Cpa UNQUALIFIED44Stephen Shaw
1001Julie V SchemmerUnited Kingdom2024-06-06Rousseaux, Michael Esq QUALIFIED48Xuxue Feng
1002Jones Y IturbideJapan2024-06-04Chanay, Jeffrey A Esq NEGOTIATION7Amy Elsner
1003Leja M TollnerUnited Kingdom2024-06-04Feiner Bros PROPOSAL84Elwin Sharvill
1004Morrow W MorascaJapan2024-05-27Feiner Bros NEGOTIATION34Asiya Javayant
1005Munro V RulapaughJapan2024-06-17Chanay, Jeffrey A Esq RENEWAL71Xuxue Feng
1006Octavia F BologniaBrazil2024-05-23Feltz Printing Service NEGOTIATION70Stephen Shaw
1007Faith Q BologniaIndia2024-05-31Dorl, James J Esq NEGOTIATION58Bernardo Dominic
1008Adams R FerenczCanada2024-06-05Benton, John B Jr QUALIFIED25Anna Fali
1009Rodrigues U VocelkaSpain2024-05-25Buckley Miller Wright RENEWAL59Bernardo Dominic
1010Antonio Q VenereJapan2024-05-28Buckley Miller Wright PROPOSAL44Ivan Magalhaes
1011Cody L MorascaItaly2024-06-16Morlong Associates UNQUALIFIED20Asiya Javayant
1012Claire Y RutaJapan2024-06-10Feltz Printing Service QUALIFIED22Bernardo Dominic
1013Ashley A GauchoItaly2024-06-04Truhlar And Truhlar Attys UNQUALIFIED82Ioni Bowcher
1014Arvin J RimAustralia2024-05-28Commercial Press NEW72Stephen Shaw
1015Murillo T StockhamFrance2024-06-21Feiner Bros PROPOSAL48Stephen Shaw
1016Aruna X OstroskyUnited Kingdom2024-05-30Feiner Bros PROPOSAL16Asiya Javayant
1017Ashley N PoquetteBrazil2024-06-03Rangoni Of Florence NEW95Asiya Javayant
1018Jones Q RulapaughIndia2024-06-15Truhlar And Truhlar Attys RENEWAL61Amy Elsner
1019Claire D TollnerSpain2024-06-09Feiner Bros RENEWAL50Xuxue Feng
1020Aika T CaudyItaly2024-06-09Feltz Printing Service UNQUALIFIED12Ioni Bowcher
1021Costa O OstroskyUnited Kingdom2024-06-09Benton, John B Jr RENEWAL37Stephen Shaw
1022Chavez B BowleySpain2024-06-12Morlong Associates NEW3Bernardo Dominic
1023Darci H MaletItaly2024-06-01Rousseaux, Michael Esq PROPOSAL38Elwin Sharvill
1024Salvatore F VenereIndia2024-06-05Feiner Bros PROPOSAL80Xuxue Feng
1025Sinclair X FlosiItaly2024-05-23King, Christopher A Esq RENEWAL94Stephen Shaw
1026Ashley X ButtSpain2024-06-06Commercial Press NEGOTIATION61Ivan Magalhaes
1027Johnson W DoeJapan2024-06-14Chemel, James L Cpa QUALIFIED61Asiya Javayant
1028Tony N DoeItaly2024-06-16Truhlar And Truhlar Attys NEW38Bernardo Dominic
1029Maria G ButtCanada2024-06-17Benton, John B Jr RENEWAL75Bernardo Dominic
1030Aditya I InouyeItaly2024-06-11Feltz Printing Service NEW67Ivan Magalhaes
1031Julie T GlickRussia2024-06-04Feiner Bros QUALIFIED28Elwin Sharvill
1032Munro Z NestleArgentina2024-06-14Rangoni Of Florence NEGOTIATION4Asiya Javayant
1033Adams N DoeAustralia2024-06-04Dorl, James J Esq UNQUALIFIED48Amy Elsner
1034Jefferson C MarrierRussia2024-06-05Feltz Printing Service NEGOTIATION76Onyama Limba
1035Johnson P RimFrance2024-06-14Feltz Printing Service UNQUALIFIED93Onyama Limba
1036Sinclair L GauchoGermany2024-05-27Dorl, James J Esq RENEWAL98Bernardo Dominic
1037Cody B GauchoCanada2024-06-07King, Christopher A Esq UNQUALIFIED84Onyama Limba
1038Silvio L CampainIndia2024-05-24Rousseaux, Michael Esq NEGOTIATION21Asiya Javayant
1039Antonio B PoquetteSpain2024-06-11King, Christopher A Esq NEGOTIATION51Stephen Shaw
1040Clifford M GarufiFrance2024-06-11Dorl, James J Esq QUALIFIED17Stephen Shaw
1041Greenwood P VocelkaAustralia2024-05-28Commercial Press PROPOSAL79Amy Elsner
1042Wickens P TollnerGermany2024-06-01Buckley Miller Wright UNQUALIFIED82Ioni Bowcher
1043Munro M BologniaBrazil2024-05-29Buckley Miller Wright QUALIFIED10Onyama Limba
1044Wickens C MacleadIndia2024-06-02Chanay, Jeffrey A Esq UNQUALIFIED55Onyama Limba
1045Nicolas H GlickSpain2024-06-16Buckley Miller Wright UNQUALIFIED94Bernardo Dominic
1046Jefferson F AlbaresSpain2024-05-26Benton, John B Jr RENEWAL71Amy Elsner
1047Clifford O DoeIndia2024-05-27King, Christopher A Esq PROPOSAL84Xuxue Feng
1048Mayumi Z StensethRussia2024-06-15Rangoni Of Florence QUALIFIED29Xuxue Feng
1049Julie V SergiGermany2024-05-30King, Christopher A Esq PROPOSAL5Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Kadeem K SchemmerAustraliaStephen Shaw UNQUALIFIED
Octavia P DarakjyRussiaBernardo Dominic UNQUALIFIED
Aruna A RoysterBrazilIoni Bowcher RENEWAL
Rodrigues F FigeroaAustraliaIoni Bowcher QUALIFIED
Nicolas V CaudyIndiaBernardo Dominic NEGOTIATION
Silvio A GlickItalyIvan Magalhaes RENEWAL
Jeanfrancois H RimBrazilIoni Bowcher NEGOTIATION
Ashley E VenereJapanIvan Magalhaes NEW
Isabel S KuskoGermanyAsiya Javayant NEGOTIATION
David T ShinkoAustraliaBernardo Dominic NEW
Misaki Q MaletArgentinaAmy Elsner PROPOSAL
Morrow Q SergiSpainBernardo Dominic QUALIFIED
Emily X CaudyItalyIoni Bowcher UNQUALIFIED
Emily T MarrierUnited KingdomBernardo Dominic RENEWAL
Izzy H MaletBrazilIvan Magalhaes QUALIFIED
Faith Z SaylorsBrazilAmy Elsner NEGOTIATION
Smith C KolmetzJapanIvan Magalhaes QUALIFIED
Jennifer I SchemmerItalyElwin Sharvill RENEWAL
Nicolas K FlosiIndiaIoni Bowcher QUALIFIED
Mujtaba N BowleyJapanAsiya Javayant UNQUALIFIED
Silvio B FigeroaIndiaAnna Fali PROPOSAL
Leja O DoeJapanElwin Sharvill NEW
Antonio T CaldareraUnited KingdomXuxue Feng RENEWAL
Ivar M DoeSpainAsiya Javayant PROPOSAL
Jennifer T StockhamBrazilIoni Bowcher PROPOSAL
Chavez I MorascaSpainIoni Bowcher UNQUALIFIED
Octavia T FollerAustraliaIoni Bowcher NEGOTIATION
James X BologniaAustraliaIoni Bowcher QUALIFIED
David H VenereAustraliaIoni Bowcher PROPOSAL
Clifford Z NestleBrazilBernardo Dominic PROPOSAL
Sinclair Y PerinAustraliaXuxue Feng UNQUALIFIED
Ashley Y SergiUnited KingdomBernardo Dominic NEW
Alejandro E FerenczIndiaXuxue Feng NEGOTIATION
Maria T OldroydArgentinaBernardo Dominic UNQUALIFIED
Silvio G DoeSpainAnna Fali NEGOTIATION
Nicolas B TollnerAustraliaElwin Sharvill RENEWAL
Arvin U WhobreyBrazilIvan Magalhaes QUALIFIED
Aditya E PaprockiJapanOnyama Limba UNQUALIFIED
Cody X RimArgentinaElwin Sharvill UNQUALIFIED
Francesco T AmigonFranceIvan Magalhaes UNQUALIFIED
Salvatore K GillianCanadaAsiya Javayant QUALIFIED
Stacey X VocelkaItalyOnyama Limba PROPOSAL
Francesco V ButtFranceIoni Bowcher QUALIFIED
Maria P NestleIndiaBernardo Dominic UNQUALIFIED
Octavia E NestleAustraliaAnna Fali UNQUALIFIED
Wickens R WaycottJapanBernardo Dominic PROPOSAL
Leon V InouyeFranceStephen Shaw NEGOTIATION
Aika S DilliardArgentinaAsiya Javayant NEW
Leja H TollnerFranceIoni Bowcher UNQUALIFIED
Cody D NestleAustraliaAsiya Javayant NEW
Frozen Columns
Name
Clifford K Rim
Francesco G Ostrosky
Wickens D Whobrey
Isabel O Figeroa
Maria E Kolmetz
Claire B Sergi
Stacey M Campain
Munro F Kolmetz
Aika G Vocelka
Nicolas D Darakjy
Jefferson I Sergi
Kadeem P Vocelka
Jones Q Flosi
Sinclair G Flosi
Aika L Rim
Cody U Chui
Ashley R Dilliard
Aditya R Rim
James W Slusarski
Antonio P Gillian
Isabel C Rulapaugh
Wickens N Malet
Jones W Vocelka
Francesco L Ruta
Ricardo G Caudy
Tony U Flosi
Salvatore G Amigon
Jennifer K Gillian
Alejandro F Chui
Wickens I Ruta
Adams E Perin
Faith T Garufi
Maria G Waycott
Leja H Rim
Johnson O Flosi
Leja V Stockham
Murillo E Nicka
Adams X Royster
Antonio F Iturbide
Mujtaba X Albares
Silvio B Campain
Misaki T Rim
Ashley W Glick
Francesco A Flosi
Costa Y Ferencz
Aika L Rulapaugh
Ivar I Whobrey
Sinclair U Kolmetz
Kadeem B Schemmer
Silvio E Malet
IdCountryDate
1000Russia2024-06-15
1001Australia2024-05-25
1002Italy2024-05-29
1003Italy2024-06-09
1004India2024-06-08
1005Italy2024-06-11
1006Italy2024-05-25
1007Spain2024-06-20
1008France2024-06-05
1009Germany2024-06-02
1010Russia2024-06-11
1011Japan2024-06-05
1012Spain2024-06-14
1013Argentina2024-06-16
1014India2024-05-30
1015United Kingdom2024-05-27
1016India2024-06-05
1017Germany2024-06-20
1018Russia2024-05-27
1019Spain2024-06-17
1020United Kingdom2024-06-13
1021India2024-06-09
1022France2024-06-14
1023Canada2024-06-02
1024France2024-06-14
1025India2024-05-27
1026United Kingdom2024-06-10
1027Italy2024-06-04
1028Brazil2024-05-24
1029Japan2024-05-31
1030Australia2024-05-31
1031Spain2024-06-04
1032Brazil2024-05-31
1033Australia2024-06-20
1034United Kingdom2024-05-31
1035Spain2024-06-05
1036Russia2024-05-28
1037Japan2024-05-25
1038Russia2024-06-01
1039Germany2024-05-28
1040India2024-06-20
1041Germany2024-06-09
1042Japan2024-06-20
1043Brazil2024-06-06
1044India2024-05-30
1045Russia2024-06-10
1046Canada2024-06-05
1047Argentina2024-06-13
1048Argentina2024-05-31
1049India2024-06-16

On-Demand Data

NameIdCountryDate
Costa D Morasca1000United Kingdom2024-05-25
Octavia T Rim1001Argentina2024-05-23
Ricardo L Paprocki1002Spain2024-06-13
Maisha B Albares1003Germany2024-06-03
Johnson W Glick1004India2024-05-31
Aditya J Nicka1005Japan2024-06-09
Darci H Doe1006Australia2024-06-02
Emily K Whobrey1007France2024-05-28
Greenwood W Stockham1008Spain2024-06-09
Leon K Ferencz1009Spain2024-06-10
Octavia O Sergi1010Russia2024-05-28
Murillo E Ferencz1011Canada2024-06-19
Aruna B Perin1012Canada2024-06-10
Jeanfrancois Z Stockham1013Germany2024-06-17
Deepesh C Wieser1014Canada2024-05-30
Costa X Garufi1015Spain2024-06-13
Clifford M Amigon1016France2024-05-28
Ivar N Tollner1017Germany2024-05-28
Sinclair E Foller1018Canada2024-06-20
Leja Q Poquette1019United Kingdom2024-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David T GillianItalyAmy Elsner PROPOSAL
Adams E ButtCanadaStephen Shaw QUALIFIED
Aditya Q GlickArgentinaAmy Elsner PROPOSAL
Aruna P GlickArgentinaXuxue Feng UNQUALIFIED
Chavez Q AlbaresItalyAmy Elsner UNQUALIFIED
Arvin D VenereCanadaOnyama Limba RENEWAL
Arvin L MaletUnited KingdomStephen Shaw NEGOTIATION
Antonio E MaletJapanXuxue Feng NEGOTIATION
Juan T RulapaughSpainIvan Magalhaes RENEWAL
Chavez E FollerAustraliaAmy Elsner NEW
Ashley A VocelkaGermanyBernardo Dominic RENEWAL
Maria J CaldareraBrazilBernardo Dominic NEGOTIATION
Maisha L MaletFranceStephen Shaw UNQUALIFIED
Mujtaba K SlusarskiBrazilAnna Fali NEGOTIATION
Julie R VenereJapanIvan Magalhaes PROPOSAL
Silvio V IturbideGermanyStephen Shaw NEGOTIATION
Aruna S CaudyIndiaAsiya Javayant RENEWAL
Antonio L MorascaSpainStephen Shaw PROPOSAL
Stacey I GillianIndiaIvan Magalhaes PROPOSAL
Arvin C FigeroaCanadaIvan Magalhaes QUALIFIED
Darci H BriddickItalyBernardo Dominic NEGOTIATION
Isabel G GarufiArgentinaIvan Magalhaes RENEWAL
Cody Q GlickUnited KingdomAmy Elsner QUALIFIED
Maisha O WhobreyCanadaOnyama Limba NEGOTIATION
Cody C GarufiRussiaBernardo Dominic RENEWAL
Nicolas U KolmetzRussiaAmy Elsner RENEWAL
Adams C PaprockiArgentinaAnna Fali RENEWAL
Mujtaba K PaprockiGermanyIoni Bowcher QUALIFIED
Murillo R MacleadFranceAsiya Javayant NEGOTIATION
Mayumi O StensethItalyStephen Shaw QUALIFIED
Johnson C StockhamSpainAnna Fali RENEWAL
Aditya K CampainArgentinaAsiya Javayant RENEWAL
Johnson B FlosiIndiaElwin Sharvill QUALIFIED
Jefferson Y CampainArgentinaIvan Magalhaes UNQUALIFIED
Leon W CaldareraRussiaBernardo Dominic NEW
Kadeem V MorascaCanadaElwin Sharvill UNQUALIFIED
Aruna L FerenczItalyAnna Fali QUALIFIED
Juan S DoeGermanyStephen Shaw NEGOTIATION
Johnson W GillianFranceStephen Shaw QUALIFIED
Darci N GlickSpainIvan Magalhaes 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>