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
Octavia I NestleRussiaBernardo Dominic PROPOSAL
Nicolas F SaylorsArgentinaIvan Magalhaes NEGOTIATION
Silvio X OstroskyBrazilAnna Fali UNQUALIFIED
Jefferson I NickaGermanyIvan Magalhaes QUALIFIED
Ricardo U AlbaresFranceIoni Bowcher RENEWAL
Jeanfrancois H CampainJapanBernardo Dominic RENEWAL
Jennifer O GillianRussiaXuxue Feng NEW
Nicolas M WaycottJapanBernardo Dominic NEGOTIATION
Wickens M PerinAustraliaAmy Elsner RENEWAL
Alejandro F SlusarskiAustraliaElwin Sharvill NEW
Aika Q ChuiBrazilOnyama Limba NEGOTIATION
Murillo E GarufiAustraliaAmy Elsner UNQUALIFIED
Maria T ChuiArgentinaBernardo Dominic NEW
Julie C CaudyArgentinaBernardo Dominic NEW
Murillo S WaycottAustraliaBernardo Dominic NEGOTIATION
Darci V ShinkoFranceBernardo Dominic NEW
Costa G SergiAustraliaStephen Shaw RENEWAL
Alejandro Q GarufiBrazilXuxue Feng QUALIFIED
Aditya I BriddickJapanBernardo Dominic UNQUALIFIED
Ricardo U RimAustraliaAsiya Javayant PROPOSAL
Tony U NestleSpainAnna Fali UNQUALIFIED
Chavez K PerinIndiaIvan Magalhaes PROPOSAL
Claire A PoquetteCanadaAsiya Javayant NEW
Maisha U ButtJapanBernardo Dominic NEW
Francesco P MarrierGermanyXuxue Feng UNQUALIFIED
Deepesh F GarufiSpainAmy Elsner RENEWAL
Aditya N MarrierJapanAmy Elsner QUALIFIED
Claire P PaprockiFranceAnna Fali NEGOTIATION
Claire K FerenczAustraliaIoni Bowcher NEGOTIATION
Sinclair H FerenczCanadaIoni Bowcher QUALIFIED
Jennifer Q DilliardAustraliaXuxue Feng RENEWAL
Arvin Q GillianRussiaXuxue Feng UNQUALIFIED
Smith O GauchoIndiaAnna Fali PROPOSAL
Cody O FollerJapanBernardo Dominic NEGOTIATION
Mujtaba Z WhobreyFranceIvan Magalhaes PROPOSAL
Ashley U FollerSpainAsiya Javayant QUALIFIED
Antonio A PaprockiArgentinaOnyama Limba QUALIFIED
Salvatore G NickaCanadaElwin Sharvill NEW
Aika X SergiSpainAnna Fali UNQUALIFIED
Antonio R InouyeRussiaAmy Elsner RENEWAL
Mayumi D VocelkaUnited KingdomAnna Fali NEW
Jefferson Q GillianItalyElwin Sharvill NEGOTIATION
Aruna B TollnerRussiaStephen Shaw NEW
Costa C CaudySpainBernardo Dominic RENEWAL
Ricardo W WhobreyCanadaXuxue Feng PROPOSAL
Morrow N SlusarskiSpainOnyama Limba NEW
Deepesh V GarufiItalyAnna Fali NEW
Adams X MaletJapanOnyama Limba PROPOSAL
Francesco M MarrierRussiaBernardo Dominic NEGOTIATION
Ricardo X WhobreyAustraliaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Faith W SchemmerItalyBernardo Dominic NEW
Tony K NestleAustraliaIoni Bowcher NEGOTIATION
Misaki A KuskoJapanOnyama Limba NEGOTIATION
Tony U VenereFranceStephen Shaw QUALIFIED
Ivar O GillianArgentinaOnyama Limba NEGOTIATION
Kaitlin U InouyeBrazilXuxue Feng QUALIFIED
Emily G SchemmerFranceIoni Bowcher QUALIFIED
Greenwood A FigeroaGermanyOnyama Limba QUALIFIED
Morrow F VenereArgentinaAmy Elsner NEGOTIATION
Maisha Z WieserItalyAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi W MorascaUnited Kingdom2025-04-01Truhlar And Truhlar Attys NEGOTIATION71Elwin Sharvill
1001Jeanfrancois U WieserUnited Kingdom2025-04-07Rousseaux, Michael Esq NEGOTIATION31Anna Fali
1002Adams Z NickaJapan2025-04-25Morlong Associates NEW70Xuxue Feng
1003Octavia L FigeroaGermany2025-04-28Chanay, Jeffrey A Esq UNQUALIFIED34Ioni Bowcher
1004Arvin Y FollerIndia2025-04-03Benton, John B Jr PROPOSAL9Elwin Sharvill
1005Tony W GlickArgentina2025-04-05Rousseaux, Michael Esq RENEWAL64Amy Elsner
1006Isabel J MacleadJapan2025-04-27Printing Dimensions NEGOTIATION11Elwin Sharvill
1007Jefferson Q WieserArgentina2025-04-18Dorl, James J Esq RENEWAL96Amy Elsner
1008Clifford O WhobreyItaly2025-04-10Chapman, Ross E Esq QUALIFIED96Onyama Limba
1009Aditya C PaprockiJapan2025-04-26Rangoni Of Florence NEGOTIATION13Ioni Bowcher
1010Jefferson H RutaCanada2025-04-14Feiner Bros RENEWAL43Elwin Sharvill
1011Isabel W GauchoUnited Kingdom2025-04-12Benton, John B Jr NEW80Anna Fali
1012Aruna D WaycottIndia2025-04-21Truhlar And Truhlar Attys UNQUALIFIED44Ioni Bowcher
1013Tony U PoquetteUnited Kingdom2025-04-18Chanay, Jeffrey A Esq NEW63Bernardo Dominic
1014Leon A VenereArgentina2025-04-07Commercial Press PROPOSAL15Amy Elsner
1015Alejandro N SaylorsSpain2025-03-31Dorl, James J Esq QUALIFIED64Stephen Shaw
1016David D CaldareraFrance2025-04-23Feltz Printing Service QUALIFIED0Elwin Sharvill
1017Jeanfrancois H FlosiBrazil2025-04-06Buckley Miller Wright QUALIFIED97Ivan Magalhaes
1018Mujtaba Z WaycottCanada2025-04-13Feiner Bros UNQUALIFIED2Anna Fali
1019Deepesh Y WieserJapan2025-04-21King, Christopher A Esq PROPOSAL36Elwin Sharvill
1020Mujtaba X AlbaresAustralia2025-04-28Truhlar And Truhlar Attys NEW41Bernardo Dominic
1021Mayumi O BowleyArgentina2025-04-15Rousseaux, Michael Esq PROPOSAL62Asiya Javayant
1022Leon O InouyeIndia2025-04-04Chemel, James L Cpa PROPOSAL89Ivan Magalhaes
1023Kadeem J PaprockiItaly2025-04-09Rousseaux, Michael Esq QUALIFIED23Amy Elsner
1024Kadeem D OldroydArgentina2025-04-16Chapman, Ross E Esq QUALIFIED85Onyama Limba
1025Mayumi T OstroskySpain2025-04-10Commercial Press NEGOTIATION8Stephen Shaw
1026Octavia U NestleAustralia2025-04-04Feltz Printing Service QUALIFIED95Ivan Magalhaes
1027Ivar Q StockhamAustralia2025-04-06Truhlar And Truhlar Attys NEW59Amy Elsner
1028Salvatore C GlickArgentina2025-04-07Printing Dimensions UNQUALIFIED34Onyama Limba
1029Aditya M NickaJapan2025-04-21Buckley Miller Wright PROPOSAL14Bernardo Dominic
1030Ricardo S SaylorsAustralia2025-04-19Truhlar And Truhlar Attys NEGOTIATION12Amy Elsner
1031Aika O TollnerAustralia2025-04-29Chemel, James L Cpa NEW86Bernardo Dominic
1032Ashley J WhobreyArgentina2025-04-28Chemel, James L Cpa RENEWAL95Ivan Magalhaes
1033Silvio F MarrierBrazil2025-04-27Chapman, Ross E Esq UNQUALIFIED98Elwin Sharvill
1034Stacey B WieserRussia2025-04-18Feltz Printing Service RENEWAL51Onyama Limba
1035Claire J GauchoBrazil2025-04-10Chemel, James L Cpa NEGOTIATION54Anna Fali
1036Darci K AlbaresFrance2025-04-19Rangoni Of Florence UNQUALIFIED5Amy Elsner
1037Ashley Q MorascaGermany2025-04-24King, Christopher A Esq NEW33Elwin Sharvill
1038Jefferson B MorascaRussia2025-04-06Benton, John B Jr UNQUALIFIED25Stephen Shaw
1039Morrow P InouyeGermany2025-04-22Commercial Press QUALIFIED23Elwin Sharvill
1040Stacey B ShinkoSpain2025-04-27King, Christopher A Esq NEW8Elwin Sharvill
1041Maria N DilliardBrazil2025-04-24Commercial Press PROPOSAL27Ivan Magalhaes
1042Misaki H AlbaresRussia2025-04-13Truhlar And Truhlar Attys PROPOSAL94Amy Elsner
1043Leja I WieserJapan2025-04-08Feiner Bros UNQUALIFIED44Asiya Javayant
1044Kaitlin S RimBrazil2025-04-21Printing Dimensions RENEWAL34Anna Fali
1045Aruna I KuskoItaly2025-04-08Morlong Associates PROPOSAL63Ioni Bowcher
1046Wickens B PoquetteUnited Kingdom2025-04-24Benton, John B Jr NEGOTIATION79Bernardo Dominic
1047Murillo P PerinSpain2025-04-29Printing Dimensions UNQUALIFIED27Amy Elsner
1048Mujtaba D GlickFrance2025-04-17Morlong Associates RENEWAL35Ivan Magalhaes
1049Aika A GarufiAustralia2025-04-01Benton, John B Jr NEGOTIATION16Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Chavez U FlosiSpainXuxue Feng QUALIFIED
Faith H FlosiGermanyAsiya Javayant RENEWAL
Antonio I CaudyGermanyOnyama Limba RENEWAL
Morrow G SlusarskiSpainAsiya Javayant QUALIFIED
Chavez B InouyeItalyAnna Fali QUALIFIED
Mayumi P GlickItalyStephen Shaw RENEWAL
Antonio O MaletCanadaStephen Shaw QUALIFIED
Jones N DarakjyItalyAnna Fali UNQUALIFIED
Francesco L IturbideIndiaOnyama Limba RENEWAL
Kaitlin S PaprockiSpainAmy Elsner UNQUALIFIED
Morrow P NickaBrazilIoni Bowcher QUALIFIED
Kaitlin O OstroskyUnited KingdomXuxue Feng UNQUALIFIED
Munro Z PerinBrazilAnna Fali RENEWAL
Munro W MaletUnited KingdomXuxue Feng NEW
Rodrigues Q FerenczJapanBernardo Dominic QUALIFIED
Salvatore D GlickCanadaXuxue Feng RENEWAL
Johnson A FerenczCanadaXuxue Feng NEGOTIATION
Jefferson O MarrierRussiaElwin Sharvill UNQUALIFIED
Claire U DoeJapanStephen Shaw PROPOSAL
Ashley S SergiItalyAsiya Javayant QUALIFIED
Johnson D SergiBrazilXuxue Feng RENEWAL
Maria Y CaldareraBrazilAmy Elsner NEW
Mujtaba P WieserJapanAmy Elsner NEW
Alejandro F ChuiCanadaXuxue Feng NEGOTIATION
Murillo B MacleadGermanyIoni Bowcher NEGOTIATION
Izzy G CaudyGermanyIvan Magalhaes QUALIFIED
Stacey L InouyeBrazilAsiya Javayant PROPOSAL
Munro U AmigonCanadaAmy Elsner RENEWAL
Sinclair T FlosiRussiaBernardo Dominic UNQUALIFIED
Mujtaba N BriddickBrazilStephen Shaw RENEWAL
Alejandro M OstroskyGermanyAsiya Javayant RENEWAL
Chavez J MaletAustraliaIvan Magalhaes PROPOSAL
Smith E IturbideJapanAmy Elsner PROPOSAL
Greenwood D RoysterItalyIoni Bowcher NEGOTIATION
Costa B RulapaughCanadaIoni Bowcher RENEWAL
Stacey I FigeroaGermanyBernardo Dominic QUALIFIED
Kaitlin E SlusarskiItalyIoni Bowcher NEW
Kaitlin Q KuskoRussiaAsiya Javayant UNQUALIFIED
Chavez N AmigonGermanyIoni Bowcher UNQUALIFIED
Aika I WieserJapanBernardo Dominic PROPOSAL
Ivar W FigeroaSpainOnyama Limba PROPOSAL
Julie G SchemmerUnited KingdomStephen Shaw NEGOTIATION
Ashley I DilliardIndiaAsiya Javayant UNQUALIFIED
Mujtaba N VenereAustraliaXuxue Feng NEGOTIATION
Julie E DoeArgentinaIoni Bowcher UNQUALIFIED
Izzy D RulapaughAustraliaStephen Shaw RENEWAL
Salvatore X BriddickBrazilElwin Sharvill QUALIFIED
Izzy M CaldareraItalyStephen Shaw PROPOSAL
Adams B PoquetteIndiaIoni Bowcher PROPOSAL
Kaitlin Z BologniaJapanOnyama Limba QUALIFIED
Frozen Columns
Name
Ashley E Malet
Mayumi Q Paprocki
Costa E Dilliard
Mayumi F Bowley
Francesco A Amigon
Arvin Q Doe
Izzy F Oldroyd
Jefferson X Foller
Arvin F Rim
Salvatore A Chui
Francesco J Figeroa
Darci J Rulapaugh
Maria C Nestle
Mujtaba B Nestle
Ivar X Nestle
Silvio H Perin
Kadeem D Morasca
Izzy O Darakjy
Greenwood X Figeroa
Smith D Albares
James Q Albares
Munro E Kusko
Cody M Maclead
Jennifer F Stockham
Leja F Ferencz
Mujtaba G Perin
Greenwood D Rulapaugh
Kaitlin F Ruta
Salvatore X Wieser
Mujtaba I Caldarera
Ricardo H Amigon
Jefferson L Rim
Maisha E Figeroa
Wickens N Malet
Francesco I Rulapaugh
Deepesh Z Foller
Faith E Darakjy
Sinclair O Saylors
Smith U Rulapaugh
Clifford M Chui
Julie P Gillian
Munro D Perin
Isabel A Flosi
Jeanfrancois G Morasca
Ricardo D Figeroa
Wickens I Ferencz
Costa F Bolognia
Arvin B Venere
Juan S Perin
Ricardo E Gaucho
IdCountryDate
1000Canada2025-04-25
1001Canada2025-04-11
1002Russia2025-04-14
1003Japan2025-04-10
1004France2025-04-14
1005Italy2025-04-13
1006Argentina2025-04-23
1007Brazil2025-04-01
1008Brazil2025-04-06
1009France2025-04-18
1010Brazil2025-03-31
1011Brazil2025-04-22
1012Germany2025-04-17
1013Italy2025-04-10
1014Brazil2025-04-24
1015Russia2025-04-22
1016Spain2025-04-29
1017India2025-04-03
1018Australia2025-04-06
1019Italy2025-04-15
1020India2025-04-10
1021Germany2025-04-04
1022France2025-04-08
1023United Kingdom2025-04-27
1024India2025-04-02
1025India2025-04-20
1026Germany2025-04-09
1027Spain2025-04-27
1028Argentina2025-04-08
1029Brazil2025-04-27
1030Brazil2025-04-16
1031United Kingdom2025-04-17
1032Russia2025-04-08
1033United Kingdom2025-04-04
1034Canada2025-04-23
1035India2025-04-28
1036Spain2025-04-14
1037United Kingdom2025-04-09
1038Brazil2025-04-06
1039Italy2025-04-20
1040France2025-04-26
1041Canada2025-04-28
1042Brazil2025-04-28
1043Argentina2025-04-26
1044Brazil2025-04-20
1045India2025-04-22
1046United Kingdom2025-04-22
1047Argentina2025-04-24
1048Australia2025-04-04
1049Russia2025-04-08

On-Demand Data

NameIdCountryDate
Octavia X Sergi1000India2025-04-02
Jennifer W Bolognia1001Germany2025-04-14
Nicolas P Glick1002Spain2025-04-26
James J Venere1003Japan2025-04-05
Ricardo Q Saylors1004Canada2025-04-03
Mayumi X Campain1005United Kingdom2025-04-21
Silvio E Doe1006India2025-04-24
Salvatore O Oldroyd1007Japan2025-04-16
Aruna I Butt1008France2025-04-05
Rodrigues D Chui1009Argentina2025-04-19
Stacey A Kolmetz1010Brazil2025-04-05
Kadeem F Royster1011United Kingdom2025-04-16
Greenwood K Briddick1012Brazil2025-04-07
James V Perin1013Italy2025-04-12
Stacey R Ruta1014France2025-04-18
Greenwood K Ruta1015France2025-04-17
Darci A Waycott1016Australia2025-04-05
Jeanfrancois V Ruta1017Brazil2025-04-18
Jones W Poquette1018Japan2025-04-16
Kadeem M Doe1019Germany2025-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan G CaudyArgentinaBernardo Dominic NEGOTIATION
Greenwood W GauchoArgentinaAsiya Javayant NEW
Wickens C IturbideFranceElwin Sharvill RENEWAL
Munro U CaudyIndiaOnyama Limba UNQUALIFIED
Deepesh C VenereUnited KingdomElwin Sharvill PROPOSAL
Mujtaba T AmigonGermanyAsiya Javayant RENEWAL
Munro R TollnerItalyOnyama Limba PROPOSAL
Stacey Y FollerUnited KingdomAnna Fali NEW
Tony K MorascaRussiaIoni Bowcher RENEWAL
Morrow E FerenczItalyIoni Bowcher NEW
Claire K CaudySpainIvan Magalhaes NEGOTIATION
Isabel Y AmigonJapanAsiya Javayant NEW
Stacey Y StensethJapanAsiya Javayant RENEWAL
Jefferson P RulapaughCanadaIvan Magalhaes NEW
James V RoysterUnited KingdomIvan Magalhaes NEGOTIATION
Morrow Z ChuiArgentinaAnna Fali UNQUALIFIED
Kaitlin B DilliardJapanIvan Magalhaes RENEWAL
Wickens M KolmetzSpainElwin Sharvill UNQUALIFIED
Aditya Z WieserUnited KingdomAsiya Javayant UNQUALIFIED
Faith B DilliardFranceBernardo Dominic NEGOTIATION
Kaitlin A PoquetteRussiaXuxue Feng QUALIFIED
Jones D ButtBrazilStephen Shaw UNQUALIFIED
Leon Z FlosiUnited KingdomIvan Magalhaes PROPOSAL
Jones S IturbideBrazilIvan Magalhaes PROPOSAL
Mayumi T MaletBrazilStephen Shaw UNQUALIFIED
Costa O BriddickFranceXuxue Feng NEW
Stacey B VenereFranceIvan Magalhaes QUALIFIED
Kaitlin W MacleadRussiaAsiya Javayant QUALIFIED
Morrow X PaprockiUnited KingdomAsiya Javayant PROPOSAL
Claire R AmigonIndiaAnna Fali QUALIFIED
Deepesh B GauchoArgentinaBernardo Dominic RENEWAL
Adams Y RimIndiaIoni Bowcher NEGOTIATION
Chavez W CaldareraRussiaStephen Shaw QUALIFIED
Mayumi L RimJapanBernardo Dominic NEGOTIATION
Silvio H BriddickSpainAnna Fali RENEWAL
Isabel R PaprockiArgentinaBernardo Dominic NEW
Stacey H MacleadAustraliaXuxue Feng NEW
Darci U OldroydJapanIoni Bowcher RENEWAL
Mujtaba P MaletAustraliaOnyama Limba QUALIFIED
Isabel B StensethGermanyAnna Fali RENEWAL

<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>