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
Munro T FerenczGermanyAsiya Javayant NEW
Jeanfrancois G PerinAustraliaBernardo Dominic RENEWAL
Aruna Q OldroydAustraliaAsiya Javayant RENEWAL
James P ChuiCanadaElwin Sharvill NEGOTIATION
Deepesh V PerinGermanyIvan Magalhaes QUALIFIED
James V MaletRussiaAmy Elsner UNQUALIFIED
Jennifer J PerinBrazilIvan Magalhaes NEW
Silvio Q CampainSpainIoni Bowcher RENEWAL
Maria E WaycottGermanyAsiya Javayant QUALIFIED
Aditya G AlbaresJapanXuxue Feng NEGOTIATION
Claire H WhobreyCanadaIoni Bowcher NEGOTIATION
Jones Q SaylorsRussiaAsiya Javayant UNQUALIFIED
Johnson J SaylorsGermanyOnyama Limba RENEWAL
Kadeem L AmigonCanadaIvan Magalhaes RENEWAL
Sinclair N GillianJapanAsiya Javayant QUALIFIED
Ricardo O SaylorsCanadaStephen Shaw RENEWAL
Jennifer B RulapaughCanadaAsiya Javayant QUALIFIED
Claire O KolmetzUnited KingdomBernardo Dominic UNQUALIFIED
Juan T VocelkaAustraliaOnyama Limba QUALIFIED
Jeanfrancois M OldroydAustraliaAnna Fali UNQUALIFIED
Cody K PaprockiIndiaStephen Shaw UNQUALIFIED
Chavez G WaycottIndiaIoni Bowcher NEGOTIATION
Sinclair R TollnerIndiaAsiya Javayant QUALIFIED
Faith D KuskoIndiaElwin Sharvill RENEWAL
Darci D WieserCanadaXuxue Feng PROPOSAL
Morrow K OldroydArgentinaIvan Magalhaes RENEWAL
Greenwood G FigeroaGermanyOnyama Limba QUALIFIED
Kadeem U InouyeUnited KingdomXuxue Feng PROPOSAL
Rodrigues V GauchoRussiaAnna Fali NEGOTIATION
Kaitlin T MarrierGermanyStephen Shaw UNQUALIFIED
Rodrigues P GlickIndiaAnna Fali NEGOTIATION
Salvatore G DilliardUnited KingdomIvan Magalhaes NEW
Greenwood P ChuiRussiaAnna Fali NEGOTIATION
Claire D RoysterGermanyIoni Bowcher NEW
Mayumi W BowleyBrazilIoni Bowcher NEGOTIATION
Juan M ButtUnited KingdomIoni Bowcher NEW
Deepesh E StensethRussiaIvan Magalhaes NEGOTIATION
Faith B KuskoRussiaStephen Shaw PROPOSAL
Antonio L MarrierSpainAnna Fali PROPOSAL
Ricardo Z OldroydCanadaStephen Shaw RENEWAL
Maisha Z SchemmerUnited KingdomOnyama Limba NEW
Sinclair U DilliardJapanBernardo Dominic RENEWAL
Murillo R WhobreyBrazilAsiya Javayant NEW
Jennifer X SergiJapanAsiya Javayant NEGOTIATION
Julie T StensethFranceOnyama Limba RENEWAL
Kadeem U CampainUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois W BologniaArgentinaAnna Fali NEW
Faith M MarrierIndiaStephen Shaw UNQUALIFIED
Silvio V AlbaresUnited KingdomAmy Elsner UNQUALIFIED
Octavia C MarrierRussiaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ashley A NickaItalyElwin Sharvill UNQUALIFIED
Johnson R FlosiItalyStephen Shaw QUALIFIED
Clifford S ChuiArgentinaAsiya Javayant RENEWAL
Ashley I AmigonArgentinaBernardo Dominic QUALIFIED
Deepesh E KolmetzIndiaStephen Shaw NEW
Aruna F WieserRussiaAnna Fali RENEWAL
Kadeem X ButtItalyBernardo Dominic NEW
Octavia P MacleadBrazilAmy Elsner UNQUALIFIED
Munro U BologniaBrazilBernardo Dominic UNQUALIFIED
Maisha R PoquetteBrazilBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar F FlosiCanada2026-07-27Chapman, Ross E Esq NEGOTIATION75Stephen Shaw
1001Nicolas U FollerCanada2026-08-04Chemel, James L Cpa PROPOSAL93Xuxue Feng
1002Emily X BriddickIndia2026-08-17King, Christopher A Esq QUALIFIED43Onyama Limba
1003Aditya F FerenczIndia2026-07-25Rousseaux, Michael Esq RENEWAL29Onyama Limba
1004Jones L ShinkoGermany2026-08-10Commercial Press QUALIFIED82Elwin Sharvill
1005Tony U IturbideUnited Kingdom2026-08-15Rousseaux, Michael Esq NEW75Ivan Magalhaes
1006Claire W OstroskyRussia2026-08-10Rangoni Of Florence UNQUALIFIED50Anna Fali
1007Munro Q OstroskySpain2026-08-07Rousseaux, Michael Esq RENEWAL10Onyama Limba
1008Darci W CaudyJapan2026-07-31Benton, John B Jr UNQUALIFIED73Ioni Bowcher
1009Jones E FigeroaRussia2026-08-12Feiner Bros QUALIFIED24Stephen Shaw
1010Aruna F StockhamUnited Kingdom2026-08-16Buckley Miller Wright NEW9Bernardo Dominic
1011Maria I MaletCanada2026-08-17Truhlar And Truhlar Attys NEW11Onyama Limba
1012Smith G CaudyItaly2026-08-17Buckley Miller Wright NEW18Anna Fali
1013Ricardo J SchemmerRussia2026-08-10King, Christopher A Esq QUALIFIED87Stephen Shaw
1014Murillo P GillianSpain2026-07-27Benton, John B Jr QUALIFIED91Ioni Bowcher
1015James G MorascaRussia2026-07-27Chapman, Ross E Esq NEW6Onyama Limba
1016Chavez W DarakjyJapan2026-08-14Rousseaux, Michael Esq PROPOSAL91Xuxue Feng
1017Jefferson F FigeroaJapan2026-07-29Commercial Press NEGOTIATION28Ivan Magalhaes
1018Alejandro S StockhamIndia2026-08-06Dorl, James J Esq QUALIFIED5Bernardo Dominic
1019Silvio T GillianItaly2026-08-04King, Christopher A Esq NEGOTIATION2Elwin Sharvill
1020Leon M DoeBrazil2026-08-11Chemel, James L Cpa NEGOTIATION70Ivan Magalhaes
1021Leja Z CampainItaly2026-07-26Buckley Miller Wright NEW72Stephen Shaw
1022Deepesh L NestleIndia2026-08-01Rousseaux, Michael Esq UNQUALIFIED98Anna Fali
1023Chavez G VenereAustralia2026-08-06Dorl, James J Esq UNQUALIFIED81Ioni Bowcher
1024Claire T MarrierSpain2026-08-10Truhlar And Truhlar Attys NEW61Ivan Magalhaes
1025Leja T SaylorsCanada2026-07-28Truhlar And Truhlar Attys NEGOTIATION98Anna Fali
1026Ivar R AmigonIndia2026-08-15Truhlar And Truhlar Attys UNQUALIFIED79Amy Elsner
1027Costa X RimFrance2026-07-24Buckley Miller Wright PROPOSAL70Ivan Magalhaes
1028Kaitlin F VocelkaJapan2026-08-16Feltz Printing Service NEW61Anna Fali
1029Rodrigues E PoquetteRussia2026-08-10Benton, John B Jr PROPOSAL21Ioni Bowcher
1030Cody H OldroydGermany2026-08-09Benton, John B Jr PROPOSAL13Asiya Javayant
1031Ivar N DoeJapan2026-07-30Chapman, Ross E Esq NEGOTIATION30Bernardo Dominic
1032Aika K ButtIndia2026-07-23Chemel, James L Cpa QUALIFIED5Xuxue Feng
1033David M WhobreyFrance2026-08-16Commercial Press PROPOSAL18Asiya Javayant
1034Maria Q SergiFrance2026-07-29Feiner Bros QUALIFIED63Ivan Magalhaes
1035Aika W FigeroaArgentina2026-08-16Printing Dimensions PROPOSAL67Amy Elsner
1036Johnson M MacleadSpain2026-07-25Buckley Miller Wright NEGOTIATION82Bernardo Dominic
1037Emily R IturbideArgentina2026-08-17Buckley Miller Wright PROPOSAL20Amy Elsner
1038Arvin N TollnerFrance2026-08-17Rangoni Of Florence RENEWAL60Ioni Bowcher
1039Faith X NestleArgentina2026-08-02King, Christopher A Esq UNQUALIFIED36Ivan Magalhaes
1040Claire O GlickJapan2026-08-03Dorl, James J Esq QUALIFIED4Ioni Bowcher
1041Jefferson Y BowleyItaly2026-08-09Commercial Press QUALIFIED5Xuxue Feng
1042Francesco S WaycottJapan2026-08-14Benton, John B Jr QUALIFIED1Anna Fali
1043Jennifer I DilliardCanada2026-07-26Rangoni Of Florence UNQUALIFIED34Stephen Shaw
1044Johnson V WieserGermany2026-08-21Benton, John B Jr RENEWAL34Elwin Sharvill
1045Maria U CaudyFrance2026-07-30Rangoni Of Florence QUALIFIED24Xuxue Feng
1046Adams U KuskoIndia2026-07-26Morlong Associates NEGOTIATION32Xuxue Feng
1047Arvin E InouyeSpain2026-08-14Benton, John B Jr RENEWAL28Anna Fali
1048Darci V VocelkaSpain2026-08-08Morlong Associates PROPOSAL69Ioni Bowcher
1049Maria X SlusarskiBrazil2026-08-11Printing Dimensions NEW59Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aika D MaletSpainIvan Magalhaes QUALIFIED
Munro D MorascaArgentinaAnna Fali NEW
Isabel K PaprockiIndiaAmy Elsner QUALIFIED
Aika Y AmigonArgentinaXuxue Feng UNQUALIFIED
Kadeem A AlbaresBrazilIvan Magalhaes QUALIFIED
Morrow J MaletAustraliaOnyama Limba UNQUALIFIED
Izzy G RutaJapanAmy Elsner RENEWAL
Johnson C SergiGermanyElwin Sharvill NEW
Silvio X FlosiAustraliaIoni Bowcher UNQUALIFIED
Mujtaba B AmigonAustraliaIvan Magalhaes RENEWAL
Aditya B KuskoCanadaIoni Bowcher NEW
Jennifer Q MaletSpainStephen Shaw RENEWAL
Stacey M ButtRussiaElwin Sharvill UNQUALIFIED
Octavia N RulapaughRussiaAnna Fali PROPOSAL
Ricardo P WaycottGermanyStephen Shaw QUALIFIED
Cody I BowleyGermanyIoni Bowcher NEGOTIATION
Francesco V KuskoUnited KingdomIoni Bowcher UNQUALIFIED
Juan Q GauchoBrazilAnna Fali UNQUALIFIED
Chavez K ShinkoBrazilIoni Bowcher UNQUALIFIED
Tony C GauchoBrazilAsiya Javayant NEGOTIATION
Jones C CaudySpainIvan Magalhaes QUALIFIED
Ivar R RulapaughJapanBernardo Dominic UNQUALIFIED
Misaki X DilliardRussiaAsiya Javayant NEGOTIATION
Ivar T WaycottItalyAnna Fali UNQUALIFIED
Izzy A OstroskyArgentinaStephen Shaw PROPOSAL
Mayumi N MacleadFranceElwin Sharvill NEW
Ricardo D WaycottIndiaOnyama Limba NEGOTIATION
Leon K CaudyArgentinaAnna Fali QUALIFIED
Julie M VocelkaBrazilAnna Fali PROPOSAL
Emily K VenereBrazilAsiya Javayant NEGOTIATION
James V FigeroaJapanElwin Sharvill RENEWAL
Jefferson Z RutaAustraliaStephen Shaw PROPOSAL
Alejandro A GauchoUnited KingdomOnyama Limba PROPOSAL
Salvatore O PaprockiRussiaStephen Shaw UNQUALIFIED
Juan H IturbideSpainIvan Magalhaes NEW
Arvin T IturbideCanadaXuxue Feng UNQUALIFIED
Ivar A AmigonJapanOnyama Limba NEW
Tony P RulapaughFranceIvan Magalhaes NEGOTIATION
Smith L DarakjyUnited KingdomElwin Sharvill UNQUALIFIED
Alejandro A ChuiAustraliaXuxue Feng NEW
Maria G GarufiBrazilStephen Shaw NEW
Sinclair N OldroydArgentinaAsiya Javayant QUALIFIED
Tony G OldroydBrazilAmy Elsner NEGOTIATION
Munro A GillianFranceOnyama Limba PROPOSAL
Mujtaba Y ChuiJapanIvan Magalhaes QUALIFIED
Juan U SlusarskiFranceStephen Shaw PROPOSAL
Arvin P IturbideAustraliaIvan Magalhaes NEGOTIATION
Adams D CaudyArgentinaStephen Shaw QUALIFIED
Leja Z SlusarskiRussiaAsiya Javayant UNQUALIFIED
Clifford M BowleyItalyXuxue Feng NEGOTIATION
Frozen Columns
Name
Jennifer R Malet
Mujtaba J Vocelka
Mayumi G Venere
Kaitlin I Stockham
Morrow M Kusko
Johnson P Caudy
Silvio Z Kolmetz
Jeanfrancois F Waycott
David A Darakjy
Izzy L Royster
Mayumi U Nicka
Arvin N Caldarera
Julie E Vocelka
Leja H Whobrey
Greenwood Y Darakjy
Octavia D Morasca
Ashley W Caudy
Salvatore G Chui
Kaitlin E Malet
Sinclair B Royster
Johnson H Venere
Ricardo L Venere
Izzy O Albares
James J Figeroa
Murillo C Figeroa
Leon H Morasca
Stacey X Amigon
Chavez C Darakjy
Aruna N Ostrosky
Tony D Venere
James R Kusko
Arvin X Perin
Alejandro K Ostrosky
Mayumi R Iturbide
Mayumi Q Whobrey
Clifford F Maclead
Munro G Royster
James C Kusko
Ashley K Iturbide
Mujtaba U Darakjy
Nicolas N Malet
Clifford K Shinko
Tony U Royster
Antonio K Oldroyd
James V Whobrey
Kaitlin Z Dilliard
Smith B Figeroa
Mayumi C Caldarera
Chavez L Iturbide
Francesco Q Dilliard
IdCountryDate
1000Canada2026-08-09
1001United Kingdom2026-07-24
1002India2026-08-18
1003Japan2026-08-17
1004Canada2026-08-13
1005Brazil2026-08-01
1006Australia2026-07-23
1007Italy2026-08-15
1008Australia2026-08-03
1009Argentina2026-08-21
1010United Kingdom2026-08-04
1011Canada2026-08-08
1012Argentina2026-08-12
1013France2026-08-12
1014Russia2026-08-17
1015Canada2026-07-28
1016India2026-08-20
1017India2026-08-16
1018Germany2026-08-20
1019Spain2026-08-04
1020Germany2026-07-26
1021India2026-08-09
1022India2026-07-23
1023Spain2026-08-15
1024Brazil2026-08-20
1025Russia2026-08-12
1026France2026-08-11
1027Japan2026-08-01
1028Argentina2026-08-13
1029United Kingdom2026-08-02
1030France2026-07-27
1031India2026-08-11
1032Spain2026-08-15
1033Russia2026-08-02
1034Australia2026-08-15
1035Canada2026-08-20
1036Spain2026-07-26
1037United Kingdom2026-08-12
1038Russia2026-07-23
1039Spain2026-07-29
1040Germany2026-07-26
1041Canada2026-08-03
1042Germany2026-08-03
1043Germany2026-08-04
1044United Kingdom2026-07-26
1045United Kingdom2026-07-28
1046India2026-07-30
1047Japan2026-08-09
1048Germany2026-08-11
1049Argentina2026-08-13

On-Demand Data

NameIdCountryDate
Mujtaba W Ruta1000Japan2026-08-16
James F Butt1001Italy2026-08-05
David S Bowley1002Brazil2026-08-16
Salvatore Z Butt1003Russia2026-07-31
Murillo E Shinko1004Spain2026-08-15
Stacey I Maclead1005Argentina2026-08-08
Aika C Stockham1006Australia2026-08-08
Aruna V Vocelka1007Russia2026-07-30
Emily E Ruta1008India2026-07-28
Julie M Shinko1009Italy2026-08-02
Murillo Y Rulapaugh1010Canada2026-08-16
Emily T Saylors1011Japan2026-08-17
Darci R Venere1012Japan2026-08-03
Mayumi Y Briddick1013Spain2026-08-08
Faith V Poquette1014Argentina2026-08-14
Ivar P Inouye1015Russia2026-07-30
Isabel F Chui1016Japan2026-08-08
Isabel F Stenseth1017Germany2026-08-08
Maria F Waycott1018Russia2026-07-29
Johnson B Doe1019India2026-07-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci B CaudyGermanyOnyama Limba NEGOTIATION
Deepesh S WaycottIndiaAmy Elsner NEGOTIATION
Aika U IturbideAustraliaAnna Fali NEW
Faith D ShinkoItalyXuxue Feng UNQUALIFIED
Arvin W TollnerCanadaElwin Sharvill PROPOSAL
Salvatore Z KolmetzCanadaOnyama Limba NEW
Ashley J SchemmerSpainIvan Magalhaes PROPOSAL
Leon Z RoysterCanadaAmy Elsner PROPOSAL
Aika A PerinCanadaIoni Bowcher RENEWAL
Ivar G RulapaughRussiaBernardo Dominic NEW
Deepesh L RutaUnited KingdomBernardo Dominic NEGOTIATION
Aika H RimBrazilElwin Sharvill NEW
Darci I FlosiFranceBernardo Dominic QUALIFIED
Juan D RimBrazilStephen Shaw NEW
Tony U SergiItalyAsiya Javayant NEW
Stacey E GarufiJapanAmy Elsner RENEWAL
Darci Z MorascaGermanyAnna Fali QUALIFIED
Greenwood S DarakjyAustraliaBernardo Dominic PROPOSAL
Jennifer Y TollnerAustraliaXuxue Feng UNQUALIFIED
Johnson H CaudyCanadaElwin Sharvill UNQUALIFIED
Silvio E DoeSpainElwin Sharvill UNQUALIFIED
Nicolas J ChuiRussiaOnyama Limba PROPOSAL
Francesco D InouyeSpainElwin Sharvill PROPOSAL
Nicolas W GarufiIndiaStephen Shaw UNQUALIFIED
Murillo Z DoeFranceXuxue Feng PROPOSAL
Isabel O OstroskySpainStephen Shaw NEW
Johnson K FollerItalyAsiya Javayant RENEWAL
Ivar D GillianSpainElwin Sharvill UNQUALIFIED
Jefferson B VocelkaUnited KingdomOnyama Limba RENEWAL
Izzy V SchemmerFranceIvan Magalhaes NEGOTIATION
Kadeem W NickaUnited KingdomIoni Bowcher NEGOTIATION
Aruna S SchemmerFranceStephen Shaw RENEWAL
Mujtaba E InouyeItalyStephen Shaw PROPOSAL
Maria A RutaIndiaStephen Shaw NEGOTIATION
Aruna F TollnerJapanStephen Shaw QUALIFIED
Adams W DarakjySpainBernardo Dominic NEW
Jones R FigeroaSpainBernardo Dominic NEGOTIATION
Faith C AlbaresFranceIvan Magalhaes UNQUALIFIED
Kadeem I BologniaGermanyIoni Bowcher RENEWAL
Isabel F NickaGermanyElwin Sharvill 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>