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
Greenwood T RutaSpainAnna Fali UNQUALIFIED
Johnson H KolmetzFranceAmy Elsner UNQUALIFIED
Morrow W SchemmerBrazilAsiya Javayant QUALIFIED
Tony N RimAustraliaIvan Magalhaes UNQUALIFIED
Darci I TollnerItalyIvan Magalhaes RENEWAL
Misaki Y GlickAustraliaOnyama Limba PROPOSAL
Ricardo U ChuiUnited KingdomIoni Bowcher NEGOTIATION
Chavez K IturbideItalyAmy Elsner NEW
Arvin F WieserArgentinaElwin Sharvill RENEWAL
Antonio E VocelkaJapanStephen Shaw NEGOTIATION
Jennifer H MorascaUnited KingdomStephen Shaw RENEWAL
Antonio P OstroskySpainXuxue Feng RENEWAL
Leon E DilliardJapanStephen Shaw NEGOTIATION
Aditya W ShinkoRussiaStephen Shaw NEGOTIATION
Clifford T KuskoAustraliaAsiya Javayant RENEWAL
Munro U PaprockiSpainIoni Bowcher NEGOTIATION
Claire N ChuiAustraliaAsiya Javayant NEGOTIATION
Isabel X NickaCanadaIoni Bowcher NEGOTIATION
Antonio Z CaldareraCanadaIvan Magalhaes PROPOSAL
Claire E GauchoBrazilIvan Magalhaes RENEWAL
Salvatore U RutaRussiaOnyama Limba RENEWAL
Juan C VenereJapanStephen Shaw NEW
Antonio L BriddickRussiaIoni Bowcher RENEWAL
Wickens A DarakjyAustraliaIvan Magalhaes RENEWAL
Ricardo U OldroydSpainOnyama Limba UNQUALIFIED
James E SaylorsArgentinaAmy Elsner NEGOTIATION
Wickens C PerinBrazilAmy Elsner NEGOTIATION
Arvin U RutaItalyAnna Fali NEW
Jennifer K KolmetzIndiaBernardo Dominic NEW
Antonio C IturbideGermanyElwin Sharvill NEGOTIATION
Clifford F MaletRussiaXuxue Feng QUALIFIED
Wickens J OstroskyAustraliaIvan Magalhaes PROPOSAL
Leja O VenereFranceAmy Elsner RENEWAL
Misaki C RutaArgentinaAsiya Javayant NEGOTIATION
Misaki B WaycottIndiaAsiya Javayant RENEWAL
Francesco F PoquetteBrazilIvan Magalhaes NEW
Ashley L VenereItalyStephen Shaw UNQUALIFIED
Claire B IturbideFranceIvan Magalhaes QUALIFIED
Adams E ChuiRussiaOnyama Limba RENEWAL
Isabel R FlosiArgentinaOnyama Limba RENEWAL
Jennifer F AlbaresGermanyAsiya Javayant NEW
Darci U RulapaughRussiaXuxue Feng QUALIFIED
Maria D WaycottUnited KingdomIoni Bowcher RENEWAL
Nicolas X NickaSpainStephen Shaw QUALIFIED
Sinclair R KolmetzUnited KingdomOnyama Limba QUALIFIED
Isabel E WaycottSpainIvan Magalhaes PROPOSAL
David Y ButtArgentinaIoni Bowcher QUALIFIED
Antonio T DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Ivar Y CaudyAustraliaStephen Shaw UNQUALIFIED
Morrow S CampainCanadaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Johnson V WhobreyArgentinaAmy Elsner NEW
Octavia K RutaUnited KingdomBernardo Dominic PROPOSAL
Maisha E RutaFranceStephen Shaw UNQUALIFIED
David S GillianUnited KingdomAmy Elsner RENEWAL
Aika X NestleRussiaXuxue Feng NEW
Jefferson A OldroydJapanElwin Sharvill PROPOSAL
Aditya Q OstroskyRussiaAnna Fali UNQUALIFIED
Ivar O WaycottUnited KingdomElwin Sharvill PROPOSAL
Octavia I KuskoAustraliaXuxue Feng NEW
Faith W VocelkaAustraliaAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo Z RimArgentina2026-08-10Dorl, James J Esq NEW47Elwin Sharvill
1001Maisha E GarufiSpain2026-08-20Chemel, James L Cpa PROPOSAL90Elwin Sharvill
1002Morrow Y BowleyGermany2026-08-05Chanay, Jeffrey A Esq RENEWAL19Ivan Magalhaes
1003Munro M AmigonRussia2026-08-06Rousseaux, Michael Esq NEW70Stephen Shaw
1004Aika A OldroydJapan2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED68Asiya Javayant
1005Morrow M BologniaJapan2026-08-12Chemel, James L Cpa NEGOTIATION62Ivan Magalhaes
1006Ivar O SlusarskiFrance2026-08-16Chemel, James L Cpa NEGOTIATION61Stephen Shaw
1007Smith C FollerUnited Kingdom2026-08-11Rangoni Of Florence NEGOTIATION94Anna Fali
1008Mujtaba L GarufiCanada2026-08-11Truhlar And Truhlar Attys NEW20Anna Fali
1009Mujtaba S RutaUnited Kingdom2026-08-14Commercial Press NEW79Bernardo Dominic
1010Alejandro Y FerenczAustralia2026-08-26Feltz Printing Service NEGOTIATION38Anna Fali
1011Jennifer I ChuiAustralia2026-09-03Morlong Associates QUALIFIED63Onyama Limba
1012Juan S TollnerSpain2026-08-22Truhlar And Truhlar Attys PROPOSAL67Ioni Bowcher
1013Kadeem N VocelkaSpain2026-08-22Commercial Press NEGOTIATION83Asiya Javayant
1014Ashley E BriddickAustralia2026-08-08Benton, John B Jr RENEWAL44Xuxue Feng
1015Octavia X FollerBrazil2026-08-05Morlong Associates PROPOSAL80Ivan Magalhaes
1016Leja I AmigonRussia2026-08-10King, Christopher A Esq QUALIFIED6Onyama Limba
1017Costa E DarakjySpain2026-08-24Chemel, James L Cpa UNQUALIFIED78Asiya Javayant
1018Jones W InouyeIndia2026-09-01Commercial Press NEGOTIATION18Elwin Sharvill
1019Ashley U PoquetteUnited Kingdom2026-09-01Truhlar And Truhlar Attys NEW65Ioni Bowcher
1020Jefferson J ButtRussia2026-08-09Buckley Miller Wright NEGOTIATION63Onyama Limba
1021Ricardo U MorascaIndia2026-08-14Chanay, Jeffrey A Esq NEW50Asiya Javayant
1022Antonio O IturbideBrazil2026-08-30Chapman, Ross E Esq PROPOSAL5Ioni Bowcher
1023Izzy G DoeUnited Kingdom2026-08-22Truhlar And Truhlar Attys UNQUALIFIED48Onyama Limba
1024Kadeem L KuskoGermany2026-08-27Truhlar And Truhlar Attys RENEWAL95Ioni Bowcher
1025Costa H BologniaSpain2026-08-21Chapman, Ross E Esq NEW45Amy Elsner
1026Stacey G CampainGermany2026-08-23Feltz Printing Service UNQUALIFIED10Stephen Shaw
1027Leja P MacleadIndia2026-08-23Chemel, James L Cpa NEGOTIATION20Ivan Magalhaes
1028Maisha J StensethItaly2026-08-11Morlong Associates UNQUALIFIED82Ivan Magalhaes
1029Aika R OstroskyAustralia2026-08-25Buckley Miller Wright UNQUALIFIED49Stephen Shaw
1030Sinclair R RoysterJapan2026-08-10Rangoni Of Florence UNQUALIFIED26Ivan Magalhaes
1031Emily L BowleyRussia2026-08-19King, Christopher A Esq NEW21Ivan Magalhaes
1032Adams H WaycottRussia2026-08-28Rangoni Of Florence NEW21Ioni Bowcher
1033Francesco A SaylorsUnited Kingdom2026-09-02Feltz Printing Service RENEWAL84Anna Fali
1034Francesco P GillianArgentina2026-08-26King, Christopher A Esq RENEWAL34Ivan Magalhaes
1035Jones W SlusarskiRussia2026-08-23Dorl, James J Esq UNQUALIFIED80Stephen Shaw
1036Leja Z RutaRussia2026-08-08Chanay, Jeffrey A Esq RENEWAL10Asiya Javayant
1037Salvatore G DilliardUnited Kingdom2026-09-02Rousseaux, Michael Esq PROPOSAL60Bernardo Dominic
1038Adams V ChuiUnited Kingdom2026-08-07Chanay, Jeffrey A Esq NEGOTIATION5Ivan Magalhaes
1039Julie S VocelkaJapan2026-08-26Morlong Associates NEGOTIATION1Elwin Sharvill
1040Kaitlin V FerenczItaly2026-08-16Commercial Press NEW14Ioni Bowcher
1041Johnson I AlbaresSpain2026-09-03Chapman, Ross E Esq QUALIFIED67Ivan Magalhaes
1042Morrow I RutaArgentina2026-08-18Chapman, Ross E Esq PROPOSAL90Bernardo Dominic
1043Aika A KuskoArgentina2026-09-03Rousseaux, Michael Esq RENEWAL79Stephen Shaw
1044Jefferson P CaldareraFrance2026-08-11Benton, John B Jr NEW63Bernardo Dominic
1045Mujtaba T RutaSpain2026-08-30Feiner Bros RENEWAL92Ioni Bowcher
1046Alejandro C MacleadArgentina2026-08-17Benton, John B Jr QUALIFIED58Bernardo Dominic
1047Maria V TollnerFrance2026-08-13Chapman, Ross E Esq UNQUALIFIED1Amy Elsner
1048Clifford G InouyeItaly2026-08-15Chapman, Ross E Esq PROPOSAL49Stephen Shaw
1049Sinclair A InouyeRussia2026-08-05Benton, John B Jr RENEWAL61Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Kadeem U DoeRussiaAmy Elsner NEGOTIATION
Greenwood K MacleadJapanAsiya Javayant PROPOSAL
Ashley S GlickUnited KingdomAmy Elsner UNQUALIFIED
Jefferson O OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Wickens U CaudyAustraliaAmy Elsner RENEWAL
Ivar O FollerCanadaAnna Fali UNQUALIFIED
Tony L PaprockiJapanAmy Elsner NEGOTIATION
Mayumi T VenereSpainAnna Fali RENEWAL
Faith G DarakjyIndiaBernardo Dominic QUALIFIED
Julie W KuskoFranceOnyama Limba RENEWAL
James F ShinkoSpainOnyama Limba RENEWAL
Rodrigues U MorascaBrazilAmy Elsner RENEWAL
Jeanfrancois O WaycottUnited KingdomOnyama Limba NEW
Ashley F KolmetzArgentinaIvan Magalhaes PROPOSAL
Juan G OldroydBrazilStephen Shaw UNQUALIFIED
Sinclair J CaudySpainElwin Sharvill NEW
Adams N DilliardArgentinaAnna Fali NEGOTIATION
Chavez J RimGermanyAmy Elsner PROPOSAL
Chavez O OldroydArgentinaAsiya Javayant RENEWAL
Jeanfrancois K GauchoUnited KingdomElwin Sharvill NEW
Morrow C RutaArgentinaOnyama Limba NEW
Sinclair L PoquetteArgentinaAnna Fali NEGOTIATION
Jones E SlusarskiArgentinaAnna Fali QUALIFIED
Smith F StensethJapanIvan Magalhaes QUALIFIED
Jefferson R OstroskyBrazilStephen Shaw RENEWAL
Ricardo A StensethGermanyIvan Magalhaes QUALIFIED
Faith N CampainItalyAsiya Javayant PROPOSAL
Maria B GlickJapanAnna Fali QUALIFIED
Munro I OstroskyRussiaIvan Magalhaes QUALIFIED
Munro Q MaletItalyXuxue Feng PROPOSAL
Nicolas A BriddickIndiaOnyama Limba UNQUALIFIED
Leja Q OldroydAustraliaOnyama Limba UNQUALIFIED
Izzy N SergiBrazilIoni Bowcher NEW
Jefferson T OstroskySpainXuxue Feng UNQUALIFIED
Jefferson Q GillianRussiaAmy Elsner NEW
Antonio V MacleadCanadaIoni Bowcher RENEWAL
Claire W FigeroaSpainXuxue Feng NEGOTIATION
Deepesh W GarufiIndiaBernardo Dominic PROPOSAL
Jones T ButtArgentinaAsiya Javayant NEGOTIATION
Munro V RutaBrazilElwin Sharvill QUALIFIED
James E FlosiAustraliaOnyama Limba NEGOTIATION
Emily H WaycottAustraliaIvan Magalhaes UNQUALIFIED
Maisha Z OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Francesco A SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Munro I RoysterItalyStephen Shaw UNQUALIFIED
Ricardo J VenereAustraliaXuxue Feng NEGOTIATION
Costa M GlickRussiaAmy Elsner NEW
Deepesh Z SergiCanadaXuxue Feng QUALIFIED
Aruna I AmigonBrazilAsiya Javayant NEW
Izzy X CaldareraJapanElwin Sharvill RENEWAL
Frozen Columns
Name
Arvin D Ruta
Rodrigues N Stenseth
Juan R Waycott
Arvin I Darakjy
Ivar F Tollner
Faith T Morasca
Mayumi Y Stockham
Ivar D Stenseth
Jones R Caudy
Kaitlin Y Albares
James H Whobrey
Smith S Kolmetz
Alejandro F Oldroyd
Munro R Briddick
Maisha A Tollner
Maria W Bolognia
Ivar D Amigon
Antonio X Chui
Aruna M Caldarera
Juan K Whobrey
Jones Z Glick
Maisha Z Maclead
Francesco B Venere
David H Campain
Morrow V Waycott
Munro D Foller
Antonio H Doe
Wickens V Amigon
Maisha X Schemmer
James K Gillian
Maria C Butt
Alejandro P Kusko
Mayumi B Whobrey
Leja P Briddick
Jeanfrancois U Amigon
Juan X Poquette
Rodrigues P Inouye
Aika K Nicka
Munro R Caudy
Aruna Z Waycott
Julie A Darakjy
Izzy W Gillian
Francesco B Ostrosky
Francesco F Stenseth
Aruna S Inouye
Chavez J Perin
Stacey Z Nestle
Greenwood N Marrier
Stacey K Doe
Deepesh A Chui
IdCountryDate
1000Spain2026-09-03
1001Russia2026-08-10
1002Japan2026-08-28
1003Australia2026-08-23
1004Brazil2026-08-14
1005Brazil2026-08-05
1006Spain2026-08-14
1007India2026-08-19
1008Japan2026-08-31
1009Russia2026-08-08
1010Japan2026-08-08
1011France2026-08-10
1012Japan2026-08-30
1013Russia2026-08-30
1014Italy2026-08-19
1015India2026-08-27
1016Japan2026-08-17
1017Germany2026-08-07
1018Canada2026-08-17
1019Italy2026-08-12
1020Italy2026-08-26
1021Italy2026-09-02
1022Canada2026-08-25
1023Japan2026-09-01
1024India2026-08-16
1025United Kingdom2026-08-07
1026India2026-08-30
1027Spain2026-08-24
1028India2026-08-23
1029Spain2026-08-05
1030Canada2026-08-27
1031United Kingdom2026-08-05
1032United Kingdom2026-08-16
1033India2026-08-09
1034Brazil2026-08-21
1035Argentina2026-08-31
1036India2026-08-23
1037Spain2026-08-18
1038Canada2026-08-16
1039Brazil2026-08-28
1040Russia2026-08-17
1041Spain2026-08-18
1042India2026-08-15
1043Japan2026-08-20
1044Italy2026-08-21
1045Australia2026-08-06
1046United Kingdom2026-08-05
1047Italy2026-09-01
1048France2026-08-17
1049India2026-08-17

On-Demand Data

NameIdCountryDate
Misaki X Vocelka1000Australia2026-08-10
Leon W Royster1001France2026-08-28
Munro S Ostrosky1002Argentina2026-08-11
Stacey V Amigon1003Russia2026-08-05
Chavez S Malet1004Japan2026-08-25
Stacey L Amigon1005Germany2026-08-26
Costa H Rulapaugh1006Japan2026-08-29
Alejandro D Butt1007Australia2026-08-12
Leja G Amigon1008Argentina2026-08-29
James V Gillian1009France2026-08-06
Emily I Stockham1010Italy2026-08-08
Darci B Nicka1011Brazil2026-08-05
Jennifer C Venere1012Argentina2026-08-06
Murillo N Glick1013Australia2026-08-10
Sinclair U Slusarski1014Argentina2026-08-09
Aruna D Rulapaugh1015India2026-08-28
Isabel R Bolognia1016Australia2026-09-01
Aditya G Vocelka1017Germany2026-08-26
Julie C Briddick1018Canada2026-08-16
Aika T Glick1019Japan2026-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio G PerinUnited KingdomBernardo Dominic UNQUALIFIED
Maisha P FerenczJapanAmy Elsner NEGOTIATION
Munro A PerinSpainBernardo Dominic RENEWAL
Deepesh J MaletUnited KingdomOnyama Limba NEW
Isabel M StensethBrazilAnna Fali PROPOSAL
Clifford V DarakjyJapanStephen Shaw QUALIFIED
Cody S DoeRussiaAnna Fali UNQUALIFIED
Chavez N NestleBrazilElwin Sharvill NEW
Jeanfrancois X OldroydUnited KingdomAmy Elsner PROPOSAL
Jeanfrancois E RimUnited KingdomIoni Bowcher NEW
Arvin M ButtFranceIoni Bowcher NEW
Murillo U ShinkoBrazilAsiya Javayant NEGOTIATION
Alejandro Q AlbaresFranceBernardo Dominic QUALIFIED
Clifford Z DarakjyJapanIvan Magalhaes NEW
Costa B MacleadIndiaBernardo Dominic PROPOSAL
Wickens A PaprockiJapanIoni Bowcher QUALIFIED
Wickens W GillianJapanOnyama Limba PROPOSAL
David T StockhamFranceAsiya Javayant UNQUALIFIED
Isabel H GlickFranceAmy Elsner RENEWAL
Maisha A FerenczGermanyIoni Bowcher PROPOSAL
Leja Q DilliardFranceAnna Fali NEGOTIATION
Ivar E BriddickAustraliaBernardo Dominic NEW
Jones V RulapaughGermanyAmy Elsner PROPOSAL
Sinclair B PaprockiItalyAmy Elsner QUALIFIED
Claire A SaylorsAustraliaIoni Bowcher RENEWAL
Aika J ChuiArgentinaAnna Fali NEW
Isabel K SchemmerAustraliaAsiya Javayant RENEWAL
Silvio T FlosiBrazilElwin Sharvill RENEWAL
Silvio L AmigonJapanAmy Elsner RENEWAL
Juan A GlickCanadaXuxue Feng NEGOTIATION
Leon W MaletItalyIoni Bowcher QUALIFIED
Juan W CaldareraArgentinaStephen Shaw RENEWAL
Aika O AmigonAustraliaBernardo Dominic UNQUALIFIED
Arvin Q PaprockiRussiaIvan Magalhaes RENEWAL
Stacey E KolmetzAustraliaAnna Fali RENEWAL
Mujtaba E FlosiAustraliaAsiya Javayant UNQUALIFIED
Emily B InouyeArgentinaAsiya Javayant UNQUALIFIED
Jones Q SchemmerIndiaAnna Fali NEGOTIATION
Stacey X StensethCanadaStephen Shaw NEW
Nicolas S SaylorsGermanyIvan Magalhaes 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>