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
Antonio O WaycottCanadaIoni Bowcher NEGOTIATION
Silvio F DarakjySpainBernardo Dominic QUALIFIED
Emily M AlbaresItalyOnyama Limba RENEWAL
James O AmigonUnited KingdomStephen Shaw UNQUALIFIED
Deepesh W WieserGermanyAnna Fali PROPOSAL
Adams O GarufiAustraliaXuxue Feng QUALIFIED
Antonio B GauchoIndiaAnna Fali PROPOSAL
Smith D ButtBrazilStephen Shaw QUALIFIED
Ricardo H NestleSpainXuxue Feng NEW
Sinclair S RimRussiaAmy Elsner NEGOTIATION
Faith I CaldareraIndiaElwin Sharvill RENEWAL
Juan Q AmigonArgentinaOnyama Limba PROPOSAL
Jennifer T DoeCanadaElwin Sharvill QUALIFIED
Maria J SergiBrazilStephen Shaw NEGOTIATION
James A GlickAustraliaElwin Sharvill UNQUALIFIED
Munro W PoquetteUnited KingdomIvan Magalhaes RENEWAL
Julie B WieserJapanXuxue Feng PROPOSAL
Rodrigues B AlbaresJapanAsiya Javayant UNQUALIFIED
Izzy T MarrierAustraliaAmy Elsner QUALIFIED
Ivar T RulapaughArgentinaAsiya Javayant PROPOSAL
Deepesh B OldroydIndiaAnna Fali UNQUALIFIED
Darci S AlbaresItalyIvan Magalhaes NEW
Maria R PerinIndiaAmy Elsner QUALIFIED
Maisha U PerinRussiaIoni Bowcher PROPOSAL
Aika V WhobreyItalyAnna Fali QUALIFIED
Juan M MaletGermanyAsiya Javayant NEW
Morrow E BologniaRussiaAsiya Javayant QUALIFIED
Alejandro F DarakjyRussiaElwin Sharvill PROPOSAL
Adams Z SchemmerRussiaAnna Fali UNQUALIFIED
Morrow H VocelkaArgentinaIoni Bowcher UNQUALIFIED
Aika I CaudyFranceStephen Shaw PROPOSAL
Smith O RimAustraliaXuxue Feng UNQUALIFIED
Kadeem J FollerGermanyAsiya Javayant QUALIFIED
Aditya A GlickItalyElwin Sharvill UNQUALIFIED
Morrow F CaudyCanadaElwin Sharvill QUALIFIED
Leon O VocelkaCanadaAnna Fali PROPOSAL
David O CaudyAustraliaBernardo Dominic NEW
Salvatore H FerenczFranceIoni Bowcher NEGOTIATION
Kadeem S GillianCanadaAnna Fali RENEWAL
Clifford N TollnerArgentinaElwin Sharvill RENEWAL
Claire S BriddickGermanyAmy Elsner PROPOSAL
Jeanfrancois R ChuiItalyXuxue Feng UNQUALIFIED
Aika E SchemmerCanadaXuxue Feng NEGOTIATION
Jennifer S TollnerBrazilStephen Shaw QUALIFIED
Deepesh I GillianSpainAsiya Javayant UNQUALIFIED
Leja V KuskoRussiaAnna Fali QUALIFIED
Aditya B TollnerJapanAnna Fali QUALIFIED
Greenwood F OstroskyIndiaBernardo Dominic PROPOSAL
Greenwood Q RoysterUnited KingdomStephen Shaw QUALIFIED
Deepesh D FlosiCanadaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Jefferson H WhobreyJapanOnyama Limba PROPOSAL
Mayumi M SlusarskiItalyAsiya Javayant PROPOSAL
Leja E PerinBrazilAnna Fali NEGOTIATION
Antonio W GauchoBrazilOnyama Limba NEGOTIATION
Isabel B WhobreyBrazilIoni Bowcher UNQUALIFIED
Aditya T ChuiUnited KingdomIvan Magalhaes PROPOSAL
Rodrigues R SaylorsCanadaStephen Shaw PROPOSAL
Antonio W KuskoSpainIvan Magalhaes NEW
Misaki B SlusarskiAustraliaAsiya Javayant PROPOSAL
Tony C FigeroaIndiaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro P NestleBrazil2026-06-06Chemel, James L Cpa PROPOSAL87Ivan Magalhaes
1001Maisha V AlbaresCanada2026-06-06Morlong Associates UNQUALIFIED59Amy Elsner
1002Jennifer G RulapaughCanada2026-06-28Printing Dimensions QUALIFIED79Asiya Javayant
1003Leja K KolmetzAustralia2026-06-12Rangoni Of Florence QUALIFIED19Bernardo Dominic
1004Clifford P SlusarskiJapan2026-06-15Feltz Printing Service PROPOSAL66Onyama Limba
1005Juan O OldroydBrazil2026-06-07Commercial Press QUALIFIED34Bernardo Dominic
1006Leon G MacleadRussia2026-06-28Commercial Press NEGOTIATION2Onyama Limba
1007Alejandro D StensethRussia2026-06-22Truhlar And Truhlar Attys NEW49Asiya Javayant
1008Izzy S CaudyJapan2026-06-17Feltz Printing Service RENEWAL53Ioni Bowcher
1009Murillo B CaldareraCanada2026-06-18Buckley Miller Wright PROPOSAL25Anna Fali
1010Tony A RimFrance2026-06-28King, Christopher A Esq PROPOSAL85Anna Fali
1011Maisha H NickaAustralia2026-06-29King, Christopher A Esq NEW3Bernardo Dominic
1012Sinclair U StensethArgentina2026-06-25Commercial Press NEGOTIATION8Xuxue Feng
1013Murillo Q FerenczCanada2026-06-23Truhlar And Truhlar Attys PROPOSAL3Ioni Bowcher
1014Maisha Q DilliardGermany2026-06-08Printing Dimensions NEGOTIATION10Onyama Limba
1015Murillo R NestleArgentina2026-06-11Feltz Printing Service RENEWAL87Asiya Javayant
1016Rodrigues X NickaGermany2026-06-23Chapman, Ross E Esq RENEWAL95Ivan Magalhaes
1017Leon X RulapaughBrazil2026-06-29Rousseaux, Michael Esq NEGOTIATION35Asiya Javayant
1018Greenwood Z WieserIndia2026-06-21Morlong Associates RENEWAL91Ioni Bowcher
1019Maria D ShinkoBrazil2026-06-26Rousseaux, Michael Esq QUALIFIED25Elwin Sharvill
1020Jones Y KuskoJapan2026-06-10Rousseaux, Michael Esq PROPOSAL50Asiya Javayant
1021Greenwood Z CaudyCanada2026-06-18King, Christopher A Esq UNQUALIFIED21Onyama Limba
1022Aika J DarakjyRussia2026-06-17Chapman, Ross E Esq NEGOTIATION11Elwin Sharvill
1023Darci R BowleyGermany2026-06-16Morlong Associates UNQUALIFIED38Asiya Javayant
1024Smith A FigeroaArgentina2026-07-02Chapman, Ross E Esq NEW24Bernardo Dominic
1025Maria A RimSpain2026-06-28Feiner Bros QUALIFIED3Elwin Sharvill
1026Izzy G FollerCanada2026-07-04Chapman, Ross E Esq UNQUALIFIED25Elwin Sharvill
1027Aika I BriddickItaly2026-06-19Chanay, Jeffrey A Esq PROPOSAL51Anna Fali
1028Ivar S MaletJapan2026-06-06Morlong Associates NEGOTIATION14Anna Fali
1029Salvatore W PoquetteArgentina2026-06-08Benton, John B Jr UNQUALIFIED34Asiya Javayant
1030Emily D MaletSpain2026-06-08Truhlar And Truhlar Attys QUALIFIED98Xuxue Feng
1031Faith E IturbideItaly2026-06-12Printing Dimensions RENEWAL15Onyama Limba
1032Misaki P SergiUnited Kingdom2026-06-11Rangoni Of Florence UNQUALIFIED99Xuxue Feng
1033Leja J OstroskyGermany2026-07-02Rangoni Of Florence NEW69Asiya Javayant
1034Deepesh E StockhamSpain2026-06-20Rangoni Of Florence NEGOTIATION80Bernardo Dominic
1035Clifford R NestleFrance2026-07-03King, Christopher A Esq PROPOSAL77Amy Elsner
1036Morrow T ChuiArgentina2026-06-22Rangoni Of Florence PROPOSAL86Onyama Limba
1037Aruna D ChuiBrazil2026-06-18Benton, John B Jr RENEWAL59Bernardo Dominic
1038Kaitlin Y ShinkoIndia2026-06-15Printing Dimensions NEW90Elwin Sharvill
1039Ricardo I CaldareraFrance2026-06-15Rangoni Of Florence QUALIFIED88Asiya Javayant
1040Aditya V TollnerBrazil2026-06-13Rangoni Of Florence RENEWAL69Onyama Limba
1041Ricardo J SergiBrazil2026-06-05Buckley Miller Wright PROPOSAL19Elwin Sharvill
1042Maisha E DilliardIndia2026-07-03Chapman, Ross E Esq QUALIFIED17Ioni Bowcher
1043Aruna H FerenczCanada2026-06-14King, Christopher A Esq RENEWAL8Elwin Sharvill
1044Aditya O VenereUnited Kingdom2026-06-17Buckley Miller Wright RENEWAL57Stephen Shaw
1045Maria R RutaRussia2026-07-03Chapman, Ross E Esq QUALIFIED87Amy Elsner
1046Jennifer X PoquetteFrance2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED86Ivan Magalhaes
1047Jeanfrancois E DarakjyFrance2026-06-07Rousseaux, Michael Esq NEGOTIATION46Xuxue Feng
1048Johnson F ShinkoGermany2026-06-14Rangoni Of Florence PROPOSAL92Anna Fali
1049David R WaycottIndia2026-06-11Rangoni Of Florence PROPOSAL26Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Francesco O FigeroaItalyElwin Sharvill UNQUALIFIED
Octavia E WaycottBrazilXuxue Feng QUALIFIED
Mujtaba I PerinBrazilAnna Fali PROPOSAL
Sinclair F SergiCanadaElwin Sharvill UNQUALIFIED
Izzy N DarakjyFranceOnyama Limba NEGOTIATION
Ashley M OldroydBrazilAmy Elsner UNQUALIFIED
Ashley U FollerAustraliaAsiya Javayant RENEWAL
Mujtaba M DoeUnited KingdomXuxue Feng QUALIFIED
Faith F IturbideBrazilElwin Sharvill NEW
Darci Z SlusarskiJapanAnna Fali NEW
Francesco Q MaletIndiaBernardo Dominic PROPOSAL
Morrow E StensethJapanOnyama Limba RENEWAL
Claire B CaudyUnited KingdomStephen Shaw NEGOTIATION
Ashley R TollnerUnited KingdomElwin Sharvill RENEWAL
Morrow L ChuiRussiaElwin Sharvill RENEWAL
Leja U GlickIndiaAnna Fali NEW
Jeanfrancois T CaudyCanadaAmy Elsner QUALIFIED
Greenwood O RimItalyAnna Fali PROPOSAL
Tony N KuskoRussiaOnyama Limba NEW
Jones P MorascaGermanyStephen Shaw PROPOSAL
Tony Q OstroskyCanadaBernardo Dominic NEGOTIATION
Adams X RutaItalyBernardo Dominic QUALIFIED
Misaki J FollerItalyStephen Shaw NEW
Antonio I DilliardSpainIoni Bowcher UNQUALIFIED
Isabel V SergiItalyAsiya Javayant RENEWAL
Cody L TollnerArgentinaOnyama Limba NEGOTIATION
James J StockhamBrazilStephen Shaw NEGOTIATION
James V OldroydItalyIvan Magalhaes NEGOTIATION
Johnson A PoquetteJapanElwin Sharvill NEGOTIATION
Aditya D PaprockiAustraliaOnyama Limba PROPOSAL
Adams K AmigonBrazilElwin Sharvill PROPOSAL
Jennifer Z OldroydArgentinaElwin Sharvill QUALIFIED
Francesco P GauchoBrazilIoni Bowcher NEGOTIATION
Alejandro U PaprockiUnited KingdomOnyama Limba QUALIFIED
Leja A AlbaresJapanOnyama Limba QUALIFIED
Chavez S WieserJapanAsiya Javayant UNQUALIFIED
Jeanfrancois G PaprockiFranceElwin Sharvill UNQUALIFIED
Silvio W VocelkaArgentinaAnna Fali PROPOSAL
Kadeem C BologniaArgentinaStephen Shaw NEGOTIATION
Maisha G ShinkoSpainAmy Elsner UNQUALIFIED
Aika E OstroskyJapanStephen Shaw PROPOSAL
Claire U DoeRussiaIvan Magalhaes NEGOTIATION
Claire P RulapaughJapanIvan Magalhaes UNQUALIFIED
Mujtaba H PoquetteSpainIvan Magalhaes PROPOSAL
Ivar K FlosiGermanyElwin Sharvill PROPOSAL
Emily S ShinkoCanadaAnna Fali NEGOTIATION
Juan F IturbideJapanIvan Magalhaes QUALIFIED
Octavia F FollerArgentinaIoni Bowcher RENEWAL
Nicolas K MaletFranceAmy Elsner UNQUALIFIED
Mujtaba M MaletRussiaAmy Elsner QUALIFIED
Frozen Columns
Name
Morrow H Garufi
Johnson J Stenseth
Deepesh W Wieser
Adams E Ostrosky
Izzy Q Gillian
Rodrigues E Darakjy
Leja E Bolognia
Wickens O Maclead
James F Saylors
Izzy O Malet
Kaitlin H Chui
Smith T Tollner
Arvin S Royster
Mayumi W Garufi
Costa F Stockham
Ricardo M Albares
Silvio H Perin
Cody M Ferencz
Nicolas K Figeroa
Jennifer A Vocelka
Aruna C Flosi
Leon P Saylors
Julie X Kolmetz
Jefferson G Foller
Cody G Nestle
Misaki T Briddick
Alejandro E Poquette
Aditya H Oldroyd
Jones V Waycott
Chavez P Dilliard
James X Paprocki
David X Figeroa
Francesco U Garufi
Leja G Venere
Darci K Bowley
Jones Y Perin
Maria Z Dilliard
Nicolas J Shinko
Rodrigues N Darakjy
Jeanfrancois S Butt
Ricardo F Tollner
Smith U Darakjy
Munro V Figeroa
Murillo V Chui
Mayumi F Gaucho
Murillo F Glick
Kaitlin X Royster
Alejandro N Malet
Stacey P Campain
Greenwood G Gaucho
IdCountryDate
1000India2026-07-02
1001Australia2026-07-02
1002United Kingdom2026-06-25
1003India2026-06-29
1004United Kingdom2026-06-19
1005India2026-06-06
1006Canada2026-06-11
1007United Kingdom2026-06-06
1008Italy2026-06-13
1009Japan2026-06-21
1010Germany2026-06-06
1011Russia2026-06-21
1012Spain2026-06-21
1013Italy2026-06-26
1014France2026-07-04
1015Argentina2026-06-08
1016Italy2026-06-25
1017Germany2026-06-11
1018Argentina2026-07-04
1019India2026-06-22
1020Spain2026-06-13
1021Australia2026-06-22
1022France2026-06-14
1023United Kingdom2026-06-23
1024Germany2026-06-10
1025Spain2026-06-26
1026Russia2026-06-23
1027Germany2026-07-04
1028Argentina2026-06-17
1029Australia2026-06-12
1030India2026-06-15
1031Argentina2026-06-26
1032France2026-07-03
1033Canada2026-06-27
1034Argentina2026-07-03
1035Argentina2026-06-16
1036Russia2026-06-28
1037Russia2026-06-13
1038Australia2026-06-16
1039United Kingdom2026-06-19
1040Russia2026-06-22
1041Argentina2026-06-24
1042Canada2026-07-04
1043Germany2026-06-20
1044United Kingdom2026-06-16
1045Germany2026-06-14
1046Japan2026-06-18
1047Canada2026-06-23
1048Australia2026-06-20
1049France2026-07-04

On-Demand Data

NameIdCountryDate
Jennifer L Kusko1000Australia2026-06-28
Claire F Rim1001Australia2026-06-17
Munro J Briddick1002Australia2026-06-18
Wickens S Flosi1003Germany2026-06-25
Wickens H Butt1004United Kingdom2026-06-21
Wickens F Tollner1005Japan2026-06-10
Emily M Poquette1006Argentina2026-06-12
Emily G Malet1007Spain2026-06-23
Salvatore A Albares1008Germany2026-06-24
Francesco M Darakjy1009Argentina2026-07-02
Jeanfrancois K Slusarski1010Japan2026-06-07
Claire M Amigon1011Japan2026-06-11
Maisha F Inouye1012Germany2026-06-19
Tony U Poquette1013Italy2026-06-26
Antonio B Doe1014Japan2026-07-02
Costa T Tollner1015Brazil2026-07-04
Faith D Nicka1016Canada2026-06-07
Leon Q Saylors1017Italy2026-06-16
Maria H Nestle1018Germany2026-06-21
Adams M Iturbide1019Germany2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco J MacleadUnited KingdomAmy Elsner PROPOSAL
Deepesh C NestleBrazilOnyama Limba RENEWAL
Faith Q BowleyIndiaIvan Magalhaes RENEWAL
Sinclair Z DilliardSpainStephen Shaw QUALIFIED
David B BologniaItalyOnyama Limba RENEWAL
Aika C IturbideIndiaAnna Fali UNQUALIFIED
Murillo L SlusarskiIndiaOnyama Limba UNQUALIFIED
Nicolas Z IturbideItalyOnyama Limba NEGOTIATION
Chavez G DoeIndiaStephen Shaw RENEWAL
Ashley Q CaudyAustraliaAsiya Javayant PROPOSAL
Kaitlin H AmigonAustraliaIvan Magalhaes NEW
Salvatore A VocelkaFranceBernardo Dominic NEGOTIATION
Ashley H SaylorsAustraliaElwin Sharvill PROPOSAL
Costa I StockhamFranceAsiya Javayant UNQUALIFIED
Wickens N StensethFranceElwin Sharvill UNQUALIFIED
Chavez G NestleUnited KingdomAnna Fali UNQUALIFIED
Tony Y SlusarskiRussiaXuxue Feng QUALIFIED
Deepesh R StockhamIndiaIvan Magalhaes NEGOTIATION
Mayumi W FollerJapanIvan Magalhaes NEW
Maria N BriddickSpainBernardo Dominic QUALIFIED
Cody S FollerGermanyStephen Shaw PROPOSAL
David Z MaletSpainXuxue Feng QUALIFIED
Julie R MorascaUnited KingdomOnyama Limba QUALIFIED
Silvio I DarakjyCanadaAsiya Javayant UNQUALIFIED
Aika K BowleyJapanOnyama Limba RENEWAL
Costa O PoquetteItalyAmy Elsner RENEWAL
Costa K DarakjyItalyOnyama Limba NEW
Clifford T CaldareraItalyXuxue Feng QUALIFIED
Alejandro C KolmetzArgentinaStephen Shaw NEW
Jones W IturbideIndiaXuxue Feng QUALIFIED
Isabel G BologniaSpainIoni Bowcher QUALIFIED
Leja G WaycottFranceElwin Sharvill NEGOTIATION
Mayumi C ShinkoGermanyAsiya Javayant NEW
Julie H WaycottCanadaAsiya Javayant NEGOTIATION
Misaki B KolmetzArgentinaBernardo Dominic NEW
Emily X SchemmerRussiaAnna Fali UNQUALIFIED
Johnson W NestleFranceAmy Elsner NEW
Smith O DoeJapanAnna Fali UNQUALIFIED
Adams O StockhamArgentinaAsiya Javayant UNQUALIFIED
Greenwood Y FigeroaArgentinaBernardo Dominic 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>