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
Alejandro B BologniaFranceAsiya Javayant QUALIFIED
Mujtaba T CampainRussiaOnyama Limba RENEWAL
Rodrigues A NestleArgentinaOnyama Limba RENEWAL
Maria N BriddickArgentinaIoni Bowcher UNQUALIFIED
Rodrigues V PoquetteFranceElwin Sharvill UNQUALIFIED
Stacey X FerenczRussiaAsiya Javayant RENEWAL
Murillo S ChuiItalyIoni Bowcher UNQUALIFIED
Misaki L AlbaresAustraliaIoni Bowcher PROPOSAL
Leja K PerinArgentinaBernardo Dominic NEGOTIATION
Rodrigues Z WieserCanadaElwin Sharvill PROPOSAL
Smith Z WieserArgentinaAsiya Javayant NEW
Chavez W VocelkaBrazilAmy Elsner NEW
Faith N FollerItalyIoni Bowcher UNQUALIFIED
Jennifer N TollnerRussiaAnna Fali UNQUALIFIED
Salvatore U MarrierCanadaIoni Bowcher QUALIFIED
Claire H ButtArgentinaAnna Fali QUALIFIED
Alejandro W RimFranceAsiya Javayant UNQUALIFIED
Darci Y OldroydArgentinaAnna Fali NEGOTIATION
Smith A PaprockiAustraliaXuxue Feng UNQUALIFIED
Cody K GlickCanadaXuxue Feng PROPOSAL
Kadeem S GillianAustraliaAnna Fali RENEWAL
Aruna E MacleadGermanyXuxue Feng NEGOTIATION
Jones D AmigonBrazilOnyama Limba QUALIFIED
Jones A BowleyAustraliaIvan Magalhaes NEW
Emily S SchemmerBrazilStephen Shaw RENEWAL
Rodrigues H CaudyFranceElwin Sharvill NEW
Maria L BriddickArgentinaXuxue Feng NEW
Octavia Y WhobreyBrazilIoni Bowcher RENEWAL
Antonio E GauchoGermanyElwin Sharvill RENEWAL
Greenwood A RoysterUnited KingdomAmy Elsner NEW
Clifford Q PaprockiArgentinaOnyama Limba QUALIFIED
Arvin L VocelkaFranceAmy Elsner RENEWAL
Jennifer I CampainArgentinaAnna Fali PROPOSAL
Ricardo L PerinIndiaElwin Sharvill NEW
Misaki A CaldareraBrazilIvan Magalhaes NEW
Maisha L WhobreyUnited KingdomElwin Sharvill PROPOSAL
Salvatore V KuskoAustraliaIvan Magalhaes PROPOSAL
Arvin C DoeJapanBernardo Dominic RENEWAL
Silvio M OldroydGermanyIvan Magalhaes UNQUALIFIED
Ricardo W BriddickIndiaAsiya Javayant PROPOSAL
Ashley J FerenczAustraliaStephen Shaw NEGOTIATION
Antonio G NickaCanadaAnna Fali RENEWAL
Ashley Z WaycottUnited KingdomIvan Magalhaes PROPOSAL
Smith O RimGermanyAmy Elsner NEW
Maisha C AmigonItalyAnna Fali UNQUALIFIED
Ricardo X FerenczFranceStephen Shaw NEGOTIATION
Ivar L KolmetzGermanyAnna Fali NEGOTIATION
Clifford G NestleCanadaAnna Fali RENEWAL
Salvatore U VenereGermanyAmy Elsner UNQUALIFIED
Nicolas M RulapaughUnited KingdomOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Faith R OldroydItalyElwin Sharvill RENEWAL
Tony Y SergiUnited KingdomXuxue Feng UNQUALIFIED
Jennifer U PaprockiSpainOnyama Limba NEGOTIATION
Izzy J AmigonIndiaAnna Fali NEW
Claire B DilliardJapanIoni Bowcher RENEWAL
Rodrigues T SaylorsArgentinaElwin Sharvill QUALIFIED
Mayumi O RimFranceXuxue Feng UNQUALIFIED
Jones K NickaJapanAmy Elsner NEGOTIATION
Claire W BologniaUnited KingdomXuxue Feng RENEWAL
Morrow H ChuiUnited KingdomIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci Q MacleadSpain2026-07-03Buckley Miller Wright RENEWAL42Stephen Shaw
1001Maria G NickaIndia2026-07-02Commercial Press NEGOTIATION45Ivan Magalhaes
1002Johnson V GauchoCanada2026-07-14Rangoni Of Florence NEGOTIATION70Xuxue Feng
1003Leon Q PoquetteItaly2026-06-27Feltz Printing Service QUALIFIED78Stephen Shaw
1004Nicolas I FollerItaly2026-07-16Dorl, James J Esq NEGOTIATION96Onyama Limba
1005Ivar L RutaIndia2026-07-12Printing Dimensions NEW85Stephen Shaw
1006Clifford V ButtIndia2026-07-03Printing Dimensions QUALIFIED41Onyama Limba
1007Chavez I ChuiItaly2026-06-26Feiner Bros QUALIFIED28Ioni Bowcher
1008Juan M RoysterGermany2026-07-13Buckley Miller Wright PROPOSAL75Bernardo Dominic
1009Murillo E FerenczBrazil2026-07-05Commercial Press UNQUALIFIED81Anna Fali
1010Jones T WieserUnited Kingdom2026-06-21Benton, John B Jr RENEWAL80Elwin Sharvill
1011Deepesh P WaycottArgentina2026-07-06Buckley Miller Wright PROPOSAL40Ivan Magalhaes
1012Chavez O PaprockiFrance2026-07-06Printing Dimensions UNQUALIFIED50Ioni Bowcher
1013Murillo G WhobreyJapan2026-07-06Feltz Printing Service NEW86Stephen Shaw
1014Emily D MarrierItaly2026-07-09Rousseaux, Michael Esq UNQUALIFIED74Asiya Javayant
1015Silvio W CaldareraAustralia2026-07-10Benton, John B Jr UNQUALIFIED66Amy Elsner
1016Jeanfrancois V BowleyRussia2026-07-19Feiner Bros NEGOTIATION58Elwin Sharvill
1017Salvatore C CaudyItaly2026-07-02Feiner Bros PROPOSAL80Elwin Sharvill
1018Deepesh O RulapaughArgentina2026-07-04Rousseaux, Michael Esq RENEWAL87Stephen Shaw
1019Mayumi P FerenczCanada2026-07-17Chapman, Ross E Esq NEW35Onyama Limba
1020Maria T WieserSpain2026-07-13Dorl, James J Esq RENEWAL22Amy Elsner
1021Julie D RulapaughItaly2026-07-09Morlong Associates PROPOSAL34Ioni Bowcher
1022Ashley Z GauchoItaly2026-06-25Benton, John B Jr RENEWAL29Stephen Shaw
1023Morrow H SchemmerArgentina2026-07-13Chemel, James L Cpa QUALIFIED83Asiya Javayant
1024Emily Y FerenczUnited Kingdom2026-07-10Rousseaux, Michael Esq PROPOSAL98Elwin Sharvill
1025Deepesh M NickaRussia2026-07-07Chemel, James L Cpa UNQUALIFIED23Ioni Bowcher
1026Ivar Y CampainArgentina2026-06-21Benton, John B Jr QUALIFIED24Stephen Shaw
1027Cody Q ButtIndia2026-07-11Benton, John B Jr PROPOSAL18Asiya Javayant
1028Morrow N GlickBrazil2026-07-19Truhlar And Truhlar Attys NEGOTIATION27Onyama Limba
1029Maisha R ButtJapan2026-07-16Rangoni Of Florence PROPOSAL44Stephen Shaw
1030Julie M StensethItaly2026-07-10Truhlar And Truhlar Attys NEGOTIATION44Anna Fali
1031Stacey G IturbideAustralia2026-07-02Feltz Printing Service UNQUALIFIED81Onyama Limba
1032Salvatore J SergiSpain2026-07-11Printing Dimensions QUALIFIED0Anna Fali
1033Clifford J SaylorsSpain2026-06-21King, Christopher A Esq NEGOTIATION81Bernardo Dominic
1034Aika U BologniaJapan2026-06-24Rousseaux, Michael Esq UNQUALIFIED1Xuxue Feng
1035Aditya F NickaIndia2026-07-17Printing Dimensions QUALIFIED85Bernardo Dominic
1036Deepesh P AmigonRussia2026-07-12Printing Dimensions QUALIFIED39Xuxue Feng
1037Jeanfrancois T WaycottFrance2026-07-18Rangoni Of Florence UNQUALIFIED29Ioni Bowcher
1038Salvatore T SchemmerIndia2026-07-13Morlong Associates PROPOSAL45Asiya Javayant
1039Tony J VocelkaJapan2026-07-08Chanay, Jeffrey A Esq NEW93Anna Fali
1040Rodrigues U ShinkoSpain2026-06-26King, Christopher A Esq NEGOTIATION65Ivan Magalhaes
1041Chavez X WaycottArgentina2026-07-04Chemel, James L Cpa PROPOSAL42Onyama Limba
1042Greenwood O RimSpain2026-06-22Rangoni Of Florence QUALIFIED67Amy Elsner
1043Jefferson O CaudyCanada2026-07-01Feiner Bros UNQUALIFIED55Onyama Limba
1044Francesco L ButtBrazil2026-07-02Feiner Bros PROPOSAL90Xuxue Feng
1045Smith Y VocelkaJapan2026-06-25Printing Dimensions QUALIFIED58Anna Fali
1046James U SaylorsUnited Kingdom2026-07-17Printing Dimensions QUALIFIED64Onyama Limba
1047Wickens A ChuiJapan2026-07-15Rousseaux, Michael Esq QUALIFIED4Asiya Javayant
1048Silvio U PerinItaly2026-06-21Dorl, James J Esq RENEWAL65Ivan Magalhaes
1049David X AmigonFrance2026-06-23Truhlar And Truhlar Attys NEW53Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Faith D TollnerItalyOnyama Limba NEGOTIATION
Silvio C ButtFranceIvan Magalhaes PROPOSAL
Alejandro T RoysterCanadaStephen Shaw QUALIFIED
Nicolas P TollnerSpainAnna Fali NEW
Chavez B SlusarskiJapanAnna Fali NEGOTIATION
Murillo D CampainAustraliaAnna Fali RENEWAL
Maisha L MarrierArgentinaAsiya Javayant NEGOTIATION
Deepesh N OstroskyIndiaIoni Bowcher PROPOSAL
Alejandro H KuskoSpainAmy Elsner QUALIFIED
Juan T BriddickRussiaBernardo Dominic NEW
Julie N AmigonGermanyOnyama Limba PROPOSAL
Jefferson Y KolmetzFranceIvan Magalhaes NEGOTIATION
Adams M BologniaJapanElwin Sharvill PROPOSAL
Clifford T InouyeUnited KingdomAmy Elsner UNQUALIFIED
Johnson B PaprockiAustraliaIoni Bowcher PROPOSAL
Kaitlin X MorascaGermanyAnna Fali RENEWAL
Francesco A FlosiRussiaBernardo Dominic UNQUALIFIED
Arvin W RutaRussiaXuxue Feng UNQUALIFIED
Clifford P CaudyRussiaAnna Fali UNQUALIFIED
Maria H SlusarskiAustraliaAnna Fali NEGOTIATION
Mayumi G SlusarskiBrazilElwin Sharvill RENEWAL
Cody U ChuiCanadaXuxue Feng RENEWAL
Mujtaba C PoquetteArgentinaAsiya Javayant UNQUALIFIED
Emily N DilliardRussiaBernardo Dominic NEGOTIATION
Jeanfrancois D FigeroaUnited KingdomStephen Shaw NEGOTIATION
Sinclair S ButtIndiaIoni Bowcher NEGOTIATION
Jones V FlosiCanadaElwin Sharvill UNQUALIFIED
Morrow A WieserCanadaStephen Shaw NEGOTIATION
Ivar X SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Wickens V MorascaAustraliaAnna Fali NEGOTIATION
Cody O CampainItalyXuxue Feng PROPOSAL
Francesco Y OstroskyCanadaAmy Elsner QUALIFIED
Faith U ChuiRussiaAmy Elsner NEW
Clifford J BriddickIndiaBernardo Dominic QUALIFIED
Silvio I OstroskyJapanElwin Sharvill QUALIFIED
Francesco K DoeSpainIvan Magalhaes UNQUALIFIED
Maria X RutaRussiaAsiya Javayant UNQUALIFIED
Kadeem E OstroskyCanadaAmy Elsner NEGOTIATION
Rodrigues M DoeItalyIoni Bowcher RENEWAL
Mayumi Y FollerIndiaAnna Fali PROPOSAL
Costa D MarrierBrazilBernardo Dominic PROPOSAL
Izzy T VocelkaFranceXuxue Feng PROPOSAL
Leja N FlosiFranceIvan Magalhaes UNQUALIFIED
David N VocelkaUnited KingdomOnyama Limba NEW
Misaki T PerinItalyOnyama Limba UNQUALIFIED
Silvio Z TollnerAustraliaOnyama Limba QUALIFIED
Ivar E InouyeSpainElwin Sharvill PROPOSAL
Aika F BowleyGermanyElwin Sharvill NEGOTIATION
Smith F PoquetteUnited KingdomIvan Magalhaes PROPOSAL
Wickens N PerinJapanIvan Magalhaes NEW
Frozen Columns
Name
Maisha J Gillian
Octavia Z Nicka
Emily I Perin
Octavia C Bolognia
Arvin D Oldroyd
Alejandro B Rim
David R Paprocki
Deepesh N Flosi
Leja V Whobrey
Munro Q Nestle
Ricardo X Poquette
Emily I Flosi
Johnson J Stenseth
Rodrigues Q Royster
Ashley C Kolmetz
Salvatore X Inouye
Salvatore P Nestle
Octavia V Briddick
Alejandro D Tollner
Claire E Rulapaugh
Emily W Stockham
Isabel A Ferencz
Jeanfrancois O Campain
Jeanfrancois K Paprocki
Adams B Kolmetz
Cody B Briddick
Morrow T Malet
Munro P Maclead
Mayumi B Campain
Isabel R Butt
Silvio H Oldroyd
Ashley S Figeroa
Izzy B Kolmetz
Maisha M Bowley
Johnson S Paprocki
Leon C Caudy
Leja G Gaucho
Johnson Z Dilliard
Faith G Campain
Francesco G Perin
Mujtaba R Gillian
Greenwood P Doe
Aika G Kusko
Cody V Perin
Jeanfrancois P Flosi
Ashley K Gaucho
Maisha F Ostrosky
Maria I Iturbide
Smith R Ferencz
Claire Y Albares
IdCountryDate
1000Germany2026-07-06
1001Australia2026-07-17
1002Spain2026-06-30
1003Japan2026-06-25
1004Japan2026-07-04
1005Germany2026-07-03
1006United Kingdom2026-06-22
1007France2026-06-28
1008France2026-07-05
1009India2026-06-22
1010Spain2026-06-23
1011France2026-07-07
1012Germany2026-07-05
1013Spain2026-07-07
1014India2026-06-28
1015India2026-07-18
1016Canada2026-07-09
1017Japan2026-07-15
1018Germany2026-06-22
1019Russia2026-07-01
1020Germany2026-07-01
1021United Kingdom2026-06-26
1022Italy2026-07-17
1023Australia2026-07-14
1024United Kingdom2026-07-12
1025Italy2026-06-26
1026Brazil2026-06-21
1027United Kingdom2026-06-29
1028France2026-07-17
1029France2026-07-18
1030France2026-07-03
1031Japan2026-07-19
1032Brazil2026-07-09
1033Italy2026-06-23
1034United Kingdom2026-07-13
1035Australia2026-06-29
1036Russia2026-07-06
1037Australia2026-07-20
1038Australia2026-07-15
1039Brazil2026-07-17
1040Italy2026-06-27
1041Australia2026-07-15
1042France2026-07-07
1043Russia2026-07-07
1044United Kingdom2026-06-29
1045France2026-07-04
1046Brazil2026-07-20
1047Australia2026-07-18
1048United Kingdom2026-06-25
1049India2026-07-13

On-Demand Data

NameIdCountryDate
Jennifer A Perin1000India2026-07-17
Darci Z Ostrosky1001Australia2026-06-25
Emily B Poquette1002France2026-06-28
Morrow P Bolognia1003Italy2026-07-12
Costa I Venere1004United Kingdom2026-07-20
Salvatore D Gillian1005Australia2026-07-15
Tony X Nicka1006Australia2026-07-07
Sinclair C Garufi1007India2026-06-30
Clifford G Maclead1008Canada2026-06-23
Sinclair X Caldarera1009India2026-07-03
Costa V Doe1010India2026-07-11
Izzy U Caudy1011Italy2026-07-04
Cody D Stenseth1012Russia2026-07-14
Nicolas O Oldroyd1013Germany2026-06-28
Jeanfrancois E Waycott1014Russia2026-06-24
Arvin F Shinko1015Canada2026-07-14
Kadeem B Ruta1016Spain2026-06-25
Jennifer X Ostrosky1017Germany2026-07-16
Clifford Z Tollner1018India2026-07-11
Munro E Venere1019Japan2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson I RimUnited KingdomXuxue Feng QUALIFIED
Arvin R VocelkaAustraliaOnyama Limba RENEWAL
Johnson R FollerGermanyStephen Shaw UNQUALIFIED
Deepesh S IturbideJapanIvan Magalhaes NEGOTIATION
Jennifer F StensethFranceIvan Magalhaes NEGOTIATION
Arvin V ButtAustraliaOnyama Limba RENEWAL
Jeanfrancois J SchemmerUnited KingdomAnna Fali NEW
Ashley V TollnerAustraliaElwin Sharvill RENEWAL
Darci Q MaletUnited KingdomOnyama Limba PROPOSAL
Kaitlin E BriddickSpainAsiya Javayant UNQUALIFIED
Jeanfrancois R FlosiUnited KingdomStephen Shaw PROPOSAL
Greenwood S DilliardJapanOnyama Limba NEGOTIATION
Isabel S CaudyBrazilIoni Bowcher QUALIFIED
Octavia V RimCanadaAmy Elsner PROPOSAL
Kaitlin O StockhamGermanyIvan Magalhaes RENEWAL
Ivar F PaprockiCanadaXuxue Feng NEW
Sinclair D MaletGermanyElwin Sharvill RENEWAL
Faith O WaycottSpainAmy Elsner PROPOSAL
Jefferson W TollnerJapanAmy Elsner PROPOSAL
Wickens I FollerUnited KingdomStephen Shaw NEGOTIATION
Jennifer K SergiUnited KingdomBernardo Dominic UNQUALIFIED
Aruna Z BriddickUnited KingdomIvan Magalhaes QUALIFIED
James R VocelkaGermanyBernardo Dominic NEW
Maisha W BriddickSpainStephen Shaw QUALIFIED
Faith T RoysterGermanyElwin Sharvill RENEWAL
Greenwood B GlickIndiaStephen Shaw QUALIFIED
Morrow Y GauchoCanadaAmy Elsner NEW
Faith C AlbaresGermanyAnna Fali NEW
Salvatore J DoeGermanyXuxue Feng QUALIFIED
Wickens B OstroskyAustraliaStephen Shaw PROPOSAL
Darci P SlusarskiUnited KingdomAnna Fali UNQUALIFIED
Alejandro R GlickUnited KingdomIoni Bowcher NEGOTIATION
Ricardo S PoquetteRussiaXuxue Feng RENEWAL
Claire J ChuiCanadaBernardo Dominic QUALIFIED
Aditya E ButtAustraliaAsiya Javayant NEGOTIATION
Greenwood O RimSpainOnyama Limba NEGOTIATION
Morrow E OldroydArgentinaStephen Shaw RENEWAL
Greenwood Z PoquetteGermanyAmy Elsner PROPOSAL
Octavia H DarakjyItalyAnna Fali NEW
Claire E AmigonAustraliaElwin Sharvill 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>