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
Deepesh V PerinArgentinaStephen Shaw UNQUALIFIED
Jennifer K RulapaughBrazilAnna Fali NEGOTIATION
Emily R FerenczRussiaElwin Sharvill PROPOSAL
Johnson Y StensethIndiaAnna Fali UNQUALIFIED
Maria N TollnerIndiaAsiya Javayant UNQUALIFIED
Izzy M MaletFranceIvan Magalhaes RENEWAL
Claire I WieserArgentinaBernardo Dominic UNQUALIFIED
Isabel P KolmetzGermanyOnyama Limba NEGOTIATION
Juan O WaycottJapanStephen Shaw PROPOSAL
Aika L ShinkoIndiaAmy Elsner RENEWAL
Francesco V CaudyJapanIoni Bowcher NEW
Leja S RutaCanadaIoni Bowcher PROPOSAL
Salvatore U OstroskyFranceStephen Shaw PROPOSAL
Isabel X PoquetteRussiaAmy Elsner NEW
Tony V FerenczFranceIoni Bowcher QUALIFIED
Wickens O StensethCanadaBernardo Dominic RENEWAL
Mayumi S PoquetteRussiaBernardo Dominic NEGOTIATION
Silvio W NickaSpainAsiya Javayant PROPOSAL
Tony E StockhamGermanyAmy Elsner NEGOTIATION
Arvin U MorascaBrazilOnyama Limba UNQUALIFIED
Nicolas D SaylorsFranceIvan Magalhaes NEW
Nicolas N ButtFranceStephen Shaw UNQUALIFIED
Claire B MaletIndiaStephen Shaw QUALIFIED
Leon T MaletIndiaAmy Elsner NEGOTIATION
Juan Y CaudySpainIoni Bowcher RENEWAL
Wickens D OstroskyGermanyElwin Sharvill NEW
Cody A GlickSpainStephen Shaw UNQUALIFIED
Leja U VenereCanadaOnyama Limba NEW
Francesco V DarakjyCanadaAsiya Javayant PROPOSAL
Deepesh T CampainJapanXuxue Feng QUALIFIED
Sinclair W GillianSpainAmy Elsner QUALIFIED
Tony W RimIndiaBernardo Dominic RENEWAL
Munro E FerenczAustraliaElwin Sharvill PROPOSAL
Maria X WhobreyIndiaAsiya Javayant QUALIFIED
Aditya I WaycottItalyXuxue Feng UNQUALIFIED
Leja E GlickUnited KingdomAmy Elsner NEGOTIATION
Johnson O ShinkoCanadaAmy Elsner RENEWAL
Julie Y MacleadJapanXuxue Feng UNQUALIFIED
David E GauchoGermanyIoni Bowcher NEGOTIATION
Silvio B DarakjyFranceBernardo Dominic UNQUALIFIED
Aditya V GauchoArgentinaStephen Shaw PROPOSAL
Claire O PoquetteSpainBernardo Dominic RENEWAL
Stacey A WaycottFranceElwin Sharvill UNQUALIFIED
Silvio I FlosiGermanyElwin Sharvill UNQUALIFIED
Tony U BowleyGermanyXuxue Feng UNQUALIFIED
Octavia E PoquetteFranceXuxue Feng NEW
Adams X FollerArgentinaAsiya Javayant NEW
Octavia R ButtIndiaIvan Magalhaes PROPOSAL
Wickens S RulapaughArgentinaStephen Shaw UNQUALIFIED
Salvatore U PerinUnited KingdomStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Arvin V ButtSpainOnyama Limba NEGOTIATION
Nicolas Y RimFranceBernardo Dominic UNQUALIFIED
Johnson X MaletSpainAsiya Javayant QUALIFIED
Ricardo D WhobreyIndiaIvan Magalhaes PROPOSAL
Smith M WieserIndiaOnyama Limba NEW
Deepesh P CaudyItalyElwin Sharvill UNQUALIFIED
Tony G MarrierAustraliaIvan Magalhaes NEW
Smith R MaletIndiaOnyama Limba QUALIFIED
Nicolas Q GillianArgentinaStephen Shaw PROPOSAL
Emily P GauchoAustraliaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo M SchemmerBrazil2026-08-09Rangoni Of Florence UNQUALIFIED85Amy Elsner
1001Ricardo F BologniaUnited Kingdom2026-07-24Chapman, Ross E Esq NEGOTIATION28Elwin Sharvill
1002Clifford K BowleyUnited Kingdom2026-07-25Benton, John B Jr PROPOSAL78Stephen Shaw
1003Francesco F BowleyItaly2026-07-22King, Christopher A Esq PROPOSAL80Anna Fali
1004Jones B FollerAustralia2026-08-01Truhlar And Truhlar Attys RENEWAL53Stephen Shaw
1005Emily B CaudySpain2026-08-06Rousseaux, Michael Esq PROPOSAL30Anna Fali
1006Juan M CaudyGermany2026-07-30Printing Dimensions NEW95Anna Fali
1007Aditya I InouyeAustralia2026-07-17Chanay, Jeffrey A Esq NEW66Anna Fali
1008Emily L BriddickArgentina2026-07-28Morlong Associates PROPOSAL70Asiya Javayant
1009Salvatore L FollerFrance2026-07-18Commercial Press NEW69Anna Fali
1010Rodrigues S GarufiUnited Kingdom2026-07-31King, Christopher A Esq NEGOTIATION34Amy Elsner
1011Kadeem O CaudyItaly2026-08-11Morlong Associates PROPOSAL13Ivan Magalhaes
1012Sinclair W FigeroaIndia2026-07-18Buckley Miller Wright PROPOSAL31Ivan Magalhaes
1013Jeanfrancois R GillianCanada2026-07-21Dorl, James J Esq UNQUALIFIED13Elwin Sharvill
1014Emily O BriddickArgentina2026-07-24Dorl, James J Esq UNQUALIFIED45Xuxue Feng
1015Nicolas E MaletGermany2026-07-27Feltz Printing Service PROPOSAL35Stephen Shaw
1016Misaki W OldroydGermany2026-08-03Benton, John B Jr NEGOTIATION18Amy Elsner
1017Deepesh Z RimIndia2026-07-22Rangoni Of Florence UNQUALIFIED78Ivan Magalhaes
1018Smith O RoysterJapan2026-07-20King, Christopher A Esq RENEWAL71Elwin Sharvill
1019Isabel I CampainSpain2026-08-04Commercial Press NEW80Asiya Javayant
1020Wickens L RimFrance2026-07-29Buckley Miller Wright PROPOSAL84Elwin Sharvill
1021Alejandro C NickaItaly2026-07-24Dorl, James J Esq NEW64Asiya Javayant
1022Cody X MaletArgentina2026-07-17Feltz Printing Service NEGOTIATION66Bernardo Dominic
1023Mujtaba S AlbaresGermany2026-08-10Rangoni Of Florence PROPOSAL86Asiya Javayant
1024Ivar U DoeIndia2026-08-04Commercial Press UNQUALIFIED58Anna Fali
1025Jefferson I RoysterSpain2026-07-25Chemel, James L Cpa PROPOSAL35Xuxue Feng
1026Sinclair H MorascaGermany2026-07-30Rousseaux, Michael Esq NEW55Onyama Limba
1027Costa M MacleadCanada2026-08-06Feiner Bros UNQUALIFIED78Amy Elsner
1028James O RoysterIndia2026-08-05Chemel, James L Cpa RENEWAL84Stephen Shaw
1029Francesco N DarakjyAustralia2026-08-09Benton, John B Jr PROPOSAL80Xuxue Feng
1030Alejandro T AmigonRussia2026-07-21Buckley Miller Wright NEW78Ioni Bowcher
1031Nicolas V SchemmerSpain2026-08-04King, Christopher A Esq PROPOSAL64Asiya Javayant
1032James V OldroydGermany2026-08-01King, Christopher A Esq RENEWAL52Amy Elsner
1033Nicolas X ChuiBrazil2026-07-18Chanay, Jeffrey A Esq UNQUALIFIED40Xuxue Feng
1034Leon B NickaArgentina2026-07-19Commercial Press NEW83Amy Elsner
1035Misaki Q KuskoItaly2026-07-23Rousseaux, Michael Esq RENEWAL3Bernardo Dominic
1036Wickens U WhobreyBrazil2026-08-09King, Christopher A Esq QUALIFIED41Xuxue Feng
1037Murillo B CaudyItaly2026-08-04Printing Dimensions NEW81Xuxue Feng
1038Emily D FollerJapan2026-08-05Feltz Printing Service NEW10Ioni Bowcher
1039Darci I MaletItaly2026-08-01Feiner Bros UNQUALIFIED6Ioni Bowcher
1040Ashley H FlosiItaly2026-08-10Rangoni Of Florence QUALIFIED49Stephen Shaw
1041Arvin N DilliardSpain2026-07-24Dorl, James J Esq NEGOTIATION18Stephen Shaw
1042Adams L PoquetteGermany2026-08-01King, Christopher A Esq NEW23Bernardo Dominic
1043Clifford T SlusarskiIndia2026-07-16Feiner Bros NEGOTIATION82Xuxue Feng
1044Deepesh G SaylorsJapan2026-07-13King, Christopher A Esq QUALIFIED37Ioni Bowcher
1045Wickens Y MaletArgentina2026-08-03Buckley Miller Wright PROPOSAL17Ioni Bowcher
1046Leon L AlbaresSpain2026-07-24Printing Dimensions PROPOSAL10Ioni Bowcher
1047Wickens F CaudySpain2026-07-31Benton, John B Jr UNQUALIFIED61Ivan Magalhaes
1048Silvio K ShinkoGermany2026-07-22King, Christopher A Esq NEW26Bernardo Dominic
1049Octavia K DilliardIndia2026-07-23Rangoni Of Florence PROPOSAL68Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Faith J AmigonIndiaAmy Elsner QUALIFIED
Mayumi T GillianRussiaAnna Fali UNQUALIFIED
Darci F StensethSpainElwin Sharvill UNQUALIFIED
Salvatore U ButtIndiaAmy Elsner NEGOTIATION
Stacey L TollnerArgentinaAmy Elsner RENEWAL
Silvio P ButtRussiaOnyama Limba PROPOSAL
David I RutaFranceAnna Fali NEGOTIATION
Octavia M BologniaAustraliaOnyama Limba QUALIFIED
Leja H OstroskyArgentinaElwin Sharvill QUALIFIED
Misaki Q NickaAustraliaElwin Sharvill UNQUALIFIED
Leja Z WhobreyJapanAsiya Javayant RENEWAL
Darci L WieserItalyAmy Elsner UNQUALIFIED
Mayumi B CaldareraJapanBernardo Dominic UNQUALIFIED
Antonio A StockhamBrazilXuxue Feng PROPOSAL
Leon P CampainBrazilIoni Bowcher NEW
Sinclair C FollerItalyIvan Magalhaes UNQUALIFIED
Aruna K BowleyGermanyIoni Bowcher RENEWAL
Jones T IturbideFranceStephen Shaw PROPOSAL
Deepesh L PerinUnited KingdomBernardo Dominic PROPOSAL
Jones Z AlbaresArgentinaOnyama Limba NEW
Leja F PerinUnited KingdomElwin Sharvill PROPOSAL
Murillo T DarakjyJapanIoni Bowcher RENEWAL
Antonio E AlbaresCanadaIvan Magalhaes NEGOTIATION
Juan W WaycottGermanyAsiya Javayant RENEWAL
Jones H PaprockiArgentinaElwin Sharvill PROPOSAL
Salvatore Z StensethSpainAmy Elsner RENEWAL
Greenwood M GillianJapanXuxue Feng RENEWAL
Murillo S StockhamGermanyIoni Bowcher RENEWAL
Maisha H BriddickCanadaAmy Elsner RENEWAL
Alejandro K PerinFranceStephen Shaw UNQUALIFIED
Ricardo A FerenczSpainIoni Bowcher UNQUALIFIED
Maria E RoysterIndiaOnyama Limba NEW
Tony I NickaIndiaAnna Fali PROPOSAL
Misaki L FigeroaIndiaStephen Shaw UNQUALIFIED
Leja W CaldareraFranceBernardo Dominic PROPOSAL
Mayumi I MacleadSpainIvan Magalhaes UNQUALIFIED
Nicolas A RulapaughAustraliaBernardo Dominic NEW
Ashley T GillianGermanyOnyama Limba NEW
Jennifer R MarrierUnited KingdomXuxue Feng QUALIFIED
Francesco E FlosiSpainStephen Shaw QUALIFIED
Misaki X BriddickGermanyElwin Sharvill UNQUALIFIED
Arvin H SaylorsArgentinaAmy Elsner PROPOSAL
Chavez V GarufiAustraliaIoni Bowcher RENEWAL
Mayumi M KuskoArgentinaElwin Sharvill QUALIFIED
Costa O SergiJapanAmy Elsner NEW
Morrow K KolmetzUnited KingdomBernardo Dominic PROPOSAL
Chavez E SergiJapanAmy Elsner NEGOTIATION
Alejandro C WieserGermanyIoni Bowcher QUALIFIED
Wickens A KolmetzBrazilXuxue Feng QUALIFIED
Izzy M CampainIndiaBernardo Dominic QUALIFIED
Frozen Columns
Name
Darci B Sergi
Greenwood I Gaucho
Antonio R Caudy
Leon T Morasca
Mujtaba S Amigon
James I Wieser
Johnson Y Rim
Greenwood E Iturbide
Chavez F Rulapaugh
Greenwood K Saylors
Greenwood A Nestle
Maisha A Malet
Jones A Albares
Smith E Bowley
Chavez A Glick
Greenwood V Campain
Adams T Doe
Antonio I Bolognia
Aditya X Paprocki
Sinclair M Morasca
Ashley I Bolognia
Wickens V Flosi
Cody A Flosi
Arvin K Darakjy
Jones X Ruta
Greenwood Q Ruta
Octavia Z Briddick
Stacey P Malet
Mayumi W Ferencz
Silvio Q Kusko
Julie J Malet
Smith T Flosi
Mayumi O Tollner
Sinclair H Iturbide
Aika O Albares
Jeanfrancois T Marrier
Aditya A Glick
Costa T Foller
Nicolas M Caudy
Faith T Poquette
Clifford E Sergi
Rodrigues Q Dilliard
Ivar D Chui
Faith V Kusko
James U Rim
Faith R Whobrey
Claire B Slusarski
Murillo K Foller
David F Royster
Maria V Amigon
IdCountryDate
1000India2026-07-27
1001India2026-08-09
1002Brazil2026-07-14
1003Russia2026-08-08
1004Argentina2026-08-09
1005Canada2026-07-23
1006Australia2026-08-06
1007Japan2026-07-29
1008France2026-07-29
1009Spain2026-08-03
1010Australia2026-07-31
1011Argentina2026-07-13
1012Australia2026-07-26
1013Italy2026-08-01
1014Brazil2026-08-02
1015Germany2026-07-16
1016Russia2026-07-24
1017Canada2026-08-05
1018India2026-07-25
1019Spain2026-07-29
1020Argentina2026-07-15
1021Japan2026-07-20
1022France2026-08-10
1023Italy2026-07-31
1024United Kingdom2026-07-16
1025Japan2026-08-06
1026United Kingdom2026-07-19
1027Germany2026-07-30
1028Canada2026-07-20
1029France2026-08-10
1030Spain2026-07-20
1031Canada2026-08-11
1032United Kingdom2026-07-25
1033United Kingdom2026-08-02
1034Brazil2026-07-15
1035Australia2026-07-18
1036Italy2026-08-10
1037Canada2026-07-27
1038Brazil2026-08-08
1039France2026-08-06
1040France2026-07-22
1041Canada2026-07-25
1042Japan2026-07-14
1043India2026-07-22
1044Argentina2026-08-11
1045Argentina2026-08-05
1046Canada2026-07-24
1047Italy2026-07-16
1048United Kingdom2026-08-07
1049France2026-08-01

On-Demand Data

NameIdCountryDate
Izzy W Darakjy1000Canada2026-07-24
Munro R Iturbide1001Spain2026-07-23
Clifford K Doe1002Canada2026-08-03
Sinclair J Sergi1003Australia2026-07-16
Jeanfrancois U Caldarera1004Brazil2026-07-22
Jennifer X Foller1005Germany2026-08-02
Wickens W Malet1006Canada2026-07-20
Jennifer G Ruta1007Canada2026-08-08
Chavez D Gillian1008Italy2026-07-25
Isabel H Rim1009Spain2026-08-04
Arvin Q Ostrosky1010France2026-08-05
Izzy G Royster1011India2026-07-26
Claire T Malet1012Russia2026-08-09
Izzy N Bolognia1013Brazil2026-07-15
Morrow F Morasca1014Canada2026-07-21
Maria J Paprocki1015Australia2026-07-23
Leja Q Nestle1016India2026-07-29
Maria N Butt1017Argentina2026-07-23
Jefferson N Ferencz1018Australia2026-08-02
Wickens T Gaucho1019France2026-08-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens T StensethCanadaIoni Bowcher PROPOSAL
James F AlbaresFranceXuxue Feng RENEWAL
Kaitlin E ShinkoCanadaIoni Bowcher NEGOTIATION
Kadeem T GauchoCanadaAmy Elsner UNQUALIFIED
Leon W ShinkoIndiaBernardo Dominic RENEWAL
Stacey M ShinkoAustraliaIoni Bowcher QUALIFIED
Nicolas J MorascaSpainAnna Fali QUALIFIED
Mayumi N OstroskyItalyAnna Fali NEGOTIATION
Ashley E ShinkoIndiaXuxue Feng QUALIFIED
Chavez Z BowleyBrazilXuxue Feng NEGOTIATION
Maisha D RimAustraliaStephen Shaw NEW
Kaitlin Z FlosiIndiaAmy Elsner UNQUALIFIED
Johnson G StensethItalyOnyama Limba UNQUALIFIED
Munro N NestleIndiaElwin Sharvill NEW
Mayumi S StensethJapanElwin Sharvill PROPOSAL
Jones Z GillianUnited KingdomAsiya Javayant RENEWAL
Leja E OstroskySpainOnyama Limba PROPOSAL
Greenwood M RoysterAustraliaOnyama Limba NEGOTIATION
Leja A DoeGermanyIoni Bowcher QUALIFIED
Julie T MaletFranceIvan Magalhaes NEW
Munro N RimJapanAnna Fali PROPOSAL
Mayumi R BriddickFranceAnna Fali PROPOSAL
Munro O IturbideBrazilAsiya Javayant QUALIFIED
Silvio L FigeroaItalyElwin Sharvill QUALIFIED
Antonio K IturbideBrazilAsiya Javayant NEW
Octavia H MaletUnited KingdomOnyama Limba RENEWAL
Emily C MaletRussiaAsiya Javayant RENEWAL
Jeanfrancois M GauchoItalyIoni Bowcher UNQUALIFIED
Cody H CaudyFranceOnyama Limba NEW
Munro R FlosiArgentinaIoni Bowcher PROPOSAL
Maria T RulapaughJapanAsiya Javayant NEW
Arvin R ChuiGermanyBernardo Dominic NEGOTIATION
Misaki P StockhamCanadaElwin Sharvill NEW
Faith I RimSpainAmy Elsner NEW
Ivar U StensethArgentinaAmy Elsner NEGOTIATION
Smith U OstroskyBrazilAsiya Javayant PROPOSAL
Mayumi J WieserUnited KingdomXuxue Feng QUALIFIED
Maisha V KolmetzGermanyElwin Sharvill QUALIFIED
Nicolas S RimItalyAsiya Javayant RENEWAL
Darci F SaylorsJapanAnna Fali NEW

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