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
Alejandro A RulapaughCanadaIvan Magalhaes UNQUALIFIED
Johnson P FerenczUnited KingdomAsiya Javayant RENEWAL
Alejandro L RulapaughSpainXuxue Feng NEGOTIATION
Ashley S PaprockiCanadaBernardo Dominic NEGOTIATION
Deepesh M IturbideItalyOnyama Limba QUALIFIED
Mujtaba P RoysterItalyOnyama Limba PROPOSAL
Juan L WhobreyFranceIvan Magalhaes PROPOSAL
Leon T NickaBrazilElwin Sharvill NEGOTIATION
Cody J SchemmerAustraliaBernardo Dominic UNQUALIFIED
James D KolmetzGermanyElwin Sharvill UNQUALIFIED
David E FollerAustraliaElwin Sharvill NEW
Ricardo S IturbideJapanOnyama Limba NEW
Kadeem Z SaylorsItalyAnna Fali NEGOTIATION
Nicolas Q GauchoIndiaAnna Fali PROPOSAL
Ricardo S RutaFranceStephen Shaw NEGOTIATION
Claire Y OldroydIndiaXuxue Feng PROPOSAL
Faith J DarakjyItalyAnna Fali PROPOSAL
Stacey O IturbideAustraliaIvan Magalhaes QUALIFIED
Antonio D MaletCanadaAsiya Javayant PROPOSAL
James T NickaIndiaOnyama Limba UNQUALIFIED
Arvin F SergiItalyAmy Elsner PROPOSAL
Cody R SchemmerUnited KingdomIvan Magalhaes PROPOSAL
Aika Y IturbideItalyBernardo Dominic PROPOSAL
Costa W GillianUnited KingdomAnna Fali PROPOSAL
Isabel T TollnerJapanXuxue Feng RENEWAL
Arvin Q GauchoJapanXuxue Feng PROPOSAL
Johnson L BologniaSpainXuxue Feng RENEWAL
Morrow Y MaletJapanBernardo Dominic RENEWAL
Ivar E RoysterBrazilAmy Elsner NEW
Maisha A WieserUnited KingdomAnna Fali NEGOTIATION
Clifford V FlosiRussiaBernardo Dominic UNQUALIFIED
Maisha E MacleadArgentinaElwin Sharvill UNQUALIFIED
Murillo O ShinkoFranceXuxue Feng QUALIFIED
Greenwood Z MaletArgentinaOnyama Limba RENEWAL
Wickens H DoeJapanElwin Sharvill RENEWAL
Francesco I ShinkoGermanyXuxue Feng PROPOSAL
Wickens L NickaBrazilOnyama Limba NEGOTIATION
Kaitlin T RoysterCanadaOnyama Limba PROPOSAL
Chavez B SaylorsRussiaBernardo Dominic RENEWAL
Silvio T OldroydCanadaAsiya Javayant NEGOTIATION
Isabel G OldroydAustraliaElwin Sharvill UNQUALIFIED
Emily D GlickJapanIoni Bowcher NEW
Ivar S GlickUnited KingdomElwin Sharvill NEGOTIATION
Aika C MorascaBrazilXuxue Feng QUALIFIED
Leon X GauchoBrazilIoni Bowcher RENEWAL
Mujtaba C PoquetteItalyStephen Shaw RENEWAL
Maria Z SlusarskiIndiaAmy Elsner QUALIFIED
Alejandro W FlosiArgentinaAmy Elsner NEGOTIATION
Deepesh S GarufiUnited KingdomAnna Fali QUALIFIED
Maria I FollerSpainElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois D DoeFranceElwin Sharvill PROPOSAL
Chavez S DoeBrazilStephen Shaw QUALIFIED
Rodrigues D MaletGermanyAmy Elsner PROPOSAL
Wickens L DoeBrazilElwin Sharvill PROPOSAL
David L FigeroaRussiaOnyama Limba NEGOTIATION
Claire D OstroskySpainAnna Fali UNQUALIFIED
Ricardo E ChuiBrazilAmy Elsner UNQUALIFIED
Jones I RutaGermanyElwin Sharvill UNQUALIFIED
Ashley Q RulapaughBrazilBernardo Dominic UNQUALIFIED
Aditya E WieserAustraliaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan W KuskoFrance2024-05-27Morlong Associates QUALIFIED22Amy Elsner
1001Izzy Q SaylorsItaly2024-05-24Benton, John B Jr PROPOSAL27Xuxue Feng
1002Aruna Q CaldareraFrance2024-06-04Benton, John B Jr UNQUALIFIED15Amy Elsner
1003Ricardo O FigeroaArgentina2024-06-14Dorl, James J Esq PROPOSAL20Amy Elsner
1004Aika C StockhamBrazil2024-06-11King, Christopher A Esq PROPOSAL21Anna Fali
1005Julie B VocelkaJapan2024-05-29Dorl, James J Esq PROPOSAL91Stephen Shaw
1006Cody E WhobreyCanada2024-06-15Commercial Press RENEWAL3Elwin Sharvill
1007Costa K BologniaGermany2024-05-27Benton, John B Jr QUALIFIED94Bernardo Dominic
1008Costa O AmigonGermany2024-06-20Printing Dimensions NEW50Ioni Bowcher
1009Aika U CaldareraItaly2024-06-20Rangoni Of Florence RENEWAL15Onyama Limba
1010Murillo I FollerFrance2024-06-09Feltz Printing Service NEGOTIATION47Ioni Bowcher
1011Munro Y PaprockiRussia2024-06-06Chanay, Jeffrey A Esq PROPOSAL61Amy Elsner
1012Wickens Y MacleadCanada2024-06-18Chanay, Jeffrey A Esq NEW44Ivan Magalhaes
1013Tony M FerenczAustralia2024-06-06Chemel, James L Cpa UNQUALIFIED63Xuxue Feng
1014Ivar E TollnerArgentina2024-06-14Truhlar And Truhlar Attys NEW3Onyama Limba
1015Kadeem I VenereBrazil2024-06-19Benton, John B Jr NEGOTIATION48Bernardo Dominic
1016Jeanfrancois F SaylorsJapan2024-06-14Rangoni Of Florence UNQUALIFIED36Bernardo Dominic
1017Antonio X MorascaGermany2024-06-04Rousseaux, Michael Esq PROPOSAL86Ioni Bowcher
1018David U WaycottJapan2024-06-03Printing Dimensions RENEWAL79Ivan Magalhaes
1019Wickens D StockhamGermany2024-06-09Rousseaux, Michael Esq UNQUALIFIED95Bernardo Dominic
1020Maria V MaletIndia2024-05-30Chemel, James L Cpa RENEWAL83Bernardo Dominic
1021Jennifer J SaylorsRussia2024-06-09Morlong Associates QUALIFIED19Amy Elsner
1022Mayumi N TollnerRussia2024-06-02Chemel, James L Cpa PROPOSAL66Stephen Shaw
1023Emily T FollerSpain2024-06-12Truhlar And Truhlar Attys RENEWAL5Stephen Shaw
1024Adams I VocelkaGermany2024-06-04Buckley Miller Wright PROPOSAL10Ivan Magalhaes
1025Jeanfrancois M OldroydAustralia2024-06-03Feiner Bros RENEWAL49Xuxue Feng
1026Izzy F KuskoArgentina2024-05-29Buckley Miller Wright RENEWAL7Elwin Sharvill
1027Tony P StockhamGermany2024-05-24Buckley Miller Wright PROPOSAL7Elwin Sharvill
1028Chavez Q MaletGermany2024-06-21Chanay, Jeffrey A Esq NEGOTIATION19Xuxue Feng
1029Clifford T AlbaresArgentina2024-06-06Truhlar And Truhlar Attys RENEWAL50Ivan Magalhaes
1030Munro B GarufiIndia2024-06-13Chapman, Ross E Esq QUALIFIED85Asiya Javayant
1031Jennifer V RutaIndia2024-05-29Feiner Bros UNQUALIFIED82Ioni Bowcher
1032David M OldroydIndia2024-06-07Chemel, James L Cpa UNQUALIFIED82Onyama Limba
1033Deepesh F OldroydGermany2024-06-05Dorl, James J Esq NEGOTIATION80Ioni Bowcher
1034Smith C GillianSpain2024-05-26Truhlar And Truhlar Attys UNQUALIFIED29Elwin Sharvill
1035Faith C NickaRussia2024-06-16Commercial Press NEW10Amy Elsner
1036Cody P FigeroaBrazil2024-06-11Truhlar And Truhlar Attys NEW89Stephen Shaw
1037Jefferson F FlosiBrazil2024-06-07Rousseaux, Michael Esq NEGOTIATION49Ivan Magalhaes
1038Rodrigues J CampainBrazil2024-06-10Rangoni Of Florence RENEWAL79Elwin Sharvill
1039Rodrigues C RimJapan2024-06-16King, Christopher A Esq QUALIFIED83Anna Fali
1040Costa L BriddickArgentina2024-05-31Chanay, Jeffrey A Esq RENEWAL49Elwin Sharvill
1041Leja O PoquetteUnited Kingdom2024-05-30Commercial Press RENEWAL73Stephen Shaw
1042Kadeem Z WhobreyUnited Kingdom2024-06-11Chemel, James L Cpa QUALIFIED52Asiya Javayant
1043Adams P VenereRussia2024-06-04Printing Dimensions UNQUALIFIED30Amy Elsner
1044Ashley I KolmetzRussia2024-06-08Chanay, Jeffrey A Esq RENEWAL62Bernardo Dominic
1045Claire O ShinkoJapan2024-06-21Morlong Associates NEGOTIATION39Stephen Shaw
1046Claire A GlickAustralia2024-06-04Chanay, Jeffrey A Esq NEW39Amy Elsner
1047James D CaldareraRussia2024-06-13Truhlar And Truhlar Attys PROPOSAL51Onyama Limba
1048Rodrigues S MacleadFrance2024-06-07Printing Dimensions NEGOTIATION34Elwin Sharvill
1049Morrow U ButtJapan2024-06-05Feiner Bros QUALIFIED31Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Claire D WieserUnited KingdomStephen Shaw UNQUALIFIED
Arvin I SlusarskiArgentinaIoni Bowcher NEW
Murillo C RoysterItalyIoni Bowcher PROPOSAL
Tony S GlickItalyAsiya Javayant UNQUALIFIED
Clifford D PerinArgentinaAmy Elsner NEW
Sinclair L BologniaRussiaStephen Shaw UNQUALIFIED
Leja P ButtJapanStephen Shaw NEW
Chavez Q BriddickUnited KingdomAnna Fali PROPOSAL
Juan D MacleadIndiaXuxue Feng PROPOSAL
Cody I BriddickItalyIvan Magalhaes NEGOTIATION
Ashley M BologniaFranceAsiya Javayant NEGOTIATION
Faith A KuskoGermanyAmy Elsner QUALIFIED
Munro N NickaUnited KingdomElwin Sharvill RENEWAL
Arvin V MaletJapanAnna Fali NEGOTIATION
Juan X ButtCanadaStephen Shaw NEW
Leon O StensethArgentinaIoni Bowcher UNQUALIFIED
Maria C GauchoIndiaStephen Shaw UNQUALIFIED
Juan T SlusarskiItalyOnyama Limba RENEWAL
Francesco N OstroskyAustraliaIoni Bowcher PROPOSAL
Jefferson R BologniaUnited KingdomAmy Elsner UNQUALIFIED
Izzy I PaprockiBrazilStephen Shaw QUALIFIED
Kaitlin I PerinAustraliaAmy Elsner QUALIFIED
Clifford D PaprockiRussiaAsiya Javayant UNQUALIFIED
Maisha Y PoquetteArgentinaOnyama Limba PROPOSAL
Juan R MaletItalyIoni Bowcher QUALIFIED
Kadeem H SchemmerRussiaOnyama Limba QUALIFIED
Faith O ChuiFranceStephen Shaw PROPOSAL
Juan O AmigonRussiaAmy Elsner QUALIFIED
Maria I GillianCanadaStephen Shaw NEGOTIATION
Aika O RoysterFranceAsiya Javayant NEGOTIATION
Jeanfrancois R IturbideJapanBernardo Dominic UNQUALIFIED
Johnson F ShinkoIndiaAmy Elsner QUALIFIED
Costa E OstroskyGermanyStephen Shaw QUALIFIED
Silvio S PerinItalyXuxue Feng PROPOSAL
Isabel D RutaAustraliaAsiya Javayant QUALIFIED
Leon T PaprockiIndiaAsiya Javayant UNQUALIFIED
Antonio Q WaycottJapanStephen Shaw QUALIFIED
Maisha V WaycottIndiaXuxue Feng QUALIFIED
Costa M SaylorsIndiaIvan Magalhaes QUALIFIED
Alejandro L GlickIndiaOnyama Limba QUALIFIED
Leja U WaycottSpainXuxue Feng NEGOTIATION
Munro F GauchoIndiaAnna Fali UNQUALIFIED
Stacey X NestleRussiaAsiya Javayant NEW
Kadeem D RulapaughUnited KingdomElwin Sharvill NEGOTIATION
Emily Z GlickRussiaStephen Shaw NEGOTIATION
Smith K InouyeAustraliaStephen Shaw NEW
Jeanfrancois R IturbideFranceStephen Shaw NEGOTIATION
Kaitlin Q ButtGermanyStephen Shaw NEW
Emily B RimSpainIoni Bowcher UNQUALIFIED
Jeanfrancois M GauchoUnited KingdomElwin Sharvill NEGOTIATION
Frozen Columns
Name
Chavez C Briddick
Jeanfrancois K Malet
Izzy Q Stenseth
Cody A Stenseth
Maisha O Doe
Francesco F Nicka
Cody T Dilliard
Emily V Royster
Ashley F Sergi
Faith Y Vocelka
Maria V Vocelka
Kadeem W Maclead
Ricardo U Malet
Leja V Saylors
Darci U Malet
Aika S Schemmer
Antonio N Dilliard
Adams N Bowley
Mayumi R Amigon
Kaitlin T Slusarski
Ashley P Bolognia
Smith H Flosi
Mayumi K Wieser
Mujtaba I Caudy
Ivar W Nicka
Jennifer J Ruta
Juan T Kolmetz
Juan L Albares
Darci C Ruta
Leon R Tollner
Costa G Marrier
Kaitlin G Morasca
Izzy O Rim
Mayumi Q Whobrey
Darci P Tollner
Chavez R Vocelka
Tony P Malet
Morrow I Rim
Mujtaba Q Darakjy
Nicolas E Albares
James G Slusarski
Clifford J Saylors
Francesco R Butt
Jennifer I Perin
Stacey O Amigon
Munro P Schemmer
Chavez O Caudy
Aditya O Gillian
Chavez E Foller
Alejandro A Nicka
IdCountryDate
1000Spain2024-06-02
1001Germany2024-05-26
1002Australia2024-05-24
1003France2024-05-24
1004Japan2024-05-31
1005France2024-06-07
1006Canada2024-06-10
1007Spain2024-06-03
1008Japan2024-05-30
1009Japan2024-06-11
1010India2024-06-19
1011Russia2024-06-03
1012Russia2024-06-12
1013India2024-06-03
1014Canada2024-06-15
1015Brazil2024-05-29
1016Australia2024-06-07
1017United Kingdom2024-05-25
1018Spain2024-06-22
1019Argentina2024-06-18
1020India2024-06-05
1021Japan2024-05-30
1022France2024-06-05
1023Brazil2024-05-30
1024Australia2024-06-16
1025Germany2024-06-15
1026Argentina2024-06-09
1027Japan2024-06-14
1028Germany2024-06-11
1029France2024-06-16
1030Russia2024-06-02
1031Brazil2024-05-31
1032Argentina2024-05-31
1033Canada2024-05-29
1034Japan2024-06-15
1035Canada2024-06-18
1036France2024-06-17
1037Australia2024-06-05
1038Spain2024-06-18
1039United Kingdom2024-05-29
1040Canada2024-05-31
1041Brazil2024-06-02
1042Brazil2024-06-07
1043Spain2024-05-30
1044Spain2024-06-16
1045Spain2024-05-28
1046Argentina2024-06-20
1047Spain2024-06-14
1048Brazil2024-05-28
1049Australia2024-06-09

On-Demand Data

NameIdCountryDate
Antonio V Glick1000Germany2024-06-21
Misaki T Saylors1001Japan2024-06-13
Jeanfrancois O Foller1002Japan2024-06-17
Aika Q Dilliard1003Argentina2024-05-31
Alejandro X Slusarski1004Brazil2024-06-14
Ashley E Slusarski1005Italy2024-06-21
Morrow X Caudy1006Argentina2024-05-24
Wickens K Chui1007Australia2024-06-18
Mujtaba L Whobrey1008Germany2024-05-27
Faith U Caldarera1009Japan2024-05-27
Munro T Oldroyd1010Russia2024-06-06
Smith Y Maclead1011India2024-05-30
Alejandro K Stockham1012Canada2024-05-24
Maisha P Shinko1013France2024-06-02
Greenwood P Malet1014Japan2024-06-20
Murillo T Rim1015Russia2024-06-04
David U Oldroyd1016Germany2024-06-09
Maria Q Nicka1017India2024-05-29
Ricardo G Dilliard1018Germany2024-06-22
Ivar M Dilliard1019Australia2024-06-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues I RoysterFranceBernardo Dominic UNQUALIFIED
Jefferson E BowleyAustraliaXuxue Feng UNQUALIFIED
Smith C OldroydFranceAsiya Javayant UNQUALIFIED
Isabel U RimSpainElwin Sharvill NEW
Francesco R SaylorsAustraliaAmy Elsner RENEWAL
Aruna Q RoysterUnited KingdomAsiya Javayant NEGOTIATION
Jefferson S AlbaresAustraliaAnna Fali UNQUALIFIED
Costa L BologniaCanadaIoni Bowcher RENEWAL
Arvin W GlickJapanIvan Magalhaes NEGOTIATION
Adams M NickaSpainOnyama Limba PROPOSAL
Sinclair K GlickIndiaIvan Magalhaes NEW
Mayumi X PaprockiAustraliaIvan Magalhaes PROPOSAL
Rodrigues T SergiJapanAsiya Javayant UNQUALIFIED
Aika Z GlickCanadaIvan Magalhaes NEGOTIATION
Munro C BologniaArgentinaOnyama Limba RENEWAL
Octavia M RulapaughCanadaElwin Sharvill NEGOTIATION
Tony D InouyeCanadaIoni Bowcher UNQUALIFIED
Deepesh T PerinItalyIvan Magalhaes UNQUALIFIED
Tony Q SchemmerSpainAmy Elsner PROPOSAL
Maisha M SaylorsArgentinaAsiya Javayant NEGOTIATION
Emily A NestleRussiaIvan Magalhaes QUALIFIED
Jones G ChuiIndiaXuxue Feng UNQUALIFIED
Maria J AlbaresArgentinaIvan Magalhaes PROPOSAL
Munro P FlosiCanadaElwin Sharvill RENEWAL
Jeanfrancois U PaprockiSpainBernardo Dominic RENEWAL
Maria H FigeroaJapanStephen Shaw UNQUALIFIED
Tony E RoysterCanadaBernardo Dominic QUALIFIED
Rodrigues P RoysterArgentinaBernardo Dominic RENEWAL
Morrow R KolmetzUnited KingdomAmy Elsner PROPOSAL
Jennifer B FerenczItalyXuxue Feng NEGOTIATION
Ivar J NickaSpainAsiya Javayant RENEWAL
Ivar S GlickRussiaBernardo Dominic PROPOSAL
Rodrigues J AlbaresCanadaIvan Magalhaes PROPOSAL
Kadeem Q GarufiItalyOnyama Limba QUALIFIED
Maria Y ChuiUnited KingdomOnyama Limba PROPOSAL
Leja A SchemmerFranceStephen Shaw PROPOSAL
Silvio Z GauchoArgentinaAnna Fali UNQUALIFIED
Aika K NestleFranceAmy Elsner NEGOTIATION
Maria V MaletJapanAmy Elsner NEGOTIATION
Emily W WieserGermanyElwin Sharvill NEW

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