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
Aruna Z AmigonCanadaAsiya Javayant NEGOTIATION
Jones H OstroskyFranceAnna Fali QUALIFIED
Francesco W MacleadSpainStephen Shaw NEW
Leon K DoeIndiaElwin Sharvill PROPOSAL
Deepesh F KolmetzRussiaAsiya Javayant RENEWAL
Maria G RutaGermanyAnna Fali PROPOSAL
David Q MaletJapanAsiya Javayant PROPOSAL
Isabel L InouyeArgentinaIoni Bowcher RENEWAL
Jones K ShinkoFranceIvan Magalhaes UNQUALIFIED
Greenwood G PaprockiRussiaAnna Fali PROPOSAL
Alejandro D CaldareraArgentinaBernardo Dominic QUALIFIED
Mayumi A WaycottJapanBernardo Dominic NEW
Octavia V PaprockiItalyBernardo Dominic QUALIFIED
Silvio E DilliardGermanyIoni Bowcher UNQUALIFIED
Nicolas T AlbaresFranceAmy Elsner QUALIFIED
Sinclair R IturbideItalyAsiya Javayant QUALIFIED
Antonio W ChuiUnited KingdomAsiya Javayant RENEWAL
Morrow Z PoquetteUnited KingdomAsiya Javayant NEGOTIATION
Adams J AlbaresItalyOnyama Limba PROPOSAL
Cody X BologniaGermanyOnyama Limba RENEWAL
Tony W StensethCanadaXuxue Feng QUALIFIED
Maisha X RulapaughIndiaBernardo Dominic NEGOTIATION
David Q FigeroaGermanyAmy Elsner RENEWAL
Wickens N PerinAustraliaAmy Elsner PROPOSAL
Aditya R RutaFranceAnna Fali RENEWAL
Jeanfrancois L DoeUnited KingdomAmy Elsner UNQUALIFIED
Octavia L MaletArgentinaOnyama Limba QUALIFIED
Morrow Z AmigonIndiaXuxue Feng PROPOSAL
Arvin H GillianGermanyIvan Magalhaes QUALIFIED
Aika B RoysterIndiaXuxue Feng UNQUALIFIED
Smith N RimUnited KingdomAnna Fali RENEWAL
Octavia G NestleGermanyStephen Shaw UNQUALIFIED
Izzy O StensethAustraliaBernardo Dominic NEGOTIATION
Cody B SaylorsUnited KingdomBernardo Dominic PROPOSAL
Isabel R KolmetzArgentinaXuxue Feng UNQUALIFIED
Rodrigues C DilliardSpainIvan Magalhaes QUALIFIED
Aika Y OstroskyBrazilAnna Fali UNQUALIFIED
Jennifer D StockhamItalyAsiya Javayant PROPOSAL
Antonio P CaldareraFranceAnna Fali QUALIFIED
Silvio Q KolmetzGermanyAnna Fali NEW
Nicolas E KolmetzAustraliaOnyama Limba NEW
Johnson J WieserArgentinaStephen Shaw RENEWAL
Kadeem L VenereArgentinaAsiya Javayant QUALIFIED
Munro R KuskoBrazilAsiya Javayant PROPOSAL
Isabel L RulapaughAustraliaOnyama Limba QUALIFIED
Munro T MorascaArgentinaStephen Shaw NEGOTIATION
Aditya U KuskoItalyXuxue Feng RENEWAL
Faith L RoysterCanadaOnyama Limba QUALIFIED
Mujtaba P IturbideUnited KingdomOnyama Limba RENEWAL
Juan T RulapaughGermanyStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Stacey S StockhamItalyOnyama Limba NEGOTIATION
Ivar F FlosiRussiaIvan Magalhaes NEGOTIATION
Cody X BologniaCanadaOnyama Limba PROPOSAL
Tony E BologniaJapanElwin Sharvill NEW
Deepesh E BriddickUnited KingdomAnna Fali NEW
Juan V RimSpainAmy Elsner NEW
Chavez Q FerenczUnited KingdomIvan Magalhaes RENEWAL
Murillo G KuskoJapanAmy Elsner QUALIFIED
Salvatore M PoquetteAustraliaStephen Shaw RENEWAL
Mujtaba R InouyeBrazilBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois E ChuiRussia2026-07-05Chapman, Ross E Esq UNQUALIFIED3Onyama Limba
1001Kadeem G VocelkaSpain2026-07-18Commercial Press PROPOSAL31Bernardo Dominic
1002Darci X SaylorsAustralia2026-06-30Dorl, James J Esq NEGOTIATION96Xuxue Feng
1003Izzy Y WieserIndia2026-07-19Rangoni Of Florence QUALIFIED39Xuxue Feng
1004Adams G GlickBrazil2026-06-23Commercial Press NEGOTIATION14Amy Elsner
1005Mujtaba G BowleySpain2026-07-19Printing Dimensions UNQUALIFIED84Stephen Shaw
1006Octavia V DarakjyIndia2026-06-24Chanay, Jeffrey A Esq QUALIFIED96Elwin Sharvill
1007Antonio B GillianUnited Kingdom2026-06-23Rousseaux, Michael Esq QUALIFIED20Onyama Limba
1008Adams U MarrierItaly2026-07-09King, Christopher A Esq NEW76Ivan Magalhaes
1009Stacey Z DilliardRussia2026-06-28Rousseaux, Michael Esq UNQUALIFIED30Ioni Bowcher
1010Rodrigues I DarakjyUnited Kingdom2026-07-09Morlong Associates NEW87Amy Elsner
1011Nicolas L TollnerFrance2026-07-13Buckley Miller Wright RENEWAL10Xuxue Feng
1012Emily O FerenczArgentina2026-06-28Chanay, Jeffrey A Esq NEW7Ioni Bowcher
1013Silvio B NickaAustralia2026-06-24Feltz Printing Service NEW77Bernardo Dominic
1014Mayumi N FigeroaArgentina2026-07-09Feltz Printing Service UNQUALIFIED13Xuxue Feng
1015Faith Y TollnerArgentina2026-06-29Benton, John B Jr NEGOTIATION79Anna Fali
1016Johnson X RulapaughIndia2026-06-23Printing Dimensions PROPOSAL21Asiya Javayant
1017Faith D KuskoItaly2026-07-22Rangoni Of Florence NEGOTIATION30Onyama Limba
1018Tony F RutaGermany2026-07-21Rangoni Of Florence UNQUALIFIED50Asiya Javayant
1019Jeanfrancois F PerinIndia2026-07-01Chapman, Ross E Esq PROPOSAL69Stephen Shaw
1020Octavia U NestleBrazil2026-06-30Printing Dimensions RENEWAL15Amy Elsner
1021James R RimCanada2026-06-27Truhlar And Truhlar Attys NEW42Ioni Bowcher
1022Leon X KuskoItaly2026-07-12Feiner Bros QUALIFIED77Xuxue Feng
1023Costa F SlusarskiRussia2026-07-22Buckley Miller Wright NEGOTIATION6Elwin Sharvill
1024Johnson Z SergiSpain2026-06-27Chapman, Ross E Esq UNQUALIFIED92Stephen Shaw
1025Arvin C AlbaresArgentina2026-07-15Morlong Associates NEW97Ioni Bowcher
1026Munro U ShinkoCanada2026-06-24Chemel, James L Cpa PROPOSAL67Xuxue Feng
1027Isabel T RulapaughRussia2026-07-02Rousseaux, Michael Esq NEW39Amy Elsner
1028Kadeem T CampainItaly2026-06-29Chanay, Jeffrey A Esq NEW96Ivan Magalhaes
1029Tony B GlickJapan2026-07-13Chapman, Ross E Esq UNQUALIFIED1Bernardo Dominic
1030Izzy E SaylorsItaly2026-06-29Feltz Printing Service NEGOTIATION93Stephen Shaw
1031Ivar K FerenczJapan2026-07-07Printing Dimensions NEW9Amy Elsner
1032Aditya J SergiIndia2026-07-22Rousseaux, Michael Esq NEGOTIATION28Elwin Sharvill
1033Jefferson Z ShinkoUnited Kingdom2026-06-30Chapman, Ross E Esq UNQUALIFIED40Asiya Javayant
1034Francesco L MorascaUnited Kingdom2026-06-23Commercial Press UNQUALIFIED55Elwin Sharvill
1035Maria P ButtItaly2026-07-12Buckley Miller Wright NEW30Amy Elsner
1036David I MacleadAustralia2026-07-21Rousseaux, Michael Esq NEGOTIATION86Onyama Limba
1037Mujtaba T DoeUnited Kingdom2026-06-30Printing Dimensions NEW48Onyama Limba
1038Jones L GauchoGermany2026-07-06Feiner Bros PROPOSAL12Stephen Shaw
1039Mayumi P SergiRussia2026-07-02Rangoni Of Florence RENEWAL78Ivan Magalhaes
1040Stacey U RutaIndia2026-07-03Buckley Miller Wright NEW45Elwin Sharvill
1041Stacey U MacleadUnited Kingdom2026-06-23Feltz Printing Service NEW2Ivan Magalhaes
1042Munro W WhobreyJapan2026-07-10Benton, John B Jr NEW43Amy Elsner
1043Faith S StockhamUnited Kingdom2026-06-27Buckley Miller Wright UNQUALIFIED54Amy Elsner
1044Maria Y SlusarskiArgentina2026-06-25Printing Dimensions UNQUALIFIED5Amy Elsner
1045Deepesh Y MorascaIndia2026-07-07King, Christopher A Esq NEGOTIATION56Stephen Shaw
1046Ashley Q MaletJapan2026-07-13Morlong Associates RENEWAL88Stephen Shaw
1047Kadeem G DarakjyUnited Kingdom2026-07-05Printing Dimensions NEGOTIATION67Bernardo Dominic
1048Julie I TollnerUnited Kingdom2026-06-25Commercial Press QUALIFIED13Bernardo Dominic
1049James P SchemmerBrazil2026-07-09Commercial Press RENEWAL23Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Octavia Q DilliardArgentinaStephen Shaw RENEWAL
James V TollnerJapanXuxue Feng PROPOSAL
Adams S FollerBrazilAsiya Javayant NEW
Morrow A DilliardItalyElwin Sharvill PROPOSAL
Izzy S OldroydAustraliaAmy Elsner QUALIFIED
Silvio V MaletBrazilAsiya Javayant QUALIFIED
Costa T AlbaresCanadaIvan Magalhaes UNQUALIFIED
Jones B RulapaughUnited KingdomAsiya Javayant UNQUALIFIED
James F MarrierJapanAmy Elsner QUALIFIED
Munro T FollerJapanAnna Fali NEW
Darci Q IturbideBrazilAnna Fali NEGOTIATION
Aditya O FlosiRussiaOnyama Limba NEW
Octavia N MorascaRussiaIvan Magalhaes RENEWAL
Kadeem C OldroydAustraliaXuxue Feng QUALIFIED
Ashley O PaprockiFranceStephen Shaw RENEWAL
Nicolas Q IturbideArgentinaAsiya Javayant PROPOSAL
Costa T KuskoRussiaStephen Shaw UNQUALIFIED
Francesco P KolmetzFranceOnyama Limba UNQUALIFIED
Maria E KolmetzJapanOnyama Limba UNQUALIFIED
Sinclair Z InouyeAustraliaStephen Shaw PROPOSAL
Mujtaba V BologniaItalyAmy Elsner PROPOSAL
Jefferson H KuskoBrazilXuxue Feng NEW
Claire C SergiUnited KingdomIoni Bowcher PROPOSAL
Darci O KuskoAustraliaStephen Shaw RENEWAL
Greenwood H VenereBrazilIoni Bowcher NEGOTIATION
Faith H WaycottGermanyBernardo Dominic RENEWAL
Rodrigues K WhobreyBrazilIoni Bowcher NEW
Maria U FollerUnited KingdomStephen Shaw RENEWAL
Silvio C GarufiCanadaBernardo Dominic RENEWAL
Francesco V ChuiSpainIvan Magalhaes UNQUALIFIED
Tony V BologniaGermanyAnna Fali NEW
Maria U CaldareraFranceAmy Elsner PROPOSAL
Cody R MorascaJapanAmy Elsner NEW
Aruna I MacleadIndiaXuxue Feng NEGOTIATION
Deepesh X DarakjyItalyElwin Sharvill NEW
Jefferson K PerinFranceBernardo Dominic NEW
Mujtaba B RimItalyStephen Shaw UNQUALIFIED
Wickens Z PaprockiFranceStephen Shaw NEGOTIATION
Munro L InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Johnson L RoysterRussiaBernardo Dominic NEGOTIATION
Mujtaba F AlbaresIndiaXuxue Feng NEGOTIATION
Octavia L AmigonRussiaIvan Magalhaes PROPOSAL
Misaki B BowleyJapanElwin Sharvill QUALIFIED
Aruna P PerinSpainOnyama Limba UNQUALIFIED
Kaitlin D MarrierItalyAsiya Javayant NEW
Tony O MarrierJapanXuxue Feng PROPOSAL
Francesco V SergiIndiaStephen Shaw RENEWAL
Jeanfrancois A AlbaresArgentinaIvan Magalhaes PROPOSAL
Faith K ButtIndiaElwin Sharvill RENEWAL
Alejandro I MorascaJapanAmy Elsner NEGOTIATION
Frozen Columns
Name
Clifford D Venere
Ashley L Bowley
Alejandro Z Albares
Stacey A Vocelka
Mujtaba I Amigon
Darci E Rim
Darci Z Schemmer
Mayumi C Inouye
Leon C Bolognia
Claire L Stockham
Aditya A Stenseth
Morrow U Inouye
Jeanfrancois Z Whobrey
Jefferson E Iturbide
Emily H Ferencz
Adams U Ruta
Wickens K Gillian
Salvatore F Chui
Wickens P Rulapaugh
Clifford S Nicka
Wickens R Malet
Claire E Ostrosky
Ivar K Figeroa
Silvio X Caldarera
Murillo L Caldarera
Antonio Y Gillian
Juan N Nestle
Mujtaba F Tollner
Alejandro T Iturbide
David U Amigon
Wickens M Rim
Morrow N Nicka
Cody I Kusko
Morrow Q Iturbide
Julie J Wieser
Aditya J Kusko
Isabel F Ostrosky
Tony V Gillian
Misaki G Nicka
Octavia V Wieser
Julie H Garufi
Aruna V Briddick
Misaki T Oldroyd
Francesco M Caudy
Aika O Paprocki
Octavia L Caldarera
Antonio J Ferencz
Jones E Doe
Antonio X Oldroyd
Misaki F Gillian
IdCountryDate
1000Australia2026-07-18
1001Brazil2026-06-27
1002Japan2026-06-30
1003Canada2026-07-20
1004Germany2026-07-14
1005Spain2026-06-28
1006Italy2026-06-25
1007India2026-07-01
1008Australia2026-07-09
1009United Kingdom2026-07-02
1010India2026-06-25
1011Argentina2026-07-02
1012United Kingdom2026-06-28
1013Australia2026-07-05
1014Italy2026-07-03
1015Australia2026-06-23
1016Spain2026-07-15
1017United Kingdom2026-07-21
1018Japan2026-07-18
1019Canada2026-07-10
1020Australia2026-07-21
1021India2026-07-18
1022Italy2026-07-06
1023Argentina2026-07-12
1024France2026-07-18
1025France2026-07-09
1026France2026-07-07
1027Japan2026-07-02
1028United Kingdom2026-07-19
1029Russia2026-07-08
1030Brazil2026-07-15
1031Brazil2026-06-27
1032India2026-07-22
1033Canada2026-07-08
1034Spain2026-07-03
1035United Kingdom2026-07-12
1036Spain2026-07-18
1037Japan2026-07-03
1038France2026-06-27
1039France2026-06-25
1040Canada2026-07-12
1041United Kingdom2026-07-05
1042Russia2026-07-02
1043Canada2026-07-04
1044Russia2026-06-28
1045Argentina2026-07-14
1046India2026-07-11
1047Italy2026-07-13
1048Japan2026-07-07
1049Argentina2026-06-28

On-Demand Data

NameIdCountryDate
Sinclair S Vocelka1000Germany2026-07-17
Maisha X Venere1001Russia2026-07-16
Kadeem T Oldroyd1002Canada2026-07-05
Nicolas I Kusko1003United Kingdom2026-06-28
Claire Q Dilliard1004Argentina2026-07-15
Mujtaba L Gaucho1005Italy2026-07-09
Jeanfrancois T Iturbide1006Germany2026-07-03
Alejandro W Bowley1007Japan2026-07-16
Nicolas G Gillian1008Japan2026-07-19
Tony S Wieser1009Japan2026-07-10
Aditya P Stenseth1010Spain2026-07-19
Kaitlin J Albares1011Japan2026-07-17
Mayumi Y Glick1012Germany2026-07-02
Kaitlin X Malet1013Australia2026-06-24
Leja C Garufi1014Italy2026-07-21
Darci C Wieser1015Germany2026-06-24
Kaitlin T Vocelka1016Italy2026-07-02
Aika Q Glick1017Japan2026-07-05
Sinclair X Wieser1018Canada2026-07-16
Cody G Campain1019Argentina2026-07-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio K WieserGermanyXuxue Feng PROPOSAL
Costa O MaletItalyXuxue Feng QUALIFIED
Leja M RutaArgentinaIvan Magalhaes NEGOTIATION
Ivar V FerenczCanadaStephen Shaw UNQUALIFIED
Ricardo K IturbideFranceAsiya Javayant UNQUALIFIED
Maisha G FigeroaSpainBernardo Dominic PROPOSAL
James R DilliardRussiaIvan Magalhaes NEGOTIATION
Clifford K TollnerUnited KingdomIvan Magalhaes RENEWAL
Smith X StensethFranceAnna Fali NEW
Leon Q RutaBrazilOnyama Limba NEW
Kadeem C FlosiBrazilXuxue Feng NEW
Isabel A SlusarskiCanadaIoni Bowcher NEGOTIATION
Isabel U FigeroaAustraliaXuxue Feng UNQUALIFIED
Tony F GlickItalyXuxue Feng QUALIFIED
Smith J DilliardArgentinaIoni Bowcher NEW
Silvio Q MarrierUnited KingdomElwin Sharvill NEW
Sinclair A TollnerItalyAmy Elsner UNQUALIFIED
Kadeem X ShinkoRussiaIvan Magalhaes PROPOSAL
Kadeem W GlickGermanyBernardo Dominic QUALIFIED
Murillo M KolmetzItalyElwin Sharvill QUALIFIED
Jones P PoquetteBrazilIvan Magalhaes NEW
Maisha J SergiCanadaAmy Elsner UNQUALIFIED
Leja X TollnerUnited KingdomIoni Bowcher PROPOSAL
Stacey O GlickGermanyAmy Elsner UNQUALIFIED
Alejandro X CampainSpainBernardo Dominic PROPOSAL
Leja X CaudyBrazilOnyama Limba NEW
Julie F SchemmerSpainXuxue Feng NEW
Aditya V MaletBrazilAmy Elsner QUALIFIED
Morrow Y FlosiCanadaAsiya Javayant QUALIFIED
Antonio F GauchoUnited KingdomElwin Sharvill QUALIFIED
Rodrigues V PaprockiFranceIoni Bowcher NEGOTIATION
Rodrigues X BriddickSpainOnyama Limba RENEWAL
Emily I MarrierJapanAnna Fali PROPOSAL
Stacey N ChuiFranceOnyama Limba NEGOTIATION
David K ChuiFranceStephen Shaw NEW
Costa Q IturbideItalyBernardo Dominic PROPOSAL
Nicolas D BologniaItalyAsiya Javayant UNQUALIFIED
Johnson N DilliardArgentinaIvan Magalhaes UNQUALIFIED
Sinclair Z ShinkoUnited KingdomStephen Shaw PROPOSAL
Misaki I BowleySpainStephen 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>