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 X AlbaresBrazilIvan Magalhaes RENEWAL
Maria J FigeroaIndiaElwin Sharvill NEGOTIATION
Maisha S SchemmerArgentinaAnna Fali NEGOTIATION
Aruna E ButtRussiaAmy Elsner NEGOTIATION
Jefferson N OstroskyGermanyBernardo Dominic NEW
Aditya G PaprockiAustraliaAnna Fali QUALIFIED
Smith D RutaBrazilBernardo Dominic RENEWAL
Misaki J CaldareraIndiaIvan Magalhaes QUALIFIED
Arvin E BriddickSpainXuxue Feng PROPOSAL
Francesco M VenereRussiaAmy Elsner NEW
Faith Z RutaIndiaAmy Elsner NEW
Maria F GauchoArgentinaBernardo Dominic PROPOSAL
Jeanfrancois P WieserCanadaAmy Elsner QUALIFIED
Mayumi I StockhamJapanElwin Sharvill QUALIFIED
Kaitlin P AlbaresFranceIvan Magalhaes NEW
Jeanfrancois X SaylorsJapanBernardo Dominic NEW
Sinclair K CampainGermanyAsiya Javayant PROPOSAL
Julie W ButtGermanyIvan Magalhaes QUALIFIED
Maria A StensethRussiaAsiya Javayant RENEWAL
Clifford D PerinRussiaAmy Elsner QUALIFIED
Aika I SaylorsFranceAnna Fali PROPOSAL
Faith J RutaCanadaAmy Elsner RENEWAL
Costa F NickaIndiaOnyama Limba UNQUALIFIED
Greenwood N DarakjyFranceBernardo Dominic NEW
Octavia Q NickaJapanStephen Shaw QUALIFIED
Chavez S NestleItalyAsiya Javayant NEGOTIATION
Smith N WaycottSpainIvan Magalhaes UNQUALIFIED
Izzy U GarufiFranceIvan Magalhaes RENEWAL
Sinclair B AmigonAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba J FollerJapanElwin Sharvill NEW
Jennifer K DoeItalyAnna Fali UNQUALIFIED
Nicolas F FollerRussiaOnyama Limba NEW
Claire L GauchoRussiaXuxue Feng PROPOSAL
Antonio K SergiItalyIoni Bowcher NEGOTIATION
Morrow J SergiJapanStephen Shaw UNQUALIFIED
Jennifer I WhobreyAustraliaStephen Shaw NEW
Salvatore E MarrierSpainElwin Sharvill QUALIFIED
David P FlosiGermanyElwin Sharvill QUALIFIED
Greenwood I NestleRussiaStephen Shaw PROPOSAL
Jennifer B FerenczIndiaIoni Bowcher UNQUALIFIED
Rodrigues S MaletGermanyBernardo Dominic NEGOTIATION
Rodrigues V RoysterBrazilIvan Magalhaes PROPOSAL
Wickens O AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Morrow P WhobreyIndiaElwin Sharvill NEW
Mujtaba X AmigonAustraliaIvan Magalhaes UNQUALIFIED
Greenwood R GillianRussiaAsiya Javayant RENEWAL
Darci L OldroydJapanAmy Elsner NEW
Darci S MaletUnited KingdomAnna Fali NEW
Aika X PaprockiFranceIvan Magalhaes PROPOSAL
Alejandro Z ShinkoBrazilAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem F SchemmerItalyBernardo Dominic RENEWAL
Jefferson I FerenczAustraliaAnna Fali NEGOTIATION
James H TollnerItalyStephen Shaw PROPOSAL
Misaki A RoysterCanadaIoni Bowcher NEW
Aditya I WhobreyCanadaOnyama Limba UNQUALIFIED
Aika W VenereGermanyOnyama Limba RENEWAL
Munro R MacleadItalyElwin Sharvill NEW
Mujtaba L CampainAustraliaAsiya Javayant PROPOSAL
Aika B AlbaresIndiaAsiya Javayant RENEWAL
Leja E GarufiUnited KingdomXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin K RimSpain2026-06-27Chanay, Jeffrey A Esq RENEWAL40Amy Elsner
1001Aika E SergiRussia2026-06-06Rangoni Of Florence RENEWAL27Asiya Javayant
1002Ricardo K MorascaUnited Kingdom2026-06-25Commercial Press RENEWAL4Stephen Shaw
1003Leja V MaletSpain2026-07-05Rangoni Of Florence NEW86Stephen Shaw
1004Nicolas A SlusarskiCanada2026-06-08Benton, John B Jr RENEWAL32Stephen Shaw
1005Silvio U InouyeSpain2026-06-21Feiner Bros UNQUALIFIED22Ioni Bowcher
1006Misaki B GillianGermany2026-06-23Morlong Associates RENEWAL9Xuxue Feng
1007Mujtaba Q WhobreyJapan2026-06-11King, Christopher A Esq RENEWAL46Ioni Bowcher
1008Munro K RimItaly2026-06-27Chemel, James L Cpa UNQUALIFIED49Ioni Bowcher
1009Greenwood K NestleBrazil2026-06-25Rousseaux, Michael Esq NEGOTIATION95Anna Fali
1010Emily Q FigeroaCanada2026-07-04Commercial Press PROPOSAL68Anna Fali
1011Munro H GillianFrance2026-07-02Buckley Miller Wright NEW77Anna Fali
1012Ashley A RoysterRussia2026-07-04Rousseaux, Michael Esq RENEWAL26Ioni Bowcher
1013Maria I PoquetteSpain2026-06-06Benton, John B Jr RENEWAL55Onyama Limba
1014Smith Q CaudyIndia2026-06-12Morlong Associates UNQUALIFIED16Elwin Sharvill
1015Mayumi L BologniaArgentina2026-06-09Chanay, Jeffrey A Esq RENEWAL78Ioni Bowcher
1016Rodrigues J InouyeSpain2026-06-26Rangoni Of Florence UNQUALIFIED65Anna Fali
1017Maria C FerenczBrazil2026-07-05Feiner Bros NEGOTIATION92Anna Fali
1018Rodrigues H FollerRussia2026-06-20Benton, John B Jr NEGOTIATION61Ioni Bowcher
1019Salvatore G DoeGermany2026-06-25Feltz Printing Service NEW92Amy Elsner
1020Ivar X CaldareraItaly2026-07-02King, Christopher A Esq UNQUALIFIED97Asiya Javayant
1021Maisha U FigeroaAustralia2026-06-19Benton, John B Jr QUALIFIED88Elwin Sharvill
1022Costa E FerenczItaly2026-07-03Feiner Bros PROPOSAL48Anna Fali
1023Kaitlin Z AlbaresItaly2026-06-29Chanay, Jeffrey A Esq PROPOSAL85Amy Elsner
1024Adams B FigeroaAustralia2026-06-21Chanay, Jeffrey A Esq QUALIFIED15Anna Fali
1025Nicolas W GauchoGermany2026-06-08Chemel, James L Cpa RENEWAL65Stephen Shaw
1026Morrow F SaylorsBrazil2026-06-24Rangoni Of Florence RENEWAL44Bernardo Dominic
1027Deepesh A PoquetteUnited Kingdom2026-06-09Chanay, Jeffrey A Esq QUALIFIED68Anna Fali
1028Arvin K FerenczCanada2026-07-04Feiner Bros QUALIFIED58Xuxue Feng
1029Costa U SaylorsItaly2026-06-08Benton, John B Jr PROPOSAL59Asiya Javayant
1030Murillo W OstroskyItaly2026-06-23Feltz Printing Service RENEWAL74Ivan Magalhaes
1031Munro G RoysterBrazil2026-06-22Buckley Miller Wright QUALIFIED61Onyama Limba
1032Deepesh Z CaudyBrazil2026-06-19Dorl, James J Esq QUALIFIED56Anna Fali
1033Maisha W OstroskyCanada2026-06-09Feltz Printing Service NEW79Bernardo Dominic
1034Aditya W VenereIndia2026-06-19Benton, John B Jr RENEWAL29Onyama Limba
1035Leon N FigeroaSpain2026-07-05Chapman, Ross E Esq RENEWAL5Elwin Sharvill
1036Murillo M RimCanada2026-06-18Rangoni Of Florence QUALIFIED87Amy Elsner
1037Emily W BologniaAustralia2026-06-23King, Christopher A Esq NEGOTIATION29Asiya Javayant
1038Rodrigues Q CampainIndia2026-07-02Chemel, James L Cpa NEGOTIATION33Ivan Magalhaes
1039Maria U DarakjyAustralia2026-06-22Benton, John B Jr QUALIFIED60Bernardo Dominic
1040Julie W CampainArgentina2026-06-13Truhlar And Truhlar Attys RENEWAL36Amy Elsner
1041Nicolas G InouyeItaly2026-06-13Rousseaux, Michael Esq UNQUALIFIED26Asiya Javayant
1042Maria B AlbaresIndia2026-06-22Truhlar And Truhlar Attys PROPOSAL56Bernardo Dominic
1043Maria X FlosiRussia2026-06-15Chapman, Ross E Esq UNQUALIFIED93Xuxue Feng
1044Murillo Y ChuiUnited Kingdom2026-06-21Chapman, Ross E Esq NEGOTIATION20Stephen Shaw
1045Julie Z VenereRussia2026-06-20Buckley Miller Wright PROPOSAL24Xuxue Feng
1046Francesco U GarufiUnited Kingdom2026-06-16Rousseaux, Michael Esq PROPOSAL54Stephen Shaw
1047Alejandro M DarakjyUnited Kingdom2026-06-28Rousseaux, Michael Esq NEGOTIATION82Elwin Sharvill
1048Stacey M KolmetzIndia2026-06-19Rousseaux, Michael Esq NEW47Elwin Sharvill
1049Jones T MarrierSpain2026-06-10Dorl, James J Esq QUALIFIED93Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Cody N BologniaUnited KingdomXuxue Feng PROPOSAL
Octavia A KuskoCanadaOnyama Limba RENEWAL
Julie H VenereRussiaStephen Shaw QUALIFIED
Munro T StockhamCanadaStephen Shaw NEW
Munro P MaletFranceAsiya Javayant UNQUALIFIED
Kadeem R CaudyRussiaStephen Shaw PROPOSAL
Wickens D NickaAustraliaXuxue Feng QUALIFIED
Isabel H RoysterItalyBernardo Dominic NEW
Wickens O WieserCanadaAsiya Javayant NEW
Clifford U DoeIndiaIoni Bowcher PROPOSAL
Deepesh F InouyeArgentinaAmy Elsner NEW
Jeanfrancois X InouyeSpainAmy Elsner QUALIFIED
David X StensethItalyStephen Shaw PROPOSAL
Antonio B DilliardGermanyBernardo Dominic NEGOTIATION
Greenwood C InouyeArgentinaStephen Shaw UNQUALIFIED
Adams M SchemmerFranceIoni Bowcher QUALIFIED
Francesco O AlbaresJapanIoni Bowcher QUALIFIED
Antonio V VocelkaRussiaStephen Shaw NEW
Deepesh I NickaGermanyAmy Elsner QUALIFIED
Ashley Q FlosiUnited KingdomOnyama Limba UNQUALIFIED
Adams Y GillianJapanAsiya Javayant PROPOSAL
Francesco U ButtCanadaAsiya Javayant UNQUALIFIED
Clifford Q OldroydUnited KingdomAmy Elsner NEGOTIATION
Misaki W ButtArgentinaAnna Fali NEGOTIATION
Nicolas Z WieserRussiaIvan Magalhaes NEW
Greenwood Z RutaJapanStephen Shaw UNQUALIFIED
Kaitlin F IturbideAustraliaElwin Sharvill NEW
Isabel V FollerBrazilAnna Fali RENEWAL
Smith I MacleadBrazilIvan Magalhaes NEW
Misaki W OstroskyAustraliaAsiya Javayant RENEWAL
Darci U NestleItalyOnyama Limba NEW
Mayumi S SaylorsArgentinaStephen Shaw PROPOSAL
Silvio F DilliardRussiaBernardo Dominic PROPOSAL
Arvin H WieserBrazilOnyama Limba UNQUALIFIED
Deepesh R RoysterItalyIoni Bowcher UNQUALIFIED
Aditya L BriddickAustraliaAnna Fali PROPOSAL
Maria T TollnerSpainIoni Bowcher PROPOSAL
Maisha M SlusarskiAustraliaAnna Fali UNQUALIFIED
Silvio C KolmetzArgentinaAsiya Javayant RENEWAL
Octavia J ShinkoGermanyBernardo Dominic QUALIFIED
Greenwood F PerinGermanyAnna Fali QUALIFIED
Juan K TollnerAustraliaAnna Fali QUALIFIED
Emily T KuskoUnited KingdomAnna Fali QUALIFIED
Deepesh R VocelkaAustraliaAmy Elsner PROPOSAL
Aika T GlickIndiaAnna Fali UNQUALIFIED
Morrow P VocelkaRussiaBernardo Dominic NEW
Emily O DilliardItalyIoni Bowcher RENEWAL
Aruna U WaycottGermanyAmy Elsner NEGOTIATION
Stacey F GauchoGermanyIvan Magalhaes NEGOTIATION
Jennifer J BologniaBrazilAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Jefferson L Amigon
Izzy W Chui
Kadeem Q Perin
Jennifer R Schemmer
Julie K Ostrosky
Johnson O Ostrosky
Cody S Ferencz
Antonio L Doe
Stacey X Maclead
Sinclair J Malet
Greenwood R Paprocki
Antonio K Ostrosky
Chavez C Venere
Sinclair D Nicka
Antonio U Schemmer
Emily S Campain
Octavia D Campain
Ricardo G Malet
Rodrigues E Schemmer
Tony J Ferencz
Adams F Sergi
Sinclair U Stenseth
Clifford E Caldarera
Smith E Marrier
Smith L Kusko
Isabel G Marrier
Arvin K Gaucho
Nicolas K Ostrosky
Ivar T Saylors
Jefferson M Venere
Jones G Perin
Jefferson X Schemmer
Jefferson A Waycott
Costa U Foller
Jennifer B Whobrey
Stacey E Malet
Izzy R Garufi
Francesco J Maclead
Silvio Q Saylors
Julie Y Gillian
Maria Q Slusarski
Sinclair L Stockham
Leja C Schemmer
Jennifer K Amigon
Aruna B Rim
Alejandro H Sergi
Sinclair P Darakjy
Clifford Z Rim
Faith I Amigon
Ricardo K Bolognia
IdCountryDate
1000Canada2026-06-13
1001United Kingdom2026-06-22
1002United Kingdom2026-07-05
1003Russia2026-06-24
1004France2026-06-21
1005Japan2026-06-26
1006United Kingdom2026-06-12
1007Russia2026-06-07
1008Germany2026-06-06
1009Italy2026-06-16
1010Japan2026-06-19
1011India2026-06-11
1012Spain2026-06-10
1013France2026-06-07
1014United Kingdom2026-07-05
1015Canada2026-07-02
1016Italy2026-06-13
1017India2026-06-26
1018United Kingdom2026-06-30
1019Russia2026-07-04
1020Argentina2026-06-14
1021Germany2026-06-11
1022Brazil2026-06-25
1023Germany2026-06-25
1024Argentina2026-07-05
1025France2026-06-23
1026France2026-07-02
1027Brazil2026-06-17
1028Spain2026-06-30
1029Italy2026-06-13
1030Germany2026-07-03
1031Germany2026-06-06
1032India2026-06-24
1033Russia2026-06-14
1034Russia2026-06-13
1035Italy2026-07-01
1036India2026-06-24
1037United Kingdom2026-06-14
1038Germany2026-06-08
1039Russia2026-06-06
1040Brazil2026-06-09
1041Canada2026-06-12
1042France2026-06-18
1043Brazil2026-06-24
1044Russia2026-06-11
1045France2026-06-30
1046Brazil2026-06-27
1047France2026-06-12
1048United Kingdom2026-06-30
1049France2026-06-25

On-Demand Data

NameIdCountryDate
Alejandro L Sergi1000Australia2026-06-22
Adams S Malet1001Argentina2026-06-24
Adams H Vocelka1002Spain2026-06-09
Julie J Perin1003Canada2026-07-02
Izzy Q Rulapaugh1004Spain2026-06-28
Mayumi Z Foller1005United Kingdom2026-06-24
Faith Y Oldroyd1006United Kingdom2026-06-24
Emily B Ostrosky1007Russia2026-06-22
Wickens M Dilliard1008United Kingdom2026-06-28
Juan X Tollner1009Brazil2026-06-25
Alejandro M Waycott1010Russia2026-06-29
Jones R Albares1011India2026-06-18
Darci V Marrier1012United Kingdom2026-06-26
Wickens E Bowley1013Australia2026-06-14
Johnson Y Caudy1014Japan2026-06-15
Julie E Slusarski1015Japan2026-06-17
Aruna K Foller1016Italy2026-06-24
Jefferson X Garufi1017Japan2026-07-04
Jeanfrancois S Gaucho1018Argentina2026-06-18
Morrow F Campain1019France2026-06-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones D KuskoUnited KingdomAmy Elsner PROPOSAL
Nicolas V SergiFranceXuxue Feng RENEWAL
Wickens O NickaUnited KingdomStephen Shaw NEGOTIATION
Antonio M BriddickFranceStephen Shaw NEW
Mayumi H ShinkoGermanyIvan Magalhaes NEW
Julie H DarakjyGermanyElwin Sharvill QUALIFIED
Jefferson Z GauchoJapanIoni Bowcher UNQUALIFIED
Ashley S FollerItalyStephen Shaw NEW
Tony V DilliardGermanyAmy Elsner PROPOSAL
Aditya F VocelkaSpainBernardo Dominic RENEWAL
Greenwood B WieserSpainAsiya Javayant QUALIFIED
Jeanfrancois O OstroskyArgentinaAnna Fali UNQUALIFIED
Aruna K OstroskyAustraliaOnyama Limba PROPOSAL
Arvin Y StockhamGermanyOnyama Limba NEW
Mujtaba G GillianUnited KingdomOnyama Limba QUALIFIED
Octavia C DilliardArgentinaIoni Bowcher PROPOSAL
Isabel C DoeItalyXuxue Feng UNQUALIFIED
Ivar Q WhobreyItalyAnna Fali NEGOTIATION
Misaki L GillianUnited KingdomAsiya Javayant UNQUALIFIED
Francesco R CampainCanadaXuxue Feng RENEWAL
Sinclair T AlbaresJapanElwin Sharvill QUALIFIED
Alejandro D BologniaIndiaAnna Fali NEGOTIATION
Izzy O MacleadArgentinaStephen Shaw RENEWAL
Leon V GauchoItalyXuxue Feng QUALIFIED
Cody T FlosiRussiaIvan Magalhaes RENEWAL
Salvatore M CaudyJapanStephen Shaw RENEWAL
James H VenereBrazilAnna Fali NEW
Murillo T FerenczItalyOnyama Limba RENEWAL
Aditya W GarufiAustraliaAnna Fali PROPOSAL
Wickens K OldroydSpainOnyama Limba UNQUALIFIED
Alejandro M WieserGermanyOnyama Limba NEGOTIATION
Salvatore C DilliardAustraliaAnna Fali NEW
Kadeem J CaudyAustraliaXuxue Feng NEGOTIATION
Greenwood B WaycottItalyIvan Magalhaes UNQUALIFIED
Kaitlin D CampainAustraliaIoni Bowcher NEGOTIATION
Costa V StensethRussiaAmy Elsner QUALIFIED
Aika H GlickIndiaIvan Magalhaes NEGOTIATION
Tony W InouyeUnited KingdomAnna Fali QUALIFIED
Maisha C GlickRussiaAmy Elsner UNQUALIFIED
Aika O MarrierArgentinaIoni Bowcher PROPOSAL

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