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
Morrow A GillianGermanyBernardo Dominic NEGOTIATION
Mayumi T SergiSpainStephen Shaw NEW
Claire N KuskoIndiaXuxue Feng RENEWAL
Mayumi M RimJapanXuxue Feng NEGOTIATION
Misaki V SaylorsArgentinaAmy Elsner RENEWAL
Maisha I KolmetzJapanAsiya Javayant UNQUALIFIED
Johnson S KuskoArgentinaAsiya Javayant PROPOSAL
Clifford H RoysterRussiaElwin Sharvill NEGOTIATION
Greenwood Y MorascaAustraliaAsiya Javayant RENEWAL
Murillo H DilliardJapanAnna Fali RENEWAL
Maisha K NestleBrazilAnna Fali NEW
Mujtaba J NestleArgentinaAsiya Javayant NEW
Aditya U AmigonAustraliaAnna Fali RENEWAL
Jennifer O FerenczArgentinaElwin Sharvill RENEWAL
James U MaletUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues B BriddickCanadaXuxue Feng QUALIFIED
Darci H KuskoUnited KingdomOnyama Limba RENEWAL
Jones M IturbideIndiaIvan Magalhaes PROPOSAL
Octavia C OstroskyArgentinaIvan Magalhaes QUALIFIED
Murillo A InouyeArgentinaStephen Shaw QUALIFIED
Wickens Q FlosiAustraliaOnyama Limba NEW
Aika P FerenczArgentinaElwin Sharvill NEW
Silvio C FollerUnited KingdomAnna Fali PROPOSAL
Morrow K FigeroaArgentinaOnyama Limba QUALIFIED
James H SlusarskiArgentinaIoni Bowcher QUALIFIED
Izzy N FigeroaCanadaOnyama Limba UNQUALIFIED
Silvio K GillianIndiaAnna Fali NEW
Ricardo B OstroskyJapanElwin Sharvill RENEWAL
David I ButtFranceAnna Fali UNQUALIFIED
Antonio X StensethItalyAsiya Javayant NEW
Deepesh O KuskoGermanyIoni Bowcher NEW
Murillo J RulapaughArgentinaAsiya Javayant QUALIFIED
Alejandro H NestleAustraliaIvan Magalhaes RENEWAL
Arvin N KolmetzItalyIoni Bowcher NEGOTIATION
Deepesh Q FerenczSpainIvan Magalhaes PROPOSAL
Maisha R StockhamAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba I FlosiArgentinaStephen Shaw PROPOSAL
Octavia G NestleUnited KingdomAnna Fali UNQUALIFIED
Aika K MaletGermanyXuxue Feng PROPOSAL
Aika T SaylorsGermanyElwin Sharvill UNQUALIFIED
Jeanfrancois Q RutaArgentinaElwin Sharvill PROPOSAL
Aika T BriddickArgentinaAnna Fali NEW
Cody K AmigonBrazilAsiya Javayant NEGOTIATION
Tony D PoquetteBrazilElwin Sharvill PROPOSAL
Isabel E IturbideAustraliaIvan Magalhaes NEW
Julie J GlickSpainAsiya Javayant NEGOTIATION
Octavia G WhobreyCanadaAsiya Javayant UNQUALIFIED
Mujtaba Q CaldareraFranceAmy Elsner PROPOSAL
Arvin F SlusarskiAustraliaIvan Magalhaes UNQUALIFIED
Jefferson N FlosiCanadaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Faith E AmigonAustraliaBernardo Dominic RENEWAL
Cody N MaletBrazilXuxue Feng PROPOSAL
James A WaycottIndiaStephen Shaw NEW
Izzy I FerenczUnited KingdomBernardo Dominic NEGOTIATION
Jefferson A OldroydRussiaAnna Fali UNQUALIFIED
James B DarakjyCanadaAnna Fali PROPOSAL
Nicolas Y DarakjyJapanIoni Bowcher PROPOSAL
Greenwood K TollnerSpainIoni Bowcher NEW
Maria M NestleGermanyOnyama Limba PROPOSAL
Antonio T StensethGermanyIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams A MaletRussia2026-07-04Morlong Associates PROPOSAL93Anna Fali
1001Ashley J SaylorsFrance2026-07-03Commercial Press RENEWAL55Elwin Sharvill
1002Greenwood D ChuiSpain2026-07-05Chemel, James L Cpa NEW25Onyama Limba
1003Munro W FollerRussia2026-07-09Chemel, James L Cpa NEW13Stephen Shaw
1004Maisha Y DarakjyRussia2026-07-11Buckley Miller Wright UNQUALIFIED28Amy Elsner
1005Aditya R WieserArgentina2026-06-28Benton, John B Jr PROPOSAL47Asiya Javayant
1006Munro Z MarrierIndia2026-06-24King, Christopher A Esq PROPOSAL97Elwin Sharvill
1007Arvin H FlosiBrazil2026-07-15Feltz Printing Service NEGOTIATION82Elwin Sharvill
1008Sinclair K MarrierBrazil2026-07-07Benton, John B Jr QUALIFIED69Amy Elsner
1009Emily G StensethIndia2026-06-28Chanay, Jeffrey A Esq UNQUALIFIED69Ivan Magalhaes
1010Isabel J TollnerBrazil2026-06-18Buckley Miller Wright PROPOSAL11Onyama Limba
1011Francesco I TollnerCanada2026-07-08Chanay, Jeffrey A Esq RENEWAL11Asiya Javayant
1012Leon Y WhobreyAustralia2026-06-24Printing Dimensions NEGOTIATION9Onyama Limba
1013Morrow M ShinkoJapan2026-07-11Dorl, James J Esq UNQUALIFIED16Onyama Limba
1014Emily N FigeroaAustralia2026-06-21Benton, John B Jr PROPOSAL86Stephen Shaw
1015Tony M BologniaItaly2026-07-03Feltz Printing Service NEW96Anna Fali
1016Cody G DarakjySpain2026-06-23Rangoni Of Florence PROPOSAL40Stephen Shaw
1017Maria G VenereIndia2026-07-06Printing Dimensions NEGOTIATION20Xuxue Feng
1018Ashley H TollnerArgentina2026-07-06Chanay, Jeffrey A Esq QUALIFIED57Xuxue Feng
1019Stacey S CampainSpain2026-07-13King, Christopher A Esq UNQUALIFIED68Ivan Magalhaes
1020Aditya T VenereRussia2026-07-01Feltz Printing Service NEW68Onyama Limba
1021Izzy O DarakjyBrazil2026-06-30Chapman, Ross E Esq NEGOTIATION42Ivan Magalhaes
1022Claire E DoeIndia2026-06-27Morlong Associates PROPOSAL73Anna Fali
1023Mayumi R CaldareraSpain2026-07-02Dorl, James J Esq NEW68Asiya Javayant
1024Emily C RimSpain2026-06-21Truhlar And Truhlar Attys RENEWAL39Asiya Javayant
1025Murillo R WieserAustralia2026-07-15Truhlar And Truhlar Attys QUALIFIED33Stephen Shaw
1026Kadeem J VocelkaUnited Kingdom2026-07-05Truhlar And Truhlar Attys PROPOSAL8Amy Elsner
1027Ricardo Q CaldareraJapan2026-06-27Rousseaux, Michael Esq RENEWAL15Xuxue Feng
1028Morrow A VenereAustralia2026-07-06Printing Dimensions QUALIFIED29Ioni Bowcher
1029Misaki B SergiArgentina2026-06-29Dorl, James J Esq NEGOTIATION95Amy Elsner
1030Jennifer O RulapaughArgentina2026-07-08Printing Dimensions RENEWAL15Bernardo Dominic
1031Ashley J MaletIndia2026-07-06Chanay, Jeffrey A Esq NEW27Amy Elsner
1032Aruna T CaldareraFrance2026-07-11Dorl, James J Esq QUALIFIED13Onyama Limba
1033Kadeem A WhobreyItaly2026-07-03King, Christopher A Esq RENEWAL43Bernardo Dominic
1034Tony X SchemmerFrance2026-07-02Benton, John B Jr RENEWAL63Amy Elsner
1035Isabel Z FollerAustralia2026-07-12Chemel, James L Cpa NEW34Anna Fali
1036Alejandro L SergiCanada2026-06-20Chapman, Ross E Esq NEGOTIATION71Asiya Javayant
1037Maria D SaylorsRussia2026-07-02Morlong Associates UNQUALIFIED39Elwin Sharvill
1038Maria Z RutaRussia2026-06-21Truhlar And Truhlar Attys PROPOSAL2Xuxue Feng
1039Maisha Q WhobreyJapan2026-06-29Rousseaux, Michael Esq RENEWAL80Stephen Shaw
1040Leon L BowleyCanada2026-07-15Chapman, Ross E Esq NEGOTIATION70Stephen Shaw
1041James P WieserItaly2026-07-12King, Christopher A Esq PROPOSAL59Onyama Limba
1042Leja R MarrierGermany2026-06-24Printing Dimensions RENEWAL78Stephen Shaw
1043Chavez O FerenczBrazil2026-07-14Benton, John B Jr NEW39Asiya Javayant
1044David X OstroskySpain2026-06-27Rangoni Of Florence UNQUALIFIED87Anna Fali
1045James S CaldareraArgentina2026-07-08Rousseaux, Michael Esq QUALIFIED81Stephen Shaw
1046Mujtaba V BriddickBrazil2026-07-11Printing Dimensions NEW96Onyama Limba
1047Ricardo N GillianUnited Kingdom2026-06-21Buckley Miller Wright RENEWAL36Asiya Javayant
1048Johnson A KolmetzItaly2026-06-28Chapman, Ross E Esq NEW19Amy Elsner
1049Rodrigues J PerinFrance2026-07-11Chapman, Ross E Esq UNQUALIFIED59Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Antonio Y PaprockiItalyElwin Sharvill NEW
Smith C OldroydUnited KingdomXuxue Feng NEGOTIATION
Jones Z MarrierUnited KingdomStephen Shaw QUALIFIED
Julie H AmigonFranceIoni Bowcher NEGOTIATION
Ricardo X ChuiArgentinaAmy Elsner NEW
Juan A SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Stacey U DilliardIndiaIoni Bowcher NEW
Emily S DarakjyAustraliaIoni Bowcher NEW
Greenwood T RoysterSpainBernardo Dominic NEW
Claire P OldroydSpainBernardo Dominic NEW
Jones D FollerRussiaBernardo Dominic RENEWAL
Julie C PoquetteCanadaBernardo Dominic PROPOSAL
Costa G MorascaSpainAmy Elsner UNQUALIFIED
David J ChuiJapanElwin Sharvill NEW
Aika G CaldareraArgentinaElwin Sharvill PROPOSAL
Arvin P FerenczCanadaBernardo Dominic UNQUALIFIED
Stacey B VenereJapanIoni Bowcher QUALIFIED
Kaitlin E MacleadAustraliaStephen Shaw QUALIFIED
Jones E MorascaGermanyAsiya Javayant NEW
Greenwood C GauchoItalyElwin Sharvill UNQUALIFIED
Johnson F WhobreyGermanyIvan Magalhaes QUALIFIED
Deepesh X ChuiUnited KingdomIvan Magalhaes RENEWAL
Kadeem V MarrierJapanIoni Bowcher NEW
Juan E DoeBrazilIoni Bowcher NEGOTIATION
Salvatore H FerenczJapanStephen Shaw UNQUALIFIED
Alejandro I PerinItalyElwin Sharvill UNQUALIFIED
Wickens A PoquetteUnited KingdomIvan Magalhaes UNQUALIFIED
Antonio O BologniaFranceAnna Fali NEGOTIATION
Clifford J OstroskyItalyOnyama Limba QUALIFIED
Misaki J OstroskyJapanAsiya Javayant NEW
Kaitlin N KolmetzSpainIoni Bowcher NEW
James A NestleCanadaAmy Elsner UNQUALIFIED
Ricardo J DarakjyArgentinaAsiya Javayant NEW
Darci U ShinkoArgentinaIoni Bowcher QUALIFIED
Costa R FigeroaJapanBernardo Dominic PROPOSAL
Jennifer J NestleItalyBernardo Dominic NEW
Jefferson J BowleyRussiaIoni Bowcher QUALIFIED
Jennifer P CaudyRussiaIvan Magalhaes QUALIFIED
Greenwood H VocelkaRussiaOnyama Limba NEGOTIATION
Mujtaba Z GauchoJapanAmy Elsner UNQUALIFIED
Misaki J SergiAustraliaAsiya Javayant PROPOSAL
Cody X OldroydGermanyBernardo Dominic QUALIFIED
Faith Z CaldareraFranceIoni Bowcher PROPOSAL
Maisha G IturbideJapanXuxue Feng NEGOTIATION
David Q NickaUnited KingdomIvan Magalhaes PROPOSAL
Maria K RutaItalyIoni Bowcher NEGOTIATION
Claire I FigeroaItalyBernardo Dominic NEGOTIATION
Jeanfrancois X PerinUnited KingdomIvan Magalhaes NEGOTIATION
Deepesh L WhobreyBrazilOnyama Limba RENEWAL
Mujtaba C BriddickSpainStephen Shaw NEW
Frozen Columns
Name
Jones U Royster
Darci P Slusarski
Tony I Waycott
Jeanfrancois B Caldarera
Kadeem E Stockham
Morrow E Ruta
Wickens X Sergi
Jeanfrancois G Rulapaugh
Julie P Whobrey
Antonio D Poquette
Stacey B Vocelka
Chavez S Glick
Antonio F Gillian
Nicolas M Ferencz
Aika H Caldarera
Isabel A Shinko
Emily L Paprocki
Antonio H Perin
Morrow X Kusko
Misaki V Doe
Maria K Caudy
Deepesh B Caldarera
Jefferson G Campain
Greenwood T Iturbide
Jones Y Schemmer
Aditya J Morasca
Aika X Sergi
Tony Y Slusarski
Alejandro S Albares
Wickens C Flosi
Leon T Stenseth
Ashley M Kusko
Ashley T Gaucho
Jennifer A Ruta
Leon D Ostrosky
Alejandro E Nicka
Jones E Amigon
Mayumi H Tollner
Sinclair O Marrier
Clifford Y Waycott
Juan A Paprocki
Alejandro J Gillian
Leon M Whobrey
Deepesh E Bolognia
Murillo H Malet
Faith C Royster
Costa U Darakjy
Silvio M Figeroa
Misaki L Saylors
Ricardo X Venere
IdCountryDate
1000Germany2026-06-20
1001Germany2026-07-05
1002Spain2026-06-19
1003Canada2026-06-25
1004Argentina2026-06-29
1005France2026-07-09
1006Germany2026-06-27
1007Spain2026-06-27
1008Spain2026-06-17
1009Germany2026-06-29
1010Argentina2026-07-08
1011Brazil2026-07-14
1012Germany2026-07-12
1013France2026-07-11
1014Argentina2026-06-19
1015Italy2026-06-24
1016India2026-07-13
1017Japan2026-06-28
1018Brazil2026-06-21
1019Japan2026-06-29
1020Italy2026-07-11
1021Italy2026-07-16
1022Spain2026-06-19
1023Russia2026-06-30
1024Brazil2026-07-10
1025Argentina2026-07-15
1026Russia2026-07-02
1027United Kingdom2026-06-29
1028Australia2026-07-09
1029India2026-07-09
1030Australia2026-06-30
1031France2026-06-17
1032Russia2026-07-01
1033Spain2026-07-15
1034Spain2026-06-29
1035United Kingdom2026-07-06
1036France2026-07-06
1037United Kingdom2026-07-04
1038Spain2026-06-19
1039France2026-06-29
1040France2026-07-12
1041India2026-07-09
1042Japan2026-07-13
1043Japan2026-07-09
1044India2026-06-22
1045France2026-06-22
1046France2026-06-27
1047Brazil2026-06-24
1048Germany2026-06-29
1049United Kingdom2026-07-10

On-Demand Data

NameIdCountryDate
Silvio Q Poquette1000Australia2026-07-07
Deepesh K Stockham1001Italy2026-06-23
Wickens D Iturbide1002Japan2026-06-19
Adams H Bowley1003Germany2026-06-18
Jones B Paprocki1004Brazil2026-07-03
Claire D Inouye1005Spain2026-06-30
Arvin H Ferencz1006Japan2026-07-08
Greenwood L Morasca1007Argentina2026-06-20
Chavez I Ferencz1008India2026-06-29
Octavia N Albares1009Argentina2026-07-02
Salvatore A Ferencz1010United Kingdom2026-07-02
Julie Q Doe1011Spain2026-07-09
Kaitlin R Kolmetz1012France2026-06-26
Tony U Butt1013Brazil2026-07-14
Wickens X Maclead1014India2026-06-20
Juan J Nestle1015Canada2026-06-19
Jefferson Y Waycott1016Canada2026-07-10
Costa E Flosi1017Germany2026-07-14
Ricardo Z Poquette1018Argentina2026-06-17
Darci M Bowley1019Spain2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley Z FigeroaGermanyAmy Elsner PROPOSAL
Adams I StensethIndiaIvan Magalhaes UNQUALIFIED
Tony K ChuiGermanyOnyama Limba NEW
Clifford S ButtCanadaAsiya Javayant UNQUALIFIED
Antonio F SlusarskiItalyAnna Fali PROPOSAL
Alejandro K StockhamUnited KingdomIvan Magalhaes QUALIFIED
Sinclair U WhobreyArgentinaAsiya Javayant QUALIFIED
Octavia L MacleadArgentinaIoni Bowcher PROPOSAL
Stacey S CampainIndiaAnna Fali QUALIFIED
James J BriddickSpainAmy Elsner NEGOTIATION
Costa K OstroskyAustraliaOnyama Limba QUALIFIED
Greenwood N VenereJapanBernardo Dominic NEGOTIATION
Murillo I AmigonIndiaOnyama Limba RENEWAL
Silvio X StensethAustraliaAsiya Javayant RENEWAL
Salvatore E InouyeAustraliaIvan Magalhaes NEW
Alejandro R AlbaresItalyXuxue Feng NEW
Claire V BriddickJapanIoni Bowcher PROPOSAL
Munro M GlickGermanyOnyama Limba UNQUALIFIED
Kadeem D RutaGermanyIvan Magalhaes NEGOTIATION
Juan N WaycottJapanIvan Magalhaes PROPOSAL
Jones R VocelkaArgentinaXuxue Feng RENEWAL
Octavia Z FollerUnited KingdomOnyama Limba RENEWAL
Alejandro X OldroydItalyOnyama Limba RENEWAL
Francesco G MaletBrazilXuxue Feng PROPOSAL
Emily O StensethItalyXuxue Feng PROPOSAL
Maria M KuskoIndiaBernardo Dominic NEW
Kadeem L BologniaItalyIoni Bowcher QUALIFIED
Stacey L ButtAustraliaIoni Bowcher PROPOSAL
Emily O RimRussiaIoni Bowcher RENEWAL
Murillo C BologniaJapanIvan Magalhaes QUALIFIED
Isabel D BriddickCanadaAsiya Javayant UNQUALIFIED
Munro Q AlbaresCanadaElwin Sharvill NEGOTIATION
Ivar O PerinArgentinaBernardo Dominic RENEWAL
Leon B WhobreyIndiaAsiya Javayant NEW
Aruna S NickaGermanyAsiya Javayant RENEWAL
Julie S WieserBrazilStephen Shaw PROPOSAL
Costa K OldroydRussiaAsiya Javayant QUALIFIED
Arvin U DarakjyArgentinaAnna Fali PROPOSAL
Aditya R CaldareraArgentinaOnyama Limba RENEWAL
Claire X BologniaFranceIvan Magalhaes UNQUALIFIED

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