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
Smith L InouyeBrazilIvan Magalhaes NEGOTIATION
Francesco U ShinkoFranceAmy Elsner QUALIFIED
Jones X FigeroaRussiaElwin Sharvill PROPOSAL
Misaki H NestleBrazilIvan Magalhaes NEW
Chavez O WaycottIndiaAsiya Javayant NEW
Aruna Q VenereSpainIoni Bowcher QUALIFIED
Antonio X KolmetzItalyAnna Fali UNQUALIFIED
Faith P AlbaresRussiaElwin Sharvill QUALIFIED
Aditya M GlickGermanyStephen Shaw QUALIFIED
Wickens L RoysterGermanyStephen Shaw NEGOTIATION
Julie X GlickJapanXuxue Feng PROPOSAL
Cody E OldroydBrazilXuxue Feng RENEWAL
Arvin I NickaUnited KingdomAsiya Javayant NEW
Maisha W SchemmerArgentinaIoni Bowcher RENEWAL
Smith K KuskoGermanyAsiya Javayant UNQUALIFIED
Johnson C GauchoRussiaXuxue Feng NEGOTIATION
Maria S MarrierFranceBernardo Dominic NEW
Sinclair S TollnerUnited KingdomIvan Magalhaes PROPOSAL
Kaitlin T SlusarskiBrazilStephen Shaw PROPOSAL
Kaitlin R KuskoGermanyAsiya Javayant UNQUALIFIED
Salvatore C CampainUnited KingdomAmy Elsner QUALIFIED
Wickens K WieserGermanyAnna Fali QUALIFIED
Misaki C WieserItalyIoni Bowcher QUALIFIED
Jennifer W OldroydUnited KingdomStephen Shaw PROPOSAL
Ricardo T RimFranceAmy Elsner RENEWAL
Deepesh T CaldareraFranceAsiya Javayant UNQUALIFIED
Claire L CaudyGermanyElwin Sharvill NEGOTIATION
Maisha C ChuiFranceStephen Shaw QUALIFIED
Ashley R OldroydSpainXuxue Feng PROPOSAL
Costa K FigeroaGermanyAnna Fali QUALIFIED
Claire H ButtUnited KingdomIoni Bowcher PROPOSAL
Sinclair L GillianGermanyOnyama Limba NEW
Stacey D MaletItalyIvan Magalhaes NEW
Mayumi O FigeroaCanadaBernardo Dominic UNQUALIFIED
Murillo J MacleadUnited KingdomBernardo Dominic QUALIFIED
Clifford I AmigonRussiaAsiya Javayant RENEWAL
Leja D FigeroaSpainElwin Sharvill PROPOSAL
Claire F TollnerBrazilAsiya Javayant NEW
Johnson E CaldareraSpainElwin Sharvill NEW
Antonio Y AlbaresBrazilAmy Elsner NEGOTIATION
Francesco T TollnerAustraliaAmy Elsner UNQUALIFIED
Maisha Q WhobreyAustraliaIvan Magalhaes PROPOSAL
Leja P KolmetzRussiaAsiya Javayant QUALIFIED
Rodrigues A MacleadIndiaOnyama Limba NEW
Aruna P MaletSpainAmy Elsner NEW
Aika C MacleadArgentinaStephen Shaw PROPOSAL
Costa Z NestleUnited KingdomIoni Bowcher PROPOSAL
Kaitlin I RulapaughSpainElwin Sharvill RENEWAL
Kaitlin M MaletAustraliaOnyama Limba UNQUALIFIED
Ivar E MaletIndiaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi E KuskoCanadaIvan Magalhaes NEW
Tony D GarufiBrazilIvan Magalhaes NEGOTIATION
Chavez M MarrierGermanyIoni Bowcher UNQUALIFIED
Maisha U WieserSpainElwin Sharvill UNQUALIFIED
Ashley Q ButtItalyBernardo Dominic RENEWAL
Sinclair C SergiCanadaAnna Fali UNQUALIFIED
Antonio H OldroydAustraliaXuxue Feng PROPOSAL
Maisha U SchemmerIndiaOnyama Limba NEW
Alejandro N CampainJapanXuxue Feng PROPOSAL
Deepesh C WhobreyUnited KingdomAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois T StensethItaly2026-06-26Buckley Miller Wright NEGOTIATION11Ioni Bowcher
1001Rodrigues J OstroskyArgentina2026-06-08Benton, John B Jr QUALIFIED2Elwin Sharvill
1002Chavez I RoysterBrazil2026-06-17Chanay, Jeffrey A Esq RENEWAL85Amy Elsner
1003David Q OstroskyUnited Kingdom2026-06-14Rousseaux, Michael Esq PROPOSAL40Bernardo Dominic
1004Smith H MacleadCanada2026-06-25Feltz Printing Service NEW33Amy Elsner
1005Kaitlin O GarufiJapan2026-06-30Benton, John B Jr NEGOTIATION13Elwin Sharvill
1006Kaitlin W MaletAustralia2026-06-24Chemel, James L Cpa NEGOTIATION27Onyama Limba
1007Chavez U BowleyUnited Kingdom2026-06-20Dorl, James J Esq UNQUALIFIED73Amy Elsner
1008Johnson K TollnerRussia2026-06-24Chemel, James L Cpa QUALIFIED34Anna Fali
1009Maisha O WhobreyBrazil2026-06-30Commercial Press PROPOSAL76Ioni Bowcher
1010Antonio R KolmetzCanada2026-06-12Printing Dimensions RENEWAL74Asiya Javayant
1011Juan N CampainUnited Kingdom2026-06-29King, Christopher A Esq UNQUALIFIED17Ivan Magalhaes
1012Murillo L RulapaughCanada2026-06-10Rangoni Of Florence PROPOSAL49Ivan Magalhaes
1013Mujtaba X RutaAustralia2026-06-25Morlong Associates NEW68Asiya Javayant
1014Antonio Z MaletGermany2026-06-20Dorl, James J Esq NEGOTIATION56Anna Fali
1015Francesco Q KuskoFrance2026-06-13Dorl, James J Esq UNQUALIFIED80Stephen Shaw
1016Johnson X DarakjyCanada2026-06-06Rangoni Of Florence PROPOSAL40Xuxue Feng
1017Leja G StockhamArgentina2026-06-09Chemel, James L Cpa NEGOTIATION51Ioni Bowcher
1018Smith W GauchoSpain2026-06-05Rousseaux, Michael Esq UNQUALIFIED7Asiya Javayant
1019Arvin M ButtUnited Kingdom2026-06-16Feltz Printing Service UNQUALIFIED72Xuxue Feng
1020Antonio V IturbideArgentina2026-06-27Rangoni Of Florence QUALIFIED90Amy Elsner
1021Jones L SchemmerArgentina2026-06-21Truhlar And Truhlar Attys NEW21Bernardo Dominic
1022Faith P FollerUnited Kingdom2026-06-24Chanay, Jeffrey A Esq QUALIFIED71Ioni Bowcher
1023Julie W ButtUnited Kingdom2026-06-21Chanay, Jeffrey A Esq QUALIFIED18Anna Fali
1024Darci Z PerinBrazil2026-06-22Rangoni Of Florence UNQUALIFIED35Amy Elsner
1025Ivar D GlickIndia2026-06-08King, Christopher A Esq PROPOSAL17Stephen Shaw
1026Leon R RulapaughCanada2026-06-05Morlong Associates NEW58Asiya Javayant
1027Salvatore M FigeroaGermany2026-06-13Dorl, James J Esq QUALIFIED8Ivan Magalhaes
1028Jefferson A RimJapan2026-06-07Printing Dimensions UNQUALIFIED0Onyama Limba
1029Isabel S RimGermany2026-06-08Chemel, James L Cpa RENEWAL22Ioni Bowcher
1030Emily Z DarakjyItaly2026-06-25Feltz Printing Service PROPOSAL63Stephen Shaw
1031Murillo Z DarakjyJapan2026-06-15Morlong Associates RENEWAL20Xuxue Feng
1032Morrow J WaycottCanada2026-06-21Dorl, James J Esq RENEWAL56Elwin Sharvill
1033Cody R FigeroaFrance2026-06-11Chemel, James L Cpa NEGOTIATION9Stephen Shaw
1034Sinclair Y MaletJapan2026-06-21Rangoni Of Florence NEW45Amy Elsner
1035Aika O SergiGermany2026-06-24Chemel, James L Cpa NEW61Onyama Limba
1036Kaitlin F MaletIndia2026-06-26Morlong Associates NEGOTIATION12Stephen Shaw
1037Smith Z SchemmerJapan2026-06-20Chanay, Jeffrey A Esq NEW11Ivan Magalhaes
1038Adams J FerenczAustralia2026-06-25Morlong Associates PROPOSAL1Stephen Shaw
1039Claire E WhobreyJapan2026-06-16Commercial Press PROPOSAL1Elwin Sharvill
1040Ashley K GarufiCanada2026-06-10Feltz Printing Service PROPOSAL11Elwin Sharvill
1041Aruna J InouyeRussia2026-06-22Feltz Printing Service QUALIFIED24Xuxue Feng
1042Nicolas G NestleArgentina2026-06-11King, Christopher A Esq PROPOSAL59Onyama Limba
1043Faith P ButtSpain2026-06-25Feiner Bros PROPOSAL33Xuxue Feng
1044Salvatore F AlbaresItaly2026-06-13Chapman, Ross E Esq PROPOSAL5Onyama Limba
1045Jones B ChuiBrazil2026-06-17Dorl, James J Esq NEGOTIATION18Xuxue Feng
1046Deepesh V PoquetteAustralia2026-07-02Printing Dimensions QUALIFIED67Bernardo Dominic
1047Maisha O SergiAustralia2026-06-19Dorl, James J Esq NEW77Xuxue Feng
1048Jennifer K NickaArgentina2026-06-13Buckley Miller Wright PROPOSAL57Anna Fali
1049Johnson X CaudyRussia2026-06-28Commercial Press NEGOTIATION9Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Isabel S FollerJapanAnna Fali NEGOTIATION
Antonio Q BriddickCanadaOnyama Limba PROPOSAL
Ashley Y MaletAustraliaAsiya Javayant UNQUALIFIED
Emily V NestleRussiaIvan Magalhaes QUALIFIED
Smith T SlusarskiBrazilAmy Elsner PROPOSAL
Nicolas Z BriddickAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin M SchemmerJapanElwin Sharvill RENEWAL
Maisha N MacleadArgentinaAmy Elsner QUALIFIED
Mujtaba N BologniaItalyIvan Magalhaes NEGOTIATION
Maria L ButtBrazilIvan Magalhaes NEW
Chavez I KuskoAustraliaAnna Fali UNQUALIFIED
Julie U BriddickIndiaBernardo Dominic UNQUALIFIED
Aditya R AmigonBrazilAmy Elsner NEW
Ricardo N MacleadArgentinaXuxue Feng PROPOSAL
Izzy C DoeSpainIoni Bowcher PROPOSAL
Jennifer U WaycottUnited KingdomIvan Magalhaes UNQUALIFIED
Leon I RoysterSpainElwin Sharvill NEW
Leon T GauchoSpainOnyama Limba RENEWAL
Claire G GlickSpainAnna Fali UNQUALIFIED
Nicolas S AmigonJapanOnyama Limba UNQUALIFIED
Antonio A IturbideIndiaAsiya Javayant NEGOTIATION
Murillo F SergiFranceElwin Sharvill RENEWAL
Morrow O NestleItalyAnna Fali NEW
Antonio K KolmetzJapanAmy Elsner RENEWAL
Francesco P RutaIndiaBernardo Dominic RENEWAL
Cody J SchemmerAustraliaAmy Elsner NEW
Rodrigues P TollnerUnited KingdomAsiya Javayant QUALIFIED
Salvatore V SergiGermanyAsiya Javayant UNQUALIFIED
Wickens W WieserFranceAnna Fali RENEWAL
Misaki X VocelkaFranceOnyama Limba QUALIFIED
Chavez O KolmetzGermanyStephen Shaw PROPOSAL
Kadeem U MaletRussiaIoni Bowcher QUALIFIED
Mujtaba P RulapaughIndiaXuxue Feng RENEWAL
Francesco P ButtIndiaStephen Shaw PROPOSAL
Alejandro F MorascaGermanyAsiya Javayant PROPOSAL
Misaki E AmigonFranceIvan Magalhaes UNQUALIFIED
Mujtaba L SergiCanadaAnna Fali PROPOSAL
Leon V DoeFranceIvan Magalhaes NEGOTIATION
Jennifer E GauchoFranceElwin Sharvill NEW
Stacey A GarufiSpainAnna Fali QUALIFIED
Kadeem E StensethArgentinaIvan Magalhaes PROPOSAL
Salvatore H OldroydCanadaStephen Shaw RENEWAL
Greenwood N MaletUnited KingdomXuxue Feng PROPOSAL
Darci Q GlickBrazilOnyama Limba UNQUALIFIED
Johnson Q VenereRussiaBernardo Dominic RENEWAL
Silvio V AlbaresAustraliaIvan Magalhaes NEW
Izzy B FerenczArgentinaAnna Fali NEW
Francesco B DarakjySpainAsiya Javayant RENEWAL
Silvio Q FlosiUnited KingdomIvan Magalhaes NEGOTIATION
Salvatore L SaylorsUnited KingdomAnna Fali NEGOTIATION
Frozen Columns
Name
Julie E Maclead
Ricardo I Rulapaugh
Julie G Kusko
Claire Z Maclead
Arvin N Malet
Arvin I Caudy
Tony F Whobrey
Salvatore F Darakjy
Misaki S Malet
Maisha M Gaucho
Chavez X Schemmer
Wickens A Marrier
Cody Q Ferencz
Francesco N Malet
Claire Z Rulapaugh
Antonio H Flosi
Clifford Z Malet
Emily E Whobrey
Leon K Garufi
Murillo J Shinko
Mujtaba E Briddick
Maisha C Perin
Francesco L Ostrosky
Isabel V Ostrosky
Aika G Inouye
Aditya E Bowley
Antonio N Flosi
Misaki Q Figeroa
Maisha C Foller
Cody Y Garufi
Ashley X Figeroa
Arvin T Flosi
Mujtaba D Waycott
Tony U Ostrosky
Deepesh A Rim
Juan Q Briddick
Tony U Stockham
Claire T Bolognia
Kaitlin A Stockham
Stacey R Ferencz
Alejandro R Waycott
Francesco Z Foller
David C Foller
Rodrigues A Stenseth
Ashley M Glick
Tony D Morasca
Kadeem V Vocelka
Izzy Q Perin
Silvio N Garufi
Jones Y Stockham
IdCountryDate
1000United Kingdom2026-06-09
1001Canada2026-06-07
1002Australia2026-06-15
1003Italy2026-07-03
1004Russia2026-06-13
1005India2026-06-14
1006Canada2026-06-18
1007Australia2026-06-30
1008Japan2026-06-09
1009Canada2026-07-02
1010Argentina2026-06-08
1011France2026-06-24
1012Germany2026-06-25
1013Australia2026-06-17
1014Canada2026-06-10
1015Australia2026-06-27
1016Spain2026-06-14
1017Russia2026-06-13
1018Japan2026-06-11
1019Australia2026-06-17
1020Japan2026-06-17
1021Spain2026-06-24
1022Australia2026-06-14
1023Australia2026-06-17
1024India2026-07-02
1025Canada2026-06-05
1026Italy2026-06-14
1027Spain2026-06-08
1028Canada2026-06-10
1029Russia2026-06-20
1030Italy2026-06-13
1031France2026-06-12
1032Spain2026-06-09
1033Russia2026-07-03
1034India2026-06-22
1035Brazil2026-07-04
1036Russia2026-06-23
1037Germany2026-06-24
1038India2026-07-04
1039Germany2026-06-16
1040Italy2026-06-19
1041Spain2026-06-15
1042Russia2026-06-24
1043Germany2026-06-14
1044Japan2026-06-24
1045Canada2026-07-03
1046Australia2026-06-27
1047Japan2026-07-01
1048Australia2026-06-27
1049France2026-06-23

On-Demand Data

NameIdCountryDate
Alejandro C Rulapaugh1000Spain2026-06-16
Arvin M Gaucho1001Spain2026-06-18
Smith R Maclead1002Italy2026-07-02
Smith O Poquette1003Argentina2026-06-24
Nicolas U Ferencz1004United Kingdom2026-06-17
Darci T Nestle1005Germany2026-07-01
Wickens Q Kolmetz1006India2026-06-21
Jones H Amigon1007Canada2026-06-13
Aditya E Iturbide1008United Kingdom2026-06-18
Chavez W Wieser1009India2026-06-27
Smith X Nicka1010Canada2026-07-04
Sinclair D Waycott1011Germany2026-06-12
Sinclair B Malet1012United Kingdom2026-07-02
Johnson V Ostrosky1013Brazil2026-06-17
Jones V Stockham1014Russia2026-06-21
Tony M Venere1015Brazil2026-06-28
Clifford B Bowley1016United Kingdom2026-07-03
Salvatore O Rim1017India2026-06-28
Murillo P Campain1018Canada2026-06-22
Costa O Morasca1019Australia2026-06-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues N OldroydSpainAnna Fali RENEWAL
Leon A FigeroaIndiaBernardo Dominic PROPOSAL
Darci V MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Faith J FigeroaItalyXuxue Feng RENEWAL
Jones I KolmetzArgentinaOnyama Limba NEW
Arvin M InouyeAustraliaIoni Bowcher PROPOSAL
Kaitlin A TollnerBrazilXuxue Feng RENEWAL
Morrow R RimAustraliaIvan Magalhaes QUALIFIED
Maria Y StockhamAustraliaAmy Elsner PROPOSAL
Alejandro B ShinkoJapanStephen Shaw RENEWAL
Cody G MaletSpainIoni Bowcher UNQUALIFIED
Stacey J AlbaresJapanOnyama Limba NEW
Rodrigues V VocelkaGermanyXuxue Feng UNQUALIFIED
Francesco O MaletRussiaElwin Sharvill QUALIFIED
Isabel G RulapaughRussiaAmy Elsner NEW
Alejandro S CaldareraSpainXuxue Feng RENEWAL
Jennifer Q StockhamIndiaIoni Bowcher NEW
Antonio C WaycottAustraliaIvan Magalhaes RENEWAL
Cody E FollerBrazilElwin Sharvill QUALIFIED
Kadeem E CaudyCanadaStephen Shaw NEW
Morrow U InouyeUnited KingdomAmy Elsner PROPOSAL
Alejandro G SlusarskiSpainOnyama Limba NEW
Wickens Q KolmetzCanadaIvan Magalhaes PROPOSAL
Greenwood B BriddickSpainAsiya Javayant NEW
Stacey A ButtAustraliaBernardo Dominic RENEWAL
Costa Z StensethJapanAsiya Javayant NEW
Leon G NestleArgentinaIoni Bowcher UNQUALIFIED
Jones M IturbideJapanIoni Bowcher RENEWAL
Mayumi G SlusarskiAustraliaElwin Sharvill RENEWAL
Rodrigues F RoysterSpainIoni Bowcher RENEWAL
Jefferson W FollerGermanyAsiya Javayant QUALIFIED
Nicolas V GillianCanadaBernardo Dominic NEW
Johnson C RoysterIndiaIvan Magalhaes RENEWAL
Stacey V PaprockiSpainAsiya Javayant RENEWAL
Antonio R FerenczBrazilAmy Elsner NEGOTIATION
Salvatore G OldroydItalyOnyama Limba UNQUALIFIED
Ricardo Y GlickGermanyAnna Fali QUALIFIED
Isabel J VenereRussiaAsiya Javayant NEGOTIATION
Emily J AmigonRussiaXuxue Feng QUALIFIED
David U ShinkoRussiaXuxue Feng QUALIFIED

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