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
Jeanfrancois M GauchoGermanyBernardo Dominic UNQUALIFIED
Francesco L OldroydCanadaOnyama Limba NEGOTIATION
Ivar H IturbideGermanyAmy Elsner RENEWAL
Mujtaba M DilliardBrazilXuxue Feng UNQUALIFIED
Wickens N RulapaughBrazilStephen Shaw PROPOSAL
Sinclair M DilliardItalyIvan Magalhaes NEW
Aditya I SlusarskiArgentinaBernardo Dominic QUALIFIED
Stacey S FigeroaSpainXuxue Feng PROPOSAL
Tony L ShinkoGermanyAmy Elsner RENEWAL
Wickens I MaletIndiaBernardo Dominic UNQUALIFIED
Alejandro U FollerAustraliaAmy Elsner NEGOTIATION
Morrow P MacleadCanadaAnna Fali UNQUALIFIED
Aditya Q MaletIndiaOnyama Limba NEW
Jeanfrancois H GillianBrazilAmy Elsner RENEWAL
Leja P ButtAustraliaAsiya Javayant RENEWAL
Jennifer P MarrierRussiaXuxue Feng UNQUALIFIED
Kadeem N WaycottUnited KingdomOnyama Limba NEW
Ivar Q NickaIndiaBernardo Dominic RENEWAL
Rodrigues L FerenczAustraliaXuxue Feng QUALIFIED
Aditya T OldroydGermanyAmy Elsner NEW
Munro S SlusarskiGermanyAsiya Javayant UNQUALIFIED
Leon K WieserRussiaIoni Bowcher QUALIFIED
Rodrigues H GauchoItalyStephen Shaw RENEWAL
Aruna U OldroydCanadaElwin Sharvill NEGOTIATION
Alejandro X FollerSpainAnna Fali UNQUALIFIED
Arvin R WaycottItalyStephen Shaw NEGOTIATION
Silvio Y WhobreyAustraliaXuxue Feng PROPOSAL
Costa O KolmetzItalyAmy Elsner PROPOSAL
Francesco T VocelkaIndiaAmy Elsner UNQUALIFIED
Nicolas X StockhamArgentinaBernardo Dominic NEGOTIATION
Mayumi D WieserFranceStephen Shaw QUALIFIED
Ivar G GauchoBrazilIvan Magalhaes NEGOTIATION
Alejandro R SchemmerRussiaOnyama Limba RENEWAL
Chavez E OldroydFranceXuxue Feng UNQUALIFIED
Kaitlin D RoysterUnited KingdomOnyama Limba QUALIFIED
Jones I ButtAustraliaXuxue Feng NEGOTIATION
Ashley U DarakjyGermanyAmy Elsner NEGOTIATION
Ricardo P ShinkoIndiaStephen Shaw NEGOTIATION
Octavia E SaylorsRussiaBernardo Dominic RENEWAL
Darci H OldroydArgentinaElwin Sharvill NEW
Costa L ButtBrazilIoni Bowcher UNQUALIFIED
Aruna F FlosiFranceStephen Shaw NEGOTIATION
Chavez I KuskoFranceAnna Fali PROPOSAL
Johnson E BowleyArgentinaXuxue Feng NEW
Jeanfrancois B WhobreyGermanyAsiya Javayant PROPOSAL
Maisha P KolmetzGermanyAnna Fali UNQUALIFIED
Antonio F PoquetteBrazilElwin Sharvill PROPOSAL
Morrow W SergiArgentinaAsiya Javayant QUALIFIED
Isabel O InouyeIndiaIoni Bowcher PROPOSAL
Maisha E InouyeArgentinaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan E TollnerGermanyIoni Bowcher NEGOTIATION
Aruna L KolmetzJapanXuxue Feng NEW
Julie Q GillianUnited KingdomAnna Fali QUALIFIED
Smith A MaletItalyStephen Shaw PROPOSAL
Smith W VocelkaAustraliaElwin Sharvill RENEWAL
Alejandro T CampainAustraliaElwin Sharvill NEW
Darci A RulapaughArgentinaElwin Sharvill UNQUALIFIED
Johnson E VenereSpainOnyama Limba NEW
Julie V WaycottCanadaOnyama Limba NEGOTIATION
Julie X RoysterCanadaAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika F MarrierAustralia2026-08-02Dorl, James J Esq QUALIFIED22Stephen Shaw
1001Cody I IturbideRussia2026-08-18Rangoni Of Florence QUALIFIED94Amy Elsner
1002Arvin B DoeBrazil2026-08-19Rangoni Of Florence UNQUALIFIED55Elwin Sharvill
1003Faith A SergiCanada2026-08-25Chemel, James L Cpa NEW28Amy Elsner
1004Izzy Z SlusarskiGermany2026-08-06Rangoni Of Florence QUALIFIED59Asiya Javayant
1005Aruna D ChuiIndia2026-08-11King, Christopher A Esq PROPOSAL84Ivan Magalhaes
1006Cody O ButtSpain2026-07-31Buckley Miller Wright RENEWAL26Anna Fali
1007Smith G FlosiGermany2026-08-08Printing Dimensions QUALIFIED0Onyama Limba
1008Munro F MorascaRussia2026-08-01King, Christopher A Esq PROPOSAL3Ivan Magalhaes
1009Antonio T KuskoArgentina2026-08-27Commercial Press NEW1Anna Fali
1010Leja H PoquetteUnited Kingdom2026-08-16Rousseaux, Michael Esq UNQUALIFIED1Amy Elsner
1011Cody H DoeGermany2026-08-16Feiner Bros NEW69Bernardo Dominic
1012Munro C PoquetteJapan2026-08-13Morlong Associates RENEWAL31Elwin Sharvill
1013Ivar Y InouyeAustralia2026-08-03Chapman, Ross E Esq PROPOSAL55Ioni Bowcher
1014Arvin T KuskoUnited Kingdom2026-08-09Feltz Printing Service NEGOTIATION87Stephen Shaw
1015Nicolas Y AlbaresIndia2026-08-18Printing Dimensions PROPOSAL45Onyama Limba
1016Jones E KuskoItaly2026-08-15Printing Dimensions NEW64Asiya Javayant
1017Nicolas D BriddickItaly2026-08-21Dorl, James J Esq NEGOTIATION6Amy Elsner
1018Deepesh T WieserArgentina2026-08-16Morlong Associates UNQUALIFIED69Xuxue Feng
1019Leja E SlusarskiSpain2026-08-07Rangoni Of Florence QUALIFIED86Asiya Javayant
1020Clifford N KolmetzItaly2026-08-25Feltz Printing Service NEGOTIATION54Ioni Bowcher
1021Aika M CampainJapan2026-08-26Feiner Bros RENEWAL59Anna Fali
1022Tony P StockhamSpain2026-08-14Rangoni Of Florence UNQUALIFIED31Anna Fali
1023Aditya F MacleadAustralia2026-08-25Rangoni Of Florence NEW27Ioni Bowcher
1024Smith J BriddickArgentina2026-08-08Chanay, Jeffrey A Esq QUALIFIED23Asiya Javayant
1025Ivar H SlusarskiSpain2026-08-08Morlong Associates NEGOTIATION75Amy Elsner
1026Arvin E RutaBrazil2026-08-02Dorl, James J Esq UNQUALIFIED52Xuxue Feng
1027Jeanfrancois G ChuiCanada2026-08-19Truhlar And Truhlar Attys UNQUALIFIED73Amy Elsner
1028Julie U ChuiUnited Kingdom2026-08-01Chemel, James L Cpa NEW94Anna Fali
1029Cody A FollerGermany2026-08-01Commercial Press UNQUALIFIED18Onyama Limba
1030Murillo L MarrierAustralia2026-08-07Rousseaux, Michael Esq PROPOSAL40Anna Fali
1031Jones U BriddickIndia2026-08-22Feltz Printing Service QUALIFIED46Anna Fali
1032Kaitlin H FollerBrazil2026-08-12King, Christopher A Esq PROPOSAL37Ioni Bowcher
1033Murillo R BriddickItaly2026-07-31Dorl, James J Esq QUALIFIED44Elwin Sharvill
1034Rodrigues Y RoysterCanada2026-08-09Morlong Associates RENEWAL95Amy Elsner
1035David B GillianGermany2026-08-09Chapman, Ross E Esq PROPOSAL23Amy Elsner
1036Jefferson S MacleadCanada2026-08-25Commercial Press RENEWAL76Bernardo Dominic
1037Aditya I StensethItaly2026-08-21Printing Dimensions NEGOTIATION85Stephen Shaw
1038Jennifer O BologniaArgentina2026-08-20Morlong Associates QUALIFIED19Elwin Sharvill
1039Ricardo N MacleadSpain2026-08-16Chanay, Jeffrey A Esq PROPOSAL26Amy Elsner
1040Clifford K TollnerFrance2026-08-19Chemel, James L Cpa UNQUALIFIED11Ivan Magalhaes
1041Rodrigues H OldroydArgentina2026-08-13Morlong Associates NEW92Amy Elsner
1042Mujtaba Q WieserIndia2026-08-14Buckley Miller Wright QUALIFIED86Xuxue Feng
1043Leja F DilliardBrazil2026-08-28Benton, John B Jr QUALIFIED71Onyama Limba
1044David T SergiArgentina2026-08-01Feltz Printing Service PROPOSAL67Ioni Bowcher
1045Cody V VenereFrance2026-08-04Benton, John B Jr UNQUALIFIED71Stephen Shaw
1046Smith S ShinkoGermany2026-08-07Chemel, James L Cpa PROPOSAL60Bernardo Dominic
1047James X AlbaresUnited Kingdom2026-08-07Chemel, James L Cpa NEW25Asiya Javayant
1048Juan N NestleJapan2026-08-08Buckley Miller Wright PROPOSAL92Ivan Magalhaes
1049Jeanfrancois Q GauchoIndia2026-08-25Truhlar And Truhlar Attys NEGOTIATION86Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Maria P RutaGermanyXuxue Feng NEW
Darci Y AlbaresArgentinaAmy Elsner QUALIFIED
Ricardo X RulapaughRussiaXuxue Feng PROPOSAL
Antonio U DarakjyJapanBernardo Dominic NEGOTIATION
Salvatore A SchemmerFranceBernardo Dominic QUALIFIED
Misaki S GauchoJapanStephen Shaw RENEWAL
Costa M FlosiRussiaXuxue Feng QUALIFIED
Clifford R FollerRussiaXuxue Feng UNQUALIFIED
Rodrigues Q GlickSpainXuxue Feng QUALIFIED
Juan P GillianJapanXuxue Feng RENEWAL
Cody L MacleadSpainAnna Fali UNQUALIFIED
Francesco W GauchoIndiaOnyama Limba QUALIFIED
Mayumi K VenereIndiaElwin Sharvill QUALIFIED
Morrow N FollerArgentinaAsiya Javayant NEGOTIATION
Deepesh Q KolmetzGermanyXuxue Feng NEGOTIATION
Maria V GauchoIndiaAsiya Javayant QUALIFIED
Ashley P OldroydArgentinaAmy Elsner NEGOTIATION
Munro O PoquetteAustraliaAsiya Javayant UNQUALIFIED
Alejandro J CaudyGermanyStephen Shaw NEGOTIATION
Ricardo U StensethAustraliaIvan Magalhaes RENEWAL
Faith C SergiIndiaXuxue Feng QUALIFIED
Adams F RutaArgentinaAsiya Javayant UNQUALIFIED
Rodrigues M FigeroaUnited KingdomXuxue Feng RENEWAL
Greenwood U SchemmerArgentinaStephen Shaw PROPOSAL
Sinclair J NestleJapanBernardo Dominic RENEWAL
Juan X NickaFranceElwin Sharvill NEGOTIATION
Deepesh H FlosiBrazilXuxue Feng QUALIFIED
Mujtaba U CaudyJapanElwin Sharvill NEGOTIATION
Salvatore D MorascaUnited KingdomAmy Elsner QUALIFIED
Costa I OldroydJapanAsiya Javayant RENEWAL
Alejandro Y BowleyArgentinaStephen Shaw UNQUALIFIED
Ashley T WieserRussiaAnna Fali UNQUALIFIED
Kadeem F FollerBrazilAnna Fali NEW
Salvatore Z GauchoBrazilStephen Shaw RENEWAL
Faith U GillianArgentinaAsiya Javayant NEGOTIATION
Mujtaba I MorascaItalyStephen Shaw QUALIFIED
Julie U MorascaJapanElwin Sharvill QUALIFIED
Isabel I RoysterFranceBernardo Dominic UNQUALIFIED
Jones T InouyeCanadaAsiya Javayant NEGOTIATION
Stacey N FerenczAustraliaIvan Magalhaes NEW
Jefferson J ChuiAustraliaAmy Elsner QUALIFIED
Kaitlin X BowleyIndiaOnyama Limba QUALIFIED
Greenwood W PaprockiCanadaStephen Shaw NEGOTIATION
Leon C SlusarskiFranceAsiya Javayant RENEWAL
Maria O DilliardRussiaIoni Bowcher QUALIFIED
Francesco Z ShinkoIndiaAsiya Javayant UNQUALIFIED
Misaki O BriddickAustraliaElwin Sharvill UNQUALIFIED
Claire P FigeroaIndiaAsiya Javayant UNQUALIFIED
Antonio A KuskoAustraliaAnna Fali PROPOSAL
Misaki F GarufiAustraliaOnyama Limba RENEWAL
Frozen Columns
Name
Tony I Iturbide
Ashley M Vocelka
Murillo M Rulapaugh
Rodrigues B Caldarera
Julie T Shinko
Jones N Wieser
Adams B Inouye
Cody C Bowley
Isabel P Wieser
Ashley I Doe
Jennifer A Dilliard
Jeanfrancois K Bolognia
Salvatore G Tollner
Antonio Q Inouye
Silvio H Ostrosky
Munro F Malet
Greenwood B Albares
Ivar H Nestle
Tony B Malet
Mayumi Q Chui
Ivar U Inouye
Rodrigues L Kolmetz
David A Malet
Rodrigues H Nicka
Juan X Caldarera
Francesco B Schemmer
Stacey Z Foller
Stacey T Bolognia
Francesco A Caudy
Greenwood U Ostrosky
Leon W Gaucho
Mayumi E Darakjy
Leja B Gillian
Kadeem L Saylors
David N Caudy
Leja P Ostrosky
Leon B Figeroa
Aika C Tollner
Claire I Kolmetz
Mujtaba B Whobrey
Salvatore Y Rim
Aruna X Briddick
Chavez E Waycott
Faith W Inouye
Kaitlin T Foller
Leja R Vocelka
Aditya M Glick
Silvio D Nicka
Mayumi K Whobrey
Misaki G Sergi
IdCountryDate
1000United Kingdom2026-08-16
1001India2026-08-16
1002United Kingdom2026-08-21
1003Russia2026-08-06
1004India2026-08-17
1005Brazil2026-08-16
1006Argentina2026-08-12
1007United Kingdom2026-08-20
1008Japan2026-08-08
1009Japan2026-08-18
1010India2026-08-29
1011Germany2026-08-16
1012Brazil2026-08-27
1013Australia2026-08-01
1014Brazil2026-08-09
1015Spain2026-08-11
1016Argentina2026-08-19
1017Spain2026-08-06
1018Brazil2026-08-16
1019United Kingdom2026-08-27
1020Argentina2026-08-27
1021Spain2026-08-03
1022Russia2026-07-31
1023India2026-08-28
1024Japan2026-08-08
1025India2026-08-21
1026Italy2026-08-02
1027Germany2026-08-19
1028Germany2026-08-04
1029Japan2026-08-08
1030Germany2026-08-20
1031India2026-08-08
1032Australia2026-08-03
1033Spain2026-08-18
1034India2026-08-11
1035France2026-08-15
1036Australia2026-08-13
1037Japan2026-08-07
1038Argentina2026-08-08
1039United Kingdom2026-07-31
1040France2026-08-01
1041India2026-08-19
1042Italy2026-08-10
1043France2026-08-25
1044Russia2026-07-31
1045Canada2026-08-16
1046Argentina2026-08-08
1047Germany2026-08-04
1048France2026-08-21
1049Australia2026-08-08

On-Demand Data

NameIdCountryDate
Jennifer G Amigon1000United Kingdom2026-08-02
Nicolas D Morasca1001Argentina2026-08-01
Stacey P Caldarera1002Australia2026-08-12
Mujtaba S Shinko1003India2026-08-05
Johnson V Malet1004Japan2026-08-04
Juan I Maclead1005Italy2026-08-13
Darci G Doe1006Canada2026-08-26
Wickens S Campain1007Russia2026-08-24
Costa Q Morasca1008Russia2026-08-17
Aika P Inouye1009Italy2026-08-28
Misaki V Marrier1010Canada2026-08-05
Nicolas K Albares1011Argentina2026-08-23
Misaki E Nestle1012Argentina2026-08-15
Morrow K Ostrosky1013United Kingdom2026-08-22
Jennifer A Shinko1014Argentina2026-08-02
Salvatore W Gaucho1015Argentina2026-08-18
Kaitlin Q Morasca1016Germany2026-08-19
Maisha B Stockham1017Russia2026-08-14
Izzy G Dilliard1018Russia2026-08-15
Cody E Amigon1019Germany2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony V StockhamRussiaElwin Sharvill PROPOSAL
Rodrigues H GarufiSpainBernardo Dominic RENEWAL
Murillo F StensethCanadaIvan Magalhaes NEGOTIATION
Johnson T NestleCanadaIvan Magalhaes NEGOTIATION
Francesco D RutaFranceBernardo Dominic RENEWAL
Munro Z SaylorsGermanyAnna Fali QUALIFIED
Sinclair G NestleIndiaAmy Elsner PROPOSAL
Leon E NickaRussiaIoni Bowcher RENEWAL
Greenwood C WieserBrazilXuxue Feng UNQUALIFIED
Darci T MacleadSpainStephen Shaw NEW
Aruna T GlickAustraliaOnyama Limba UNQUALIFIED
Nicolas F WieserItalyOnyama Limba UNQUALIFIED
Maisha A GarufiAustraliaAnna Fali PROPOSAL
Julie K VenereArgentinaStephen Shaw NEGOTIATION
Salvatore X FollerIndiaAmy Elsner UNQUALIFIED
Murillo F WieserSpainElwin Sharvill RENEWAL
Emily S MorascaJapanIoni Bowcher NEGOTIATION
Maisha R VenereItalyXuxue Feng RENEWAL
Sinclair C RutaRussiaOnyama Limba RENEWAL
Aruna K VocelkaArgentinaAmy Elsner UNQUALIFIED
Octavia V WieserUnited KingdomOnyama Limba RENEWAL
Darci F MarrierSpainAmy Elsner NEW
Julie Y MorascaJapanElwin Sharvill QUALIFIED
Faith O SchemmerItalyAsiya Javayant QUALIFIED
Mujtaba I WaycottIndiaElwin Sharvill UNQUALIFIED
Greenwood Q InouyeFranceAmy Elsner PROPOSAL
Deepesh F InouyeUnited KingdomAmy Elsner RENEWAL
Mayumi H SlusarskiCanadaStephen Shaw RENEWAL
Claire J MorascaSpainAsiya Javayant RENEWAL
Emily J SaylorsGermanyIoni Bowcher QUALIFIED
Greenwood N PerinRussiaElwin Sharvill NEW
Ivar U GlickItalyIvan Magalhaes UNQUALIFIED
Ashley C IturbideUnited KingdomOnyama Limba NEW
Darci P StensethAustraliaXuxue Feng UNQUALIFIED
Antonio H SergiFranceAmy Elsner NEGOTIATION
Octavia J MorascaFranceBernardo Dominic UNQUALIFIED
Leon Z ChuiItalyAmy Elsner QUALIFIED
Chavez H RutaGermanyOnyama Limba NEGOTIATION
Maria V NickaAustraliaStephen Shaw NEW
Morrow Q WaycottFranceIoni Bowcher PROPOSAL

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