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
Deepesh E WhobreyRussiaIvan Magalhaes NEGOTIATION
Leon G DarakjySpainBernardo Dominic NEW
Johnson M GillianGermanyBernardo Dominic NEGOTIATION
Ivar T ShinkoUnited KingdomAsiya Javayant QUALIFIED
Izzy V FlosiSpainOnyama Limba RENEWAL
Aditya F GillianFranceAsiya Javayant PROPOSAL
Sinclair N IturbideItalyBernardo Dominic RENEWAL
Arvin H InouyeJapanAsiya Javayant NEW
Jennifer M BowleyRussiaAsiya Javayant PROPOSAL
Emily H FollerArgentinaAnna Fali UNQUALIFIED
Ivar E SlusarskiArgentinaIoni Bowcher PROPOSAL
Mujtaba M SaylorsArgentinaIoni Bowcher NEGOTIATION
Morrow F OstroskyRussiaAnna Fali RENEWAL
Cody F GlickAustraliaXuxue Feng NEGOTIATION
Faith R RoysterRussiaElwin Sharvill UNQUALIFIED
Rodrigues Y MarrierUnited KingdomBernardo Dominic RENEWAL
Kadeem G OstroskyRussiaOnyama Limba NEGOTIATION
Deepesh F BowleyBrazilOnyama Limba UNQUALIFIED
Clifford X MarrierItalyAsiya Javayant UNQUALIFIED
James K GarufiCanadaAmy Elsner PROPOSAL
Izzy Y ShinkoGermanyBernardo Dominic QUALIFIED
Ricardo J CaudyGermanyIvan Magalhaes RENEWAL
Emily R NickaFranceAmy Elsner PROPOSAL
Jennifer M RimSpainOnyama Limba UNQUALIFIED
Greenwood P TollnerItalyBernardo Dominic QUALIFIED
Aditya W RoysterBrazilXuxue Feng NEGOTIATION
Munro J WhobreyIndiaStephen Shaw UNQUALIFIED
Alejandro S InouyeRussiaAsiya Javayant NEGOTIATION
Faith R NestleUnited KingdomIvan Magalhaes NEW
Salvatore X ButtUnited KingdomXuxue Feng NEW
David B WieserUnited KingdomXuxue Feng NEW
Juan N GlickItalyXuxue Feng UNQUALIFIED
Emily I FlosiGermanyBernardo Dominic PROPOSAL
Mujtaba B PaprockiCanadaElwin Sharvill QUALIFIED
Octavia S SchemmerSpainElwin Sharvill NEGOTIATION
Darci N StensethSpainBernardo Dominic NEW
Clifford B FollerItalyIoni Bowcher QUALIFIED
Izzy I MarrierItalyElwin Sharvill PROPOSAL
Murillo R NickaItalyAnna Fali NEW
Izzy O IturbideJapanOnyama Limba PROPOSAL
Smith A SergiGermanyIvan Magalhaes QUALIFIED
Aditya M GlickArgentinaBernardo Dominic NEW
Stacey T CaudyRussiaAsiya Javayant QUALIFIED
Johnson B CampainRussiaOnyama Limba NEGOTIATION
Mayumi Z NickaItalyXuxue Feng RENEWAL
Maria U FerenczJapanAmy Elsner NEGOTIATION
Octavia E RutaSpainOnyama Limba UNQUALIFIED
Jefferson C FerenczJapanOnyama Limba QUALIFIED
Tony H SaylorsAustraliaOnyama Limba RENEWAL
Leja B PerinJapanOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Ashley R MaletUnited KingdomBernardo Dominic PROPOSAL
Deepesh H GarufiGermanyAmy Elsner NEGOTIATION
Maisha G PoquetteUnited KingdomAmy Elsner UNQUALIFIED
Mayumi T DoeArgentinaOnyama Limba QUALIFIED
Johnson D FlosiFranceAsiya Javayant QUALIFIED
Jennifer E StensethFranceAnna Fali NEGOTIATION
Wickens A AmigonJapanXuxue Feng QUALIFIED
Jones Y PerinGermanyElwin Sharvill PROPOSAL
Emily W NestleItalyStephen Shaw QUALIFIED
Leon M CaudyRussiaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi Z RimBrazil2026-08-18Chapman, Ross E Esq QUALIFIED76Bernardo Dominic
1001Isabel Z SergiAustralia2026-08-12Rangoni Of Florence NEGOTIATION98Anna Fali
1002Misaki A PerinItaly2026-08-07Morlong Associates NEGOTIATION43Xuxue Feng
1003Smith T WaycottUnited Kingdom2026-07-22Buckley Miller Wright QUALIFIED22Anna Fali
1004Antonio Q GillianRussia2026-08-08Truhlar And Truhlar Attys QUALIFIED27Stephen Shaw
1005Johnson U SergiJapan2026-07-22Rousseaux, Michael Esq NEW56Anna Fali
1006Misaki I DilliardSpain2026-08-02Truhlar And Truhlar Attys NEW64Bernardo Dominic
1007Maria Z KolmetzGermany2026-08-17Chapman, Ross E Esq NEGOTIATION97Anna Fali
1008Johnson E VocelkaJapan2026-07-29Dorl, James J Esq QUALIFIED60Elwin Sharvill
1009Darci Q VenereCanada2026-08-17Feiner Bros QUALIFIED20Elwin Sharvill
1010Jennifer L ShinkoUnited Kingdom2026-07-31Printing Dimensions UNQUALIFIED47Anna Fali
1011Clifford C ChuiBrazil2026-08-13Rousseaux, Michael Esq NEGOTIATION74Onyama Limba
1012Jones L OstroskyRussia2026-08-12Chemel, James L Cpa UNQUALIFIED91Xuxue Feng
1013Costa K VocelkaCanada2026-07-23Buckley Miller Wright NEW98Xuxue Feng
1014Salvatore W OldroydUnited Kingdom2026-07-23Rangoni Of Florence PROPOSAL49Ivan Magalhaes
1015David O AlbaresFrance2026-08-05Rangoni Of Florence UNQUALIFIED63Xuxue Feng
1016Kaitlin P PerinCanada2026-07-28Feiner Bros UNQUALIFIED1Xuxue Feng
1017Smith Q MarrierSpain2026-08-04Chemel, James L Cpa RENEWAL94Anna Fali
1018Jones X BowleyUnited Kingdom2026-08-09King, Christopher A Esq PROPOSAL99Ivan Magalhaes
1019Faith K PoquetteAustralia2026-08-18Morlong Associates QUALIFIED59Stephen Shaw
1020Arvin O FigeroaUnited Kingdom2026-07-27Rangoni Of Florence UNQUALIFIED44Ioni Bowcher
1021Octavia F WieserBrazil2026-08-06Printing Dimensions PROPOSAL58Asiya Javayant
1022Nicolas C MacleadArgentina2026-08-10Buckley Miller Wright PROPOSAL47Elwin Sharvill
1023Darci N AmigonAustralia2026-07-25King, Christopher A Esq PROPOSAL50Bernardo Dominic
1024Misaki E CampainArgentina2026-07-25Rousseaux, Michael Esq PROPOSAL82Bernardo Dominic
1025Leon Y ButtSpain2026-08-03Chanay, Jeffrey A Esq NEW49Ioni Bowcher
1026Izzy U VenereCanada2026-07-28Chanay, Jeffrey A Esq QUALIFIED24Elwin Sharvill
1027Leja N WieserArgentina2026-08-01Dorl, James J Esq RENEWAL10Anna Fali
1028Stacey R IturbideGermany2026-08-17Rangoni Of Florence NEW90Amy Elsner
1029Murillo F SaylorsJapan2026-07-29Rangoni Of Florence RENEWAL26Xuxue Feng
1030Juan U NickaIndia2026-07-22Morlong Associates UNQUALIFIED53Elwin Sharvill
1031Ashley P CaudySpain2026-07-29Rousseaux, Michael Esq PROPOSAL57Amy Elsner
1032Salvatore C PerinItaly2026-07-25Printing Dimensions RENEWAL61Asiya Javayant
1033David D TollnerGermany2026-07-24Chanay, Jeffrey A Esq NEGOTIATION29Xuxue Feng
1034Leon A BologniaRussia2026-07-22King, Christopher A Esq PROPOSAL46Elwin Sharvill
1035Alejandro F DilliardItaly2026-08-18Feltz Printing Service NEW34Elwin Sharvill
1036Greenwood C VenereBrazil2026-08-09Chanay, Jeffrey A Esq PROPOSAL64Anna Fali
1037Leja V MarrierGermany2026-08-03Buckley Miller Wright PROPOSAL67Onyama Limba
1038Murillo E BologniaAustralia2026-08-12Morlong Associates QUALIFIED50Amy Elsner
1039Ashley B CaldareraArgentina2026-08-03Commercial Press NEW30Ivan Magalhaes
1040David H KuskoSpain2026-08-14King, Christopher A Esq QUALIFIED16Onyama Limba
1041Adams N DarakjyIndia2026-08-09Truhlar And Truhlar Attys NEW72Elwin Sharvill
1042Silvio N RimBrazil2026-08-04Printing Dimensions NEW31Ioni Bowcher
1043Rodrigues Q RimItaly2026-08-01King, Christopher A Esq NEW70Stephen Shaw
1044Ricardo S TollnerUnited Kingdom2026-08-17Buckley Miller Wright RENEWAL53Stephen Shaw
1045Mujtaba K BowleyJapan2026-07-31Chemel, James L Cpa QUALIFIED75Ivan Magalhaes
1046James P WaycottCanada2026-08-15Truhlar And Truhlar Attys NEW35Asiya Javayant
1047Greenwood X StensethBrazil2026-07-29Buckley Miller Wright NEGOTIATION41Bernardo Dominic
1048Cody C MaletAustralia2026-08-10Feiner Bros NEW1Onyama Limba
1049Kaitlin W FerenczUnited Kingdom2026-07-25Printing Dimensions NEW16Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
David A DoeIndiaOnyama Limba RENEWAL
Jennifer F TollnerItalyStephen Shaw RENEWAL
Juan C MarrierSpainBernardo Dominic QUALIFIED
Costa S SaylorsCanadaAsiya Javayant QUALIFIED
Deepesh V MacleadJapanStephen Shaw QUALIFIED
Munro D IturbideCanadaStephen Shaw QUALIFIED
Kadeem S FollerItalyIvan Magalhaes UNQUALIFIED
Clifford V PoquetteBrazilElwin Sharvill PROPOSAL
Darci G WaycottCanadaIoni Bowcher QUALIFIED
Mayumi I CaudyJapanXuxue Feng UNQUALIFIED
Sinclair N CampainBrazilBernardo Dominic NEW
Isabel O FlosiRussiaAnna Fali UNQUALIFIED
Jennifer I GlickIndiaStephen Shaw PROPOSAL
Darci E RimArgentinaStephen Shaw NEGOTIATION
Costa O VenereFranceAsiya Javayant RENEWAL
Jones N GillianArgentinaAsiya Javayant NEGOTIATION
Alejandro V MarrierIndiaXuxue Feng RENEWAL
Izzy G DoeCanadaAsiya Javayant NEW
Cody S FerenczRussiaIvan Magalhaes NEGOTIATION
Jennifer T MarrierSpainOnyama Limba QUALIFIED
Jones J MacleadFranceAsiya Javayant UNQUALIFIED
Cody A AmigonCanadaElwin Sharvill PROPOSAL
Mujtaba I DilliardCanadaIvan Magalhaes PROPOSAL
Ashley J DarakjyIndiaAsiya Javayant NEGOTIATION
Aditya W FlosiRussiaBernardo Dominic NEGOTIATION
Darci L DilliardUnited KingdomIoni Bowcher NEGOTIATION
Aika F NickaAustraliaIvan Magalhaes NEW
Greenwood W RutaAustraliaStephen Shaw NEGOTIATION
Arvin F WaycottGermanyElwin Sharvill NEGOTIATION
Kadeem V PaprockiSpainXuxue Feng UNQUALIFIED
Greenwood U WhobreyBrazilOnyama Limba QUALIFIED
Misaki A BriddickUnited KingdomIoni Bowcher RENEWAL
James Q AlbaresAustraliaStephen Shaw NEW
James P DilliardBrazilIoni Bowcher NEGOTIATION
Arvin D BologniaUnited KingdomElwin Sharvill RENEWAL
David G OstroskyUnited KingdomAnna Fali UNQUALIFIED
Costa Y GauchoUnited KingdomElwin Sharvill QUALIFIED
David X PerinSpainStephen Shaw NEW
Jefferson I KuskoUnited KingdomXuxue Feng PROPOSAL
Aditya Z CaldareraArgentinaOnyama Limba NEGOTIATION
Costa S CaudyCanadaIvan Magalhaes PROPOSAL
Leon E KuskoAustraliaXuxue Feng UNQUALIFIED
Mujtaba Z KuskoBrazilElwin Sharvill NEGOTIATION
Cody M AmigonArgentinaAmy Elsner NEW
David H DilliardArgentinaAsiya Javayant RENEWAL
Misaki C GlickItalyAnna Fali RENEWAL
Jennifer N DarakjyGermanyAnna Fali NEW
Jefferson G IturbideBrazilElwin Sharvill QUALIFIED
Emily Q ButtRussiaIoni Bowcher PROPOSAL
Salvatore A BowleyBrazilIoni Bowcher NEGOTIATION
Frozen Columns
Name
Salvatore V Bolognia
Emily U Stenseth
Tony T Marrier
Arvin K Foller
Jefferson O Iturbide
Deepesh O Doe
Aruna M Gillian
Aditya U Whobrey
Kadeem E Gaucho
Ricardo D Waycott
Morrow S Malet
Smith F Malet
Clifford Z Stockham
Jennifer K Briddick
Ivar G Doe
Silvio M Tollner
Chavez H Glick
Juan B Waycott
Ivar A Nestle
Wickens C Chui
Jeanfrancois Y Maclead
James B Royster
Deepesh C Caldarera
Murillo Y Kolmetz
Leon Z Royster
Jones N Bowley
Jefferson E Ferencz
Ivar V Figeroa
Costa N Butt
Ricardo J Butt
Aditya O Foller
Tony X Inouye
Kaitlin P Maclead
Emily O Dilliard
Deepesh W Shinko
Leja J Bowley
Sinclair A Marrier
Arvin N Gillian
Greenwood Y Rulapaugh
Ivar N Perin
Leja P Butt
Jeanfrancois P Amigon
Arvin R Royster
Claire U Kolmetz
David G Tollner
Arvin W Dilliard
Jefferson N Bolognia
Rodrigues I Perin
Julie W Briddick
Morrow F Darakjy
IdCountryDate
1000Italy2026-08-15
1001India2026-08-15
1002United Kingdom2026-07-30
1003Spain2026-08-07
1004United Kingdom2026-07-30
1005Argentina2026-08-07
1006Russia2026-07-27
1007Germany2026-07-28
1008Russia2026-08-07
1009Argentina2026-08-17
1010Canada2026-07-23
1011Japan2026-08-15
1012Argentina2026-08-18
1013France2026-07-27
1014Canada2026-07-26
1015Japan2026-08-03
1016Russia2026-08-09
1017Canada2026-07-23
1018Australia2026-07-30
1019United Kingdom2026-07-28
1020Italy2026-07-26
1021Germany2026-08-17
1022India2026-07-30
1023India2026-08-16
1024Russia2026-08-15
1025Canada2026-08-03
1026India2026-08-01
1027Argentina2026-07-25
1028Russia2026-07-28
1029France2026-07-28
1030Japan2026-07-23
1031Argentina2026-08-13
1032Brazil2026-08-08
1033India2026-08-02
1034United Kingdom2026-07-25
1035Spain2026-07-27
1036Spain2026-08-19
1037Brazil2026-08-20
1038India2026-08-20
1039Spain2026-08-09
1040Brazil2026-08-05
1041Brazil2026-07-22
1042Australia2026-08-05
1043Argentina2026-07-28
1044Argentina2026-08-11
1045Brazil2026-08-04
1046Italy2026-08-02
1047Germany2026-08-10
1048Canada2026-08-01
1049Spain2026-08-07

On-Demand Data

NameIdCountryDate
Rodrigues N Kusko1000Italy2026-07-26
Aika X Rulapaugh1001United Kingdom2026-07-22
Kaitlin J Malet1002Australia2026-08-07
Darci I Kolmetz1003Australia2026-08-14
Arvin U Whobrey1004United Kingdom2026-08-14
Faith T Tollner1005Russia2026-07-26
Salvatore N Inouye1006Canada2026-07-23
Ivar E Sergi1007France2026-08-16
David A Darakjy1008United Kingdom2026-07-28
Jones N Slusarski1009Italy2026-08-11
Chavez V Caudy1010Japan2026-08-16
Murillo U Gaucho1011Brazil2026-08-03
Deepesh C Wieser1012Canada2026-08-01
Aditya U Chui1013United Kingdom2026-08-18
Aditya Q Sergi1014Argentina2026-08-11
Morrow N Bolognia1015Germany2026-08-10
Costa Q Caldarera1016Argentina2026-08-14
Maisha P Shinko1017Brazil2026-08-14
Adams L Gillian1018Canada2026-08-11
Leon S Chui1019Germany2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony C IturbideCanadaIvan Magalhaes NEGOTIATION
Murillo I DarakjyFranceAsiya Javayant NEW
Jones B SergiFranceAnna Fali RENEWAL
Munro J IturbideRussiaStephen Shaw NEGOTIATION
James L WieserUnited KingdomAsiya Javayant UNQUALIFIED
Greenwood P BriddickBrazilStephen Shaw UNQUALIFIED
Salvatore A StensethBrazilElwin Sharvill UNQUALIFIED
Clifford G SaylorsCanadaAsiya Javayant RENEWAL
Aika M FerenczJapanIoni Bowcher QUALIFIED
Misaki W BriddickUnited KingdomBernardo Dominic PROPOSAL
Octavia P ChuiRussiaIoni Bowcher NEW
Jones E SlusarskiItalyIoni Bowcher UNQUALIFIED
Murillo X OldroydArgentinaOnyama Limba QUALIFIED
Costa Q ButtBrazilXuxue Feng NEGOTIATION
Ricardo B VenereGermanyAnna Fali PROPOSAL
Mayumi U BowleyRussiaIvan Magalhaes RENEWAL
Maisha M OldroydSpainAnna Fali PROPOSAL
Cody V DilliardIndiaOnyama Limba PROPOSAL
Mayumi F DarakjyJapanIoni Bowcher NEGOTIATION
Rodrigues N BriddickItalyAnna Fali QUALIFIED
Clifford N MarrierJapanAnna Fali UNQUALIFIED
Julie Z ButtArgentinaStephen Shaw RENEWAL
Claire L CaudyArgentinaOnyama Limba NEW
Arvin T OldroydCanadaStephen Shaw PROPOSAL
Leja Y SchemmerFranceIoni Bowcher QUALIFIED
Emily H ChuiFranceOnyama Limba PROPOSAL
James Y VocelkaIndiaAsiya Javayant NEGOTIATION
Alejandro R CampainIndiaOnyama Limba NEGOTIATION
Leja B PerinSpainElwin Sharvill RENEWAL
Munro R SaylorsArgentinaXuxue Feng PROPOSAL
Morrow H MorascaArgentinaAsiya Javayant UNQUALIFIED
Silvio W RimRussiaIvan Magalhaes QUALIFIED
Mayumi H BriddickUnited KingdomAnna Fali NEGOTIATION
Rodrigues C GarufiUnited KingdomIoni Bowcher QUALIFIED
Faith G MacleadGermanyElwin Sharvill UNQUALIFIED
Stacey Z SergiUnited KingdomOnyama Limba PROPOSAL
Leja H KuskoGermanyIvan Magalhaes RENEWAL
Clifford F GillianRussiaAsiya Javayant UNQUALIFIED
Emily R DoeFranceXuxue Feng NEW
Leon H InouyeFranceStephen Shaw NEGOTIATION

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