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
Emily G ChuiJapanBernardo Dominic RENEWAL
Salvatore T BriddickItalyIvan Magalhaes UNQUALIFIED
Leon M KolmetzAustraliaElwin Sharvill QUALIFIED
Rodrigues O FollerGermanyIoni Bowcher PROPOSAL
Adams L MaletItalyAmy Elsner PROPOSAL
Nicolas K DilliardBrazilIoni Bowcher QUALIFIED
Stacey O WaycottFranceOnyama Limba RENEWAL
Maria L PaprockiJapanAmy Elsner NEW
Claire Q MarrierIndiaStephen Shaw NEGOTIATION
Leja T GillianAustraliaIvan Magalhaes QUALIFIED
Sinclair Z InouyeGermanyXuxue Feng NEGOTIATION
Maria N StockhamBrazilXuxue Feng NEW
Alejandro N MorascaGermanyElwin Sharvill QUALIFIED
Antonio T SchemmerIndiaOnyama Limba RENEWAL
Smith A TollnerUnited KingdomStephen Shaw NEGOTIATION
David G TollnerBrazilIoni Bowcher NEW
Mayumi N VocelkaSpainIoni Bowcher NEGOTIATION
Costa E KolmetzIndiaBernardo Dominic PROPOSAL
Stacey P DarakjyFranceAnna Fali QUALIFIED
Silvio N MarrierUnited KingdomStephen Shaw UNQUALIFIED
Antonio E RoysterBrazilIoni Bowcher NEGOTIATION
Jeanfrancois A CampainIndiaIoni Bowcher UNQUALIFIED
Ivar V MaletRussiaElwin Sharvill PROPOSAL
Adams R KuskoItalyIoni Bowcher QUALIFIED
Deepesh X RimBrazilIoni Bowcher NEW
Stacey H PoquetteUnited KingdomBernardo Dominic RENEWAL
Kadeem T CaldareraIndiaStephen Shaw UNQUALIFIED
Octavia D PerinFranceElwin Sharvill UNQUALIFIED
Costa M ButtAustraliaStephen Shaw QUALIFIED
Costa W CaudyUnited KingdomIoni Bowcher UNQUALIFIED
Greenwood V ButtAustraliaIvan Magalhaes UNQUALIFIED
Adams O RoysterIndiaIvan Magalhaes NEGOTIATION
Leja D WhobreyArgentinaXuxue Feng NEGOTIATION
Arvin G AlbaresUnited KingdomAnna Fali NEW
Rodrigues E BowleySpainAmy Elsner RENEWAL
Darci G VenereUnited KingdomAsiya Javayant QUALIFIED
Aditya O KolmetzCanadaAmy Elsner PROPOSAL
Morrow R MacleadGermanyBernardo Dominic NEGOTIATION
Nicolas N FerenczUnited KingdomIvan Magalhaes NEGOTIATION
Juan L CaudySpainAnna Fali NEGOTIATION
Mujtaba B OldroydBrazilAsiya Javayant NEW
Ashley X AmigonRussiaIvan Magalhaes NEW
Cody S GauchoArgentinaBernardo Dominic PROPOSAL
Tony G BriddickRussiaOnyama Limba NEGOTIATION
Greenwood B MaletBrazilAmy Elsner UNQUALIFIED
Claire A WaycottSpainElwin Sharvill UNQUALIFIED
Claire Q FlosiIndiaAmy Elsner UNQUALIFIED
Adams Y IturbideAustraliaXuxue Feng NEW
Clifford R WieserBrazilAsiya Javayant NEGOTIATION
Costa M KuskoItalyAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams J SlusarskiAustraliaBernardo Dominic RENEWAL
Adams Q BriddickItalyAsiya Javayant NEGOTIATION
Claire X NickaAustraliaIvan Magalhaes PROPOSAL
Mayumi S GarufiCanadaIvan Magalhaes UNQUALIFIED
Aruna G OldroydItalyIvan Magalhaes NEW
Jennifer E GlickJapanIvan Magalhaes PROPOSAL
Tony H RoysterFranceIoni Bowcher RENEWAL
Ashley Z DilliardCanadaAmy Elsner NEW
Faith A BowleyCanadaAsiya Javayant UNQUALIFIED
Aika K WieserItalyOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio P WieserIndia2026-07-15Rangoni Of Florence UNQUALIFIED26Onyama Limba
1001Maria N FlosiUnited Kingdom2026-07-18Benton, John B Jr PROPOSAL84Amy Elsner
1002Tony T NestleAustralia2026-08-02Commercial Press NEW5Elwin Sharvill
1003James A RoysterSpain2026-07-23Morlong Associates UNQUALIFIED96Asiya Javayant
1004Morrow T BriddickJapan2026-07-09Commercial Press PROPOSAL63Bernardo Dominic
1005Cody J MaletArgentina2026-07-29Dorl, James J Esq RENEWAL62Bernardo Dominic
1006Murillo D OstroskyAustralia2026-07-10Feiner Bros QUALIFIED54Anna Fali
1007Julie Q SaylorsAustralia2026-08-02Feltz Printing Service QUALIFIED60Amy Elsner
1008Costa R WhobreyArgentina2026-07-25Dorl, James J Esq PROPOSAL34Onyama Limba
1009Ashley T IturbideCanada2026-07-20Truhlar And Truhlar Attys QUALIFIED58Amy Elsner
1010Salvatore B InouyeFrance2026-07-27Chemel, James L Cpa PROPOSAL59Stephen Shaw
1011Maria J GlickFrance2026-07-23Feltz Printing Service PROPOSAL83Asiya Javayant
1012David G DarakjyUnited Kingdom2026-07-24Buckley Miller Wright UNQUALIFIED66Ivan Magalhaes
1013David P TollnerRussia2026-07-21Chapman, Ross E Esq RENEWAL27Ivan Magalhaes
1014Claire V OldroydBrazil2026-07-21Morlong Associates QUALIFIED59Stephen Shaw
1015Ashley M CampainCanada2026-07-09Morlong Associates NEGOTIATION83Ivan Magalhaes
1016Johnson E RoysterJapan2026-08-01Buckley Miller Wright RENEWAL70Ioni Bowcher
1017Juan H DilliardFrance2026-07-25Rangoni Of Florence NEW40Bernardo Dominic
1018Leon D SlusarskiFrance2026-07-31Chapman, Ross E Esq NEW92Onyama Limba
1019Claire X AmigonGermany2026-07-17Truhlar And Truhlar Attys UNQUALIFIED52Xuxue Feng
1020Francesco O RulapaughJapan2026-07-31Rousseaux, Michael Esq QUALIFIED14Onyama Limba
1021Rodrigues P AmigonUnited Kingdom2026-07-07Feltz Printing Service NEGOTIATION5Bernardo Dominic
1022Arvin C CaldareraArgentina2026-07-10Rangoni Of Florence RENEWAL79Asiya Javayant
1023Jones H FerenczIndia2026-08-02Rousseaux, Michael Esq NEGOTIATION3Amy Elsner
1024Salvatore I BologniaFrance2026-08-03Chanay, Jeffrey A Esq UNQUALIFIED42Anna Fali
1025Costa Y WaycottBrazil2026-07-27Commercial Press QUALIFIED86Ivan Magalhaes
1026Octavia C DarakjyItaly2026-07-15Chapman, Ross E Esq RENEWAL5Bernardo Dominic
1027Morrow U MaletGermany2026-07-08Feiner Bros UNQUALIFIED50Ivan Magalhaes
1028Leja V SlusarskiJapan2026-07-15King, Christopher A Esq RENEWAL79Elwin Sharvill
1029Smith K GillianJapan2026-07-22Chapman, Ross E Esq PROPOSAL67Bernardo Dominic
1030Kaitlin D RutaJapan2026-07-13Dorl, James J Esq NEW43Ivan Magalhaes
1031Chavez K GlickGermany2026-07-16King, Christopher A Esq RENEWAL13Xuxue Feng
1032Maisha Z CaudyIndia2026-07-09Chapman, Ross E Esq RENEWAL14Xuxue Feng
1033Faith S FerenczAustralia2026-07-20King, Christopher A Esq QUALIFIED23Xuxue Feng
1034Antonio T PoquetteAustralia2026-08-01King, Christopher A Esq NEGOTIATION93Anna Fali
1035Julie I ChuiItaly2026-07-21Chemel, James L Cpa UNQUALIFIED33Anna Fali
1036Isabel R ShinkoIndia2026-08-02Morlong Associates UNQUALIFIED11Elwin Sharvill
1037Chavez Y AlbaresArgentina2026-07-06Truhlar And Truhlar Attys NEW89Ioni Bowcher
1038Leon A FlosiCanada2026-07-17Buckley Miller Wright QUALIFIED13Xuxue Feng
1039Aruna H PerinAustralia2026-07-18Benton, John B Jr PROPOSAL25Ivan Magalhaes
1040Nicolas I ChuiArgentina2026-07-29Truhlar And Truhlar Attys QUALIFIED4Asiya Javayant
1041Adams J DoeIndia2026-07-15Feltz Printing Service UNQUALIFIED42Elwin Sharvill
1042Stacey Y MorascaBrazil2026-07-12Morlong Associates NEW86Amy Elsner
1043Misaki A RimGermany2026-07-15Rousseaux, Michael Esq UNQUALIFIED54Ioni Bowcher
1044Deepesh S RoysterSpain2026-07-19Rousseaux, Michael Esq RENEWAL68Onyama Limba
1045Sinclair A InouyeRussia2026-07-10Morlong Associates NEGOTIATION63Elwin Sharvill
1046Stacey I OstroskyFrance2026-08-01Dorl, James J Esq NEGOTIATION50Xuxue Feng
1047Ivar R MaletRussia2026-08-01Chapman, Ross E Esq UNQUALIFIED62Anna Fali
1048Murillo F RimSpain2026-07-14Chemel, James L Cpa QUALIFIED79Ivan Magalhaes
1049Francesco K AlbaresIndia2026-07-17Printing Dimensions QUALIFIED24Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Faith Y RoysterArgentinaBernardo Dominic RENEWAL
Jennifer Q VocelkaArgentinaStephen Shaw QUALIFIED
Ivar U MorascaAustraliaAsiya Javayant NEW
Smith Y SlusarskiItalyAsiya Javayant PROPOSAL
Leon N AlbaresSpainAnna Fali PROPOSAL
Mujtaba L GauchoJapanBernardo Dominic UNQUALIFIED
Murillo X RutaRussiaIoni Bowcher UNQUALIFIED
Arvin V PoquetteBrazilIoni Bowcher RENEWAL
David C FollerIndiaIvan Magalhaes NEW
Arvin A RoysterSpainAsiya Javayant QUALIFIED
Leon L BriddickJapanXuxue Feng QUALIFIED
Antonio S PerinBrazilStephen Shaw RENEWAL
Mujtaba L InouyeCanadaStephen Shaw NEW
Octavia U RimUnited KingdomIvan Magalhaes NEW
Ashley W CaldareraJapanAsiya Javayant PROPOSAL
Kaitlin V OldroydBrazilIoni Bowcher UNQUALIFIED
Julie H BowleyItalyIvan Magalhaes PROPOSAL
Wickens J RimUnited KingdomStephen Shaw QUALIFIED
David I DilliardIndiaIvan Magalhaes NEW
Adams Q GillianIndiaOnyama Limba NEGOTIATION
Smith S CaudyFranceAnna Fali NEW
Smith M BologniaJapanElwin Sharvill PROPOSAL
Maisha G ButtRussiaIoni Bowcher QUALIFIED
Leja I GarufiItalyAnna Fali RENEWAL
Silvio T PoquetteAustraliaIvan Magalhaes QUALIFIED
Wickens P RimRussiaIvan Magalhaes QUALIFIED
Arvin P DoeBrazilOnyama Limba NEGOTIATION
Faith Q OstroskyJapanIvan Magalhaes NEW
Chavez B KolmetzFranceAmy Elsner RENEWAL
Kaitlin E KolmetzArgentinaAmy Elsner NEGOTIATION
Emily C PerinRussiaAnna Fali UNQUALIFIED
Greenwood T MorascaUnited KingdomIoni Bowcher NEGOTIATION
Ricardo L OldroydRussiaBernardo Dominic UNQUALIFIED
Arvin X PoquetteJapanAmy Elsner UNQUALIFIED
Francesco G CaldareraGermanyStephen Shaw RENEWAL
Arvin E OldroydJapanElwin Sharvill RENEWAL
Morrow R KuskoIndiaXuxue Feng NEGOTIATION
Murillo F ShinkoFranceIoni Bowcher RENEWAL
Johnson J MaletCanadaStephen Shaw PROPOSAL
Izzy C MaletUnited KingdomAnna Fali NEW
Isabel K MacleadCanadaOnyama Limba NEW
Chavez X MorascaArgentinaOnyama Limba RENEWAL
Aruna O InouyeBrazilStephen Shaw RENEWAL
Rodrigues A RoysterRussiaAsiya Javayant RENEWAL
Izzy N SchemmerCanadaStephen Shaw UNQUALIFIED
Mujtaba H DarakjyItalyElwin Sharvill UNQUALIFIED
Silvio C SaylorsItalyXuxue Feng UNQUALIFIED
Jeanfrancois F InouyeAustraliaIoni Bowcher NEGOTIATION
Jefferson U MaletSpainBernardo Dominic RENEWAL
Clifford L RulapaughJapanBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Ashley X Butt
Leja E Sergi
Munro U Waycott
Izzy A Sergi
Stacey W Wieser
Adams C Poquette
Sinclair E Caldarera
Ivar I Glick
Aruna L Venere
Costa M Ferencz
Sinclair M Nicka
Salvatore B Poquette
Murillo U Royster
Aruna D Albares
Leon T Whobrey
Rodrigues R Campain
Ashley E Rulapaugh
Adams P Garufi
Julie C Foller
Maria S Maclead
Maria U Garufi
Wickens Z Figeroa
Kaitlin I Malet
Kadeem R Rim
Tony M Amigon
Morrow D Malet
Smith P Gillian
Greenwood Z Oldroyd
Leja S Wieser
Wickens T Oldroyd
David Y Stenseth
Jennifer W Campain
David H Ruta
Smith H Waycott
Leja O Caudy
Rodrigues Q Rim
Jones Y Schemmer
Emily X Sergi
Jeanfrancois J Dilliard
Emily R Doe
Greenwood P Chui
Antonio P Ostrosky
Antonio Y Foller
Stacey C Dilliard
Stacey S Darakjy
Munro I Whobrey
Clifford X Amigon
Julie Y Darakjy
Aditya L Inouye
Maisha V Kusko
IdCountryDate
1000Germany2026-07-09
1001Japan2026-07-20
1002Spain2026-08-02
1003Russia2026-07-18
1004India2026-07-19
1005Germany2026-07-30
1006India2026-07-17
1007Spain2026-07-24
1008United Kingdom2026-07-25
1009Spain2026-07-22
1010Russia2026-07-14
1011France2026-08-01
1012Spain2026-07-12
1013Spain2026-07-17
1014United Kingdom2026-08-03
1015Germany2026-07-31
1016Italy2026-08-03
1017Japan2026-07-14
1018Italy2026-07-26
1019Brazil2026-07-09
1020Australia2026-07-18
1021Australia2026-07-09
1022Spain2026-07-17
1023Canada2026-07-12
1024France2026-07-07
1025Argentina2026-07-10
1026Italy2026-07-19
1027Argentina2026-07-14
1028India2026-07-18
1029France2026-07-26
1030Germany2026-07-26
1031India2026-07-16
1032Argentina2026-07-24
1033Italy2026-07-26
1034Germany2026-07-13
1035Canada2026-07-29
1036Spain2026-07-17
1037Argentina2026-07-15
1038Germany2026-07-23
1039France2026-07-07
1040Australia2026-07-25
1041Canada2026-08-04
1042France2026-07-27
1043Australia2026-08-03
1044Argentina2026-07-11
1045Canada2026-07-23
1046India2026-07-16
1047Canada2026-07-25
1048United Kingdom2026-08-04
1049Japan2026-07-07

On-Demand Data

NameIdCountryDate
Costa R Figeroa1000Canada2026-07-25
Alejandro R Oldroyd1001France2026-07-10
Ashley B Butt1002Argentina2026-07-08
Sinclair Q Kolmetz1003Brazil2026-07-15
Ricardo E Iturbide1004France2026-07-21
Maisha T Butt1005India2026-07-24
Aruna A Schemmer1006France2026-07-15
Arvin S Albares1007Brazil2026-07-17
Arvin P Albares1008Brazil2026-07-10
Wickens S Ostrosky1009Germany2026-07-30
Kadeem F Glick1010France2026-08-03
Jeanfrancois P Oldroyd1011United Kingdom2026-07-24
Jefferson F Wieser1012Brazil2026-08-03
Rodrigues P Foller1013Spain2026-07-20
Morrow T Whobrey1014United Kingdom2026-07-17
David J Chui1015Brazil2026-08-04
Emily K Garufi1016Australia2026-07-11
Kadeem B Venere1017Japan2026-07-15
Ashley M Albares1018United Kingdom2026-08-01
Leon I Figeroa1019France2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa X WieserIndiaAsiya Javayant NEW
Rodrigues W CaudyUnited KingdomAnna Fali NEW
Jones Q VenereCanadaBernardo Dominic NEGOTIATION
Greenwood E KuskoGermanyOnyama Limba UNQUALIFIED
Rodrigues K FollerBrazilXuxue Feng NEW
Mayumi A KolmetzSpainOnyama Limba UNQUALIFIED
Leja H PerinCanadaXuxue Feng UNQUALIFIED
Chavez L StensethAustraliaOnyama Limba UNQUALIFIED
Arvin D ButtArgentinaOnyama Limba PROPOSAL
Munro Z SergiCanadaXuxue Feng PROPOSAL
Jeanfrancois B FollerBrazilOnyama Limba NEGOTIATION
Francesco B AlbaresJapanOnyama Limba NEGOTIATION
Isabel N FerenczItalyIoni Bowcher PROPOSAL
Maria K SlusarskiRussiaElwin Sharvill UNQUALIFIED
Ivar Z VocelkaBrazilAsiya Javayant PROPOSAL
Murillo E AmigonIndiaElwin Sharvill UNQUALIFIED
Misaki D MacleadUnited KingdomElwin Sharvill PROPOSAL
David W NestleBrazilIoni Bowcher PROPOSAL
Kadeem N SchemmerRussiaStephen Shaw NEW
Maisha I StockhamFranceAsiya Javayant QUALIFIED
Kaitlin N MorascaUnited KingdomAnna Fali QUALIFIED
Adams H PerinRussiaElwin Sharvill NEW
Aika X PoquetteCanadaStephen Shaw NEW
Claire Z BowleyAustraliaElwin Sharvill NEGOTIATION
Antonio W CaudyIndiaAnna Fali RENEWAL
Sinclair W MarrierCanadaAmy Elsner NEGOTIATION
Octavia X GauchoItalyBernardo Dominic QUALIFIED
David W DilliardBrazilXuxue Feng NEW
Faith U WhobreyJapanElwin Sharvill PROPOSAL
Francesco L InouyeFranceXuxue Feng NEW
Sinclair R SlusarskiBrazilIoni Bowcher PROPOSAL
Salvatore A MorascaItalyIoni Bowcher UNQUALIFIED
Julie D FerenczBrazilElwin Sharvill QUALIFIED
Wickens J CampainCanadaAmy Elsner RENEWAL
Misaki C GarufiGermanyStephen Shaw NEW
Julie T FigeroaArgentinaStephen Shaw NEW
Julie S FlosiUnited KingdomIoni Bowcher PROPOSAL
Mujtaba J StensethArgentinaElwin Sharvill PROPOSAL
Nicolas T BriddickJapanOnyama Limba PROPOSAL
Julie B PaprockiUnited KingdomIvan Magalhaes 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>