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
Cody Z StensethFranceBernardo Dominic PROPOSAL
Aditya A MacleadGermanyAsiya Javayant NEW
Jennifer L MaletCanadaOnyama Limba NEGOTIATION
Kadeem W StockhamSpainElwin Sharvill UNQUALIFIED
Claire H OldroydJapanAmy Elsner QUALIFIED
Faith A GillianRussiaStephen Shaw RENEWAL
Kaitlin O PerinItalyAmy Elsner PROPOSAL
Kadeem E StockhamGermanyAmy Elsner UNQUALIFIED
Wickens R OldroydBrazilIoni Bowcher NEGOTIATION
Smith Y KolmetzFranceAmy Elsner PROPOSAL
Chavez C AlbaresGermanyAsiya Javayant NEGOTIATION
Kaitlin J BologniaCanadaElwin Sharvill NEW
Costa C DarakjyGermanyStephen Shaw NEW
Isabel S BowleyFranceBernardo Dominic RENEWAL
Sinclair X GarufiArgentinaBernardo Dominic QUALIFIED
Leon S CampainFranceIvan Magalhaes UNQUALIFIED
David U ButtBrazilIvan Magalhaes RENEWAL
Clifford Q GarufiJapanIoni Bowcher RENEWAL
Maria E SchemmerItalyElwin Sharvill NEW
Mujtaba A PoquetteItalyElwin Sharvill UNQUALIFIED
Stacey R MorascaFranceAsiya Javayant UNQUALIFIED
Jones T PerinUnited KingdomAmy Elsner NEW
Isabel A BowleyGermanyAsiya Javayant RENEWAL
Adams I GauchoSpainIoni Bowcher UNQUALIFIED
James I CaldareraUnited KingdomOnyama Limba QUALIFIED
Stacey O ShinkoGermanyOnyama Limba NEW
Julie S GillianSpainAmy Elsner NEGOTIATION
Cody J VenereItalyElwin Sharvill PROPOSAL
Arvin E BologniaRussiaAnna Fali NEGOTIATION
Johnson D KolmetzCanadaBernardo Dominic QUALIFIED
Mujtaba P InouyeRussiaBernardo Dominic NEGOTIATION
Ivar T AmigonAustraliaIoni Bowcher QUALIFIED
Aika S FigeroaCanadaStephen Shaw NEGOTIATION
Izzy J ChuiItalyOnyama Limba NEW
Murillo B SergiGermanyAnna Fali PROPOSAL
David N SchemmerJapanAmy Elsner UNQUALIFIED
Jones Z GarufiArgentinaIoni Bowcher UNQUALIFIED
Johnson X PaprockiGermanyIoni Bowcher RENEWAL
Cody S RutaBrazilIvan Magalhaes RENEWAL
Deepesh G RutaCanadaIoni Bowcher NEW
Isabel Z RoysterAustraliaIvan Magalhaes QUALIFIED
Claire C RutaRussiaIvan Magalhaes NEW
Jefferson B GauchoArgentinaIvan Magalhaes QUALIFIED
Octavia E MaletIndiaIvan Magalhaes PROPOSAL
Johnson F VocelkaArgentinaElwin Sharvill NEW
Jennifer B DoeArgentinaBernardo Dominic RENEWAL
Maisha D SaylorsArgentinaXuxue Feng UNQUALIFIED
Johnson L VocelkaItalyElwin Sharvill PROPOSAL
Costa W InouyeBrazilBernardo Dominic NEW
Kadeem S TollnerRussiaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Antonio V AmigonIndiaXuxue Feng PROPOSAL
Nicolas L CampainArgentinaIvan Magalhaes RENEWAL
Maria B GlickItalyAsiya Javayant NEGOTIATION
Silvio C StensethUnited KingdomBernardo Dominic PROPOSAL
Nicolas N FigeroaUnited KingdomAsiya Javayant RENEWAL
Arvin C RulapaughUnited KingdomAsiya Javayant QUALIFIED
Misaki H StockhamArgentinaXuxue Feng NEGOTIATION
Rodrigues T GlickSpainStephen Shaw NEGOTIATION
Aruna D CampainUnited KingdomElwin Sharvill RENEWAL
Wickens H MaletGermanyAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika C ButtAustralia2024-06-13Truhlar And Truhlar Attys QUALIFIED81Amy Elsner
1001Murillo R StensethFrance2024-05-19Feiner Bros RENEWAL40Onyama Limba
1002Kaitlin M OstroskyBrazil2024-05-24King, Christopher A Esq RENEWAL2Bernardo Dominic
1003David X RimArgentina2024-05-23Printing Dimensions PROPOSAL83Ioni Bowcher
1004Silvio W MacleadBrazil2024-05-17Chanay, Jeffrey A Esq NEGOTIATION39Asiya Javayant
1005Claire B GlickIndia2024-05-23Dorl, James J Esq QUALIFIED66Anna Fali
1006Nicolas Z ButtJapan2024-06-05Buckley Miller Wright PROPOSAL30Ivan Magalhaes
1007Johnson T TollnerCanada2024-06-03Feiner Bros UNQUALIFIED94Elwin Sharvill
1008Aditya J PerinSpain2024-05-16Printing Dimensions RENEWAL51Onyama Limba
1009Stacey B AlbaresAustralia2024-06-08Morlong Associates UNQUALIFIED6Xuxue Feng
1010James A WieserGermany2024-05-25King, Christopher A Esq PROPOSAL24Xuxue Feng
1011Arvin T NestleRussia2024-06-12Chapman, Ross E Esq NEGOTIATION61Xuxue Feng
1012Octavia Z ButtFrance2024-05-22Buckley Miller Wright NEW48Asiya Javayant
1013Wickens Q NestleIndia2024-05-31Commercial Press PROPOSAL82Anna Fali
1014Adams R MorascaArgentina2024-05-29Chanay, Jeffrey A Esq NEGOTIATION81Ioni Bowcher
1015Ricardo N ChuiJapan2024-06-04Commercial Press NEGOTIATION83Ivan Magalhaes
1016Kadeem E WieserFrance2024-05-19Morlong Associates UNQUALIFIED31Ivan Magalhaes
1017Misaki E KolmetzBrazil2024-05-19Buckley Miller Wright RENEWAL72Ioni Bowcher
1018Salvatore P OstroskyJapan2024-05-16Morlong Associates NEGOTIATION10Bernardo Dominic
1019Leja W BowleyGermany2024-06-06Commercial Press NEGOTIATION69Asiya Javayant
1020Antonio Q OldroydAustralia2024-06-04Chanay, Jeffrey A Esq NEGOTIATION44Elwin Sharvill
1021Izzy C FlosiFrance2024-05-22Feltz Printing Service PROPOSAL24Onyama Limba
1022Nicolas N ShinkoFrance2024-06-12Chanay, Jeffrey A Esq QUALIFIED22Ivan Magalhaes
1023Octavia D FollerBrazil2024-06-05Chanay, Jeffrey A Esq RENEWAL79Stephen Shaw
1024Francesco B DilliardJapan2024-06-08King, Christopher A Esq QUALIFIED75Ivan Magalhaes
1025Izzy T StockhamCanada2024-06-01Truhlar And Truhlar Attys QUALIFIED81Amy Elsner
1026Ricardo O PoquetteAustralia2024-05-29Truhlar And Truhlar Attys NEW67Xuxue Feng
1027Jones V ChuiIndia2024-06-13Printing Dimensions PROPOSAL25Xuxue Feng
1028Octavia D SergiGermany2024-05-19Rousseaux, Michael Esq RENEWAL43Asiya Javayant
1029Faith F PerinSpain2024-05-21Truhlar And Truhlar Attys PROPOSAL23Ioni Bowcher
1030Leja A AlbaresJapan2024-05-20Chapman, Ross E Esq PROPOSAL47Elwin Sharvill
1031Izzy I KuskoSpain2024-06-10Chapman, Ross E Esq QUALIFIED41Amy Elsner
1032Claire R DarakjyFrance2024-05-31Dorl, James J Esq NEGOTIATION81Ivan Magalhaes
1033Francesco U WhobreyArgentina2024-06-14Rousseaux, Michael Esq UNQUALIFIED48Stephen Shaw
1034Rodrigues O SaylorsRussia2024-05-30Printing Dimensions QUALIFIED12Amy Elsner
1035Faith L DarakjySpain2024-06-06King, Christopher A Esq NEGOTIATION37Anna Fali
1036Chavez A BriddickJapan2024-06-04Dorl, James J Esq QUALIFIED36Bernardo Dominic
1037Maisha R StensethIndia2024-05-29Benton, John B Jr PROPOSAL92Xuxue Feng
1038Jones V NickaRussia2024-06-11Morlong Associates UNQUALIFIED36Onyama Limba
1039Maisha Z GlickUnited Kingdom2024-05-20Chanay, Jeffrey A Esq RENEWAL9Amy Elsner
1040Greenwood D RoysterSpain2024-06-04Dorl, James J Esq NEW52Anna Fali
1041Kaitlin D MaletArgentina2024-06-08Commercial Press UNQUALIFIED32Amy Elsner
1042Jennifer B RulapaughCanada2024-06-03Feiner Bros NEGOTIATION68Bernardo Dominic
1043Izzy P AmigonUnited Kingdom2024-06-04Commercial Press RENEWAL55Amy Elsner
1044Sinclair M BowleyRussia2024-05-28Dorl, James J Esq PROPOSAL42Asiya Javayant
1045Misaki P MacleadSpain2024-05-29Morlong Associates NEGOTIATION81Onyama Limba
1046Adams Z CampainAustralia2024-06-12Chemel, James L Cpa UNQUALIFIED10Anna Fali
1047Misaki H FerenczJapan2024-06-13Buckley Miller Wright PROPOSAL33Xuxue Feng
1048Smith M NestleRussia2024-05-18Printing Dimensions NEGOTIATION16Onyama Limba
1049Francesco K MarrierCanada2024-05-29Rangoni Of Florence RENEWAL40Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Kadeem B BriddickCanadaBernardo Dominic RENEWAL
Claire I MacleadAustraliaAsiya Javayant QUALIFIED
Ashley S KolmetzFranceIvan Magalhaes QUALIFIED
Aditya Z StockhamAustraliaIvan Magalhaes UNQUALIFIED
Octavia S InouyeAustraliaStephen Shaw UNQUALIFIED
Julie L AlbaresUnited KingdomOnyama Limba RENEWAL
Sinclair M FollerIndiaBernardo Dominic NEW
Ricardo A OstroskyAustraliaXuxue Feng RENEWAL
Ricardo O ButtUnited KingdomIvan Magalhaes PROPOSAL
Leon F CaudyCanadaOnyama Limba QUALIFIED
Clifford H OstroskyBrazilElwin Sharvill PROPOSAL
Silvio S BologniaJapanAnna Fali PROPOSAL
Greenwood T BowleyUnited KingdomXuxue Feng QUALIFIED
Salvatore V ShinkoArgentinaElwin Sharvill UNQUALIFIED
Francesco C VocelkaItalyStephen Shaw NEW
Mayumi Y DarakjyUnited KingdomAmy Elsner RENEWAL
Faith A RoysterJapanAsiya Javayant RENEWAL
Aika L NestleRussiaOnyama Limba PROPOSAL
Rodrigues M MacleadUnited KingdomBernardo Dominic QUALIFIED
Murillo I RulapaughIndiaXuxue Feng PROPOSAL
Julie H BowleyGermanyOnyama Limba PROPOSAL
Jeanfrancois D ChuiCanadaOnyama Limba NEW
Morrow L VocelkaSpainXuxue Feng PROPOSAL
Ashley T CampainUnited KingdomAnna Fali QUALIFIED
Isabel A AlbaresCanadaIoni Bowcher PROPOSAL
Salvatore Q DoeCanadaAnna Fali QUALIFIED
Alejandro S GlickJapanIoni Bowcher NEW
Chavez E FigeroaGermanyAmy Elsner PROPOSAL
Johnson N AlbaresArgentinaBernardo Dominic RENEWAL
Jefferson N OldroydIndiaAsiya Javayant UNQUALIFIED
Rodrigues X SlusarskiRussiaAsiya Javayant PROPOSAL
Jennifer R BowleyUnited KingdomIoni Bowcher RENEWAL
Mujtaba Q MarrierJapanXuxue Feng UNQUALIFIED
Leja L StensethRussiaAmy Elsner UNQUALIFIED
Darci G MaletRussiaStephen Shaw UNQUALIFIED
James G GarufiCanadaAmy Elsner NEGOTIATION
Leja S DoeUnited KingdomOnyama Limba NEGOTIATION
Jeanfrancois C TollnerArgentinaIoni Bowcher PROPOSAL
Smith K CampainGermanyAmy Elsner QUALIFIED
Aruna M ChuiJapanOnyama Limba RENEWAL
Mayumi J MorascaCanadaIvan Magalhaes NEW
Ashley E BologniaIndiaAnna Fali PROPOSAL
Antonio C GarufiAustraliaIvan Magalhaes UNQUALIFIED
Jones U RulapaughJapanIvan Magalhaes PROPOSAL
James F MarrierJapanElwin Sharvill NEW
Wickens H WhobreyIndiaIoni Bowcher NEGOTIATION
Nicolas D StensethUnited KingdomAnna Fali PROPOSAL
Cody X DarakjyGermanyBernardo Dominic UNQUALIFIED
Mayumi U MorascaJapanIoni Bowcher QUALIFIED
Adams X NestleSpainStephen Shaw PROPOSAL
Frozen Columns
Name
Juan K Glick
Izzy X Garufi
Ricardo Z Dilliard
Smith J Whobrey
Leon X Perin
Chavez T Marrier
Jefferson Z Flosi
Antonio Z Sergi
James M Inouye
Jefferson U Chui
Misaki O Waycott
Francesco A Campain
Jennifer N Bolognia
Octavia V Kusko
Munro H Nestle
Deepesh M Stenseth
Mujtaba C Perin
Ivar G Nestle
Mujtaba C Rulapaugh
Sinclair D Ostrosky
Kadeem V Glick
Juan N Maclead
Mujtaba I Stockham
Faith X Stenseth
Antonio Q Sergi
Costa F Maclead
Leja X Whobrey
Aruna S Ruta
Johnson B Vocelka
David L Rim
Costa I Doe
Maria G Ruta
Leon U Kusko
Leja W Rulapaugh
Julie G Royster
Leon Y Maclead
Leon Y Stockham
Isabel E Rulapaugh
Antonio L Figeroa
Jeanfrancois H Doe
Emily N Malet
Antonio S Wieser
Nicolas P Kusko
Smith Z Ruta
Clifford C Saylors
Faith D Caldarera
Isabel X Bowley
Jennifer C Sergi
Maisha A Garufi
Aditya E Bolognia
IdCountryDate
1000United Kingdom2024-06-05
1001Canada2024-06-07
1002Germany2024-05-21
1003United Kingdom2024-05-23
1004Argentina2024-06-05
1005Spain2024-05-23
1006France2024-05-18
1007Argentina2024-06-10
1008Japan2024-06-11
1009Argentina2024-06-13
1010Japan2024-05-22
1011Canada2024-05-30
1012India2024-06-06
1013Spain2024-05-29
1014Japan2024-05-22
1015Russia2024-06-03
1016Brazil2024-05-24
1017Japan2024-06-09
1018Brazil2024-06-03
1019France2024-05-17
1020Italy2024-06-02
1021Germany2024-06-02
1022Canada2024-05-28
1023Spain2024-05-19
1024Japan2024-06-13
1025Spain2024-05-22
1026Canada2024-05-28
1027Australia2024-05-28
1028France2024-06-10
1029Japan2024-05-26
1030Italy2024-05-26
1031Brazil2024-06-04
1032France2024-05-18
1033Brazil2024-06-08
1034Russia2024-05-19
1035Canada2024-05-30
1036United Kingdom2024-05-30
1037Spain2024-06-10
1038Canada2024-05-29
1039Australia2024-05-26
1040Argentina2024-05-22
1041United Kingdom2024-05-19
1042India2024-05-19
1043Japan2024-05-19
1044Brazil2024-05-17
1045Germany2024-06-02
1046India2024-06-10
1047France2024-06-03
1048Italy2024-06-06
1049Argentina2024-05-16

On-Demand Data

NameIdCountryDate
Faith K Poquette1000Japan2024-06-03
Murillo F Wieser1001Argentina2024-05-23
Chavez F Gillian1002Germany2024-05-25
Antonio Y Whobrey1003Australia2024-05-19
Julie O Rulapaugh1004United Kingdom2024-06-14
Juan K Ostrosky1005Argentina2024-06-13
Kaitlin U Butt1006Italy2024-06-13
Chavez L Chui1007Russia2024-05-22
Emily W Wieser1008Canada2024-06-05
Sinclair O Bowley1009Australia2024-05-20
Kaitlin B Marrier1010Germany2024-06-01
Ricardo L Amigon1011Spain2024-06-04
Johnson H Bolognia1012United Kingdom2024-05-28
Leja E Campain1013Japan2024-05-23
Greenwood T Dilliard1014Spain2024-05-22
Morrow Y Slusarski1015France2024-05-20
Johnson I Stockham1016Russia2024-06-11
Sinclair X Gaucho1017Japan2024-06-12
Chavez F Kolmetz1018Japan2024-06-01
Antonio C Oldroyd1019Italy2024-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro D StockhamUnited KingdomAsiya Javayant RENEWAL
Adams G WhobreyCanadaStephen Shaw NEGOTIATION
Darci I SaylorsIndiaAnna Fali RENEWAL
Stacey V BriddickJapanOnyama Limba RENEWAL
Clifford W CaldareraUnited KingdomStephen Shaw RENEWAL
Stacey B FollerRussiaAmy Elsner NEGOTIATION
Alejandro D MarrierArgentinaElwin Sharvill QUALIFIED
Tony H DoeAustraliaBernardo Dominic NEGOTIATION
Claire V GarufiIndiaStephen Shaw QUALIFIED
Sinclair C ChuiBrazilAsiya Javayant RENEWAL
Clifford O NickaUnited KingdomIoni Bowcher NEGOTIATION
Smith A DarakjyFranceAsiya Javayant RENEWAL
Nicolas T WhobreyItalyAnna Fali UNQUALIFIED
Misaki L WhobreyCanadaXuxue Feng UNQUALIFIED
Ashley K SlusarskiGermanyAmy Elsner RENEWAL
Sinclair F PoquetteIndiaIoni Bowcher NEW
Salvatore Q PoquetteGermanyElwin Sharvill PROPOSAL
Cody Q GillianArgentinaIoni Bowcher RENEWAL
Octavia G FlosiGermanyXuxue Feng PROPOSAL
Darci G IturbideAustraliaAnna Fali RENEWAL
Mayumi L OstroskyFranceAmy Elsner UNQUALIFIED
Arvin G KuskoRussiaElwin Sharvill NEGOTIATION
Jones H MorascaSpainStephen Shaw NEGOTIATION
Jones J KolmetzJapanAmy Elsner UNQUALIFIED
Izzy C RutaAustraliaAsiya Javayant NEGOTIATION
Maisha E SchemmerIndiaAmy Elsner NEGOTIATION
David L FlosiCanadaAsiya Javayant NEGOTIATION
Kaitlin E SaylorsItalyAmy Elsner NEW
Costa K RutaArgentinaOnyama Limba QUALIFIED
Maisha R CampainCanadaAsiya Javayant NEGOTIATION
Cody E RoysterArgentinaAmy Elsner NEW
Morrow K GarufiAustraliaIoni Bowcher PROPOSAL
Isabel N OstroskyCanadaAsiya Javayant QUALIFIED
Alejandro V MarrierIndiaIoni Bowcher UNQUALIFIED
Nicolas X CampainFranceElwin Sharvill PROPOSAL
Maisha M InouyeRussiaAsiya Javayant PROPOSAL
Stacey A SlusarskiIndiaStephen Shaw RENEWAL
Arvin K ButtGermanyIvan Magalhaes RENEWAL
Aruna A AmigonUnited KingdomBernardo Dominic NEGOTIATION
Emily Q StensethCanadaStephen Shaw 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>