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
Arvin X GauchoArgentinaOnyama Limba QUALIFIED
Misaki C IturbideIndiaBernardo Dominic UNQUALIFIED
Isabel P AlbaresRussiaIvan Magalhaes RENEWAL
Silvio G ChuiUnited KingdomStephen Shaw NEGOTIATION
Salvatore W PerinAustraliaAmy Elsner RENEWAL
Salvatore V GarufiCanadaOnyama Limba QUALIFIED
Mayumi T BriddickFranceAmy Elsner NEW
Munro Y KolmetzRussiaIvan Magalhaes NEGOTIATION
Tony Z RulapaughIndiaIvan Magalhaes NEGOTIATION
Faith U DilliardIndiaElwin Sharvill UNQUALIFIED
Jeanfrancois L SaylorsArgentinaIvan Magalhaes NEW
Sinclair Z ButtRussiaAsiya Javayant NEW
Clifford V BologniaArgentinaStephen Shaw PROPOSAL
Sinclair O WieserItalyIvan Magalhaes NEGOTIATION
Wickens F BriddickIndiaIoni Bowcher UNQUALIFIED
Chavez X InouyeFranceStephen Shaw UNQUALIFIED
Jones G MarrierIndiaAnna Fali RENEWAL
Adams C RulapaughGermanyIoni Bowcher QUALIFIED
Adams O OstroskySpainAnna Fali QUALIFIED
Ivar A MacleadUnited KingdomXuxue Feng RENEWAL
Isabel S BowleyUnited KingdomElwin Sharvill UNQUALIFIED
Morrow Y KuskoCanadaElwin Sharvill RENEWAL
Ashley B CaldareraArgentinaStephen Shaw QUALIFIED
Antonio Q IturbideItalyAnna Fali QUALIFIED
Rodrigues U StensethAustraliaAmy Elsner UNQUALIFIED
Stacey O IturbideGermanyOnyama Limba NEGOTIATION
Leja T CaldareraUnited KingdomIoni Bowcher QUALIFIED
Izzy M VocelkaCanadaAnna Fali PROPOSAL
Misaki Q DilliardCanadaXuxue Feng UNQUALIFIED
Mujtaba O FollerAustraliaAmy Elsner PROPOSAL
Wickens F WieserJapanAnna Fali QUALIFIED
Kadeem C CaudyItalyElwin Sharvill NEGOTIATION
Isabel W WaycottCanadaAmy Elsner NEGOTIATION
James Q GlickSpainElwin Sharvill RENEWAL
Leon U ButtJapanBernardo Dominic PROPOSAL
Ashley I MorascaGermanyXuxue Feng UNQUALIFIED
Aditya U WhobreyGermanyXuxue Feng PROPOSAL
Rodrigues X KolmetzArgentinaElwin Sharvill QUALIFIED
Wickens P KolmetzArgentinaAmy Elsner UNQUALIFIED
Kadeem T FerenczRussiaXuxue Feng UNQUALIFIED
Aika N BologniaBrazilAmy Elsner NEGOTIATION
Rodrigues W WieserUnited KingdomStephen Shaw PROPOSAL
Jones F MarrierFranceAsiya Javayant PROPOSAL
Jeanfrancois Q GarufiCanadaXuxue Feng NEGOTIATION
Smith I WaycottGermanyOnyama Limba QUALIFIED
Smith W MaletItalyXuxue Feng QUALIFIED
David N NickaIndiaAsiya Javayant NEGOTIATION
Stacey R OldroydBrazilAmy Elsner PROPOSAL
Munro V InouyeSpainAsiya Javayant NEW
Alejandro V PoquetteArgentinaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Clifford O OldroydCanadaIoni Bowcher PROPOSAL
Francesco G WieserArgentinaAmy Elsner PROPOSAL
Faith J RulapaughBrazilIoni Bowcher QUALIFIED
Cody B SaylorsFranceBernardo Dominic QUALIFIED
Chavez Y RimSpainStephen Shaw PROPOSAL
Maria R PoquetteAustraliaAsiya Javayant NEGOTIATION
Mayumi Y AlbaresFranceIoni Bowcher RENEWAL
Tony E BowleyGermanyIvan Magalhaes QUALIFIED
Mayumi E NickaUnited KingdomXuxue Feng NEGOTIATION
Emily I OstroskySpainOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson H KuskoArgentina2025-05-05Feiner Bros UNQUALIFIED52Asiya Javayant
1001Faith H WhobreyItaly2025-04-30King, Christopher A Esq NEGOTIATION1Amy Elsner
1002Kaitlin G WaycottAustralia2025-04-19King, Christopher A Esq PROPOSAL54Bernardo Dominic
1003Jeanfrancois X VocelkaFrance2025-04-22Chapman, Ross E Esq PROPOSAL71Xuxue Feng
1004Leja O ChuiBrazil2025-05-02Printing Dimensions NEGOTIATION97Amy Elsner
1005Claire K FlosiSpain2025-04-23Rangoni Of Florence NEGOTIATION60Asiya Javayant
1006Sinclair X FerenczAustralia2025-04-15Chanay, Jeffrey A Esq UNQUALIFIED1Amy Elsner
1007Costa N NickaItaly2025-04-26Buckley Miller Wright NEW51Xuxue Feng
1008Ivar R SchemmerRussia2025-04-22Feiner Bros NEW26Ivan Magalhaes
1009Salvatore R GauchoUnited Kingdom2025-04-10Chanay, Jeffrey A Esq UNQUALIFIED16Xuxue Feng
1010Leja B RimUnited Kingdom2025-04-20Morlong Associates NEGOTIATION99Xuxue Feng
1011Smith Z MacleadUnited Kingdom2025-04-24Buckley Miller Wright PROPOSAL71Amy Elsner
1012Salvatore H StensethJapan2025-04-10Feiner Bros NEW42Stephen Shaw
1013Ivar K DilliardAustralia2025-05-02King, Christopher A Esq NEGOTIATION52Anna Fali
1014Jennifer Q GlickFrance2025-04-29Chemel, James L Cpa PROPOSAL14Ioni Bowcher
1015Leon L NestleUnited Kingdom2025-04-24Truhlar And Truhlar Attys QUALIFIED9Elwin Sharvill
1016Aruna X SchemmerBrazil2025-04-15Feiner Bros UNQUALIFIED44Ioni Bowcher
1017Aruna W OldroydIndia2025-04-09Commercial Press QUALIFIED60Stephen Shaw
1018Ivar I GillianFrance2025-04-18Benton, John B Jr UNQUALIFIED18Amy Elsner
1019Chavez U BowleyItaly2025-04-28Chapman, Ross E Esq PROPOSAL60Bernardo Dominic
1020Antonio L TollnerUnited Kingdom2025-05-02Chanay, Jeffrey A Esq RENEWAL68Bernardo Dominic
1021Jones V CaudyIndia2025-04-25Printing Dimensions RENEWAL74Asiya Javayant
1022Leja R GillianArgentina2025-05-06King, Christopher A Esq QUALIFIED20Amy Elsner
1023Antonio U WhobreyRussia2025-04-16Chanay, Jeffrey A Esq NEGOTIATION44Ioni Bowcher
1024Misaki F CaldareraFrance2025-04-27King, Christopher A Esq RENEWAL42Ioni Bowcher
1025Ricardo J DilliardAustralia2025-04-20Morlong Associates RENEWAL14Bernardo Dominic
1026Jennifer R PaprockiCanada2025-05-03Rangoni Of Florence QUALIFIED20Asiya Javayant
1027Julie I PoquetteCanada2025-04-16Printing Dimensions RENEWAL10Anna Fali
1028Izzy K GillianUnited Kingdom2025-04-14Chapman, Ross E Esq NEW92Xuxue Feng
1029Mayumi X AmigonGermany2025-04-27Morlong Associates NEW8Xuxue Feng
1030Ashley L BowleyArgentina2025-04-30Chemel, James L Cpa NEGOTIATION41Elwin Sharvill
1031Antonio L DoeArgentina2025-04-25Chanay, Jeffrey A Esq NEW10Anna Fali
1032Tony A KolmetzFrance2025-04-27Rangoni Of Florence NEGOTIATION53Elwin Sharvill
1033Silvio P OstroskyGermany2025-05-07Chemel, James L Cpa PROPOSAL89Elwin Sharvill
1034Antonio O DilliardItaly2025-04-20Chemel, James L Cpa RENEWAL11Xuxue Feng
1035Tony V IturbideSpain2025-05-07Commercial Press NEW47Amy Elsner
1036Tony K FlosiAustralia2025-04-25Commercial Press RENEWAL37Anna Fali
1037Adams D WhobreyArgentina2025-05-03Morlong Associates RENEWAL76Elwin Sharvill
1038David Y NestleCanada2025-05-02Feiner Bros PROPOSAL0Ioni Bowcher
1039Salvatore V PerinAustralia2025-04-19Feltz Printing Service RENEWAL16Amy Elsner
1040Cody X MacleadIndia2025-04-12Rangoni Of Florence UNQUALIFIED84Onyama Limba
1041James Z PerinItaly2025-04-19King, Christopher A Esq UNQUALIFIED40Ivan Magalhaes
1042Ricardo R ShinkoUnited Kingdom2025-05-06Truhlar And Truhlar Attys PROPOSAL68Xuxue Feng
1043Ivar S FerenczGermany2025-04-10King, Christopher A Esq UNQUALIFIED33Elwin Sharvill
1044Cody O ButtRussia2025-05-04Chanay, Jeffrey A Esq RENEWAL39Stephen Shaw
1045Antonio Z MaletSpain2025-04-30Truhlar And Truhlar Attys NEW40Anna Fali
1046Johnson H KolmetzSpain2025-04-20Dorl, James J Esq PROPOSAL9Ivan Magalhaes
1047Faith F IturbideAustralia2025-04-29Truhlar And Truhlar Attys NEW43Stephen Shaw
1048Kadeem M RulapaughBrazil2025-04-22Feltz Printing Service QUALIFIED5Amy Elsner
1049Sinclair O MorascaIndia2025-04-27Feiner Bros QUALIFIED30Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
David Q RimSpainBernardo Dominic PROPOSAL
Jefferson N OldroydSpainIvan Magalhaes RENEWAL
Cody C WieserIndiaIvan Magalhaes QUALIFIED
Greenwood D FigeroaCanadaAsiya Javayant RENEWAL
Sinclair B GlickUnited KingdomXuxue Feng NEW
Izzy W CaldareraIndiaStephen Shaw RENEWAL
Octavia O CaldareraUnited KingdomOnyama Limba RENEWAL
Ivar H TollnerSpainIoni Bowcher NEW
Misaki X StockhamCanadaAsiya Javayant RENEWAL
Alejandro R PaprockiIndiaAnna Fali RENEWAL
Johnson T FlosiIndiaOnyama Limba QUALIFIED
Maria P ChuiIndiaStephen Shaw UNQUALIFIED
Silvio N AlbaresIndiaAnna Fali RENEWAL
Morrow M VenereBrazilAsiya Javayant NEW
David Z IturbideFranceAsiya Javayant QUALIFIED
Salvatore M WhobreyFranceIvan Magalhaes NEW
Jennifer F DarakjyCanadaStephen Shaw NEW
Aditya K DilliardSpainBernardo Dominic RENEWAL
Smith W GauchoItalyIvan Magalhaes NEGOTIATION
Jennifer A SlusarskiSpainElwin Sharvill NEW
Tony P InouyeAustraliaElwin Sharvill QUALIFIED
Kaitlin S CaudyRussiaElwin Sharvill NEW
Silvio J NestleJapanAmy Elsner RENEWAL
Emily P ButtCanadaIoni Bowcher NEW
Cody R FlosiCanadaIvan Magalhaes NEW
Greenwood P FerenczJapanOnyama Limba UNQUALIFIED
Cody U CampainFranceElwin Sharvill NEW
Nicolas Z BologniaGermanyStephen Shaw UNQUALIFIED
Greenwood K GillianSpainIoni Bowcher RENEWAL
Arvin J InouyeBrazilIoni Bowcher QUALIFIED
Julie Z OstroskyJapanIoni Bowcher RENEWAL
Murillo X NestleIndiaStephen Shaw UNQUALIFIED
Francesco C SergiCanadaIoni Bowcher RENEWAL
Faith D RoysterGermanyAnna Fali PROPOSAL
Aruna M PaprockiJapanXuxue Feng NEGOTIATION
James B SchemmerCanadaIvan Magalhaes QUALIFIED
Adams Q GauchoArgentinaIvan Magalhaes UNQUALIFIED
Jennifer W SlusarskiSpainBernardo Dominic UNQUALIFIED
Arvin S CampainUnited KingdomIvan Magalhaes QUALIFIED
Sinclair C AmigonGermanyAmy Elsner RENEWAL
Cody K MacleadUnited KingdomElwin Sharvill RENEWAL
Claire A StensethIndiaElwin Sharvill UNQUALIFIED
Aditya A ButtJapanStephen Shaw NEW
Octavia K ChuiSpainOnyama Limba QUALIFIED
Johnson R RulapaughFranceAsiya Javayant NEW
Claire K MorascaAustraliaBernardo Dominic PROPOSAL
Wickens R MorascaSpainOnyama Limba QUALIFIED
Isabel E MacleadAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois P BowleyItalyIoni Bowcher QUALIFIED
Jennifer P CaudySpainAsiya Javayant RENEWAL
Frozen Columns
Name
Ricardo D Bolognia
Rodrigues G Waycott
Emily Y Nestle
Darci P Chui
Morrow Q Butt
Wickens V Royster
Rodrigues G Chui
Ashley W Gaucho
Jefferson M Nicka
Rodrigues P Ferencz
Greenwood B Darakjy
Adams Q Saylors
Silvio R Kolmetz
Kaitlin G Malet
Juan P Garufi
Nicolas U Amigon
Mujtaba E Maclead
Johnson S Glick
Faith R Whobrey
Emily J Kusko
Munro A Stenseth
Ashley Y Sergi
Mujtaba X Glick
Faith P Malet
Clifford I Kusko
Mayumi M Sergi
Isabel X Malet
Mayumi F Butt
Silvio Q Gaucho
Johnson K Stockham
Mujtaba S Stockham
Aruna M Ferencz
James K Iturbide
Julie V Amigon
Kaitlin M Morasca
Alejandro C Figeroa
Aditya P Maclead
Silvio K Wieser
Mujtaba K Oldroyd
David G Butt
Clifford T Campain
Ivar V Ferencz
Kaitlin M Kolmetz
Sinclair A Rulapaugh
Adams A Iturbide
Nicolas G Ruta
Jones D Ferencz
Aruna K Figeroa
Octavia N Bowley
Ashley F Doe
IdCountryDate
1000Japan2025-04-19
1001Canada2025-04-23
1002Australia2025-04-30
1003Italy2025-05-02
1004Brazil2025-04-29
1005Russia2025-05-04
1006Brazil2025-04-10
1007Spain2025-04-28
1008France2025-05-01
1009Germany2025-04-15
1010Canada2025-05-08
1011Italy2025-04-12
1012India2025-04-20
1013Canada2025-04-10
1014Spain2025-04-22
1015France2025-04-29
1016France2025-04-13
1017Argentina2025-04-10
1018Russia2025-04-28
1019United Kingdom2025-04-11
1020Australia2025-04-12
1021Japan2025-05-03
1022Australia2025-05-02
1023Brazil2025-04-10
1024Brazil2025-04-29
1025India2025-04-13
1026Brazil2025-04-16
1027Russia2025-04-21
1028Spain2025-05-01
1029Argentina2025-04-21
1030Germany2025-04-25
1031Russia2025-05-03
1032Australia2025-04-23
1033Italy2025-04-26
1034Italy2025-04-25
1035Japan2025-04-22
1036Germany2025-04-12
1037Argentina2025-04-21
1038Brazil2025-05-06
1039Russia2025-05-08
1040Russia2025-04-21
1041Russia2025-04-22
1042Germany2025-04-19
1043Spain2025-04-28
1044Italy2025-05-03
1045Italy2025-04-13
1046India2025-04-09
1047United Kingdom2025-04-10
1048France2025-04-13
1049Russia2025-04-12

On-Demand Data

NameIdCountryDate
Arvin K Inouye1000Japan2025-04-09
Sinclair Q Malet1001Argentina2025-05-08
Kaitlin R Glick1002Germany2025-05-06
Aika P Garufi1003United Kingdom2025-05-02
James T Paprocki1004Canada2025-04-13
Cody N Morasca1005Argentina2025-05-04
Ashley D Vocelka1006Spain2025-04-11
Francesco I Caldarera1007Italy2025-04-09
Juan R Ferencz1008Russia2025-04-11
Maisha N Nicka1009Russia2025-04-29
Octavia P Amigon1010Japan2025-04-18
Misaki S Inouye1011Russia2025-04-09
Claire N Amigon1012Germany2025-05-06
Stacey W Ostrosky1013Brazil2025-04-25
Clifford R Iturbide1014Spain2025-05-02
Sinclair Y Caldarera1015Russia2025-04-09
Munro Q Rim1016Canada2025-04-15
Cody X Shinko1017Canada2025-04-10
Jennifer X Stenseth1018Spain2025-05-02
Misaki V Albares1019Australia2025-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow I PoquetteRussiaStephen Shaw NEW
Leon N FlosiSpainStephen Shaw PROPOSAL
Jeanfrancois Y DarakjyJapanIoni Bowcher NEGOTIATION
Aruna Y KolmetzBrazilAnna Fali NEGOTIATION
Cody E GillianGermanyXuxue Feng QUALIFIED
Costa L WieserJapanIoni Bowcher RENEWAL
Rodrigues Y DoeFranceOnyama Limba PROPOSAL
Chavez L RoysterBrazilIoni Bowcher NEW
Aika Q CaldareraCanadaStephen Shaw NEW
Johnson V CaudyGermanyStephen Shaw PROPOSAL
Isabel D FigeroaRussiaXuxue Feng UNQUALIFIED
Aditya C MaletUnited KingdomBernardo Dominic PROPOSAL
Darci M SlusarskiArgentinaXuxue Feng UNQUALIFIED
Rodrigues U WieserUnited KingdomElwin Sharvill NEGOTIATION
Adams A VenereSpainIvan Magalhaes RENEWAL
Chavez G SchemmerItalyOnyama Limba NEGOTIATION
Jennifer U DoeGermanyBernardo Dominic UNQUALIFIED
Claire Y GarufiFranceElwin Sharvill UNQUALIFIED
James Z ButtBrazilBernardo Dominic PROPOSAL
Kadeem X PoquetteUnited KingdomXuxue Feng QUALIFIED
Antonio W SchemmerCanadaElwin Sharvill UNQUALIFIED
Maria W VenereItalyIvan Magalhaes QUALIFIED
Silvio A WieserRussiaAnna Fali QUALIFIED
Julie P GauchoUnited KingdomAsiya Javayant PROPOSAL
Juan A SergiIndiaElwin Sharvill QUALIFIED
Stacey M AlbaresAustraliaXuxue Feng NEGOTIATION
Claire E GlickBrazilStephen Shaw PROPOSAL
Jones A FigeroaUnited KingdomOnyama Limba NEW
Maisha P FlosiFranceIvan Magalhaes QUALIFIED
Leon Q SaylorsSpainIvan Magalhaes NEGOTIATION
Isabel S MorascaAustraliaBernardo Dominic PROPOSAL
Octavia A RoysterBrazilAnna Fali UNQUALIFIED
Ricardo P RimCanadaAmy Elsner UNQUALIFIED
Clifford T NickaCanadaIoni Bowcher NEGOTIATION
Maisha M StensethItalyStephen Shaw QUALIFIED
Costa U OldroydAustraliaIvan Magalhaes NEGOTIATION
Aika U CaldareraAustraliaIoni Bowcher RENEWAL
Leja J OstroskyFranceElwin Sharvill QUALIFIED
Leon C RoysterItalyIvan Magalhaes UNQUALIFIED
Wickens S DilliardArgentinaOnyama Limba 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>