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
Wickens T SergiJapanStephen Shaw NEW
Darci S CaldareraIndiaIvan Magalhaes UNQUALIFIED
Isabel P PerinCanadaElwin Sharvill PROPOSAL
Aruna O PoquetteCanadaElwin Sharvill NEW
Leon O BriddickJapanAnna Fali QUALIFIED
Morrow Y VenereFranceElwin Sharvill PROPOSAL
Deepesh E WieserBrazilAmy Elsner PROPOSAL
Julie D PaprockiSpainBernardo Dominic UNQUALIFIED
Aika A MorascaFranceAsiya Javayant RENEWAL
Octavia X DilliardFranceElwin Sharvill QUALIFIED
Julie P SlusarskiIndiaStephen Shaw RENEWAL
David R KuskoBrazilStephen Shaw UNQUALIFIED
Faith T FlosiSpainIoni Bowcher QUALIFIED
Smith D BriddickFranceBernardo Dominic NEW
Aditya F FigeroaGermanyAnna Fali RENEWAL
Alejandro B DarakjyBrazilBernardo Dominic RENEWAL
Tony O CaudyRussiaStephen Shaw RENEWAL
Aruna O SlusarskiCanadaAmy Elsner QUALIFIED
Claire E MaletSpainIoni Bowcher NEW
Aika J NestleCanadaIvan Magalhaes UNQUALIFIED
Greenwood X FollerBrazilStephen Shaw NEGOTIATION
Maisha M OstroskyFranceAnna Fali PROPOSAL
Izzy Y MacleadJapanIoni Bowcher NEGOTIATION
Silvio W ShinkoJapanXuxue Feng QUALIFIED
Aruna H RutaIndiaElwin Sharvill UNQUALIFIED
Jones D BologniaSpainAnna Fali QUALIFIED
James L OldroydGermanyIoni Bowcher RENEWAL
Misaki M IturbideJapanAsiya Javayant PROPOSAL
Maisha X RutaItalyXuxue Feng NEGOTIATION
Adams V AlbaresAustraliaStephen Shaw UNQUALIFIED
Isabel U SergiIndiaAsiya Javayant NEW
Antonio H NickaArgentinaBernardo Dominic UNQUALIFIED
Ashley P GlickFranceIvan Magalhaes UNQUALIFIED
Maria Q RoysterGermanyBernardo Dominic PROPOSAL
Mujtaba T GarufiCanadaAsiya Javayant RENEWAL
Julie Z StockhamIndiaAnna Fali UNQUALIFIED
Darci G ButtGermanyAsiya Javayant RENEWAL
Claire D RoysterSpainAnna Fali PROPOSAL
Jones D DilliardItalyXuxue Feng RENEWAL
Clifford S PerinItalyOnyama Limba PROPOSAL
Morrow O ShinkoGermanyAmy Elsner NEW
Leja W WieserUnited KingdomXuxue Feng PROPOSAL
Ashley Y GarufiIndiaXuxue Feng QUALIFIED
Rodrigues V MacleadAustraliaIvan Magalhaes UNQUALIFIED
Salvatore R MaletIndiaElwin Sharvill NEW
Misaki U BriddickJapanOnyama Limba UNQUALIFIED
Ashley F MorascaSpainOnyama Limba QUALIFIED
Leja D RimSpainAnna Fali PROPOSAL
Aruna X KuskoAustraliaAnna Fali UNQUALIFIED
Stacey N GlickUnited KingdomOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi B WaycottItalyBernardo Dominic QUALIFIED
Juan V WaycottJapanBernardo Dominic QUALIFIED
Misaki T BriddickRussiaIvan Magalhaes RENEWAL
Rodrigues Q BriddickItalyXuxue Feng NEW
Francesco K WhobreyJapanIoni Bowcher UNQUALIFIED
Octavia V GauchoUnited KingdomStephen Shaw QUALIFIED
Stacey Z RoysterRussiaAsiya Javayant QUALIFIED
Arvin T KuskoFranceAmy Elsner QUALIFIED
Morrow N FlosiIndiaStephen Shaw RENEWAL
Mayumi G MorascaFranceIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh L DoeRussia2026-06-25Rousseaux, Michael Esq PROPOSAL7Bernardo Dominic
1001Salvatore X DilliardAustralia2026-06-29Morlong Associates NEW84Elwin Sharvill
1002Morrow U GarufiArgentina2026-06-22Commercial Press QUALIFIED79Elwin Sharvill
1003Jefferson F VocelkaCanada2026-06-30Chapman, Ross E Esq NEGOTIATION70Ivan Magalhaes
1004Juan S TollnerRussia2026-06-25King, Christopher A Esq NEGOTIATION53Onyama Limba
1005Tony S ChuiJapan2026-06-26Rousseaux, Michael Esq NEGOTIATION60Stephen Shaw
1006Misaki M VenereBrazil2026-06-17Truhlar And Truhlar Attys RENEWAL37Elwin Sharvill
1007Antonio E WaycottBrazil2026-06-14Commercial Press QUALIFIED86Ivan Magalhaes
1008Wickens C SchemmerRussia2026-06-25Benton, John B Jr PROPOSAL70Asiya Javayant
1009Jennifer K KolmetzIndia2026-06-20Feiner Bros RENEWAL22Ivan Magalhaes
1010Greenwood I AmigonBrazil2026-06-10Commercial Press QUALIFIED6Xuxue Feng
1011Greenwood X MarrierFrance2026-07-08King, Christopher A Esq NEGOTIATION83Anna Fali
1012Nicolas Z SergiSpain2026-06-24Feiner Bros QUALIFIED71Anna Fali
1013Antonio Z DilliardBrazil2026-06-17Chanay, Jeffrey A Esq NEW87Amy Elsner
1014Maisha F RutaCanada2026-06-27Benton, John B Jr NEGOTIATION73Anna Fali
1015Juan H BowleyIndia2026-06-16Buckley Miller Wright QUALIFIED80Ioni Bowcher
1016Greenwood K AmigonArgentina2026-06-10Dorl, James J Esq PROPOSAL28Xuxue Feng
1017Stacey H SaylorsArgentina2026-06-27Feiner Bros RENEWAL14Xuxue Feng
1018Leon O WhobreyBrazil2026-07-08Truhlar And Truhlar Attys QUALIFIED3Bernardo Dominic
1019Adams G CaldareraArgentina2026-06-29Chemel, James L Cpa QUALIFIED81Elwin Sharvill
1020Jefferson E ButtRussia2026-06-20Rousseaux, Michael Esq NEW2Ioni Bowcher
1021Misaki E BologniaCanada2026-07-06King, Christopher A Esq QUALIFIED27Xuxue Feng
1022James M AlbaresUnited Kingdom2026-07-02Chapman, Ross E Esq RENEWAL85Ioni Bowcher
1023Johnson U VenereSpain2026-07-07Chemel, James L Cpa NEW47Bernardo Dominic
1024Murillo J DarakjyFrance2026-06-24Feltz Printing Service QUALIFIED26Ioni Bowcher
1025Clifford E VenereIndia2026-06-18King, Christopher A Esq RENEWAL40Anna Fali
1026Stacey U GauchoAustralia2026-06-10Buckley Miller Wright QUALIFIED32Onyama Limba
1027Kadeem U NestleRussia2026-07-05Morlong Associates NEW77Amy Elsner
1028Claire V WhobreyBrazil2026-06-29Commercial Press NEW88Stephen Shaw
1029Rodrigues B KuskoRussia2026-06-16Chapman, Ross E Esq NEW53Elwin Sharvill
1030Ashley Z ChuiCanada2026-06-23King, Christopher A Esq RENEWAL42Bernardo Dominic
1031Clifford S SaylorsRussia2026-06-15Commercial Press RENEWAL39Onyama Limba
1032Smith K BologniaJapan2026-07-01Rousseaux, Michael Esq QUALIFIED23Elwin Sharvill
1033Stacey N DoeSpain2026-06-28Feiner Bros RENEWAL60Stephen Shaw
1034Jefferson A GlickCanada2026-06-18Rousseaux, Michael Esq UNQUALIFIED46Elwin Sharvill
1035Jefferson F StockhamSpain2026-07-08Truhlar And Truhlar Attys RENEWAL6Amy Elsner
1036Silvio X ChuiSpain2026-07-05King, Christopher A Esq NEGOTIATION61Amy Elsner
1037Chavez M RoysterRussia2026-06-26Chemel, James L Cpa QUALIFIED40Stephen Shaw
1038Ivar E DarakjyIndia2026-06-26Buckley Miller Wright PROPOSAL62Ioni Bowcher
1039Misaki J DoeArgentina2026-07-08Commercial Press UNQUALIFIED92Asiya Javayant
1040Jeanfrancois R MaletAustralia2026-06-11Printing Dimensions UNQUALIFIED40Xuxue Feng
1041Adams G RimRussia2026-06-25Buckley Miller Wright PROPOSAL14Ivan Magalhaes
1042Alejandro U GauchoUnited Kingdom2026-06-29Commercial Press RENEWAL7Bernardo Dominic
1043Octavia S InouyeJapan2026-06-28Commercial Press PROPOSAL90Ivan Magalhaes
1044Aruna Y RoysterUnited Kingdom2026-06-25Benton, John B Jr PROPOSAL87Stephen Shaw
1045Aika U GlickRussia2026-06-17Truhlar And Truhlar Attys UNQUALIFIED0Onyama Limba
1046Juan H GillianCanada2026-06-16Chanay, Jeffrey A Esq NEGOTIATION71Anna Fali
1047Isabel U MarrierAustralia2026-06-12Feltz Printing Service UNQUALIFIED56Ioni Bowcher
1048Darci S SchemmerAustralia2026-06-22Benton, John B Jr NEW19Onyama Limba
1049Stacey T VocelkaItaly2026-07-05Rousseaux, Michael Esq QUALIFIED50Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Antonio B OstroskyItalyXuxue Feng QUALIFIED
Murillo S RimIndiaBernardo Dominic UNQUALIFIED
Adams J MacleadRussiaIvan Magalhaes NEGOTIATION
Murillo C SaylorsAustraliaXuxue Feng QUALIFIED
Julie A KuskoBrazilIvan Magalhaes PROPOSAL
Clifford I ButtGermanyAnna Fali UNQUALIFIED
Ashley V RimArgentinaXuxue Feng NEW
Jennifer L MaletSpainOnyama Limba QUALIFIED
Misaki Y VocelkaGermanyXuxue Feng RENEWAL
David B AlbaresArgentinaOnyama Limba UNQUALIFIED
Clifford U CaldareraIndiaOnyama Limba PROPOSAL
Leon G KolmetzBrazilElwin Sharvill QUALIFIED
Juan H FlosiRussiaAsiya Javayant UNQUALIFIED
Ashley B VenereFranceAmy Elsner PROPOSAL
Arvin W VocelkaAustraliaAmy Elsner NEW
Francesco F BologniaSpainAmy Elsner UNQUALIFIED
Kadeem K SergiSpainAmy Elsner QUALIFIED
Nicolas W DoeAustraliaOnyama Limba PROPOSAL
Julie I VenereCanadaAsiya Javayant UNQUALIFIED
Cody N PaprockiIndiaAsiya Javayant UNQUALIFIED
Leja Z StockhamFranceStephen Shaw RENEWAL
Smith N FerenczFranceAmy Elsner QUALIFIED
Deepesh Y SchemmerArgentinaBernardo Dominic UNQUALIFIED
Costa P CaldareraJapanElwin Sharvill PROPOSAL
Rodrigues F BowleyAustraliaStephen Shaw UNQUALIFIED
Jones Y PaprockiIndiaElwin Sharvill NEGOTIATION
Wickens S CaudyIndiaIvan Magalhaes NEGOTIATION
David D RutaCanadaBernardo Dominic QUALIFIED
Ricardo G MacleadIndiaAnna Fali NEGOTIATION
Isabel E WaycottIndiaAsiya Javayant PROPOSAL
Emily I WhobreyJapanAnna Fali PROPOSAL
Rodrigues B MorascaArgentinaAnna Fali QUALIFIED
Morrow I CaudyIndiaElwin Sharvill NEGOTIATION
Misaki G CaldareraUnited KingdomAnna Fali QUALIFIED
Misaki I BologniaIndiaIoni Bowcher UNQUALIFIED
Faith B ShinkoIndiaBernardo Dominic PROPOSAL
Faith E GauchoAustraliaAsiya Javayant QUALIFIED
Wickens T MaletRussiaElwin Sharvill NEW
Aditya X KolmetzSpainAmy Elsner NEW
Salvatore I SaylorsBrazilIoni Bowcher NEW
Jefferson V OldroydSpainOnyama Limba RENEWAL
Rodrigues N MacleadCanadaAmy Elsner RENEWAL
Greenwood M OldroydUnited KingdomIvan Magalhaes UNQUALIFIED
Ivar D NickaGermanyAmy Elsner PROPOSAL
Morrow E ChuiAustraliaElwin Sharvill UNQUALIFIED
Ivar U PerinArgentinaIoni Bowcher QUALIFIED
Cody F WhobreyGermanyStephen Shaw NEGOTIATION
Maria Z RulapaughBrazilAnna Fali QUALIFIED
Murillo W MaletSpainElwin Sharvill PROPOSAL
Misaki G AlbaresItalyStephen Shaw NEGOTIATION
Frozen Columns
Name
Leja G Malet
Julie J Briddick
Cody G Doe
Jeanfrancois L Tollner
Maisha B Stenseth
Emily V Dilliard
Alejandro X Schemmer
Sinclair M Rulapaugh
Faith W Sergi
James M Paprocki
Aruna Z Doe
Chavez R Waycott
Maisha X Chui
James C Marrier
Costa O Schemmer
Salvatore G Figeroa
Claire K Briddick
Maisha W Campain
Morrow G Albares
Salvatore B Maclead
Francesco G Ostrosky
Stacey V Bolognia
Sinclair W Figeroa
Mayumi R Poquette
Stacey R Nestle
Stacey J Gaucho
Sinclair G Poquette
Maisha I Poquette
Wickens B Schemmer
Julie Z Maclead
Wickens V Figeroa
Jefferson O Slusarski
Wickens I Morasca
Isabel R Malet
Murillo E Saylors
Aditya W Chui
Tony Z Gaucho
Sinclair B Inouye
Chavez S Marrier
Cody H Kusko
Jones N Gaucho
Smith M Gillian
Silvio K Doe
Izzy H Kusko
Emily X Bolognia
Claire M Kolmetz
Salvatore Y Kolmetz
Faith D Albares
Salvatore E Gaucho
Kadeem U Ostrosky
IdCountryDate
1000Argentina2026-06-11
1001Germany2026-06-29
1002India2026-06-29
1003Italy2026-06-21
1004Russia2026-06-20
1005France2026-07-07
1006Japan2026-07-04
1007United Kingdom2026-06-19
1008Spain2026-06-29
1009United Kingdom2026-06-21
1010Germany2026-06-17
1011Russia2026-06-13
1012Brazil2026-06-26
1013Russia2026-06-29
1014Australia2026-07-07
1015Argentina2026-07-06
1016Germany2026-07-08
1017Russia2026-06-20
1018Japan2026-06-18
1019Canada2026-06-23
1020Germany2026-07-06
1021Argentina2026-07-06
1022Canada2026-06-21
1023Brazil2026-06-18
1024Canada2026-06-30
1025Germany2026-06-30
1026Spain2026-06-18
1027Italy2026-06-15
1028United Kingdom2026-07-02
1029Russia2026-06-09
1030Italy2026-06-28
1031Brazil2026-06-09
1032India2026-07-02
1033United Kingdom2026-07-06
1034Japan2026-06-28
1035Japan2026-06-18
1036Brazil2026-07-04
1037Russia2026-07-07
1038Japan2026-06-24
1039United Kingdom2026-06-17
1040India2026-06-19
1041Brazil2026-06-29
1042Spain2026-06-14
1043Germany2026-06-28
1044Russia2026-06-21
1045Italy2026-06-18
1046Brazil2026-06-14
1047Spain2026-07-03
1048India2026-06-24
1049India2026-06-27

On-Demand Data

NameIdCountryDate
Deepesh U Saylors1000Russia2026-06-09
Isabel C Dilliard1001Japan2026-06-24
Kaitlin T Bowley1002Germany2026-06-23
Maisha W Paprocki1003United Kingdom2026-06-23
Greenwood Q Butt1004India2026-06-18
Francesco P Shinko1005Brazil2026-07-04
Deepesh G Waycott1006Spain2026-06-28
Ricardo K Ostrosky1007Canada2026-06-29
Mujtaba L Vocelka1008France2026-07-03
Arvin R Saylors1009Germany2026-07-08
Murillo K Iturbide1010Brazil2026-07-01
Johnson Q Foller1011Argentina2026-06-09
Faith S Whobrey1012Germany2026-06-28
Isabel G Stenseth1013Italy2026-06-21
Jones R Kusko1014Japan2026-07-07
Aditya S Foller1015Canada2026-06-14
Munro X Glick1016Japan2026-06-15
Claire S Glick1017Brazil2026-06-24
Aika I Malet1018United Kingdom2026-06-20
Murillo S Kolmetz1019India2026-06-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci M RimIndiaOnyama Limba UNQUALIFIED
Costa N MaletUnited KingdomAmy Elsner NEW
Darci Z NestleRussiaIvan Magalhaes PROPOSAL
Aika B MarrierUnited KingdomAmy Elsner NEW
Faith E PoquetteRussiaAsiya Javayant NEGOTIATION
Tony G SergiGermanyElwin Sharvill NEW
Rodrigues E WieserBrazilAsiya Javayant NEGOTIATION
Aika X SergiAustraliaBernardo Dominic RENEWAL
Aditya Y ChuiIndiaAmy Elsner RENEWAL
Misaki R NestleRussiaAnna Fali UNQUALIFIED
Maria F VenereItalyBernardo Dominic NEGOTIATION
James V FerenczCanadaStephen Shaw QUALIFIED
Clifford F IturbideCanadaAmy Elsner PROPOSAL
Darci R VenereUnited KingdomAnna Fali PROPOSAL
Jennifer D OstroskyAustraliaIvan Magalhaes UNQUALIFIED
Smith L TollnerBrazilAmy Elsner PROPOSAL
Jones L DoeCanadaAsiya Javayant UNQUALIFIED
Leja J RoysterSpainElwin Sharvill QUALIFIED
Silvio M MacleadBrazilAmy Elsner PROPOSAL
Tony U KuskoItalyAmy Elsner NEGOTIATION
Mayumi T MaletItalyAmy Elsner QUALIFIED
Cody L ShinkoItalyBernardo Dominic PROPOSAL
Emily N BowleyFranceAsiya Javayant NEGOTIATION
Greenwood I GillianIndiaAnna Fali NEGOTIATION
Julie D ButtBrazilAsiya Javayant RENEWAL
Nicolas H OldroydItalyBernardo Dominic PROPOSAL
Nicolas Q ShinkoBrazilStephen Shaw NEW
Isabel Z FerenczAustraliaStephen Shaw QUALIFIED
Jones F NickaArgentinaAsiya Javayant PROPOSAL
Antonio G NickaFranceAsiya Javayant RENEWAL
Clifford L CaldareraRussiaAsiya Javayant RENEWAL
Rodrigues O AlbaresSpainAsiya Javayant UNQUALIFIED
Isabel D ButtBrazilAsiya Javayant NEGOTIATION
Aruna M NestleJapanIoni Bowcher RENEWAL
Murillo Z VocelkaFranceOnyama Limba NEGOTIATION
Octavia U AmigonUnited KingdomIoni Bowcher QUALIFIED
Jones A WaycottGermanyAsiya Javayant PROPOSAL
Adams Y WaycottAustraliaAmy Elsner PROPOSAL
Misaki P RutaJapanElwin Sharvill QUALIFIED
Arvin Q ShinkoGermanyAnna Fali 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>