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
Juan P IturbideRussiaAsiya Javayant PROPOSAL
Rodrigues V OstroskyGermanyXuxue Feng QUALIFIED
Antonio P ShinkoJapanAmy Elsner QUALIFIED
Isabel V TollnerUnited KingdomXuxue Feng QUALIFIED
Ricardo O WhobreyRussiaOnyama Limba QUALIFIED
Silvio Q WaycottUnited KingdomStephen Shaw PROPOSAL
Ivar H MaletArgentinaElwin Sharvill PROPOSAL
David W GillianFranceStephen Shaw QUALIFIED
Maisha H FigeroaFranceBernardo Dominic PROPOSAL
Octavia M FigeroaAustraliaOnyama Limba UNQUALIFIED
Leon P SergiCanadaOnyama Limba PROPOSAL
Jefferson H GauchoSpainAnna Fali PROPOSAL
Misaki Z RutaCanadaAmy Elsner RENEWAL
Jones Z BriddickSpainIvan Magalhaes NEGOTIATION
Claire I OldroydSpainXuxue Feng QUALIFIED
James B CaldareraIndiaIoni Bowcher QUALIFIED
Aruna Q InouyeGermanyAmy Elsner RENEWAL
Octavia P SaylorsFranceIoni Bowcher NEW
Aika P RulapaughIndiaElwin Sharvill QUALIFIED
Chavez W IturbideCanadaXuxue Feng NEW
Izzy B NestleFranceAnna Fali PROPOSAL
Johnson Q SlusarskiIndiaXuxue Feng NEW
Juan S StensethFranceAnna Fali NEGOTIATION
Ricardo A OldroydBrazilIvan Magalhaes RENEWAL
Julie S DarakjyBrazilBernardo Dominic QUALIFIED
Misaki X DoeAustraliaAnna Fali NEW
Izzy I ChuiIndiaOnyama Limba RENEWAL
Morrow T GlickAustraliaIoni Bowcher PROPOSAL
Ashley T KolmetzBrazilIvan Magalhaes QUALIFIED
Greenwood M WhobreyAustraliaElwin Sharvill NEGOTIATION
Tony Q GarufiItalyAnna Fali NEGOTIATION
Smith G MorascaCanadaIoni Bowcher QUALIFIED
Stacey J WhobreyFranceAnna Fali UNQUALIFIED
Greenwood Y ButtBrazilXuxue Feng RENEWAL
Aruna I MacleadGermanyOnyama Limba NEW
Deepesh Z AlbaresGermanyXuxue Feng QUALIFIED
Costa A MacleadItalyElwin Sharvill NEGOTIATION
Aditya C GillianFranceAnna Fali NEGOTIATION
Arvin O BriddickBrazilOnyama Limba NEW
Stacey J NestleJapanAnna Fali PROPOSAL
Sinclair A AlbaresRussiaAmy Elsner NEW
Emily D FigeroaGermanyIvan Magalhaes PROPOSAL
Maria P RulapaughItalyStephen Shaw PROPOSAL
Leon H IturbideItalyAnna Fali UNQUALIFIED
Cody L RutaSpainBernardo Dominic NEGOTIATION
Morrow L GlickCanadaIvan Magalhaes UNQUALIFIED
Julie O SchemmerFranceElwin Sharvill UNQUALIFIED
Nicolas W SchemmerSpainBernardo Dominic PROPOSAL
Munro S VocelkaCanadaAsiya Javayant QUALIFIED
Octavia K SaylorsCanadaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Johnson T DilliardRussiaAsiya Javayant NEGOTIATION
Mujtaba X FlosiSpainAnna Fali RENEWAL
Wickens C TollnerUnited KingdomOnyama Limba NEW
Deepesh L OldroydIndiaAsiya Javayant RENEWAL
Juan N MaletCanadaIoni Bowcher PROPOSAL
Antonio S FlosiSpainIoni Bowcher PROPOSAL
Greenwood K FerenczFranceAsiya Javayant RENEWAL
Isabel J DoeRussiaStephen Shaw PROPOSAL
Greenwood W GauchoItalyAmy Elsner PROPOSAL
Leon F BologniaFranceElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey Z GauchoCanada2026-08-10Chapman, Ross E Esq QUALIFIED57Ivan Magalhaes
1001Greenwood K PerinIndia2026-08-26Truhlar And Truhlar Attys PROPOSAL3Onyama Limba
1002Cody D KolmetzCanada2026-08-21Chapman, Ross E Esq NEGOTIATION49Ivan Magalhaes
1003Julie E ShinkoUnited Kingdom2026-08-05Chemel, James L Cpa NEGOTIATION75Anna Fali
1004Jefferson N MaletGermany2026-08-07Commercial Press UNQUALIFIED31Bernardo Dominic
1005Izzy X MarrierBrazil2026-08-26Chanay, Jeffrey A Esq PROPOSAL25Ivan Magalhaes
1006Sinclair Y CampainCanada2026-08-09Rangoni Of Florence RENEWAL62Xuxue Feng
1007Salvatore L ShinkoAustralia2026-08-23Printing Dimensions QUALIFIED94Bernardo Dominic
1008Juan G InouyeUnited Kingdom2026-08-21Chapman, Ross E Esq PROPOSAL69Ivan Magalhaes
1009Izzy M CaudyItaly2026-08-04Chemel, James L Cpa NEW91Bernardo Dominic
1010Morrow V BowleyCanada2026-08-20Buckley Miller Wright UNQUALIFIED33Asiya Javayant
1011Murillo X BowleyGermany2026-08-08Truhlar And Truhlar Attys NEW65Ioni Bowcher
1012Jeanfrancois Q ShinkoGermany2026-08-04Feltz Printing Service PROPOSAL32Xuxue Feng
1013Rodrigues G MorascaAustralia2026-07-31Chemel, James L Cpa NEGOTIATION29Amy Elsner
1014Cody S WaycottFrance2026-08-23Truhlar And Truhlar Attys UNQUALIFIED88Onyama Limba
1015Ashley W PerinFrance2026-08-27King, Christopher A Esq RENEWAL73Stephen Shaw
1016Clifford Y InouyeSpain2026-08-11Benton, John B Jr RENEWAL54Ivan Magalhaes
1017Costa F NickaFrance2026-08-11Commercial Press RENEWAL11Anna Fali
1018Adams M MaletAustralia2026-08-07Benton, John B Jr UNQUALIFIED98Bernardo Dominic
1019Maria Q MacleadIndia2026-08-12Rangoni Of Florence RENEWAL35Bernardo Dominic
1020Smith O SergiIndia2026-08-01Rangoni Of Florence NEW23Ioni Bowcher
1021Johnson A NestleJapan2026-08-16Dorl, James J Esq QUALIFIED78Onyama Limba
1022Salvatore E PoquetteJapan2026-08-08Feltz Printing Service RENEWAL61Bernardo Dominic
1023Ivar H MorascaFrance2026-08-09Rangoni Of Florence PROPOSAL8Elwin Sharvill
1024Isabel E StensethRussia2026-08-15Chapman, Ross E Esq RENEWAL21Xuxue Feng
1025Emily F KolmetzRussia2026-08-18Chemel, James L Cpa UNQUALIFIED62Ioni Bowcher
1026Izzy U FigeroaUnited Kingdom2026-07-30Feiner Bros NEGOTIATION86Asiya Javayant
1027Leon P FlosiBrazil2026-08-03Chanay, Jeffrey A Esq UNQUALIFIED52Xuxue Feng
1028Deepesh J MorascaArgentina2026-08-03Commercial Press PROPOSAL90Amy Elsner
1029Costa L MarrierJapan2026-08-23Chemel, James L Cpa QUALIFIED20Xuxue Feng
1030Juan F CampainAustralia2026-08-07Feltz Printing Service QUALIFIED66Ioni Bowcher
1031Octavia P SergiJapan2026-08-04Printing Dimensions NEW86Ivan Magalhaes
1032Cody T RutaUnited Kingdom2026-08-03Printing Dimensions RENEWAL18Amy Elsner
1033Arvin X CaldareraBrazil2026-08-08Feiner Bros PROPOSAL87Ivan Magalhaes
1034Greenwood Z CaldareraArgentina2026-08-20Printing Dimensions NEGOTIATION65Bernardo Dominic
1035Mujtaba Y SlusarskiUnited Kingdom2026-08-08King, Christopher A Esq PROPOSAL26Stephen Shaw
1036Jennifer G MaletRussia2026-08-02Dorl, James J Esq NEW46Stephen Shaw
1037Arvin F VocelkaFrance2026-08-14Printing Dimensions RENEWAL49Amy Elsner
1038Leon N InouyeCanada2026-08-01King, Christopher A Esq UNQUALIFIED31Stephen Shaw
1039Nicolas Y WhobreyRussia2026-08-24King, Christopher A Esq UNQUALIFIED79Ivan Magalhaes
1040Ashley J ButtAustralia2026-08-01Rangoni Of Florence QUALIFIED77Ioni Bowcher
1041Izzy H KolmetzArgentina2026-08-24Chanay, Jeffrey A Esq PROPOSAL17Onyama Limba
1042Maria C RimAustralia2026-08-14Dorl, James J Esq NEW48Bernardo Dominic
1043Misaki M BowleyJapan2026-08-01Chemel, James L Cpa QUALIFIED82Amy Elsner
1044Deepesh G FerenczIndia2026-08-19Chanay, Jeffrey A Esq RENEWAL26Ivan Magalhaes
1045Jefferson O WhobreyIndia2026-08-28Rangoni Of Florence NEW87Onyama Limba
1046Salvatore C FlosiFrance2026-08-04Benton, John B Jr NEW30Elwin Sharvill
1047Aruna L OstroskyCanada2026-08-10Rousseaux, Michael Esq PROPOSAL89Onyama Limba
1048Smith W StensethSpain2026-08-05King, Christopher A Esq RENEWAL0Onyama Limba
1049Emily M ButtAustralia2026-08-07Buckley Miller Wright RENEWAL40Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maisha M GlickUnited KingdomBernardo Dominic NEW
Isabel Z GlickItalyAsiya Javayant QUALIFIED
Juan V ButtIndiaIvan Magalhaes NEGOTIATION
Emily D GlickBrazilElwin Sharvill QUALIFIED
Rodrigues S BowleyCanadaAsiya Javayant PROPOSAL
Francesco H VocelkaUnited KingdomXuxue Feng PROPOSAL
Kaitlin O BriddickItalyAmy Elsner NEGOTIATION
Rodrigues F NickaSpainBernardo Dominic RENEWAL
Emily J MarrierFranceIoni Bowcher UNQUALIFIED
Alejandro L RutaFranceAnna Fali RENEWAL
Alejandro L SchemmerFranceAnna Fali NEW
Maisha D RoysterRussiaAsiya Javayant PROPOSAL
Mujtaba M SlusarskiFranceIvan Magalhaes UNQUALIFIED
Aditya B SaylorsJapanStephen Shaw PROPOSAL
Francesco K GarufiAustraliaIvan Magalhaes RENEWAL
Leja Y RutaUnited KingdomBernardo Dominic UNQUALIFIED
Misaki F DarakjyCanadaIvan Magalhaes NEW
Julie V PoquetteJapanXuxue Feng PROPOSAL
Rodrigues Z InouyeAustraliaAnna Fali UNQUALIFIED
Aika N MaletCanadaAsiya Javayant NEGOTIATION
Wickens L BriddickIndiaOnyama Limba RENEWAL
Jefferson P OldroydBrazilStephen Shaw UNQUALIFIED
Smith W TollnerSpainIvan Magalhaes NEW
Leon C GlickSpainAmy Elsner QUALIFIED
Murillo V GlickFranceAsiya Javayant NEGOTIATION
Darci Y RoysterAustraliaStephen Shaw PROPOSAL
Smith K ShinkoRussiaAsiya Javayant RENEWAL
Tony N ButtJapanStephen Shaw NEW
David C GarufiItalyOnyama Limba RENEWAL
Antonio S FollerItalyElwin Sharvill NEW
Darci U DoeGermanyOnyama Limba NEGOTIATION
Mayumi V AmigonFranceOnyama Limba NEW
Antonio Y CaldareraGermanyAnna Fali NEGOTIATION
Silvio V MacleadBrazilXuxue Feng NEGOTIATION
Claire C CaldareraAustraliaStephen Shaw RENEWAL
Kaitlin X TollnerRussiaOnyama Limba NEW
Kaitlin Z GauchoAustraliaAsiya Javayant NEGOTIATION
Ivar V FollerUnited KingdomOnyama Limba NEW
Maria N MaletIndiaIoni Bowcher UNQUALIFIED
James Q GillianCanadaAmy Elsner QUALIFIED
Julie N BowleyJapanAsiya Javayant NEGOTIATION
Munro K GillianCanadaAsiya Javayant UNQUALIFIED
Claire J SaylorsFranceBernardo Dominic PROPOSAL
Jeanfrancois O StensethSpainOnyama Limba QUALIFIED
Julie R ChuiUnited KingdomBernardo Dominic NEW
Sinclair U BologniaArgentinaXuxue Feng NEGOTIATION
Clifford S StockhamGermanyIoni Bowcher QUALIFIED
Claire W RimUnited KingdomBernardo Dominic QUALIFIED
Jefferson N WieserBrazilIoni Bowcher UNQUALIFIED
Izzy V VocelkaBrazilOnyama Limba NEW
Frozen Columns
Name
Ashley N Malet
Aruna F Waycott
Kadeem X Caldarera
Octavia A Garufi
Jones B Marrier
Munro O Royster
Jones P Rim
Smith U Poquette
Wickens W Wieser
Kadeem I Doe
Nicolas W Doe
Jefferson F Kolmetz
Maisha S Slusarski
Chavez Z Whobrey
Ivar J Darakjy
Johnson K Royster
Aika M Shinko
Octavia I Flosi
Octavia D Gaucho
James U Albares
Murillo C Butt
Maria H Tollner
Rodrigues O Ferencz
Costa H Stenseth
Kaitlin X Amigon
Stacey I Saylors
Tony P Kusko
Arvin W Kusko
Deepesh K Darakjy
Misaki E Kolmetz
Emily B Dilliard
Salvatore F Venere
Faith H Shinko
Leon M Morasca
Claire S Inouye
Wickens N Bolognia
Costa I Whobrey
Julie C Paprocki
Adams S Slusarski
Claire Q Kolmetz
Misaki B Bowley
Isabel H Ostrosky
Faith E Iturbide
Stacey L Campain
Wickens S Albares
Stacey X Schemmer
Darci P Amigon
Nicolas D Glick
Costa U Perin
Wickens L Whobrey
IdCountryDate
1000France2026-08-07
1001Germany2026-08-25
1002Japan2026-08-07
1003France2026-08-17
1004Canada2026-08-15
1005United Kingdom2026-08-08
1006Australia2026-08-19
1007France2026-08-24
1008Germany2026-08-11
1009Canada2026-08-17
1010Canada2026-07-30
1011Argentina2026-08-14
1012Canada2026-08-14
1013Australia2026-08-25
1014Russia2026-08-10
1015Italy2026-08-23
1016Russia2026-08-05
1017Spain2026-08-03
1018France2026-08-06
1019Japan2026-08-19
1020Germany2026-08-17
1021Canada2026-08-15
1022United Kingdom2026-07-31
1023Argentina2026-08-28
1024United Kingdom2026-08-23
1025United Kingdom2026-07-30
1026Spain2026-08-07
1027Germany2026-08-12
1028Germany2026-08-28
1029Germany2026-08-11
1030Russia2026-08-18
1031Germany2026-08-28
1032Germany2026-08-06
1033France2026-08-22
1034Japan2026-08-19
1035United Kingdom2026-08-15
1036Argentina2026-08-11
1037Argentina2026-08-04
1038India2026-08-02
1039Russia2026-08-08
1040Brazil2026-08-23
1041Brazil2026-08-01
1042Russia2026-08-27
1043Japan2026-07-30
1044Germany2026-08-02
1045Japan2026-08-07
1046France2026-08-20
1047Russia2026-08-05
1048Canada2026-08-12
1049Canada2026-08-21

On-Demand Data

NameIdCountryDate
Arvin N Ruta1000France2026-08-25
David L Oldroyd1001Australia2026-08-27
Alejandro T Ostrosky1002Brazil2026-08-28
Leon W Glick1003Japan2026-08-25
James I Paprocki1004France2026-08-18
Francesco Y Paprocki1005Australia2026-08-28
Izzy E Ferencz1006Japan2026-08-01
Leon Q Darakjy1007Russia2026-08-07
Jefferson U Slusarski1008France2026-08-07
Antonio A Shinko1009France2026-08-19
Claire E Marrier1010Canada2026-08-25
Rodrigues J Foller1011Brazil2026-07-31
Ricardo A Doe1012Germany2026-08-18
Darci R Stockham1013Argentina2026-08-12
Aruna Q Garufi1014India2026-08-20
Aruna Q Bowley1015India2026-08-04
Leon Y Whobrey1016Australia2026-08-25
Francesco L Bolognia1017Japan2026-08-10
Maisha W Morasca1018Italy2026-08-10
Cody Q Malet1019Australia2026-08-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro K CaudySpainIoni Bowcher NEGOTIATION
Kadeem S WhobreyCanadaIoni Bowcher NEGOTIATION
Mujtaba M SlusarskiIndiaBernardo Dominic NEW
Clifford Z SlusarskiAustraliaStephen Shaw UNQUALIFIED
James S SergiSpainXuxue Feng NEGOTIATION
Antonio Y DilliardRussiaElwin Sharvill NEW
Johnson R DilliardArgentinaStephen Shaw PROPOSAL
Izzy D WhobreyFranceStephen Shaw RENEWAL
Alejandro H NestleUnited KingdomAnna Fali PROPOSAL
Izzy J IturbideJapanAsiya Javayant RENEWAL
Emily Q AmigonIndiaIoni Bowcher PROPOSAL
Clifford L KuskoArgentinaXuxue Feng NEGOTIATION
Kadeem D VocelkaAustraliaXuxue Feng NEW
Arvin U MaletArgentinaElwin Sharvill UNQUALIFIED
Tony E NestleBrazilAsiya Javayant UNQUALIFIED
Greenwood V RutaGermanyAsiya Javayant NEGOTIATION
Maria H GlickCanadaAmy Elsner PROPOSAL
Aditya O SlusarskiItalyIvan Magalhaes NEW
Morrow M CaldareraFranceOnyama Limba RENEWAL
Wickens A DarakjyIndiaIvan Magalhaes UNQUALIFIED
Chavez Y BologniaUnited KingdomAmy Elsner NEGOTIATION
Costa R ChuiCanadaIoni Bowcher UNQUALIFIED
Francesco S SchemmerSpainAnna Fali NEGOTIATION
Izzy B CaudyFranceElwin Sharvill NEW
Nicolas C BriddickSpainXuxue Feng NEW
Smith O CaldareraArgentinaBernardo Dominic NEGOTIATION
Nicolas O SchemmerIndiaXuxue Feng NEGOTIATION
Wickens E CaudyItalyAnna Fali RENEWAL
Ricardo V OstroskyAustraliaAsiya Javayant PROPOSAL
Claire D PerinIndiaAnna Fali PROPOSAL
David O FerenczFranceOnyama Limba NEW
Mayumi N KolmetzArgentinaIvan Magalhaes PROPOSAL
Johnson Z ShinkoBrazilIoni Bowcher QUALIFIED
Izzy M CaldareraFranceAnna Fali QUALIFIED
Emily H PaprockiIndiaBernardo Dominic QUALIFIED
Cody R KolmetzGermanyElwin Sharvill PROPOSAL
Adams N RimArgentinaElwin Sharvill QUALIFIED
Deepesh R IturbideJapanAnna Fali QUALIFIED
Antonio X CampainGermanyOnyama Limba NEGOTIATION
Kadeem Y GarufiGermanyIvan Magalhaes 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>