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
Claire J NickaCanadaBernardo Dominic NEW
Cody D MaletItalyIoni Bowcher UNQUALIFIED
Smith Q RulapaughItalyStephen Shaw PROPOSAL
Leja R AmigonRussiaAmy Elsner QUALIFIED
Maria I ShinkoBrazilXuxue Feng NEGOTIATION
Izzy S DilliardIndiaOnyama Limba NEGOTIATION
Octavia U DarakjyItalyAnna Fali NEW
Misaki G WieserFranceAmy Elsner UNQUALIFIED
Deepesh A NestleBrazilIvan Magalhaes PROPOSAL
Nicolas D WhobreyArgentinaAsiya Javayant NEW
Mujtaba K CaldareraUnited KingdomIvan Magalhaes PROPOSAL
Smith G MarrierArgentinaAsiya Javayant PROPOSAL
Clifford E PaprockiFranceXuxue Feng PROPOSAL
Jefferson Y GarufiFranceAnna Fali RENEWAL
Leja O RoysterArgentinaAmy Elsner RENEWAL
Kaitlin L CaudyRussiaAmy Elsner RENEWAL
James X FollerRussiaIvan Magalhaes RENEWAL
Ivar K FigeroaFranceIvan Magalhaes QUALIFIED
Octavia D BologniaSpainAsiya Javayant RENEWAL
Stacey D GauchoRussiaIoni Bowcher NEGOTIATION
Deepesh J StockhamRussiaOnyama Limba RENEWAL
Kaitlin T SergiJapanAnna Fali RENEWAL
Ricardo S FollerItalyIvan Magalhaes NEGOTIATION
Aditya M WhobreyAustraliaAmy Elsner QUALIFIED
Kaitlin U FlosiBrazilXuxue Feng UNQUALIFIED
Ricardo H RulapaughItalyElwin Sharvill PROPOSAL
Juan A StensethArgentinaAmy Elsner PROPOSAL
Aika Q GillianGermanyIoni Bowcher RENEWAL
Mayumi I SaylorsIndiaIoni Bowcher QUALIFIED
Ashley Y CaldareraJapanOnyama Limba UNQUALIFIED
Cody K BologniaAustraliaIvan Magalhaes NEW
Murillo F DilliardJapanElwin Sharvill RENEWAL
Rodrigues Q KolmetzJapanStephen Shaw UNQUALIFIED
Claire J WieserIndiaIoni Bowcher QUALIFIED
Jennifer G DarakjyFranceIoni Bowcher NEGOTIATION
Julie V OstroskyRussiaAnna Fali NEGOTIATION
Munro A KuskoItalyAnna Fali RENEWAL
Izzy S BowleyItalyXuxue Feng NEGOTIATION
Francesco G GarufiArgentinaIvan Magalhaes NEW
Smith X DilliardGermanyOnyama Limba NEW
Antonio Q PoquetteUnited KingdomAmy Elsner QUALIFIED
Jones W StockhamIndiaIoni Bowcher RENEWAL
Maria Q RimRussiaXuxue Feng QUALIFIED
Claire K DilliardJapanBernardo Dominic UNQUALIFIED
Deepesh I NestleUnited KingdomOnyama Limba PROPOSAL
Aika H FigeroaBrazilXuxue Feng QUALIFIED
Chavez Q ButtArgentinaIvan Magalhaes NEW
Ivar Z VocelkaJapanOnyama Limba UNQUALIFIED
Cody F MarrierRussiaBernardo Dominic RENEWAL
Juan O ShinkoArgentinaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Salvatore O FigeroaItalyAsiya Javayant UNQUALIFIED
Stacey L MacleadCanadaAnna Fali QUALIFIED
Aditya J MacleadFranceAsiya Javayant NEW
Kaitlin K GarufiArgentinaAsiya Javayant QUALIFIED
Adams P StockhamJapanIoni Bowcher NEW
Nicolas I DilliardCanadaStephen Shaw RENEWAL
Jefferson V SaylorsUnited KingdomBernardo Dominic QUALIFIED
Maisha Q PaprockiItalyIoni Bowcher NEGOTIATION
Jeanfrancois H MacleadJapanAsiya Javayant RENEWAL
Octavia Y AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar Z PoquetteAustralia2026-07-27Commercial Press NEW58Anna Fali
1001Faith A CaldareraUnited Kingdom2026-08-06Commercial Press UNQUALIFIED23Onyama Limba
1002Nicolas P PaprockiRussia2026-08-23Benton, John B Jr QUALIFIED65Anna Fali
1003Johnson U VocelkaSpain2026-08-09Chemel, James L Cpa RENEWAL43Amy Elsner
1004Leon X RimAustralia2026-08-03Truhlar And Truhlar Attys QUALIFIED59Amy Elsner
1005Antonio E CaudyFrance2026-08-05Commercial Press NEGOTIATION6Amy Elsner
1006Kaitlin F SlusarskiUnited Kingdom2026-08-05Rousseaux, Michael Esq RENEWAL90Xuxue Feng
1007David H MacleadIndia2026-08-06Dorl, James J Esq NEGOTIATION57Stephen Shaw
1008Alejandro Q GauchoUnited Kingdom2026-08-21Printing Dimensions NEGOTIATION41Amy Elsner
1009Kadeem Y BriddickCanada2026-08-13Chapman, Ross E Esq QUALIFIED58Stephen Shaw
1010Juan D GlickFrance2026-07-29King, Christopher A Esq UNQUALIFIED78Elwin Sharvill
1011Sinclair Q IturbideCanada2026-08-15Dorl, James J Esq NEW36Bernardo Dominic
1012Cody R RutaItaly2026-08-07Chemel, James L Cpa RENEWAL4Amy Elsner
1013Greenwood K SergiJapan2026-08-08Rousseaux, Michael Esq PROPOSAL70Anna Fali
1014Ivar D MaletRussia2026-08-21Chapman, Ross E Esq PROPOSAL84Xuxue Feng
1015Jeanfrancois Z DilliardRussia2026-08-18Chapman, Ross E Esq NEW48Elwin Sharvill
1016Izzy O FigeroaItaly2026-08-07Benton, John B Jr NEGOTIATION0Stephen Shaw
1017David U OldroydFrance2026-07-26Morlong Associates QUALIFIED16Ivan Magalhaes
1018Emily J PoquetteUnited Kingdom2026-08-06Chapman, Ross E Esq NEW91Ioni Bowcher
1019Jones V FigeroaAustralia2026-08-08Feiner Bros PROPOSAL26Ioni Bowcher
1020Mujtaba F GauchoCanada2026-08-21Printing Dimensions RENEWAL62Onyama Limba
1021Aika P SlusarskiJapan2026-08-15Feltz Printing Service UNQUALIFIED82Xuxue Feng
1022Octavia L WhobreyJapan2026-08-11Chanay, Jeffrey A Esq RENEWAL29Bernardo Dominic
1023Antonio T TollnerUnited Kingdom2026-08-11Chanay, Jeffrey A Esq NEGOTIATION2Stephen Shaw
1024Morrow U RutaAustralia2026-08-10Buckley Miller Wright RENEWAL92Elwin Sharvill
1025Aika O OstroskyItaly2026-08-09Chemel, James L Cpa NEW11Asiya Javayant
1026Kaitlin E CaudyItaly2026-07-28Printing Dimensions NEGOTIATION93Elwin Sharvill
1027Octavia U IturbideSpain2026-07-28King, Christopher A Esq PROPOSAL93Anna Fali
1028Jones Q FlosiAustralia2026-08-06Chemel, James L Cpa NEW0Onyama Limba
1029Faith S KolmetzRussia2026-08-13Feiner Bros RENEWAL61Anna Fali
1030Silvio M ShinkoRussia2026-08-10Chemel, James L Cpa PROPOSAL83Onyama Limba
1031Munro F GillianArgentina2026-08-01Benton, John B Jr PROPOSAL70Onyama Limba
1032Wickens Q FigeroaUnited Kingdom2026-08-08Rangoni Of Florence RENEWAL29Xuxue Feng
1033Francesco I DarakjyJapan2026-08-04Rousseaux, Michael Esq PROPOSAL67Ivan Magalhaes
1034Murillo F CampainIndia2026-08-23Rousseaux, Michael Esq NEW14Stephen Shaw
1035Aika D TollnerSpain2026-08-14Chanay, Jeffrey A Esq QUALIFIED85Amy Elsner
1036Misaki I IturbideCanada2026-08-24Feiner Bros PROPOSAL29Elwin Sharvill
1037Octavia F StensethFrance2026-08-20Chemel, James L Cpa NEGOTIATION30Asiya Javayant
1038Leja L CaudyItaly2026-08-05Truhlar And Truhlar Attys QUALIFIED29Xuxue Feng
1039Stacey F SergiSpain2026-08-09Benton, John B Jr NEGOTIATION17Bernardo Dominic
1040Greenwood N MaletIndia2026-08-05Chanay, Jeffrey A Esq QUALIFIED18Stephen Shaw
1041Octavia P GlickGermany2026-08-24Commercial Press QUALIFIED24Elwin Sharvill
1042Silvio U WhobreyBrazil2026-08-17Chemel, James L Cpa UNQUALIFIED2Elwin Sharvill
1043Kaitlin M GlickSpain2026-08-22Feiner Bros UNQUALIFIED87Bernardo Dominic
1044Jeanfrancois T MacleadUnited Kingdom2026-08-15Benton, John B Jr UNQUALIFIED71Amy Elsner
1045Kadeem L PerinAustralia2026-07-31Chanay, Jeffrey A Esq UNQUALIFIED64Ivan Magalhaes
1046Maisha I OstroskyJapan2026-07-31Chapman, Ross E Esq NEGOTIATION24Bernardo Dominic
1047Maria Y NickaFrance2026-08-13Dorl, James J Esq NEGOTIATION19Onyama Limba
1048Julie B MorascaArgentina2026-08-15Benton, John B Jr PROPOSAL84Elwin Sharvill
1049Faith E OldroydSpain2026-08-19Truhlar And Truhlar Attys QUALIFIED75Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jefferson T PoquetteItalyAsiya Javayant QUALIFIED
Deepesh F ShinkoBrazilBernardo Dominic QUALIFIED
Greenwood I GlickJapanBernardo Dominic QUALIFIED
Emily N CaldareraUnited KingdomOnyama Limba NEW
Morrow D GauchoBrazilElwin Sharvill QUALIFIED
Smith L GillianFranceOnyama Limba UNQUALIFIED
Juan I FerenczUnited KingdomAnna Fali NEGOTIATION
Ivar E IturbideRussiaAnna Fali RENEWAL
Rodrigues O CampainJapanAmy Elsner QUALIFIED
Adams G FlosiSpainStephen Shaw QUALIFIED
Mujtaba B BowleyItalyXuxue Feng RENEWAL
Faith R NickaArgentinaAmy Elsner QUALIFIED
Nicolas L NestleArgentinaXuxue Feng UNQUALIFIED
Kaitlin U FollerGermanyStephen Shaw UNQUALIFIED
Mayumi E BriddickItalyStephen Shaw QUALIFIED
Kaitlin U StockhamItalyAnna Fali NEW
James S IturbideCanadaXuxue Feng PROPOSAL
Antonio D VocelkaFranceAnna Fali QUALIFIED
Silvio G BriddickSpainElwin Sharvill QUALIFIED
Alejandro P DilliardArgentinaXuxue Feng RENEWAL
Kadeem U GarufiArgentinaIoni Bowcher NEW
Jones R StensethItalyAmy Elsner NEW
Aruna Z SchemmerIndiaStephen Shaw NEGOTIATION
Antonio C RutaUnited KingdomOnyama Limba UNQUALIFIED
Jefferson A SlusarskiBrazilXuxue Feng NEW
Ivar B TollnerUnited KingdomBernardo Dominic NEW
Juan A NestleCanadaOnyama Limba NEW
Rodrigues N WhobreyJapanIvan Magalhaes QUALIFIED
Leja V TollnerSpainAmy Elsner NEW
Greenwood N NickaSpainElwin Sharvill UNQUALIFIED
Aika D MacleadRussiaElwin Sharvill UNQUALIFIED
Jones Z VenereFranceAnna Fali NEGOTIATION
Jennifer Y OstroskyBrazilStephen Shaw UNQUALIFIED
Johnson I FlosiJapanElwin Sharvill NEW
Misaki F SchemmerRussiaIvan Magalhaes NEGOTIATION
Faith K StockhamFranceIoni Bowcher UNQUALIFIED
Julie N WhobreyAustraliaIvan Magalhaes RENEWAL
Morrow T FlosiRussiaIvan Magalhaes PROPOSAL
Faith Y DoeBrazilAsiya Javayant NEGOTIATION
Clifford I GarufiCanadaAmy Elsner RENEWAL
Maria J VocelkaItalyXuxue Feng NEGOTIATION
Cody J SchemmerArgentinaIvan Magalhaes RENEWAL
Kadeem D DilliardUnited KingdomBernardo Dominic NEW
Morrow C IturbideBrazilIvan Magalhaes UNQUALIFIED
Jefferson V NestleSpainBernardo Dominic RENEWAL
Costa F GarufiBrazilAmy Elsner NEGOTIATION
Alejandro L OstroskyGermanyElwin Sharvill PROPOSAL
Leon S ShinkoCanadaIoni Bowcher NEW
Jones M CaudyCanadaXuxue Feng UNQUALIFIED
Mujtaba Q PerinCanadaIoni Bowcher PROPOSAL
Frozen Columns
Name
Misaki A Royster
Stacey D Gillian
Antonio G Figeroa
Kaitlin N Schemmer
Nicolas N Saylors
Jennifer O Slusarski
Ashley Z Venere
Jeanfrancois L Venere
Arvin J Saylors
Tony N Royster
Francesco H Rulapaugh
Adams F Foller
Smith O Sergi
Leja W Gillian
Emily E Whobrey
Kaitlin Z Stockham
Salvatore W Slusarski
Faith U Schemmer
Maisha W Schemmer
Aditya D Kusko
Chavez Q Ferencz
David S Kusko
Aditya F Paprocki
Greenwood L Caldarera
Morrow C Ferencz
Salvatore I Morasca
Ricardo R Malet
Jefferson M Dilliard
Jennifer O Morasca
Morrow W Iturbide
Maisha W Nicka
Jeanfrancois I Glick
Ivar G Briddick
Smith P Nicka
Kaitlin K Shinko
Julie H Perin
Arvin M Ferencz
Greenwood C Maclead
Misaki U Stockham
Jeanfrancois H Rim
Faith J Oldroyd
Jefferson Y Gaucho
Stacey J Dilliard
David D Figeroa
Deepesh G Nestle
Leja N Saylors
Julie Y Oldroyd
Jeanfrancois Y Marrier
Silvio H Caldarera
Stacey Y Amigon
IdCountryDate
1000Canada2026-08-20
1001Spain2026-08-05
1002Australia2026-07-28
1003Italy2026-08-05
1004Russia2026-07-30
1005India2026-08-24
1006Argentina2026-07-26
1007Argentina2026-08-02
1008India2026-08-07
1009Australia2026-08-22
1010Spain2026-08-12
1011United Kingdom2026-08-14
1012Brazil2026-07-29
1013Germany2026-08-14
1014Italy2026-08-17
1015Russia2026-08-21
1016Germany2026-07-26
1017Russia2026-08-09
1018Germany2026-08-15
1019Brazil2026-08-24
1020Japan2026-08-17
1021India2026-08-06
1022Canada2026-07-29
1023Australia2026-07-29
1024France2026-08-15
1025Spain2026-08-13
1026Australia2026-08-12
1027Australia2026-07-30
1028Germany2026-08-22
1029United Kingdom2026-08-17
1030Australia2026-08-16
1031Canada2026-08-22
1032Russia2026-08-14
1033Australia2026-08-23
1034Argentina2026-08-07
1035Argentina2026-08-19
1036Canada2026-08-15
1037Italy2026-08-21
1038Russia2026-08-07
1039Argentina2026-08-20
1040Canada2026-08-03
1041Canada2026-08-12
1042Italy2026-07-30
1043Italy2026-08-07
1044Russia2026-08-19
1045Japan2026-08-09
1046Canada2026-08-17
1047India2026-08-06
1048Australia2026-08-07
1049France2026-08-16

On-Demand Data

NameIdCountryDate
Ivar S Oldroyd1000Australia2026-08-04
Misaki H Briddick1001Spain2026-08-17
Jones G Glick1002Argentina2026-07-26
Misaki I Bolognia1003Argentina2026-08-19
Silvio C Sergi1004Argentina2026-08-08
Salvatore O Malet1005France2026-08-10
Stacey P Morasca1006Italy2026-08-22
Izzy J Darakjy1007France2026-07-27
Morrow S Glick1008India2026-07-31
Salvatore L Chui1009Brazil2026-08-04
Kaitlin X Slusarski1010India2026-08-08
Salvatore K Inouye1011Argentina2026-08-15
Johnson N Malet1012France2026-07-30
Claire Z Morasca1013Germany2026-08-13
Faith N Amigon1014Brazil2026-08-06
Juan V Maclead1015Argentina2026-08-01
Emily C Inouye1016United Kingdom2026-08-13
Emily O Dilliard1017Germany2026-08-19
Clifford W Chui1018Australia2026-08-11
Leon J Waycott1019Italy2026-08-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi A FlosiFranceBernardo Dominic QUALIFIED
Faith D FollerArgentinaOnyama Limba NEW
Arvin Z RulapaughArgentinaOnyama Limba UNQUALIFIED
Mujtaba K PerinJapanAnna Fali RENEWAL
Emily N FerenczIndiaXuxue Feng NEGOTIATION
Tony F CampainGermanyIvan Magalhaes QUALIFIED
Sinclair P RimCanadaAnna Fali NEW
Leja Q NickaGermanyIvan Magalhaes NEW
Jennifer T MarrierIndiaAnna Fali QUALIFIED
Rodrigues Q ButtGermanyAsiya Javayant QUALIFIED
Jefferson B MaletIndiaElwin Sharvill NEW
Misaki D OstroskySpainOnyama Limba PROPOSAL
Ivar A GillianCanadaXuxue Feng UNQUALIFIED
Rodrigues U RoysterItalyElwin Sharvill NEW
Octavia F InouyeArgentinaBernardo Dominic UNQUALIFIED
Tony Z SchemmerUnited KingdomStephen Shaw RENEWAL
Nicolas G OstroskyArgentinaAnna Fali PROPOSAL
Isabel E DilliardUnited KingdomStephen Shaw QUALIFIED
Costa P DarakjyCanadaOnyama Limba NEGOTIATION
David U VenereAustraliaIoni Bowcher UNQUALIFIED
Ashley X GauchoBrazilIoni Bowcher PROPOSAL
Aika F SergiRussiaBernardo Dominic PROPOSAL
David Z RoysterFranceAnna Fali NEW
Stacey N DilliardCanadaOnyama Limba UNQUALIFIED
Jefferson W RoysterRussiaAnna Fali UNQUALIFIED
Smith Q BriddickAustraliaXuxue Feng QUALIFIED
Claire X StensethItalyStephen Shaw PROPOSAL
Aruna Q WieserAustraliaOnyama Limba NEW
Munro U CaudyArgentinaXuxue Feng NEGOTIATION
Chavez A GlickAustraliaXuxue Feng QUALIFIED
Deepesh C GauchoFranceIoni Bowcher UNQUALIFIED
Aditya D BologniaJapanAmy Elsner RENEWAL
Morrow P BriddickFranceElwin Sharvill PROPOSAL
Sinclair Y PaprockiGermanyXuxue Feng QUALIFIED
Johnson W DarakjyUnited KingdomAnna Fali NEGOTIATION
David R StockhamBrazilStephen Shaw UNQUALIFIED
Smith O OstroskyAustraliaAnna Fali PROPOSAL
Ashley D AlbaresUnited KingdomIvan Magalhaes PROPOSAL
Francesco T MorascaSpainAmy Elsner RENEWAL
Arvin Y FerenczBrazilIvan Magalhaes 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>