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
Emily E SchemmerItalyAsiya Javayant UNQUALIFIED
Arvin R RoysterGermanyBernardo Dominic QUALIFIED
Faith Z WieserIndiaAnna Fali PROPOSAL
Leja A GlickSpainStephen Shaw RENEWAL
Cody J AlbaresSpainIoni Bowcher UNQUALIFIED
Ricardo H PoquetteFranceIoni Bowcher NEW
Mujtaba V MaletArgentinaAsiya Javayant NEW
Rodrigues E OstroskyIndiaAsiya Javayant RENEWAL
Jones V PerinBrazilOnyama Limba NEW
Izzy A MaletSpainAnna Fali NEGOTIATION
Johnson V MorascaBrazilAsiya Javayant UNQUALIFIED
Jeanfrancois A FerenczArgentinaXuxue Feng RENEWAL
James D SergiUnited KingdomStephen Shaw PROPOSAL
Salvatore V FigeroaItalyXuxue Feng NEGOTIATION
Jennifer A ShinkoUnited KingdomAnna Fali UNQUALIFIED
Cody E SaylorsJapanBernardo Dominic NEW
Misaki U GauchoUnited KingdomOnyama Limba RENEWAL
Chavez P MaletArgentinaAmy Elsner NEW
Johnson V ButtGermanyBernardo Dominic UNQUALIFIED
Sinclair N TollnerBrazilStephen Shaw RENEWAL
Faith T VocelkaGermanyIvan Magalhaes QUALIFIED
Emily L RulapaughCanadaStephen Shaw RENEWAL
Octavia U GarufiFranceStephen Shaw PROPOSAL
Julie V KuskoJapanBernardo Dominic RENEWAL
Adams U GarufiBrazilElwin Sharvill NEW
Julie Y GlickSpainAmy Elsner UNQUALIFIED
Tony J VenereItalyAmy Elsner QUALIFIED
Greenwood Y FlosiIndiaXuxue Feng RENEWAL
Maisha C GarufiBrazilBernardo Dominic NEW
Rodrigues T MaletFranceIvan Magalhaes NEGOTIATION
Maisha X GlickGermanyOnyama Limba RENEWAL
Kadeem D ShinkoUnited KingdomIvan Magalhaes RENEWAL
Silvio A WieserUnited KingdomIvan Magalhaes NEGOTIATION
Ivar A BriddickItalyOnyama Limba UNQUALIFIED
Leon Q GarufiCanadaIoni Bowcher RENEWAL
Misaki M CaldareraBrazilAsiya Javayant NEW
Stacey X DilliardItalyXuxue Feng QUALIFIED
Leon M NickaIndiaXuxue Feng PROPOSAL
Kaitlin X ShinkoArgentinaStephen Shaw UNQUALIFIED
Kadeem N WaycottAustraliaAnna Fali NEW
Ivar A FlosiGermanyAsiya Javayant NEGOTIATION
Smith R GillianSpainAmy Elsner UNQUALIFIED
Kadeem C ShinkoIndiaAnna Fali QUALIFIED
Sinclair O ChuiAustraliaIoni Bowcher NEW
Isabel W DoeGermanyAnna Fali NEGOTIATION
Aruna I DilliardAustraliaIoni Bowcher NEW
Greenwood V OstroskyArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois Y IturbideJapanBernardo Dominic NEGOTIATION
Arvin V BriddickArgentinaIvan Magalhaes NEW
Mayumi D OldroydArgentinaXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams J PerinBrazilStephen Shaw NEW
Julie O FigeroaRussiaAsiya Javayant NEW
Darci L DarakjyIndiaAnna Fali RENEWAL
Morrow K OldroydCanadaXuxue Feng PROPOSAL
Kaitlin H RimArgentinaIoni Bowcher UNQUALIFIED
Kadeem K InouyeIndiaBernardo Dominic RENEWAL
Claire C CampainAustraliaElwin Sharvill NEGOTIATION
Kaitlin Y WieserSpainBernardo Dominic RENEWAL
Salvatore D VenereIndiaAmy Elsner NEGOTIATION
Faith Q DoeIndiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith Y CampainArgentina2026-07-16King, Christopher A Esq PROPOSAL59Onyama Limba
1001Stacey B PerinFrance2026-07-28Printing Dimensions QUALIFIED20Amy Elsner
1002Aika K MorascaSpain2026-08-02Chemel, James L Cpa QUALIFIED12Elwin Sharvill
1003Aditya B FlosiJapan2026-08-09Chanay, Jeffrey A Esq QUALIFIED0Amy Elsner
1004Claire Y GarufiFrance2026-07-24Benton, John B Jr UNQUALIFIED25Bernardo Dominic
1005James K KolmetzUnited Kingdom2026-07-16Benton, John B Jr NEW56Anna Fali
1006Juan N GlickBrazil2026-07-27Feiner Bros UNQUALIFIED6Ioni Bowcher
1007Francesco B FerenczItaly2026-08-01Chanay, Jeffrey A Esq PROPOSAL72Stephen Shaw
1008Ashley A RimBrazil2026-08-13Dorl, James J Esq NEGOTIATION68Ioni Bowcher
1009Maria O BriddickBrazil2026-08-13Dorl, James J Esq UNQUALIFIED7Stephen Shaw
1010Mayumi G SergiUnited Kingdom2026-07-17Benton, John B Jr NEW14Ivan Magalhaes
1011James Y PerinFrance2026-08-10Feltz Printing Service NEGOTIATION82Xuxue Feng
1012Aruna J MorascaItaly2026-08-01Dorl, James J Esq QUALIFIED4Ivan Magalhaes
1013Adams O ShinkoRussia2026-08-12Dorl, James J Esq NEW18Stephen Shaw
1014Kaitlin U ButtIndia2026-07-27Commercial Press NEW56Stephen Shaw
1015Isabel N RulapaughSpain2026-08-04Chapman, Ross E Esq RENEWAL45Amy Elsner
1016Silvio Z SchemmerUnited Kingdom2026-08-11Chanay, Jeffrey A Esq UNQUALIFIED11Ivan Magalhaes
1017Mujtaba P IturbideRussia2026-08-02Commercial Press QUALIFIED47Asiya Javayant
1018Arvin A ChuiArgentina2026-07-21Benton, John B Jr RENEWAL83Elwin Sharvill
1019Costa L StensethSpain2026-08-11Commercial Press QUALIFIED34Onyama Limba
1020Rodrigues L IturbideBrazil2026-08-05Feiner Bros PROPOSAL71Amy Elsner
1021James C ShinkoAustralia2026-08-01Rangoni Of Florence QUALIFIED42Onyama Limba
1022Faith F BriddickSpain2026-08-03Truhlar And Truhlar Attys RENEWAL22Amy Elsner
1023Maria E MacleadJapan2026-08-08Feltz Printing Service NEGOTIATION55Anna Fali
1024Isabel Y OstroskyItaly2026-08-11Benton, John B Jr QUALIFIED71Ivan Magalhaes
1025Tony H GarufiRussia2026-07-16Dorl, James J Esq NEW49Onyama Limba
1026Rodrigues S CampainFrance2026-08-12Benton, John B Jr UNQUALIFIED87Asiya Javayant
1027Ricardo F MacleadAustralia2026-07-23Benton, John B Jr NEGOTIATION43Bernardo Dominic
1028Isabel B RulapaughRussia2026-07-17Truhlar And Truhlar Attys RENEWAL57Amy Elsner
1029Emily O BowleyJapan2026-08-03Commercial Press NEGOTIATION50Anna Fali
1030Alejandro D SchemmerGermany2026-08-09Rangoni Of Florence NEGOTIATION81Ioni Bowcher
1031Faith P RoysterCanada2026-08-01Commercial Press UNQUALIFIED34Ioni Bowcher
1032Silvio X SaylorsRussia2026-07-29Commercial Press NEGOTIATION69Elwin Sharvill
1033Smith D RulapaughJapan2026-07-25Rangoni Of Florence RENEWAL19Asiya Javayant
1034Adams N DarakjyItaly2026-08-12Truhlar And Truhlar Attys NEW19Ivan Magalhaes
1035Leja L OstroskyAustralia2026-08-14Dorl, James J Esq QUALIFIED68Ivan Magalhaes
1036Misaki Z PaprockiJapan2026-08-02Chanay, Jeffrey A Esq NEW55Asiya Javayant
1037Kaitlin Y RimIndia2026-08-06Truhlar And Truhlar Attys QUALIFIED97Bernardo Dominic
1038Kadeem N WaycottJapan2026-07-23Feiner Bros NEW41Onyama Limba
1039Jefferson T DarakjyItaly2026-07-22Commercial Press NEW80Amy Elsner
1040Izzy M SlusarskiJapan2026-08-03Morlong Associates PROPOSAL28Anna Fali
1041Costa V RulapaughCanada2026-07-16Printing Dimensions QUALIFIED67Asiya Javayant
1042Mujtaba Z ChuiCanada2026-08-09Rangoni Of Florence UNQUALIFIED66Anna Fali
1043Sinclair T AlbaresJapan2026-07-18Morlong Associates NEGOTIATION81Asiya Javayant
1044Aditya O RimGermany2026-08-09Printing Dimensions PROPOSAL56Asiya Javayant
1045Smith E RulapaughBrazil2026-07-27Dorl, James J Esq UNQUALIFIED24Elwin Sharvill
1046Chavez H CaldareraBrazil2026-08-03Chanay, Jeffrey A Esq RENEWAL46Ioni Bowcher
1047Izzy T TollnerRussia2026-08-01Chanay, Jeffrey A Esq UNQUALIFIED39Stephen Shaw
1048Stacey G BriddickUnited Kingdom2026-07-16Chapman, Ross E Esq UNQUALIFIED5Amy Elsner
1049Leon G ButtIndia2026-08-07Printing Dimensions QUALIFIED34Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Kadeem N ButtCanadaStephen Shaw NEW
Antonio G GlickGermanyStephen Shaw RENEWAL
Jennifer T FigeroaUnited KingdomIoni Bowcher NEGOTIATION
Cody Z KolmetzGermanyAmy Elsner NEW
Leon U BologniaSpainIoni Bowcher UNQUALIFIED
James I MacleadFranceOnyama Limba PROPOSAL
Misaki Z DoeRussiaElwin Sharvill PROPOSAL
Wickens V SergiBrazilIvan Magalhaes UNQUALIFIED
Cody V SergiAustraliaElwin Sharvill NEGOTIATION
Johnson A TollnerUnited KingdomElwin Sharvill QUALIFIED
Mujtaba M GarufiBrazilOnyama Limba QUALIFIED
Rodrigues W CampainAustraliaXuxue Feng UNQUALIFIED
Mujtaba Z AmigonBrazilIvan Magalhaes RENEWAL
Misaki P RimJapanOnyama Limba UNQUALIFIED
Chavez I WaycottBrazilIoni Bowcher PROPOSAL
Maria C ChuiSpainAsiya Javayant QUALIFIED
Jefferson H ShinkoItalyBernardo Dominic NEW
Sinclair Z PerinIndiaBernardo Dominic RENEWAL
Mujtaba Q GarufiIndiaBernardo Dominic QUALIFIED
Adams G SchemmerArgentinaAsiya Javayant QUALIFIED
Leja N NestleRussiaOnyama Limba UNQUALIFIED
Emily J WieserGermanyAsiya Javayant NEW
Jennifer H FerenczArgentinaIvan Magalhaes PROPOSAL
Sinclair P BowleyUnited KingdomXuxue Feng NEGOTIATION
Misaki L WieserFranceAsiya Javayant UNQUALIFIED
Smith F MorascaItalyXuxue Feng NEGOTIATION
Ricardo N RulapaughArgentinaOnyama Limba PROPOSAL
Nicolas P KolmetzJapanAnna Fali NEGOTIATION
Darci H SchemmerItalyBernardo Dominic UNQUALIFIED
Faith W RulapaughIndiaIoni Bowcher UNQUALIFIED
Julie Q PoquetteArgentinaAmy Elsner QUALIFIED
Aditya V GarufiGermanyIvan Magalhaes RENEWAL
Stacey A MarrierItalyAnna Fali RENEWAL
Julie S GillianBrazilBernardo Dominic NEGOTIATION
David S NickaRussiaIvan Magalhaes QUALIFIED
Ricardo R GauchoUnited KingdomIoni Bowcher QUALIFIED
Leja Z KolmetzIndiaIoni Bowcher UNQUALIFIED
Mayumi K StockhamSpainAnna Fali QUALIFIED
Chavez R RulapaughCanadaBernardo Dominic NEW
Johnson R StockhamItalyIvan Magalhaes RENEWAL
Greenwood I SaylorsIndiaIvan Magalhaes RENEWAL
Leja O GarufiCanadaStephen Shaw RENEWAL
Deepesh Z FlosiCanadaElwin Sharvill NEGOTIATION
Clifford M AmigonFranceAnna Fali RENEWAL
Sinclair G AlbaresIndiaXuxue Feng NEW
Johnson I FollerRussiaBernardo Dominic NEW
Aika G RulapaughSpainElwin Sharvill NEGOTIATION
Darci B KuskoFranceBernardo Dominic PROPOSAL
Jones A BowleyBrazilAsiya Javayant QUALIFIED
Juan Y ButtIndiaIvan Magalhaes NEW
Frozen Columns
Name
Clifford Z Caldarera
Deepesh Y Caudy
Greenwood T Tollner
Silvio Y Venere
Silvio O Flosi
Darci K Oldroyd
Isabel T Shinko
Leja M Perin
Stacey H Ostrosky
Clifford Q Venere
Kadeem Z Bowley
Wickens O Inouye
Jeanfrancois Z Sergi
Jeanfrancois F Darakjy
Silvio V Wieser
Octavia W Gillian
Salvatore H Doe
Alejandro N Stenseth
Maisha P Ferencz
Julie T Stenseth
Leon C Garufi
Kaitlin T Figeroa
Ivar O Kolmetz
Octavia T Maclead
Sinclair R Doe
Murillo M Waycott
Deepesh O Paprocki
Emily P Albares
Emily I Nestle
Munro M Dilliard
Jeanfrancois W Schemmer
Johnson A Stockham
Jennifer G Campain
Leja A Campain
Izzy L Sergi
Juan E Rulapaugh
Kaitlin N Vocelka
Maisha P Sergi
Alejandro N Gillian
Octavia G Slusarski
Greenwood G Ferencz
Ivar B Campain
Jefferson D Foller
Stacey R Malet
Chavez R Dilliard
Misaki K Perin
David Q Whobrey
Leja S Malet
Mujtaba Q Rulapaugh
Ashley M Wieser
IdCountryDate
1000Argentina2026-07-18
1001Italy2026-07-21
1002Australia2026-07-27
1003Germany2026-07-29
1004France2026-08-11
1005Russia2026-07-25
1006Argentina2026-07-23
1007Spain2026-07-31
1008Germany2026-08-05
1009Japan2026-08-12
1010Germany2026-08-02
1011Italy2026-07-31
1012Australia2026-08-07
1013Brazil2026-08-02
1014Spain2026-08-09
1015United Kingdom2026-07-22
1016Japan2026-08-03
1017Canada2026-07-19
1018Argentina2026-08-04
1019United Kingdom2026-08-10
1020Germany2026-08-07
1021Japan2026-08-01
1022Brazil2026-08-01
1023Italy2026-08-13
1024India2026-07-18
1025Japan2026-07-27
1026Canada2026-07-21
1027France2026-08-08
1028Canada2026-07-21
1029Germany2026-08-05
1030India2026-08-06
1031United Kingdom2026-07-19
1032Australia2026-07-27
1033Australia2026-08-09
1034Japan2026-07-16
1035United Kingdom2026-07-30
1036Canada2026-07-18
1037United Kingdom2026-07-30
1038Italy2026-07-28
1039Russia2026-08-03
1040Germany2026-07-30
1041Canada2026-07-29
1042United Kingdom2026-08-07
1043Spain2026-07-17
1044France2026-08-01
1045Canada2026-07-30
1046Canada2026-08-08
1047Russia2026-07-31
1048Australia2026-07-24
1049Germany2026-08-13

On-Demand Data

NameIdCountryDate
David C Poquette1000France2026-07-25
Sinclair R Bowley1001Japan2026-08-14
James C Nestle1002India2026-08-05
Kadeem T Amigon1003Germany2026-07-24
Leon J Dilliard1004Japan2026-08-14
Deepesh J Oldroyd1005Germany2026-08-08
Tony M Tollner1006Australia2026-08-09
Darci Q Caldarera1007Canada2026-08-12
Deepesh O Bowley1008Italy2026-07-27
Kaitlin X Kusko1009France2026-08-02
Johnson Y Ruta1010India2026-08-09
Ivar V Stockham1011Australia2026-07-21
Juan L Schemmer1012Spain2026-07-18
Ivar R Wieser1013Brazil2026-08-11
Claire P Kusko1014United Kingdom2026-08-13
Silvio J Foller1015Australia2026-08-12
Maria P Oldroyd1016Japan2026-07-20
Costa G Maclead1017Germany2026-07-25
Clifford S Paprocki1018Australia2026-08-03
Aruna U Butt1019Russia2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar M KolmetzItalyAnna Fali NEW
Johnson K CaldareraCanadaAsiya Javayant NEGOTIATION
Leon B BowleyRussiaAnna Fali PROPOSAL
Silvio L DilliardRussiaAnna Fali NEW
Alejandro N WaycottAustraliaAnna Fali PROPOSAL
Jones O NestleIndiaAnna Fali RENEWAL
Juan S SlusarskiJapanAnna Fali QUALIFIED
Alejandro Y WieserSpainOnyama Limba RENEWAL
Johnson C ButtGermanyIoni Bowcher RENEWAL
Emily H DoeSpainElwin Sharvill QUALIFIED
Jefferson K RutaGermanyIvan Magalhaes NEW
David A PoquetteCanadaXuxue Feng QUALIFIED
Ivar H SergiCanadaXuxue Feng QUALIFIED
Greenwood M RoysterAustraliaXuxue Feng PROPOSAL
Munro F CaldareraCanadaStephen Shaw PROPOSAL
Greenwood N FerenczBrazilStephen Shaw NEGOTIATION
Morrow J FlosiGermanyElwin Sharvill NEW
Mujtaba Y ShinkoBrazilIoni Bowcher NEGOTIATION
Sinclair X IturbideUnited KingdomAmy Elsner QUALIFIED
Johnson G DarakjyIndiaIvan Magalhaes PROPOSAL
Ivar Q SlusarskiAustraliaIoni Bowcher QUALIFIED
Kaitlin R CaldareraArgentinaElwin Sharvill UNQUALIFIED
Sinclair K NestleCanadaStephen Shaw PROPOSAL
Jones A StockhamRussiaBernardo Dominic RENEWAL
Clifford Y DoeCanadaAsiya Javayant PROPOSAL
Mayumi L WaycottSpainAmy Elsner PROPOSAL
Misaki X SlusarskiAustraliaStephen Shaw RENEWAL
Clifford S InouyeSpainXuxue Feng NEW
Kadeem Q PerinUnited KingdomIoni Bowcher NEW
Nicolas P NickaAustraliaAmy Elsner NEGOTIATION
Antonio V CaudyAustraliaIoni Bowcher QUALIFIED
Ivar P RoysterJapanAnna Fali PROPOSAL
Francesco J VenereIndiaAnna Fali RENEWAL
Chavez L NickaAustraliaAmy Elsner RENEWAL
Kaitlin I StockhamBrazilXuxue Feng RENEWAL
Aditya Z ButtArgentinaIvan Magalhaes PROPOSAL
Ashley G MarrierCanadaIoni Bowcher PROPOSAL
Kadeem H DoeIndiaXuxue Feng NEGOTIATION
Misaki I ChuiBrazilAnna Fali NEGOTIATION
Nicolas M ChuiFranceAsiya Javayant 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>