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
Claire R AlbaresSpainBernardo Dominic RENEWAL
Emily W IturbideBrazilOnyama Limba NEGOTIATION
Julie F SaylorsJapanAmy Elsner UNQUALIFIED
Francesco I SchemmerItalyIoni Bowcher PROPOSAL
Kaitlin Z WaycottJapanOnyama Limba QUALIFIED
Stacey X BriddickGermanyOnyama Limba PROPOSAL
Silvio E NickaAustraliaAmy Elsner NEGOTIATION
Kadeem K StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Misaki G SaylorsRussiaStephen Shaw RENEWAL
Silvio N OstroskyFranceAmy Elsner PROPOSAL
Juan Q BriddickItalyIvan Magalhaes PROPOSAL
Kadeem V IturbideBrazilAnna Fali QUALIFIED
Munro W MacleadBrazilBernardo Dominic RENEWAL
Mayumi E CampainJapanStephen Shaw RENEWAL
Smith H FlosiItalyAsiya Javayant UNQUALIFIED
Mujtaba S SergiSpainIoni Bowcher NEGOTIATION
Mujtaba D VocelkaUnited KingdomAmy Elsner QUALIFIED
Smith E BologniaFranceXuxue Feng NEW
Kadeem A BowleyGermanyOnyama Limba UNQUALIFIED
Deepesh G SaylorsUnited KingdomIoni Bowcher UNQUALIFIED
Kadeem V CaudyCanadaXuxue Feng NEGOTIATION
Misaki Y MaletRussiaIvan Magalhaes PROPOSAL
Alejandro E PaprockiItalyIvan Magalhaes RENEWAL
Clifford M GauchoJapanAsiya Javayant NEGOTIATION
Ivar E SchemmerUnited KingdomAsiya Javayant NEW
Cody K AmigonSpainAsiya Javayant PROPOSAL
Leon I SlusarskiUnited KingdomElwin Sharvill NEW
Ashley P OldroydFranceOnyama Limba RENEWAL
Adams Z RutaBrazilXuxue Feng PROPOSAL
Kadeem J ChuiGermanyBernardo Dominic RENEWAL
Tony E ShinkoAustraliaStephen Shaw NEGOTIATION
Jeanfrancois C FerenczSpainAnna Fali NEGOTIATION
Arvin L BriddickGermanyOnyama Limba UNQUALIFIED
Leon C KolmetzRussiaXuxue Feng RENEWAL
Francesco I CaudyArgentinaAmy Elsner RENEWAL
Munro Z NestleCanadaAnna Fali NEGOTIATION
Sinclair T FigeroaUnited KingdomAsiya Javayant RENEWAL
Arvin H AlbaresGermanyAmy Elsner QUALIFIED
Juan L MarrierGermanyIvan Magalhaes NEGOTIATION
Maria M StensethUnited KingdomAnna Fali NEGOTIATION
Munro J MaletFranceXuxue Feng UNQUALIFIED
Leon W DarakjySpainAmy Elsner QUALIFIED
Jeanfrancois H FerenczFranceAmy Elsner NEGOTIATION
Stacey E StockhamGermanyOnyama Limba UNQUALIFIED
Antonio G CaldareraAustraliaBernardo Dominic QUALIFIED
Greenwood S MaletSpainIvan Magalhaes NEW
Chavez V StensethFranceAsiya Javayant NEW
Tony Y DilliardAustraliaIoni Bowcher QUALIFIED
Octavia J MorascaUnited KingdomXuxue Feng UNQUALIFIED
Leja I PerinFranceStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan P GauchoGermanyIvan Magalhaes NEW
Kadeem S BologniaGermanyIvan Magalhaes NEW
Wickens H ShinkoFranceOnyama Limba QUALIFIED
Ricardo K MorascaUnited KingdomIoni Bowcher NEGOTIATION
Arvin Q WieserBrazilElwin Sharvill RENEWAL
David Y ShinkoRussiaElwin Sharvill NEGOTIATION
Salvatore M AlbaresIndiaAnna Fali NEGOTIATION
Tony E BriddickUnited KingdomAmy Elsner QUALIFIED
Juan P WieserIndiaAnna Fali PROPOSAL
Jeanfrancois G WieserUnited KingdomXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony R MaletArgentina2026-06-27Dorl, James J Esq RENEWAL12Amy Elsner
1001Stacey V OldroydFrance2026-06-30King, Christopher A Esq NEW17Stephen Shaw
1002Deepesh X RoysterArgentina2026-07-16Rousseaux, Michael Esq QUALIFIED87Ioni Bowcher
1003Wickens Y VocelkaSpain2026-07-15Dorl, James J Esq UNQUALIFIED2Elwin Sharvill
1004Aruna D GlickJapan2026-07-05King, Christopher A Esq UNQUALIFIED96Amy Elsner
1005Costa V KuskoJapan2026-07-01Rangoni Of Florence UNQUALIFIED82Ivan Magalhaes
1006Salvatore S CaudyGermany2026-06-22Chanay, Jeffrey A Esq RENEWAL51Anna Fali
1007Stacey V ShinkoFrance2026-07-13Commercial Press PROPOSAL13Elwin Sharvill
1008Mayumi U KolmetzJapan2026-07-19Chemel, James L Cpa UNQUALIFIED10Elwin Sharvill
1009Nicolas B StockhamRussia2026-07-11Feltz Printing Service QUALIFIED58Anna Fali
1010Clifford F KolmetzIndia2026-07-01Chanay, Jeffrey A Esq UNQUALIFIED11Stephen Shaw
1011Cody L ShinkoRussia2026-07-02Benton, John B Jr QUALIFIED36Ivan Magalhaes
1012Maisha L WaycottRussia2026-06-30Benton, John B Jr UNQUALIFIED95Ioni Bowcher
1013Mayumi R MaletArgentina2026-06-23Buckley Miller Wright NEGOTIATION48Ivan Magalhaes
1014Wickens U SchemmerItaly2026-06-28Feltz Printing Service RENEWAL10Onyama Limba
1015Izzy W SaylorsAustralia2026-07-19Chanay, Jeffrey A Esq PROPOSAL32Anna Fali
1016Maisha T CaldareraIndia2026-06-24Buckley Miller Wright PROPOSAL72Onyama Limba
1017Maria A SlusarskiUnited Kingdom2026-07-03Chapman, Ross E Esq QUALIFIED87Onyama Limba
1018Emily J FlosiItaly2026-07-01Rangoni Of Florence UNQUALIFIED51Asiya Javayant
1019Leja H NestleCanada2026-07-08Truhlar And Truhlar Attys NEGOTIATION73Amy Elsner
1020Adams U StensethGermany2026-06-26King, Christopher A Esq RENEWAL21Asiya Javayant
1021Juan Q SchemmerBrazil2026-06-27King, Christopher A Esq RENEWAL71Ioni Bowcher
1022Sinclair U InouyeIndia2026-06-30Rousseaux, Michael Esq UNQUALIFIED43Onyama Limba
1023Leja B RoysterUnited Kingdom2026-06-24Rangoni Of Florence PROPOSAL49Onyama Limba
1024Kadeem C SergiRussia2026-07-01Truhlar And Truhlar Attys UNQUALIFIED63Ioni Bowcher
1025Mayumi H RulapaughRussia2026-07-13Commercial Press NEGOTIATION52Xuxue Feng
1026Johnson Z MaletItaly2026-06-25Feiner Bros PROPOSAL35Asiya Javayant
1027Leja C WieserIndia2026-06-29King, Christopher A Esq UNQUALIFIED19Xuxue Feng
1028Sinclair M DoeUnited Kingdom2026-07-10Commercial Press NEGOTIATION28Anna Fali
1029Cody V NestleJapan2026-07-15Commercial Press QUALIFIED31Ioni Bowcher
1030Tony G KuskoJapan2026-07-03Printing Dimensions PROPOSAL6Elwin Sharvill
1031James T BowleyAustralia2026-06-29Commercial Press UNQUALIFIED12Ivan Magalhaes
1032Faith A TollnerGermany2026-06-21King, Christopher A Esq QUALIFIED86Amy Elsner
1033Emily C InouyeUnited Kingdom2026-07-02Benton, John B Jr QUALIFIED74Amy Elsner
1034Ivar Y VenereAustralia2026-06-26Commercial Press UNQUALIFIED14Ioni Bowcher
1035Deepesh U NickaCanada2026-07-11Feltz Printing Service NEGOTIATION73Asiya Javayant
1036Wickens C KuskoJapan2026-07-08Dorl, James J Esq UNQUALIFIED55Stephen Shaw
1037Jeanfrancois T BologniaSpain2026-06-27Chapman, Ross E Esq QUALIFIED51Anna Fali
1038Antonio Q VocelkaSpain2026-07-07Dorl, James J Esq PROPOSAL65Ivan Magalhaes
1039Sinclair P GlickArgentina2026-07-14Rangoni Of Florence NEW37Anna Fali
1040Mujtaba F MaletFrance2026-07-09Chanay, Jeffrey A Esq NEW60Bernardo Dominic
1041Izzy H AlbaresArgentina2026-06-29Rousseaux, Michael Esq UNQUALIFIED13Ivan Magalhaes
1042Antonio G MaletIndia2026-06-22Chanay, Jeffrey A Esq RENEWAL58Elwin Sharvill
1043Ricardo D NickaArgentina2026-07-07Printing Dimensions NEGOTIATION33Bernardo Dominic
1044Smith X WieserItaly2026-07-19Buckley Miller Wright PROPOSAL6Ioni Bowcher
1045Johnson U TollnerArgentina2026-07-19Feiner Bros UNQUALIFIED34Elwin Sharvill
1046Francesco F DilliardRussia2026-07-04Morlong Associates NEW25Asiya Javayant
1047Octavia D ButtAustralia2026-06-24Chanay, Jeffrey A Esq PROPOSAL96Xuxue Feng
1048Francesco O BologniaSpain2026-06-22Chapman, Ross E Esq UNQUALIFIED24Ioni Bowcher
1049Julie I RimCanada2026-07-07Rangoni Of Florence UNQUALIFIED8Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ivar J CaudyGermanyAsiya Javayant RENEWAL
Stacey I PaprockiCanadaStephen Shaw QUALIFIED
Morrow C FerenczItalyAsiya Javayant QUALIFIED
David X AmigonIndiaOnyama Limba NEGOTIATION
Greenwood T PoquetteArgentinaIvan Magalhaes QUALIFIED
Maisha D SergiFranceIoni Bowcher QUALIFIED
Adams M PerinCanadaBernardo Dominic NEW
Deepesh X VenereFranceXuxue Feng NEW
Jones N ChuiBrazilElwin Sharvill UNQUALIFIED
Clifford F OstroskyJapanStephen Shaw PROPOSAL
Costa J RulapaughRussiaBernardo Dominic NEGOTIATION
Aika F FerenczArgentinaIoni Bowcher NEW
Ivar O FlosiArgentinaAsiya Javayant NEW
Aika D FerenczBrazilAsiya Javayant UNQUALIFIED
Ricardo Z VocelkaGermanyAnna Fali NEGOTIATION
Jefferson L IturbideItalyBernardo Dominic NEW
Mayumi W RulapaughGermanyAmy Elsner QUALIFIED
Munro V FlosiAustraliaBernardo Dominic QUALIFIED
Chavez U MorascaRussiaBernardo Dominic RENEWAL
Aika Y MarrierCanadaAnna Fali UNQUALIFIED
Emily E AlbaresArgentinaAnna Fali NEW
Chavez R ButtFranceAsiya Javayant RENEWAL
Wickens T AmigonCanadaOnyama Limba PROPOSAL
Arvin Y ShinkoGermanyAsiya Javayant PROPOSAL
Isabel E MorascaAustraliaOnyama Limba PROPOSAL
Leja H RimJapanIvan Magalhaes QUALIFIED
Smith G BowleyArgentinaOnyama Limba QUALIFIED
Octavia Y NestleAustraliaBernardo Dominic UNQUALIFIED
Darci L NickaJapanIoni Bowcher QUALIFIED
Arvin R ButtGermanyBernardo Dominic QUALIFIED
Isabel E StockhamFranceBernardo Dominic NEW
Maisha E CampainUnited KingdomStephen Shaw NEGOTIATION
Sinclair Q OstroskySpainElwin Sharvill QUALIFIED
Antonio N PerinUnited KingdomAnna Fali UNQUALIFIED
Murillo M BologniaCanadaAsiya Javayant PROPOSAL
Faith F FigeroaAustraliaAsiya Javayant UNQUALIFIED
Costa E ButtCanadaBernardo Dominic RENEWAL
Aditya J DarakjyFranceXuxue Feng QUALIFIED
Francesco P SlusarskiUnited KingdomOnyama Limba QUALIFIED
Leja N NestleBrazilXuxue Feng NEW
Jennifer O ChuiBrazilAsiya Javayant NEGOTIATION
Faith T VocelkaGermanyAmy Elsner UNQUALIFIED
Adams A DilliardJapanAnna Fali UNQUALIFIED
Maisha Z RoysterBrazilAmy Elsner PROPOSAL
Octavia S GillianCanadaAnna Fali NEW
Mayumi O DarakjyGermanyOnyama Limba RENEWAL
Mujtaba D MaletBrazilOnyama Limba NEGOTIATION
Wickens D SchemmerAustraliaBernardo Dominic RENEWAL
James I SchemmerRussiaAnna Fali NEW
Octavia Q MacleadRussiaElwin Sharvill QUALIFIED
Frozen Columns
Name
Misaki V Shinko
Aruna V Stenseth
Ricardo C Malet
Salvatore G Oldroyd
Salvatore S Ostrosky
Arvin W Rulapaugh
Rodrigues W Flosi
Arvin Q Campain
Silvio B Doe
Juan J Sergi
Greenwood X Stenseth
Ashley Q Royster
Aika T Stenseth
Johnson A Ferencz
Antonio P Iturbide
Smith F Maclead
Deepesh Q Royster
Juan O Paprocki
Kaitlin V Stenseth
Adams L Dilliard
Adams N Poquette
James T Briddick
Faith S Stockham
Jefferson B Poquette
Emily V Shinko
Adams V Kolmetz
Izzy J Caudy
Julie J Royster
Alejandro E Slusarski
Deepesh A Bowley
Wickens C Garufi
Salvatore N Schemmer
Claire M Bolognia
Smith J Royster
Isabel C Poquette
Clifford B Ostrosky
Francesco U Ferencz
Jones O Ostrosky
Leon R Foller
Misaki K Iturbide
Deepesh F Briddick
Smith F Flosi
Smith S Malet
Mujtaba U Iturbide
Octavia W Darakjy
Antonio F Ruta
Mujtaba C Venere
Rodrigues C Poquette
Leon O Garufi
Juan P Bolognia
IdCountryDate
1000Germany2026-07-05
1001Germany2026-06-29
1002Italy2026-07-08
1003India2026-06-24
1004Japan2026-07-07
1005Germany2026-07-08
1006United Kingdom2026-06-29
1007Japan2026-07-14
1008Germany2026-07-01
1009Japan2026-06-28
1010Brazil2026-07-20
1011India2026-07-15
1012Russia2026-07-18
1013Brazil2026-07-13
1014Russia2026-07-15
1015Canada2026-06-28
1016Canada2026-07-20
1017Spain2026-06-24
1018Italy2026-07-09
1019Australia2026-06-24
1020Spain2026-06-29
1021Japan2026-07-13
1022United Kingdom2026-07-14
1023India2026-06-22
1024France2026-07-12
1025Spain2026-07-15
1026France2026-06-23
1027India2026-06-28
1028Brazil2026-07-05
1029Canada2026-06-21
1030Japan2026-06-29
1031Russia2026-06-22
1032Spain2026-06-29
1033Italy2026-07-05
1034Germany2026-07-06
1035Brazil2026-07-17
1036Australia2026-07-03
1037United Kingdom2026-07-13
1038Argentina2026-06-30
1039United Kingdom2026-07-04
1040Argentina2026-06-27
1041Australia2026-06-25
1042Argentina2026-06-27
1043Spain2026-07-16
1044Canada2026-07-19
1045United Kingdom2026-07-14
1046Australia2026-07-10
1047France2026-07-03
1048Germany2026-07-06
1049Italy2026-07-12

On-Demand Data

NameIdCountryDate
Jennifer G Campain1000Germany2026-07-14
Clifford H Paprocki1001France2026-06-30
Faith T Waycott1002Spain2026-07-16
Jefferson A Paprocki1003Japan2026-06-21
Aditya L Glick1004India2026-07-05
Juan P Glick1005Brazil2026-06-22
Murillo S Glick1006Japan2026-06-24
Leja S Stockham1007Spain2026-06-27
Ashley Y Stockham1008India2026-06-30
Alejandro Q Morasca1009United Kingdom2026-06-23
Juan Q Dilliard1010Argentina2026-07-08
Adams Z Bowley1011Japan2026-07-15
Silvio P Oldroyd1012France2026-07-19
Julie Y Nestle1013Argentina2026-07-01
Nicolas K Dilliard1014Brazil2026-07-01
Munro B Royster1015France2026-06-27
Smith I Ferencz1016India2026-07-12
Jones V Albares1017United Kingdom2026-06-21
Octavia W Waycott1018India2026-07-02
Kadeem S Campain1019Italy2026-06-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna M FigeroaArgentinaXuxue Feng RENEWAL
Deepesh D VocelkaRussiaXuxue Feng NEW
Costa X RimCanadaBernardo Dominic NEW
Morrow B PerinArgentinaStephen Shaw QUALIFIED
Antonio W FerenczItalyBernardo Dominic UNQUALIFIED
Mujtaba T RimCanadaBernardo Dominic RENEWAL
Claire R ChuiJapanStephen Shaw UNQUALIFIED
Aika F ButtCanadaIvan Magalhaes UNQUALIFIED
Izzy N ShinkoFranceAsiya Javayant QUALIFIED
Darci W DoeFranceXuxue Feng PROPOSAL
Aruna T SchemmerJapanAsiya Javayant RENEWAL
Morrow L ShinkoItalyIoni Bowcher UNQUALIFIED
Smith Z DilliardGermanyXuxue Feng RENEWAL
Jeanfrancois J MorascaJapanOnyama Limba NEW
Greenwood T TollnerAustraliaOnyama Limba QUALIFIED
Jefferson O BriddickRussiaIoni Bowcher NEGOTIATION
Kaitlin K CaudyJapanElwin Sharvill PROPOSAL
James H KolmetzRussiaAsiya Javayant QUALIFIED
Alejandro Q WaycottIndiaBernardo Dominic NEGOTIATION
Ivar W InouyeGermanyElwin Sharvill PROPOSAL
Francesco Y KuskoItalyOnyama Limba QUALIFIED
Leja D CaldareraFranceIoni Bowcher RENEWAL
Isabel J FigeroaAustraliaIoni Bowcher PROPOSAL
Juan B MorascaCanadaAnna Fali UNQUALIFIED
Emily J RoysterRussiaXuxue Feng UNQUALIFIED
Silvio A SchemmerIndiaAsiya Javayant RENEWAL
Francesco M VenereBrazilBernardo Dominic RENEWAL
Aruna A VocelkaAustraliaXuxue Feng QUALIFIED
Darci I WaycottIndiaAmy Elsner NEGOTIATION
Emily K ChuiUnited KingdomIoni Bowcher QUALIFIED
Chavez Z GillianRussiaAmy Elsner PROPOSAL
Rodrigues Q DarakjyGermanyBernardo Dominic RENEWAL
Faith C IturbideBrazilAnna Fali PROPOSAL
Emily I CampainCanadaAnna Fali RENEWAL
Cody W MaletArgentinaIvan Magalhaes NEGOTIATION
Ivar W FlosiAustraliaIoni Bowcher QUALIFIED
Leja A OldroydAustraliaOnyama Limba NEW
Mayumi O CaldareraUnited KingdomAnna Fali UNQUALIFIED
Smith C WieserCanadaIoni Bowcher UNQUALIFIED
Stacey H RoysterJapanOnyama Limba 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>