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
Claire W KolmetzAustraliaBernardo Dominic NEW
Murillo C OldroydIndiaXuxue Feng NEW
Jefferson O AlbaresBrazilAsiya Javayant RENEWAL
Tony K RimIndiaAsiya Javayant NEGOTIATION
Aika B OldroydArgentinaIvan Magalhaes RENEWAL
Murillo R DoeSpainIoni Bowcher NEGOTIATION
Octavia J BologniaGermanyIvan Magalhaes PROPOSAL
Munro W RoysterJapanElwin Sharvill QUALIFIED
Ashley M FerenczFranceXuxue Feng NEW
Cody U GlickRussiaIoni Bowcher NEW
Adams I NickaIndiaStephen Shaw RENEWAL
Jefferson Z StensethAustraliaStephen Shaw RENEWAL
Aika K GlickAustraliaOnyama Limba NEW
Antonio V MaletJapanOnyama Limba QUALIFIED
Smith T CaldareraUnited KingdomBernardo Dominic QUALIFIED
Costa L StockhamSpainOnyama Limba NEW
Greenwood E CaudyGermanyIoni Bowcher UNQUALIFIED
Mujtaba V BriddickArgentinaIvan Magalhaes PROPOSAL
Wickens I PoquetteFranceOnyama Limba PROPOSAL
Juan V SlusarskiFranceElwin Sharvill NEW
Aditya N ButtFranceStephen Shaw UNQUALIFIED
Rodrigues Q IturbideUnited KingdomAnna Fali UNQUALIFIED
Kaitlin Z VenereRussiaElwin Sharvill NEW
Greenwood G BriddickGermanyIvan Magalhaes UNQUALIFIED
Munro U WieserSpainAsiya Javayant UNQUALIFIED
Jones A StockhamJapanOnyama Limba RENEWAL
Mayumi H OstroskyCanadaAnna Fali PROPOSAL
Claire L CaudyCanadaAnna Fali RENEWAL
Stacey Q VocelkaArgentinaAmy Elsner UNQUALIFIED
Francesco R IturbideCanadaXuxue Feng RENEWAL
Ivar Q FigeroaUnited KingdomBernardo Dominic NEGOTIATION
Adams V BologniaUnited KingdomAsiya Javayant PROPOSAL
Murillo G MaletItalyBernardo Dominic RENEWAL
David C ShinkoUnited KingdomElwin Sharvill PROPOSAL
Misaki G MacleadRussiaAmy Elsner QUALIFIED
Chavez C MorascaJapanOnyama Limba PROPOSAL
Greenwood T CaldareraIndiaOnyama Limba NEGOTIATION
Julie E BriddickJapanOnyama Limba UNQUALIFIED
Arvin K VenereGermanyStephen Shaw UNQUALIFIED
Isabel I AlbaresFranceStephen Shaw UNQUALIFIED
Tony A DoeAustraliaAnna Fali PROPOSAL
Deepesh C SergiJapanAnna Fali PROPOSAL
Morrow L PerinFranceIvan Magalhaes PROPOSAL
Sinclair N MaletBrazilXuxue Feng QUALIFIED
Murillo I SchemmerFranceStephen Shaw NEGOTIATION
Francesco P BologniaItalyElwin Sharvill RENEWAL
Maria S NestleUnited KingdomAsiya Javayant NEGOTIATION
Smith K StensethFranceElwin Sharvill QUALIFIED
Julie N GlickBrazilStephen Shaw QUALIFIED
Tony M CaldareraArgentinaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Antonio H GlickRussiaIoni Bowcher NEW
Leja O CaldareraFranceXuxue Feng PROPOSAL
Emily B IturbideItalyAsiya Javayant NEGOTIATION
Ashley K SlusarskiBrazilAsiya Javayant UNQUALIFIED
Murillo R WhobreyJapanBernardo Dominic NEW
Kaitlin F StockhamBrazilXuxue Feng QUALIFIED
Clifford K AmigonSpainAnna Fali UNQUALIFIED
Aruna L IturbideUnited KingdomOnyama Limba UNQUALIFIED
Greenwood U GarufiRussiaIoni Bowcher NEGOTIATION
Mayumi F MacleadUnited KingdomStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey W InouyeArgentina2026-07-17Benton, John B Jr UNQUALIFIED12Amy Elsner
1001Munro T PaprockiFrance2026-06-21Truhlar And Truhlar Attys RENEWAL28Onyama Limba
1002Costa E MaletFrance2026-07-04Feltz Printing Service QUALIFIED94Elwin Sharvill
1003Tony L PaprockiBrazil2026-07-01Truhlar And Truhlar Attys QUALIFIED57Ioni Bowcher
1004Alejandro D CampainUnited Kingdom2026-07-02Rousseaux, Michael Esq PROPOSAL10Ioni Bowcher
1005Arvin O NestleRussia2026-07-04Benton, John B Jr NEW81Bernardo Dominic
1006Cody X VocelkaGermany2026-06-21Chapman, Ross E Esq PROPOSAL85Ivan Magalhaes
1007Aika G StockhamItaly2026-07-15Benton, John B Jr QUALIFIED60Bernardo Dominic
1008Jefferson C RoysterIndia2026-06-24Benton, John B Jr RENEWAL16Bernardo Dominic
1009James T FlosiSpain2026-06-26Truhlar And Truhlar Attys RENEWAL20Bernardo Dominic
1010James Z AlbaresAustralia2026-07-15Rousseaux, Michael Esq NEW78Anna Fali
1011Francesco R InouyeAustralia2026-07-01King, Christopher A Esq NEGOTIATION82Xuxue Feng
1012Francesco U IturbideGermany2026-07-06Feltz Printing Service UNQUALIFIED92Anna Fali
1013Silvio R NestleGermany2026-07-05Chemel, James L Cpa PROPOSAL50Onyama Limba
1014Greenwood D MaletAustralia2026-07-11King, Christopher A Esq NEW58Ioni Bowcher
1015James X DilliardRussia2026-07-04Benton, John B Jr PROPOSAL14Asiya Javayant
1016Alejandro U CaudyGermany2026-07-18Chemel, James L Cpa QUALIFIED98Ivan Magalhaes
1017Jefferson K AlbaresSpain2026-06-23Feiner Bros RENEWAL45Onyama Limba
1018Nicolas S BowleyAustralia2026-07-03Benton, John B Jr PROPOSAL50Asiya Javayant
1019Wickens N GauchoAustralia2026-07-10Truhlar And Truhlar Attys NEGOTIATION77Ioni Bowcher
1020Isabel B MorascaIndia2026-07-06Benton, John B Jr UNQUALIFIED65Asiya Javayant
1021Clifford U WieserUnited Kingdom2026-07-04Morlong Associates PROPOSAL50Ivan Magalhaes
1022Silvio F MacleadSpain2026-06-26Rousseaux, Michael Esq RENEWAL66Bernardo Dominic
1023Leja I KuskoFrance2026-06-26Feiner Bros QUALIFIED36Amy Elsner
1024Emily K PaprockiFrance2026-07-04Rousseaux, Michael Esq QUALIFIED4Onyama Limba
1025Claire V NickaBrazil2026-07-06Feiner Bros PROPOSAL61Amy Elsner
1026Clifford L WieserSpain2026-07-03Feltz Printing Service QUALIFIED32Asiya Javayant
1027Murillo P StockhamFrance2026-06-23King, Christopher A Esq NEW14Xuxue Feng
1028Emily G MaletCanada2026-07-13Printing Dimensions UNQUALIFIED99Asiya Javayant
1029Silvio X GarufiJapan2026-06-22Chanay, Jeffrey A Esq RENEWAL15Anna Fali
1030Ashley E AmigonJapan2026-06-22Commercial Press RENEWAL64Amy Elsner
1031Julie K AlbaresArgentina2026-06-26Dorl, James J Esq RENEWAL5Xuxue Feng
1032Silvio C NestleArgentina2026-07-14Feltz Printing Service UNQUALIFIED35Onyama Limba
1033Izzy G VenereItaly2026-06-24Buckley Miller Wright UNQUALIFIED32Ioni Bowcher
1034Leon H MaletJapan2026-06-24Morlong Associates PROPOSAL92Ioni Bowcher
1035Munro L SergiCanada2026-07-03Chemel, James L Cpa PROPOSAL26Elwin Sharvill
1036Ivar W FollerCanada2026-07-07Rangoni Of Florence UNQUALIFIED9Asiya Javayant
1037Sinclair N RulapaughAustralia2026-07-09Morlong Associates NEW83Ioni Bowcher
1038Faith D StensethArgentina2026-06-26Chemel, James L Cpa QUALIFIED40Elwin Sharvill
1039Rodrigues L FlosiIndia2026-06-28Commercial Press NEW3Bernardo Dominic
1040Rodrigues R NickaUnited Kingdom2026-07-07Rangoni Of Florence NEGOTIATION94Asiya Javayant
1041Stacey Y CampainSpain2026-06-23Printing Dimensions RENEWAL71Xuxue Feng
1042Silvio Q BowleyBrazil2026-06-30Rousseaux, Michael Esq NEW30Asiya Javayant
1043Claire H PoquetteCanada2026-06-27Rangoni Of Florence NEW93Ioni Bowcher
1044Greenwood U ButtRussia2026-06-22Chemel, James L Cpa UNQUALIFIED85Asiya Javayant
1045Antonio U SergiAustralia2026-07-17Feiner Bros NEGOTIATION51Ivan Magalhaes
1046Jeanfrancois R DoeSpain2026-07-08Buckley Miller Wright NEGOTIATION54Elwin Sharvill
1047Nicolas Z StensethAustralia2026-07-10Truhlar And Truhlar Attys PROPOSAL59Bernardo Dominic
1048Clifford T VocelkaItaly2026-07-02Dorl, James J Esq NEGOTIATION17Ioni Bowcher
1049Leja F FollerBrazil2026-06-24Chemel, James L Cpa NEW81Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Nicolas I OldroydJapanElwin Sharvill UNQUALIFIED
Silvio E AlbaresBrazilElwin Sharvill NEW
Leja W OldroydArgentinaOnyama Limba NEW
Jeanfrancois T ButtCanadaIvan Magalhaes RENEWAL
Smith U RulapaughGermanyXuxue Feng NEW
Salvatore M MacleadCanadaIvan Magalhaes RENEWAL
Mayumi G PerinFranceIvan Magalhaes UNQUALIFIED
Aruna U SlusarskiBrazilAnna Fali PROPOSAL
Chavez S AlbaresCanadaStephen Shaw UNQUALIFIED
Ashley Y BriddickGermanyAmy Elsner NEGOTIATION
Nicolas V RoysterArgentinaOnyama Limba UNQUALIFIED
Alejandro C MacleadUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair L IturbideFranceOnyama Limba NEGOTIATION
Julie W DoeRussiaOnyama Limba RENEWAL
Antonio I SergiArgentinaXuxue Feng UNQUALIFIED
Julie X WhobreyCanadaIoni Bowcher NEW
Leon L BowleySpainIvan Magalhaes UNQUALIFIED
Jefferson F GauchoAustraliaStephen Shaw PROPOSAL
Johnson C AlbaresAustraliaIvan Magalhaes NEW
Munro V InouyeArgentinaAmy Elsner QUALIFIED
Leja E AmigonIndiaAnna Fali NEW
Cody T RimAustraliaBernardo Dominic NEGOTIATION
Silvio L RutaItalyIvan Magalhaes QUALIFIED
Cody A NickaIndiaAmy Elsner NEGOTIATION
Leja L OstroskyCanadaIvan Magalhaes QUALIFIED
Kadeem H RutaFranceStephen Shaw NEW
Stacey R WhobreyFranceAnna Fali QUALIFIED
Tony D KolmetzAustraliaAsiya Javayant NEW
Emily X GillianSpainElwin Sharvill UNQUALIFIED
Rodrigues D BowleyIndiaStephen Shaw NEGOTIATION
Octavia J GauchoUnited KingdomAnna Fali NEGOTIATION
Costa C FollerUnited KingdomAsiya Javayant UNQUALIFIED
Ricardo X SaylorsItalyIvan Magalhaes NEGOTIATION
Leon B OstroskyFranceXuxue Feng RENEWAL
Silvio N ButtUnited KingdomOnyama Limba RENEWAL
Jones I RoysterRussiaIoni Bowcher NEW
Greenwood U CampainFranceAnna Fali UNQUALIFIED
Mayumi E MorascaArgentinaOnyama Limba RENEWAL
James G MaletCanadaBernardo Dominic NEW
Claire T RimItalyIvan Magalhaes QUALIFIED
Jennifer P FerenczBrazilIoni Bowcher NEGOTIATION
Stacey I WaycottBrazilIoni Bowcher UNQUALIFIED
Claire L NestleAustraliaAnna Fali PROPOSAL
Salvatore U MacleadItalyStephen Shaw NEW
Maisha F AmigonRussiaAmy Elsner PROPOSAL
Maisha O OldroydIndiaIvan Magalhaes UNQUALIFIED
James E VenereAustraliaOnyama Limba NEW
Aditya T GlickFranceBernardo Dominic QUALIFIED
Stacey I RutaIndiaAsiya Javayant QUALIFIED
Misaki A BriddickAustraliaXuxue Feng QUALIFIED
Frozen Columns
Name
Nicolas L Sergi
Ivar O Morasca
Clifford P Caldarera
David F Flosi
Tony V Chui
Octavia L Amigon
Tony F Poquette
Johnson G Doe
David J Amigon
Emily S Schemmer
Silvio A Bowley
Jeanfrancois G Stockham
Aika Z Venere
Ashley E Caudy
Faith O Marrier
Aruna I Poquette
Faith B Ruta
Nicolas T Nestle
Leja L Caudy
Misaki G Rulapaugh
Leon K Stockham
Salvatore G Morasca
Sinclair B Campain
Octavia U Wieser
Kadeem O Schemmer
Darci K Paprocki
Wickens T Maclead
Juan Z Malet
Octavia M Inouye
Silvio J Morasca
Ricardo P Maclead
Isabel A Sergi
Nicolas F Ferencz
Julie Z Caldarera
Octavia T Maclead
Antonio U Schemmer
Munro V Ruta
Antonio J Royster
James O Briddick
Francesco F Darakjy
Claire M Rulapaugh
Sinclair S Malet
Costa B Darakjy
Chavez F Poquette
Maisha P Chui
Greenwood F Paprocki
Cody L Royster
Rodrigues Q Malet
Darci N Doe
Leja H Slusarski
IdCountryDate
1000India2026-07-18
1001Brazil2026-06-23
1002Spain2026-07-12
1003France2026-07-16
1004Argentina2026-06-21
1005Spain2026-07-15
1006United Kingdom2026-06-30
1007Canada2026-07-09
1008Japan2026-07-15
1009Russia2026-07-08
1010Canada2026-07-07
1011France2026-07-08
1012Australia2026-06-22
1013United Kingdom2026-06-26
1014Russia2026-07-10
1015Germany2026-06-30
1016Brazil2026-06-24
1017Russia2026-07-17
1018Canada2026-07-02
1019Japan2026-07-09
1020United Kingdom2026-07-17
1021United Kingdom2026-06-23
1022Brazil2026-07-06
1023Spain2026-07-07
1024Russia2026-07-09
1025Australia2026-06-24
1026Canada2026-07-07
1027United Kingdom2026-07-18
1028France2026-07-15
1029France2026-07-13
1030Japan2026-07-13
1031Australia2026-07-19
1032Canada2026-06-28
1033India2026-07-04
1034Japan2026-07-19
1035Italy2026-07-03
1036Japan2026-07-04
1037Brazil2026-06-30
1038Russia2026-07-16
1039Brazil2026-06-26
1040Argentina2026-07-13
1041Italy2026-06-26
1042India2026-07-17
1043Germany2026-07-17
1044Italy2026-07-06
1045France2026-07-13
1046Australia2026-06-22
1047Germany2026-07-16
1048Japan2026-07-14
1049Brazil2026-07-19

On-Demand Data

NameIdCountryDate
Maisha P Stenseth1000Argentina2026-06-21
Jennifer C Stenseth1001Spain2026-07-16
David V Stockham1002Brazil2026-07-15
Francesco P Foller1003Brazil2026-06-21
Maisha W Saylors1004Italy2026-07-07
Munro V Doe1005Spain2026-06-20
Mayumi A Nestle1006United Kingdom2026-07-03
Julie N Inouye1007Canada2026-07-02
Aruna J Sergi1008Australia2026-06-22
Murillo D Kusko1009Japan2026-06-29
Tony N Stockham1010Germany2026-07-18
Ricardo D Stockham1011Argentina2026-07-03
Faith P Iturbide1012Brazil2026-07-03
Clifford X Campain1013Russia2026-07-11
Maisha D Whobrey1014Italy2026-06-21
Ricardo Y Iturbide1015Italy2026-06-27
Julie R Sergi1016Australia2026-07-15
Smith C Stenseth1017Italy2026-07-08
Alejandro U Figeroa1018Spain2026-07-05
Antonio N Stenseth1019United Kingdom2026-07-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco O OstroskyItalyOnyama Limba RENEWAL
Mujtaba R ButtCanadaAmy Elsner PROPOSAL
Morrow A MaletItalyElwin Sharvill QUALIFIED
Adams P OstroskyAustraliaOnyama Limba UNQUALIFIED
Salvatore V GarufiItalyIvan Magalhaes PROPOSAL
Faith K MacleadBrazilAnna Fali PROPOSAL
Rodrigues M RoysterIndiaElwin Sharvill PROPOSAL
Salvatore A RulapaughUnited KingdomOnyama Limba RENEWAL
Nicolas J WieserItalyOnyama Limba PROPOSAL
Nicolas W StockhamAustraliaOnyama Limba RENEWAL
Antonio C TollnerArgentinaIvan Magalhaes RENEWAL
Cody O TollnerFranceOnyama Limba PROPOSAL
Johnson C GarufiFranceStephen Shaw QUALIFIED
Wickens U SaylorsItalyElwin Sharvill PROPOSAL
Mayumi O SaylorsSpainOnyama Limba NEGOTIATION
Kaitlin X ShinkoBrazilOnyama Limba NEW
Mujtaba O PaprockiRussiaElwin Sharvill QUALIFIED
Isabel M ShinkoIndiaAsiya Javayant PROPOSAL
Julie T BowleyIndiaIvan Magalhaes QUALIFIED
Kadeem X KolmetzArgentinaIvan Magalhaes RENEWAL
Juan P VocelkaJapanIvan Magalhaes RENEWAL
Murillo T TollnerRussiaXuxue Feng NEW
Kadeem K VocelkaArgentinaBernardo Dominic NEW
Antonio F CampainUnited KingdomIvan Magalhaes QUALIFIED
David D RulapaughIndiaIvan Magalhaes RENEWAL
Aditya G TollnerBrazilElwin Sharvill NEW
Ivar U CaldareraCanadaAnna Fali NEW
Juan O DilliardGermanyXuxue Feng NEW
Ashley L DilliardBrazilElwin Sharvill UNQUALIFIED
Chavez H WhobreyUnited KingdomBernardo Dominic NEW
Leja B WaycottSpainAmy Elsner NEW
Faith X FerenczIndiaAmy Elsner NEW
Emily B GillianCanadaIoni Bowcher QUALIFIED
Salvatore U RutaSpainIvan Magalhaes NEGOTIATION
Kadeem N FollerGermanyXuxue Feng RENEWAL
Ricardo W RulapaughArgentinaIvan Magalhaes RENEWAL
Isabel Y CampainFranceElwin Sharvill RENEWAL
Greenwood T PaprockiAustraliaAsiya Javayant RENEWAL
David Z CampainJapanOnyama Limba RENEWAL
Antonio V WhobreyBrazilAnna Fali RENEWAL

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