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 A FlosiCanadaXuxue Feng NEGOTIATION
Sinclair B CampainUnited KingdomAsiya Javayant RENEWAL
Mayumi N CampainFranceBernardo Dominic NEGOTIATION
Wickens C BowleyAustraliaAsiya Javayant RENEWAL
Nicolas E CampainSpainIvan Magalhaes NEGOTIATION
Ivar P CaldareraFranceAmy Elsner QUALIFIED
Salvatore V RoysterUnited KingdomBernardo Dominic RENEWAL
Kadeem E IturbideUnited KingdomAmy Elsner RENEWAL
Munro U KuskoCanadaIvan Magalhaes UNQUALIFIED
Salvatore B NickaAustraliaOnyama Limba UNQUALIFIED
Sinclair D DoeAustraliaOnyama Limba PROPOSAL
Johnson J SergiCanadaAsiya Javayant PROPOSAL
Octavia Y VenereItalyXuxue Feng PROPOSAL
Ivar B VenereBrazilBernardo Dominic NEGOTIATION
Clifford K PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Aika S CampainRussiaOnyama Limba NEGOTIATION
Greenwood K PaprockiFranceIvan Magalhaes NEW
James E InouyeJapanAmy Elsner UNQUALIFIED
Octavia Y RutaAustraliaAsiya Javayant NEGOTIATION
Tony J VocelkaArgentinaAsiya Javayant RENEWAL
Aruna R ShinkoCanadaOnyama Limba RENEWAL
Ashley I RulapaughItalyXuxue Feng QUALIFIED
Aika R RoysterUnited KingdomElwin Sharvill NEGOTIATION
Munro Z FollerAustraliaXuxue Feng RENEWAL
Rodrigues U SlusarskiFranceOnyama Limba NEW
Tony T StensethUnited KingdomIoni Bowcher PROPOSAL
Nicolas X CaudyGermanyAsiya Javayant QUALIFIED
Rodrigues G PerinJapanAmy Elsner RENEWAL
Maria C ChuiCanadaAnna Fali NEGOTIATION
Munro U BriddickBrazilElwin Sharvill PROPOSAL
Sinclair E AlbaresAustraliaAnna Fali PROPOSAL
Murillo C GauchoUnited KingdomAmy Elsner NEW
Arvin Y BowleyCanadaXuxue Feng NEGOTIATION
James K GillianIndiaOnyama Limba PROPOSAL
Alejandro P NestleArgentinaAsiya Javayant UNQUALIFIED
Emily C GarufiGermanyBernardo Dominic NEW
Salvatore N AlbaresIndiaElwin Sharvill PROPOSAL
Ivar O IturbideItalyOnyama Limba NEGOTIATION
Clifford O MaletCanadaElwin Sharvill RENEWAL
Jeanfrancois N RoysterCanadaXuxue Feng NEW
Maisha V NickaCanadaIvan Magalhaes NEGOTIATION
Aruna T FerenczIndiaAmy Elsner QUALIFIED
Kadeem A PaprockiAustraliaIoni Bowcher RENEWAL
Stacey R RoysterFranceBernardo Dominic PROPOSAL
Maria C FlosiFranceXuxue Feng NEGOTIATION
Murillo H DoeGermanyBernardo Dominic NEW
Aditya N MorascaCanadaAnna Fali PROPOSAL
Jones D DoeIndiaIoni Bowcher RENEWAL
Sinclair I RoysterFranceIoni Bowcher PROPOSAL
Kaitlin W BowleyBrazilElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel F NestleSpainElwin Sharvill PROPOSAL
Claire V SaylorsAustraliaAmy Elsner NEGOTIATION
Greenwood R FerenczFranceStephen Shaw NEW
Maisha T RimJapanStephen Shaw PROPOSAL
Claire F SaylorsCanadaStephen Shaw PROPOSAL
Jefferson A ChuiFranceStephen Shaw UNQUALIFIED
Stacey P AmigonIndiaOnyama Limba QUALIFIED
Ricardo B FlosiItalyIvan Magalhaes NEW
Munro H RutaGermanyXuxue Feng UNQUALIFIED
Maisha T MarrierArgentinaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan A StockhamCanada2025-05-30King, Christopher A Esq UNQUALIFIED37Onyama Limba
1001Morrow Y GlickSpain2025-06-04King, Christopher A Esq UNQUALIFIED82Bernardo Dominic
1002Greenwood L ShinkoUnited Kingdom2025-06-05Printing Dimensions NEW44Xuxue Feng
1003Juan J RutaFrance2025-06-03Dorl, James J Esq UNQUALIFIED19Anna Fali
1004Ashley C FlosiBrazil2025-06-05Feltz Printing Service NEGOTIATION23Asiya Javayant
1005Chavez G PaprockiItaly2025-06-12Chemel, James L Cpa NEW55Elwin Sharvill
1006Octavia S FerenczItaly2025-06-05Dorl, James J Esq QUALIFIED59Onyama Limba
1007Francesco X PaprockiSpain2025-06-07Commercial Press RENEWAL8Stephen Shaw
1008Francesco Q OstroskySpain2025-05-20Rousseaux, Michael Esq NEGOTIATION34Anna Fali
1009Arvin V CaudyRussia2025-05-20Dorl, James J Esq PROPOSAL38Amy Elsner
1010Clifford U MorascaIndia2025-05-30Rousseaux, Michael Esq PROPOSAL71Xuxue Feng
1011Alejandro D AmigonRussia2025-05-29Rangoni Of Florence NEW91Asiya Javayant
1012Francesco V ShinkoCanada2025-06-09Buckley Miller Wright UNQUALIFIED6Stephen Shaw
1013Ricardo N MacleadFrance2025-06-08Feltz Printing Service NEGOTIATION94Amy Elsner
1014Munro P NickaIndia2025-05-30Chemel, James L Cpa RENEWAL16Xuxue Feng
1015Jefferson A GillianArgentina2025-06-11Feiner Bros QUALIFIED43Amy Elsner
1016Kadeem F BowleyJapan2025-06-13Rousseaux, Michael Esq QUALIFIED10Onyama Limba
1017Maisha W MaletBrazil2025-06-01Chapman, Ross E Esq PROPOSAL53Xuxue Feng
1018Tony K ButtArgentina2025-05-21King, Christopher A Esq UNQUALIFIED48Ioni Bowcher
1019Faith T ChuiRussia2025-06-13Truhlar And Truhlar Attys QUALIFIED36Asiya Javayant
1020Leon Y ShinkoFrance2025-06-07Chapman, Ross E Esq PROPOSAL95Onyama Limba
1021Izzy Y TollnerUnited Kingdom2025-06-03Truhlar And Truhlar Attys PROPOSAL32Asiya Javayant
1022Francesco D DarakjyUnited Kingdom2025-06-01Benton, John B Jr UNQUALIFIED66Amy Elsner
1023Francesco L StensethGermany2025-06-14Feltz Printing Service RENEWAL49Amy Elsner
1024Julie C IturbideRussia2025-05-24Feiner Bros NEGOTIATION51Amy Elsner
1025Ricardo E AlbaresJapan2025-06-10Feltz Printing Service RENEWAL0Anna Fali
1026Aruna S PaprockiFrance2025-06-02Rangoni Of Florence QUALIFIED56Onyama Limba
1027James A RutaUnited Kingdom2025-05-25Feltz Printing Service NEW35Asiya Javayant
1028Nicolas T WieserArgentina2025-06-02Feiner Bros PROPOSAL50Bernardo Dominic
1029Deepesh M ButtCanada2025-05-27Rangoni Of Florence NEGOTIATION98Onyama Limba
1030Wickens L FerenczIndia2025-05-26Buckley Miller Wright QUALIFIED58Stephen Shaw
1031Salvatore X SergiBrazil2025-06-11Feltz Printing Service QUALIFIED21Onyama Limba
1032Octavia R GauchoArgentina2025-05-26Chapman, Ross E Esq PROPOSAL76Bernardo Dominic
1033David T DoeAustralia2025-06-07Feiner Bros NEGOTIATION57Bernardo Dominic
1034Aika X GlickJapan2025-05-29Chapman, Ross E Esq NEW78Ioni Bowcher
1035Silvio O MorascaCanada2025-06-12Truhlar And Truhlar Attys NEW46Anna Fali
1036Mujtaba V PerinAustralia2025-05-26Chapman, Ross E Esq RENEWAL59Anna Fali
1037Clifford R SergiRussia2025-05-22Feiner Bros PROPOSAL26Bernardo Dominic
1038Cody K BriddickSpain2025-05-25Benton, John B Jr UNQUALIFIED2Bernardo Dominic
1039Nicolas Z BowleySpain2025-06-06Rousseaux, Michael Esq QUALIFIED99Onyama Limba
1040Faith K CaldareraArgentina2025-05-23Printing Dimensions PROPOSAL50Amy Elsner
1041Wickens K DilliardBrazil2025-06-05Chemel, James L Cpa UNQUALIFIED85Elwin Sharvill
1042Sinclair Q CaldareraSpain2025-05-18Rousseaux, Michael Esq NEW13Anna Fali
1043Jones Z KolmetzBrazil2025-05-21Morlong Associates NEW77Asiya Javayant
1044Jeanfrancois T FerenczFrance2025-05-17Chanay, Jeffrey A Esq NEW81Amy Elsner
1045Antonio I BriddickJapan2025-05-25Rangoni Of Florence RENEWAL51Xuxue Feng
1046Clifford L BriddickCanada2025-06-11Feiner Bros QUALIFIED80Ioni Bowcher
1047Costa S OstroskyBrazil2025-05-24Rangoni Of Florence QUALIFIED33Bernardo Dominic
1048Sinclair P BowleyUnited Kingdom2025-06-03Feiner Bros NEW19Xuxue Feng
1049Aika X FollerFrance2025-05-25Dorl, James J Esq PROPOSAL66Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Misaki N NickaAustraliaStephen Shaw UNQUALIFIED
Wickens R WieserGermanyIvan Magalhaes PROPOSAL
Costa V SlusarskiJapanIvan Magalhaes PROPOSAL
Rodrigues R WaycottItalyStephen Shaw PROPOSAL
Maisha Z ButtGermanyIvan Magalhaes QUALIFIED
Morrow L VocelkaSpainAnna Fali PROPOSAL
Ivar T SergiAustraliaAnna Fali UNQUALIFIED
Leja U CaldareraGermanyElwin Sharvill NEW
Leja S ButtItalyStephen Shaw QUALIFIED
Faith H ButtRussiaXuxue Feng NEW
Darci L PoquetteRussiaElwin Sharvill UNQUALIFIED
Mayumi P BologniaRussiaXuxue Feng NEGOTIATION
Clifford T WieserArgentinaAsiya Javayant RENEWAL
Chavez G FollerAustraliaBernardo Dominic PROPOSAL
Mujtaba W PaprockiFranceStephen Shaw PROPOSAL
James B AlbaresCanadaStephen Shaw QUALIFIED
Misaki T RimGermanyElwin Sharvill PROPOSAL
Adams E WaycottCanadaElwin Sharvill PROPOSAL
Costa V KuskoBrazilElwin Sharvill PROPOSAL
Clifford C InouyeUnited KingdomXuxue Feng NEGOTIATION
Ricardo H WieserIndiaBernardo Dominic UNQUALIFIED
Ashley X GlickCanadaXuxue Feng NEGOTIATION
David V PerinRussiaAnna Fali QUALIFIED
Julie G GlickJapanXuxue Feng UNQUALIFIED
Leon V CampainBrazilAmy Elsner PROPOSAL
Kaitlin I BowleyBrazilAmy Elsner QUALIFIED
David U TollnerCanadaAsiya Javayant NEW
Juan D CaudyCanadaXuxue Feng UNQUALIFIED
Kadeem J DilliardSpainAnna Fali UNQUALIFIED
Costa J SlusarskiCanadaAmy Elsner QUALIFIED
Julie E MorascaArgentinaAmy Elsner NEW
Greenwood D DoeRussiaAsiya Javayant PROPOSAL
Tony R SlusarskiArgentinaElwin Sharvill PROPOSAL
Stacey V GarufiItalyXuxue Feng NEW
Clifford U ShinkoUnited KingdomIoni Bowcher NEGOTIATION
Nicolas Z IturbideAustraliaBernardo Dominic NEW
Nicolas S DoeAustraliaIoni Bowcher NEGOTIATION
Misaki W CampainItalyBernardo Dominic UNQUALIFIED
Izzy Q FollerJapanElwin Sharvill RENEWAL
Jennifer Q DarakjyGermanyAsiya Javayant NEW
Greenwood D MacleadArgentinaStephen Shaw QUALIFIED
Jones I FollerCanadaXuxue Feng NEW
Izzy O GlickJapanAmy Elsner QUALIFIED
Julie R PoquetteSpainElwin Sharvill NEW
Misaki R PaprockiAustraliaOnyama Limba QUALIFIED
Leon I SergiJapanIvan Magalhaes UNQUALIFIED
Octavia D AmigonIndiaStephen Shaw PROPOSAL
Emily H MacleadGermanyElwin Sharvill RENEWAL
Munro I SlusarskiArgentinaIvan Magalhaes PROPOSAL
Jeanfrancois X BowleyAustraliaAmy Elsner RENEWAL
Frozen Columns
Name
Silvio E Ostrosky
Aditya Z Poquette
Ivar E Shinko
Leon R Butt
Emily M Albares
Salvatore B Bowley
Aditya W Saylors
Tony P Royster
Morrow X Campain
Murillo X Caldarera
Leja C Butt
Juan Z Rim
Ivar C Perin
Kadeem T Morasca
Aditya A Rulapaugh
Kadeem I Malet
Salvatore I Figeroa
Smith G Oldroyd
Sinclair A Gaucho
Maria P Oldroyd
Adams F Gillian
Francesco M Briddick
Sinclair M Saylors
Alejandro R Inouye
Johnson W Vocelka
Francesco B Doe
Rodrigues Z Rulapaugh
Silvio B Paprocki
Ivar S Slusarski
Adams R Stockham
Chavez R Rulapaugh
Arvin J Ferencz
Octavia B Rim
Jones Q Paprocki
Maria A Morasca
Arvin S Stockham
Costa Y Tollner
Greenwood W Royster
Emily O Iturbide
Stacey K Amigon
Alejandro D Butt
Adams G Garufi
Julie T Waycott
Ricardo N Gaucho
Francesco L Vocelka
Adams N Butt
Ivar G Slusarski
Adams D Bolognia
Stacey E Poquette
Misaki Z Garufi
IdCountryDate
1000Germany2025-05-27
1001Germany2025-05-22
1002Brazil2025-06-01
1003Canada2025-06-04
1004India2025-06-13
1005Australia2025-05-31
1006Argentina2025-05-20
1007Japan2025-06-01
1008Canada2025-06-07
1009Brazil2025-06-11
1010France2025-06-09
1011Australia2025-05-19
1012Australia2025-05-24
1013Brazil2025-06-01
1014Japan2025-05-28
1015France2025-05-16
1016France2025-05-31
1017United Kingdom2025-06-13
1018Canada2025-05-25
1019Canada2025-06-02
1020Japan2025-06-01
1021Australia2025-06-05
1022Germany2025-05-16
1023Spain2025-05-17
1024Germany2025-06-09
1025Brazil2025-06-01
1026Spain2025-06-06
1027Spain2025-05-24
1028Argentina2025-06-07
1029Italy2025-05-26
1030Italy2025-06-14
1031Spain2025-06-14
1032Russia2025-05-25
1033Canada2025-06-09
1034Argentina2025-05-27
1035Spain2025-06-04
1036France2025-06-04
1037Russia2025-05-24
1038Spain2025-06-05
1039India2025-06-05
1040India2025-05-26
1041Australia2025-05-20
1042Spain2025-06-11
1043France2025-06-12
1044Brazil2025-06-03
1045Italy2025-06-13
1046Spain2025-06-04
1047Australia2025-05-31
1048Argentina2025-06-09
1049Brazil2025-06-14

On-Demand Data

NameIdCountryDate
Julie X Shinko1000United Kingdom2025-05-29
Deepesh F Campain1001Japan2025-05-24
Maisha Q Gaucho1002Canada2025-06-01
Antonio B Nestle1003Russia2025-06-12
Chavez I Chui1004Spain2025-06-12
Leja S Doe1005Germany2025-05-16
Munro S Shinko1006Canada2025-05-20
Faith Y Campain1007Italy2025-05-21
Antonio G Albares1008United Kingdom2025-06-14
Maria P Butt1009France2025-06-06
Aruna X Sergi1010France2025-06-11
Rodrigues F Venere1011Japan2025-06-10
Aditya W Flosi1012India2025-06-14
Sinclair S Figeroa1013Australia2025-05-17
Clifford Y Saylors1014Spain2025-06-10
Johnson J Shinko1015United Kingdom2025-06-04
Ivar Z Whobrey1016Australia2025-05-18
Sinclair N Oldroyd1017Spain2025-05-20
Misaki Q Maclead1018Japan2025-05-17
Maria V Doe1019United Kingdom2025-05-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire K FollerSpainAsiya Javayant RENEWAL
Jeanfrancois C SaylorsUnited KingdomStephen Shaw NEGOTIATION
Juan F DoeUnited KingdomAmy Elsner UNQUALIFIED
Jefferson G WaycottUnited KingdomAmy Elsner PROPOSAL
Stacey Z IturbideFranceAmy Elsner UNQUALIFIED
Johnson Y WaycottAustraliaAmy Elsner NEW
Johnson X PaprockiUnited KingdomIvan Magalhaes PROPOSAL
Smith O PoquetteJapanOnyama Limba QUALIFIED
Maisha O RoysterIndiaAmy Elsner PROPOSAL
Darci F ButtItalyAmy Elsner RENEWAL
Mayumi B KolmetzAustraliaAnna Fali UNQUALIFIED
Jeanfrancois A VocelkaJapanOnyama Limba UNQUALIFIED
Julie G SchemmerGermanyElwin Sharvill NEGOTIATION
Faith O FollerArgentinaBernardo Dominic QUALIFIED
Costa O StockhamRussiaAsiya Javayant QUALIFIED
Maisha Q VocelkaFranceOnyama Limba QUALIFIED
Jeanfrancois F StockhamBrazilBernardo Dominic UNQUALIFIED
Emily Q OstroskyGermanyAmy Elsner RENEWAL
Kaitlin N KolmetzSpainBernardo Dominic PROPOSAL
Jennifer F AmigonUnited KingdomElwin Sharvill PROPOSAL
Claire B VocelkaJapanAsiya Javayant QUALIFIED
James L FlosiJapanAmy Elsner NEGOTIATION
Maisha L MorascaCanadaOnyama Limba RENEWAL
Stacey Z PerinIndiaIoni Bowcher QUALIFIED
Izzy L CampainJapanIoni Bowcher NEW
Ivar K KolmetzAustraliaIvan Magalhaes NEGOTIATION
Johnson Q SaylorsSpainOnyama Limba PROPOSAL
Jennifer J MorascaAustraliaAsiya Javayant NEW
Wickens W DarakjyIndiaAnna Fali RENEWAL
Aika C RulapaughGermanyIoni Bowcher NEW
Silvio A PerinUnited KingdomBernardo Dominic NEGOTIATION
Claire H WaycottUnited KingdomOnyama Limba UNQUALIFIED
Mayumi J VocelkaCanadaElwin Sharvill NEW
Sinclair A AmigonItalyAnna Fali NEGOTIATION
Johnson O WhobreySpainAnna Fali QUALIFIED
Aika U FollerAustraliaBernardo Dominic UNQUALIFIED
James B SaylorsArgentinaAmy Elsner RENEWAL
Tony C ButtItalyXuxue Feng QUALIFIED
James T PerinCanadaAnna Fali PROPOSAL
Jennifer H NickaJapanAsiya Javayant 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>