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
Darci K CaudyArgentinaBernardo Dominic QUALIFIED
Ashley B MorascaUnited KingdomAsiya Javayant NEGOTIATION
Ashley B RimIndiaIvan Magalhaes NEW
Aruna F ShinkoCanadaElwin Sharvill NEW
Sinclair W PaprockiCanadaOnyama Limba QUALIFIED
Francesco G DarakjySpainAsiya Javayant PROPOSAL
Kadeem N GauchoBrazilXuxue Feng RENEWAL
James X BologniaArgentinaElwin Sharvill RENEWAL
Greenwood P KolmetzIndiaIvan Magalhaes PROPOSAL
Cody C PaprockiIndiaXuxue Feng NEW
Mujtaba S AlbaresArgentinaElwin Sharvill RENEWAL
Clifford N IturbideRussiaStephen Shaw PROPOSAL
Aruna K ShinkoSpainIvan Magalhaes NEW
Arvin K WhobreyIndiaElwin Sharvill UNQUALIFIED
Johnson I PaprockiItalyBernardo Dominic PROPOSAL
Leja G IturbideGermanyXuxue Feng RENEWAL
Maisha T RoysterIndiaXuxue Feng NEW
Silvio X CaudyBrazilIvan Magalhaes NEW
Ashley P WieserSpainIoni Bowcher PROPOSAL
Ashley E WhobreyArgentinaBernardo Dominic UNQUALIFIED
Aditya J BologniaAustraliaXuxue Feng RENEWAL
Aika P MarrierSpainXuxue Feng RENEWAL
Leja Y RimCanadaIoni Bowcher RENEWAL
Costa I BologniaGermanyXuxue Feng RENEWAL
Leja Q AlbaresArgentinaIoni Bowcher UNQUALIFIED
Aruna M FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Salvatore E GarufiCanadaAnna Fali QUALIFIED
Johnson I RimArgentinaAsiya Javayant PROPOSAL
Jones T CaldareraUnited KingdomBernardo Dominic PROPOSAL
Arvin J BowleyItalyAmy Elsner NEW
Greenwood H ChuiAustraliaAmy Elsner QUALIFIED
Costa F RulapaughItalyIoni Bowcher NEW
Ivar O GauchoJapanIvan Magalhaes QUALIFIED
Darci R FollerIndiaXuxue Feng NEW
Deepesh B FerenczBrazilOnyama Limba NEW
Jefferson H WaycottAustraliaAsiya Javayant NEW
Wickens F StensethBrazilElwin Sharvill QUALIFIED
Jennifer Y MacleadFranceElwin Sharvill RENEWAL
James X RimBrazilAnna Fali NEGOTIATION
Ashley F DilliardAustraliaIoni Bowcher QUALIFIED
Aika T FerenczArgentinaIoni Bowcher RENEWAL
Stacey T NickaUnited KingdomIoni Bowcher QUALIFIED
Francesco L MarrierIndiaOnyama Limba RENEWAL
Deepesh A SlusarskiBrazilBernardo Dominic NEW
Aruna C IturbideBrazilIoni Bowcher NEW
Cody A GlickBrazilIoni Bowcher NEW
Chavez F MaletIndiaXuxue Feng NEW
Costa D DilliardItalyStephen Shaw RENEWAL
Greenwood W VocelkaItalyAsiya Javayant UNQUALIFIED
Jones X PaprockiArgentinaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Julie O ButtUnited KingdomBernardo Dominic NEW
Deepesh V GillianBrazilOnyama Limba NEGOTIATION
Misaki S WaycottJapanBernardo Dominic RENEWAL
Isabel S GlickJapanBernardo Dominic RENEWAL
Mayumi N VenereUnited KingdomIoni Bowcher RENEWAL
Mayumi A CaudyJapanOnyama Limba PROPOSAL
Cody A FerenczGermanyXuxue Feng RENEWAL
Morrow S MacleadBrazilAnna Fali RENEWAL
Stacey V StockhamIndiaAmy Elsner RENEWAL
Murillo C FollerArgentinaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James P SergiJapan2026-07-07Rousseaux, Michael Esq RENEWAL38Ivan Magalhaes
1001Leja L IturbideCanada2026-06-22Commercial Press NEGOTIATION4Elwin Sharvill
1002Murillo Q WaycottUnited Kingdom2026-06-15Printing Dimensions PROPOSAL46Bernardo Dominic
1003Alejandro C IturbideBrazil2026-06-21Rousseaux, Michael Esq RENEWAL98Asiya Javayant
1004Jones I CampainRussia2026-06-30Dorl, James J Esq UNQUALIFIED8Asiya Javayant
1005Izzy Y FlosiGermany2026-07-05Rangoni Of Florence NEW41Bernardo Dominic
1006Deepesh U PerinItaly2026-06-23Chanay, Jeffrey A Esq QUALIFIED92Ivan Magalhaes
1007Francesco I FollerRussia2026-06-28Printing Dimensions NEGOTIATION13Amy Elsner
1008Silvio E NickaItaly2026-06-11Feiner Bros RENEWAL22Anna Fali
1009Cody M PoquetteCanada2026-06-30Chanay, Jeffrey A Esq UNQUALIFIED46Anna Fali
1010Leon G CaudyUnited Kingdom2026-07-02Feiner Bros UNQUALIFIED15Onyama Limba
1011Smith H WieserCanada2026-06-24Chanay, Jeffrey A Esq UNQUALIFIED46Elwin Sharvill
1012Juan Y RoysterBrazil2026-06-27Morlong Associates NEW58Xuxue Feng
1013Wickens U SergiCanada2026-06-30Morlong Associates UNQUALIFIED74Asiya Javayant
1014Arvin I CampainAustralia2026-06-30Feltz Printing Service NEW38Bernardo Dominic
1015Mujtaba D PerinCanada2026-07-09Printing Dimensions NEGOTIATION77Anna Fali
1016Emily C DoeJapan2026-07-04Printing Dimensions PROPOSAL31Onyama Limba
1017Maisha I BowleyItaly2026-07-09Rangoni Of Florence NEGOTIATION79Asiya Javayant
1018Arvin W MacleadSpain2026-06-22Benton, John B Jr PROPOSAL26Elwin Sharvill
1019Cody Y InouyeAustralia2026-07-04Morlong Associates RENEWAL53Xuxue Feng
1020Jennifer M FollerRussia2026-06-16Rangoni Of Florence QUALIFIED34Stephen Shaw
1021Smith L GarufiArgentina2026-06-30Benton, John B Jr NEGOTIATION64Elwin Sharvill
1022Faith V TollnerSpain2026-06-21Feiner Bros NEW56Amy Elsner
1023Arvin G RoysterBrazil2026-06-30Morlong Associates PROPOSAL17Ioni Bowcher
1024Cody E MaletAustralia2026-06-26Chemel, James L Cpa UNQUALIFIED33Stephen Shaw
1025Antonio Q SchemmerRussia2026-06-16Commercial Press NEGOTIATION85Ivan Magalhaes
1026Juan Y CampainItaly2026-06-29Morlong Associates NEW28Stephen Shaw
1027Mayumi M BriddickRussia2026-06-18Dorl, James J Esq RENEWAL81Xuxue Feng
1028Juan D NestleCanada2026-07-01Chanay, Jeffrey A Esq QUALIFIED84Amy Elsner
1029Leon T SlusarskiGermany2026-07-07Rangoni Of Florence PROPOSAL48Elwin Sharvill
1030Chavez O NickaBrazil2026-06-23Chapman, Ross E Esq NEGOTIATION80Ioni Bowcher
1031Salvatore L RutaSpain2026-07-01Truhlar And Truhlar Attys QUALIFIED34Anna Fali
1032Morrow Q DarakjyIndia2026-07-09Dorl, James J Esq RENEWAL5Anna Fali
1033Alejandro J MacleadSpain2026-06-21Rangoni Of Florence NEGOTIATION41Elwin Sharvill
1034Claire A RoysterGermany2026-06-21Chanay, Jeffrey A Esq PROPOSAL27Xuxue Feng
1035Leja H GlickRussia2026-07-07Benton, John B Jr NEGOTIATION29Xuxue Feng
1036Morrow Z NestleBrazil2026-06-29Chanay, Jeffrey A Esq RENEWAL30Ivan Magalhaes
1037Aruna F BriddickGermany2026-06-24Chapman, Ross E Esq RENEWAL82Xuxue Feng
1038Izzy Q KolmetzRussia2026-06-11Chanay, Jeffrey A Esq QUALIFIED43Ioni Bowcher
1039Nicolas Y DilliardGermany2026-06-15Buckley Miller Wright PROPOSAL85Bernardo Dominic
1040Ricardo W NickaFrance2026-06-25Chanay, Jeffrey A Esq NEGOTIATION25Bernardo Dominic
1041Morrow M WieserFrance2026-07-09Chanay, Jeffrey A Esq QUALIFIED95Asiya Javayant
1042Nicolas M TollnerBrazil2026-06-19Truhlar And Truhlar Attys QUALIFIED4Stephen Shaw
1043Darci C TollnerGermany2026-07-02Benton, John B Jr NEGOTIATION19Amy Elsner
1044Salvatore F FollerSpain2026-06-27Dorl, James J Esq QUALIFIED93Bernardo Dominic
1045Octavia E ButtGermany2026-07-05Truhlar And Truhlar Attys UNQUALIFIED48Asiya Javayant
1046Greenwood Q GauchoBrazil2026-06-23Dorl, James J Esq PROPOSAL61Xuxue Feng
1047Ivar U OldroydJapan2026-07-05Rangoni Of Florence PROPOSAL96Asiya Javayant
1048Isabel B SaylorsGermany2026-06-11Commercial Press PROPOSAL4Ioni Bowcher
1049Ashley M CaudyCanada2026-07-09Rousseaux, Michael Esq NEW3Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Sinclair H PaprockiUnited KingdomIoni Bowcher NEGOTIATION
Wickens Y OldroydSpainElwin Sharvill QUALIFIED
Francesco B FlosiCanadaXuxue Feng PROPOSAL
Antonio G MaletArgentinaElwin Sharvill UNQUALIFIED
Tony E SlusarskiGermanyOnyama Limba PROPOSAL
Leja P BriddickAustraliaAmy Elsner NEW
Johnson U CampainGermanyOnyama Limba NEW
Isabel Q MaletCanadaAmy Elsner QUALIFIED
Silvio N FerenczCanadaBernardo Dominic PROPOSAL
Francesco J NestleSpainAnna Fali NEGOTIATION
Munro E DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Julie K CampainItalyAsiya Javayant PROPOSAL
Aruna R WaycottItalyAnna Fali UNQUALIFIED
Tony H SchemmerAustraliaElwin Sharvill RENEWAL
Chavez H PoquetteItalyIvan Magalhaes PROPOSAL
Mayumi K MorascaFranceIoni Bowcher RENEWAL
Clifford V BriddickUnited KingdomIoni Bowcher NEW
Mayumi F BowleyArgentinaIoni Bowcher QUALIFIED
Alejandro W MaletIndiaStephen Shaw PROPOSAL
Nicolas Z CaudyBrazilIoni Bowcher NEW
Ivar H BriddickGermanyElwin Sharvill NEW
Salvatore N CaudyGermanyOnyama Limba NEGOTIATION
Chavez D TollnerFranceXuxue Feng NEW
Mayumi Z WhobreyItalyXuxue Feng NEW
Leja Y SlusarskiAustraliaIvan Magalhaes NEGOTIATION
Silvio A MorascaUnited KingdomElwin Sharvill NEW
Emily U FollerBrazilAsiya Javayant NEW
Izzy F PaprockiIndiaStephen Shaw RENEWAL
Kadeem N DoeIndiaElwin Sharvill NEW
Aika A CaldareraIndiaElwin Sharvill PROPOSAL
Emily V GlickIndiaOnyama Limba QUALIFIED
Silvio P BowleySpainAnna Fali RENEWAL
Wickens Z BowleyJapanIoni Bowcher NEGOTIATION
Nicolas R ShinkoItalyElwin Sharvill QUALIFIED
Jennifer I PaprockiGermanyXuxue Feng PROPOSAL
Maria L TollnerCanadaElwin Sharvill QUALIFIED
Ricardo W StockhamRussiaXuxue Feng NEW
David K StensethUnited KingdomElwin Sharvill UNQUALIFIED
Darci I CaldareraBrazilXuxue Feng PROPOSAL
David X SlusarskiCanadaXuxue Feng NEGOTIATION
Munro G SaylorsItalyOnyama Limba QUALIFIED
Munro C WieserSpainIvan Magalhaes PROPOSAL
Arvin U BologniaUnited KingdomElwin Sharvill QUALIFIED
Clifford K InouyeAustraliaElwin Sharvill NEGOTIATION
James S StensethAustraliaIvan Magalhaes NEW
Sinclair P IturbideAustraliaOnyama Limba PROPOSAL
Alejandro K WhobreySpainStephen Shaw PROPOSAL
Octavia I BowleyIndiaStephen Shaw UNQUALIFIED
Jennifer X WhobreyItalyStephen Shaw QUALIFIED
Ivar U NickaJapanElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Misaki H Kolmetz
Ivar Z Stockham
Morrow S Poquette
Arvin Q Maclead
Darci M Tollner
Misaki H Amigon
Adams J Kolmetz
Maisha O Foller
Ashley O Rim
Nicolas M Ostrosky
Clifford V Maclead
Tony I Garufi
Jefferson V Waycott
Antonio R Bolognia
Antonio I Slusarski
Cody K Chui
Ricardo R Shinko
Faith H Darakjy
Adams F Kolmetz
Leja K Morasca
Mujtaba X Whobrey
Adams C Venere
Ashley J Caudy
Julie T Ruta
Jeanfrancois B Gillian
Salvatore V Malet
Silvio J Tollner
Salvatore H Darakjy
Ivar Q Vocelka
Chavez Y Caudy
Jones B Bowley
Kaitlin D Perin
Mayumi O Morasca
Aditya U Nestle
Misaki V Royster
Adams E Ostrosky
Octavia L Venere
Silvio C Saylors
Aruna J Caudy
Sinclair Q Campain
Munro V Morasca
Smith P Ferencz
Izzy K Darakjy
Aruna K Vocelka
Nicolas X Ruta
Kadeem G Dilliard
Jefferson D Foller
Julie M Inouye
Kadeem G Malet
Wickens B Saylors
IdCountryDate
1000Canada2026-06-17
1001United Kingdom2026-07-02
1002Japan2026-07-02
1003United Kingdom2026-07-05
1004Italy2026-06-21
1005Canada2026-06-17
1006United Kingdom2026-06-17
1007Brazil2026-06-28
1008Canada2026-06-29
1009Argentina2026-07-01
1010Argentina2026-07-01
1011Brazil2026-06-24
1012Russia2026-07-04
1013Italy2026-06-23
1014Russia2026-06-28
1015Argentina2026-06-28
1016Spain2026-06-10
1017Spain2026-06-23
1018India2026-06-19
1019Germany2026-06-29
1020Australia2026-06-25
1021Spain2026-06-22
1022Spain2026-07-08
1023India2026-07-05
1024Japan2026-06-26
1025Argentina2026-07-07
1026India2026-07-05
1027India2026-06-26
1028Brazil2026-07-05
1029Italy2026-06-26
1030Italy2026-06-29
1031Germany2026-06-26
1032India2026-07-09
1033Spain2026-06-12
1034Spain2026-06-24
1035Japan2026-06-16
1036India2026-07-06
1037Brazil2026-07-04
1038India2026-06-19
1039France2026-06-22
1040Brazil2026-06-11
1041Germany2026-06-23
1042United Kingdom2026-06-26
1043Argentina2026-06-28
1044Japan2026-06-19
1045United Kingdom2026-06-16
1046Canada2026-06-19
1047Argentina2026-06-16
1048Italy2026-06-14
1049Russia2026-07-01

On-Demand Data

NameIdCountryDate
Darci D Caldarera1000Australia2026-06-26
Aika H Caudy1001Australia2026-06-16
Nicolas E Sergi1002Japan2026-06-30
Aika Z Foller1003Japan2026-06-23
Adams E Bolognia1004Brazil2026-06-19
Claire B Bolognia1005Germany2026-06-13
Silvio A Oldroyd1006Australia2026-07-04
Jennifer A Bowley1007Argentina2026-06-21
Murillo Q Vocelka1008Italy2026-06-19
Faith Z Inouye1009Italy2026-07-09
Clifford Y Malet1010Russia2026-07-05
Jennifer M Butt1011India2026-06-10
Clifford X Kolmetz1012United Kingdom2026-06-30
Greenwood H Kusko1013France2026-07-06
Claire P Vocelka1014Japan2026-06-10
James K Ruta1015Germany2026-06-22
Mujtaba X Ruta1016Germany2026-06-30
Mayumi T Shinko1017Brazil2026-06-19
Mujtaba T Caudy1018India2026-06-29
Adams V Campain1019Japan2026-07-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Isabel Z GlickUnited KingdomBernardo Dominic PROPOSAL
Rodrigues F BowleyBrazilAmy Elsner NEGOTIATION
Kadeem I CaudyAustraliaAnna Fali PROPOSAL
Smith X MorascaJapanIoni Bowcher UNQUALIFIED
Aditya V FollerCanadaIoni Bowcher NEGOTIATION
Emily M SergiAustraliaOnyama Limba RENEWAL
Juan S FigeroaSpainAmy Elsner NEW
Smith U KuskoCanadaStephen Shaw QUALIFIED
Emily U MarrierArgentinaAsiya Javayant UNQUALIFIED
Leon L FlosiItalyStephen Shaw UNQUALIFIED
Aika O MaletBrazilIvan Magalhaes NEGOTIATION
Jeanfrancois P WaycottUnited KingdomStephen Shaw PROPOSAL
Costa L MaletIndiaElwin Sharvill PROPOSAL
Tony B GlickBrazilAmy Elsner QUALIFIED
Aditya Y SchemmerRussiaXuxue Feng QUALIFIED
Cody M RulapaughIndiaAsiya Javayant QUALIFIED
Munro O BowleyFranceStephen Shaw QUALIFIED
Ricardo D BriddickFranceIoni Bowcher PROPOSAL
Izzy R BowleyGermanyIoni Bowcher PROPOSAL
Silvio Y RoysterGermanyIvan Magalhaes RENEWAL
Leja O OldroydUnited KingdomStephen Shaw QUALIFIED
Antonio W DoeGermanyAsiya Javayant RENEWAL
Costa G OldroydJapanBernardo Dominic QUALIFIED
Nicolas K MorascaSpainOnyama Limba PROPOSAL
Maisha D OldroydUnited KingdomAnna Fali UNQUALIFIED
Aika C SlusarskiJapanIoni Bowcher NEW
Smith U SaylorsArgentinaOnyama Limba UNQUALIFIED
Costa U OldroydArgentinaAmy Elsner NEGOTIATION
Murillo L WhobreyIndiaIvan Magalhaes UNQUALIFIED
Deepesh Y WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Maria Z SaylorsCanadaAsiya Javayant RENEWAL
Aditya E DilliardArgentinaAmy Elsner RENEWAL
Misaki R AlbaresIndiaIoni Bowcher UNQUALIFIED
Izzy J VocelkaAustraliaAnna Fali QUALIFIED
Munro L MaletCanadaXuxue Feng NEW
Arvin F SlusarskiJapanStephen Shaw PROPOSAL
Claire T WieserArgentinaIvan Magalhaes PROPOSAL
Aruna C OldroydIndiaElwin Sharvill QUALIFIED
Rodrigues Q ShinkoUnited KingdomIoni Bowcher QUALIFIED
Aruna P NestleFranceAsiya 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>