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
Ashley W GauchoItalyIvan Magalhaes PROPOSAL
Maria B SergiFranceStephen Shaw QUALIFIED
Jeanfrancois O PerinAustraliaBernardo Dominic PROPOSAL
Smith B DoeItalyIvan Magalhaes RENEWAL
Murillo V WieserGermanyOnyama Limba NEW
Emily S StockhamIndiaBernardo Dominic RENEWAL
Smith X NestleBrazilElwin Sharvill UNQUALIFIED
Darci C SchemmerGermanyStephen Shaw NEGOTIATION
Munro X CaldareraSpainElwin Sharvill RENEWAL
Jones L OldroydArgentinaStephen Shaw RENEWAL
Aruna S PoquetteBrazilAsiya Javayant QUALIFIED
Aruna H WaycottAustraliaAmy Elsner NEW
Tony D NickaIndiaElwin Sharvill RENEWAL
Emily B NickaRussiaElwin Sharvill PROPOSAL
Sinclair H FollerBrazilXuxue Feng RENEWAL
Cody M GillianAustraliaAmy Elsner NEGOTIATION
Ricardo M GlickRussiaElwin Sharvill RENEWAL
David S GarufiRussiaBernardo Dominic UNQUALIFIED
Stacey Q InouyeIndiaAnna Fali RENEWAL
Emily H MaletSpainIvan Magalhaes NEW
Costa R SlusarskiCanadaIoni Bowcher PROPOSAL
Claire S GauchoCanadaAmy Elsner PROPOSAL
Arvin G RulapaughCanadaOnyama Limba QUALIFIED
Munro H RutaJapanStephen Shaw PROPOSAL
Ashley K TollnerIndiaAnna Fali NEGOTIATION
Clifford F SchemmerCanadaIvan Magalhaes NEW
Jeanfrancois R SlusarskiBrazilXuxue Feng QUALIFIED
Ivar K BologniaRussiaBernardo Dominic NEGOTIATION
Leon P RoysterItalyAmy Elsner PROPOSAL
Izzy X NestleIndiaStephen Shaw RENEWAL
Jennifer B InouyeAustraliaIvan Magalhaes NEW
Mayumi T ShinkoRussiaStephen Shaw UNQUALIFIED
Maria I CaudyUnited KingdomBernardo Dominic UNQUALIFIED
James J AlbaresIndiaAmy Elsner PROPOSAL
Leja M GauchoBrazilStephen Shaw PROPOSAL
Rodrigues B MaletBrazilAnna Fali PROPOSAL
Smith O ButtGermanyIoni Bowcher RENEWAL
Kadeem A InouyeFranceAsiya Javayant QUALIFIED
Morrow V CaudyJapanOnyama Limba NEW
Ashley F DarakjyItalyXuxue Feng UNQUALIFIED
Isabel Y PoquetteSpainBernardo Dominic RENEWAL
Chavez G OldroydArgentinaAsiya Javayant UNQUALIFIED
Deepesh D PerinIndiaOnyama Limba UNQUALIFIED
Alejandro L FigeroaUnited KingdomAsiya Javayant PROPOSAL
Wickens A VocelkaGermanyIvan Magalhaes RENEWAL
Claire I GarufiJapanBernardo Dominic NEW
Ashley A FigeroaItalyStephen Shaw UNQUALIFIED
Adams O GlickCanadaAmy Elsner QUALIFIED
Julie T ChuiGermanyAmy Elsner RENEWAL
Francesco X GauchoAustraliaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Arvin I StensethFranceAnna Fali RENEWAL
Leon F CampainRussiaStephen Shaw PROPOSAL
Aruna N SaylorsJapanIvan Magalhaes UNQUALIFIED
Munro P OldroydBrazilBernardo Dominic UNQUALIFIED
Adams W ChuiSpainAmy Elsner NEGOTIATION
Silvio R SaylorsUnited KingdomAnna Fali NEGOTIATION
Francesco Z MaletUnited KingdomIoni Bowcher QUALIFIED
Jones E PoquetteItalyXuxue Feng NEW
Isabel C MacleadIndiaIoni Bowcher PROPOSAL
Leon S GillianJapanAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez C GauchoItaly2026-06-09Chanay, Jeffrey A Esq PROPOSAL34Amy Elsner
1001Maisha Y OstroskyAustralia2026-06-30Benton, John B Jr NEGOTIATION45Stephen Shaw
1002Munro Q InouyeCanada2026-06-14Truhlar And Truhlar Attys UNQUALIFIED68Elwin Sharvill
1003Francesco V OldroydItaly2026-06-30Feltz Printing Service NEW9Onyama Limba
1004Salvatore B GlickUnited Kingdom2026-06-30Benton, John B Jr PROPOSAL10Anna Fali
1005Antonio M DilliardJapan2026-06-24Rousseaux, Michael Esq UNQUALIFIED37Ioni Bowcher
1006Julie A SchemmerAustralia2026-07-08Rangoni Of Florence NEGOTIATION94Amy Elsner
1007Julie D GillianGermany2026-07-06Feiner Bros UNQUALIFIED85Anna Fali
1008Silvio P AmigonRussia2026-07-02Dorl, James J Esq UNQUALIFIED89Stephen Shaw
1009Maisha J InouyeIndia2026-06-18Morlong Associates QUALIFIED98Stephen Shaw
1010David Y RulapaughIndia2026-06-25Morlong Associates RENEWAL67Elwin Sharvill
1011Ivar W CaudyGermany2026-07-06Rousseaux, Michael Esq UNQUALIFIED90Asiya Javayant
1012Francesco M WaycottCanada2026-06-10Commercial Press NEGOTIATION33Anna Fali
1013Costa D OldroydSpain2026-07-03Benton, John B Jr NEW85Anna Fali
1014Jennifer H MaletCanada2026-06-18Buckley Miller Wright QUALIFIED25Ivan Magalhaes
1015Misaki W RimFrance2026-07-08Chapman, Ross E Esq NEW68Amy Elsner
1016Kaitlin M ButtBrazil2026-07-02Truhlar And Truhlar Attys UNQUALIFIED32Bernardo Dominic
1017Mayumi H FigeroaArgentina2026-07-04Chemel, James L Cpa NEW79Elwin Sharvill
1018Leja E NestleUnited Kingdom2026-06-21Chemel, James L Cpa NEW58Amy Elsner
1019Maria Z AmigonArgentina2026-06-19Truhlar And Truhlar Attys NEGOTIATION35Stephen Shaw
1020Darci O NickaArgentina2026-07-08Feiner Bros UNQUALIFIED57Ivan Magalhaes
1021Ashley M OstroskyAustralia2026-06-15Truhlar And Truhlar Attys QUALIFIED50Ioni Bowcher
1022Adams I PoquetteUnited Kingdom2026-06-22Commercial Press QUALIFIED29Amy Elsner
1023Misaki K StensethFrance2026-06-25Rangoni Of Florence UNQUALIFIED89Xuxue Feng
1024Clifford X FlosiUnited Kingdom2026-07-01Chemel, James L Cpa UNQUALIFIED13Onyama Limba
1025Greenwood S DoeRussia2026-06-26King, Christopher A Esq QUALIFIED74Bernardo Dominic
1026Stacey G WieserUnited Kingdom2026-06-14Rangoni Of Florence NEW18Ivan Magalhaes
1027Sinclair H StensethArgentina2026-06-09Rangoni Of Florence RENEWAL0Ivan Magalhaes
1028Leon C KuskoGermany2026-06-23Commercial Press UNQUALIFIED61Amy Elsner
1029Costa U VocelkaCanada2026-07-03Rousseaux, Michael Esq UNQUALIFIED94Xuxue Feng
1030Munro C FollerItaly2026-06-10Chemel, James L Cpa QUALIFIED96Xuxue Feng
1031Mayumi I DoeBrazil2026-07-06Commercial Press UNQUALIFIED66Ioni Bowcher
1032Darci V WhobreyAustralia2026-06-17Chapman, Ross E Esq PROPOSAL46Xuxue Feng
1033Johnson F GillianCanada2026-07-01Printing Dimensions NEW44Ioni Bowcher
1034Munro B RulapaughRussia2026-06-19Benton, John B Jr RENEWAL21Bernardo Dominic
1035Leon V ShinkoGermany2026-06-27Feltz Printing Service QUALIFIED31Amy Elsner
1036Mujtaba F TollnerUnited Kingdom2026-06-29Chemel, James L Cpa QUALIFIED33Stephen Shaw
1037Claire T InouyeJapan2026-06-13Morlong Associates NEW22Asiya Javayant
1038Jennifer X NestleRussia2026-07-05Chapman, Ross E Esq RENEWAL16Amy Elsner
1039Ivar Z MacleadArgentina2026-06-30Chapman, Ross E Esq PROPOSAL86Asiya Javayant
1040James U StockhamFrance2026-06-11Chapman, Ross E Esq NEW70Amy Elsner
1041Salvatore U DarakjyRussia2026-06-18Chapman, Ross E Esq RENEWAL90Asiya Javayant
1042Clifford U OstroskyArgentina2026-06-17Commercial Press RENEWAL50Ivan Magalhaes
1043Johnson J FollerCanada2026-07-08Truhlar And Truhlar Attys NEGOTIATION36Elwin Sharvill
1044David A RutaCanada2026-06-21Feltz Printing Service UNQUALIFIED56Xuxue Feng
1045Arvin V FlosiItaly2026-07-04King, Christopher A Esq UNQUALIFIED91Anna Fali
1046Deepesh F KolmetzGermany2026-06-11Benton, John B Jr NEGOTIATION13Ivan Magalhaes
1047Aika C DoeJapan2026-06-28King, Christopher A Esq RENEWAL12Xuxue Feng
1048Jones B MaletJapan2026-06-26Truhlar And Truhlar Attys RENEWAL22Xuxue Feng
1049Jefferson H MaletIndia2026-06-13Printing Dimensions UNQUALIFIED76Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leon Y SchemmerItalyElwin Sharvill RENEWAL
Ashley I AmigonAustraliaBernardo Dominic RENEWAL
Isabel I AmigonItalyXuxue Feng UNQUALIFIED
Johnson F RutaItalyStephen Shaw RENEWAL
Morrow Q GillianUnited KingdomXuxue Feng QUALIFIED
Emily D MaletItalyStephen Shaw QUALIFIED
Salvatore N FlosiItalyBernardo Dominic NEGOTIATION
Silvio Q MacleadCanadaIoni Bowcher UNQUALIFIED
Faith Q WieserCanadaXuxue Feng NEGOTIATION
Izzy R BologniaIndiaBernardo Dominic NEGOTIATION
Francesco F MorascaItalyStephen Shaw UNQUALIFIED
Octavia C ButtUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues G KuskoArgentinaIoni Bowcher PROPOSAL
Izzy D PaprockiJapanIvan Magalhaes NEGOTIATION
Isabel J VenereArgentinaXuxue Feng NEGOTIATION
Arvin S ShinkoSpainOnyama Limba RENEWAL
Julie F GarufiIndiaOnyama Limba NEGOTIATION
Juan X AmigonGermanyOnyama Limba UNQUALIFIED
Antonio Q ChuiArgentinaElwin Sharvill NEGOTIATION
Kaitlin X PaprockiItalyBernardo Dominic RENEWAL
Kadeem N SchemmerRussiaAmy Elsner NEW
Emily B FerenczIndiaOnyama Limba NEW
Johnson V SergiAustraliaAnna Fali RENEWAL
Jennifer M CampainBrazilIoni Bowcher PROPOSAL
James S TollnerItalyXuxue Feng PROPOSAL
Salvatore J OstroskyFranceIoni Bowcher QUALIFIED
Murillo G ShinkoBrazilXuxue Feng NEW
Francesco B ButtIndiaXuxue Feng QUALIFIED
Sinclair H MorascaBrazilElwin Sharvill QUALIFIED
Jefferson L FigeroaBrazilStephen Shaw NEGOTIATION
James L VenereUnited KingdomOnyama Limba RENEWAL
Adams A BriddickBrazilXuxue Feng UNQUALIFIED
Smith X CaudyItalyOnyama Limba RENEWAL
Aika Z GauchoUnited KingdomElwin Sharvill NEW
Jeanfrancois C OstroskyItalyStephen Shaw RENEWAL
Izzy V GarufiItalyElwin Sharvill RENEWAL
Morrow Z GarufiRussiaAsiya Javayant NEW
Greenwood S DarakjyAustraliaAmy Elsner NEW
Jones H FigeroaCanadaXuxue Feng UNQUALIFIED
Smith N FigeroaBrazilOnyama Limba NEGOTIATION
Kadeem Q OldroydIndiaAnna Fali NEW
Leja F ButtRussiaIvan Magalhaes NEW
Emily K WhobreyAustraliaAsiya Javayant NEW
Aika M IturbideUnited KingdomBernardo Dominic RENEWAL
Alejandro J TollnerUnited KingdomAmy Elsner RENEWAL
Chavez Q RulapaughSpainXuxue Feng UNQUALIFIED
Sinclair X SergiIndiaAnna Fali QUALIFIED
Mayumi N MaletItalyAmy Elsner UNQUALIFIED
Faith N CampainFranceAsiya Javayant QUALIFIED
Emily O NickaIndiaAsiya Javayant QUALIFIED
Frozen Columns
Name
Jennifer B Oldroyd
Deepesh O Gaucho
Misaki Z Caldarera
Francesco S Bowley
Mayumi P Tollner
Leon O Maclead
Jones F Vocelka
Misaki G Rulapaugh
Cody V Royster
Faith F Royster
Antonio C Maclead
Maisha F Schemmer
Leja Q Butt
Mayumi J Briddick
Francesco F Vocelka
Jennifer B Vocelka
Misaki Z Rulapaugh
Jones B Ferencz
Silvio H Maclead
Aruna C Vocelka
Ashley L Doe
Arvin F Stockham
Jennifer N Royster
Maisha E Albares
Smith S Stockham
Rodrigues O Whobrey
Mayumi P Stenseth
Aditya Y Ruta
Tony O Albares
Sinclair A Albares
Stacey T Perin
Ricardo W Rulapaugh
Smith D Stenseth
Emily Z Caldarera
James X Whobrey
Wickens J Figeroa
Rodrigues B Slusarski
David O Venere
Stacey Y Waycott
Leon N Caudy
Munro L Briddick
Francesco R Ferencz
Johnson I Garufi
Ivar F Venere
Nicolas R Bolognia
Jeanfrancois Q Inouye
Kaitlin Y Vocelka
Nicolas F Marrier
Johnson X Royster
Misaki L Flosi
IdCountryDate
1000Japan2026-07-07
1001India2026-06-13
1002Brazil2026-07-07
1003Australia2026-06-14
1004Spain2026-06-26
1005Japan2026-06-28
1006Russia2026-07-05
1007France2026-06-10
1008India2026-06-28
1009Spain2026-06-29
1010Spain2026-07-04
1011India2026-07-04
1012United Kingdom2026-06-24
1013Argentina2026-06-23
1014Italy2026-07-01
1015France2026-06-16
1016Australia2026-06-13
1017Canada2026-06-15
1018Italy2026-06-24
1019Germany2026-06-11
1020France2026-06-22
1021Germany2026-06-27
1022India2026-06-09
1023Spain2026-07-01
1024India2026-06-11
1025Germany2026-07-07
1026France2026-07-07
1027Russia2026-06-25
1028Brazil2026-07-04
1029Japan2026-06-23
1030Argentina2026-06-17
1031France2026-06-20
1032Spain2026-06-15
1033Brazil2026-06-25
1034Japan2026-06-12
1035Germany2026-06-16
1036India2026-06-10
1037Australia2026-06-12
1038Italy2026-06-19
1039Spain2026-06-22
1040Canada2026-06-15
1041Canada2026-06-18
1042Canada2026-07-02
1043Italy2026-06-14
1044Spain2026-06-19
1045India2026-06-09
1046Russia2026-06-16
1047Brazil2026-06-24
1048Argentina2026-06-28
1049Italy2026-06-22

On-Demand Data

NameIdCountryDate
Jennifer X Nicka1000Spain2026-07-04
Munro G Poquette1001Russia2026-06-10
Deepesh P Inouye1002Brazil2026-07-01
Antonio W Ostrosky1003Spain2026-06-26
Faith B Perin1004Italy2026-07-07
Emily R Oldroyd1005India2026-06-15
Smith F Perin1006Australia2026-06-24
Claire W Bolognia1007India2026-07-04
Murillo J Rulapaugh1008Germany2026-07-02
Maisha W Chui1009Russia2026-07-08
Jeanfrancois A Caldarera1010Argentina2026-06-11
Nicolas K Amigon1011United Kingdom2026-07-04
Izzy U Flosi1012Argentina2026-06-13
Arvin F Gaucho1013Canada2026-07-02
Cody C Foller1014Russia2026-06-25
Jeanfrancois Z Oldroyd1015Brazil2026-06-27
James L Ruta1016India2026-06-20
Murillo H Schemmer1017Japan2026-06-11
Leon R Marrier1018Argentina2026-06-11
Juan H Doe1019Germany2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford Z ButtBrazilAsiya Javayant PROPOSAL
Maria O IturbideSpainAmy Elsner NEGOTIATION
Darci E SchemmerItalyAmy Elsner PROPOSAL
Silvio K TollnerCanadaElwin Sharvill RENEWAL
Octavia D FlosiCanadaElwin Sharvill UNQUALIFIED
Julie J RutaIndiaIoni Bowcher NEGOTIATION
Murillo K ButtAustraliaElwin Sharvill RENEWAL
Jeanfrancois D KolmetzSpainStephen Shaw PROPOSAL
Faith G KolmetzIndiaAmy Elsner QUALIFIED
Ricardo V ShinkoIndiaElwin Sharvill UNQUALIFIED
Johnson M MaletGermanyIoni Bowcher UNQUALIFIED
Maisha P KolmetzBrazilAsiya Javayant PROPOSAL
Mayumi O GauchoUnited KingdomAsiya Javayant QUALIFIED
Octavia B DilliardJapanXuxue Feng RENEWAL
Silvio G FerenczArgentinaAmy Elsner PROPOSAL
Jennifer T GarufiIndiaIvan Magalhaes PROPOSAL
Julie P InouyeCanadaAnna Fali PROPOSAL
Isabel M VenereItalyIoni Bowcher QUALIFIED
Darci S VocelkaSpainStephen Shaw UNQUALIFIED
Juan E VenereGermanyElwin Sharvill QUALIFIED
Murillo M AlbaresCanadaIvan Magalhaes UNQUALIFIED
Cody I IturbideAustraliaStephen Shaw PROPOSAL
Smith F CaldareraBrazilElwin Sharvill QUALIFIED
Munro H KuskoArgentinaXuxue Feng RENEWAL
Ashley P KolmetzUnited KingdomXuxue Feng NEGOTIATION
Mujtaba C ChuiCanadaAnna Fali NEW
Adams O StockhamJapanIvan Magalhaes PROPOSAL
Sinclair L NestleArgentinaIoni Bowcher RENEWAL
Misaki W VocelkaGermanyOnyama Limba RENEWAL
Mayumi J StensethJapanOnyama Limba QUALIFIED
Clifford B OldroydItalyAmy Elsner NEW
Adams K MacleadGermanyAmy Elsner UNQUALIFIED
Johnson Q PaprockiIndiaAnna Fali QUALIFIED
Isabel S SergiIndiaIvan Magalhaes NEW
Aruna C OstroskyGermanyElwin Sharvill RENEWAL
Munro S MarrierRussiaBernardo Dominic QUALIFIED
Emily K AmigonRussiaIvan Magalhaes NEW
Darci Q RutaFranceAmy Elsner NEGOTIATION
Ashley G OldroydUnited KingdomIoni Bowcher PROPOSAL
Kadeem L OstroskyRussiaAsiya Javayant NEGOTIATION

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