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
Ivar O StockhamItalyIvan Magalhaes PROPOSAL
Mayumi U ShinkoItalyAsiya Javayant UNQUALIFIED
Ivar E StockhamItalyIvan Magalhaes NEGOTIATION
Antonio C RoysterGermanyStephen Shaw QUALIFIED
Wickens S OstroskyAustraliaIoni Bowcher PROPOSAL
Salvatore N BowleySpainOnyama Limba NEGOTIATION
Mujtaba T DoeIndiaAnna Fali QUALIFIED
Smith Z BologniaGermanyStephen Shaw NEGOTIATION
Sinclair R DarakjyCanadaIoni Bowcher QUALIFIED
Murillo S MorascaUnited KingdomStephen Shaw UNQUALIFIED
Emily R InouyeGermanyAsiya Javayant NEGOTIATION
Jones Y NickaGermanyXuxue Feng RENEWAL
Claire B OldroydBrazilIvan Magalhaes NEGOTIATION
Salvatore X CaudyAustraliaElwin Sharvill UNQUALIFIED
David T MacleadFranceOnyama Limba NEW
Kadeem Z MaletCanadaOnyama Limba NEGOTIATION
Adams R BriddickUnited KingdomIoni Bowcher UNQUALIFIED
Munro V TollnerBrazilXuxue Feng UNQUALIFIED
Leon T CaldareraSpainIvan Magalhaes RENEWAL
Nicolas T AmigonIndiaIvan Magalhaes UNQUALIFIED
Cody E SergiUnited KingdomAsiya Javayant QUALIFIED
Maisha B FigeroaBrazilBernardo Dominic NEW
Octavia U FigeroaGermanyAmy Elsner NEGOTIATION
David S CaldareraBrazilAnna Fali PROPOSAL
Kadeem B CampainJapanXuxue Feng NEGOTIATION
Rodrigues V MarrierBrazilAsiya Javayant PROPOSAL
Silvio Z BriddickGermanyBernardo Dominic PROPOSAL
Misaki G GlickFranceOnyama Limba QUALIFIED
Silvio S RimRussiaIoni Bowcher PROPOSAL
Octavia W BriddickUnited KingdomOnyama Limba RENEWAL
Jennifer R NestleIndiaXuxue Feng PROPOSAL
Antonio B MacleadFranceAmy Elsner PROPOSAL
Adams A RutaCanadaAmy Elsner RENEWAL
Julie H WaycottUnited KingdomStephen Shaw UNQUALIFIED
Antonio M NestleArgentinaAnna Fali PROPOSAL
Isabel N PoquetteFranceAsiya Javayant PROPOSAL
Smith K BriddickSpainElwin Sharvill PROPOSAL
Emily P SaylorsBrazilAnna Fali NEGOTIATION
Leon K AmigonFranceXuxue Feng QUALIFIED
Salvatore C AmigonItalyElwin Sharvill NEW
Faith A MacleadCanadaBernardo Dominic UNQUALIFIED
Jefferson L GillianFranceStephen Shaw NEW
Deepesh B WieserFranceAmy Elsner RENEWAL
Murillo M GillianSpainAsiya Javayant NEGOTIATION
Jones O WieserBrazilOnyama Limba UNQUALIFIED
Juan L MaletJapanAnna Fali NEW
James O AlbaresSpainAsiya Javayant PROPOSAL
Octavia L FollerAustraliaStephen Shaw RENEWAL
Darci I IturbideBrazilStephen Shaw NEW
Johnson O WaycottFranceAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois Z GauchoBrazilAsiya Javayant NEGOTIATION
Ashley N RulapaughSpainIoni Bowcher NEW
Sinclair H DilliardAustraliaXuxue Feng NEGOTIATION
Octavia F KuskoFranceOnyama Limba QUALIFIED
Murillo I FigeroaSpainStephen Shaw RENEWAL
Antonio V DarakjyUnited KingdomOnyama Limba NEGOTIATION
Ashley E CampainJapanBernardo Dominic UNQUALIFIED
Adams V SaylorsRussiaIoni Bowcher PROPOSAL
Silvio Z SlusarskiUnited KingdomAmy Elsner NEW
Izzy Q TollnerItalyIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar H FerenczFrance2025-04-25Chapman, Ross E Esq PROPOSAL95Ioni Bowcher
1001James L AmigonFrance2025-04-11Rousseaux, Michael Esq PROPOSAL49Anna Fali
1002Kadeem F FlosiCanada2025-04-12Truhlar And Truhlar Attys QUALIFIED29Amy Elsner
1003Aruna E KolmetzArgentina2025-04-04Chemel, James L Cpa PROPOSAL2Asiya Javayant
1004Darci Y KolmetzUnited Kingdom2025-04-20Rousseaux, Michael Esq QUALIFIED4Ivan Magalhaes
1005Mayumi Y ButtCanada2025-04-18Printing Dimensions QUALIFIED27Ivan Magalhaes
1006Leja E RoysterSpain2025-04-10Truhlar And Truhlar Attys PROPOSAL33Anna Fali
1007Stacey T KuskoCanada2025-04-26Truhlar And Truhlar Attys NEW66Anna Fali
1008Deepesh W CaldareraArgentina2025-04-25Printing Dimensions PROPOSAL10Xuxue Feng
1009Ricardo D FigeroaUnited Kingdom2025-04-17Rousseaux, Michael Esq UNQUALIFIED1Xuxue Feng
1010Aruna Z IturbideIndia2025-04-24Dorl, James J Esq RENEWAL12Bernardo Dominic
1011Kaitlin Q MacleadItaly2025-04-17Chapman, Ross E Esq RENEWAL20Stephen Shaw
1012Murillo O BologniaItaly2025-04-23Truhlar And Truhlar Attys PROPOSAL72Anna Fali
1013Cody Q RimArgentina2025-04-20Dorl, James J Esq UNQUALIFIED34Bernardo Dominic
1014Arvin G BriddickArgentina2025-04-03Buckley Miller Wright PROPOSAL83Amy Elsner
1015Morrow P WaycottBrazil2025-04-16Morlong Associates NEGOTIATION39Asiya Javayant
1016Morrow C VenereIndia2025-04-20Feiner Bros UNQUALIFIED72Amy Elsner
1017Francesco R StensethSpain2025-04-14Dorl, James J Esq QUALIFIED98Asiya Javayant
1018Octavia E IturbideJapan2025-04-09Rousseaux, Michael Esq RENEWAL35Xuxue Feng
1019Jones H WhobreyAustralia2025-04-02Buckley Miller Wright UNQUALIFIED26Onyama Limba
1020Kaitlin H MacleadCanada2025-04-23King, Christopher A Esq UNQUALIFIED64Anna Fali
1021Aruna D OldroydJapan2025-04-17Chapman, Ross E Esq RENEWAL37Elwin Sharvill
1022Adams F TollnerRussia2025-04-16Feiner Bros NEW54Amy Elsner
1023Clifford G CaldareraRussia2025-04-10Printing Dimensions NEGOTIATION68Asiya Javayant
1024Maisha N VocelkaBrazil2025-04-08Printing Dimensions NEGOTIATION20Ivan Magalhaes
1025Costa J AlbaresArgentina2025-04-02Commercial Press UNQUALIFIED21Onyama Limba
1026Tony E CaudySpain2025-04-28King, Christopher A Esq QUALIFIED73Bernardo Dominic
1027Misaki T WaycottItaly2025-04-07Feiner Bros NEW38Amy Elsner
1028Maisha Z CaldareraRussia2025-04-05Feiner Bros NEGOTIATION32Stephen Shaw
1029Ashley O RoysterJapan2025-04-29Benton, John B Jr NEGOTIATION69Onyama Limba
1030Emily V ShinkoCanada2025-04-21Benton, John B Jr UNQUALIFIED23Asiya Javayant
1031Antonio B StensethRussia2025-04-24Truhlar And Truhlar Attys QUALIFIED97Onyama Limba
1032Ashley O MacleadItaly2025-04-04Buckley Miller Wright NEGOTIATION94Onyama Limba
1033Francesco K StensethFrance2025-04-19Commercial Press NEW47Anna Fali
1034Faith X MorascaCanada2025-04-28Printing Dimensions UNQUALIFIED84Amy Elsner
1035Adams W GarufiBrazil2025-04-28Commercial Press QUALIFIED88Amy Elsner
1036Misaki S KuskoCanada2025-04-26Rangoni Of Florence QUALIFIED68Ioni Bowcher
1037David Q CampainItaly2025-04-29Benton, John B Jr RENEWAL86Elwin Sharvill
1038Faith Z CampainRussia2025-04-30Feiner Bros NEW25Ioni Bowcher
1039Jones J FerenczJapan2025-04-19Dorl, James J Esq PROPOSAL41Onyama Limba
1040Octavia T MorascaCanada2025-04-17Feiner Bros PROPOSAL18Ivan Magalhaes
1041Sinclair U GillianArgentina2025-04-23Chanay, Jeffrey A Esq QUALIFIED76Ioni Bowcher
1042Jefferson L StockhamSpain2025-04-23King, Christopher A Esq QUALIFIED84Stephen Shaw
1043Ashley P OstroskySpain2025-04-06Printing Dimensions NEW4Xuxue Feng
1044Maria P RulapaughJapan2025-04-06Commercial Press RENEWAL26Ivan Magalhaes
1045Jennifer Y VocelkaArgentina2025-04-21King, Christopher A Esq RENEWAL12Amy Elsner
1046Izzy T FigeroaIndia2025-04-19Buckley Miller Wright PROPOSAL77Ivan Magalhaes
1047Arvin H FerenczRussia2025-04-06King, Christopher A Esq NEGOTIATION29Onyama Limba
1048Jennifer O MacleadUnited Kingdom2025-04-05Feltz Printing Service UNQUALIFIED21Stephen Shaw
1049Faith B CampainUnited Kingdom2025-04-03Feiner Bros PROPOSAL47Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
James B DoeArgentinaAmy Elsner PROPOSAL
Misaki D InouyeUnited KingdomXuxue Feng RENEWAL
Jones G TollnerBrazilStephen Shaw PROPOSAL
David B DarakjyFranceIoni Bowcher PROPOSAL
Maria R OstroskyAustraliaElwin Sharvill UNQUALIFIED
Leon Z MarrierCanadaAsiya Javayant NEGOTIATION
Jennifer S CampainIndiaAsiya Javayant NEW
Mayumi D WhobreyArgentinaStephen Shaw UNQUALIFIED
Claire Z GarufiIndiaAnna Fali RENEWAL
Claire I DarakjyArgentinaAsiya Javayant NEW
Octavia F SchemmerRussiaAsiya Javayant RENEWAL
Nicolas L RoysterSpainIoni Bowcher PROPOSAL
Misaki W VenereGermanyIoni Bowcher NEW
Salvatore S InouyeGermanyIoni Bowcher UNQUALIFIED
Costa C NestleSpainXuxue Feng UNQUALIFIED
Munro Z AlbaresFranceIoni Bowcher NEW
Salvatore O MaletBrazilAnna Fali PROPOSAL
Octavia M InouyeBrazilXuxue Feng NEGOTIATION
Ricardo W CampainCanadaAnna Fali PROPOSAL
Silvio T GillianIndiaOnyama Limba PROPOSAL
Ivar M MaletArgentinaOnyama Limba QUALIFIED
Ashley Y OstroskyRussiaIvan Magalhaes PROPOSAL
Octavia R ButtIndiaIvan Magalhaes PROPOSAL
Mujtaba J GauchoRussiaAnna Fali NEGOTIATION
Jones K MaletIndiaAmy Elsner QUALIFIED
Nicolas W AmigonArgentinaXuxue Feng NEGOTIATION
Greenwood E TollnerItalyAsiya Javayant NEW
Adams C ShinkoJapanIvan Magalhaes NEW
Alejandro Y CaudyAustraliaElwin Sharvill RENEWAL
Antonio A VenereBrazilXuxue Feng NEW
Misaki L RutaItalyBernardo Dominic NEGOTIATION
Ashley O RutaBrazilOnyama Limba UNQUALIFIED
Aika F MarrierCanadaAnna Fali RENEWAL
Arvin S MaletJapanAnna Fali UNQUALIFIED
Smith P BowleyRussiaAmy Elsner NEGOTIATION
Faith R KuskoGermanyAmy Elsner RENEWAL
Misaki D BowleyArgentinaElwin Sharvill QUALIFIED
Jennifer S FerenczIndiaXuxue Feng PROPOSAL
Ricardo H DoeGermanyIoni Bowcher PROPOSAL
Jennifer M OldroydJapanAsiya Javayant QUALIFIED
Munro T GauchoFranceXuxue Feng UNQUALIFIED
Smith Y NickaUnited KingdomIoni Bowcher NEGOTIATION
Juan R RimIndiaXuxue Feng PROPOSAL
Arvin V CampainBrazilOnyama Limba UNQUALIFIED
Claire B VenereAustraliaElwin Sharvill UNQUALIFIED
Emily N WhobreyCanadaIoni Bowcher NEW
Salvatore U MaletRussiaBernardo Dominic UNQUALIFIED
Faith Y FollerItalyOnyama Limba RENEWAL
Nicolas I KuskoGermanyOnyama Limba NEGOTIATION
Kadeem A PoquetteUnited KingdomAnna Fali QUALIFIED
Frozen Columns
Name
Cody W Darakjy
Morrow M Kolmetz
Mayumi D Shinko
Jennifer K Schemmer
Antonio P Sergi
Mayumi P Perin
Aruna N Butt
Aika N Maclead
Mujtaba C Glick
Octavia P Kolmetz
James B Dilliard
Kaitlin G Rim
Jeanfrancois H Rim
Ashley W Iturbide
Silvio C Chui
Mujtaba R Sergi
Clifford Q Figeroa
Izzy S Darakjy
Isabel V Malet
Darci G Doe
Leon U Gillian
Deepesh C Garufi
Silvio Z Kusko
Stacey W Whobrey
Maria J Bowley
Misaki D Marrier
Arvin U Schemmer
Leon C Rim
Emily T Amigon
Leon Z Schemmer
Mayumi J Kolmetz
Salvatore S Rim
Sinclair G Shinko
Wickens T Marrier
Misaki B Nestle
Salvatore N Ferencz
Rodrigues N Vocelka
Isabel A Caldarera
Izzy N Bowley
Munro E Saylors
Alejandro N Morasca
Maisha A Darakjy
Antonio U Caudy
Salvatore N Campain
Stacey A Maclead
Stacey F Morasca
Kadeem E Caldarera
Nicolas Q Marrier
Silvio Q Iturbide
Salvatore F Briddick
IdCountryDate
1000Argentina2025-04-30
1001Argentina2025-04-24
1002Japan2025-04-28
1003Japan2025-04-05
1004Russia2025-04-07
1005Argentina2025-04-02
1006Russia2025-04-10
1007France2025-04-26
1008India2025-04-14
1009Spain2025-04-14
1010Spain2025-04-08
1011Brazil2025-04-09
1012Canada2025-04-04
1013Russia2025-04-26
1014Japan2025-04-15
1015Spain2025-04-20
1016Germany2025-04-30
1017Canada2025-04-09
1018Germany2025-04-03
1019Canada2025-04-15
1020Canada2025-04-25
1021Argentina2025-04-27
1022Japan2025-04-22
1023Argentina2025-04-13
1024Australia2025-04-16
1025Germany2025-04-24
1026Argentina2025-04-05
1027Japan2025-04-13
1028Germany2025-04-18
1029Argentina2025-04-26
1030Australia2025-04-21
1031United Kingdom2025-04-15
1032Germany2025-04-02
1033Argentina2025-04-20
1034Spain2025-04-04
1035Australia2025-04-03
1036Germany2025-04-14
1037United Kingdom2025-04-25
1038Italy2025-04-30
1039Germany2025-04-29
1040Germany2025-04-10
1041Russia2025-04-18
1042Spain2025-04-07
1043Italy2025-04-01
1044Japan2025-04-10
1045Argentina2025-04-05
1046Canada2025-04-06
1047Canada2025-04-08
1048United Kingdom2025-04-15
1049Brazil2025-04-15

On-Demand Data

NameIdCountryDate
Stacey Z Gillian1000United Kingdom2025-04-11
Jeanfrancois X Stockham1001Germany2025-04-15
Mayumi G Wieser1002Japan2025-04-17
Nicolas U Albares1003Germany2025-04-11
Octavia B Butt1004Argentina2025-04-25
Mujtaba A Flosi1005Spain2025-04-10
Ashley Y Caldarera1006Germany2025-04-08
Jeanfrancois X Glick1007India2025-04-21
Clifford Z Chui1008Italy2025-04-18
Francesco E Morasca1009United Kingdom2025-04-09
Tony W Figeroa1010Australia2025-04-26
Johnson Z Garufi1011France2025-04-21
Emily J Campain1012Argentina2025-04-05
Rodrigues R Morasca1013Japan2025-04-04
Salvatore C Malet1014France2025-04-07
Morrow F Gaucho1015Germany2025-04-24
Kadeem K Butt1016Australia2025-04-17
James W Rulapaugh1017Japan2025-04-21
Darci C Paprocki1018Spain2025-04-24
Jefferson B Malet1019Russia2025-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci D PerinBrazilIvan Magalhaes RENEWAL
Stacey T RoysterBrazilIoni Bowcher RENEWAL
Wickens J BriddickItalyIvan Magalhaes QUALIFIED
Ricardo P WieserItalyIvan Magalhaes NEGOTIATION
Antonio F BriddickIndiaAsiya Javayant UNQUALIFIED
Johnson Q MorascaBrazilAsiya Javayant PROPOSAL
Munro J SaylorsFranceIvan Magalhaes UNQUALIFIED
Sinclair V ShinkoGermanyIvan Magalhaes UNQUALIFIED
Leon N MaletUnited KingdomAsiya Javayant UNQUALIFIED
Ivar E DilliardSpainOnyama Limba NEW
Cody F GillianCanadaIvan Magalhaes NEGOTIATION
Munro B GauchoJapanIvan Magalhaes NEW
Smith M KuskoArgentinaElwin Sharvill NEGOTIATION
Aika L FerenczAustraliaAnna Fali NEW
James Y NestleRussiaElwin Sharvill QUALIFIED
Alejandro P AlbaresUnited KingdomBernardo Dominic QUALIFIED
Isabel A ButtFranceAmy Elsner RENEWAL
Isabel X IturbideGermanyStephen Shaw UNQUALIFIED
Silvio U PaprockiAustraliaIvan Magalhaes QUALIFIED
Kaitlin Z SergiSpainBernardo Dominic RENEWAL
Sinclair O WaycottUnited KingdomAsiya Javayant NEW
Aditya L StockhamBrazilOnyama Limba RENEWAL
Kaitlin T GauchoUnited KingdomStephen Shaw UNQUALIFIED
Stacey Z GauchoGermanyAmy Elsner NEGOTIATION
Aika U RulapaughJapanXuxue Feng QUALIFIED
Alejandro Y NickaIndiaStephen Shaw NEW
Aruna S GillianUnited KingdomAnna Fali NEGOTIATION
Leon X SergiGermanyStephen Shaw RENEWAL
Francesco Z SergiSpainAmy Elsner QUALIFIED
Mujtaba P FollerIndiaElwin Sharvill PROPOSAL
Alejandro I RulapaughGermanyAmy Elsner QUALIFIED
Greenwood Z ShinkoRussiaAnna Fali RENEWAL
Costa T VocelkaBrazilOnyama Limba UNQUALIFIED
Maria J MarrierBrazilAnna Fali NEGOTIATION
Chavez Q GauchoItalyElwin Sharvill RENEWAL
Aruna W MacleadFranceIvan Magalhaes QUALIFIED
Johnson R BriddickRussiaElwin Sharvill QUALIFIED
Kaitlin Q VenereCanadaXuxue Feng NEW
Johnson R CampainCanadaAmy Elsner QUALIFIED
Morrow F AlbaresIndiaAnna Fali 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>