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
Jones T FlosiUnited KingdomAsiya Javayant UNQUALIFIED
Munro B PaprockiIndiaAmy Elsner NEGOTIATION
Darci H GarufiCanadaAsiya Javayant UNQUALIFIED
Maisha P IturbideIndiaIvan Magalhaes RENEWAL
Jefferson N VenereFranceAmy Elsner PROPOSAL
Aruna Y KolmetzCanadaXuxue Feng UNQUALIFIED
Izzy O CampainCanadaOnyama Limba UNQUALIFIED
Aditya G WieserAustraliaIoni Bowcher PROPOSAL
Jennifer A MarrierJapanAnna Fali QUALIFIED
Claire S WieserSpainXuxue Feng RENEWAL
Darci C SlusarskiUnited KingdomOnyama Limba RENEWAL
Isabel W WhobreyGermanyStephen Shaw QUALIFIED
Juan R TollnerUnited KingdomOnyama Limba NEW
Mujtaba G GarufiGermanyIoni Bowcher PROPOSAL
Misaki Q SlusarskiFranceOnyama Limba NEGOTIATION
Izzy C IturbideUnited KingdomIoni Bowcher QUALIFIED
Francesco V OstroskyUnited KingdomOnyama Limba NEGOTIATION
Ricardo P TollnerIndiaAmy Elsner RENEWAL
Munro M MarrierItalyStephen Shaw QUALIFIED
Julie S DilliardFranceElwin Sharvill NEW
Aruna Q NickaUnited KingdomOnyama Limba NEW
Costa F DilliardFranceIoni Bowcher NEGOTIATION
Clifford W WhobreyAustraliaAsiya Javayant PROPOSAL
Nicolas O MacleadBrazilIoni Bowcher NEW
Izzy D MaletIndiaOnyama Limba NEGOTIATION
Silvio E WhobreyArgentinaAmy Elsner NEGOTIATION
Maisha E TollnerAustraliaAsiya Javayant PROPOSAL
Maisha I AlbaresSpainOnyama Limba QUALIFIED
Chavez R MacleadBrazilAnna Fali UNQUALIFIED
Claire G InouyeIndiaXuxue Feng NEGOTIATION
Ashley Q BowleyRussiaElwin Sharvill RENEWAL
Mayumi K MacleadArgentinaBernardo Dominic PROPOSAL
Maisha I BologniaJapanAsiya Javayant UNQUALIFIED
Ashley E ButtGermanyIvan Magalhaes NEW
Silvio K FlosiArgentinaBernardo Dominic QUALIFIED
Claire U CampainItalyStephen Shaw NEW
Aditya T SlusarskiArgentinaXuxue Feng RENEWAL
Emily R RulapaughJapanBernardo Dominic NEGOTIATION
Ricardo H MaletAustraliaAsiya Javayant QUALIFIED
Munro H DarakjyJapanAnna Fali UNQUALIFIED
Francesco V MaletBrazilAmy Elsner UNQUALIFIED
Smith Q CampainIndiaElwin Sharvill NEGOTIATION
Aditya W RulapaughRussiaIvan Magalhaes RENEWAL
Aditya B ChuiFranceStephen Shaw RENEWAL
Ivar R InouyeRussiaAmy Elsner NEGOTIATION
Ricardo I KuskoCanadaAsiya Javayant RENEWAL
Murillo Z RulapaughCanadaAnna Fali QUALIFIED
Murillo K TollnerItalyAnna Fali UNQUALIFIED
Greenwood V OstroskyJapanOnyama Limba UNQUALIFIED
Octavia G WaycottRussiaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Costa P SlusarskiGermanyIoni Bowcher QUALIFIED
Izzy N GarufiJapanIvan Magalhaes QUALIFIED
Adams X NestleSpainAsiya Javayant UNQUALIFIED
Stacey H OstroskyJapanIoni Bowcher UNQUALIFIED
Aruna Z AmigonRussiaOnyama Limba UNQUALIFIED
Silvio P CampainFranceOnyama Limba UNQUALIFIED
Rodrigues G ChuiRussiaAmy Elsner NEGOTIATION
Murillo T DarakjyCanadaStephen Shaw UNQUALIFIED
Maisha I BriddickArgentinaIoni Bowcher NEW
Kaitlin B RoysterJapanAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem X GillianArgentina2026-06-21Feiner Bros NEGOTIATION75Ivan Magalhaes
1001Adams J KolmetzAustralia2026-06-19Feiner Bros NEW35Onyama Limba
1002Misaki D OstroskyJapan2026-06-14Benton, John B Jr NEW57Ivan Magalhaes
1003Greenwood F RutaCanada2026-06-08Chemel, James L Cpa NEW58Elwin Sharvill
1004Johnson A AlbaresJapan2026-06-10Commercial Press PROPOSAL46Amy Elsner
1005Deepesh O SergiFrance2026-06-24Commercial Press NEW9Onyama Limba
1006Salvatore S ChuiSpain2026-06-28Rousseaux, Michael Esq UNQUALIFIED93Asiya Javayant
1007Smith E WieserJapan2026-06-28Chemel, James L Cpa NEGOTIATION86Anna Fali
1008Morrow L MaletRussia2026-06-07Benton, John B Jr NEW5Anna Fali
1009Clifford N MacleadItaly2026-06-05Dorl, James J Esq NEGOTIATION74Ivan Magalhaes
1010Ricardo A ChuiFrance2026-06-07Rangoni Of Florence NEW50Onyama Limba
1011Mujtaba F KolmetzUnited Kingdom2026-05-31Benton, John B Jr RENEWAL11Bernardo Dominic
1012Greenwood Q VocelkaRussia2026-06-03King, Christopher A Esq QUALIFIED47Stephen Shaw
1013Aditya B VocelkaJapan2026-06-04Morlong Associates QUALIFIED0Stephen Shaw
1014Aika T CampainJapan2026-06-20Dorl, James J Esq NEGOTIATION14Asiya Javayant
1015Antonio C NickaIndia2026-06-16Chapman, Ross E Esq UNQUALIFIED20Elwin Sharvill
1016Murillo M OstroskyCanada2026-06-15Rangoni Of Florence UNQUALIFIED93Bernardo Dominic
1017Greenwood P FigeroaSpain2026-06-08Morlong Associates RENEWAL74Ioni Bowcher
1018Ashley P CaldareraGermany2026-06-05Rousseaux, Michael Esq NEW64Asiya Javayant
1019Maria G GillianSpain2026-06-22Benton, John B Jr RENEWAL30Ivan Magalhaes
1020Greenwood S TollnerIndia2026-06-07Benton, John B Jr NEGOTIATION4Onyama Limba
1021Julie I FollerArgentina2026-06-10Buckley Miller Wright NEGOTIATION45Stephen Shaw
1022Salvatore Z WieserIndia2026-06-13Chapman, Ross E Esq NEW73Amy Elsner
1023Jeanfrancois J OldroydGermany2026-06-26Chanay, Jeffrey A Esq PROPOSAL58Ivan Magalhaes
1024Morrow G AmigonCanada2026-06-19Chapman, Ross E Esq NEW94Anna Fali
1025Alejandro C CaudyAustralia2026-06-26Truhlar And Truhlar Attys NEW22Ivan Magalhaes
1026Smith C RulapaughGermany2026-05-31King, Christopher A Esq QUALIFIED91Bernardo Dominic
1027Morrow H InouyeGermany2026-05-31Truhlar And Truhlar Attys PROPOSAL36Onyama Limba
1028Chavez U ShinkoJapan2026-06-11King, Christopher A Esq NEGOTIATION2Onyama Limba
1029Clifford T WhobreyIndia2026-06-28King, Christopher A Esq NEW22Anna Fali
1030Johnson Z AlbaresIndia2026-06-05Truhlar And Truhlar Attys PROPOSAL12Elwin Sharvill
1031Alejandro R MaletAustralia2026-06-19Commercial Press RENEWAL46Elwin Sharvill
1032Tony W OldroydRussia2026-06-18Dorl, James J Esq NEGOTIATION89Onyama Limba
1033Deepesh L NickaCanada2026-06-12Benton, John B Jr NEW86Elwin Sharvill
1034Greenwood P SaylorsIndia2026-06-04Rangoni Of Florence NEGOTIATION65Xuxue Feng
1035Munro F OldroydJapan2026-06-01Buckley Miller Wright PROPOSAL72Stephen Shaw
1036Ivar A StockhamSpain2026-06-23Rousseaux, Michael Esq RENEWAL8Asiya Javayant
1037Juan H RoysterFrance2026-06-01Chapman, Ross E Esq NEW55Ivan Magalhaes
1038Nicolas A VocelkaBrazil2026-06-09Buckley Miller Wright PROPOSAL76Onyama Limba
1039Misaki F MarrierFrance2026-06-20Buckley Miller Wright RENEWAL46Xuxue Feng
1040Juan D PerinSpain2026-06-06Chanay, Jeffrey A Esq UNQUALIFIED7Bernardo Dominic
1041Arvin Y NickaRussia2026-06-05Truhlar And Truhlar Attys NEGOTIATION8Stephen Shaw
1042Octavia S PaprockiSpain2026-06-19Chemel, James L Cpa PROPOSAL10Ivan Magalhaes
1043Wickens B FigeroaItaly2026-06-22Dorl, James J Esq UNQUALIFIED50Amy Elsner
1044Maria N ShinkoSpain2026-06-25Printing Dimensions QUALIFIED2Ioni Bowcher
1045Arvin W DarakjyCanada2026-06-10Dorl, James J Esq PROPOSAL43Xuxue Feng
1046Izzy K CampainIndia2026-05-31Morlong Associates PROPOSAL23Ivan Magalhaes
1047Aruna E SchemmerCanada2026-06-09Commercial Press NEGOTIATION87Anna Fali
1048David Q FlosiBrazil2026-06-28Chemel, James L Cpa QUALIFIED52Onyama Limba
1049Octavia L GillianGermany2026-06-23Printing Dimensions PROPOSAL35Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Clifford B StockhamJapanIvan Magalhaes PROPOSAL
Sinclair K MaletRussiaXuxue Feng UNQUALIFIED
Deepesh U VocelkaSpainIoni Bowcher NEGOTIATION
Jeanfrancois O CaudyGermanyIoni Bowcher QUALIFIED
Octavia G KolmetzFranceStephen Shaw NEW
Jeanfrancois C KuskoCanadaIvan Magalhaes UNQUALIFIED
Juan N RulapaughJapanOnyama Limba NEGOTIATION
Kadeem O IturbideArgentinaAnna Fali NEGOTIATION
Arvin Y GarufiItalyIvan Magalhaes NEGOTIATION
Maisha V StockhamFranceBernardo Dominic NEGOTIATION
Maria J MorascaItalyStephen Shaw PROPOSAL
Mujtaba V IturbideBrazilIoni Bowcher NEW
Aditya S OstroskyArgentinaIoni Bowcher NEGOTIATION
Salvatore O BowleySpainXuxue Feng NEW
Ricardo B DoeAustraliaAmy Elsner NEGOTIATION
Mayumi S IturbideSpainIvan Magalhaes NEW
Octavia M MarrierUnited KingdomStephen Shaw PROPOSAL
Mayumi A ChuiSpainIoni Bowcher NEW
Johnson W MaletRussiaBernardo Dominic NEW
Smith B MaletItalyAnna Fali PROPOSAL
Julie F RimIndiaElwin Sharvill UNQUALIFIED
Francesco U PaprockiBrazilElwin Sharvill RENEWAL
Cody Y FigeroaAustraliaIoni Bowcher NEW
Kaitlin U GarufiGermanyStephen Shaw UNQUALIFIED
Juan U BowleyFranceAsiya Javayant NEW
Maria M DilliardItalyBernardo Dominic PROPOSAL
Ashley D OstroskyJapanXuxue Feng QUALIFIED
Misaki N FollerBrazilIoni Bowcher PROPOSAL
Greenwood Q BologniaItalyBernardo Dominic QUALIFIED
Maria Q RimItalyXuxue Feng NEW
Darci K DoeFranceBernardo Dominic PROPOSAL
Francesco X DarakjyItalyStephen Shaw QUALIFIED
Stacey V ButtRussiaXuxue Feng RENEWAL
Juan V ChuiGermanyXuxue Feng QUALIFIED
Maisha W GlickRussiaAsiya Javayant PROPOSAL
Maisha E AlbaresUnited KingdomAmy Elsner UNQUALIFIED
Maria V IturbideFranceAmy Elsner UNQUALIFIED
Izzy D RutaRussiaElwin Sharvill PROPOSAL
Faith T NickaItalyIvan Magalhaes QUALIFIED
Clifford Y TollnerIndiaIoni Bowcher UNQUALIFIED
Francesco F MorascaItalyBernardo Dominic QUALIFIED
Jeanfrancois K OldroydJapanStephen Shaw RENEWAL
Murillo K AmigonSpainIvan Magalhaes NEGOTIATION
Ricardo U ButtGermanyElwin Sharvill PROPOSAL
Wickens O FlosiBrazilXuxue Feng PROPOSAL
Jones I RutaRussiaIoni Bowcher QUALIFIED
Clifford M PerinGermanyXuxue Feng NEGOTIATION
Johnson H SergiArgentinaAnna Fali NEW
Silvio W WaycottArgentinaIvan Magalhaes NEGOTIATION
Morrow I VocelkaItalyIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Juan Y Bowley
Jeanfrancois T Rim
Cody K Stenseth
Misaki V Ruta
Silvio S Stockham
Salvatore D Dilliard
Stacey Q Poquette
Adams A Sergi
Murillo O Kusko
Mayumi I Rulapaugh
Cody X Glick
Wickens Q Perin
Arvin D Malet
Darci Y Morasca
Octavia V Butt
Aditya R Inouye
Jefferson X Stockham
Ricardo O Slusarski
Ivar L Whobrey
Mujtaba X Rulapaugh
Misaki A Chui
Nicolas P Tollner
Leon A Nicka
Mujtaba H Dilliard
Aditya W Gaucho
Salvatore N Maclead
Maria H Darakjy
Morrow N Stenseth
Leon A Poquette
Sinclair N Ruta
Isabel G Slusarski
Mujtaba U Ostrosky
Johnson M Slusarski
Aditya J Darakjy
Misaki Q Caldarera
Leon K Sergi
Johnson D Malet
Jones Y Royster
Salvatore T Albares
Jones I Briddick
Stacey R Whobrey
Jones P Ruta
Isabel M Gaucho
Julie S Butt
Juan B Campain
James A Rulapaugh
Emily E Paprocki
Wickens R Bolognia
Kaitlin B Malet
Mayumi H Flosi
IdCountryDate
1000France2026-05-31
1001Russia2026-06-21
1002Canada2026-06-26
1003Australia2026-06-21
1004Spain2026-06-17
1005France2026-06-08
1006Germany2026-06-19
1007France2026-05-31
1008Argentina2026-06-29
1009Italy2026-06-28
1010India2026-06-10
1011Spain2026-06-11
1012Russia2026-06-10
1013Argentina2026-05-31
1014Russia2026-06-09
1015France2026-06-17
1016Brazil2026-06-01
1017Italy2026-06-19
1018Russia2026-06-18
1019India2026-06-26
1020Argentina2026-06-24
1021Germany2026-06-28
1022Italy2026-06-26
1023United Kingdom2026-06-15
1024Argentina2026-06-23
1025Canada2026-06-04
1026Russia2026-06-27
1027Brazil2026-05-31
1028United Kingdom2026-06-06
1029Japan2026-06-21
1030Brazil2026-06-27
1031Japan2026-06-09
1032Spain2026-06-22
1033Italy2026-06-26
1034Germany2026-06-20
1035Australia2026-06-13
1036Spain2026-06-27
1037Italy2026-06-13
1038Russia2026-06-25
1039Canada2026-06-20
1040France2026-06-20
1041Italy2026-06-05
1042India2026-06-21
1043France2026-06-23
1044United Kingdom2026-06-04
1045India2026-06-25
1046Canada2026-06-27
1047Russia2026-06-07
1048Argentina2026-06-02
1049Russia2026-06-07

On-Demand Data

NameIdCountryDate
Izzy X Rulapaugh1000France2026-06-24
Julie B Wieser1001Argentina2026-06-06
Ivar N Albares1002Canada2026-06-01
Leja S Vocelka1003Germany2026-06-12
Jones M Sergi1004Brazil2026-06-01
Misaki L Gaucho1005Spain2026-06-14
Alejandro O Sergi1006Australia2026-06-07
Francesco D Rim1007United Kingdom2026-06-29
Jefferson G Poquette1008Russia2026-06-27
Jones L Morasca1009Argentina2026-06-06
Maisha R Stenseth1010United Kingdom2026-06-25
Aruna E Waycott1011Japan2026-06-14
Kaitlin C Marrier1012Brazil2026-06-10
Munro M Vocelka1013Canada2026-06-21
Aruna P Slusarski1014Argentina2026-06-16
Johnson A Slusarski1015Russia2026-06-25
Jeanfrancois P Rulapaugh1016Italy2026-06-12
Maria X Whobrey1017Canada2026-06-28
Cody A Briddick1018United Kingdom2026-06-17
Sinclair S Schemmer1019India2026-06-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia R VenereItalyStephen Shaw PROPOSAL
Aruna W ButtRussiaIvan Magalhaes NEGOTIATION
Kaitlin Z AmigonJapanAsiya Javayant NEW
Sinclair W MaletBrazilXuxue Feng QUALIFIED
Sinclair K StockhamFranceXuxue Feng UNQUALIFIED
Salvatore P DoeItalyAsiya Javayant QUALIFIED
Tony Z IturbideRussiaOnyama Limba PROPOSAL
Izzy A ButtAustraliaOnyama Limba UNQUALIFIED
Johnson U PaprockiFranceIoni Bowcher RENEWAL
Antonio V IturbideBrazilStephen Shaw PROPOSAL
Darci N DarakjySpainIoni Bowcher UNQUALIFIED
Ashley T PoquetteAustraliaElwin Sharvill QUALIFIED
Morrow M VenereArgentinaIoni Bowcher NEW
Ivar L AlbaresFranceIvan Magalhaes QUALIFIED
Kadeem W OstroskyArgentinaXuxue Feng UNQUALIFIED
Claire R DarakjyItalyElwin Sharvill PROPOSAL
Wickens J WaycottUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson R BowleyUnited KingdomStephen Shaw UNQUALIFIED
Julie S KolmetzArgentinaAmy Elsner NEGOTIATION
Julie S NestleBrazilAsiya Javayant RENEWAL
Jeanfrancois A SaylorsSpainIvan Magalhaes UNQUALIFIED
Leja E BowleyArgentinaIoni Bowcher RENEWAL
David L MorascaIndiaIoni Bowcher UNQUALIFIED
Faith A ButtCanadaAmy Elsner NEGOTIATION
Kaitlin Q GlickGermanyIvan Magalhaes NEGOTIATION
Silvio K SergiArgentinaOnyama Limba UNQUALIFIED
Izzy J FlosiItalyIoni Bowcher NEGOTIATION
Cody G SergiSpainStephen Shaw PROPOSAL
Antonio D FlosiUnited KingdomStephen Shaw PROPOSAL
Sinclair S AlbaresJapanStephen Shaw PROPOSAL
Ashley B OldroydJapanElwin Sharvill NEGOTIATION
Johnson F DoeAustraliaAmy Elsner UNQUALIFIED
Deepesh V SergiItalyAnna Fali NEW
Nicolas H DilliardUnited KingdomAmy Elsner QUALIFIED
Misaki F RutaBrazilAsiya Javayant QUALIFIED
Aika S RulapaughFranceAsiya Javayant UNQUALIFIED
James G SlusarskiArgentinaAmy Elsner QUALIFIED
Salvatore F WhobreyArgentinaBernardo Dominic RENEWAL
Morrow P MaletCanadaBernardo Dominic QUALIFIED
Sinclair A AlbaresAustraliaAmy Elsner UNQUALIFIED

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