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
Adams W MorascaUnited KingdomAnna Fali QUALIFIED
Murillo T KolmetzUnited KingdomAmy Elsner RENEWAL
Leon Y CaudyGermanyAsiya Javayant NEGOTIATION
Leja G ChuiItalyAsiya Javayant QUALIFIED
Emily A VocelkaGermanyXuxue Feng PROPOSAL
Rodrigues S RutaAustraliaXuxue Feng RENEWAL
Smith R StensethSpainIvan Magalhaes RENEWAL
Tony B ButtSpainIoni Bowcher RENEWAL
Kaitlin I FerenczCanadaStephen Shaw NEGOTIATION
Deepesh C DarakjyBrazilElwin Sharvill RENEWAL
Octavia L MacleadItalyBernardo Dominic NEGOTIATION
Johnson G PoquetteGermanyStephen Shaw NEGOTIATION
Isabel W DarakjyJapanIvan Magalhaes PROPOSAL
Maria M RimCanadaBernardo Dominic NEW
Jones N BowleyBrazilIvan Magalhaes PROPOSAL
James O RutaRussiaIvan Magalhaes UNQUALIFIED
Mayumi K BriddickGermanyElwin Sharvill RENEWAL
Smith G FlosiIndiaAnna Fali PROPOSAL
Adams Z GarufiFranceAnna Fali RENEWAL
Misaki A OstroskyArgentinaBernardo Dominic NEW
Sinclair X SlusarskiArgentinaXuxue Feng PROPOSAL
Adams G ButtAustraliaIoni Bowcher RENEWAL
Mayumi C FigeroaGermanyAmy Elsner NEW
Smith Q RutaIndiaXuxue Feng NEGOTIATION
Maria I CaudyCanadaElwin Sharvill RENEWAL
Jeanfrancois B TollnerAustraliaOnyama Limba NEGOTIATION
Francesco W BowleySpainAnna Fali PROPOSAL
Maisha R OldroydAustraliaAnna Fali NEGOTIATION
David E BologniaGermanyAnna Fali QUALIFIED
Mujtaba V SchemmerCanadaIoni Bowcher PROPOSAL
Silvio Q OldroydIndiaElwin Sharvill NEGOTIATION
Morrow M VocelkaAustraliaXuxue Feng NEGOTIATION
Wickens W FerenczFranceStephen Shaw RENEWAL
Francesco X MarrierAustraliaAmy Elsner NEW
Greenwood R MaletCanadaOnyama Limba UNQUALIFIED
Ricardo P MacleadCanadaElwin Sharvill PROPOSAL
Maria K ShinkoGermanyAmy Elsner NEW
Izzy K GarufiUnited KingdomBernardo Dominic QUALIFIED
Juan L MorascaGermanyOnyama Limba NEW
Izzy B VenereGermanyBernardo Dominic NEW
Nicolas K BologniaBrazilAsiya Javayant PROPOSAL
Leja Q MorascaJapanXuxue Feng NEW
Ashley O RoysterCanadaXuxue Feng NEGOTIATION
Faith R GauchoUnited KingdomXuxue Feng QUALIFIED
Jones K SchemmerGermanyAmy Elsner NEW
Murillo V SaylorsAustraliaAsiya Javayant NEW
Jeanfrancois U GauchoRussiaAsiya Javayant PROPOSAL
Johnson V SergiFranceIvan Magalhaes QUALIFIED
Deepesh K ShinkoGermanyStephen Shaw PROPOSAL
Emily A SaylorsBrazilElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony O KuskoAustraliaIoni Bowcher RENEWAL
Juan E WieserUnited KingdomAsiya Javayant RENEWAL
Cody F FlosiRussiaStephen Shaw NEW
James V MorascaFranceElwin Sharvill NEW
Kadeem X RoysterCanadaXuxue Feng QUALIFIED
Jones D AmigonCanadaAmy Elsner UNQUALIFIED
Claire W SergiBrazilOnyama Limba QUALIFIED
Nicolas T ChuiRussiaIvan Magalhaes PROPOSAL
Murillo P CaldareraItalyIoni Bowcher PROPOSAL
Kadeem F DarakjyItalyAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci O WhobreyArgentina2026-06-23Morlong Associates UNQUALIFIED16Asiya Javayant
1001Morrow B BriddickFrance2026-06-04Printing Dimensions UNQUALIFIED52Anna Fali
1002Deepesh U MaletGermany2026-06-13Chapman, Ross E Esq QUALIFIED30Onyama Limba
1003Leon Y DilliardBrazil2026-06-10Rousseaux, Michael Esq RENEWAL77Elwin Sharvill
1004Costa N WhobreyUnited Kingdom2026-06-03Feltz Printing Service UNQUALIFIED21Stephen Shaw
1005Deepesh B RoysterArgentina2026-06-18Chanay, Jeffrey A Esq NEGOTIATION43Elwin Sharvill
1006Tony P FollerCanada2026-06-26Rousseaux, Michael Esq QUALIFIED50Stephen Shaw
1007David B NickaItaly2026-06-13Rousseaux, Michael Esq NEW0Stephen Shaw
1008Tony C GillianArgentina2026-06-18Feltz Printing Service RENEWAL48Amy Elsner
1009Arvin U PoquetteAustralia2026-06-30Chanay, Jeffrey A Esq UNQUALIFIED6Stephen Shaw
1010Costa R StensethFrance2026-06-03King, Christopher A Esq PROPOSAL23Asiya Javayant
1011Tony N MaletItaly2026-06-16Rangoni Of Florence NEGOTIATION69Onyama Limba
1012Tony U InouyeIndia2026-06-04Printing Dimensions RENEWAL76Elwin Sharvill
1013Silvio W MarrierBrazil2026-06-09Buckley Miller Wright QUALIFIED41Ivan Magalhaes
1014Leja L CaldareraGermany2026-06-30Benton, John B Jr NEW41Amy Elsner
1015Leon S MarrierUnited Kingdom2026-06-05Chanay, Jeffrey A Esq UNQUALIFIED72Onyama Limba
1016Salvatore S SlusarskiGermany2026-06-24Printing Dimensions RENEWAL9Anna Fali
1017Ashley C KolmetzBrazil2026-06-23Dorl, James J Esq UNQUALIFIED21Xuxue Feng
1018Wickens K KolmetzUnited Kingdom2026-06-12Dorl, James J Esq PROPOSAL2Asiya Javayant
1019Jeanfrancois L CampainSpain2026-07-02Morlong Associates PROPOSAL4Ivan Magalhaes
1020Isabel F PerinFrance2026-06-17Printing Dimensions NEW37Onyama Limba
1021Mayumi C BowleyBrazil2026-06-20Commercial Press NEW90Bernardo Dominic
1022Chavez E MaletSpain2026-07-01Feiner Bros UNQUALIFIED56Asiya Javayant
1023Tony H ButtBrazil2026-06-11Rousseaux, Michael Esq UNQUALIFIED94Ivan Magalhaes
1024Smith I StockhamIndia2026-06-27Chemel, James L Cpa NEW23Ioni Bowcher
1025Leon S FerenczFrance2026-06-22Feltz Printing Service NEW57Onyama Limba
1026Tony G RulapaughBrazil2026-06-08King, Christopher A Esq NEW46Amy Elsner
1027Leon K ShinkoRussia2026-06-06Dorl, James J Esq UNQUALIFIED15Xuxue Feng
1028Octavia U GarufiJapan2026-06-06Benton, John B Jr RENEWAL92Anna Fali
1029Chavez W TollnerAustralia2026-06-24King, Christopher A Esq NEW36Onyama Limba
1030Alejandro E ChuiUnited Kingdom2026-06-15King, Christopher A Esq QUALIFIED38Elwin Sharvill
1031Salvatore D NestleBrazil2026-06-22Morlong Associates RENEWAL79Xuxue Feng
1032Ivar P SergiUnited Kingdom2026-06-14Printing Dimensions RENEWAL31Ivan Magalhaes
1033Mayumi X NestleSpain2026-06-15Dorl, James J Esq QUALIFIED92Onyama Limba
1034Alejandro G ButtGermany2026-06-13King, Christopher A Esq QUALIFIED20Amy Elsner
1035Murillo M StockhamItaly2026-06-11Morlong Associates NEW96Ivan Magalhaes
1036Ricardo Q CampainRussia2026-06-11Rangoni Of Florence NEGOTIATION56Onyama Limba
1037Claire Z DoeCanada2026-06-15Feltz Printing Service NEW48Bernardo Dominic
1038Morrow M GillianArgentina2026-06-22Benton, John B Jr UNQUALIFIED16Xuxue Feng
1039Alejandro F CaldareraGermany2026-06-07Dorl, James J Esq NEGOTIATION53Bernardo Dominic
1040Ricardo V NestleSpain2026-07-02Dorl, James J Esq NEGOTIATION67Onyama Limba
1041Aika Y DoeCanada2026-06-29Feiner Bros NEW13Elwin Sharvill
1042Kadeem H PerinUnited Kingdom2026-06-10Morlong Associates NEW15Ivan Magalhaes
1043Arvin N StensethCanada2026-06-18Rousseaux, Michael Esq NEGOTIATION24Elwin Sharvill
1044Leon X OldroydBrazil2026-06-29Printing Dimensions RENEWAL10Asiya Javayant
1045James E MaletArgentina2026-06-28Chemel, James L Cpa NEW78Elwin Sharvill
1046Francesco G SaylorsRussia2026-06-10Dorl, James J Esq RENEWAL37Stephen Shaw
1047Smith T FigeroaBrazil2026-06-15Chemel, James L Cpa RENEWAL53Bernardo Dominic
1048Clifford G StockhamBrazil2026-06-28Feltz Printing Service RENEWAL1Ioni Bowcher
1049Munro Q MorascaArgentina2026-06-06Chemel, James L Cpa UNQUALIFIED28Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jones T BologniaFranceIvan Magalhaes QUALIFIED
Silvio R OstroskyCanadaStephen Shaw NEW
Leja U VenereUnited KingdomBernardo Dominic NEGOTIATION
Ashley I PerinFranceBernardo Dominic QUALIFIED
Alejandro J StensethArgentinaAmy Elsner NEW
Jones W WhobreyBrazilIoni Bowcher RENEWAL
Maria F ButtAustraliaBernardo Dominic RENEWAL
James J CaudyUnited KingdomIoni Bowcher PROPOSAL
Maisha H SaylorsFranceBernardo Dominic PROPOSAL
Aruna O CaldareraRussiaAmy Elsner PROPOSAL
Aika M NestleAustraliaStephen Shaw RENEWAL
Mujtaba J MaletGermanyIvan Magalhaes PROPOSAL
Adams Z ChuiUnited KingdomAmy Elsner UNQUALIFIED
Greenwood A VenereSpainAsiya Javayant RENEWAL
Cody J FigeroaFranceIvan Magalhaes RENEWAL
Kadeem G MaletArgentinaElwin Sharvill UNQUALIFIED
Antonio Z WhobreyGermanyOnyama Limba NEGOTIATION
Ricardo B DoeSpainAsiya Javayant QUALIFIED
Ricardo J ShinkoGermanyAmy Elsner UNQUALIFIED
Arvin T StockhamCanadaIoni Bowcher QUALIFIED
Aruna R PoquetteGermanyAmy Elsner QUALIFIED
Kadeem L ChuiAustraliaXuxue Feng RENEWAL
Smith R StockhamItalyBernardo Dominic NEW
Munro G WaycottUnited KingdomAnna Fali QUALIFIED
Adams N FigeroaAustraliaXuxue Feng UNQUALIFIED
Aruna E GauchoItalyAsiya Javayant NEW
Maisha Z PaprockiFranceAsiya Javayant RENEWAL
Nicolas L DilliardUnited KingdomAmy Elsner PROPOSAL
Silvio H DarakjyGermanyXuxue Feng QUALIFIED
Isabel I DoeGermanyBernardo Dominic UNQUALIFIED
Costa I VenereArgentinaIoni Bowcher RENEWAL
Chavez C CampainBrazilIoni Bowcher UNQUALIFIED
Jones A FlosiGermanyOnyama Limba RENEWAL
David F StensethSpainXuxue Feng QUALIFIED
Faith K VocelkaGermanyStephen Shaw QUALIFIED
Aika I StockhamRussiaIvan Magalhaes RENEWAL
Misaki V GillianFranceBernardo Dominic QUALIFIED
Maisha K WaycottSpainBernardo Dominic NEGOTIATION
Juan U InouyeSpainIvan Magalhaes PROPOSAL
Aruna B NickaAustraliaStephen Shaw NEGOTIATION
Kaitlin K GauchoItalyOnyama Limba PROPOSAL
Morrow S GlickFranceElwin Sharvill NEGOTIATION
Aditya X VocelkaSpainStephen Shaw QUALIFIED
Murillo V OstroskySpainStephen Shaw PROPOSAL
Sinclair N InouyeRussiaXuxue Feng RENEWAL
James O RimGermanyAsiya Javayant QUALIFIED
Arvin C PoquetteGermanyAsiya Javayant NEW
Cody T IturbideSpainIoni Bowcher NEW
Leon R NestleFranceAnna Fali NEW
Maria A DilliardJapanIvan Magalhaes QUALIFIED
Frozen Columns
Name
Aruna K Flosi
Leja X Iturbide
Jefferson U Ruta
Wickens J Whobrey
Ashley X Morasca
Nicolas F Nestle
Aika X Dilliard
Munro F Sergi
Isabel M Caudy
David S Figeroa
Mujtaba Q Ostrosky
Ashley K Oldroyd
Maisha J Perin
Nicolas C Nestle
Alejandro L Marrier
Julie N Foller
Adams G Morasca
Cody R Ruta
Kadeem I Nestle
Tony N Saylors
Johnson X Vocelka
Ricardo J Vocelka
Arvin V Albares
Cody D Poquette
Ivar K Kusko
Mujtaba I Royster
Morrow D Bowley
Nicolas N Ferencz
Leja J Rulapaugh
Sinclair K Stenseth
Maisha E Vocelka
Chavez F Glick
Mujtaba A Amigon
Sinclair U Gaucho
Darci S Doe
Rodrigues I Sergi
Jefferson E Morasca
Sinclair I Chui
Maria H Slusarski
Stacey D Glick
Darci F Campain
Aika Q Iturbide
Clifford U Saylors
Greenwood B Tollner
Kadeem W Morasca
Silvio Y Albares
Claire H Wieser
Darci D Foller
Julie I Perin
Kadeem L Paprocki
IdCountryDate
1000France2026-06-24
1001France2026-06-28
1002Argentina2026-06-21
1003United Kingdom2026-06-11
1004Germany2026-06-07
1005Germany2026-06-23
1006Australia2026-06-09
1007United Kingdom2026-06-30
1008France2026-06-18
1009Germany2026-06-13
1010Japan2026-06-05
1011Spain2026-06-16
1012United Kingdom2026-06-12
1013Russia2026-06-27
1014Germany2026-06-23
1015France2026-07-02
1016Italy2026-06-30
1017Japan2026-06-09
1018Argentina2026-07-02
1019Russia2026-06-19
1020United Kingdom2026-06-24
1021Argentina2026-06-15
1022Australia2026-06-24
1023United Kingdom2026-06-18
1024Japan2026-06-22
1025Canada2026-06-08
1026United Kingdom2026-06-24
1027Spain2026-06-15
1028United Kingdom2026-06-03
1029Italy2026-06-22
1030France2026-06-09
1031United Kingdom2026-06-12
1032Spain2026-06-17
1033Italy2026-06-25
1034France2026-06-22
1035Spain2026-06-24
1036Brazil2026-06-25
1037Russia2026-06-10
1038Canada2026-06-11
1039Italy2026-06-23
1040India2026-06-16
1041United Kingdom2026-06-26
1042Japan2026-06-05
1043Canada2026-06-27
1044Russia2026-06-29
1045Spain2026-06-05
1046Brazil2026-06-19
1047Japan2026-06-11
1048Argentina2026-06-03
1049Canada2026-06-11

On-Demand Data

NameIdCountryDate
Juan K Venere1000Spain2026-06-21
Johnson E Rim1001Russia2026-06-17
Tony Q Royster1002Italy2026-06-13
Clifford N Schemmer1003Argentina2026-06-17
Costa N Royster1004Germany2026-06-23
Darci K Malet1005Japan2026-06-22
Greenwood L Sergi1006India2026-06-19
Kadeem S Garufi1007Brazil2026-06-08
Francesco C Morasca1008United Kingdom2026-07-01
Jones N Saylors1009Japan2026-06-30
Aditya N Gillian1010Brazil2026-06-20
Darci U Tollner1011Argentina2026-06-05
Francesco P Campain1012Australia2026-06-21
Leon W Rim1013Russia2026-07-01
Morrow Y Albares1014Brazil2026-06-22
Claire S Morasca1015Russia2026-06-19
Silvio Q Rim1016Russia2026-06-27
Francesco O Perin1017Spain2026-06-05
Mayumi U Caudy1018Russia2026-06-20
Ricardo X Chui1019Russia2026-06-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford K TollnerBrazilXuxue Feng NEW
Maisha H RulapaughJapanIoni Bowcher UNQUALIFIED
Silvio D WaycottCanadaIoni Bowcher NEW
Faith N GarufiIndiaXuxue Feng QUALIFIED
Jennifer Q SlusarskiJapanAnna Fali NEGOTIATION
Ricardo R OldroydSpainBernardo Dominic QUALIFIED
Maisha E WhobreyIndiaIoni Bowcher NEGOTIATION
Rodrigues Y SaylorsUnited KingdomOnyama Limba RENEWAL
Clifford Z NickaArgentinaXuxue Feng RENEWAL
Juan S KuskoRussiaIoni Bowcher QUALIFIED
Johnson E DilliardCanadaElwin Sharvill RENEWAL
Leja A SergiBrazilBernardo Dominic NEW
Octavia Y MacleadCanadaStephen Shaw NEW
Deepesh P MorascaJapanIoni Bowcher NEW
Leja Z SchemmerItalyXuxue Feng NEW
Ricardo F MaletBrazilStephen Shaw NEW
Nicolas G TollnerIndiaAsiya Javayant RENEWAL
Sinclair J NickaGermanyOnyama Limba QUALIFIED
Salvatore Z VenereRussiaAmy Elsner PROPOSAL
Munro W FerenczFranceIoni Bowcher QUALIFIED
Rodrigues X RoysterFranceBernardo Dominic RENEWAL
Juan E SlusarskiRussiaElwin Sharvill QUALIFIED
Johnson N WieserUnited KingdomAsiya Javayant RENEWAL
Darci L InouyeBrazilOnyama Limba RENEWAL
Silvio J MarrierBrazilStephen Shaw UNQUALIFIED
Clifford S OstroskyFranceBernardo Dominic NEW
James Z BologniaFranceAmy Elsner NEW
Octavia H SergiSpainXuxue Feng QUALIFIED
Misaki U BriddickBrazilAsiya Javayant RENEWAL
Misaki U FlosiAustraliaIoni Bowcher UNQUALIFIED
Salvatore K PoquetteSpainBernardo Dominic PROPOSAL
Antonio F CaudyCanadaAmy Elsner PROPOSAL
Julie T MarrierJapanStephen Shaw QUALIFIED
Rodrigues V AmigonItalyIvan Magalhaes UNQUALIFIED
Mayumi T WaycottIndiaXuxue Feng PROPOSAL
David W AlbaresGermanyIvan Magalhaes NEW
Silvio L CaldareraArgentinaBernardo Dominic RENEWAL
Aditya B RutaItalyIoni Bowcher PROPOSAL
Kaitlin E AmigonGermanyAnna Fali NEGOTIATION
Ashley L BowleySpainAsiya 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>