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 A StockhamJapanElwin Sharvill NEGOTIATION
Stacey Y FlosiItalyElwin Sharvill QUALIFIED
Antonio U DilliardFranceStephen Shaw PROPOSAL
Leon U CaldareraArgentinaAsiya Javayant NEGOTIATION
Chavez Z FerenczJapanOnyama Limba NEW
Mujtaba M StensethJapanAmy Elsner RENEWAL
Deepesh E DilliardItalyAsiya Javayant RENEWAL
Aika O ButtCanadaOnyama Limba QUALIFIED
Darci F BowleyFranceElwin Sharvill UNQUALIFIED
Jennifer S DoeJapanStephen Shaw NEW
Faith N BologniaIndiaXuxue Feng NEGOTIATION
Alejandro P SergiUnited KingdomOnyama Limba UNQUALIFIED
Misaki Q DilliardSpainIvan Magalhaes UNQUALIFIED
Ashley S BowleyItalyXuxue Feng UNQUALIFIED
David Y KuskoCanadaIoni Bowcher NEGOTIATION
Emily J FigeroaBrazilXuxue Feng RENEWAL
James L BowleyCanadaIoni Bowcher PROPOSAL
Octavia K BowleyArgentinaStephen Shaw NEGOTIATION
Kaitlin E CaldareraBrazilIoni Bowcher RENEWAL
Morrow M CampainArgentinaIvan Magalhaes UNQUALIFIED
Aika T NickaGermanyXuxue Feng NEW
Claire C SergiItalyIoni Bowcher RENEWAL
Ivar A BriddickSpainBernardo Dominic QUALIFIED
Greenwood O ShinkoItalyAnna Fali PROPOSAL
Adams E BowleyItalyIvan Magalhaes NEGOTIATION
Antonio E PerinCanadaElwin Sharvill PROPOSAL
Wickens R TollnerAustraliaOnyama Limba NEGOTIATION
Adams V WhobreyIndiaStephen Shaw UNQUALIFIED
Aruna R TollnerGermanyIoni Bowcher NEGOTIATION
Stacey Z DoeRussiaAnna Fali RENEWAL
Maisha Z CaudyFranceIoni Bowcher QUALIFIED
Ashley G MaletRussiaXuxue Feng UNQUALIFIED
Octavia J StockhamSpainAmy Elsner NEW
David S RulapaughItalyElwin Sharvill PROPOSAL
Juan B MaletArgentinaAnna Fali QUALIFIED
Cody X OstroskyJapanOnyama Limba RENEWAL
Nicolas X SaylorsAustraliaXuxue Feng QUALIFIED
Aruna L WieserUnited KingdomAnna Fali QUALIFIED
Ashley M ChuiSpainAsiya Javayant NEW
Ashley C SaylorsGermanyOnyama Limba UNQUALIFIED
Isabel C IturbideJapanAnna Fali UNQUALIFIED
Ashley R FlosiArgentinaAnna Fali RENEWAL
Mayumi E PerinUnited KingdomStephen Shaw UNQUALIFIED
Mayumi D GarufiArgentinaAnna Fali UNQUALIFIED
Ricardo L VenereAustraliaBernardo Dominic NEGOTIATION
Murillo B MorascaAustraliaOnyama Limba RENEWAL
Octavia I StockhamSpainIoni Bowcher NEGOTIATION
Leon D SergiSpainStephen Shaw NEGOTIATION
Jeanfrancois S StockhamGermanyXuxue Feng QUALIFIED
Greenwood E FollerRussiaStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Juan E CampainSpainBernardo Dominic UNQUALIFIED
Claire K GarufiAustraliaXuxue Feng NEGOTIATION
Costa I DilliardCanadaOnyama Limba PROPOSAL
Misaki O RutaCanadaBernardo Dominic NEW
Wickens Z GarufiAustraliaElwin Sharvill NEGOTIATION
Smith T DoeGermanyIoni Bowcher UNQUALIFIED
Wickens B StensethSpainOnyama Limba PROPOSAL
Smith A SlusarskiRussiaAsiya Javayant NEW
Alejandro V KuskoFranceOnyama Limba UNQUALIFIED
Jefferson X VenereSpainAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia V PerinArgentina2026-08-04Chanay, Jeffrey A Esq RENEWAL5Ioni Bowcher
1001Kaitlin F CaudyArgentina2026-08-22Rangoni Of Florence NEGOTIATION84Asiya Javayant
1002Octavia G PerinBrazil2026-08-13Printing Dimensions UNQUALIFIED75Stephen Shaw
1003Ricardo B StockhamRussia2026-08-07King, Christopher A Esq PROPOSAL84Amy Elsner
1004Ivar V OstroskyItaly2026-08-14Rangoni Of Florence QUALIFIED95Xuxue Feng
1005Faith F ChuiFrance2026-08-15Feltz Printing Service PROPOSAL41Anna Fali
1006Jefferson O PerinGermany2026-07-28Feltz Printing Service RENEWAL69Elwin Sharvill
1007Jones H KolmetzRussia2026-08-11Morlong Associates NEGOTIATION6Ioni Bowcher
1008Johnson V BriddickGermany2026-07-30Buckley Miller Wright RENEWAL12Onyama Limba
1009Tony L SlusarskiBrazil2026-07-27Printing Dimensions RENEWAL17Asiya Javayant
1010Faith Z CaldareraCanada2026-08-22Commercial Press NEW14Asiya Javayant
1011Izzy A DoeGermany2026-08-06Buckley Miller Wright RENEWAL67Bernardo Dominic
1012Octavia F FollerItaly2026-08-19Buckley Miller Wright QUALIFIED99Anna Fali
1013Octavia N FerenczIndia2026-08-13Buckley Miller Wright QUALIFIED36Onyama Limba
1014Mayumi U GauchoArgentina2026-08-22Feltz Printing Service NEGOTIATION86Onyama Limba
1015Tony J StensethArgentina2026-08-20Rangoni Of Florence UNQUALIFIED63Amy Elsner
1016Julie N BriddickJapan2026-08-22Feiner Bros NEW9Elwin Sharvill
1017Munro J MaletUnited Kingdom2026-08-24King, Christopher A Esq PROPOSAL18Stephen Shaw
1018Adams R RoysterIndia2026-08-21King, Christopher A Esq NEW20Onyama Limba
1019Ivar H RutaIndia2026-07-26King, Christopher A Esq NEW68Bernardo Dominic
1020Isabel W TollnerUnited Kingdom2026-08-21Truhlar And Truhlar Attys NEGOTIATION61Elwin Sharvill
1021Munro O BowleyRussia2026-08-24Dorl, James J Esq NEGOTIATION87Elwin Sharvill
1022David N ChuiUnited Kingdom2026-08-12Chemel, James L Cpa PROPOSAL84Stephen Shaw
1023Smith O RutaFrance2026-08-11Benton, John B Jr PROPOSAL56Xuxue Feng
1024Darci X RoysterGermany2026-08-08Commercial Press RENEWAL50Bernardo Dominic
1025Misaki U WhobreyArgentina2026-08-06Dorl, James J Esq PROPOSAL28Asiya Javayant
1026Juan I MorascaItaly2026-08-21Buckley Miller Wright UNQUALIFIED55Ivan Magalhaes
1027Sinclair J PaprockiItaly2026-08-13Rangoni Of Florence NEGOTIATION52Asiya Javayant
1028Morrow F MaletItaly2026-08-08Chanay, Jeffrey A Esq QUALIFIED95Elwin Sharvill
1029Jennifer V ButtSpain2026-08-12Chanay, Jeffrey A Esq PROPOSAL1Stephen Shaw
1030Deepesh V CampainUnited Kingdom2026-08-05Chemel, James L Cpa PROPOSAL3Xuxue Feng
1031Faith J WaycottAustralia2026-08-15Morlong Associates PROPOSAL23Ivan Magalhaes
1032Arvin U GillianRussia2026-08-14Chanay, Jeffrey A Esq NEW30Anna Fali
1033Clifford F NestleArgentina2026-08-14Feiner Bros RENEWAL28Onyama Limba
1034Tony P OldroydFrance2026-08-06Feiner Bros NEW76Ioni Bowcher
1035Izzy S WhobreyArgentina2026-08-01Benton, John B Jr QUALIFIED88Stephen Shaw
1036James P DarakjyUnited Kingdom2026-08-06Dorl, James J Esq NEGOTIATION73Onyama Limba
1037Ivar U InouyeJapan2026-07-29Rangoni Of Florence NEW76Asiya Javayant
1038Ricardo C FerenczJapan2026-08-09Chemel, James L Cpa PROPOSAL81Stephen Shaw
1039Alejandro H PerinJapan2026-08-06Benton, John B Jr RENEWAL11Ivan Magalhaes
1040Murillo O AlbaresSpain2026-08-19Rousseaux, Michael Esq QUALIFIED2Anna Fali
1041Darci H BologniaCanada2026-08-12Truhlar And Truhlar Attys NEGOTIATION21Ivan Magalhaes
1042Smith W SergiCanada2026-08-04Printing Dimensions NEGOTIATION28Elwin Sharvill
1043Deepesh Q BriddickGermany2026-07-26Truhlar And Truhlar Attys UNQUALIFIED14Ioni Bowcher
1044Morrow A KuskoItaly2026-08-01Chanay, Jeffrey A Esq NEGOTIATION34Anna Fali
1045Adams Q ShinkoJapan2026-08-14Feltz Printing Service RENEWAL48Ioni Bowcher
1046Clifford E RutaBrazil2026-08-17Printing Dimensions PROPOSAL47Stephen Shaw
1047Chavez V DoeItaly2026-08-19Chanay, Jeffrey A Esq QUALIFIED34Ioni Bowcher
1048Salvatore Z WaycottRussia2026-08-12Feltz Printing Service NEGOTIATION73Onyama Limba
1049Johnson Y NestleGermany2026-08-14Chapman, Ross E Esq PROPOSAL61Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Wickens Y KolmetzGermanyBernardo Dominic NEGOTIATION
Maisha N ChuiAustraliaIoni Bowcher PROPOSAL
Tony X RulapaughRussiaBernardo Dominic RENEWAL
Smith K SchemmerBrazilIoni Bowcher NEW
Cody F KuskoSpainAmy Elsner NEGOTIATION
Costa L WieserSpainAsiya Javayant UNQUALIFIED
Costa X CaldareraIndiaOnyama Limba NEW
Octavia Y KuskoIndiaIvan Magalhaes RENEWAL
Faith W FerenczCanadaIoni Bowcher RENEWAL
Ashley E BowleyCanadaOnyama Limba UNQUALIFIED
Adams T BriddickBrazilElwin Sharvill NEW
Kadeem N ChuiBrazilXuxue Feng RENEWAL
Nicolas X PoquetteAustraliaAmy Elsner RENEWAL
Kaitlin Y WaycottJapanAsiya Javayant UNQUALIFIED
James O RoysterRussiaAmy Elsner QUALIFIED
Leon F DarakjyItalyAsiya Javayant NEGOTIATION
Munro R RimFranceElwin Sharvill UNQUALIFIED
Greenwood Y DarakjyArgentinaAsiya Javayant NEW
Octavia O OldroydRussiaXuxue Feng UNQUALIFIED
Alejandro X PerinUnited KingdomXuxue Feng NEW
Greenwood O DarakjyJapanBernardo Dominic RENEWAL
Aruna O SergiItalyIvan Magalhaes NEW
Kadeem N SchemmerCanadaAsiya Javayant UNQUALIFIED
James N BriddickAustraliaBernardo Dominic PROPOSAL
Izzy O OldroydRussiaElwin Sharvill RENEWAL
Deepesh P SaylorsIndiaElwin Sharvill RENEWAL
Leja Q WhobreyIndiaBernardo Dominic UNQUALIFIED
Misaki O CaudyItalyElwin Sharvill RENEWAL
Aruna Q CaldareraBrazilIvan Magalhaes NEW
Johnson W IturbideBrazilAsiya Javayant NEGOTIATION
Costa Z KuskoCanadaBernardo Dominic PROPOSAL
Maria H AlbaresRussiaIoni Bowcher NEGOTIATION
Claire L VenereItalyAmy Elsner NEW
Kadeem E RimSpainXuxue Feng PROPOSAL
Greenwood Z BriddickJapanAsiya Javayant RENEWAL
Salvatore U NickaAustraliaBernardo Dominic NEGOTIATION
James Q TollnerJapanOnyama Limba QUALIFIED
Deepesh M CaldareraFranceXuxue Feng NEW
Salvatore X WaycottAustraliaIvan Magalhaes UNQUALIFIED
Faith N BologniaBrazilXuxue Feng NEW
Chavez V MacleadBrazilIvan Magalhaes QUALIFIED
David A BowleyRussiaBernardo Dominic UNQUALIFIED
Faith A ButtIndiaOnyama Limba NEW
Mujtaba C ButtCanadaAmy Elsner RENEWAL
Izzy E OldroydJapanOnyama Limba PROPOSAL
Deepesh D FerenczCanadaStephen Shaw QUALIFIED
Cody S SchemmerAustraliaXuxue Feng NEW
Wickens Q IturbideFranceIvan Magalhaes PROPOSAL
Maria C MaletItalyAnna Fali RENEWAL
Tony J NestleCanadaAnna Fali QUALIFIED
Frozen Columns
Name
Wickens G Rim
Adams H Schemmer
Cody L Whobrey
Ashley W Morasca
Juan Q Kusko
Salvatore J Nicka
Cody K Caldarera
Mayumi Y Bowley
David T Waycott
Izzy V Wieser
Aika R Caudy
Aditya L Figeroa
Antonio Y Rim
Mujtaba L Bolognia
Emily K Stenseth
Johnson N Venere
Leja G Bowley
Alejandro S Nestle
Aditya Y Slusarski
Julie E Paprocki
Murillo O Tollner
Silvio S Chui
Kadeem D Iturbide
Salvatore R Royster
Isabel U Malet
Salvatore Y Slusarski
Mayumi G Iturbide
Nicolas X Rulapaugh
Adams J Saylors
Sinclair Y Bolognia
Emily H Caldarera
Salvatore S Ferencz
Johnson D Stockham
Munro Z Caudy
David D Briddick
Tony N Dilliard
Juan L Morasca
Chavez T Marrier
Rodrigues W Slusarski
Claire W Nestle
Wickens D Nestle
Nicolas T Saylors
Rodrigues D Rim
Aditya M Nicka
Emily R Flosi
Aruna Y Chui
David Q Rulapaugh
Faith A Caldarera
Wickens D Slusarski
Ivar G Kusko
IdCountryDate
1000Canada2026-08-18
1001India2026-08-18
1002Canada2026-08-18
1003Germany2026-08-06
1004Italy2026-08-10
1005France2026-08-08
1006Brazil2026-08-09
1007France2026-08-19
1008Canada2026-07-29
1009France2026-08-07
1010Germany2026-08-17
1011Brazil2026-08-01
1012France2026-08-22
1013United Kingdom2026-08-15
1014Italy2026-08-22
1015United Kingdom2026-07-30
1016Argentina2026-08-10
1017France2026-08-16
1018France2026-07-29
1019Canada2026-07-28
1020Spain2026-08-17
1021Spain2026-08-21
1022India2026-08-18
1023Brazil2026-08-21
1024Italy2026-08-08
1025Spain2026-08-02
1026Australia2026-07-29
1027Russia2026-08-10
1028United Kingdom2026-08-01
1029Brazil2026-08-09
1030Russia2026-08-12
1031United Kingdom2026-07-28
1032Germany2026-08-16
1033Argentina2026-07-28
1034Japan2026-08-19
1035France2026-08-09
1036Japan2026-08-21
1037France2026-08-10
1038India2026-07-30
1039Russia2026-07-30
1040Brazil2026-07-31
1041Germany2026-08-16
1042Australia2026-08-09
1043Argentina2026-08-17
1044United Kingdom2026-08-12
1045Argentina2026-07-29
1046Japan2026-08-11
1047Argentina2026-08-13
1048Canada2026-08-09
1049Argentina2026-08-06

On-Demand Data

NameIdCountryDate
Aditya Q Rulapaugh1000United Kingdom2026-08-15
Silvio O Paprocki1001Russia2026-08-03
Ivar P Gaucho1002India2026-08-18
Nicolas K Paprocki1003Argentina2026-08-12
Ashley U Tollner1004Australia2026-08-16
Juan J Stockham1005Japan2026-08-19
Greenwood V Ruta1006Russia2026-08-05
Clifford R Kusko1007France2026-07-26
Jones L Butt1008Germany2026-07-30
Kaitlin R Perin1009Canada2026-07-26
Juan J Rulapaugh1010Italy2026-08-18
Darci C Campain1011India2026-08-06
Nicolas Y Schemmer1012Russia2026-07-30
Clifford I Nestle1013Australia2026-07-26
Jones D Briddick1014Japan2026-08-16
Misaki G Foller1015Japan2026-07-27
Rodrigues P Doe1016Japan2026-07-31
Clifford V Maclead1017United Kingdom2026-08-08
Tony M Malet1018Russia2026-08-03
Faith U Maclead1019Italy2026-08-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens T KolmetzCanadaIoni Bowcher UNQUALIFIED
Antonio E SchemmerItalyElwin Sharvill UNQUALIFIED
Isabel Q AlbaresArgentinaIvan Magalhaes UNQUALIFIED
Juan B OstroskyJapanElwin Sharvill PROPOSAL
Smith A GillianFranceAsiya Javayant UNQUALIFIED
Deepesh F NestleCanadaXuxue Feng RENEWAL
Alejandro B MarrierIndiaElwin Sharvill UNQUALIFIED
Stacey X KuskoFranceBernardo Dominic QUALIFIED
Sinclair A RutaJapanAmy Elsner UNQUALIFIED
Jefferson S WaycottBrazilIvan Magalhaes PROPOSAL
Leon N VocelkaItalyAsiya Javayant PROPOSAL
Juan P IturbideFranceAmy Elsner QUALIFIED
Aditya T RoysterItalyAmy Elsner NEW
Alejandro R BriddickAustraliaElwin Sharvill PROPOSAL
Wickens N SaylorsRussiaBernardo Dominic RENEWAL
Juan W BologniaSpainIoni Bowcher NEW
Sinclair X ShinkoAustraliaOnyama Limba RENEWAL
Chavez C MarrierBrazilBernardo Dominic PROPOSAL
Octavia I StockhamIndiaIvan Magalhaes QUALIFIED
Nicolas V OldroydJapanAmy Elsner RENEWAL
Rodrigues R BologniaGermanyAnna Fali QUALIFIED
Aika H GlickJapanStephen Shaw QUALIFIED
Clifford H OstroskyItalyBernardo Dominic NEW
Wickens F PoquetteArgentinaBernardo Dominic NEGOTIATION
Juan P NickaArgentinaAsiya Javayant NEGOTIATION
Juan N SlusarskiRussiaAnna Fali UNQUALIFIED
Clifford O MorascaAustraliaXuxue Feng RENEWAL
Leja F BriddickSpainAnna Fali NEW
Leon L SlusarskiBrazilIvan Magalhaes QUALIFIED
Adams P SaylorsItalyAnna Fali QUALIFIED
Clifford M GarufiIndiaOnyama Limba UNQUALIFIED
Alejandro K TollnerCanadaAnna Fali NEW
Faith U NickaSpainOnyama Limba PROPOSAL
Ricardo Y VocelkaSpainElwin Sharvill RENEWAL
Rodrigues F MarrierUnited KingdomAnna Fali UNQUALIFIED
Johnson V GarufiUnited KingdomElwin Sharvill RENEWAL
Jennifer A RimJapanAmy Elsner NEW
Salvatore N PaprockiAustraliaAmy Elsner PROPOSAL
Costa Q GillianSpainAmy Elsner NEGOTIATION
Aruna Y ButtFranceElwin Sharvill 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>