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
Murillo G RimCanadaAnna Fali QUALIFIED
Tony G StensethAustraliaAmy Elsner RENEWAL
Chavez X StockhamArgentinaAmy Elsner PROPOSAL
Salvatore F InouyeAustraliaIvan Magalhaes NEGOTIATION
Mayumi T BriddickRussiaXuxue Feng PROPOSAL
Munro K InouyeItalyBernardo Dominic UNQUALIFIED
Nicolas X VenereGermanyIoni Bowcher NEW
Juan G RulapaughJapanXuxue Feng NEW
Nicolas J MarrierJapanIoni Bowcher PROPOSAL
Ricardo W ButtBrazilBernardo Dominic NEW
Arvin U MaletArgentinaAmy Elsner NEGOTIATION
Chavez U DarakjyArgentinaAnna Fali PROPOSAL
Stacey F GlickGermanyAsiya Javayant PROPOSAL
Rodrigues I AlbaresCanadaXuxue Feng QUALIFIED
Sinclair S RoysterSpainIoni Bowcher UNQUALIFIED
Wickens V KuskoUnited KingdomStephen Shaw NEGOTIATION
Misaki O CampainSpainAmy Elsner PROPOSAL
Arvin L PerinJapanAmy Elsner NEW
Rodrigues S AmigonFranceIvan Magalhaes NEGOTIATION
Darci W SlusarskiGermanyElwin Sharvill NEW
Costa V SlusarskiBrazilBernardo Dominic QUALIFIED
David R OldroydSpainAsiya Javayant NEW
Murillo P DarakjyGermanyOnyama Limba PROPOSAL
Adams Z FerenczAustraliaOnyama Limba PROPOSAL
Ricardo M DilliardUnited KingdomXuxue Feng NEGOTIATION
Adams F DoeCanadaIvan Magalhaes RENEWAL
Costa Q MaletUnited KingdomStephen Shaw RENEWAL
Stacey F RimCanadaIvan Magalhaes UNQUALIFIED
Antonio M MorascaIndiaElwin Sharvill NEW
Claire J VocelkaArgentinaStephen Shaw QUALIFIED
Mujtaba B GauchoJapanOnyama Limba NEGOTIATION
Aditya E MorascaSpainBernardo Dominic NEW
Ashley D IturbideArgentinaAmy Elsner UNQUALIFIED
Mujtaba L RulapaughAustraliaStephen Shaw QUALIFIED
James G BowleyJapanElwin Sharvill RENEWAL
Mujtaba H BowleyUnited KingdomOnyama Limba NEGOTIATION
Faith Y PerinRussiaIvan Magalhaes UNQUALIFIED
Leja O RimBrazilOnyama Limba NEGOTIATION
James H FigeroaCanadaAmy Elsner NEW
Octavia C KuskoItalyIvan Magalhaes NEGOTIATION
Kadeem L AmigonGermanyAmy Elsner UNQUALIFIED
Misaki H FerenczCanadaStephen Shaw QUALIFIED
Aika U StockhamCanadaElwin Sharvill RENEWAL
Greenwood S RulapaughAustraliaAnna Fali NEGOTIATION
Munro S GlickJapanBernardo Dominic NEW
Nicolas A StockhamUnited KingdomAmy Elsner NEW
Rodrigues X TollnerUnited KingdomAmy Elsner UNQUALIFIED
Claire F ChuiBrazilAmy Elsner NEGOTIATION
Munro E KolmetzAustraliaIvan Magalhaes RENEWAL
Francesco I RoysterSpainIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ashley C WaycottArgentinaXuxue Feng RENEWAL
Juan P PerinCanadaElwin Sharvill NEGOTIATION
Salvatore D RulapaughUnited KingdomAmy Elsner NEGOTIATION
Faith U GillianArgentinaIvan Magalhaes RENEWAL
Aditya P PerinGermanyXuxue Feng RENEWAL
Tony G DarakjyBrazilAnna Fali NEGOTIATION
Smith S FigeroaJapanAmy Elsner UNQUALIFIED
Maria Q FlosiJapanXuxue Feng UNQUALIFIED
Chavez B SaylorsSpainElwin Sharvill PROPOSAL
Maria W RoysterSpainOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson N MacleadCanada2026-07-13Chapman, Ross E Esq NEW55Ivan Magalhaes
1001Deepesh V CaldareraItaly2026-07-12King, Christopher A Esq RENEWAL4Ioni Bowcher
1002Adams O BowleyIndia2026-07-22Chapman, Ross E Esq UNQUALIFIED34Onyama Limba
1003Tony P MacleadArgentina2026-07-23Chemel, James L Cpa RENEWAL47Anna Fali
1004Murillo W BowleySpain2026-07-08Rousseaux, Michael Esq RENEWAL91Bernardo Dominic
1005Maria C SergiGermany2026-07-25Benton, John B Jr UNQUALIFIED61Onyama Limba
1006Ricardo S InouyeJapan2026-07-28Morlong Associates UNQUALIFIED83Elwin Sharvill
1007Ivar C WieserJapan2026-07-21Rousseaux, Michael Esq NEGOTIATION48Bernardo Dominic
1008David Y RutaCanada2026-07-03Buckley Miller Wright NEGOTIATION78Elwin Sharvill
1009Aika T MaletItaly2026-07-09Chapman, Ross E Esq NEGOTIATION26Anna Fali
1010Salvatore I FerenczItaly2026-07-05Dorl, James J Esq NEW57Amy Elsner
1011Maisha Z WaycottCanada2026-07-27Buckley Miller Wright QUALIFIED60Elwin Sharvill
1012Emily C CaldareraArgentina2026-07-13Rangoni Of Florence UNQUALIFIED7Xuxue Feng
1013Adams G BriddickCanada2026-07-05Rangoni Of Florence NEW23Ivan Magalhaes
1014Kadeem C FlosiUnited Kingdom2026-07-26Truhlar And Truhlar Attys PROPOSAL69Ivan Magalhaes
1015Silvio V FerenczAustralia2026-07-18Truhlar And Truhlar Attys QUALIFIED88Amy Elsner
1016Silvio R VenereGermany2026-07-10Truhlar And Truhlar Attys RENEWAL69Anna Fali
1017Greenwood M DilliardArgentina2026-07-30Chapman, Ross E Esq QUALIFIED15Stephen Shaw
1018Sinclair M ShinkoGermany2026-07-20Dorl, James J Esq NEGOTIATION56Bernardo Dominic
1019Antonio P MaletUnited Kingdom2026-07-03Buckley Miller Wright NEGOTIATION26Stephen Shaw
1020Kadeem T ButtAustralia2026-07-13Chapman, Ross E Esq QUALIFIED36Ivan Magalhaes
1021Isabel M ButtBrazil2026-07-27Rousseaux, Michael Esq NEW80Ioni Bowcher
1022Greenwood X SergiSpain2026-07-09Commercial Press PROPOSAL28Elwin Sharvill
1023Ricardo J VenereGermany2026-08-01Truhlar And Truhlar Attys NEW99Ioni Bowcher
1024Ricardo P InouyeFrance2026-07-06Commercial Press QUALIFIED63Asiya Javayant
1025Maisha U WhobreyAustralia2026-07-28King, Christopher A Esq QUALIFIED65Xuxue Feng
1026Deepesh M RoysterAustralia2026-07-27Commercial Press RENEWAL76Amy Elsner
1027Isabel T GarufiSpain2026-07-24Commercial Press RENEWAL64Onyama Limba
1028James I BriddickSpain2026-07-20Chapman, Ross E Esq NEGOTIATION60Amy Elsner
1029Salvatore R SlusarskiArgentina2026-07-25Truhlar And Truhlar Attys PROPOSAL44Anna Fali
1030Salvatore K NestleJapan2026-07-03Morlong Associates NEW31Bernardo Dominic
1031James K TollnerCanada2026-07-07Buckley Miller Wright NEGOTIATION59Ivan Magalhaes
1032Alejandro Z FollerRussia2026-07-31Buckley Miller Wright QUALIFIED90Onyama Limba
1033Ricardo U NestleItaly2026-07-25Chanay, Jeffrey A Esq UNQUALIFIED17Bernardo Dominic
1034Chavez B PaprockiRussia2026-07-24Chanay, Jeffrey A Esq PROPOSAL92Xuxue Feng
1035Jones Z RimSpain2026-07-08Buckley Miller Wright QUALIFIED24Xuxue Feng
1036Misaki F FigeroaFrance2026-07-04Printing Dimensions NEGOTIATION26Asiya Javayant
1037Ricardo P FollerIndia2026-07-28Chanay, Jeffrey A Esq NEW63Elwin Sharvill
1038Ashley K MacleadBrazil2026-07-05Chemel, James L Cpa UNQUALIFIED89Ioni Bowcher
1039Wickens F NestleCanada2026-07-10King, Christopher A Esq NEGOTIATION41Stephen Shaw
1040Adams K VenereJapan2026-07-05Chanay, Jeffrey A Esq NEGOTIATION86Amy Elsner
1041Stacey R CampainIndia2026-07-12Chapman, Ross E Esq UNQUALIFIED16Ioni Bowcher
1042Francesco T AlbaresSpain2026-07-04Feiner Bros UNQUALIFIED92Amy Elsner
1043Ricardo U RulapaughItaly2026-07-27Rousseaux, Michael Esq NEW55Xuxue Feng
1044Rodrigues A WaycottJapan2026-07-21Benton, John B Jr QUALIFIED29Stephen Shaw
1045Francesco X CampainAustralia2026-08-01Commercial Press UNQUALIFIED74Bernardo Dominic
1046Aika O ShinkoSpain2026-07-13Chanay, Jeffrey A Esq PROPOSAL30Amy Elsner
1047Jefferson J TollnerBrazil2026-07-05Commercial Press NEGOTIATION46Stephen Shaw
1048Darci A ChuiUnited Kingdom2026-07-21Rangoni Of Florence RENEWAL39Elwin Sharvill
1049Chavez U MarrierArgentina2026-07-19Buckley Miller Wright NEW62Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Wickens N ChuiUnited KingdomIvan Magalhaes QUALIFIED
Munro N AmigonCanadaIoni Bowcher PROPOSAL
Tony S StockhamItalyOnyama Limba NEGOTIATION
Tony J NestleBrazilXuxue Feng QUALIFIED
Claire G BowleyArgentinaAsiya Javayant NEGOTIATION
Antonio X MorascaUnited KingdomIvan Magalhaes RENEWAL
Munro K KolmetzSpainXuxue Feng RENEWAL
Francesco T SchemmerJapanAnna Fali PROPOSAL
Costa Y MarrierGermanyXuxue Feng PROPOSAL
Alejandro R SlusarskiFranceIoni Bowcher QUALIFIED
Misaki I MacleadFranceBernardo Dominic NEW
Aditya I FlosiIndiaIvan Magalhaes QUALIFIED
Johnson E ChuiItalyIoni Bowcher RENEWAL
Juan F OstroskyUnited KingdomAsiya Javayant PROPOSAL
David F VenereRussiaIvan Magalhaes RENEWAL
Aditya S VenereRussiaIvan Magalhaes QUALIFIED
Ashley F CaudyGermanyIoni Bowcher PROPOSAL
Leon H SergiSpainElwin Sharvill NEGOTIATION
James L GlickUnited KingdomStephen Shaw NEGOTIATION
Wickens D BologniaItalyAsiya Javayant PROPOSAL
Kaitlin J FlosiUnited KingdomIoni Bowcher NEW
David Q BriddickSpainOnyama Limba NEW
Nicolas U GillianItalyStephen Shaw UNQUALIFIED
Aditya Z TollnerAustraliaOnyama Limba NEGOTIATION
Johnson X GarufiFranceElwin Sharvill NEGOTIATION
Francesco S GillianAustraliaXuxue Feng PROPOSAL
Stacey D SaylorsSpainXuxue Feng NEW
Johnson K SchemmerCanadaAnna Fali NEW
Smith G IturbideRussiaIvan Magalhaes PROPOSAL
Octavia G MaletRussiaAnna Fali RENEWAL
David G KolmetzFranceIvan Magalhaes PROPOSAL
Ivar X NestleBrazilBernardo Dominic UNQUALIFIED
Misaki H RimGermanyBernardo Dominic NEGOTIATION
Jones H MaletBrazilIoni Bowcher NEW
Ashley N RulapaughFranceOnyama Limba UNQUALIFIED
Ashley K SlusarskiBrazilOnyama Limba NEW
Ivar O RoysterArgentinaIoni Bowcher UNQUALIFIED
Aditya G FerenczJapanXuxue Feng NEW
Chavez P BologniaItalyAnna Fali UNQUALIFIED
Antonio G DarakjyArgentinaIoni Bowcher NEGOTIATION
Sinclair I NickaCanadaStephen Shaw PROPOSAL
Ashley M NestleJapanStephen Shaw NEGOTIATION
Kaitlin J ShinkoUnited KingdomBernardo Dominic NEW
Ricardo H MaletItalyXuxue Feng NEGOTIATION
Octavia H FollerGermanyAsiya Javayant PROPOSAL
Ivar C GauchoSpainIoni Bowcher QUALIFIED
Francesco T MarrierAustraliaXuxue Feng RENEWAL
Leon T ShinkoRussiaXuxue Feng QUALIFIED
Kadeem M VocelkaCanadaAnna Fali UNQUALIFIED
Wickens D RoysterArgentinaOnyama Limba PROPOSAL
Frozen Columns
Name
Maria F Tollner
Stacey A Malet
Jones M Slusarski
Antonio U Foller
Clifford L Slusarski
Nicolas T Bowley
Aika R Perin
Jones C Slusarski
Deepesh M Saylors
Adams I Glick
Deepesh U Ostrosky
Costa O Poquette
Francesco A Rulapaugh
Smith Y Nestle
Emily J Nicka
Mujtaba J Garufi
Misaki W Chui
Stacey B Gillian
Johnson Y Malet
Jefferson Y Gillian
Aditya G Whobrey
Salvatore C Gaucho
Adams A Stenseth
David V Perin
Leja J Shinko
Murillo F Paprocki
Greenwood P Briddick
Costa B Waycott
Johnson I Stockham
Johnson A Royster
Leja B Waycott
Claire M Kusko
Antonio Y Malet
Smith Q Bowley
Jennifer D Albares
Emily N Flosi
David G Figeroa
Rodrigues D Slusarski
Ashley E Slusarski
Adams S Tollner
Julie M Perin
Darci U Malet
Arvin U Doe
Salvatore D Morasca
Faith P Malet
David H Shinko
Isabel Z Butt
Sinclair M Amigon
Ashley W Perin
Maria D Oldroyd
IdCountryDate
1000Russia2026-07-31
1001Australia2026-07-15
1002Spain2026-07-24
1003Spain2026-07-08
1004Russia2026-07-24
1005Canada2026-07-15
1006India2026-07-23
1007Japan2026-07-19
1008Australia2026-07-28
1009Canada2026-07-14
1010Spain2026-07-28
1011Spain2026-07-06
1012Germany2026-07-10
1013Japan2026-07-16
1014India2026-07-10
1015Spain2026-07-11
1016Spain2026-07-31
1017Argentina2026-07-21
1018United Kingdom2026-07-12
1019Germany2026-07-26
1020Japan2026-07-30
1021India2026-07-24
1022United Kingdom2026-07-10
1023United Kingdom2026-07-10
1024Australia2026-07-19
1025Germany2026-07-17
1026Canada2026-07-22
1027Italy2026-07-08
1028Brazil2026-07-12
1029Argentina2026-07-25
1030Brazil2026-07-29
1031Russia2026-07-17
1032Brazil2026-07-14
1033Italy2026-08-01
1034Canada2026-07-10
1035Canada2026-07-14
1036Spain2026-07-29
1037France2026-07-29
1038Italy2026-07-28
1039Spain2026-07-10
1040United Kingdom2026-07-25
1041United Kingdom2026-07-10
1042Australia2026-07-11
1043Canada2026-08-01
1044United Kingdom2026-07-28
1045United Kingdom2026-07-11
1046India2026-07-16
1047Italy2026-07-14
1048Spain2026-08-01
1049Russia2026-07-15

On-Demand Data

NameIdCountryDate
Costa H Nestle1000United Kingdom2026-07-30
Deepesh Q Malet1001Australia2026-07-22
Arvin C Dilliard1002Italy2026-07-07
Morrow R Butt1003Spain2026-07-15
Cody B Maclead1004Japan2026-07-23
Cody C Royster1005Brazil2026-07-04
Aditya C Venere1006Australia2026-07-18
Chavez B Malet1007Russia2026-07-08
Jeanfrancois V Whobrey1008Brazil2026-07-11
Leja W Slusarski1009Japan2026-08-01
Mayumi N Stockham1010Spain2026-07-09
Octavia X Maclead1011India2026-07-08
Claire Z Garufi1012Canada2026-07-13
Mayumi Y Bowley1013Brazil2026-07-15
Chavez B Saylors1014Canada2026-07-18
Mayumi W Rim1015Canada2026-07-14
Salvatore Y Dilliard1016Australia2026-07-06
Tony B Maclead1017Argentina2026-07-13
Kadeem T Venere1018Japan2026-07-10
Johnson O Inouye1019Canada2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio D WaycottSpainIvan Magalhaes UNQUALIFIED
Adams P RoysterUnited KingdomStephen Shaw QUALIFIED
Jefferson T BologniaRussiaIvan Magalhaes NEW
Emily R SlusarskiFranceAsiya Javayant PROPOSAL
Jefferson A FigeroaJapanElwin Sharvill PROPOSAL
Stacey F RulapaughGermanyAnna Fali UNQUALIFIED
Wickens T AmigonBrazilIvan Magalhaes PROPOSAL
Jeanfrancois T WieserGermanyXuxue Feng QUALIFIED
Tony T SchemmerBrazilIoni Bowcher RENEWAL
Juan K WieserFranceIoni Bowcher UNQUALIFIED
Ivar W FigeroaGermanyStephen Shaw UNQUALIFIED
Faith B MaletIndiaStephen Shaw UNQUALIFIED
Kadeem B WhobreyGermanyIoni Bowcher NEW
Ashley U FlosiUnited KingdomXuxue Feng NEGOTIATION
Leon L OstroskyIndiaAnna Fali RENEWAL
Julie G SlusarskiGermanyOnyama Limba NEW
Rodrigues W BologniaGermanyAnna Fali UNQUALIFIED
Aditya D PaprockiFranceOnyama Limba QUALIFIED
Smith P MorascaItalyIvan Magalhaes NEGOTIATION
Ivar L StensethUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois W RutaAustraliaStephen Shaw NEW
David L GarufiSpainStephen Shaw QUALIFIED
Deepesh W MaletArgentinaStephen Shaw UNQUALIFIED
Leon T ShinkoUnited KingdomElwin Sharvill UNQUALIFIED
Arvin I MorascaRussiaIvan Magalhaes PROPOSAL
Darci K VenereArgentinaStephen Shaw QUALIFIED
Aditya V ButtRussiaAmy Elsner NEW
Clifford G MaletUnited KingdomBernardo Dominic QUALIFIED
Jeanfrancois G CaudyUnited KingdomAsiya Javayant UNQUALIFIED
Wickens Q ButtSpainIoni Bowcher NEW
Octavia S SchemmerGermanyBernardo Dominic PROPOSAL
Octavia P InouyeIndiaAsiya Javayant UNQUALIFIED
Adams A FlosiJapanStephen Shaw UNQUALIFIED
Jeanfrancois R MaletUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois C PerinGermanyAmy Elsner NEGOTIATION
Ricardo V CampainRussiaIoni Bowcher NEW
Misaki F ChuiFranceIoni Bowcher UNQUALIFIED
Alejandro B ShinkoCanadaStephen Shaw QUALIFIED
Maisha T SchemmerAustraliaElwin Sharvill QUALIFIED
Isabel Y AlbaresArgentinaOnyama Limba NEW

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