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
Adams W PerinRussiaElwin Sharvill NEGOTIATION
Aika W CaudySpainBernardo Dominic NEW
Ashley A NestleAustraliaIvan Magalhaes RENEWAL
Mujtaba O CampainAustraliaIoni Bowcher NEW
Salvatore T OstroskyFranceXuxue Feng QUALIFIED
Octavia K AmigonJapanXuxue Feng RENEWAL
Aika N RoysterArgentinaAmy Elsner QUALIFIED
Wickens K IturbideJapanAnna Fali UNQUALIFIED
Jeanfrancois J MaletJapanIoni Bowcher UNQUALIFIED
Julie P StockhamBrazilAsiya Javayant PROPOSAL
Jones U FlosiBrazilOnyama Limba UNQUALIFIED
Darci G RoysterSpainElwin Sharvill QUALIFIED
Jennifer N FollerIndiaAnna Fali RENEWAL
Leon R StockhamRussiaAnna Fali PROPOSAL
Greenwood H FerenczBrazilAsiya Javayant UNQUALIFIED
Salvatore B MorascaArgentinaBernardo Dominic RENEWAL
Arvin T MarrierFranceElwin Sharvill PROPOSAL
Aditya X DarakjyIndiaAsiya Javayant UNQUALIFIED
Mujtaba J SergiJapanXuxue Feng NEW
Rodrigues T RoysterGermanyAsiya Javayant UNQUALIFIED
James X CampainIndiaOnyama Limba UNQUALIFIED
Chavez K KolmetzJapanIoni Bowcher QUALIFIED
Alejandro A KolmetzRussiaIvan Magalhaes NEGOTIATION
Nicolas X SaylorsUnited KingdomXuxue Feng PROPOSAL
James K PaprockiRussiaOnyama Limba NEW
Octavia V OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
David C BologniaFranceXuxue Feng PROPOSAL
Morrow R WhobreyArgentinaAsiya Javayant UNQUALIFIED
Aruna P GarufiCanadaBernardo Dominic UNQUALIFIED
Maisha Z NickaRussiaAsiya Javayant UNQUALIFIED
Smith C RoysterJapanIoni Bowcher QUALIFIED
David T WieserCanadaAsiya Javayant PROPOSAL
Octavia I PaprockiArgentinaStephen Shaw RENEWAL
Aruna A MaletUnited KingdomElwin Sharvill NEW
Johnson A VenereItalyAsiya Javayant RENEWAL
Leon G AlbaresArgentinaElwin Sharvill NEW
Juan Q RoysterArgentinaOnyama Limba NEW
Jeanfrancois Q NestleUnited KingdomAnna Fali RENEWAL
Jones D FollerArgentinaIvan Magalhaes NEW
Ricardo Z SlusarskiFranceElwin Sharvill UNQUALIFIED
Octavia S SlusarskiAustraliaStephen Shaw NEGOTIATION
Alejandro C SchemmerBrazilXuxue Feng PROPOSAL
Maisha L OldroydAustraliaIvan Magalhaes NEW
Mujtaba X AlbaresJapanStephen Shaw PROPOSAL
Rodrigues J KolmetzGermanyStephen Shaw QUALIFIED
Aika D StockhamCanadaXuxue Feng UNQUALIFIED
Jennifer L GlickFranceAmy Elsner PROPOSAL
Jennifer T MorascaFranceAnna Fali RENEWAL
Chavez L RoysterAustraliaStephen Shaw NEW
Julie A SergiItalyBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams J AlbaresJapanStephen Shaw QUALIFIED
Nicolas Z WhobreyRussiaElwin Sharvill QUALIFIED
Silvio D RimJapanXuxue Feng RENEWAL
Leja E FigeroaRussiaElwin Sharvill RENEWAL
Antonio Y SergiAustraliaIvan Magalhaes NEW
Clifford U ButtBrazilXuxue Feng PROPOSAL
Maisha T FigeroaIndiaOnyama Limba RENEWAL
Wickens F OldroydJapanStephen Shaw NEGOTIATION
Julie T RimItalyIoni Bowcher QUALIFIED
Kadeem E AlbaresArgentinaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem P PaprockiCanada2026-07-13Feiner Bros NEGOTIATION91Asiya Javayant
1001Chavez T MaletJapan2026-07-18Rousseaux, Michael Esq PROPOSAL24Xuxue Feng
1002Isabel P BriddickGermany2026-07-27Dorl, James J Esq NEW84Bernardo Dominic
1003James Z MarrierSpain2026-07-30Chapman, Ross E Esq RENEWAL44Amy Elsner
1004Nicolas A MaletBrazil2026-07-30Chapman, Ross E Esq NEW12Anna Fali
1005Maisha G BriddickBrazil2026-07-30Feltz Printing Service PROPOSAL28Ioni Bowcher
1006Ivar G SaylorsCanada2026-07-19Chanay, Jeffrey A Esq NEGOTIATION45Onyama Limba
1007Aika Q NickaFrance2026-07-13Truhlar And Truhlar Attys PROPOSAL15Xuxue Feng
1008Greenwood K DilliardArgentina2026-07-12Rousseaux, Michael Esq UNQUALIFIED7Anna Fali
1009Antonio D CaldareraRussia2026-08-01Chanay, Jeffrey A Esq UNQUALIFIED21Onyama Limba
1010Cody S MaletJapan2026-08-03Rousseaux, Michael Esq PROPOSAL52Anna Fali
1011Mujtaba I ChuiFrance2026-08-07King, Christopher A Esq UNQUALIFIED47Ivan Magalhaes
1012Francesco L OldroydFrance2026-07-18Morlong Associates NEGOTIATION39Ivan Magalhaes
1013Octavia R DarakjyCanada2026-07-13Benton, John B Jr PROPOSAL81Asiya Javayant
1014Jeanfrancois O MacleadBrazil2026-07-24Feiner Bros UNQUALIFIED36Bernardo Dominic
1015Emily Q ShinkoRussia2026-08-03Feiner Bros RENEWAL82Onyama Limba
1016Octavia S ShinkoIndia2026-08-04Rangoni Of Florence UNQUALIFIED61Anna Fali
1017Darci L VocelkaRussia2026-08-01Truhlar And Truhlar Attys NEW52Elwin Sharvill
1018Ivar M IturbideIndia2026-07-31Commercial Press NEGOTIATION75Ivan Magalhaes
1019Jones N WaycottJapan2026-07-14Printing Dimensions NEW1Ioni Bowcher
1020Darci B BologniaFrance2026-08-02Commercial Press NEGOTIATION36Stephen Shaw
1021Misaki G DoeGermany2026-07-18Benton, John B Jr QUALIFIED39Ivan Magalhaes
1022Adams V IturbideArgentina2026-08-06Printing Dimensions UNQUALIFIED94Xuxue Feng
1023Rodrigues W StensethBrazil2026-07-16Feltz Printing Service UNQUALIFIED79Elwin Sharvill
1024Adams P KolmetzFrance2026-07-23Dorl, James J Esq NEGOTIATION79Bernardo Dominic
1025Aruna V RutaSpain2026-07-11Rangoni Of Florence PROPOSAL74Ivan Magalhaes
1026Deepesh Z AlbaresRussia2026-07-19Buckley Miller Wright PROPOSAL76Xuxue Feng
1027Aruna W RimBrazil2026-07-15Rousseaux, Michael Esq UNQUALIFIED49Onyama Limba
1028Sinclair X DoeSpain2026-07-31Commercial Press NEW60Onyama Limba
1029Claire S CampainFrance2026-07-31Morlong Associates NEGOTIATION51Ioni Bowcher
1030Misaki G OstroskyAustralia2026-07-17Truhlar And Truhlar Attys UNQUALIFIED15Asiya Javayant
1031Darci H PerinItaly2026-07-26Commercial Press NEW30Stephen Shaw
1032Aika W ShinkoItaly2026-07-14Benton, John B Jr QUALIFIED62Bernardo Dominic
1033Darci N AmigonCanada2026-08-06Chemel, James L Cpa PROPOSAL45Xuxue Feng
1034Izzy E MaletItaly2026-07-28Commercial Press PROPOSAL72Elwin Sharvill
1035Rodrigues R DoeAustralia2026-07-28Chemel, James L Cpa UNQUALIFIED7Elwin Sharvill
1036David F OstroskyUnited Kingdom2026-08-05King, Christopher A Esq QUALIFIED37Xuxue Feng
1037Misaki V StockhamAustralia2026-07-22Commercial Press NEW45Ivan Magalhaes
1038Juan V NestleSpain2026-08-08Morlong Associates NEGOTIATION50Xuxue Feng
1039Chavez H SlusarskiCanada2026-08-01Buckley Miller Wright RENEWAL11Anna Fali
1040Antonio G ButtUnited Kingdom2026-07-16Chapman, Ross E Esq UNQUALIFIED56Onyama Limba
1041Deepesh U StensethIndia2026-08-07Rangoni Of Florence NEW47Ioni Bowcher
1042Rodrigues M OldroydRussia2026-08-06Morlong Associates NEGOTIATION55Onyama Limba
1043Cody W PaprockiItaly2026-07-20Morlong Associates UNQUALIFIED34Anna Fali
1044Aruna W NickaGermany2026-07-10Rousseaux, Michael Esq UNQUALIFIED59Anna Fali
1045Munro Y MacleadUnited Kingdom2026-07-13Chanay, Jeffrey A Esq UNQUALIFIED83Anna Fali
1046Aika E SlusarskiJapan2026-07-27King, Christopher A Esq PROPOSAL7Elwin Sharvill
1047Nicolas P PoquetteCanada2026-07-31Benton, John B Jr UNQUALIFIED63Bernardo Dominic
1048Misaki A RulapaughItaly2026-07-15Dorl, James J Esq RENEWAL77Onyama Limba
1049Ivar Z DoeArgentina2026-07-28Morlong Associates NEW59Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Morrow B ShinkoBrazilAmy Elsner UNQUALIFIED
Maria T StensethItalyStephen Shaw UNQUALIFIED
Tony L CaudyAustraliaIoni Bowcher NEGOTIATION
Greenwood D CaldareraBrazilOnyama Limba QUALIFIED
Jones V CaudyCanadaAnna Fali RENEWAL
Tony X SaylorsAustraliaIvan Magalhaes QUALIFIED
Francesco J PerinIndiaBernardo Dominic NEW
Alejandro L CampainGermanyBernardo Dominic RENEWAL
Kadeem E DilliardGermanyAnna Fali QUALIFIED
Maisha A PerinAustraliaAsiya Javayant PROPOSAL
Morrow Q ButtCanadaIvan Magalhaes QUALIFIED
Darci M DoeFranceXuxue Feng NEGOTIATION
Maria F FlosiArgentinaElwin Sharvill QUALIFIED
Mujtaba C ButtFranceStephen Shaw RENEWAL
Greenwood E SaylorsCanadaElwin Sharvill RENEWAL
Misaki P FigeroaRussiaBernardo Dominic QUALIFIED
Aditya B RulapaughIndiaIoni Bowcher QUALIFIED
Jeanfrancois B PaprockiRussiaIvan Magalhaes QUALIFIED
Cody T KuskoCanadaBernardo Dominic NEW
Juan Y ButtCanadaBernardo Dominic PROPOSAL
Adams G AlbaresSpainElwin Sharvill PROPOSAL
Costa Y CaudyCanadaIoni Bowcher NEW
Johnson O GillianIndiaIoni Bowcher QUALIFIED
Jones F BologniaFranceIvan Magalhaes QUALIFIED
Costa D OldroydItalyBernardo Dominic UNQUALIFIED
Chavez X OldroydIndiaXuxue Feng UNQUALIFIED
Kadeem O OldroydCanadaAsiya Javayant RENEWAL
Kaitlin E ButtBrazilBernardo Dominic QUALIFIED
Mayumi R RoysterSpainIoni Bowcher PROPOSAL
Cody Z BowleySpainStephen Shaw UNQUALIFIED
Stacey F IturbideArgentinaElwin Sharvill PROPOSAL
Murillo S SaylorsFranceIvan Magalhaes PROPOSAL
Kaitlin A FlosiRussiaOnyama Limba NEGOTIATION
Ricardo B NickaIndiaXuxue Feng NEW
Mayumi N CampainJapanIvan Magalhaes NEGOTIATION
Rodrigues H CaudyItalyAsiya Javayant PROPOSAL
Arvin D OldroydCanadaOnyama Limba NEGOTIATION
Faith T MaletCanadaAsiya Javayant NEGOTIATION
Costa B CaudyJapanAsiya Javayant NEGOTIATION
Misaki H MorascaIndiaXuxue Feng NEW
Kaitlin X PerinFranceBernardo Dominic PROPOSAL
Costa Z PoquetteArgentinaElwin Sharvill UNQUALIFIED
Maria P GauchoArgentinaAmy Elsner QUALIFIED
Murillo Y RimItalyOnyama Limba PROPOSAL
Aika W FollerSpainAsiya Javayant NEW
Costa I IturbideItalyAmy Elsner PROPOSAL
Darci K GarufiFranceAsiya Javayant QUALIFIED
Clifford K MacleadCanadaElwin Sharvill QUALIFIED
Maisha I FerenczGermanyAsiya Javayant QUALIFIED
Francesco P SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
Frozen Columns
Name
Mayumi T Kusko
Greenwood P Stockham
Murillo M Nicka
Jennifer B Stenseth
Sinclair H Iturbide
Ricardo M Garufi
Sinclair S Campain
Silvio L Royster
Alejandro W Ostrosky
Sinclair A Morasca
Clifford X Stenseth
Ivar T Darakjy
Johnson A Slusarski
Misaki A Nicka
Morrow N Butt
Deepesh J Maclead
Costa H Stenseth
David R Iturbide
Leja Z Albares
Chavez M Darakjy
Aika J Malet
Cody R Marrier
Munro S Bowley
Clifford P Perin
Costa V Ruta
Morrow Y Albares
Deepesh S Figeroa
Octavia E Waycott
Deepesh Z Glick
Faith P Rulapaugh
Adams F Kusko
Salvatore W Iturbide
Kadeem C Venere
Julie M Garufi
Aditya U Flosi
Tony J Bowley
Ricardo C Marrier
Clifford M Bolognia
Emily C Kusko
Julie H Darakjy
Costa R Flosi
Leon L Rulapaugh
Faith K Poquette
Jones E Darakjy
Darci A Campain
Clifford B Paprocki
Cody B Briddick
James I Gillian
Kaitlin H Glick
Jennifer U Bolognia
IdCountryDate
1000Spain2026-07-18
1001India2026-07-22
1002Japan2026-08-04
1003Spain2026-07-31
1004France2026-08-03
1005India2026-07-21
1006Germany2026-07-11
1007United Kingdom2026-07-30
1008United Kingdom2026-07-14
1009India2026-07-28
1010France2026-07-17
1011Italy2026-07-27
1012Russia2026-07-17
1013Italy2026-07-25
1014Japan2026-08-06
1015Spain2026-07-24
1016Germany2026-07-25
1017Germany2026-07-21
1018Japan2026-07-26
1019France2026-08-05
1020United Kingdom2026-07-25
1021France2026-07-28
1022Italy2026-07-31
1023Spain2026-07-22
1024Brazil2026-07-21
1025Germany2026-08-07
1026Canada2026-07-21
1027Germany2026-07-22
1028Russia2026-08-03
1029Germany2026-07-13
1030Germany2026-07-12
1031Germany2026-07-18
1032Brazil2026-07-11
1033Japan2026-07-11
1034Russia2026-07-22
1035Spain2026-08-03
1036Germany2026-08-01
1037Brazil2026-07-27
1038Germany2026-07-31
1039Italy2026-07-11
1040Canada2026-07-17
1041Canada2026-08-07
1042United Kingdom2026-07-24
1043Russia2026-07-17
1044Canada2026-07-26
1045Brazil2026-08-04
1046Brazil2026-07-11
1047Australia2026-07-30
1048India2026-07-17
1049Italy2026-07-18

On-Demand Data

NameIdCountryDate
Ricardo F Ruta1000Brazil2026-07-12
Greenwood E Venere1001Brazil2026-07-11
Stacey F Gaucho1002India2026-07-28
Adams L Amigon1003Germany2026-07-18
Aruna Y Waycott1004Spain2026-07-28
Sinclair O Campain1005Germany2026-07-25
Aruna W Kolmetz1006Spain2026-08-04
David C Venere1007India2026-07-17
David J Foller1008India2026-08-08
Faith T Rim1009Japan2026-07-11
Julie Y Kusko1010Spain2026-08-03
Tony E Caldarera1011Germany2026-07-31
Rodrigues K Venere1012United Kingdom2026-07-22
Jennifer U Shinko1013Italy2026-07-21
Costa Q Rim1014Russia2026-07-31
Mayumi P Kusko1015Japan2026-08-02
Morrow Y Slusarski1016Russia2026-07-10
Octavia N Maclead1017Argentina2026-07-17
Johnson Z Nicka1018Spain2026-07-11
Munro O Sergi1019France2026-08-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore R CaldareraFranceAnna Fali PROPOSAL
Emily E FlosiSpainAsiya Javayant NEGOTIATION
Francesco X ChuiSpainAmy Elsner QUALIFIED
Leja Y KuskoCanadaAmy Elsner NEGOTIATION
Jones Q MarrierFranceAmy Elsner PROPOSAL
Cody V CampainItalyStephen Shaw NEGOTIATION
Clifford S BologniaGermanyIvan Magalhaes PROPOSAL
Aruna A ChuiAustraliaElwin Sharvill PROPOSAL
Mujtaba F PaprockiItalyOnyama Limba QUALIFIED
Octavia J RimRussiaAnna Fali NEW
Chavez G MaletItalyElwin Sharvill QUALIFIED
Mayumi F NickaIndiaIvan Magalhaes RENEWAL
Darci G DilliardUnited KingdomXuxue Feng RENEWAL
Aika R RulapaughSpainAmy Elsner NEGOTIATION
Stacey G FigeroaFranceBernardo Dominic PROPOSAL
Isabel B FlosiAustraliaAnna Fali RENEWAL
James A CaudyAustraliaAnna Fali UNQUALIFIED
Leja S ShinkoGermanyXuxue Feng RENEWAL
Aika P RulapaughGermanyIoni Bowcher NEGOTIATION
Nicolas Y TollnerItalyIoni Bowcher NEGOTIATION
Maria W OstroskyFranceAsiya Javayant UNQUALIFIED
Arvin Z InouyeItalyStephen Shaw RENEWAL
Cody N SaylorsGermanyXuxue Feng PROPOSAL
Greenwood M BowleyGermanyElwin Sharvill PROPOSAL
David Q MarrierFranceAsiya Javayant QUALIFIED
Jefferson Z WieserCanadaStephen Shaw NEW
Aruna T FollerCanadaIoni Bowcher NEW
Faith M CaldareraArgentinaStephen Shaw NEW
Misaki K ButtGermanyAmy Elsner NEW
Clifford J SergiUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro Q AlbaresJapanOnyama Limba NEGOTIATION
Smith E AlbaresItalyStephen Shaw UNQUALIFIED
Jefferson O ShinkoSpainBernardo Dominic QUALIFIED
Octavia M PoquetteSpainOnyama Limba NEGOTIATION
Faith C ChuiRussiaOnyama Limba UNQUALIFIED
James Z CaldareraCanadaIoni Bowcher PROPOSAL
Kadeem U WieserItalyXuxue Feng UNQUALIFIED
Jones R OstroskyRussiaElwin Sharvill QUALIFIED
Aruna L WaycottRussiaStephen Shaw NEGOTIATION
Aruna L RoysterIndiaAnna Fali PROPOSAL

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