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
Jefferson P AmigonAustraliaBernardo Dominic PROPOSAL
Jeanfrancois K NickaSpainIoni Bowcher PROPOSAL
Ashley M TollnerRussiaIvan Magalhaes UNQUALIFIED
Leon M StensethFranceStephen Shaw RENEWAL
James B PoquetteAustraliaBernardo Dominic UNQUALIFIED
Nicolas W NickaUnited KingdomAmy Elsner NEW
Silvio X WaycottIndiaIoni Bowcher NEW
Greenwood D NestleItalyElwin Sharvill RENEWAL
Faith X ChuiUnited KingdomStephen Shaw NEW
Munro X FollerItalyElwin Sharvill RENEWAL
Kaitlin Q FigeroaJapanBernardo Dominic NEW
Faith D ButtIndiaAmy Elsner UNQUALIFIED
Silvio K IturbideUnited KingdomElwin Sharvill NEGOTIATION
Antonio Y VenereBrazilAmy Elsner NEGOTIATION
Arvin X AlbaresIndiaIoni Bowcher UNQUALIFIED
Francesco C CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Morrow W BowleyFranceXuxue Feng QUALIFIED
Murillo A CaudyJapanAnna Fali PROPOSAL
Johnson F StockhamGermanyAmy Elsner NEW
David C FigeroaBrazilIoni Bowcher PROPOSAL
Leon C KuskoIndiaBernardo Dominic NEW
Aruna Y AlbaresRussiaStephen Shaw UNQUALIFIED
Isabel Q MarrierCanadaAsiya Javayant NEGOTIATION
Arvin T WieserCanadaAsiya Javayant NEGOTIATION
Johnson T TollnerArgentinaAsiya Javayant NEW
Stacey G NestleGermanyElwin Sharvill UNQUALIFIED
Rodrigues W GlickIndiaIoni Bowcher NEGOTIATION
Clifford Q RoysterRussiaIvan Magalhaes PROPOSAL
Rodrigues U MaletRussiaAmy Elsner NEGOTIATION
Emily F SergiBrazilIoni Bowcher UNQUALIFIED
Antonio U CaldareraBrazilAsiya Javayant NEW
Costa Y GauchoAustraliaIvan Magalhaes UNQUALIFIED
Sinclair B CampainArgentinaStephen Shaw RENEWAL
Alejandro Z OstroskyIndiaStephen Shaw QUALIFIED
Jeanfrancois U AlbaresRussiaOnyama Limba RENEWAL
Deepesh N BologniaCanadaXuxue Feng NEW
Francesco X RutaBrazilXuxue Feng QUALIFIED
Jones L KolmetzIndiaAsiya Javayant RENEWAL
Ivar R WhobreyItalyXuxue Feng UNQUALIFIED
Salvatore J SchemmerUnited KingdomOnyama Limba UNQUALIFIED
Greenwood G KolmetzAustraliaAnna Fali NEGOTIATION
Jones Y FerenczArgentinaXuxue Feng QUALIFIED
Morrow K SchemmerItalyBernardo Dominic QUALIFIED
Ashley I KolmetzFranceIvan Magalhaes NEW
Alejandro Q BologniaUnited KingdomAmy Elsner NEW
Jeanfrancois J OstroskySpainAmy Elsner NEGOTIATION
Munro C KolmetzIndiaAmy Elsner UNQUALIFIED
Mayumi A PaprockiRussiaIoni Bowcher NEGOTIATION
Adams X MorascaItalyOnyama Limba RENEWAL
James H PoquetteBrazilElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Smith P MaletJapanAsiya Javayant NEW
Rodrigues H BriddickGermanyIoni Bowcher PROPOSAL
Misaki S CampainIndiaXuxue Feng RENEWAL
Mayumi H AmigonItalyAmy Elsner PROPOSAL
Aika S ChuiAustraliaStephen Shaw UNQUALIFIED
Leja F DoeArgentinaAmy Elsner PROPOSAL
Tony O CaudyIndiaAsiya Javayant UNQUALIFIED
Wickens N RutaFranceStephen Shaw NEGOTIATION
Jones U DarakjyArgentinaElwin Sharvill PROPOSAL
Mujtaba J GlickIndiaOnyama Limba NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford P SergiUnited Kingdom2026-08-09Chanay, Jeffrey A Esq QUALIFIED73Onyama Limba
1001Adams K DilliardCanada2026-07-26Printing Dimensions NEGOTIATION1Ioni Bowcher
1002Johnson R FigeroaRussia2026-08-15Printing Dimensions NEGOTIATION73Anna Fali
1003Octavia B MacleadBrazil2026-08-10Truhlar And Truhlar Attys RENEWAL43Onyama Limba
1004Jeanfrancois B StockhamIndia2026-08-05Chanay, Jeffrey A Esq QUALIFIED86Amy Elsner
1005Alejandro R FlosiAustralia2026-08-15Benton, John B Jr NEGOTIATION25Anna Fali
1006Izzy X AlbaresGermany2026-07-18Chemel, James L Cpa QUALIFIED79Ivan Magalhaes
1007Munro U FlosiCanada2026-07-18Chemel, James L Cpa PROPOSAL15Asiya Javayant
1008Jeanfrancois K OldroydFrance2026-08-10Chanay, Jeffrey A Esq NEW9Stephen Shaw
1009Emily T WieserBrazil2026-07-26Printing Dimensions UNQUALIFIED26Stephen Shaw
1010Nicolas P KolmetzSpain2026-07-20Truhlar And Truhlar Attys NEGOTIATION67Elwin Sharvill
1011Leja D CaldareraSpain2026-08-09Benton, John B Jr UNQUALIFIED5Amy Elsner
1012Murillo G SlusarskiBrazil2026-07-26Feiner Bros PROPOSAL77Stephen Shaw
1013Tony I SaylorsJapan2026-08-09Buckley Miller Wright NEGOTIATION56Asiya Javayant
1014Cody W GlickJapan2026-08-13Chanay, Jeffrey A Esq NEW24Ioni Bowcher
1015Adams Q VenereBrazil2026-07-19Benton, John B Jr PROPOSAL34Anna Fali
1016Maisha C WhobreyGermany2026-07-25King, Christopher A Esq UNQUALIFIED29Elwin Sharvill
1017Johnson Y BowleyJapan2026-08-06Rangoni Of Florence NEGOTIATION46Elwin Sharvill
1018Sinclair Z MarrierBrazil2026-08-10Feltz Printing Service NEW36Ioni Bowcher
1019Maria U BowleyJapan2026-07-24Commercial Press NEGOTIATION67Ivan Magalhaes
1020Ricardo V SlusarskiItaly2026-07-17Printing Dimensions NEW28Ivan Magalhaes
1021Silvio Q WieserFrance2026-08-06Feltz Printing Service QUALIFIED42Ioni Bowcher
1022Adams M PerinJapan2026-07-28Rangoni Of Florence RENEWAL73Bernardo Dominic
1023Nicolas E AlbaresArgentina2026-07-24Chanay, Jeffrey A Esq PROPOSAL42Bernardo Dominic
1024Morrow E ButtJapan2026-08-04Benton, John B Jr QUALIFIED34Asiya Javayant
1025Leon Y InouyeArgentina2026-07-24Morlong Associates NEW17Onyama Limba
1026Ashley A BriddickRussia2026-08-11Morlong Associates UNQUALIFIED90Onyama Limba
1027Munro M MarrierGermany2026-08-13Rangoni Of Florence UNQUALIFIED15Amy Elsner
1028Mujtaba R InouyeItaly2026-07-29Printing Dimensions QUALIFIED73Anna Fali
1029Faith M MacleadSpain2026-08-05Benton, John B Jr PROPOSAL75Ioni Bowcher
1030James A VenereFrance2026-08-03Chanay, Jeffrey A Esq RENEWAL83Asiya Javayant
1031Darci H CampainCanada2026-08-05Truhlar And Truhlar Attys UNQUALIFIED6Asiya Javayant
1032Rodrigues Z RoysterSpain2026-07-25Chapman, Ross E Esq QUALIFIED44Xuxue Feng
1033Ashley K AmigonAustralia2026-07-17Printing Dimensions UNQUALIFIED88Amy Elsner
1034Leon N GlickGermany2026-07-22Truhlar And Truhlar Attys NEGOTIATION1Elwin Sharvill
1035Cody O OldroydRussia2026-08-12Benton, John B Jr PROPOSAL83Amy Elsner
1036Francesco A TollnerUnited Kingdom2026-08-11Truhlar And Truhlar Attys NEGOTIATION28Asiya Javayant
1037Murillo L SlusarskiBrazil2026-08-04King, Christopher A Esq UNQUALIFIED72Elwin Sharvill
1038Smith L FollerFrance2026-08-07Chanay, Jeffrey A Esq QUALIFIED1Elwin Sharvill
1039Kadeem L MorascaArgentina2026-07-21Commercial Press PROPOSAL76Amy Elsner
1040Faith K RimCanada2026-07-29Feltz Printing Service RENEWAL68Asiya Javayant
1041Maisha Q ShinkoUnited Kingdom2026-07-20Commercial Press NEW69Amy Elsner
1042Aruna V MaletJapan2026-08-06Chanay, Jeffrey A Esq PROPOSAL19Elwin Sharvill
1043Aruna C MacleadIndia2026-07-31King, Christopher A Esq NEW63Stephen Shaw
1044Costa K PerinRussia2026-08-10Chanay, Jeffrey A Esq PROPOSAL68Anna Fali
1045Adams Y KolmetzIndia2026-07-30Feltz Printing Service PROPOSAL53Elwin Sharvill
1046James I AmigonCanada2026-08-12Buckley Miller Wright PROPOSAL38Ivan Magalhaes
1047James J MaletArgentina2026-07-31Chemel, James L Cpa RENEWAL28Amy Elsner
1048Leja C GarufiIndia2026-08-06Buckley Miller Wright UNQUALIFIED57Stephen Shaw
1049Misaki E BriddickCanada2026-08-06Buckley Miller Wright NEW13Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Arvin J VocelkaAustraliaElwin Sharvill NEGOTIATION
Misaki S VenereItalyOnyama Limba NEW
Misaki R StensethAustraliaIvan Magalhaes PROPOSAL
Arvin Q RoysterBrazilXuxue Feng QUALIFIED
Jones J StensethItalyStephen Shaw QUALIFIED
Tony U CampainJapanAmy Elsner QUALIFIED
Costa W CaldareraRussiaAnna Fali QUALIFIED
Ivar V DoeJapanBernardo Dominic QUALIFIED
Salvatore N WaycottCanadaAnna Fali UNQUALIFIED
Emily K ButtArgentinaXuxue Feng QUALIFIED
Leja O BologniaGermanyAmy Elsner NEGOTIATION
Aruna J WaycottGermanyAnna Fali UNQUALIFIED
Juan T DilliardCanadaStephen Shaw UNQUALIFIED
Arvin V MaletCanadaStephen Shaw NEW
Emily Y RutaArgentinaStephen Shaw QUALIFIED
Stacey V CaldareraItalyStephen Shaw NEW
Kaitlin Z GillianIndiaAsiya Javayant QUALIFIED
Mayumi S MaletIndiaXuxue Feng NEW
Julie T ButtArgentinaIvan Magalhaes NEGOTIATION
Ashley P MarrierBrazilIvan Magalhaes RENEWAL
Adams S OstroskyJapanOnyama Limba UNQUALIFIED
Aditya U VocelkaSpainXuxue Feng QUALIFIED
Francesco H BriddickFranceXuxue Feng PROPOSAL
Jones V GlickUnited KingdomAnna Fali UNQUALIFIED
Emily J AlbaresBrazilAmy Elsner PROPOSAL
Leja Z OstroskyArgentinaXuxue Feng RENEWAL
Deepesh Y SergiRussiaAsiya Javayant NEGOTIATION
Emily U SaylorsSpainIoni Bowcher QUALIFIED
Costa J NickaSpainAnna Fali QUALIFIED
Misaki C RoysterSpainElwin Sharvill NEW
Leja B DoeArgentinaXuxue Feng QUALIFIED
Chavez P StensethCanadaIvan Magalhaes PROPOSAL
Smith C KuskoSpainElwin Sharvill NEGOTIATION
Juan J GlickSpainBernardo Dominic RENEWAL
Chavez R NestleJapanXuxue Feng NEW
Maisha J StockhamRussiaOnyama Limba PROPOSAL
Adams T CampainSpainOnyama Limba NEW
Salvatore S FerenczItalyAsiya Javayant RENEWAL
Francesco Q FerenczItalyXuxue Feng PROPOSAL
Leon M DoeItalyElwin Sharvill QUALIFIED
Darci X SergiArgentinaAmy Elsner QUALIFIED
James Z RutaCanadaIoni Bowcher RENEWAL
Jeanfrancois J MarrierItalyBernardo Dominic NEW
Johnson U StockhamSpainElwin Sharvill PROPOSAL
Rodrigues O NestleGermanyXuxue Feng NEW
Cody X OstroskySpainOnyama Limba NEGOTIATION
Aruna M BologniaUnited KingdomIoni Bowcher PROPOSAL
Deepesh X CaudyJapanIoni Bowcher RENEWAL
Munro J OldroydSpainBernardo Dominic UNQUALIFIED
Stacey X StensethGermanyStephen Shaw UNQUALIFIED
Frozen Columns
Name
Izzy A Ruta
Ricardo F Garufi
Clifford P Butt
Julie K Paprocki
Jennifer U Schemmer
Nicolas R Figeroa
Stacey J Rim
Octavia H Stockham
Nicolas S Morasca
Jefferson M Whobrey
Isabel J Rim
Tony H Glick
Juan E Glick
Stacey S Gaucho
Deepesh P Amigon
Rodrigues N Ferencz
Adams U Albares
Stacey R Vocelka
Sinclair E Oldroyd
Murillo Q Bowley
Chavez R Schemmer
Silvio J Saylors
Jefferson S Butt
Wickens A Darakjy
Aditya W Iturbide
Julie N Morasca
Munro Z Marrier
Alejandro U Inouye
Adams N Albares
Francesco O Ferencz
Ivar H Paprocki
Julie E Stenseth
Leon D Wieser
David N Dilliard
Maisha J Bowley
Rodrigues N Albares
Munro U Oldroyd
Mujtaba E Glick
Costa T Royster
Nicolas H Waycott
Francesco P Doe
Emily L Gillian
Adams X Maclead
Stacey J Whobrey
Rodrigues Q Schemmer
Rodrigues U Chui
Leon Z Briddick
Kadeem O Poquette
Alejandro A Gillian
Juan J Schemmer
IdCountryDate
1000Germany2026-08-07
1001Japan2026-07-25
1002Russia2026-08-10
1003United Kingdom2026-07-30
1004India2026-08-04
1005Brazil2026-08-06
1006India2026-08-02
1007India2026-08-02
1008Spain2026-07-26
1009Spain2026-07-26
1010India2026-07-17
1011Russia2026-08-06
1012France2026-07-26
1013Australia2026-08-10
1014Germany2026-08-12
1015India2026-07-24
1016Spain2026-07-24
1017United Kingdom2026-08-08
1018Brazil2026-08-10
1019France2026-07-20
1020Canada2026-07-31
1021Italy2026-07-20
1022Canada2026-08-07
1023Russia2026-08-09
1024Japan2026-08-07
1025Canada2026-07-25
1026Italy2026-07-26
1027United Kingdom2026-07-21
1028Russia2026-07-24
1029Russia2026-08-15
1030United Kingdom2026-08-15
1031Argentina2026-08-07
1032Brazil2026-07-21
1033Japan2026-07-26
1034Argentina2026-08-15
1035Australia2026-07-25
1036Japan2026-08-14
1037Germany2026-07-20
1038Canada2026-08-09
1039Canada2026-08-15
1040France2026-07-25
1041France2026-07-19
1042Brazil2026-08-12
1043Argentina2026-07-26
1044Russia2026-07-17
1045United Kingdom2026-07-28
1046Brazil2026-08-02
1047Canada2026-08-10
1048Australia2026-07-28
1049Germany2026-07-30

On-Demand Data

NameIdCountryDate
Smith K Kusko1000Argentina2026-07-29
Kadeem S Iturbide1001India2026-08-12
Leja G Stockham1002Australia2026-07-18
Aditya D Maclead1003Argentina2026-08-08
Kaitlin H Dilliard1004Russia2026-07-26
Sinclair G Ruta1005Germany2026-08-03
Ricardo W Butt1006Spain2026-08-03
Leon G Ferencz1007Italy2026-07-20
Stacey W Nicka1008Australia2026-08-03
Mujtaba V Rulapaugh1009Spain2026-08-11
Sinclair X Darakjy1010Brazil2026-08-13
Arvin O Amigon1011Germany2026-08-07
Jones O Perin1012Australia2026-07-17
Morrow V Maclead1013Russia2026-07-24
Mayumi Y Campain1014India2026-07-17
Wickens Z Amigon1015Germany2026-07-28
Juan Y Perin1016Brazil2026-07-19
Jennifer A Paprocki1017Australia2026-08-01
Munro N Darakjy1018Spain2026-08-09
Chavez L Garufi1019Russia2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika T KuskoItalyAsiya Javayant NEGOTIATION
Smith X DarakjyGermanyAnna Fali NEGOTIATION
Julie J DilliardSpainAsiya Javayant RENEWAL
Sinclair K ButtBrazilXuxue Feng PROPOSAL
Chavez J FlosiArgentinaIvan Magalhaes RENEWAL
Octavia P NestleAustraliaAmy Elsner NEGOTIATION
Kaitlin Y GillianCanadaStephen Shaw NEW
Alejandro T DarakjyRussiaElwin Sharvill PROPOSAL
Alejandro R FigeroaIndiaAsiya Javayant QUALIFIED
Kaitlin D OldroydGermanyXuxue Feng UNQUALIFIED
Maisha V WieserGermanyElwin Sharvill NEW
Misaki W ShinkoIndiaAnna Fali NEW
Misaki R OldroydArgentinaXuxue Feng PROPOSAL
Juan Z KolmetzBrazilAnna Fali UNQUALIFIED
Mujtaba F MorascaCanadaIvan Magalhaes RENEWAL
Murillo F AlbaresGermanyIoni Bowcher RENEWAL
Leja B VenereUnited KingdomAmy Elsner NEGOTIATION
Wickens Z SergiSpainStephen Shaw PROPOSAL
Adams Q SergiJapanIvan Magalhaes PROPOSAL
Aika O BowleyUnited KingdomAnna Fali QUALIFIED
Deepesh F StockhamItalyStephen Shaw UNQUALIFIED
Alejandro I BriddickRussiaStephen Shaw PROPOSAL
Leja Q KolmetzUnited KingdomOnyama Limba QUALIFIED
Sinclair F PoquetteArgentinaIvan Magalhaes RENEWAL
Maisha Y StensethSpainIvan Magalhaes RENEWAL
Aika Y AlbaresGermanyBernardo Dominic NEGOTIATION
Darci J OldroydArgentinaIvan Magalhaes NEW
Stacey H AmigonAustraliaAnna Fali RENEWAL
Murillo T FerenczFranceElwin Sharvill NEW
Ricardo W OstroskyArgentinaBernardo Dominic NEGOTIATION
Aika C WhobreyRussiaAsiya Javayant UNQUALIFIED
Ivar U AlbaresAustraliaIvan Magalhaes QUALIFIED
Costa N WaycottGermanyAnna Fali QUALIFIED
Jefferson X AmigonCanadaAsiya Javayant NEW
Francesco P RimArgentinaAnna Fali UNQUALIFIED
Chavez E SchemmerGermanyIvan Magalhaes RENEWAL
Isabel T BriddickArgentinaOnyama Limba NEW
Jefferson P SergiRussiaOnyama Limba QUALIFIED
Kaitlin F StensethIndiaStephen Shaw QUALIFIED
Maisha A WhobreyBrazilOnyama Limba 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>