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
Silvio Z AmigonFranceBernardo Dominic NEGOTIATION
Salvatore G FerenczSpainIvan Magalhaes RENEWAL
Jefferson H BowleyAustraliaAnna Fali NEW
Smith K MarrierGermanyIoni Bowcher PROPOSAL
Maisha I OstroskyBrazilIoni Bowcher UNQUALIFIED
Stacey C GlickCanadaXuxue Feng QUALIFIED
Isabel M FollerIndiaElwin Sharvill PROPOSAL
Alejandro R OstroskyUnited KingdomIvan Magalhaes NEGOTIATION
Stacey K PoquetteGermanyStephen Shaw NEW
Darci R GarufiFranceIoni Bowcher PROPOSAL
Adams W ChuiIndiaStephen Shaw UNQUALIFIED
Arvin G WieserRussiaOnyama Limba PROPOSAL
Emily A SaylorsFranceIoni Bowcher PROPOSAL
Sinclair J ShinkoRussiaAsiya Javayant QUALIFIED
Arvin Q WhobreyIndiaStephen Shaw NEGOTIATION
Sinclair D MarrierIndiaAmy Elsner QUALIFIED
Wickens Z RoysterArgentinaIoni Bowcher UNQUALIFIED
Mayumi O WaycottBrazilXuxue Feng UNQUALIFIED
Costa I MorascaCanadaBernardo Dominic RENEWAL
Misaki E FlosiArgentinaStephen Shaw NEW
Adams E AmigonItalyAsiya Javayant RENEWAL
Faith K FollerIndiaAnna Fali NEW
Greenwood Q CaldareraSpainAmy Elsner QUALIFIED
Kadeem W MaletSpainAnna Fali NEW
Kaitlin R DoeUnited KingdomAsiya Javayant QUALIFIED
Isabel L BowleyJapanOnyama Limba RENEWAL
Rodrigues Y NestleAustraliaAmy Elsner UNQUALIFIED
Munro G MarrierArgentinaOnyama Limba PROPOSAL
Maisha O DoeUnited KingdomBernardo Dominic PROPOSAL
Sinclair E GarufiArgentinaElwin Sharvill NEW
Juan Q AmigonArgentinaAnna Fali QUALIFIED
Aditya Z WaycottIndiaElwin Sharvill UNQUALIFIED
Morrow D ChuiGermanyOnyama Limba RENEWAL
Cody R ChuiGermanyBernardo Dominic NEGOTIATION
Mujtaba O PerinCanadaStephen Shaw RENEWAL
Jefferson U InouyeAustraliaXuxue Feng UNQUALIFIED
Julie P GauchoItalyOnyama Limba UNQUALIFIED
Maria S RimItalyAmy Elsner NEW
Antonio N ButtItalyElwin Sharvill RENEWAL
Leon Z NickaRussiaIoni Bowcher PROPOSAL
Maisha Z CaudySpainIvan Magalhaes QUALIFIED
Nicolas I KolmetzItalyIvan Magalhaes NEGOTIATION
Jeanfrancois S CaudyIndiaAnna Fali QUALIFIED
Kadeem A GlickItalyXuxue Feng NEGOTIATION
Kadeem H DilliardFranceAmy Elsner NEW
Salvatore H TollnerBrazilIvan Magalhaes PROPOSAL
Wickens R SergiCanadaOnyama Limba UNQUALIFIED
David L AmigonFranceBernardo Dominic PROPOSAL
Antonio I ChuiSpainAnna Fali UNQUALIFIED
Wickens N StockhamItalyIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Francesco N BologniaFranceAnna Fali UNQUALIFIED
Clifford D FlosiFranceOnyama Limba NEW
Sinclair M RutaSpainIvan Magalhaes NEGOTIATION
Ashley W StockhamArgentinaAsiya Javayant NEW
Juan C FerenczRussiaIvan Magalhaes NEGOTIATION
Mujtaba A SaylorsItalyStephen Shaw PROPOSAL
Salvatore I NestleJapanAmy Elsner NEW
Ricardo H StockhamGermanyAnna Fali QUALIFIED
Clifford S GillianArgentinaAsiya Javayant NEW
Kadeem E BowleyArgentinaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois M CampainSpain2026-07-26Printing Dimensions PROPOSAL92Stephen Shaw
1001Jefferson X MacleadCanada2026-08-11Chemel, James L Cpa NEGOTIATION56Anna Fali
1002Jeanfrancois L TollnerArgentina2026-08-17Commercial Press QUALIFIED90Anna Fali
1003David S DoeUnited Kingdom2026-08-16Chanay, Jeffrey A Esq RENEWAL92Amy Elsner
1004Octavia A VenereSpain2026-08-02Morlong Associates PROPOSAL45Asiya Javayant
1005Johnson T MorascaCanada2026-08-13Buckley Miller Wright RENEWAL14Anna Fali
1006Ricardo N SlusarskiJapan2026-08-19King, Christopher A Esq QUALIFIED6Bernardo Dominic
1007Izzy V RoysterAustralia2026-08-05Rangoni Of Florence PROPOSAL63Xuxue Feng
1008Arvin A KolmetzIndia2026-08-02Chapman, Ross E Esq NEGOTIATION75Asiya Javayant
1009Salvatore R DilliardCanada2026-08-20Feiner Bros QUALIFIED11Amy Elsner
1010Leja N GauchoIndia2026-08-06Rousseaux, Michael Esq RENEWAL30Onyama Limba
1011Rodrigues Z MacleadFrance2026-08-20Feltz Printing Service QUALIFIED31Onyama Limba
1012Munro S WaycottAustralia2026-08-23Chemel, James L Cpa QUALIFIED57Anna Fali
1013Juan N GillianGermany2026-08-21Dorl, James J Esq UNQUALIFIED15Xuxue Feng
1014Emily C SergiAustralia2026-07-27Rousseaux, Michael Esq QUALIFIED61Bernardo Dominic
1015Jeanfrancois T RoysterIndia2026-08-19Rousseaux, Michael Esq NEGOTIATION84Anna Fali
1016Munro A KolmetzFrance2026-08-04Feltz Printing Service NEGOTIATION28Amy Elsner
1017Munro Z GlickRussia2026-08-07King, Christopher A Esq QUALIFIED62Xuxue Feng
1018Greenwood N GauchoSpain2026-08-13Buckley Miller Wright NEGOTIATION15Xuxue Feng
1019Izzy O AmigonItaly2026-08-16Rousseaux, Michael Esq NEW68Anna Fali
1020Greenwood W OldroydFrance2026-07-30Printing Dimensions UNQUALIFIED1Ivan Magalhaes
1021Isabel X ChuiBrazil2026-08-03Feltz Printing Service PROPOSAL42Asiya Javayant
1022Arvin G FollerBrazil2026-08-01Truhlar And Truhlar Attys RENEWAL65Amy Elsner
1023Julie Z GarufiCanada2026-08-13Chapman, Ross E Esq UNQUALIFIED66Xuxue Feng
1024Isabel H WhobreyItaly2026-08-18Rousseaux, Michael Esq UNQUALIFIED74Elwin Sharvill
1025Julie H OstroskyJapan2026-07-25Feltz Printing Service NEGOTIATION23Elwin Sharvill
1026Izzy D StensethIndia2026-08-09Feiner Bros PROPOSAL58Onyama Limba
1027Isabel Z BriddickBrazil2026-08-09Printing Dimensions NEW7Anna Fali
1028Costa Q PoquetteBrazil2026-08-15Truhlar And Truhlar Attys UNQUALIFIED34Elwin Sharvill
1029Misaki W GarufiCanada2026-08-01Printing Dimensions NEGOTIATION91Bernardo Dominic
1030Isabel D ChuiIndia2026-08-08Buckley Miller Wright QUALIFIED22Xuxue Feng
1031Jones H DilliardFrance2026-08-11Rangoni Of Florence QUALIFIED28Xuxue Feng
1032Chavez O FigeroaRussia2026-08-23Benton, John B Jr UNQUALIFIED94Xuxue Feng
1033Maria N MorascaBrazil2026-08-07Printing Dimensions NEW84Xuxue Feng
1034Antonio W DoeAustralia2026-08-07Rangoni Of Florence NEGOTIATION4Ivan Magalhaes
1035Kaitlin E VenereGermany2026-08-03Morlong Associates NEGOTIATION4Ioni Bowcher
1036Jeanfrancois F BowleyGermany2026-07-31King, Christopher A Esq NEGOTIATION5Bernardo Dominic
1037Alejandro M DarakjyGermany2026-08-01Feiner Bros NEGOTIATION94Stephen Shaw
1038Jefferson H AlbaresSpain2026-07-29Feiner Bros UNQUALIFIED55Ioni Bowcher
1039Aditya D DilliardArgentina2026-08-09Chemel, James L Cpa QUALIFIED1Stephen Shaw
1040Francesco J ButtJapan2026-08-13Chemel, James L Cpa PROPOSAL59Onyama Limba
1041Maisha X GlickJapan2026-08-22Chapman, Ross E Esq QUALIFIED29Bernardo Dominic
1042Francesco Z NestleItaly2026-07-27Chapman, Ross E Esq NEW65Ioni Bowcher
1043Faith S VenereItaly2026-07-27Chanay, Jeffrey A Esq RENEWAL32Asiya Javayant
1044Maisha J MacleadJapan2026-08-03Commercial Press NEGOTIATION65Anna Fali
1045Jones E DilliardUnited Kingdom2026-08-15Printing Dimensions PROPOSAL25Asiya Javayant
1046Kaitlin Z PoquetteBrazil2026-08-04Printing Dimensions PROPOSAL24Stephen Shaw
1047James Q RulapaughArgentina2026-08-03Feiner Bros QUALIFIED38Anna Fali
1048Aditya E DarakjyAustralia2026-08-02Chapman, Ross E Esq RENEWAL31Bernardo Dominic
1049Leja E StockhamJapan2026-08-07Feiner Bros RENEWAL13Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Cody G WaycottSpainAnna Fali QUALIFIED
Claire X SchemmerFranceXuxue Feng UNQUALIFIED
Isabel A AlbaresAustraliaStephen Shaw QUALIFIED
Izzy Z RimCanadaIvan Magalhaes UNQUALIFIED
Emily W SergiGermanyBernardo Dominic PROPOSAL
Jones Z SergiIndiaXuxue Feng RENEWAL
Wickens T MacleadAustraliaOnyama Limba NEGOTIATION
Arvin W ButtJapanXuxue Feng UNQUALIFIED
James D GarufiRussiaBernardo Dominic NEGOTIATION
Greenwood E CampainRussiaElwin Sharvill UNQUALIFIED
Aditya A WieserArgentinaIoni Bowcher UNQUALIFIED
Greenwood J CampainJapanOnyama Limba UNQUALIFIED
Stacey F BologniaUnited KingdomIvan Magalhaes RENEWAL
Aruna P MaletJapanAmy Elsner NEGOTIATION
Leja V FigeroaUnited KingdomAsiya Javayant RENEWAL
Emily Q RoysterFranceElwin Sharvill QUALIFIED
Munro T MacleadItalyXuxue Feng PROPOSAL
Cody L KuskoArgentinaIoni Bowcher UNQUALIFIED
Jennifer T MarrierAustraliaAmy Elsner NEW
Jefferson T WieserIndiaBernardo Dominic QUALIFIED
Aruna Z MorascaBrazilAnna Fali PROPOSAL
Morrow H BriddickJapanIvan Magalhaes PROPOSAL
Aditya X DilliardSpainAnna Fali UNQUALIFIED
Deepesh E PaprockiBrazilStephen Shaw QUALIFIED
Jones Y VenereGermanyAnna Fali UNQUALIFIED
Nicolas P CaudySpainStephen Shaw UNQUALIFIED
Faith U GauchoArgentinaElwin Sharvill QUALIFIED
Jennifer L OstroskyGermanyBernardo Dominic NEW
Munro L MarrierFranceXuxue Feng NEW
Munro S IturbideBrazilIoni Bowcher PROPOSAL
Kaitlin X ShinkoSpainXuxue Feng UNQUALIFIED
Greenwood T CaudyGermanyIoni Bowcher NEW
Adams J AmigonJapanAnna Fali NEW
Kadeem W MaletItalyOnyama Limba RENEWAL
Smith Y RimAustraliaBernardo Dominic UNQUALIFIED
Jeanfrancois O VocelkaGermanyAnna Fali NEGOTIATION
Mayumi T WaycottRussiaAmy Elsner PROPOSAL
Francesco Q IturbideSpainIvan Magalhaes UNQUALIFIED
Stacey V OldroydCanadaAmy Elsner RENEWAL
Juan O GarufiAustraliaElwin Sharvill RENEWAL
Arvin W KuskoIndiaXuxue Feng UNQUALIFIED
Emily J SergiCanadaAnna Fali UNQUALIFIED
Mujtaba Y MacleadItalyIvan Magalhaes QUALIFIED
Johnson G VenereBrazilIoni Bowcher UNQUALIFIED
Stacey L DarakjyItalyAmy Elsner QUALIFIED
Nicolas X IturbideRussiaOnyama Limba UNQUALIFIED
Aditya A AmigonAustraliaAsiya Javayant NEGOTIATION
Smith I GauchoIndiaAsiya Javayant NEW
Leja I PoquetteRussiaOnyama Limba UNQUALIFIED
Claire L GillianArgentinaAmy Elsner QUALIFIED
Frozen Columns
Name
Kadeem P Maclead
Stacey Y Ferencz
Greenwood Z Briddick
Isabel L Shinko
Rodrigues S Nestle
Murillo N Foller
Faith J Ruta
Salvatore S Malet
Clifford D Whobrey
Murillo A Rulapaugh
Murillo V Rulapaugh
Adams K Rulapaugh
Francesco Y Malet
Izzy W Schemmer
Nicolas W Garufi
Ivar H Chui
Deepesh S Amigon
Salvatore G Wieser
Isabel E Whobrey
Leja Z Slusarski
Kadeem T Stenseth
Arvin B Ostrosky
Julie N Foller
Costa Q Campain
Jones O Stockham
Alejandro I Stenseth
Octavia E Sergi
Maria V Oldroyd
Isabel W Ostrosky
Adams T Butt
Leon T Rulapaugh
Antonio Z Kolmetz
Misaki Z Schemmer
Jeanfrancois F Albares
Izzy X Ferencz
Clifford B Wieser
Ivar O Waycott
Arvin O Schemmer
Sinclair I Doe
Maisha G Chui
Kadeem D Butt
Maria O Nestle
Greenwood M Maclead
Faith V Maclead
Alejandro R Bolognia
Leon A Slusarski
Adams I Rulapaugh
Isabel K Ferencz
Mayumi Z Bolognia
Salvatore V Amigon
IdCountryDate
1000India2026-08-22
1001United Kingdom2026-08-02
1002Canada2026-08-08
1003India2026-07-30
1004Germany2026-08-19
1005Argentina2026-08-18
1006Spain2026-08-08
1007Canada2026-08-20
1008Russia2026-08-09
1009Italy2026-07-30
1010Germany2026-08-08
1011Brazil2026-08-21
1012United Kingdom2026-08-15
1013United Kingdom2026-08-02
1014Canada2026-08-03
1015Australia2026-08-21
1016India2026-08-20
1017Germany2026-08-18
1018Brazil2026-07-27
1019Germany2026-07-27
1020Russia2026-08-03
1021Germany2026-08-10
1022Canada2026-07-27
1023Brazil2026-08-11
1024Germany2026-07-31
1025France2026-08-07
1026France2026-08-07
1027Brazil2026-08-08
1028Australia2026-08-21
1029Australia2026-07-26
1030Australia2026-07-28
1031Brazil2026-07-29
1032Russia2026-08-04
1033France2026-07-25
1034United Kingdom2026-08-06
1035Canada2026-08-08
1036United Kingdom2026-07-31
1037Russia2026-08-13
1038Canada2026-07-30
1039Spain2026-08-05
1040France2026-08-21
1041Italy2026-08-04
1042Japan2026-08-21
1043Argentina2026-07-28
1044Canada2026-08-08
1045Australia2026-08-10
1046France2026-08-01
1047Spain2026-07-25
1048Argentina2026-08-19
1049Russia2026-07-29

On-Demand Data

NameIdCountryDate
Munro K Whobrey1000Brazil2026-07-27
Tony U Bowley1001Canada2026-08-11
Nicolas X Whobrey1002Argentina2026-07-31
Salvatore C Albares1003Australia2026-08-15
Jeanfrancois E Ostrosky1004Australia2026-08-13
Murillo U Nestle1005Japan2026-08-15
Jones Q Chui1006Argentina2026-08-06
Morrow Y Flosi1007Italy2026-08-16
Emily K Iturbide1008Russia2026-08-23
Arvin P Ruta1009Brazil2026-08-14
Aditya J Whobrey1010United Kingdom2026-08-07
Jeanfrancois Z Rim1011Japan2026-08-11
Darci J Campain1012India2026-08-11
Munro V Bowley1013Brazil2026-07-31
Alejandro H Caudy1014Russia2026-08-19
Rodrigues E Maclead1015Germany2026-07-31
Smith U Waycott1016France2026-08-19
Leon M Bolognia1017Japan2026-08-21
Juan G Chui1018Germany2026-08-07
Isabel T Maclead1019Australia2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson L FollerRussiaStephen Shaw NEGOTIATION
Rodrigues Q SchemmerAustraliaAnna Fali PROPOSAL
James V MaletIndiaXuxue Feng NEW
Claire T FollerSpainElwin Sharvill NEW
Silvio Q KuskoItalyOnyama Limba NEW
Octavia W RutaIndiaElwin Sharvill NEGOTIATION
Salvatore V ButtFranceElwin Sharvill QUALIFIED
Salvatore M GarufiAustraliaIvan Magalhaes RENEWAL
Julie Z IturbideCanadaBernardo Dominic PROPOSAL
Stacey O PaprockiCanadaIoni Bowcher PROPOSAL
Silvio I FigeroaIndiaBernardo Dominic RENEWAL
Munro Z GlickIndiaStephen Shaw NEW
Rodrigues X PaprockiJapanStephen Shaw NEW
James R MaletFranceIoni Bowcher NEGOTIATION
Misaki M CampainJapanXuxue Feng NEW
Sinclair E WhobreyIndiaAmy Elsner NEW
Aditya Z DarakjyFranceIoni Bowcher RENEWAL
Octavia G AlbaresArgentinaElwin Sharvill PROPOSAL
Costa T RulapaughArgentinaOnyama Limba QUALIFIED
Adams U ButtBrazilAmy Elsner QUALIFIED
David Q DilliardSpainIoni Bowcher NEGOTIATION
Maria J MarrierAustraliaAmy Elsner QUALIFIED
Sinclair X FigeroaBrazilElwin Sharvill NEW
Chavez W DarakjyAustraliaStephen Shaw RENEWAL
Misaki J SaylorsRussiaAsiya Javayant PROPOSAL
Misaki K WaycottJapanOnyama Limba QUALIFIED
Cody N BologniaCanadaIvan Magalhaes RENEWAL
Mujtaba G GauchoBrazilXuxue Feng QUALIFIED
Julie P MaletIndiaIvan Magalhaes NEW
Mayumi U BologniaUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin V StensethArgentinaAsiya Javayant PROPOSAL
Adams Z DarakjyBrazilStephen Shaw UNQUALIFIED
Arvin S ChuiCanadaAmy Elsner UNQUALIFIED
Stacey K SlusarskiFranceIoni Bowcher NEW
Julie I SergiCanadaElwin Sharvill NEW
Kadeem P MacleadJapanAnna Fali UNQUALIFIED
Ivar D VocelkaFranceStephen Shaw QUALIFIED
Francesco I MacleadArgentinaOnyama Limba NEW
Alejandro E FigeroaJapanIoni Bowcher UNQUALIFIED
Juan Q CaudyBrazilStephen Shaw RENEWAL

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