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
Aruna W CaudyAustraliaStephen Shaw NEGOTIATION
Izzy X FollerGermanyBernardo Dominic RENEWAL
Sinclair Y TollnerJapanXuxue Feng UNQUALIFIED
Jefferson G VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Octavia K MaletFranceOnyama Limba NEGOTIATION
Jennifer A RutaIndiaXuxue Feng UNQUALIFIED
Ashley L AmigonJapanAmy Elsner QUALIFIED
Emily B SaylorsGermanyAmy Elsner QUALIFIED
Juan H RutaJapanIvan Magalhaes QUALIFIED
Cody R BowleyUnited KingdomIvan Magalhaes PROPOSAL
Smith V KolmetzRussiaStephen Shaw PROPOSAL
Wickens F SchemmerUnited KingdomAmy Elsner NEGOTIATION
Isabel F CaudyBrazilIvan Magalhaes QUALIFIED
Jeanfrancois L VocelkaItalyBernardo Dominic UNQUALIFIED
Sinclair S StockhamAustraliaElwin Sharvill NEGOTIATION
Isabel C StockhamJapanIoni Bowcher PROPOSAL
Alejandro W DoeRussiaStephen Shaw PROPOSAL
Salvatore P GarufiAustraliaElwin Sharvill UNQUALIFIED
Octavia Z ButtFranceIvan Magalhaes NEGOTIATION
Silvio K KolmetzUnited KingdomAsiya Javayant NEW
Jefferson Z BologniaAustraliaXuxue Feng QUALIFIED
Maisha Z GauchoSpainAsiya Javayant NEW
Johnson I WieserArgentinaIoni Bowcher UNQUALIFIED
Aruna F DoeItalyIvan Magalhaes PROPOSAL
Chavez T TollnerJapanElwin Sharvill PROPOSAL
Aika G StockhamFranceBernardo Dominic NEGOTIATION
Adams N RimBrazilBernardo Dominic NEGOTIATION
Morrow T BologniaJapanAnna Fali NEW
Leon A MaletUnited KingdomOnyama Limba NEGOTIATION
Aditya K GarufiIndiaBernardo Dominic NEGOTIATION
Aruna G WhobreyUnited KingdomIoni Bowcher NEGOTIATION
Aruna N MacleadAustraliaAnna Fali PROPOSAL
Ashley K MaletBrazilAnna Fali QUALIFIED
Chavez X InouyeCanadaAmy Elsner PROPOSAL
Cody F StockhamItalyAsiya Javayant PROPOSAL
Kadeem Y BowleyArgentinaAnna Fali NEW
Izzy K GlickSpainIoni Bowcher PROPOSAL
Claire Q WieserAustraliaAsiya Javayant NEGOTIATION
Kaitlin G PoquetteAustraliaAsiya Javayant NEGOTIATION
Johnson J NestleRussiaXuxue Feng NEW
Deepesh T BowleyAustraliaAmy Elsner NEW
Stacey W VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Smith X DarakjyBrazilXuxue Feng PROPOSAL
Salvatore W ShinkoIndiaAsiya Javayant QUALIFIED
Antonio O RulapaughGermanyOnyama Limba NEW
Clifford Y MacleadSpainBernardo Dominic UNQUALIFIED
James B SaylorsItalyAmy Elsner NEGOTIATION
Mayumi V ButtRussiaXuxue Feng UNQUALIFIED
Faith T AlbaresUnited KingdomBernardo Dominic PROPOSAL
Aruna V CaldareraUnited KingdomOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro L MacleadRussiaIvan Magalhaes PROPOSAL
Mayumi F CaudyItalyAmy Elsner RENEWAL
Kadeem L RoysterRussiaStephen Shaw UNQUALIFIED
Adams H PoquetteBrazilStephen Shaw UNQUALIFIED
Adams I TollnerRussiaStephen Shaw QUALIFIED
Ivar K OldroydArgentinaAmy Elsner QUALIFIED
Murillo X WieserIndiaIoni Bowcher NEGOTIATION
Silvio H NickaArgentinaElwin Sharvill RENEWAL
Julie J StockhamSpainAsiya Javayant RENEWAL
Francesco E DoeItalyAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya C DarakjyRussia2025-05-25Benton, John B Jr RENEWAL99Onyama Limba
1001Isabel M KolmetzItaly2025-05-28Commercial Press PROPOSAL37Xuxue Feng
1002Juan G BologniaRussia2025-06-11Benton, John B Jr NEGOTIATION60Bernardo Dominic
1003Misaki N RimSpain2025-05-24Benton, John B Jr NEW69Xuxue Feng
1004Jefferson G SergiItaly2025-05-27Feltz Printing Service NEGOTIATION78Asiya Javayant
1005Juan N RulapaughRussia2025-05-28Benton, John B Jr PROPOSAL5Xuxue Feng
1006Aditya C BriddickSpain2025-06-03Benton, John B Jr PROPOSAL65Elwin Sharvill
1007Maisha W AmigonUnited Kingdom2025-06-07Rangoni Of Florence RENEWAL85Ioni Bowcher
1008Leon H OstroskyIndia2025-06-03King, Christopher A Esq QUALIFIED25Elwin Sharvill
1009Wickens N ShinkoIndia2025-05-23Feiner Bros PROPOSAL45Ioni Bowcher
1010Juan Z RulapaughSpain2025-05-29Printing Dimensions RENEWAL87Asiya Javayant
1011David F WhobreyFrance2025-05-21Printing Dimensions UNQUALIFIED18Elwin Sharvill
1012Jones Z AmigonSpain2025-05-17Morlong Associates UNQUALIFIED25Stephen Shaw
1013Nicolas X ButtFrance2025-05-30Truhlar And Truhlar Attys UNQUALIFIED5Elwin Sharvill
1014Mayumi O MorascaGermany2025-06-06Chemel, James L Cpa NEGOTIATION29Stephen Shaw
1015Cody N PerinArgentina2025-06-12Rousseaux, Michael Esq PROPOSAL72Onyama Limba
1016Jefferson K NestleSpain2025-05-27Rangoni Of Florence QUALIFIED31Ivan Magalhaes
1017Maisha W DarakjyFrance2025-05-27Chapman, Ross E Esq UNQUALIFIED46Ivan Magalhaes
1018Adams P KuskoFrance2025-06-04Truhlar And Truhlar Attys NEW75Asiya Javayant
1019Claire M OstroskyCanada2025-05-19King, Christopher A Esq NEGOTIATION21Elwin Sharvill
1020Juan G TollnerBrazil2025-06-04Rousseaux, Michael Esq RENEWAL82Amy Elsner
1021Izzy T DarakjyCanada2025-06-11Chanay, Jeffrey A Esq PROPOSAL7Anna Fali
1022David J MorascaJapan2025-05-25Dorl, James J Esq UNQUALIFIED32Ivan Magalhaes
1023Julie O InouyeCanada2025-06-11Chanay, Jeffrey A Esq UNQUALIFIED2Ivan Magalhaes
1024Tony T BriddickArgentina2025-05-19Buckley Miller Wright NEW40Stephen Shaw
1025Ashley H SchemmerIndia2025-06-11Chanay, Jeffrey A Esq NEGOTIATION67Onyama Limba
1026James Z DilliardRussia2025-06-03Chanay, Jeffrey A Esq PROPOSAL21Bernardo Dominic
1027Claire O StensethArgentina2025-05-29Benton, John B Jr RENEWAL47Asiya Javayant
1028Rodrigues N InouyeGermany2025-05-22Printing Dimensions NEGOTIATION46Elwin Sharvill
1029Aditya I WieserIndia2025-05-24Chemel, James L Cpa NEW27Elwin Sharvill
1030Leon J VocelkaFrance2025-06-15King, Christopher A Esq NEGOTIATION14Bernardo Dominic
1031Emily K RoysterBrazil2025-06-13Chapman, Ross E Esq NEW7Asiya Javayant
1032Wickens P GauchoIndia2025-05-19Morlong Associates NEGOTIATION30Amy Elsner
1033Morrow G PoquetteCanada2025-05-20Buckley Miller Wright NEW88Xuxue Feng
1034Ricardo Q VocelkaCanada2025-06-10Buckley Miller Wright UNQUALIFIED24Asiya Javayant
1035James U CaudySpain2025-05-23Chanay, Jeffrey A Esq NEW5Amy Elsner
1036Tony A CaldareraBrazil2025-06-10Rousseaux, Michael Esq UNQUALIFIED0Asiya Javayant
1037Juan T CaldareraSpain2025-06-05Rangoni Of Florence UNQUALIFIED56Elwin Sharvill
1038Costa M ShinkoBrazil2025-06-01Feltz Printing Service RENEWAL47Elwin Sharvill
1039Salvatore R CaudyUnited Kingdom2025-06-09Feiner Bros PROPOSAL29Onyama Limba
1040Jones I GauchoBrazil2025-05-29Printing Dimensions NEW97Elwin Sharvill
1041Izzy T VenereJapan2025-06-03Rousseaux, Michael Esq UNQUALIFIED32Anna Fali
1042Cody O ShinkoUnited Kingdom2025-05-21Feltz Printing Service NEW30Onyama Limba
1043Antonio U ButtCanada2025-06-14Rousseaux, Michael Esq QUALIFIED43Onyama Limba
1044Aditya L SlusarskiRussia2025-05-18Feiner Bros PROPOSAL49Elwin Sharvill
1045Claire O PoquetteBrazil2025-05-24Buckley Miller Wright UNQUALIFIED87Onyama Limba
1046Antonio B AmigonArgentina2025-05-30Commercial Press PROPOSAL5Ivan Magalhaes
1047Wickens H WaycottUnited Kingdom2025-05-21Printing Dimensions NEGOTIATION20Elwin Sharvill
1048Kadeem U IturbideItaly2025-05-24Chemel, James L Cpa NEW96Amy Elsner
1049James D DilliardArgentina2025-06-12Commercial Press UNQUALIFIED88Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Cody D RimItalyAmy Elsner PROPOSAL
Kaitlin X SaylorsItalyIvan Magalhaes PROPOSAL
Aika G MorascaAustraliaIoni Bowcher QUALIFIED
Sinclair K PoquetteBrazilXuxue Feng PROPOSAL
Kaitlin Z ShinkoGermanyAnna Fali RENEWAL
Clifford J KuskoAustraliaStephen Shaw NEW
Ivar T FigeroaGermanyAsiya Javayant NEGOTIATION
David J DarakjySpainElwin Sharvill NEW
Costa B IturbideArgentinaAnna Fali QUALIFIED
Cody F RimSpainIvan Magalhaes NEGOTIATION
Greenwood C PerinAustraliaAsiya Javayant RENEWAL
Adams B PaprockiSpainXuxue Feng QUALIFIED
Munro U TollnerArgentinaOnyama Limba RENEWAL
Jennifer K GauchoFranceXuxue Feng QUALIFIED
Jefferson V PaprockiJapanAmy Elsner RENEWAL
Jefferson O ChuiSpainAsiya Javayant QUALIFIED
Rodrigues H InouyeUnited KingdomStephen Shaw UNQUALIFIED
Maisha H CampainJapanIvan Magalhaes RENEWAL
Maisha H RimAustraliaElwin Sharvill NEW
Darci F SlusarskiCanadaElwin Sharvill UNQUALIFIED
Wickens Q SchemmerIndiaOnyama Limba PROPOSAL
Jones E RutaAustraliaStephen Shaw QUALIFIED
Morrow Q InouyeGermanyXuxue Feng NEGOTIATION
Darci T CaudyFranceOnyama Limba UNQUALIFIED
Jefferson C PoquetteFranceAmy Elsner NEW
Mujtaba I MorascaGermanyBernardo Dominic NEW
Maria Z SchemmerItalyElwin Sharvill RENEWAL
Silvio K CampainUnited KingdomElwin Sharvill NEW
Aika C ShinkoCanadaIoni Bowcher PROPOSAL
Misaki A GillianArgentinaBernardo Dominic NEGOTIATION
Francesco G NestleBrazilBernardo Dominic PROPOSAL
Johnson L FlosiJapanAnna Fali NEW
Aika D PerinSpainIvan Magalhaes RENEWAL
Mujtaba W FollerBrazilBernardo Dominic NEGOTIATION
Nicolas B SergiCanadaAmy Elsner UNQUALIFIED
Aika T NestleArgentinaAsiya Javayant NEGOTIATION
Silvio I BologniaIndiaAmy Elsner NEW
Sinclair A DoeJapanOnyama Limba RENEWAL
David G DarakjyAustraliaAmy Elsner QUALIFIED
Rodrigues W ShinkoSpainXuxue Feng NEW
Leja U AlbaresCanadaAsiya Javayant PROPOSAL
Octavia U FlosiIndiaElwin Sharvill UNQUALIFIED
Cody O DilliardArgentinaIoni Bowcher RENEWAL
Arvin Z FollerSpainElwin Sharvill NEW
Adams F BologniaIndiaAmy Elsner RENEWAL
David K BowleyGermanyXuxue Feng UNQUALIFIED
Kadeem V StockhamFranceElwin Sharvill PROPOSAL
Claire I MarrierUnited KingdomIvan Magalhaes PROPOSAL
Stacey A GlickIndiaOnyama Limba PROPOSAL
Jeanfrancois X FlosiSpainAmy Elsner NEGOTIATION
Frozen Columns
Name
Antonio R Saylors
Wickens V Poquette
Stacey U Morasca
Francesco J Rim
Ricardo U Poquette
Maisha X Tollner
Wickens X Glick
Mayumi L Wieser
Faith E Stockham
Arvin X Whobrey
Leon U Garufi
Jefferson O Wieser
Kaitlin D Kolmetz
Maria C Figeroa
Darci C Poquette
Murillo Z Tollner
Johnson A Nicka
Emily N Maclead
Wickens N Nestle
Aruna I Caudy
Jefferson V Stockham
Alejandro M Oldroyd
Jeanfrancois Q Poquette
Faith F Nestle
Izzy M Gaucho
Morrow K Vocelka
Munro U Malet
Munro U Caldarera
Ashley V Campain
Claire Z Glick
Arvin Y Wieser
Jeanfrancois F Whobrey
Ricardo K Dilliard
Murillo U Campain
Cody L Gillian
Greenwood W Kolmetz
Sinclair F Nicka
Isabel K Sergi
Wickens W Albares
Kadeem L Oldroyd
Ivar X Venere
Chavez K Rulapaugh
Juan J Rulapaugh
Jeanfrancois G Campain
Izzy P Malet
Cody O Malet
Deepesh G Nestle
Maisha P Albares
David W Stockham
Arvin X Inouye
IdCountryDate
1000Russia2025-06-14
1001Italy2025-05-23
1002India2025-05-22
1003Japan2025-06-07
1004France2025-05-18
1005India2025-06-06
1006Russia2025-06-03
1007Canada2025-05-27
1008Germany2025-06-14
1009Argentina2025-06-02
1010United Kingdom2025-05-30
1011Australia2025-05-22
1012Canada2025-06-10
1013Argentina2025-06-14
1014Russia2025-06-09
1015United Kingdom2025-06-02
1016Canada2025-05-25
1017Australia2025-05-29
1018Spain2025-06-03
1019Italy2025-06-14
1020Italy2025-05-19
1021Italy2025-06-15
1022United Kingdom2025-05-22
1023Brazil2025-05-27
1024France2025-06-02
1025United Kingdom2025-05-24
1026Australia2025-06-13
1027Italy2025-05-20
1028Argentina2025-06-14
1029Spain2025-05-18
1030Australia2025-06-06
1031Italy2025-06-03
1032United Kingdom2025-05-19
1033Italy2025-05-23
1034Canada2025-05-19
1035Spain2025-05-23
1036Spain2025-05-26
1037Italy2025-06-15
1038Brazil2025-06-09
1039Brazil2025-06-08
1040Canada2025-06-12
1041Canada2025-05-30
1042France2025-06-14
1043Germany2025-05-22
1044France2025-05-22
1045Brazil2025-05-19
1046Brazil2025-05-29
1047Argentina2025-05-29
1048Japan2025-06-08
1049Spain2025-05-25

On-Demand Data

NameIdCountryDate
Francesco Q Whobrey1000Brazil2025-05-20
Salvatore I Glick1001Argentina2025-05-19
Francesco S Albares1002Canada2025-05-19
Smith V Stockham1003Canada2025-06-07
Leon Q Tollner1004Argentina2025-05-20
Aika M Shinko1005United Kingdom2025-06-10
Costa P Figeroa1006Australia2025-05-20
Jefferson E Schemmer1007France2025-05-22
Jeanfrancois C Figeroa1008Canada2025-06-12
Octavia S Ostrosky1009Spain2025-06-13
James D Vocelka1010United Kingdom2025-05-28
Tony L Garufi1011Italy2025-06-08
Aruna M Nicka1012Canada2025-06-13
Rodrigues W Waycott1013India2025-05-26
Izzy Q Bowley1014France2025-06-08
Kadeem P Slusarski1015Japan2025-06-13
Johnson Z Kolmetz1016Australia2025-05-19
Jefferson Y Albares1017Spain2025-06-11
Mujtaba T Bowley1018Argentina2025-06-15
Chavez K Venere1019Russia2025-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro T BriddickRussiaElwin Sharvill UNQUALIFIED
Salvatore O GillianGermanyStephen Shaw PROPOSAL
Jennifer O WhobreySpainAnna Fali RENEWAL
James D FigeroaArgentinaXuxue Feng RENEWAL
Salvatore S SlusarskiAustraliaIoni Bowcher QUALIFIED
Jefferson N FigeroaJapanAsiya Javayant NEGOTIATION
Rodrigues S SlusarskiSpainXuxue Feng NEW
James Z CaldareraGermanyXuxue Feng NEGOTIATION
Mayumi G DilliardItalyAsiya Javayant UNQUALIFIED
Cody Z AmigonUnited KingdomIoni Bowcher RENEWAL
Jennifer Q MacleadAustraliaOnyama Limba RENEWAL
Mayumi A StensethAustraliaAmy Elsner QUALIFIED
Aika W BowleyCanadaAnna Fali UNQUALIFIED
Aruna E DarakjyGermanyElwin Sharvill NEW
Cody B RulapaughSpainBernardo Dominic RENEWAL
Salvatore C MacleadFranceAmy Elsner QUALIFIED
Julie N BologniaFranceAsiya Javayant NEGOTIATION
Cody A WhobreyRussiaAnna Fali NEGOTIATION
Morrow A RutaJapanAmy Elsner RENEWAL
Faith R DoeRussiaOnyama Limba PROPOSAL
Tony C KuskoCanadaAnna Fali NEGOTIATION
Jennifer E PaprockiFranceXuxue Feng UNQUALIFIED
Emily H MaletAustraliaAnna Fali RENEWAL
Kadeem W WieserGermanyStephen Shaw QUALIFIED
Silvio Q DoeBrazilStephen Shaw NEW
Alejandro Z BologniaGermanyStephen Shaw NEW
Sinclair U SlusarskiArgentinaIoni Bowcher NEGOTIATION
Nicolas F DoeItalyOnyama Limba RENEWAL
Arvin I TollnerUnited KingdomStephen Shaw PROPOSAL
Antonio T AlbaresIndiaAsiya Javayant NEGOTIATION
Maisha L ShinkoCanadaIoni Bowcher UNQUALIFIED
Misaki B MaletCanadaOnyama Limba PROPOSAL
Julie V VocelkaAustraliaElwin Sharvill RENEWAL
James R MarrierRussiaIoni Bowcher UNQUALIFIED
Francesco L PaprockiGermanyStephen Shaw UNQUALIFIED
Salvatore H GarufiJapanAsiya Javayant UNQUALIFIED
Octavia D NestleBrazilStephen Shaw NEW
Misaki J AmigonArgentinaOnyama Limba PROPOSAL
Darci N FerenczGermanyOnyama Limba NEGOTIATION
Jeanfrancois N CaudyFranceAmy Elsner 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>