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
Leon E SlusarskiItalyBernardo Dominic NEGOTIATION
Costa U DilliardIndiaOnyama Limba UNQUALIFIED
Mayumi H ShinkoSpainIvan Magalhaes NEW
Maisha V BriddickAustraliaAsiya Javayant NEGOTIATION
Jennifer Y RoysterAustraliaIvan Magalhaes NEW
Mujtaba C MarrierCanadaOnyama Limba PROPOSAL
Juan U DarakjyUnited KingdomBernardo Dominic NEGOTIATION
Jennifer J PoquetteIndiaOnyama Limba UNQUALIFIED
Darci Q PaprockiRussiaIoni Bowcher PROPOSAL
Mayumi D ButtSpainXuxue Feng UNQUALIFIED
Kadeem L GlickSpainOnyama Limba RENEWAL
James I RimArgentinaElwin Sharvill NEGOTIATION
Sinclair Q MarrierGermanyStephen Shaw PROPOSAL
Morrow W IturbideSpainBernardo Dominic RENEWAL
Deepesh O IturbideSpainIoni Bowcher PROPOSAL
Cody R SaylorsSpainBernardo Dominic NEW
Silvio Y GarufiArgentinaXuxue Feng QUALIFIED
Aruna T PoquetteCanadaIvan Magalhaes RENEWAL
Chavez X RimRussiaOnyama Limba PROPOSAL
Tony P MaletFranceOnyama Limba RENEWAL
Adams D GlickArgentinaXuxue Feng UNQUALIFIED
Tony G DarakjyBrazilXuxue Feng QUALIFIED
Mujtaba F IturbideUnited KingdomXuxue Feng UNQUALIFIED
Kaitlin I SlusarskiItalyOnyama Limba NEW
Misaki W ChuiIndiaIoni Bowcher RENEWAL
Maisha S FollerIndiaAnna Fali RENEWAL
Tony Q DoeIndiaIvan Magalhaes PROPOSAL
Cody X SchemmerGermanyAsiya Javayant NEW
Arvin Z KuskoArgentinaAsiya Javayant NEGOTIATION
Juan R SergiRussiaIoni Bowcher RENEWAL
Tony G FigeroaCanadaXuxue Feng QUALIFIED
Julie O WieserArgentinaBernardo Dominic RENEWAL
Greenwood A RimRussiaAsiya Javayant NEGOTIATION
Clifford V SchemmerArgentinaIoni Bowcher UNQUALIFIED
Isabel Y VenereArgentinaAsiya Javayant NEW
Chavez Y FerenczSpainAsiya Javayant NEGOTIATION
Mayumi X CampainGermanyStephen Shaw PROPOSAL
Alejandro E FollerFranceIvan Magalhaes QUALIFIED
Sinclair Y ButtUnited KingdomStephen Shaw NEW
Chavez E RimFranceBernardo Dominic NEGOTIATION
Deepesh K RoysterJapanXuxue Feng QUALIFIED
Leon A KuskoFranceElwin Sharvill QUALIFIED
James A PaprockiRussiaIvan Magalhaes NEW
Juan Y SaylorsGermanyOnyama Limba QUALIFIED
Ivar G SchemmerCanadaBernardo Dominic UNQUALIFIED
Ricardo X DarakjyIndiaElwin Sharvill RENEWAL
Maisha O BriddickItalyStephen Shaw RENEWAL
Silvio I DoeArgentinaIvan Magalhaes RENEWAL
Kadeem U FigeroaFranceBernardo Dominic UNQUALIFIED
Salvatore J CaudyUnited KingdomOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leja L AmigonItalyOnyama Limba RENEWAL
Sinclair B VenereSpainAnna Fali NEW
Ricardo C FlosiFranceStephen Shaw UNQUALIFIED
Alejandro E OldroydGermanyAnna Fali UNQUALIFIED
Costa O MorascaRussiaAmy Elsner NEW
Costa H StockhamGermanyStephen Shaw QUALIFIED
Aditya R SergiItalyStephen Shaw RENEWAL
Ashley Y OstroskySpainAnna Fali UNQUALIFIED
Rodrigues P WhobreyBrazilStephen Shaw NEGOTIATION
Aika A TollnerSpainElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer O FigeroaCanada2026-08-05Morlong Associates RENEWAL25Ioni Bowcher
1001David Z WhobreyItaly2026-07-27Chapman, Ross E Esq QUALIFIED33Bernardo Dominic
1002Stacey C GauchoItaly2026-07-22Feiner Bros PROPOSAL46Stephen Shaw
1003Adams F ShinkoSpain2026-08-04Commercial Press UNQUALIFIED95Anna Fali
1004Wickens T GauchoGermany2026-08-17Feltz Printing Service PROPOSAL8Elwin Sharvill
1005Johnson E RimBrazil2026-08-07Chapman, Ross E Esq QUALIFIED54Anna Fali
1006Jefferson S NestleArgentina2026-08-11Printing Dimensions NEGOTIATION56Anna Fali
1007Mujtaba V MarrierAustralia2026-08-07Chapman, Ross E Esq NEW99Bernardo Dominic
1008Claire K SaylorsAustralia2026-07-30Dorl, James J Esq UNQUALIFIED83Onyama Limba
1009Leja A GauchoUnited Kingdom2026-08-10Commercial Press NEW17Onyama Limba
1010Antonio Z StockhamCanada2026-08-17Buckley Miller Wright NEGOTIATION19Asiya Javayant
1011Salvatore D PaprockiCanada2026-08-12Commercial Press UNQUALIFIED56Asiya Javayant
1012Jennifer T MorascaItaly2026-08-08Commercial Press NEGOTIATION85Amy Elsner
1013Jones S RimBrazil2026-08-14King, Christopher A Esq NEW64Ivan Magalhaes
1014Rodrigues G MacleadCanada2026-08-05Printing Dimensions RENEWAL25Anna Fali
1015Nicolas J WaycottArgentina2026-08-15Truhlar And Truhlar Attys RENEWAL47Xuxue Feng
1016Claire F GillianSpain2026-08-05Commercial Press PROPOSAL97Amy Elsner
1017Juan H DarakjyIndia2026-08-07Commercial Press RENEWAL38Xuxue Feng
1018Rodrigues H WaycottIndia2026-08-04Chapman, Ross E Esq NEW91Stephen Shaw
1019Chavez V ButtCanada2026-07-22Chanay, Jeffrey A Esq RENEWAL65Onyama Limba
1020Smith A FollerGermany2026-07-20Chanay, Jeffrey A Esq RENEWAL13Stephen Shaw
1021Stacey B InouyeSpain2026-07-24Buckley Miller Wright NEGOTIATION56Onyama Limba
1022Leja W RutaSpain2026-08-08King, Christopher A Esq PROPOSAL84Amy Elsner
1023Morrow H KolmetzFrance2026-08-04Feltz Printing Service RENEWAL96Stephen Shaw
1024Emily K RutaAustralia2026-07-26Rangoni Of Florence QUALIFIED28Amy Elsner
1025Kadeem B MarrierIndia2026-08-10Chapman, Ross E Esq RENEWAL6Elwin Sharvill
1026Mujtaba X FerenczBrazil2026-08-13Commercial Press QUALIFIED0Ioni Bowcher
1027Antonio I WieserIndia2026-08-13Rangoni Of Florence UNQUALIFIED44Elwin Sharvill
1028Alejandro A IturbideItaly2026-07-28Truhlar And Truhlar Attys UNQUALIFIED71Stephen Shaw
1029Maisha J FigeroaSpain2026-08-06Truhlar And Truhlar Attys RENEWAL91Amy Elsner
1030Jeanfrancois X FigeroaRussia2026-07-30Chapman, Ross E Esq RENEWAL71Asiya Javayant
1031Aruna K InouyeUnited Kingdom2026-08-06Commercial Press PROPOSAL58Elwin Sharvill
1032Johnson D WieserUnited Kingdom2026-08-02Feltz Printing Service NEGOTIATION65Onyama Limba
1033Darci N StensethSpain2026-08-13Truhlar And Truhlar Attys QUALIFIED3Onyama Limba
1034Aruna Q TollnerJapan2026-07-28King, Christopher A Esq QUALIFIED41Anna Fali
1035Maria Q VocelkaJapan2026-07-22Chemel, James L Cpa QUALIFIED41Ivan Magalhaes
1036Juan I InouyeItaly2026-08-13Buckley Miller Wright UNQUALIFIED99Xuxue Feng
1037Darci J WhobreyRussia2026-08-02Chanay, Jeffrey A Esq UNQUALIFIED95Asiya Javayant
1038Claire Q IturbideArgentina2026-07-25Rangoni Of Florence RENEWAL37Anna Fali
1039Claire G VenereUnited Kingdom2026-08-02Buckley Miller Wright RENEWAL10Anna Fali
1040Ricardo K RoysterBrazil2026-08-18Buckley Miller Wright NEGOTIATION55Onyama Limba
1041Mujtaba H SaylorsGermany2026-08-08Truhlar And Truhlar Attys NEGOTIATION86Stephen Shaw
1042Kadeem H PerinBrazil2026-08-08Feiner Bros NEGOTIATION64Onyama Limba
1043Maisha Z MacleadAustralia2026-07-28Dorl, James J Esq NEW12Stephen Shaw
1044Cody G StockhamIndia2026-07-24Benton, John B Jr NEGOTIATION71Stephen Shaw
1045Jefferson M GillianIndia2026-08-15Truhlar And Truhlar Attys QUALIFIED70Ivan Magalhaes
1046Maria M ButtCanada2026-08-15Morlong Associates NEGOTIATION30Stephen Shaw
1047David G MarrierSpain2026-08-05Feltz Printing Service NEW92Onyama Limba
1048Munro N KuskoIndia2026-07-22Buckley Miller Wright PROPOSAL49Asiya Javayant
1049Ashley T NickaIndia2026-07-29Chapman, Ross E Esq RENEWAL13Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Alejandro M KuskoAustraliaIvan Magalhaes NEGOTIATION
Costa X BriddickJapanStephen Shaw RENEWAL
Francesco F GarufiAustraliaIoni Bowcher NEGOTIATION
David Y SergiAustraliaStephen Shaw NEW
Jones M PaprockiItalyAnna Fali NEW
Francesco Q KolmetzCanadaIoni Bowcher RENEWAL
Wickens B DarakjyRussiaAmy Elsner NEGOTIATION
Smith R KolmetzItalyOnyama Limba NEGOTIATION
Rodrigues U SergiGermanyOnyama Limba QUALIFIED
Claire D GauchoUnited KingdomXuxue Feng RENEWAL
Jones D PerinArgentinaAnna Fali NEGOTIATION
Salvatore F SaylorsJapanOnyama Limba PROPOSAL
Stacey G KuskoBrazilBernardo Dominic NEW
Deepesh O WaycottArgentinaXuxue Feng UNQUALIFIED
Murillo P SchemmerCanadaOnyama Limba NEW
Ricardo E AmigonBrazilAnna Fali QUALIFIED
Maisha E CaudyRussiaXuxue Feng NEW
Darci M BowleyItalyAmy Elsner QUALIFIED
Greenwood P GillianSpainStephen Shaw RENEWAL
James Z CampainIndiaXuxue Feng PROPOSAL
Jefferson E KolmetzBrazilAsiya Javayant PROPOSAL
Johnson R MarrierUnited KingdomIvan Magalhaes PROPOSAL
Maria L BologniaItalyIvan Magalhaes NEGOTIATION
Maisha R TollnerUnited KingdomAmy Elsner PROPOSAL
Stacey N CampainFranceAnna Fali NEW
Ivar T PaprockiArgentinaStephen Shaw NEGOTIATION
Morrow I GlickBrazilXuxue Feng PROPOSAL
Wickens Z KuskoFranceAnna Fali RENEWAL
Leon M BriddickSpainElwin Sharvill RENEWAL
Aruna Y NestleBrazilAmy Elsner RENEWAL
Isabel T GauchoIndiaElwin Sharvill QUALIFIED
Jeanfrancois X BologniaFranceElwin Sharvill NEGOTIATION
Jefferson V GauchoGermanyStephen Shaw PROPOSAL
Ricardo A RutaCanadaXuxue Feng NEW
Ricardo I BologniaAustraliaIoni Bowcher NEGOTIATION
Deepesh Z NestleJapanElwin Sharvill QUALIFIED
Antonio W NestleSpainXuxue Feng UNQUALIFIED
Clifford D SchemmerGermanyAsiya Javayant UNQUALIFIED
David A WieserSpainElwin Sharvill RENEWAL
Johnson N MaletRussiaAmy Elsner NEGOTIATION
Alejandro L RulapaughRussiaAnna Fali RENEWAL
Sinclair H MaletItalyXuxue Feng NEW
Mujtaba N ChuiArgentinaElwin Sharvill PROPOSAL
Alejandro J VocelkaSpainIoni Bowcher UNQUALIFIED
Leja B PaprockiGermanyXuxue Feng NEW
Aika N GauchoRussiaIvan Magalhaes NEGOTIATION
Mujtaba C DoeArgentinaStephen Shaw PROPOSAL
Octavia S MacleadGermanyAnna Fali PROPOSAL
Francesco G BologniaCanadaStephen Shaw NEGOTIATION
Kadeem R CaldareraItalyAmy Elsner QUALIFIED
Frozen Columns
Name
Stacey A Bolognia
Chavez K Bolognia
Claire U Stockham
Tony C Vocelka
Ashley C Schemmer
Jennifer E Venere
Sinclair K Kolmetz
Alejandro L Garufi
Cody H Garufi
Rodrigues U Nestle
Leon L Malet
Kadeem R Nestle
Salvatore G Venere
Tony Z Dilliard
Mujtaba D Sergi
Leja X Malet
Rodrigues S Figeroa
Alejandro E Inouye
Emily A Nicka
Ivar L Paprocki
Ricardo F Sergi
Munro M Kolmetz
Aditya O Stenseth
Faith I Marrier
Morrow W Stockham
Silvio L Briddick
Alejandro I Amigon
Maria S Malet
Ivar Z Campain
Aika A Marrier
Stacey F Darakjy
Sinclair F Nicka
David Y Butt
Salvatore D Oldroyd
Claire V Glick
Greenwood H Glick
Aika V Caldarera
Smith N Gillian
Mayumi I Flosi
Cody N Marrier
Faith F Darakjy
Arvin N Kolmetz
Claire V Malet
Arvin E Nestle
Ashley S Ferencz
Wickens P Poquette
Wickens Z Rulapaugh
Chavez W Bolognia
Stacey P Albares
Wickens D Ruta
IdCountryDate
1000Russia2026-07-25
1001Australia2026-08-11
1002Argentina2026-07-28
1003Italy2026-08-09
1004India2026-07-23
1005Italy2026-08-12
1006Argentina2026-08-18
1007Australia2026-08-07
1008India2026-07-22
1009Russia2026-08-04
1010United Kingdom2026-07-21
1011Germany2026-08-08
1012Russia2026-08-14
1013Canada2026-08-04
1014India2026-07-29
1015India2026-08-03
1016Germany2026-07-24
1017Japan2026-07-20
1018Italy2026-08-04
1019Russia2026-08-08
1020Italy2026-07-30
1021India2026-08-03
1022Russia2026-08-16
1023Argentina2026-08-09
1024Germany2026-08-09
1025Spain2026-08-08
1026France2026-08-17
1027Argentina2026-07-25
1028United Kingdom2026-08-13
1029India2026-07-20
1030India2026-08-04
1031Germany2026-08-02
1032Australia2026-08-11
1033Australia2026-08-15
1034Russia2026-07-30
1035United Kingdom2026-07-23
1036Canada2026-07-26
1037Spain2026-08-02
1038Italy2026-07-29
1039Spain2026-08-10
1040Germany2026-08-18
1041Australia2026-08-02
1042Spain2026-08-12
1043Germany2026-08-13
1044Spain2026-08-13
1045Brazil2026-07-27
1046Japan2026-08-09
1047Brazil2026-07-28
1048Germany2026-07-23
1049Argentina2026-07-22

On-Demand Data

NameIdCountryDate
Mujtaba F Schemmer1000Argentina2026-07-23
Antonio E Whobrey1001India2026-08-12
Arvin P Garufi1002Russia2026-07-25
Ricardo S Venere1003India2026-08-05
Ricardo W Caldarera1004Russia2026-08-08
Ashley M Sergi1005Spain2026-07-30
Octavia X Saylors1006Australia2026-08-05
Cody N Amigon1007Australia2026-08-01
Jefferson B Inouye1008Canada2026-07-27
Nicolas H Doe1009Australia2026-07-20
Ricardo Q Malet1010Russia2026-08-02
Johnson N Paprocki1011Russia2026-07-27
Julie W Nicka1012Italy2026-07-30
Ivar J Flosi1013Brazil2026-08-16
Kaitlin W Bowley1014Russia2026-08-15
Clifford K Malet1015Japan2026-08-11
Juan A Sergi1016Spain2026-08-12
James M Kusko1017Russia2026-08-18
Claire A Dilliard1018India2026-07-30
Jennifer W Shinko1019Canada2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez F BologniaRussiaAsiya Javayant NEGOTIATION
Johnson F RimArgentinaElwin Sharvill UNQUALIFIED
Jeanfrancois T RulapaughAustraliaBernardo Dominic QUALIFIED
Emily K RulapaughGermanyAsiya Javayant PROPOSAL
Emily Z KolmetzSpainXuxue Feng PROPOSAL
Salvatore J StockhamBrazilIvan Magalhaes NEGOTIATION
Stacey A GlickGermanyXuxue Feng PROPOSAL
Francesco F SchemmerBrazilBernardo Dominic NEGOTIATION
Aruna F RutaBrazilXuxue Feng RENEWAL
Alejandro X ShinkoJapanStephen Shaw RENEWAL
Smith I IturbideGermanyIoni Bowcher RENEWAL
Kadeem M StockhamRussiaStephen Shaw QUALIFIED
Clifford O TollnerJapanAsiya Javayant NEGOTIATION
Maria N OldroydSpainAsiya Javayant UNQUALIFIED
Rodrigues L BowleyRussiaStephen Shaw QUALIFIED
Darci B KolmetzSpainIvan Magalhaes RENEWAL
Octavia Z MaletGermanyIoni Bowcher QUALIFIED
Aika E IturbideAustraliaIvan Magalhaes UNQUALIFIED
Salvatore S VenereAustraliaAmy Elsner PROPOSAL
Emily L PerinRussiaStephen Shaw NEGOTIATION
Clifford Q WhobreyIndiaIoni Bowcher QUALIFIED
Jones Q SlusarskiItalyStephen Shaw NEW
Arvin T IturbideAustraliaBernardo Dominic NEW
Ricardo E RimJapanBernardo Dominic NEGOTIATION
Salvatore O FollerUnited KingdomBernardo Dominic RENEWAL
Octavia S TollnerRussiaXuxue Feng UNQUALIFIED
Smith A NickaUnited KingdomAsiya Javayant QUALIFIED
Silvio W MacleadFranceIvan Magalhaes QUALIFIED
Maisha V WhobreyAustraliaAsiya Javayant UNQUALIFIED
Izzy U StensethSpainStephen Shaw QUALIFIED
Greenwood I VocelkaBrazilXuxue Feng NEW
David K MorascaIndiaIoni Bowcher UNQUALIFIED
Faith B FerenczSpainAmy Elsner NEW
Aruna M RulapaughItalyBernardo Dominic NEW
Emily S FerenczJapanOnyama Limba PROPOSAL
Leja F FlosiGermanyOnyama Limba PROPOSAL
Wickens Y SergiBrazilXuxue Feng QUALIFIED
Octavia R AlbaresBrazilElwin Sharvill NEGOTIATION
Darci E GlickGermanyElwin Sharvill NEGOTIATION
Julie V BowleyUnited KingdomIvan Magalhaes PROPOSAL

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