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
Ivar T OldroydUnited KingdomAnna Fali UNQUALIFIED
Arvin H AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
Chavez F KuskoIndiaIoni Bowcher NEGOTIATION
Tony Y GarufiIndiaIoni Bowcher NEGOTIATION
Kadeem Q VenereUnited KingdomBernardo Dominic PROPOSAL
Nicolas W DoeArgentinaIoni Bowcher RENEWAL
Adams H WhobreyRussiaAsiya Javayant NEW
Kadeem W WieserAustraliaOnyama Limba PROPOSAL
Emily B NestleJapanBernardo Dominic NEW
David M SaylorsRussiaStephen Shaw QUALIFIED
Juan V RulapaughSpainElwin Sharvill NEGOTIATION
Smith N RulapaughGermanyBernardo Dominic QUALIFIED
Chavez W AmigonAustraliaBernardo Dominic QUALIFIED
Adams C PaprockiGermanyElwin Sharvill UNQUALIFIED
Smith F CaldareraJapanElwin Sharvill RENEWAL
Smith V MarrierItalyBernardo Dominic UNQUALIFIED
Tony Y RoysterFranceBernardo Dominic NEW
Darci B SaylorsJapanBernardo Dominic QUALIFIED
Nicolas T InouyeSpainBernardo Dominic PROPOSAL
Jennifer X TollnerBrazilBernardo Dominic NEW
Ivar S ShinkoCanadaAsiya Javayant UNQUALIFIED
Nicolas H ButtJapanAsiya Javayant UNQUALIFIED
Kaitlin N MaletItalyXuxue Feng RENEWAL
Mayumi N OstroskyUnited KingdomAnna Fali QUALIFIED
Aruna T GarufiFranceOnyama Limba NEGOTIATION
Leon N FlosiUnited KingdomAnna Fali NEGOTIATION
Claire I BriddickBrazilStephen Shaw RENEWAL
Silvio H RoysterJapanBernardo Dominic NEGOTIATION
Darci V BologniaCanadaBernardo Dominic QUALIFIED
Isabel W DoeGermanyStephen Shaw UNQUALIFIED
Francesco K TollnerItalyIvan Magalhaes QUALIFIED
Mujtaba X NickaUnited KingdomOnyama Limba NEW
Ashley K StockhamRussiaStephen Shaw UNQUALIFIED
Francesco H GlickItalyAmy Elsner PROPOSAL
Wickens D VocelkaRussiaAnna Fali RENEWAL
Smith O StensethAustraliaStephen Shaw PROPOSAL
Maisha Q WhobreyGermanyStephen Shaw RENEWAL
Jennifer L VocelkaAustraliaStephen Shaw UNQUALIFIED
Isabel G WieserUnited KingdomAsiya Javayant RENEWAL
Misaki M PoquetteItalyAmy Elsner PROPOSAL
Stacey K ShinkoJapanElwin Sharvill QUALIFIED
Maisha B GillianRussiaOnyama Limba NEW
Julie O CaudyArgentinaIoni Bowcher PROPOSAL
Juan B DilliardItalyXuxue Feng NEGOTIATION
Greenwood C MarrierBrazilBernardo Dominic PROPOSAL
Emily W PoquetteAustraliaElwin Sharvill QUALIFIED
Maria T ButtRussiaBernardo Dominic PROPOSAL
David U BriddickRussiaAsiya Javayant UNQUALIFIED
Leja S FerenczItalyXuxue Feng QUALIFIED
Smith O SchemmerBrazilOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody I BowleyJapanStephen Shaw NEW
Rodrigues J NickaItalyAnna Fali PROPOSAL
Johnson L DarakjyGermanyStephen Shaw UNQUALIFIED
Rodrigues W FlosiJapanElwin Sharvill NEW
Chavez K MarrierUnited KingdomIvan Magalhaes QUALIFIED
James X BowleyUnited KingdomOnyama Limba RENEWAL
Ricardo H PaprockiFranceXuxue Feng UNQUALIFIED
Jefferson H WieserItalyElwin Sharvill UNQUALIFIED
Stacey H MarrierIndiaAsiya Javayant QUALIFIED
Salvatore D GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie N DilliardGermany2026-07-12King, Christopher A Esq RENEWAL78Elwin Sharvill
1001Mujtaba E GillianIndia2026-06-26Printing Dimensions PROPOSAL2Asiya Javayant
1002Claire V WhobreyAustralia2026-07-21Printing Dimensions PROPOSAL48Stephen Shaw
1003Ashley Q ChuiJapan2026-07-20King, Christopher A Esq QUALIFIED53Bernardo Dominic
1004Salvatore M NestleSpain2026-06-23Feltz Printing Service NEW99Bernardo Dominic
1005Maria I KuskoItaly2026-07-03Truhlar And Truhlar Attys PROPOSAL12Ivan Magalhaes
1006David C VocelkaBrazil2026-07-08Chapman, Ross E Esq RENEWAL24Ivan Magalhaes
1007Munro W SlusarskiGermany2026-07-01Printing Dimensions PROPOSAL6Ivan Magalhaes
1008Kadeem L StockhamItaly2026-07-11Dorl, James J Esq NEW43Anna Fali
1009Sinclair M MaletGermany2026-06-25Morlong Associates NEW6Elwin Sharvill
1010Misaki F CaldareraGermany2026-06-23Feiner Bros NEW74Amy Elsner
1011Misaki D ButtCanada2026-06-24Rangoni Of Florence PROPOSAL75Asiya Javayant
1012Leja F BowleyAustralia2026-06-29Chanay, Jeffrey A Esq PROPOSAL83Asiya Javayant
1013Maisha Q ChuiFrance2026-06-28Chemel, James L Cpa QUALIFIED72Amy Elsner
1014Jones P ShinkoFrance2026-07-07Chanay, Jeffrey A Esq NEGOTIATION51Ivan Magalhaes
1015Ashley D NestleUnited Kingdom2026-07-18Chanay, Jeffrey A Esq NEW90Ioni Bowcher
1016Murillo M WhobreyJapan2026-07-19Dorl, James J Esq RENEWAL65Xuxue Feng
1017Octavia R GillianJapan2026-06-24Rousseaux, Michael Esq QUALIFIED9Elwin Sharvill
1018Alejandro L CampainRussia2026-07-06Buckley Miller Wright RENEWAL24Asiya Javayant
1019Leja E DilliardArgentina2026-07-04Feltz Printing Service UNQUALIFIED58Amy Elsner
1020Cody H OstroskyArgentina2026-07-01Feiner Bros QUALIFIED7Xuxue Feng
1021Arvin L MacleadUnited Kingdom2026-07-12Feiner Bros NEW84Xuxue Feng
1022Kaitlin F FollerArgentina2026-06-27Dorl, James J Esq RENEWAL40Elwin Sharvill
1023Izzy Y GillianAustralia2026-06-23Chapman, Ross E Esq NEW28Asiya Javayant
1024Misaki O SaylorsBrazil2026-07-20King, Christopher A Esq QUALIFIED69Asiya Javayant
1025Clifford A FerenczFrance2026-06-29Morlong Associates UNQUALIFIED61Xuxue Feng
1026Munro J SchemmerFrance2026-07-04Rangoni Of Florence RENEWAL67Xuxue Feng
1027Misaki Z OstroskySpain2026-07-08King, Christopher A Esq PROPOSAL30Onyama Limba
1028Kaitlin H GlickCanada2026-07-05Feltz Printing Service QUALIFIED62Anna Fali
1029Smith A SergiIndia2026-07-11Commercial Press QUALIFIED82Elwin Sharvill
1030Murillo M FigeroaBrazil2026-07-12Benton, John B Jr UNQUALIFIED41Stephen Shaw
1031Darci D PerinRussia2026-06-26Truhlar And Truhlar Attys QUALIFIED21Amy Elsner
1032David C SlusarskiCanada2026-07-17Feiner Bros UNQUALIFIED34Elwin Sharvill
1033Murillo L WieserItaly2026-07-16Rousseaux, Michael Esq UNQUALIFIED80Elwin Sharvill
1034Tony S PoquetteGermany2026-07-22Feltz Printing Service QUALIFIED73Asiya Javayant
1035Octavia W ChuiGermany2026-07-08Truhlar And Truhlar Attys NEW70Elwin Sharvill
1036David A StockhamIndia2026-07-01Morlong Associates UNQUALIFIED39Ioni Bowcher
1037James J OldroydIndia2026-07-19Chapman, Ross E Esq PROPOSAL64Anna Fali
1038James X AlbaresCanada2026-06-30Feltz Printing Service RENEWAL9Anna Fali
1039Jones V VocelkaFrance2026-07-02Commercial Press QUALIFIED53Ivan Magalhaes
1040Faith L MacleadAustralia2026-07-04King, Christopher A Esq UNQUALIFIED45Bernardo Dominic
1041Ivar S SchemmerItaly2026-06-24Rousseaux, Michael Esq NEGOTIATION31Anna Fali
1042Misaki P AlbaresArgentina2026-07-05Buckley Miller Wright PROPOSAL71Onyama Limba
1043Juan X StockhamArgentina2026-07-09Benton, John B Jr PROPOSAL10Ivan Magalhaes
1044Mujtaba V BriddickJapan2026-07-20Feltz Printing Service NEGOTIATION42Amy Elsner
1045Salvatore B MaletFrance2026-07-04Commercial Press NEW13Onyama Limba
1046Mayumi K DilliardSpain2026-06-25Printing Dimensions NEW52Onyama Limba
1047Juan S FlosiArgentina2026-07-18King, Christopher A Esq NEGOTIATION50Stephen Shaw
1048James P MarrierAustralia2026-06-29Dorl, James J Esq NEW20Asiya Javayant
1049Claire Q VocelkaUnited Kingdom2026-06-28Feltz Printing Service QUALIFIED45Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Nicolas N PoquetteGermanyAmy Elsner PROPOSAL
Maisha R WhobreyFranceAnna Fali NEGOTIATION
Leja R FigeroaSpainIoni Bowcher NEW
Aruna C GarufiUnited KingdomXuxue Feng QUALIFIED
Nicolas C VocelkaCanadaStephen Shaw QUALIFIED
Ricardo E NickaUnited KingdomAmy Elsner QUALIFIED
Mayumi X DilliardAustraliaStephen Shaw NEW
Murillo A SlusarskiSpainXuxue Feng NEW
Faith I MaletUnited KingdomBernardo Dominic RENEWAL
Francesco V MaletArgentinaAsiya Javayant NEW
Maria D SchemmerUnited KingdomElwin Sharvill NEW
Johnson D WaycottIndiaOnyama Limba RENEWAL
David N BriddickGermanyIoni Bowcher RENEWAL
Jeanfrancois B BriddickSpainAnna Fali NEGOTIATION
Aruna W MaletFranceOnyama Limba PROPOSAL
Darci B FigeroaBrazilBernardo Dominic NEW
Izzy V GauchoAustraliaAmy Elsner RENEWAL
Munro O CampainFranceBernardo Dominic PROPOSAL
Arvin F BologniaItalyXuxue Feng NEW
Alejandro O NickaSpainAsiya Javayant PROPOSAL
Ashley N StockhamAustraliaAmy Elsner RENEWAL
Stacey L VocelkaUnited KingdomAsiya Javayant QUALIFIED
Salvatore H InouyeCanadaAnna Fali UNQUALIFIED
Julie I NickaGermanyAnna Fali RENEWAL
Jefferson M SergiIndiaBernardo Dominic QUALIFIED
Silvio L BriddickRussiaElwin Sharvill NEGOTIATION
Johnson O KolmetzBrazilStephen Shaw RENEWAL
Darci J SlusarskiFranceStephen Shaw NEW
Isabel I SergiRussiaElwin Sharvill QUALIFIED
Ricardo S FigeroaArgentinaIvan Magalhaes QUALIFIED
Mujtaba F SaylorsSpainStephen Shaw QUALIFIED
Johnson M CampainRussiaAmy Elsner UNQUALIFIED
James Y GillianFranceBernardo Dominic QUALIFIED
Octavia T SlusarskiUnited KingdomStephen Shaw PROPOSAL
Ivar J NickaCanadaXuxue Feng UNQUALIFIED
Wickens S SlusarskiFranceIoni Bowcher UNQUALIFIED
Jefferson B FollerJapanStephen Shaw QUALIFIED
Claire T CampainUnited KingdomXuxue Feng UNQUALIFIED
Kaitlin L ChuiItalyElwin Sharvill NEW
Octavia L KolmetzIndiaXuxue Feng NEGOTIATION
Murillo A GauchoGermanyAmy Elsner QUALIFIED
Misaki O MorascaRussiaStephen Shaw NEW
Leon Z DoeRussiaElwin Sharvill RENEWAL
Aika J NickaItalyElwin Sharvill NEW
Izzy S VocelkaRussiaElwin Sharvill QUALIFIED
Deepesh X StensethRussiaAsiya Javayant NEW
Greenwood M RoysterRussiaXuxue Feng UNQUALIFIED
Misaki A StockhamArgentinaElwin Sharvill QUALIFIED
Munro G SchemmerUnited KingdomBernardo Dominic PROPOSAL
Cody V WhobreyAustraliaAmy Elsner PROPOSAL
Frozen Columns
Name
James Z Caldarera
Munro K Tollner
Julie C Briddick
Adams F Glick
Silvio E Sergi
Clifford M Stockham
Jefferson M Kusko
Maria M Figeroa
Cody Q Tollner
Ashley M Ostrosky
Rodrigues J Nestle
Kadeem R Caudy
Isabel D Slusarski
Cody T Caudy
Murillo T Sergi
Nicolas T Perin
Aika D Venere
Nicolas X Briddick
Cody U Ruta
Ivar I Butt
Faith Y Gaucho
Julie C Poquette
Mayumi E Malet
Aruna Q Whobrey
Kadeem R Kolmetz
Jennifer O Campain
Munro H Kusko
Sinclair U Tollner
Misaki V Slusarski
Murillo W Darakjy
Johnson L Wieser
Jones V Tollner
Clifford H Kolmetz
Tony Q Amigon
Aruna W Gaucho
David I Ferencz
Sinclair I Poquette
Aditya K Stenseth
Cody Y Paprocki
Claire O Ferencz
Rodrigues T Flosi
Isabel D Morasca
Julie E Poquette
Claire J Ferencz
Antonio Q Ruta
Antonio H Bowley
Ivar W Whobrey
Misaki L Poquette
Wickens J Slusarski
Greenwood L Slusarski
IdCountryDate
1000United Kingdom2026-07-05
1001Brazil2026-07-11
1002Argentina2026-07-07
1003Argentina2026-07-11
1004Argentina2026-06-25
1005India2026-07-09
1006Japan2026-07-20
1007Australia2026-07-10
1008Russia2026-06-29
1009India2026-06-27
1010Germany2026-07-20
1011Argentina2026-06-23
1012Japan2026-06-28
1013Russia2026-07-02
1014Argentina2026-06-29
1015Russia2026-06-23
1016Australia2026-06-26
1017United Kingdom2026-07-21
1018Japan2026-07-13
1019Germany2026-07-12
1020Spain2026-07-06
1021Russia2026-07-09
1022Canada2026-06-27
1023Japan2026-06-23
1024Australia2026-07-22
1025Brazil2026-07-13
1026Russia2026-07-16
1027Australia2026-06-24
1028Japan2026-07-22
1029Russia2026-07-05
1030Brazil2026-07-04
1031India2026-07-19
1032Australia2026-06-26
1033Argentina2026-07-13
1034France2026-07-01
1035Japan2026-07-12
1036Australia2026-06-28
1037India2026-06-26
1038Brazil2026-07-10
1039Italy2026-06-28
1040Spain2026-07-07
1041Spain2026-06-25
1042Argentina2026-06-24
1043Italy2026-07-01
1044Canada2026-07-09
1045Russia2026-07-21
1046United Kingdom2026-06-30
1047France2026-07-17
1048Russia2026-07-03
1049Japan2026-07-22

On-Demand Data

NameIdCountryDate
Darci F Campain1000Brazil2026-07-12
Cody O Ostrosky1001Russia2026-06-23
Munro I Rim1002Italy2026-07-19
Kaitlin P Stockham1003India2026-07-20
Johnson G Bowley1004Argentina2026-06-23
Maisha B Oldroyd1005Germany2026-07-21
Izzy T Flosi1006Japan2026-07-11
Aika N Flosi1007Canada2026-07-15
Leon F Sergi1008Brazil2026-06-27
Kadeem P Rim1009Japan2026-07-16
Isabel V Caldarera1010Spain2026-07-20
Antonio F Saylors1011Russia2026-07-19
Antonio J Wieser1012Australia2026-06-26
Izzy L Saylors1013Italy2026-07-13
Izzy J Iturbide1014Russia2026-07-16
Aditya X Morasca1015United Kingdom2026-07-02
Costa M Doe1016Germany2026-07-05
Maria L Poquette1017Japan2026-07-03
Clifford M Campain1018France2026-07-16
Misaki Y Chui1019India2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley E SchemmerJapanBernardo Dominic RENEWAL
Jeanfrancois D DilliardFranceAmy Elsner QUALIFIED
Aditya Q RutaUnited KingdomXuxue Feng QUALIFIED
Murillo G PerinUnited KingdomAnna Fali RENEWAL
Jeanfrancois S PoquetteSpainBernardo Dominic QUALIFIED
Deepesh G SlusarskiUnited KingdomStephen Shaw PROPOSAL
Misaki V CaldareraUnited KingdomOnyama Limba UNQUALIFIED
Mujtaba A ButtBrazilOnyama Limba NEGOTIATION
Aika F BologniaIndiaIvan Magalhaes PROPOSAL
Jennifer W BowleyAustraliaIvan Magalhaes NEGOTIATION
Sinclair K BologniaJapanStephen Shaw QUALIFIED
Nicolas C RoysterFranceAsiya Javayant QUALIFIED
Silvio H CampainItalyOnyama Limba PROPOSAL
James B ShinkoItalyBernardo Dominic NEGOTIATION
Ivar W CaldareraJapanAnna Fali RENEWAL
Alejandro T MorascaSpainXuxue Feng QUALIFIED
Clifford K IturbideAustraliaIvan Magalhaes PROPOSAL
Ricardo X PerinCanadaIvan Magalhaes PROPOSAL
Julie Q BriddickSpainStephen Shaw NEGOTIATION
Johnson W AlbaresUnited KingdomStephen Shaw QUALIFIED
Jones G MaletFranceAmy Elsner RENEWAL
Costa M TollnerCanadaElwin Sharvill RENEWAL
Alejandro G SchemmerUnited KingdomAsiya Javayant PROPOSAL
Juan Z RutaIndiaXuxue Feng PROPOSAL
Kadeem R OstroskyGermanyIoni Bowcher QUALIFIED
Nicolas D TollnerGermanyAnna Fali PROPOSAL
Leon U SergiCanadaStephen Shaw RENEWAL
Greenwood U DarakjyAustraliaAsiya Javayant UNQUALIFIED
Darci G BriddickAustraliaIvan Magalhaes NEW
Francesco A InouyeCanadaIvan Magalhaes RENEWAL
Ivar H SlusarskiFranceElwin Sharvill UNQUALIFIED
Murillo V SaylorsRussiaElwin Sharvill NEGOTIATION
Morrow C IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Claire S StensethUnited KingdomStephen Shaw PROPOSAL
Kaitlin S ChuiGermanyStephen Shaw NEW
Nicolas T CaudyBrazilXuxue Feng NEW
Claire L PaprockiJapanBernardo Dominic UNQUALIFIED
Greenwood C BriddickBrazilIoni Bowcher NEGOTIATION
Jefferson R WhobreyArgentinaElwin Sharvill RENEWAL
James E FerenczCanadaAnna Fali 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>