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
Jennifer V StensethAustraliaStephen Shaw PROPOSAL
Arvin L InouyeArgentinaAnna Fali QUALIFIED
Munro W GarufiFranceAsiya Javayant NEGOTIATION
Cody S InouyeJapanXuxue Feng PROPOSAL
Mujtaba G VocelkaBrazilAmy Elsner NEW
Rodrigues S InouyeGermanyAsiya Javayant NEGOTIATION
Nicolas O StensethItalyIoni Bowcher UNQUALIFIED
Smith L VocelkaArgentinaAmy Elsner NEGOTIATION
Leon R ShinkoJapanOnyama Limba NEGOTIATION
Stacey R SchemmerJapanIvan Magalhaes RENEWAL
Cody K OldroydItalyElwin Sharvill NEW
Ricardo A GauchoBrazilElwin Sharvill NEGOTIATION
Johnson U MarrierItalyAnna Fali UNQUALIFIED
Maisha C PaprockiJapanAsiya Javayant NEGOTIATION
Chavez O StensethSpainStephen Shaw PROPOSAL
Emily K GlickFranceAmy Elsner QUALIFIED
David I OstroskyFranceElwin Sharvill NEGOTIATION
Sinclair J RutaArgentinaIvan Magalhaes UNQUALIFIED
Emily W WieserBrazilStephen Shaw NEW
Wickens O DoeUnited KingdomAsiya Javayant NEW
Silvio A WieserItalyOnyama Limba QUALIFIED
Leon T CaudyItalyIvan Magalhaes NEGOTIATION
Nicolas Y PoquetteGermanyIvan Magalhaes NEGOTIATION
Juan O ShinkoItalyBernardo Dominic QUALIFIED
Darci G BologniaUnited KingdomIvan Magalhaes PROPOSAL
Maria V OldroydGermanyAnna Fali QUALIFIED
Maria V OldroydJapanAsiya Javayant NEGOTIATION
Aika M PaprockiFranceAmy Elsner NEGOTIATION
Silvio H ShinkoJapanElwin Sharvill NEGOTIATION
Misaki D InouyeUnited KingdomBernardo Dominic NEW
Ricardo H RoysterRussiaXuxue Feng NEW
Maria F FigeroaCanadaAsiya Javayant UNQUALIFIED
Alejandro L BologniaBrazilIvan Magalhaes PROPOSAL
Salvatore D SchemmerArgentinaElwin Sharvill QUALIFIED
Aruna H FigeroaRussiaBernardo Dominic PROPOSAL
Clifford L WhobreyGermanyAsiya Javayant PROPOSAL
Rodrigues N DoeRussiaOnyama Limba QUALIFIED
Deepesh V FollerItalyElwin Sharvill NEW
Juan R CaudyArgentinaIvan Magalhaes RENEWAL
Johnson G PaprockiJapanElwin Sharvill PROPOSAL
Salvatore I PoquetteFranceStephen Shaw RENEWAL
Ashley B GarufiFranceAnna Fali UNQUALIFIED
Morrow I CaldareraItalyAmy Elsner QUALIFIED
Izzy Q KolmetzSpainBernardo Dominic NEW
Wickens E MorascaIndiaStephen Shaw PROPOSAL
Faith S GarufiCanadaBernardo Dominic UNQUALIFIED
Smith J NestleJapanIoni Bowcher RENEWAL
Emily U WhobreyRussiaOnyama Limba QUALIFIED
Johnson V ShinkoArgentinaStephen Shaw NEGOTIATION
Munro I AlbaresRussiaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna C FollerGermanyAmy Elsner NEW
Misaki B SlusarskiCanadaIoni Bowcher UNQUALIFIED
Tony J DoeJapanAnna Fali QUALIFIED
Ashley Y WhobreySpainBernardo Dominic NEGOTIATION
Rodrigues F PaprockiFranceIoni Bowcher NEW
Munro B CampainBrazilStephen Shaw PROPOSAL
Mujtaba L SlusarskiFranceOnyama Limba QUALIFIED
Isabel Z SchemmerUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois Z RulapaughUnited KingdomIvan Magalhaes UNQUALIFIED
Salvatore X NickaRussiaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer H DoeIndia2026-06-26Feltz Printing Service RENEWAL21Stephen Shaw
1001Julie J BriddickUnited Kingdom2026-07-06Morlong Associates UNQUALIFIED60Onyama Limba
1002Alejandro F KuskoBrazil2026-06-30King, Christopher A Esq QUALIFIED43Ioni Bowcher
1003David K AmigonGermany2026-07-21Rousseaux, Michael Esq QUALIFIED72Onyama Limba
1004Alejandro R KuskoItaly2026-06-23Feltz Printing Service PROPOSAL47Stephen Shaw
1005Isabel S MacleadRussia2026-06-29Commercial Press PROPOSAL11Xuxue Feng
1006Alejandro M WieserFrance2026-07-13Benton, John B Jr NEW47Onyama Limba
1007Misaki D ChuiFrance2026-07-18Buckley Miller Wright QUALIFIED54Stephen Shaw
1008Stacey L DarakjyGermany2026-07-03Dorl, James J Esq NEGOTIATION90Xuxue Feng
1009Antonio V VocelkaAustralia2026-07-03King, Christopher A Esq QUALIFIED52Onyama Limba
1010Nicolas J WhobreyFrance2026-07-06Rangoni Of Florence PROPOSAL92Stephen Shaw
1011Kadeem P KuskoArgentina2026-07-11Buckley Miller Wright PROPOSAL71Elwin Sharvill
1012Jefferson E RoysterRussia2026-06-23Feiner Bros QUALIFIED54Bernardo Dominic
1013Jeanfrancois M RutaUnited Kingdom2026-07-02Chapman, Ross E Esq NEGOTIATION37Ivan Magalhaes
1014Stacey C GauchoIndia2026-07-18Truhlar And Truhlar Attys NEW83Stephen Shaw
1015Jefferson V MorascaFrance2026-06-22Truhlar And Truhlar Attys NEW8Amy Elsner
1016Ricardo R DilliardFrance2026-06-24Chanay, Jeffrey A Esq UNQUALIFIED72Anna Fali
1017Maria Z VocelkaJapan2026-07-09Dorl, James J Esq RENEWAL10Stephen Shaw
1018Misaki Q RulapaughGermany2026-07-17King, Christopher A Esq QUALIFIED94Elwin Sharvill
1019Cody U GarufiCanada2026-07-15Dorl, James J Esq NEGOTIATION24Xuxue Feng
1020Leon O PoquetteRussia2026-07-11Commercial Press NEW23Ioni Bowcher
1021Morrow Z RutaSpain2026-06-26King, Christopher A Esq PROPOSAL66Ioni Bowcher
1022David H SaylorsGermany2026-07-20Feiner Bros QUALIFIED74Asiya Javayant
1023Cody W SergiSpain2026-07-01Rangoni Of Florence UNQUALIFIED65Amy Elsner
1024Julie E FollerUnited Kingdom2026-07-08Morlong Associates UNQUALIFIED12Amy Elsner
1025Clifford N SchemmerAustralia2026-06-28King, Christopher A Esq NEGOTIATION92Bernardo Dominic
1026Darci Y FerenczJapan2026-06-29Truhlar And Truhlar Attys RENEWAL65Stephen Shaw
1027Nicolas V WieserArgentina2026-06-26Benton, John B Jr QUALIFIED28Ivan Magalhaes
1028James W MaletJapan2026-06-27Feltz Printing Service RENEWAL29Xuxue Feng
1029Aika O GauchoArgentina2026-07-03Truhlar And Truhlar Attys NEW7Amy Elsner
1030Alejandro Y DarakjyJapan2026-07-04Feltz Printing Service NEW67Ivan Magalhaes
1031Tony U FollerJapan2026-07-08Dorl, James J Esq NEW99Amy Elsner
1032David X AlbaresArgentina2026-07-14Feltz Printing Service NEGOTIATION88Bernardo Dominic
1033Nicolas I AmigonGermany2026-07-04Rousseaux, Michael Esq QUALIFIED49Asiya Javayant
1034Cody Y FigeroaIndia2026-06-22Feiner Bros QUALIFIED98Bernardo Dominic
1035Aditya K MorascaFrance2026-07-21Dorl, James J Esq QUALIFIED88Anna Fali
1036Faith A GauchoIndia2026-06-28Chanay, Jeffrey A Esq NEGOTIATION28Asiya Javayant
1037Alejandro R AmigonArgentina2026-06-26Chemel, James L Cpa NEW87Ivan Magalhaes
1038Smith E PaprockiItaly2026-07-11King, Christopher A Esq NEGOTIATION35Elwin Sharvill
1039Stacey P SaylorsSpain2026-06-28Chemel, James L Cpa RENEWAL47Anna Fali
1040Deepesh H NickaFrance2026-07-20Rousseaux, Michael Esq PROPOSAL87Bernardo Dominic
1041Isabel N PaprockiJapan2026-07-10Chemel, James L Cpa RENEWAL41Ioni Bowcher
1042Murillo D TollnerRussia2026-07-01Chanay, Jeffrey A Esq NEGOTIATION75Elwin Sharvill
1043Aika Q OldroydJapan2026-06-22Truhlar And Truhlar Attys PROPOSAL32Bernardo Dominic
1044Francesco R BologniaItaly2026-07-03Commercial Press NEW26Bernardo Dominic
1045Aruna M InouyeCanada2026-06-30Feiner Bros NEGOTIATION40Amy Elsner
1046Deepesh W StockhamFrance2026-07-09Truhlar And Truhlar Attys QUALIFIED54Ioni Bowcher
1047Silvio O KolmetzItaly2026-06-22Commercial Press UNQUALIFIED52Bernardo Dominic
1048Aditya C PerinArgentina2026-06-30Commercial Press NEW31Ivan Magalhaes
1049Jones Q GlickArgentina2026-07-13Truhlar And Truhlar Attys RENEWAL35Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Deepesh E SaylorsArgentinaStephen Shaw NEGOTIATION
James J BologniaFranceAnna Fali QUALIFIED
Jefferson C RoysterUnited KingdomStephen Shaw NEGOTIATION
Chavez O GillianArgentinaIvan Magalhaes PROPOSAL
Darci I KuskoRussiaIvan Magalhaes NEGOTIATION
Johnson T PoquetteJapanIoni Bowcher NEW
Claire O RulapaughArgentinaIoni Bowcher RENEWAL
Maisha M StockhamRussiaIoni Bowcher QUALIFIED
Costa T FlosiRussiaIoni Bowcher NEW
Jeanfrancois D MacleadUnited KingdomAnna Fali UNQUALIFIED
Misaki A StensethIndiaXuxue Feng UNQUALIFIED
Costa H WaycottArgentinaAsiya Javayant QUALIFIED
Arvin K FlosiItalyXuxue Feng UNQUALIFIED
Adams H ButtUnited KingdomXuxue Feng QUALIFIED
Aika I SergiFranceIvan Magalhaes QUALIFIED
Francesco Z RutaSpainStephen Shaw UNQUALIFIED
Salvatore T BowleyBrazilElwin Sharvill NEW
Nicolas I CaudyGermanyBernardo Dominic NEGOTIATION
Greenwood O FerenczFranceStephen Shaw QUALIFIED
Greenwood A DarakjySpainBernardo Dominic NEGOTIATION
Maria K NickaUnited KingdomAsiya Javayant NEW
Aruna D MaletSpainOnyama Limba UNQUALIFIED
Salvatore H MorascaArgentinaIoni Bowcher RENEWAL
Jones A GlickItalyStephen Shaw RENEWAL
Munro S ButtCanadaStephen Shaw NEGOTIATION
Nicolas K PoquetteArgentinaBernardo Dominic QUALIFIED
Alejandro P WieserSpainIvan Magalhaes NEGOTIATION
Aruna X RoysterCanadaOnyama Limba QUALIFIED
Aditya D FerenczAustraliaIoni Bowcher NEW
Salvatore X ButtAustraliaXuxue Feng PROPOSAL
Mayumi D SergiGermanyElwin Sharvill RENEWAL
Aika G SaylorsBrazilOnyama Limba NEW
Ricardo R FigeroaBrazilAsiya Javayant NEGOTIATION
Murillo N PerinBrazilXuxue Feng UNQUALIFIED
Aruna G RimSpainAmy Elsner NEGOTIATION
Salvatore W WhobreySpainAnna Fali PROPOSAL
Izzy R ShinkoJapanAnna Fali QUALIFIED
Jefferson U BologniaAustraliaElwin Sharvill UNQUALIFIED
Morrow E SergiSpainIoni Bowcher UNQUALIFIED
Jefferson H AlbaresIndiaStephen Shaw QUALIFIED
Faith H FollerJapanElwin Sharvill RENEWAL
Faith Z OstroskyGermanyXuxue Feng PROPOSAL
Claire G ChuiIndiaElwin Sharvill PROPOSAL
David F WaycottArgentinaIoni Bowcher PROPOSAL
Mayumi X PerinFranceBernardo Dominic NEGOTIATION
Arvin D DarakjyGermanyXuxue Feng NEGOTIATION
Isabel T PoquetteUnited KingdomAsiya Javayant UNQUALIFIED
Silvio V NestleAustraliaAmy Elsner RENEWAL
Maisha E MaletAustraliaIoni Bowcher NEW
Tony P PaprockiArgentinaXuxue Feng QUALIFIED
Frozen Columns
Name
Juan G Bowley
Adams G Shinko
Rodrigues D Butt
Kadeem R Caudy
Murillo K Stockham
Aika Q Figeroa
Jennifer J Kusko
Misaki X Malet
Faith F Briddick
Stacey B Stockham
Chavez L Saylors
Maisha H Iturbide
Octavia U Vocelka
Maisha G Chui
Murillo P Saylors
Aika G Gaucho
Deepesh R Whobrey
Aruna I Rim
Isabel Q Amigon
Aditya I Ruta
Adams J Schemmer
Smith H Rulapaugh
Izzy O Nicka
Julie O Vocelka
Clifford V Rim
Smith F Shinko
Isabel S Perin
Misaki Q Glick
Izzy H Glick
Jefferson M Flosi
Juan J Kusko
Aruna Y Foller
David K Butt
Adams M Perin
Munro Y Stenseth
Emily K Paprocki
Misaki F Perin
Sinclair T Iturbide
Chavez R Ferencz
Leja L Oldroyd
Faith W Vocelka
Arvin N Stockham
Maisha Z Ferencz
Arvin U Butt
Clifford R Perin
Salvatore O Perin
Maria A Schemmer
Mujtaba M Malet
Deepesh F Morasca
Aditya X Gillian
IdCountryDate
1000Germany2026-06-23
1001Germany2026-06-23
1002Spain2026-06-22
1003Argentina2026-07-09
1004Japan2026-07-05
1005Australia2026-07-17
1006Canada2026-07-14
1007Italy2026-07-14
1008Germany2026-07-21
1009Australia2026-07-03
1010Brazil2026-06-26
1011India2026-07-10
1012India2026-07-06
1013Argentina2026-06-28
1014Italy2026-07-05
1015Italy2026-07-18
1016Argentina2026-07-08
1017Canada2026-07-19
1018Germany2026-07-20
1019Japan2026-07-02
1020Australia2026-06-30
1021Germany2026-07-10
1022Brazil2026-07-01
1023United Kingdom2026-07-03
1024India2026-07-15
1025Canada2026-07-04
1026Canada2026-06-22
1027India2026-07-19
1028Italy2026-07-16
1029Russia2026-07-08
1030Italy2026-07-20
1031Japan2026-07-21
1032Argentina2026-07-14
1033Italy2026-06-30
1034Argentina2026-07-19
1035India2026-07-17
1036Canada2026-06-27
1037France2026-07-12
1038Canada2026-06-26
1039India2026-07-14
1040France2026-07-17
1041United Kingdom2026-07-04
1042Italy2026-07-07
1043India2026-07-03
1044India2026-07-11
1045Argentina2026-06-27
1046Argentina2026-07-17
1047Italy2026-07-18
1048Japan2026-06-24
1049Germany2026-07-17

On-Demand Data

NameIdCountryDate
Ricardo W Schemmer1000Japan2026-07-10
Morrow B Venere1001Japan2026-06-29
Chavez B Schemmer1002Spain2026-07-07
Chavez F Stockham1003Canada2026-07-20
Aika M Chui1004Brazil2026-06-30
Cody L Whobrey1005Spain2026-07-10
Isabel C Stenseth1006Australia2026-07-06
Clifford C Nicka1007Australia2026-07-04
Ashley I Venere1008Japan2026-07-19
Aika X Rulapaugh1009Italy2026-06-28
Deepesh O Bolognia1010Canada2026-07-11
Leon J Flosi1011Argentina2026-07-07
Ricardo B Chui1012Japan2026-07-06
Jones X Iturbide1013Russia2026-07-19
Cody V Darakjy1014Italy2026-07-06
Cody R Stockham1015United Kingdom2026-07-06
Smith E Perin1016Spain2026-07-05
Johnson K Butt1017United Kingdom2026-07-08
Smith T Rim1018Russia2026-07-01
James U Bolognia1019Germany2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley K BriddickSpainOnyama Limba PROPOSAL
Darci T IturbideFranceStephen Shaw QUALIFIED
Salvatore Z GauchoArgentinaStephen Shaw NEGOTIATION
Deepesh D StockhamAustraliaStephen Shaw RENEWAL
Wickens G FigeroaItalyAmy Elsner UNQUALIFIED
Tony V InouyeRussiaAsiya Javayant NEW
Salvatore Z PerinUnited KingdomIvan Magalhaes PROPOSAL
Maisha W RulapaughRussiaStephen Shaw RENEWAL
Maria Z WhobreySpainXuxue Feng RENEWAL
Jefferson X ButtGermanyAnna Fali PROPOSAL
Wickens G VenereBrazilAsiya Javayant RENEWAL
Antonio R RulapaughIndiaElwin Sharvill NEGOTIATION
Clifford Y SlusarskiBrazilIoni Bowcher UNQUALIFIED
Nicolas W MacleadArgentinaXuxue Feng PROPOSAL
Deepesh K VenereUnited KingdomBernardo Dominic QUALIFIED
Costa Z FigeroaAustraliaAmy Elsner NEW
Smith T PaprockiGermanyAnna Fali UNQUALIFIED
Misaki F KuskoSpainStephen Shaw NEGOTIATION
Greenwood T DilliardBrazilIvan Magalhaes QUALIFIED
Emily L OstroskyFranceBernardo Dominic NEW
Jones Y MaletItalyXuxue Feng NEW
Francesco R FollerAustraliaElwin Sharvill NEGOTIATION
Aika L BriddickAustraliaXuxue Feng PROPOSAL
Ashley V ShinkoFranceAmy Elsner NEW
Stacey H ChuiIndiaAsiya Javayant RENEWAL
Deepesh Q IturbideSpainIoni Bowcher QUALIFIED
Smith J GillianJapanElwin Sharvill QUALIFIED
Aruna V OldroydCanadaElwin Sharvill NEW
Mayumi O OldroydRussiaXuxue Feng QUALIFIED
Francesco S OldroydArgentinaElwin Sharvill RENEWAL
Johnson S ChuiFranceOnyama Limba UNQUALIFIED
Stacey L PoquetteJapanStephen Shaw RENEWAL
Wickens Y MaletBrazilOnyama Limba UNQUALIFIED
Juan T RutaSpainStephen Shaw QUALIFIED
Maisha B NickaAustraliaAsiya Javayant QUALIFIED
Salvatore I WaycottAustraliaIoni Bowcher NEW
Wickens A WaycottSpainAnna Fali NEGOTIATION
Adams E GlickAustraliaXuxue Feng RENEWAL
Smith G WaycottJapanIvan Magalhaes QUALIFIED
Sinclair B MacleadIndiaBernardo Dominic 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>