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
James U WaycottArgentinaAmy Elsner NEW
Octavia N PaprockiGermanyElwin Sharvill PROPOSAL
Antonio J OldroydItalyStephen Shaw NEGOTIATION
Izzy J NickaIndiaXuxue Feng PROPOSAL
Munro W AlbaresItalyOnyama Limba UNQUALIFIED
Greenwood T CaldareraCanadaIoni Bowcher QUALIFIED
Jones Z RoysterItalyAsiya Javayant RENEWAL
Clifford R GillianFranceBernardo Dominic NEW
Smith K NestleIndiaXuxue Feng PROPOSAL
Jefferson O DarakjyGermanyAnna Fali NEW
Morrow C IturbideAustraliaAsiya Javayant UNQUALIFIED
Smith L PaprockiUnited KingdomElwin Sharvill UNQUALIFIED
Antonio M MacleadIndiaElwin Sharvill NEW
Sinclair P DilliardGermanyXuxue Feng NEW
Julie H GlickRussiaIvan Magalhaes NEGOTIATION
Isabel D FlosiRussiaOnyama Limba QUALIFIED
Maisha Y KuskoIndiaAsiya Javayant PROPOSAL
Mayumi V MaletBrazilXuxue Feng NEW
Kaitlin F PerinGermanyAnna Fali UNQUALIFIED
Claire E DoeCanadaStephen Shaw NEGOTIATION
Mayumi J ChuiBrazilAnna Fali NEW
Ricardo Q StockhamSpainIvan Magalhaes UNQUALIFIED
Wickens C PoquetteRussiaXuxue Feng UNQUALIFIED
Sinclair H PerinBrazilIoni Bowcher RENEWAL
Tony Y DoeBrazilElwin Sharvill QUALIFIED
Jones P MarrierRussiaAsiya Javayant UNQUALIFIED
Aditya V FigeroaUnited KingdomBernardo Dominic NEW
Aika Z ShinkoGermanyBernardo Dominic QUALIFIED
Antonio N StensethUnited KingdomIoni Bowcher PROPOSAL
Isabel K RimJapanElwin Sharvill NEW
Mujtaba L SaylorsItalyOnyama Limba PROPOSAL
Kadeem B BriddickGermanyStephen Shaw RENEWAL
Kaitlin F MacleadJapanAmy Elsner NEW
Izzy Z CampainGermanyStephen Shaw NEGOTIATION
Greenwood P DilliardAustraliaAsiya Javayant NEGOTIATION
Juan X WhobreyCanadaStephen Shaw RENEWAL
James V SlusarskiUnited KingdomAnna Fali RENEWAL
Antonio C CampainFranceAsiya Javayant NEW
Kaitlin C GauchoSpainElwin Sharvill QUALIFIED
Antonio J FlosiArgentinaOnyama Limba PROPOSAL
Aika F GlickSpainOnyama Limba NEW
Greenwood U DilliardArgentinaAsiya Javayant PROPOSAL
Maisha H MorascaJapanBernardo Dominic NEGOTIATION
Alejandro L OldroydArgentinaIoni Bowcher RENEWAL
Clifford E AlbaresIndiaIvan Magalhaes PROPOSAL
Salvatore S VocelkaRussiaElwin Sharvill NEGOTIATION
Chavez Y AlbaresIndiaIvan Magalhaes QUALIFIED
Silvio B PaprockiBrazilBernardo Dominic UNQUALIFIED
Salvatore C RutaIndiaStephen Shaw QUALIFIED
Munro S WieserAustraliaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leja N PerinCanadaXuxue Feng NEW
Alejandro X IturbideFranceOnyama Limba RENEWAL
Jennifer Z RimFranceIvan Magalhaes RENEWAL
Misaki A MarrierAustraliaOnyama Limba NEGOTIATION
Jennifer D MaletRussiaAsiya Javayant RENEWAL
Maisha Y FollerSpainXuxue Feng QUALIFIED
Leja L PoquetteFranceOnyama Limba UNQUALIFIED
Johnson P TollnerGermanyBernardo Dominic UNQUALIFIED
Murillo A OldroydIndiaBernardo Dominic NEW
Stacey W RoysterBrazilIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy G VocelkaRussia2024-06-02Chemel, James L Cpa PROPOSAL63Asiya Javayant
1001Kadeem X MorascaGermany2024-06-04Dorl, James J Esq NEGOTIATION32Amy Elsner
1002Jennifer G BowleyJapan2024-06-16Chanay, Jeffrey A Esq RENEWAL89Anna Fali
1003Adams W SaylorsItaly2024-06-17Chanay, Jeffrey A Esq NEGOTIATION10Stephen Shaw
1004Ivar C FigeroaFrance2024-06-01Rangoni Of Florence QUALIFIED89Stephen Shaw
1005Salvatore A VenereFrance2024-05-27Benton, John B Jr QUALIFIED41Ioni Bowcher
1006Julie F SaylorsItaly2024-06-05Truhlar And Truhlar Attys PROPOSAL7Stephen Shaw
1007Mayumi C GarufiSpain2024-06-16King, Christopher A Esq NEGOTIATION52Ivan Magalhaes
1008Jeanfrancois J MarrierAustralia2024-06-16Commercial Press UNQUALIFIED29Bernardo Dominic
1009James K MacleadBrazil2024-06-20Rousseaux, Michael Esq RENEWAL87Amy Elsner
1010Kadeem Z InouyeJapan2024-05-31Feiner Bros UNQUALIFIED54Stephen Shaw
1011Emily W AmigonUnited Kingdom2024-06-13Rousseaux, Michael Esq RENEWAL69Elwin Sharvill
1012Wickens R BowleyGermany2024-05-26Buckley Miller Wright PROPOSAL23Amy Elsner
1013Mayumi M CaudyAustralia2024-06-03Rangoni Of Florence NEW0Ioni Bowcher
1014Faith L DarakjyBrazil2024-06-21Morlong Associates PROPOSAL14Onyama Limba
1015Sinclair A WieserAustralia2024-06-20Chapman, Ross E Esq RENEWAL79Asiya Javayant
1016Arvin X NickaCanada2024-06-17Chemel, James L Cpa NEW3Bernardo Dominic
1017Leon L DoeArgentina2024-06-09Rousseaux, Michael Esq QUALIFIED3Ivan Magalhaes
1018Murillo Y BowleyJapan2024-06-10Benton, John B Jr QUALIFIED93Ioni Bowcher
1019Adams B RutaIndia2024-06-10Feltz Printing Service NEW88Asiya Javayant
1020Kaitlin T WieserAustralia2024-06-20Chapman, Ross E Esq QUALIFIED34Onyama Limba
1021Adams J MarrierIndia2024-05-25Chemel, James L Cpa QUALIFIED4Asiya Javayant
1022Murillo K RimAustralia2024-06-18Rangoni Of Florence QUALIFIED64Bernardo Dominic
1023Tony Z InouyeBrazil2024-05-24Buckley Miller Wright UNQUALIFIED43Bernardo Dominic
1024Jeanfrancois P DoeItaly2024-06-18Dorl, James J Esq NEW57Ioni Bowcher
1025Arvin G GarufiIndia2024-06-18Feiner Bros NEW40Ioni Bowcher
1026Deepesh W CaldareraSpain2024-05-28Feiner Bros RENEWAL76Bernardo Dominic
1027Faith X MorascaFrance2024-06-19Benton, John B Jr NEGOTIATION59Stephen Shaw
1028Salvatore S ButtCanada2024-06-21Chanay, Jeffrey A Esq PROPOSAL70Amy Elsner
1029Clifford Z CampainCanada2024-06-16Rousseaux, Michael Esq NEGOTIATION37Xuxue Feng
1030Mayumi D IturbideItaly2024-05-31Buckley Miller Wright PROPOSAL8Onyama Limba
1031Ivar S SchemmerFrance2024-06-14Feltz Printing Service PROPOSAL15Amy Elsner
1032Rodrigues Z StensethSpain2024-06-11Rousseaux, Michael Esq RENEWAL50Ivan Magalhaes
1033Silvio U DoeCanada2024-06-05Commercial Press RENEWAL31Stephen Shaw
1034Chavez P PerinCanada2024-06-12Dorl, James J Esq NEW88Elwin Sharvill
1035Izzy S MaletGermany2024-06-16Chemel, James L Cpa UNQUALIFIED46Bernardo Dominic
1036Jones S StensethFrance2024-06-13Rangoni Of Florence NEGOTIATION10Bernardo Dominic
1037Cody A VenereFrance2024-06-02Feiner Bros NEW25Ioni Bowcher
1038Aika Z NickaGermany2024-06-10Commercial Press NEW54Asiya Javayant
1039Isabel O BowleyItaly2024-06-01Buckley Miller Wright PROPOSAL86Ivan Magalhaes
1040Misaki Y DilliardItaly2024-05-30Morlong Associates NEGOTIATION92Asiya Javayant
1041Deepesh C MarrierUnited Kingdom2024-06-14King, Christopher A Esq NEGOTIATION86Ivan Magalhaes
1042Greenwood U PerinFrance2024-06-01Printing Dimensions PROPOSAL81Xuxue Feng
1043Izzy D CaldareraUnited Kingdom2024-05-29Chapman, Ross E Esq QUALIFIED20Ivan Magalhaes
1044Munro F KuskoIndia2024-06-10Rangoni Of Florence NEW72Onyama Limba
1045Aruna S DoeAustralia2024-05-30Feiner Bros NEW89Amy Elsner
1046Tony O PaprockiIndia2024-05-28Printing Dimensions NEW46Ivan Magalhaes
1047Johnson O DilliardIndia2024-06-16Commercial Press RENEWAL14Stephen Shaw
1048Wickens V PerinArgentina2024-06-10Commercial Press QUALIFIED55Xuxue Feng
1049Aika V ButtRussia2024-06-18King, Christopher A Esq RENEWAL15Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
James Q TollnerArgentinaBernardo Dominic PROPOSAL
Alejandro B SlusarskiUnited KingdomAsiya Javayant NEW
Francesco V TollnerGermanyXuxue Feng RENEWAL
Johnson P GauchoUnited KingdomAnna Fali RENEWAL
Deepesh T StensethJapanIoni Bowcher RENEWAL
James V SergiAustraliaAsiya Javayant PROPOSAL
Costa R FlosiSpainIvan Magalhaes PROPOSAL
Kadeem X PoquetteGermanyOnyama Limba NEGOTIATION
Ivar O ButtFranceBernardo Dominic QUALIFIED
Cody Z MaletGermanyAmy Elsner NEGOTIATION
Nicolas H ButtJapanXuxue Feng NEGOTIATION
Mayumi Y RulapaughBrazilBernardo Dominic PROPOSAL
Nicolas J BriddickSpainIoni Bowcher QUALIFIED
Aika C KuskoAustraliaAmy Elsner NEW
Deepesh J CampainAustraliaAmy Elsner UNQUALIFIED
James W GillianGermanyElwin Sharvill NEW
Jones N SergiIndiaStephen Shaw NEW
Julie Z RimGermanyOnyama Limba UNQUALIFIED
Leon B SaylorsJapanXuxue Feng NEW
Arvin J GauchoCanadaIvan Magalhaes QUALIFIED
Smith H WhobreyItalyElwin Sharvill RENEWAL
Kaitlin D SchemmerBrazilOnyama Limba NEW
Izzy A RulapaughCanadaOnyama Limba NEW
Isabel R MorascaBrazilXuxue Feng NEGOTIATION
Johnson Y TollnerAustraliaIoni Bowcher NEGOTIATION
Emily M MaletCanadaStephen Shaw UNQUALIFIED
Munro O PoquetteCanadaStephen Shaw UNQUALIFIED
Adams X CampainIndiaStephen Shaw PROPOSAL
Maria Y VocelkaArgentinaBernardo Dominic NEW
Wickens Q VenereGermanyElwin Sharvill NEW
Faith C DoeBrazilXuxue Feng NEGOTIATION
Arvin D DarakjyJapanAmy Elsner RENEWAL
Adams K CaudySpainXuxue Feng QUALIFIED
Kaitlin M CampainIndiaAmy Elsner UNQUALIFIED
Tony J ShinkoItalyElwin Sharvill PROPOSAL
Jefferson K TollnerIndiaBernardo Dominic QUALIFIED
Wickens Z DilliardUnited KingdomStephen Shaw RENEWAL
Julie B FerenczFranceBernardo Dominic UNQUALIFIED
Jennifer M RimArgentinaAnna Fali NEGOTIATION
Silvio G BologniaArgentinaElwin Sharvill UNQUALIFIED
Nicolas U FlosiJapanAsiya Javayant NEW
Salvatore C VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Jones K AmigonFranceAnna Fali PROPOSAL
Tony R NickaItalyAnna Fali PROPOSAL
Greenwood K BriddickSpainStephen Shaw QUALIFIED
Faith I RoysterBrazilElwin Sharvill PROPOSAL
Tony C FollerItalyAsiya Javayant NEW
Mujtaba P RimUnited KingdomAmy Elsner NEW
Jones E VocelkaArgentinaElwin Sharvill PROPOSAL
Ashley G TollnerJapanAsiya Javayant NEGOTIATION
Frozen Columns
Name
Aruna U Saylors
Aruna X Oldroyd
Kaitlin V Ostrosky
Kadeem H Waycott
Octavia E Whobrey
Costa P Oldroyd
Greenwood D Bowley
Costa G Malet
Tony Y Butt
Johnson M Ruta
Munro E Slusarski
Julie I Malet
Ricardo X Briddick
Ashley P Malet
Wickens M Poquette
Emily V Doe
Silvio X Wieser
Jeanfrancois I Stockham
Cody Z Malet
Tony Q Amigon
Aika J Butt
Jones O Stockham
James D Morasca
Stacey M Doe
Jefferson U Ruta
David C Malet
Tony Z Bolognia
Silvio L Vocelka
Cody H Doe
Tony O Garufi
Murillo C Gaucho
Tony A Flosi
Chavez J Morasca
Ashley F Garufi
Sinclair T Kolmetz
Alejandro D Ruta
Juan X Briddick
Silvio Q Waycott
Adams S Whobrey
Maria Y Kolmetz
Cody U Waycott
Emily T Ostrosky
Darci P Slusarski
Sinclair Y Gaucho
Leja B Malet
Claire T Tollner
Jefferson R Figeroa
Antonio Q Glick
Munro R Kolmetz
Julie J Doe
IdCountryDate
1000Italy2024-05-26
1001Spain2024-06-08
1002Brazil2024-06-16
1003Russia2024-06-21
1004Australia2024-05-30
1005Italy2024-06-10
1006Spain2024-06-15
1007India2024-06-01
1008Canada2024-06-20
1009Canada2024-05-31
1010Italy2024-06-19
1011United Kingdom2024-06-17
1012India2024-05-31
1013India2024-05-31
1014Italy2024-06-10
1015Brazil2024-06-08
1016Italy2024-06-05
1017Italy2024-06-03
1018India2024-06-14
1019Japan2024-05-29
1020Australia2024-06-11
1021France2024-05-29
1022Argentina2024-05-30
1023United Kingdom2024-06-22
1024India2024-06-09
1025Australia2024-06-08
1026Argentina2024-05-30
1027Canada2024-06-12
1028Australia2024-06-17
1029France2024-06-12
1030Germany2024-05-26
1031France2024-06-15
1032Argentina2024-06-19
1033Germany2024-06-19
1034Italy2024-06-17
1035Argentina2024-06-01
1036United Kingdom2024-06-10
1037Italy2024-06-01
1038Canada2024-06-14
1039Germany2024-06-06
1040Brazil2024-06-06
1041Germany2024-06-03
1042India2024-06-16
1043Australia2024-06-01
1044Italy2024-06-02
1045Italy2024-06-15
1046France2024-06-06
1047Argentina2024-05-31
1048Argentina2024-06-20
1049Argentina2024-06-17

On-Demand Data

NameIdCountryDate
Isabel Q Malet1000France2024-06-06
Ashley M Schemmer1001Japan2024-05-27
Silvio N Nestle1002Canada2024-06-01
Jennifer G Albares1003Brazil2024-05-25
Alejandro G Stenseth1004France2024-06-04
Adams P Flosi1005Brazil2024-05-29
Costa B Bolognia1006Canada2024-06-10
David Z Garufi1007Australia2024-06-15
Adams V Caldarera1008Japan2024-06-02
Jeanfrancois D Glick1009Italy2024-06-17
Silvio X Butt1010Japan2024-06-17
Ivar K Inouye1011Germany2024-06-03
Stacey T Malet1012Australia2024-06-06
Isabel I Campain1013Germany2024-05-28
Morrow K Poquette1014Canada2024-05-30
Sinclair O Ruta1015Brazil2024-06-08
Stacey Q Malet1016Brazil2024-05-28
Leja G Bolognia1017United Kingdom2024-06-22
Munro F Foller1018Russia2024-06-04
Leon H Oldroyd1019India2024-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja R IturbideUnited KingdomOnyama Limba UNQUALIFIED
Darci E WaycottAustraliaBernardo Dominic UNQUALIFIED
Cody M VenereIndiaBernardo Dominic RENEWAL
Misaki E KuskoJapanIvan Magalhaes RENEWAL
Francesco R WhobreyIndiaIvan Magalhaes RENEWAL
Alejandro F BowleyFranceElwin Sharvill RENEWAL
Clifford P AmigonItalyAnna Fali QUALIFIED
Nicolas Y StensethRussiaAsiya Javayant NEGOTIATION
Costa M TollnerFranceStephen Shaw QUALIFIED
Julie D MorascaGermanyElwin Sharvill QUALIFIED
Kadeem Y OstroskyGermanyOnyama Limba UNQUALIFIED
Ivar U RutaRussiaIvan Magalhaes UNQUALIFIED
Smith H PoquetteItalyAnna Fali PROPOSAL
Juan B IturbideAustraliaStephen Shaw QUALIFIED
Johnson Q CampainIndiaIoni Bowcher RENEWAL
Leja F RutaAustraliaAsiya Javayant UNQUALIFIED
Emily R MorascaFranceStephen Shaw UNQUALIFIED
Izzy R RutaUnited KingdomAnna Fali NEGOTIATION
Izzy F OstroskyGermanyOnyama Limba NEGOTIATION
Leja D FlosiCanadaBernardo Dominic PROPOSAL
Octavia E OstroskyGermanyIvan Magalhaes PROPOSAL
Clifford G RimIndiaAnna Fali UNQUALIFIED
Darci F OstroskyUnited KingdomAmy Elsner QUALIFIED
Adams I GlickCanadaIoni Bowcher NEGOTIATION
Ivar M NestleFranceIoni Bowcher NEGOTIATION
David F FlosiJapanIoni Bowcher RENEWAL
Ashley E VenereAustraliaElwin Sharvill NEW
Aditya N VocelkaSpainXuxue Feng NEGOTIATION
David E MaletSpainAsiya Javayant RENEWAL
Smith R InouyeArgentinaAnna Fali UNQUALIFIED
Munro X VocelkaCanadaAnna Fali NEGOTIATION
Aika T FollerBrazilIoni Bowcher UNQUALIFIED
Francesco Y GlickArgentinaIoni Bowcher RENEWAL
Smith V FlosiArgentinaIoni Bowcher PROPOSAL
Ivar A GillianArgentinaBernardo Dominic NEW
Rodrigues Y StockhamSpainIoni Bowcher QUALIFIED
James V StockhamSpainIvan Magalhaes NEGOTIATION
Jefferson W WhobreyItalyIvan Magalhaes NEW
Octavia K CaudyAustraliaElwin Sharvill NEGOTIATION
Kaitlin L TollnerItalyBernardo Dominic NEW

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