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
Aika X ButtIndiaIoni Bowcher NEW
Chavez T FerenczItalyBernardo Dominic QUALIFIED
Ivar E IturbideItalyElwin Sharvill UNQUALIFIED
Jefferson D CaudyFranceStephen Shaw UNQUALIFIED
Cody U CampainFranceIoni Bowcher UNQUALIFIED
Darci W AlbaresItalyAsiya Javayant QUALIFIED
Silvio B DoeUnited KingdomOnyama Limba RENEWAL
Julie W RutaJapanAnna Fali NEW
James P ShinkoGermanyIoni Bowcher RENEWAL
Clifford O ShinkoGermanyAnna Fali NEGOTIATION
Izzy S MorascaRussiaIoni Bowcher RENEWAL
Arvin T AmigonArgentinaAmy Elsner RENEWAL
Octavia D SaylorsCanadaStephen Shaw NEGOTIATION
Mujtaba I TollnerUnited KingdomAsiya Javayant PROPOSAL
Jones T SchemmerJapanIvan Magalhaes RENEWAL
Stacey O GauchoBrazilIvan Magalhaes RENEWAL
Morrow K ShinkoCanadaXuxue Feng PROPOSAL
Aruna K BologniaSpainElwin Sharvill NEGOTIATION
Leon C NickaIndiaIoni Bowcher UNQUALIFIED
Mujtaba A NickaGermanyAnna Fali NEW
Ivar M ButtSpainAnna Fali NEGOTIATION
David B SlusarskiItalyIoni Bowcher NEGOTIATION
Alejandro J FlosiFranceAnna Fali PROPOSAL
Alejandro C BologniaUnited KingdomOnyama Limba PROPOSAL
Munro Q AmigonAustraliaIvan Magalhaes RENEWAL
Chavez E GlickBrazilElwin Sharvill QUALIFIED
Aika C ShinkoFranceIoni Bowcher NEW
Juan E KuskoIndiaAsiya Javayant RENEWAL
Maisha U WieserSpainIvan Magalhaes NEGOTIATION
James B AlbaresJapanStephen Shaw NEW
Francesco A CampainFranceXuxue Feng NEW
James T WhobreyArgentinaIvan Magalhaes PROPOSAL
Jeanfrancois I AlbaresBrazilAmy Elsner UNQUALIFIED
Smith C AmigonIndiaAmy Elsner UNQUALIFIED
Antonio S KuskoRussiaOnyama Limba RENEWAL
Julie O AmigonRussiaStephen Shaw RENEWAL
Emily B VocelkaBrazilIoni Bowcher UNQUALIFIED
Octavia T RulapaughIndiaElwin Sharvill UNQUALIFIED
Ricardo M KolmetzCanadaAsiya Javayant QUALIFIED
Aika N BowleyBrazilElwin Sharvill PROPOSAL
Wickens X ButtItalyIvan Magalhaes QUALIFIED
Leon K WieserAustraliaBernardo Dominic NEW
Octavia S GlickArgentinaIvan Magalhaes NEW
Rodrigues E GarufiFranceIoni Bowcher UNQUALIFIED
Antonio W BowleyArgentinaAsiya Javayant RENEWAL
Costa Q MaletFranceElwin Sharvill NEGOTIATION
James M SergiItalyIvan Magalhaes UNQUALIFIED
Murillo J NestleItalyXuxue Feng NEW
Johnson D BologniaRussiaAsiya Javayant QUALIFIED
Nicolas S FollerArgentinaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Jennifer G MacleadArgentinaAmy Elsner PROPOSAL
Octavia C KuskoRussiaAsiya Javayant QUALIFIED
Rodrigues W DoeGermanyIoni Bowcher NEW
Ivar S VenereItalyAsiya Javayant NEW
Leja X PoquetteBrazilIvan Magalhaes QUALIFIED
Darci U TollnerFranceElwin Sharvill UNQUALIFIED
Francesco R SergiFranceAmy Elsner RENEWAL
Francesco W RoysterBrazilIvan Magalhaes NEGOTIATION
Kadeem N PoquetteAustraliaIoni Bowcher PROPOSAL
Stacey H OstroskyItalyXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba G SaylorsRussia2026-07-08King, Christopher A Esq RENEWAL21Amy Elsner
1001Nicolas L SchemmerIndia2026-06-12Chemel, James L Cpa NEGOTIATION3Xuxue Feng
1002Aika R StensethSpain2026-07-04Rousseaux, Michael Esq RENEWAL16Elwin Sharvill
1003Costa W GillianUnited Kingdom2026-07-02Commercial Press RENEWAL25Stephen Shaw
1004Wickens K WaycottUnited Kingdom2026-06-17Morlong Associates RENEWAL63Stephen Shaw
1005Francesco C AmigonAustralia2026-06-24Feltz Printing Service QUALIFIED37Elwin Sharvill
1006Octavia V CampainArgentina2026-07-01Dorl, James J Esq NEGOTIATION13Asiya Javayant
1007Izzy Q WieserBrazil2026-06-25Dorl, James J Esq PROPOSAL2Amy Elsner
1008Aruna C SaylorsIndia2026-06-16Buckley Miller Wright QUALIFIED31Ivan Magalhaes
1009Cody U DarakjyItaly2026-06-18Dorl, James J Esq UNQUALIFIED57Ivan Magalhaes
1010Jeanfrancois X RutaJapan2026-06-25Printing Dimensions PROPOSAL53Ioni Bowcher
1011Izzy E OldroydIndia2026-06-11Chapman, Ross E Esq QUALIFIED43Ivan Magalhaes
1012Antonio L PaprockiArgentina2026-06-20Commercial Press RENEWAL85Xuxue Feng
1013Clifford J FerenczSpain2026-07-07Rousseaux, Michael Esq RENEWAL44Onyama Limba
1014Costa I VenereAustralia2026-06-13Truhlar And Truhlar Attys NEGOTIATION87Bernardo Dominic
1015Arvin W NickaJapan2026-06-26Truhlar And Truhlar Attys UNQUALIFIED25Elwin Sharvill
1016Antonio F WieserFrance2026-06-20Feiner Bros PROPOSAL38Xuxue Feng
1017Silvio Q MaletCanada2026-06-28Buckley Miller Wright NEW39Stephen Shaw
1018Emily O OstroskyIndia2026-06-16Printing Dimensions PROPOSAL36Elwin Sharvill
1019Maria H SergiBrazil2026-06-20Truhlar And Truhlar Attys RENEWAL92Bernardo Dominic
1020Mujtaba A RoysterFrance2026-06-23Morlong Associates UNQUALIFIED85Onyama Limba
1021Johnson V KuskoFrance2026-06-11Truhlar And Truhlar Attys UNQUALIFIED69Amy Elsner
1022Leon D DoeCanada2026-07-07Morlong Associates NEW48Stephen Shaw
1023Leja M InouyeBrazil2026-06-22Feltz Printing Service PROPOSAL85Xuxue Feng
1024Francesco V WaycottGermany2026-06-13Truhlar And Truhlar Attys UNQUALIFIED24Ioni Bowcher
1025Aika Z KuskoSpain2026-06-20Chanay, Jeffrey A Esq QUALIFIED62Xuxue Feng
1026Salvatore I GillianRussia2026-06-13Morlong Associates UNQUALIFIED80Onyama Limba
1027Chavez M NickaJapan2026-07-03Truhlar And Truhlar Attys PROPOSAL9Anna Fali
1028Rodrigues Q ChuiIndia2026-06-21Chapman, Ross E Esq UNQUALIFIED52Stephen Shaw
1029Adams K GillianRussia2026-06-10King, Christopher A Esq RENEWAL31Ivan Magalhaes
1030Adams N NickaAustralia2026-07-06Chapman, Ross E Esq PROPOSAL18Onyama Limba
1031Costa Z OstroskySpain2026-07-06Morlong Associates RENEWAL17Stephen Shaw
1032Johnson O BowleyGermany2026-07-03Dorl, James J Esq UNQUALIFIED62Ivan Magalhaes
1033Francesco J WaycottFrance2026-06-30Printing Dimensions PROPOSAL2Asiya Javayant
1034Morrow X BriddickSpain2026-06-15Commercial Press NEW1Onyama Limba
1035Izzy H ShinkoBrazil2026-07-02Rousseaux, Michael Esq NEGOTIATION48Asiya Javayant
1036Misaki L PoquetteSpain2026-06-10Dorl, James J Esq UNQUALIFIED9Bernardo Dominic
1037Salvatore C DilliardArgentina2026-06-20Rousseaux, Michael Esq NEGOTIATION15Amy Elsner
1038Octavia I TollnerArgentina2026-06-28Feltz Printing Service QUALIFIED47Stephen Shaw
1039Ashley H FlosiJapan2026-07-08Feiner Bros QUALIFIED63Elwin Sharvill
1040Emily S WaycottGermany2026-06-14Chemel, James L Cpa UNQUALIFIED47Stephen Shaw
1041Kaitlin F DarakjyItaly2026-06-29Rousseaux, Michael Esq PROPOSAL28Ivan Magalhaes
1042Jefferson L RimArgentina2026-07-09Rousseaux, Michael Esq PROPOSAL48Onyama Limba
1043Emily F StensethJapan2026-06-10Rangoni Of Florence RENEWAL59Onyama Limba
1044Mayumi K DarakjyUnited Kingdom2026-06-26Chemel, James L Cpa NEW63Onyama Limba
1045Sinclair U RimAustralia2026-07-02Dorl, James J Esq NEGOTIATION58Bernardo Dominic
1046Aruna T TollnerCanada2026-06-18Printing Dimensions UNQUALIFIED66Amy Elsner
1047Jones V RimRussia2026-07-09Commercial Press RENEWAL58Onyama Limba
1048Mujtaba S NickaCanada2026-07-09Chemel, James L Cpa PROPOSAL8Onyama Limba
1049Izzy S TollnerCanada2026-06-19Commercial Press PROPOSAL27Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Claire A BriddickIndiaAmy Elsner NEGOTIATION
Aruna I OstroskyArgentinaIoni Bowcher RENEWAL
Maria Y FlosiArgentinaXuxue Feng PROPOSAL
Silvio A CaudyArgentinaIoni Bowcher QUALIFIED
Johnson K TollnerAustraliaAmy Elsner NEGOTIATION
Emily S GarufiRussiaAsiya Javayant RENEWAL
Maria P VenereArgentinaOnyama Limba PROPOSAL
David C PaprockiCanadaAmy Elsner NEGOTIATION
Francesco V StensethUnited KingdomStephen Shaw UNQUALIFIED
Arvin V StensethFranceOnyama Limba PROPOSAL
Francesco K WhobreyUnited KingdomIvan Magalhaes QUALIFIED
Aditya E RoysterFranceIoni Bowcher UNQUALIFIED
Isabel R MorascaArgentinaStephen Shaw NEGOTIATION
Francesco E FerenczArgentinaXuxue Feng QUALIFIED
Nicolas W BologniaArgentinaStephen Shaw NEGOTIATION
Chavez Y SchemmerCanadaOnyama Limba RENEWAL
Misaki L MacleadBrazilStephen Shaw UNQUALIFIED
Emily K MaletSpainAnna Fali RENEWAL
Clifford Y WieserSpainAmy Elsner UNQUALIFIED
Emily W RutaAustraliaXuxue Feng NEGOTIATION
Antonio Y AlbaresGermanyIvan Magalhaes PROPOSAL
Ashley P NickaJapanAmy Elsner UNQUALIFIED
Aditya P AmigonCanadaIoni Bowcher QUALIFIED
Adams L RulapaughUnited KingdomAnna Fali QUALIFIED
Silvio F GarufiAustraliaAmy Elsner UNQUALIFIED
Isabel J CampainItalyOnyama Limba QUALIFIED
Costa D OldroydCanadaAnna Fali UNQUALIFIED
Morrow E PoquetteGermanyBernardo Dominic RENEWAL
Wickens T WaycottSpainIvan Magalhaes RENEWAL
Juan Z FerenczArgentinaAsiya Javayant RENEWAL
Aditya K PoquetteSpainStephen Shaw NEGOTIATION
Isabel S FigeroaIndiaIvan Magalhaes QUALIFIED
Leja X ChuiJapanOnyama Limba NEW
Francesco B OstroskyFranceElwin Sharvill QUALIFIED
James E BowleyGermanyIoni Bowcher QUALIFIED
Arvin U RutaGermanyAmy Elsner UNQUALIFIED
Aruna A WaycottItalyStephen Shaw PROPOSAL
Salvatore C GauchoCanadaAnna Fali QUALIFIED
Emily Z MarrierJapanAsiya Javayant NEGOTIATION
Julie S SchemmerArgentinaAmy Elsner UNQUALIFIED
Cody N StockhamItalyIvan Magalhaes QUALIFIED
Emily T PerinRussiaAmy Elsner NEGOTIATION
Ivar E GarufiCanadaAnna Fali QUALIFIED
Emily T MorascaItalyStephen Shaw UNQUALIFIED
Adams X MarrierUnited KingdomIvan Magalhaes NEGOTIATION
Nicolas B InouyeCanadaIvan Magalhaes QUALIFIED
Cody C BologniaBrazilXuxue Feng UNQUALIFIED
Morrow N TollnerSpainOnyama Limba UNQUALIFIED
Maisha S RoysterJapanAsiya Javayant PROPOSAL
David N NickaArgentinaStephen Shaw QUALIFIED
Frozen Columns
Name
Jefferson U Dilliard
Francesco N Gillian
Clifford D Kusko
Julie Q Nestle
Antonio L Nestle
Munro A Briddick
Jeanfrancois V Shinko
Aditya J Dilliard
Maisha G Bolognia
Izzy I Dilliard
Murillo E Gillian
Munro J Malet
Adams G Schemmer
Izzy D Figeroa
Darci L Iturbide
Maisha G Garufi
Nicolas V Albares
Deepesh O Campain
Munro F Vocelka
Mujtaba P Wieser
Jeanfrancois U Inouye
Clifford U Marrier
Mujtaba P Maclead
Faith K Tollner
Mayumi W Tollner
Greenwood D Paprocki
Jones B Poquette
Misaki X Flosi
Izzy R Malet
Kadeem Y Perin
Cody R Albares
James V Amigon
Murillo H Saylors
Julie P Royster
Mayumi J Nicka
Claire Y Royster
Silvio H Royster
Jefferson U Paprocki
Rodrigues T Perin
Greenwood B Albares
Misaki V Amigon
James H Whobrey
Octavia P Venere
Jones P Kolmetz
Silvio V Sergi
Misaki T Oldroyd
Munro L Darakjy
Ivar G Rulapaugh
Emily L Flosi
Salvatore S Figeroa
IdCountryDate
1000Australia2026-06-11
1001United Kingdom2026-06-15
1002Canada2026-07-01
1003Italy2026-06-25
1004Germany2026-06-27
1005Germany2026-06-11
1006Japan2026-06-12
1007Japan2026-06-16
1008India2026-06-13
1009Russia2026-07-08
1010United Kingdom2026-06-12
1011France2026-06-30
1012Russia2026-06-27
1013India2026-06-19
1014Argentina2026-06-12
1015Italy2026-07-01
1016Russia2026-06-23
1017Canada2026-06-20
1018India2026-06-11
1019Australia2026-06-10
1020Japan2026-06-20
1021Argentina2026-06-19
1022Germany2026-06-25
1023Japan2026-06-30
1024Argentina2026-07-04
1025Russia2026-06-26
1026Germany2026-06-11
1027Spain2026-06-23
1028Australia2026-06-15
1029Brazil2026-07-01
1030United Kingdom2026-06-11
1031India2026-07-05
1032Brazil2026-06-25
1033Germany2026-07-01
1034Spain2026-06-16
1035Russia2026-07-03
1036Italy2026-07-02
1037India2026-07-03
1038Argentina2026-06-24
1039Australia2026-07-05
1040India2026-06-10
1041India2026-07-06
1042France2026-06-26
1043Brazil2026-07-01
1044Japan2026-07-06
1045United Kingdom2026-06-27
1046Italy2026-06-12
1047Italy2026-06-10
1048Russia2026-06-13
1049Brazil2026-06-30

On-Demand Data

NameIdCountryDate
Smith P Garufi1000Canada2026-06-15
Ashley T Kolmetz1001Italy2026-06-20
Salvatore W Wieser1002Canada2026-06-16
Costa T Garufi1003Japan2026-06-20
Sinclair B Kusko1004Argentina2026-06-30
Ivar E Slusarski1005Germany2026-07-07
Maisha H Oldroyd1006France2026-07-01
Stacey I Poquette1007Canada2026-06-28
Deepesh W Gaucho1008Germany2026-06-19
Antonio S Malet1009Brazil2026-06-16
Munro Y Shinko1010India2026-06-30
Francesco V Rulapaugh1011Canada2026-06-16
Isabel Y Sergi1012Canada2026-06-23
Faith M Stockham1013Germany2026-06-13
Francesco W Waycott1014Argentina2026-07-02
David T Figeroa1015Germany2026-07-03
Chavez L Nicka1016Russia2026-06-25
Deepesh K Flosi1017Brazil2026-06-11
Aditya O Albares1018Italy2026-07-01
Ricardo Z Poquette1019Germany2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair Q AlbaresIndiaStephen Shaw UNQUALIFIED
Aruna B GarufiItalyAnna Fali NEW
Johnson E PerinUnited KingdomStephen Shaw PROPOSAL
Faith O MarrierFranceXuxue Feng NEGOTIATION
Kaitlin Q FerenczArgentinaOnyama Limba NEGOTIATION
Silvio K OldroydUnited KingdomOnyama Limba UNQUALIFIED
Ivar T SaylorsItalyAsiya Javayant PROPOSAL
Smith T BriddickCanadaAsiya Javayant PROPOSAL
Arvin K BologniaIndiaBernardo Dominic NEGOTIATION
Emily K MorascaGermanyIvan Magalhaes NEGOTIATION
James P VenereAustraliaOnyama Limba QUALIFIED
Deepesh F KolmetzSpainAsiya Javayant QUALIFIED
Leon G WaycottSpainElwin Sharvill NEGOTIATION
Jones G WaycottCanadaIvan Magalhaes UNQUALIFIED
Misaki H FlosiSpainElwin Sharvill RENEWAL
Adams P SlusarskiBrazilAsiya Javayant QUALIFIED
Adams A AlbaresBrazilIoni Bowcher PROPOSAL
Ricardo L WieserItalyElwin Sharvill PROPOSAL
Mujtaba D MacleadUnited KingdomBernardo Dominic RENEWAL
Kaitlin R FerenczJapanIoni Bowcher RENEWAL
Silvio A FerenczSpainElwin Sharvill PROPOSAL
Darci W StockhamCanadaElwin Sharvill NEGOTIATION
Murillo D WhobreyJapanAmy Elsner PROPOSAL
Cody B FollerSpainXuxue Feng NEGOTIATION
Ricardo D FigeroaBrazilAnna Fali PROPOSAL
Aika M ShinkoCanadaXuxue Feng QUALIFIED
Salvatore U PoquetteCanadaAsiya Javayant QUALIFIED
Munro B KolmetzJapanElwin Sharvill QUALIFIED
Arvin H OstroskyJapanAsiya Javayant NEGOTIATION
Greenwood O DarakjyBrazilAmy Elsner PROPOSAL
Morrow Y VocelkaItalyBernardo Dominic NEGOTIATION
Faith D NestleIndiaIoni Bowcher RENEWAL
David W ChuiArgentinaStephen Shaw NEW
Arvin Q TollnerIndiaIvan Magalhaes NEGOTIATION
Aika T RutaGermanyStephen Shaw NEGOTIATION
Chavez J NickaArgentinaOnyama Limba QUALIFIED
Izzy Q OldroydJapanXuxue Feng QUALIFIED
Darci P BowleyJapanBernardo Dominic PROPOSAL
Adams Y InouyeBrazilAsiya Javayant NEGOTIATION
Murillo W SchemmerJapanAsiya Javayant 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>