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
Rodrigues Q OldroydSpainAmy Elsner PROPOSAL
Sinclair X DarakjyIndiaAnna Fali NEW
Octavia X AlbaresBrazilBernardo Dominic QUALIFIED
Johnson M BologniaBrazilAnna Fali RENEWAL
Aditya R FlosiItalyXuxue Feng RENEWAL
Faith U KuskoGermanyXuxue Feng RENEWAL
Mayumi I MaletJapanOnyama Limba QUALIFIED
Cody M IturbideIndiaAsiya Javayant QUALIFIED
Ashley M DarakjyFranceStephen Shaw UNQUALIFIED
Arvin I WaycottJapanOnyama Limba PROPOSAL
Jones X DilliardGermanyBernardo Dominic PROPOSAL
Jennifer R FigeroaItalyElwin Sharvill NEW
Isabel D NickaItalyIoni Bowcher QUALIFIED
Kaitlin J GarufiRussiaIvan Magalhaes RENEWAL
Claire A PaprockiBrazilAsiya Javayant NEGOTIATION
Cody Y GlickFranceAsiya Javayant PROPOSAL
Deepesh H RoysterCanadaAnna Fali NEW
Cody W CampainUnited KingdomIoni Bowcher QUALIFIED
Mujtaba F KolmetzSpainIvan Magalhaes PROPOSAL
Misaki T DarakjyRussiaOnyama Limba NEGOTIATION
David M VenereCanadaAnna Fali PROPOSAL
Maria A WhobreyIndiaElwin Sharvill RENEWAL
Jeanfrancois C NestleRussiaIvan Magalhaes NEGOTIATION
Kadeem T BologniaSpainAmy Elsner RENEWAL
Jones G FerenczItalyIoni Bowcher RENEWAL
Leja B DarakjyArgentinaAmy Elsner PROPOSAL
Wickens A CaldareraGermanyOnyama Limba RENEWAL
Francesco N StensethFranceOnyama Limba NEGOTIATION
Aruna P FigeroaSpainIoni Bowcher NEW
Sinclair Y DarakjyGermanyStephen Shaw PROPOSAL
Aika F BriddickJapanBernardo Dominic NEW
Jeanfrancois Y InouyeIndiaAsiya Javayant NEGOTIATION
Stacey C ShinkoFranceAsiya Javayant RENEWAL
Julie J RoysterBrazilAmy Elsner NEGOTIATION
Isabel Y DoeArgentinaAsiya Javayant UNQUALIFIED
Mujtaba D NestleBrazilXuxue Feng NEGOTIATION
Clifford Q FerenczArgentinaAnna Fali PROPOSAL
Kaitlin P FollerCanadaOnyama Limba RENEWAL
Adams B DoeAustraliaAsiya Javayant NEW
Johnson I MarrierGermanyOnyama Limba PROPOSAL
Julie P CampainItalyElwin Sharvill UNQUALIFIED
Mujtaba R AlbaresBrazilAsiya Javayant PROPOSAL
Misaki J TollnerAustraliaStephen Shaw NEGOTIATION
Wickens O FigeroaGermanyElwin Sharvill RENEWAL
Octavia Z KolmetzSpainAmy Elsner NEGOTIATION
Faith D CaudyBrazilOnyama Limba UNQUALIFIED
Julie I PerinAustraliaAmy Elsner NEGOTIATION
Isabel E GlickCanadaXuxue Feng RENEWAL
Cody H TollnerBrazilBernardo Dominic NEGOTIATION
Ivar J SlusarskiRussiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Greenwood I VocelkaArgentinaBernardo Dominic QUALIFIED
Leon L DilliardIndiaElwin Sharvill UNQUALIFIED
Aika B DilliardBrazilAsiya Javayant PROPOSAL
Chavez K ButtBrazilStephen Shaw NEW
Leon P SergiItalyBernardo Dominic RENEWAL
Tony E PaprockiRussiaBernardo Dominic QUALIFIED
Ashley K ChuiSpainAsiya Javayant NEW
Costa V VocelkaIndiaOnyama Limba QUALIFIED
Deepesh R VocelkaItalyIoni Bowcher PROPOSAL
Costa Z MorascaBrazilIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha G RoysterIndia2026-06-22Chapman, Ross E Esq RENEWAL59Asiya Javayant
1001Julie H AmigonGermany2026-07-02Rangoni Of Florence UNQUALIFIED41Xuxue Feng
1002Misaki F BologniaSpain2026-07-09King, Christopher A Esq PROPOSAL38Ioni Bowcher
1003Rodrigues D AlbaresCanada2026-06-27King, Christopher A Esq RENEWAL67Anna Fali
1004Salvatore M SchemmerCanada2026-06-16Printing Dimensions UNQUALIFIED20Asiya Javayant
1005Leja L FigeroaIndia2026-06-21Printing Dimensions RENEWAL36Ioni Bowcher
1006Leon Y PerinSpain2026-06-24Feiner Bros NEW92Amy Elsner
1007Jennifer I BowleyAustralia2026-07-02Benton, John B Jr PROPOSAL80Stephen Shaw
1008Maisha Y CaudyUnited Kingdom2026-07-02Chemel, James L Cpa QUALIFIED81Xuxue Feng
1009Jones V SaylorsFrance2026-06-25Rousseaux, Michael Esq RENEWAL38Stephen Shaw
1010Emily U ShinkoItaly2026-06-17Benton, John B Jr UNQUALIFIED15Ivan Magalhaes
1011Jones Z BowleyBrazil2026-06-14Chapman, Ross E Esq QUALIFIED65Anna Fali
1012Jeanfrancois D CampainRussia2026-07-04Printing Dimensions RENEWAL38Anna Fali
1013Mayumi Z FigeroaCanada2026-07-02Feiner Bros RENEWAL42Ioni Bowcher
1014Ashley U OstroskyAustralia2026-06-30Feiner Bros PROPOSAL51Asiya Javayant
1015Munro N DoeIndia2026-06-18Feiner Bros QUALIFIED5Elwin Sharvill
1016Silvio R MarrierJapan2026-06-21Chapman, Ross E Esq RENEWAL94Xuxue Feng
1017Octavia F DarakjyJapan2026-07-09Chapman, Ross E Esq RENEWAL12Xuxue Feng
1018Juan D RoysterRussia2026-06-12Chemel, James L Cpa RENEWAL19Bernardo Dominic
1019Emily H NickaIndia2026-06-23Feltz Printing Service NEGOTIATION81Stephen Shaw
1020Maisha E WieserFrance2026-06-20Morlong Associates RENEWAL42Anna Fali
1021Faith B TollnerCanada2026-06-18Rangoni Of Florence NEW98Amy Elsner
1022Jones A GarufiSpain2026-06-11Commercial Press RENEWAL51Ivan Magalhaes
1023Smith R MorascaArgentina2026-06-16Rangoni Of Florence NEGOTIATION27Stephen Shaw
1024Nicolas O NickaItaly2026-06-16Morlong Associates PROPOSAL23Bernardo Dominic
1025Sinclair X GarufiRussia2026-06-11Rousseaux, Michael Esq PROPOSAL18Asiya Javayant
1026Sinclair W SlusarskiCanada2026-06-12Printing Dimensions NEW54Elwin Sharvill
1027Morrow B FlosiRussia2026-06-19Truhlar And Truhlar Attys NEGOTIATION11Anna Fali
1028Julie N OldroydAustralia2026-07-06King, Christopher A Esq NEW87Stephen Shaw
1029James J SergiItaly2026-07-07Chapman, Ross E Esq NEW73Asiya Javayant
1030Silvio Q DilliardFrance2026-07-01King, Christopher A Esq QUALIFIED92Ioni Bowcher
1031Leon G CaudyFrance2026-06-23Truhlar And Truhlar Attys PROPOSAL64Ioni Bowcher
1032Kaitlin R GlickRussia2026-07-08Dorl, James J Esq RENEWAL62Bernardo Dominic
1033David U FigeroaArgentina2026-06-20Chemel, James L Cpa QUALIFIED97Stephen Shaw
1034Kadeem Z MorascaItaly2026-06-11Printing Dimensions RENEWAL30Onyama Limba
1035James Z AlbaresGermany2026-06-11Benton, John B Jr NEGOTIATION92Stephen Shaw
1036Rodrigues O KuskoJapan2026-07-04King, Christopher A Esq NEW83Ivan Magalhaes
1037Claire D WieserUnited Kingdom2026-06-15Chapman, Ross E Esq NEW64Amy Elsner
1038Francesco F IturbideGermany2026-06-11Morlong Associates PROPOSAL90Ivan Magalhaes
1039Antonio J GauchoJapan2026-07-07Benton, John B Jr PROPOSAL67Amy Elsner
1040Stacey H GillianRussia2026-07-05Chapman, Ross E Esq RENEWAL26Elwin Sharvill
1041Leon Z GillianUnited Kingdom2026-06-24Rangoni Of Florence NEW5Ivan Magalhaes
1042Nicolas D PaprockiAustralia2026-06-12Feltz Printing Service UNQUALIFIED26Elwin Sharvill
1043Julie F MaletUnited Kingdom2026-06-12Commercial Press NEW50Ioni Bowcher
1044Antonio T BriddickFrance2026-07-01Commercial Press PROPOSAL63Ioni Bowcher
1045Tony P DilliardBrazil2026-06-18Chanay, Jeffrey A Esq PROPOSAL23Amy Elsner
1046Leja F RutaItaly2026-06-15King, Christopher A Esq UNQUALIFIED17Asiya Javayant
1047Kaitlin S DilliardArgentina2026-06-12Truhlar And Truhlar Attys NEGOTIATION18Ivan Magalhaes
1048Claire C CaldareraAustralia2026-06-19Commercial Press RENEWAL54Onyama Limba
1049Ricardo B GlickIndia2026-06-30Feiner Bros UNQUALIFIED52Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Alejandro D RimFranceXuxue Feng QUALIFIED
Misaki W WhobreyGermanyXuxue Feng UNQUALIFIED
Faith Z BriddickSpainAmy Elsner RENEWAL
Smith V GillianBrazilIoni Bowcher QUALIFIED
Ashley W RimFranceAmy Elsner RENEWAL
Ivar N FlosiBrazilBernardo Dominic UNQUALIFIED
Wickens H GarufiArgentinaIvan Magalhaes QUALIFIED
Tony R PaprockiJapanIvan Magalhaes RENEWAL
Francesco A GlickCanadaAsiya Javayant UNQUALIFIED
Kaitlin L ShinkoArgentinaBernardo Dominic RENEWAL
James S AlbaresFranceOnyama Limba RENEWAL
Leja V MacleadSpainAnna Fali NEGOTIATION
Rodrigues V GauchoFranceAsiya Javayant RENEWAL
Maisha Y GauchoUnited KingdomBernardo Dominic RENEWAL
Sinclair Z WhobreyCanadaAnna Fali NEGOTIATION
Johnson N ButtArgentinaAnna Fali RENEWAL
Izzy P MaletBrazilBernardo Dominic NEGOTIATION
Kaitlin U KuskoFranceAmy Elsner RENEWAL
Rodrigues E StockhamFranceAmy Elsner NEW
Cody H MaletBrazilElwin Sharvill NEW
Salvatore V WhobreyRussiaIoni Bowcher NEW
Arvin E DoeUnited KingdomBernardo Dominic QUALIFIED
James E FlosiCanadaBernardo Dominic QUALIFIED
Costa A SlusarskiJapanAnna Fali UNQUALIFIED
Nicolas G PaprockiCanadaIvan Magalhaes RENEWAL
Aditya T CampainItalyAsiya Javayant UNQUALIFIED
Salvatore I IturbideRussiaAmy Elsner QUALIFIED
Tony R StockhamGermanyStephen Shaw PROPOSAL
Julie A KolmetzJapanAsiya Javayant PROPOSAL
Ivar Z FollerGermanyXuxue Feng PROPOSAL
Ivar J WhobreyBrazilAnna Fali PROPOSAL
Leon J StensethFranceXuxue Feng NEW
Aika C SchemmerIndiaElwin Sharvill NEW
Ricardo Y DarakjySpainElwin Sharvill QUALIFIED
Munro G MaletItalyIvan Magalhaes PROPOSAL
Leja D AlbaresArgentinaIvan Magalhaes QUALIFIED
Deepesh E FollerRussiaAsiya Javayant QUALIFIED
Ivar L OstroskyCanadaBernardo Dominic QUALIFIED
Greenwood T FollerJapanStephen Shaw PROPOSAL
Ivar Z PerinUnited KingdomXuxue Feng PROPOSAL
Octavia Y CaldareraAustraliaBernardo Dominic PROPOSAL
Jefferson M FlosiItalyElwin Sharvill UNQUALIFIED
Juan S RulapaughBrazilAsiya Javayant PROPOSAL
Johnson P OldroydCanadaAnna Fali UNQUALIFIED
Octavia M StockhamBrazilElwin Sharvill PROPOSAL
Clifford V VocelkaArgentinaElwin Sharvill PROPOSAL
Izzy M SchemmerArgentinaStephen Shaw PROPOSAL
Mujtaba V WhobreySpainBernardo Dominic NEW
Deepesh N RutaItalyAmy Elsner NEGOTIATION
Leja Y AlbaresUnited KingdomAmy Elsner UNQUALIFIED
Frozen Columns
Name
Jennifer Z Garufi
Faith N Maclead
Kaitlin J Campain
Leon N Malet
Kaitlin K Nicka
James U Figeroa
Aika E Wieser
Salvatore K Doe
Leja Q Maclead
Darci R Marrier
Munro P Nicka
Munro N Ostrosky
Emily I Bolognia
Ricardo L Shinko
Munro R Flosi
Isabel I Vocelka
Silvio N Iturbide
Isabel L Waycott
Johnson F Perin
Nicolas X Malet
Morrow J Wieser
Jones M Darakjy
Johnson X Chui
Isabel W Schemmer
James G Sergi
Jefferson Z Darakjy
Aditya Y Malet
Morrow K Inouye
Emily W Briddick
Ricardo Q Vocelka
Murillo V Waycott
Morrow F Butt
Emily T Inouye
Mayumi Y Dilliard
Francesco F Rulapaugh
Deepesh N Tollner
Julie A Campain
Antonio A Gaucho
Mujtaba U Garufi
Wickens Q Gaucho
Rodrigues Z Doe
Octavia U Whobrey
Silvio J Gaucho
Antonio V Rulapaugh
Arvin C Saylors
Faith X Ostrosky
Wickens C Marrier
Wickens Z Waycott
Johnson B Darakjy
Julie P Iturbide
IdCountryDate
1000Russia2026-06-26
1001Canada2026-06-12
1002Italy2026-07-08
1003Russia2026-06-11
1004Australia2026-06-14
1005Russia2026-07-05
1006France2026-06-11
1007United Kingdom2026-07-07
1008Russia2026-06-12
1009Italy2026-06-21
1010Italy2026-06-24
1011Australia2026-06-12
1012France2026-06-21
1013Canada2026-06-15
1014Spain2026-07-09
1015Italy2026-06-16
1016United Kingdom2026-06-13
1017Italy2026-07-09
1018Canada2026-06-25
1019Canada2026-06-23
1020United Kingdom2026-07-06
1021Brazil2026-07-08
1022Brazil2026-06-19
1023Japan2026-06-30
1024Argentina2026-06-29
1025Spain2026-06-20
1026Canada2026-07-09
1027Germany2026-06-11
1028Australia2026-06-14
1029Russia2026-06-29
1030Australia2026-06-26
1031India2026-07-10
1032Germany2026-06-12
1033Brazil2026-06-24
1034Germany2026-06-14
1035Russia2026-06-18
1036France2026-07-05
1037Germany2026-06-30
1038Spain2026-06-19
1039Canada2026-06-25
1040Spain2026-06-11
1041Spain2026-06-29
1042India2026-07-01
1043Canada2026-07-10
1044Spain2026-06-13
1045Germany2026-07-09
1046Russia2026-06-14
1047Italy2026-06-30
1048Spain2026-07-06
1049Germany2026-06-28

On-Demand Data

NameIdCountryDate
Costa C Poquette1000Spain2026-06-27
Aika C Figeroa1001Argentina2026-06-15
Antonio H Morasca1002United Kingdom2026-07-10
Aruna I Briddick1003Argentina2026-06-23
Ricardo I Ferencz1004Australia2026-07-07
Maria F Schemmer1005India2026-06-17
Claire O Chui1006Brazil2026-06-12
Chavez D Briddick1007Italy2026-06-30
Deepesh R Stockham1008France2026-06-21
Francesco H Morasca1009United Kingdom2026-06-27
Jones N Tollner1010Germany2026-06-17
Ricardo R Marrier1011Spain2026-06-23
Tony M Dilliard1012Japan2026-07-02
James A Darakjy1013Japan2026-06-15
David D Doe1014France2026-07-09
Chavez E Stockham1015Japan2026-06-13
Leja Z Malet1016Australia2026-06-21
Greenwood M Flosi1017Spain2026-06-23
Leon W Rulapaugh1018Germany2026-06-13
David L Marrier1019Brazil2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha Q StensethArgentinaAsiya Javayant UNQUALIFIED
Kaitlin P TollnerIndiaBernardo Dominic UNQUALIFIED
Aika A ShinkoSpainAmy Elsner NEGOTIATION
Adams U CampainAustraliaBernardo Dominic QUALIFIED
Aditya P GarufiRussiaXuxue Feng PROPOSAL
Chavez S GlickCanadaAsiya Javayant QUALIFIED
Cody T WieserRussiaStephen Shaw PROPOSAL
Kaitlin T OldroydJapanOnyama Limba QUALIFIED
Johnson Q RimItalyOnyama Limba NEGOTIATION
Ricardo C ChuiJapanStephen Shaw QUALIFIED
Alejandro S GauchoCanadaBernardo Dominic RENEWAL
Arvin Y SergiSpainAnna Fali NEGOTIATION
Ricardo Z FollerCanadaIvan Magalhaes QUALIFIED
Morrow B DilliardUnited KingdomAsiya Javayant RENEWAL
Kadeem V MorascaItalyAmy Elsner UNQUALIFIED
Silvio Z GauchoGermanyXuxue Feng UNQUALIFIED
Maria I MacleadSpainIoni Bowcher NEW
Chavez F PoquetteIndiaStephen Shaw RENEWAL
Aruna X SlusarskiIndiaStephen Shaw RENEWAL
Jeanfrancois B RulapaughUnited KingdomAnna Fali PROPOSAL
Aika A WieserJapanBernardo Dominic PROPOSAL
Francesco U GlickCanadaAnna Fali RENEWAL
Octavia J RimJapanBernardo Dominic NEW
Mujtaba H TollnerAustraliaOnyama Limba UNQUALIFIED
Juan U PoquetteBrazilElwin Sharvill NEW
Maisha H RulapaughUnited KingdomElwin Sharvill RENEWAL
Costa A GarufiIndiaOnyama Limba NEGOTIATION
Ricardo W NickaAustraliaAnna Fali NEGOTIATION
Clifford J DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Tony I GlickArgentinaXuxue Feng NEGOTIATION
Maisha E NickaUnited KingdomIoni Bowcher NEW
Chavez B RutaCanadaAnna Fali UNQUALIFIED
Wickens E GlickGermanyAmy Elsner UNQUALIFIED
Darci D TollnerUnited KingdomStephen Shaw RENEWAL
Cody P MorascaCanadaAnna Fali RENEWAL
Misaki R CampainAustraliaIoni Bowcher NEGOTIATION
Aika L ShinkoSpainOnyama Limba UNQUALIFIED
Jeanfrancois J VocelkaAustraliaAsiya Javayant RENEWAL
Maisha A OstroskyItalyStephen Shaw NEGOTIATION
Tony R RulapaughAustraliaAsiya Javayant 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>