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
Sinclair B NestleSpainOnyama Limba NEW
Munro W FollerUnited KingdomIvan Magalhaes QUALIFIED
Deepesh W ChuiRussiaOnyama Limba PROPOSAL
Adams S ChuiArgentinaOnyama Limba UNQUALIFIED
Munro I RimJapanIvan Magalhaes NEGOTIATION
Leon S IturbideJapanAmy Elsner PROPOSAL
Juan N PaprockiUnited KingdomIvan Magalhaes QUALIFIED
Morrow C RimFranceStephen Shaw NEW
Deepesh A PaprockiJapanStephen Shaw RENEWAL
Munro N MarrierRussiaBernardo Dominic PROPOSAL
Chavez O GarufiIndiaAmy Elsner QUALIFIED
James M WieserAustraliaElwin Sharvill UNQUALIFIED
Maria B FlosiUnited KingdomIoni Bowcher RENEWAL
Julie O RutaFranceXuxue Feng PROPOSAL
Darci Z DarakjyCanadaStephen Shaw RENEWAL
Leon X WhobreyGermanyAmy Elsner PROPOSAL
Leon Q OstroskyIndiaBernardo Dominic RENEWAL
Munro P MaletArgentinaBernardo Dominic NEW
Silvio K MaletRussiaElwin Sharvill RENEWAL
Juan B PaprockiGermanyIoni Bowcher NEGOTIATION
Silvio P MarrierItalyOnyama Limba NEW
Leon S WhobreyFranceStephen Shaw NEW
Ricardo C IturbideUnited KingdomAnna Fali RENEWAL
Aditya D CaldareraUnited KingdomOnyama Limba QUALIFIED
Jeanfrancois V GarufiCanadaElwin Sharvill RENEWAL
Alejandro L NestleUnited KingdomIoni Bowcher QUALIFIED
Ricardo X RimBrazilAmy Elsner PROPOSAL
Murillo I SaylorsFranceAmy Elsner NEW
Antonio S DarakjyJapanOnyama Limba QUALIFIED
Faith V CaudySpainStephen Shaw RENEWAL
Francesco I ChuiArgentinaElwin Sharvill PROPOSAL
David M CaldareraArgentinaBernardo Dominic QUALIFIED
Leon Y MaletSpainIvan Magalhaes RENEWAL
James K PaprockiCanadaAsiya Javayant NEW
James J KuskoGermanyIoni Bowcher NEW
Clifford J FigeroaGermanyElwin Sharvill QUALIFIED
Jones J PoquetteBrazilElwin Sharvill NEGOTIATION
Rodrigues E FlosiItalyIvan Magalhaes NEW
Mujtaba X RoysterIndiaBernardo Dominic NEGOTIATION
Silvio Y RulapaughAustraliaAmy Elsner NEW
Sinclair L VocelkaRussiaAnna Fali QUALIFIED
Leja D CaudyIndiaIvan Magalhaes NEW
Clifford W MaletRussiaAmy Elsner UNQUALIFIED
Alejandro H ButtItalyAsiya Javayant PROPOSAL
Izzy X AmigonCanadaAmy Elsner QUALIFIED
Antonio V FigeroaJapanIoni Bowcher PROPOSAL
Chavez Z DoeArgentinaStephen Shaw NEGOTIATION
David D RimRussiaAmy Elsner NEW
Cody I TollnerRussiaAsiya Javayant RENEWAL
Kaitlin G IturbideArgentinaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Emily W VenereSpainBernardo Dominic NEW
Johnson S BologniaAustraliaStephen Shaw RENEWAL
Ricardo X OstroskyFranceAmy Elsner UNQUALIFIED
Ivar Q FollerArgentinaXuxue Feng NEW
Julie F DoeJapanAsiya Javayant UNQUALIFIED
Misaki D FerenczRussiaOnyama Limba NEGOTIATION
Salvatore O VocelkaGermanyAnna Fali PROPOSAL
Leja E MaletGermanyBernardo Dominic PROPOSAL
Silvio P ChuiFranceAnna Fali PROPOSAL
Salvatore W CaudyJapanIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar N FerenczGermany2026-08-26Morlong Associates QUALIFIED81Stephen Shaw
1001Ivar A KuskoSpain2026-08-15King, Christopher A Esq PROPOSAL60Elwin Sharvill
1002Clifford E CampainIndia2026-08-29King, Christopher A Esq NEW49Elwin Sharvill
1003Mujtaba I OldroydSpain2026-08-05Buckley Miller Wright RENEWAL15Amy Elsner
1004Jeanfrancois S AlbaresSpain2026-08-11Truhlar And Truhlar Attys RENEWAL41Ivan Magalhaes
1005Tony J MacleadUnited Kingdom2026-08-30Chemel, James L Cpa QUALIFIED19Stephen Shaw
1006Jones C TollnerRussia2026-08-03Rangoni Of Florence NEGOTIATION35Stephen Shaw
1007Izzy E PaprockiFrance2026-08-30Rangoni Of Florence PROPOSAL61Amy Elsner
1008Maria V AlbaresJapan2026-08-18Morlong Associates NEW25Bernardo Dominic
1009Maria S InouyeGermany2026-08-30Buckley Miller Wright PROPOSAL96Xuxue Feng
1010Ricardo C SaylorsIndia2026-08-05Buckley Miller Wright QUALIFIED98Stephen Shaw
1011Jeanfrancois G SergiCanada2026-08-10Rousseaux, Michael Esq QUALIFIED72Ioni Bowcher
1012Mayumi H IturbideRussia2026-08-30Morlong Associates QUALIFIED53Anna Fali
1013Clifford Z DoeItaly2026-08-10Rousseaux, Michael Esq RENEWAL53Bernardo Dominic
1014Rodrigues N NestleSpain2026-08-16Benton, John B Jr RENEWAL46Stephen Shaw
1015Antonio E GauchoItaly2026-08-09Rangoni Of Florence PROPOSAL65Amy Elsner
1016Stacey H RimRussia2026-08-19Feiner Bros PROPOSAL54Stephen Shaw
1017Izzy J RimItaly2026-08-24Chanay, Jeffrey A Esq RENEWAL40Xuxue Feng
1018Darci F MaletJapan2026-08-19Chemel, James L Cpa RENEWAL22Onyama Limba
1019Arvin P CaldareraBrazil2026-08-16Morlong Associates QUALIFIED83Elwin Sharvill
1020Stacey Z MacleadSpain2026-08-15Chemel, James L Cpa UNQUALIFIED87Xuxue Feng
1021Izzy T DarakjyBrazil2026-08-29Dorl, James J Esq QUALIFIED76Bernardo Dominic
1022Sinclair P GarufiFrance2026-08-02Rangoni Of Florence NEGOTIATION52Elwin Sharvill
1023Octavia V FerenczUnited Kingdom2026-08-26Truhlar And Truhlar Attys NEGOTIATION29Anna Fali
1024Aruna K OldroydRussia2026-08-10Dorl, James J Esq UNQUALIFIED13Elwin Sharvill
1025Stacey W PaprockiGermany2026-08-11Feltz Printing Service NEGOTIATION99Bernardo Dominic
1026Aruna Z FlosiJapan2026-08-06Feltz Printing Service RENEWAL58Ioni Bowcher
1027Jefferson D GarufiIndia2026-08-06Chapman, Ross E Esq PROPOSAL37Elwin Sharvill
1028Izzy W SaylorsUnited Kingdom2026-08-14Commercial Press QUALIFIED50Xuxue Feng
1029Arvin F NickaCanada2026-08-05Chanay, Jeffrey A Esq UNQUALIFIED38Xuxue Feng
1030Kaitlin W BowleyFrance2026-08-24Dorl, James J Esq PROPOSAL60Stephen Shaw
1031Sinclair W FigeroaIndia2026-08-30Buckley Miller Wright RENEWAL55Onyama Limba
1032Murillo V MarrierSpain2026-08-25Chanay, Jeffrey A Esq RENEWAL5Amy Elsner
1033Jennifer T SlusarskiArgentina2026-08-12Printing Dimensions QUALIFIED74Xuxue Feng
1034Maisha Q GarufiFrance2026-08-19Chemel, James L Cpa NEW52Elwin Sharvill
1035Aika I PerinFrance2026-08-13Chemel, James L Cpa RENEWAL88Anna Fali
1036Morrow B RutaUnited Kingdom2026-08-19Benton, John B Jr RENEWAL28Stephen Shaw
1037Kaitlin S SchemmerArgentina2026-08-15Feiner Bros NEW78Anna Fali
1038Rodrigues K PoquetteUnited Kingdom2026-08-19King, Christopher A Esq QUALIFIED56Bernardo Dominic
1039Antonio V RutaCanada2026-08-07Chemel, James L Cpa QUALIFIED54Ioni Bowcher
1040Kadeem S StensethUnited Kingdom2026-08-27Benton, John B Jr NEGOTIATION2Elwin Sharvill
1041Julie Y FerenczBrazil2026-08-12Chapman, Ross E Esq UNQUALIFIED20Stephen Shaw
1042James I PerinRussia2026-08-13Rangoni Of Florence NEGOTIATION10Ioni Bowcher
1043Ivar J TollnerBrazil2026-08-15Rousseaux, Michael Esq PROPOSAL27Ioni Bowcher
1044Claire W SchemmerRussia2026-08-13Feltz Printing Service UNQUALIFIED92Elwin Sharvill
1045Misaki K MacleadIndia2026-08-12Benton, John B Jr NEGOTIATION53Xuxue Feng
1046Nicolas G FigeroaItaly2026-08-12King, Christopher A Esq NEGOTIATION68Stephen Shaw
1047Stacey L KuskoJapan2026-08-11Benton, John B Jr NEGOTIATION93Bernardo Dominic
1048Ricardo U KolmetzRussia2026-08-30Feltz Printing Service NEGOTIATION46Ioni Bowcher
1049Maisha D StensethJapan2026-08-15Buckley Miller Wright UNQUALIFIED19Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Octavia E KolmetzCanadaXuxue Feng UNQUALIFIED
Adams T GlickRussiaElwin Sharvill QUALIFIED
Mayumi M GarufiAustraliaAnna Fali NEGOTIATION
James F SaylorsUnited KingdomElwin Sharvill NEW
Leja P MaletFranceAsiya Javayant NEGOTIATION
Aditya O PaprockiRussiaXuxue Feng NEGOTIATION
Izzy E CampainJapanAsiya Javayant PROPOSAL
Tony G ShinkoBrazilXuxue Feng NEGOTIATION
Murillo T ButtJapanAmy Elsner UNQUALIFIED
Faith H BriddickFranceElwin Sharvill PROPOSAL
Jefferson X RulapaughBrazilElwin Sharvill UNQUALIFIED
Adams L VenereUnited KingdomIvan Magalhaes NEW
Morrow W GillianJapanElwin Sharvill UNQUALIFIED
Clifford E FigeroaCanadaIvan Magalhaes UNQUALIFIED
Adams F KolmetzRussiaOnyama Limba QUALIFIED
Maisha W SlusarskiSpainAmy Elsner RENEWAL
Ivar B CampainFranceElwin Sharvill UNQUALIFIED
Claire D KolmetzGermanyOnyama Limba NEW
Maisha N NickaAustraliaElwin Sharvill NEW
Silvio M WhobreyItalyElwin Sharvill NEGOTIATION
Kadeem X SchemmerIndiaIoni Bowcher NEW
Munro A OstroskyFranceBernardo Dominic RENEWAL
Salvatore S GlickSpainElwin Sharvill QUALIFIED
Misaki V InouyeArgentinaAmy Elsner RENEWAL
Smith H BriddickFranceAnna Fali NEW
Maria O NestleCanadaAsiya Javayant PROPOSAL
Isabel A BologniaArgentinaAmy Elsner NEGOTIATION
Leon G CampainGermanyOnyama Limba RENEWAL
Ricardo L IturbideIndiaAmy Elsner UNQUALIFIED
Juan W VocelkaSpainStephen Shaw NEGOTIATION
Kadeem N GillianJapanAnna Fali NEW
Kaitlin G GauchoJapanStephen Shaw QUALIFIED
Ivar P KuskoSpainXuxue Feng RENEWAL
Misaki F MorascaItalyAsiya Javayant RENEWAL
Isabel I VenereCanadaAnna Fali PROPOSAL
Nicolas D CaudyRussiaAsiya Javayant UNQUALIFIED
Leja Q MacleadBrazilAmy Elsner NEW
Cody K FollerGermanyAnna Fali NEGOTIATION
Aika W GauchoRussiaElwin Sharvill RENEWAL
Aruna S TollnerCanadaBernardo Dominic NEW
Kadeem Q KuskoSpainIoni Bowcher UNQUALIFIED
Nicolas Q MarrierSpainBernardo Dominic NEW
Cody H RoysterIndiaAnna Fali RENEWAL
David Q CaudySpainAnna Fali NEW
Morrow A WieserFranceAnna Fali NEW
Ricardo Q ButtGermanyIvan Magalhaes QUALIFIED
Aditya C ButtBrazilAsiya Javayant NEW
Aruna L WaycottUnited KingdomIoni Bowcher NEGOTIATION
Octavia Y FollerJapanStephen Shaw PROPOSAL
Sinclair C SlusarskiArgentinaOnyama Limba PROPOSAL
Frozen Columns
Name
Mujtaba G Oldroyd
Munro L Poquette
Jefferson F Whobrey
Maisha T Schemmer
Alejandro C Shinko
Tony R Amigon
Cody Y Oldroyd
Tony U Maclead
Jones W Maclead
Octavia U Ostrosky
Leja T Ostrosky
Kaitlin R Campain
Chavez Y Perin
Darci H Perin
Maisha G Saylors
Misaki K Kolmetz
Jeanfrancois U Schemmer
Darci H Butt
Wickens B Vocelka
Munro K Shinko
Emily R Inouye
Leja D Gaucho
Ricardo X Waycott
Izzy Q Kusko
Aditya F Stockham
Kaitlin I Amigon
Sinclair L Schemmer
Greenwood D Tollner
Sinclair C Tollner
Jeanfrancois F Amigon
Murillo O Poquette
Kadeem E Chui
Costa H Stockham
Francesco Y Gillian
Maria B Wieser
Maisha A Butt
Octavia P Iturbide
Alejandro E Flosi
Nicolas Y Oldroyd
Misaki K Stockham
Aruna G Iturbide
Silvio W Waycott
Cody R Garufi
Nicolas E Stockham
Aditya Z Paprocki
Jefferson F Butt
James B Butt
Juan R Butt
Ricardo O Venere
Chavez M Gaucho
IdCountryDate
1000Canada2026-08-11
1001Germany2026-08-26
1002France2026-08-16
1003Argentina2026-08-14
1004Argentina2026-08-13
1005Canada2026-08-11
1006Brazil2026-08-13
1007Brazil2026-08-23
1008India2026-08-18
1009Australia2026-08-30
1010Australia2026-08-19
1011Brazil2026-08-28
1012Brazil2026-08-20
1013Spain2026-08-14
1014India2026-08-11
1015Italy2026-08-04
1016Canada2026-08-23
1017Argentina2026-08-21
1018Japan2026-08-03
1019France2026-08-13
1020United Kingdom2026-08-13
1021Germany2026-08-07
1022Argentina2026-08-03
1023India2026-08-07
1024Germany2026-08-26
1025Australia2026-08-06
1026India2026-08-21
1027Russia2026-08-02
1028Japan2026-08-30
1029Japan2026-08-17
1030India2026-08-14
1031Brazil2026-08-10
1032Germany2026-08-07
1033Argentina2026-08-15
1034Russia2026-08-26
1035Canada2026-08-02
1036Australia2026-08-20
1037India2026-08-05
1038Germany2026-08-16
1039Australia2026-08-21
1040Brazil2026-08-30
1041Germany2026-08-21
1042France2026-08-23
1043Canada2026-08-11
1044Spain2026-08-15
1045Australia2026-08-02
1046Canada2026-08-03
1047Brazil2026-08-28
1048Canada2026-08-27
1049Germany2026-08-28

On-Demand Data

NameIdCountryDate
Munro I Maclead1000Brazil2026-08-13
Aruna D Garufi1001Germany2026-08-12
Smith W Doe1002Canada2026-08-13
Juan R Foller1003Russia2026-08-13
Ashley T Schemmer1004France2026-08-18
Izzy H Vocelka1005United Kingdom2026-08-24
Chavez R Iturbide1006Canada2026-08-15
Silvio X Tollner1007Canada2026-08-17
Cody F Ferencz1008Spain2026-08-04
Mujtaba X Doe1009United Kingdom2026-08-22
Leja T Whobrey1010Argentina2026-08-14
Ivar S Stenseth1011Canada2026-08-25
Francesco Y Nestle1012United Kingdom2026-08-17
Jones N Butt1013France2026-08-14
Jones V Briddick1014India2026-08-14
Isabel R Inouye1015Argentina2026-08-02
James S Saylors1016Russia2026-08-08
Jennifer X Royster1017Italy2026-08-07
Silvio X Figeroa1018United Kingdom2026-08-13
Murillo N Stenseth1019India2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia O FigeroaJapanOnyama Limba UNQUALIFIED
Izzy N ButtFranceAmy Elsner QUALIFIED
Emily B AlbaresItalyElwin Sharvill RENEWAL
Octavia T KolmetzGermanyIvan Magalhaes NEGOTIATION
Ivar E SergiArgentinaBernardo Dominic UNQUALIFIED
Maria E KolmetzRussiaAsiya Javayant PROPOSAL
Misaki K CaldareraRussiaAmy Elsner UNQUALIFIED
Greenwood E DoeAustraliaIvan Magalhaes QUALIFIED
Kaitlin I OstroskyUnited KingdomAmy Elsner NEGOTIATION
Wickens H CaudyFranceIoni Bowcher NEGOTIATION
Chavez T MaletItalyAnna Fali NEGOTIATION
Antonio C RimFranceBernardo Dominic NEGOTIATION
Maria L ChuiJapanOnyama Limba UNQUALIFIED
Mayumi W PerinUnited KingdomBernardo Dominic UNQUALIFIED
Rodrigues N VenereCanadaXuxue Feng UNQUALIFIED
Claire Z KolmetzGermanyBernardo Dominic NEW
Munro N WieserRussiaIvan Magalhaes RENEWAL
David K BriddickFranceAsiya Javayant NEGOTIATION
Munro I InouyeUnited KingdomOnyama Limba QUALIFIED
Julie E DilliardCanadaIoni Bowcher NEW
Octavia F SergiItalyIoni Bowcher NEW
Sinclair R StensethItalyElwin Sharvill PROPOSAL
Arvin C OstroskyJapanIoni Bowcher QUALIFIED
Costa C MarrierRussiaBernardo Dominic QUALIFIED
Ivar J ChuiCanadaXuxue Feng PROPOSAL
Salvatore S OldroydBrazilStephen Shaw PROPOSAL
Emily F WhobreyIndiaAmy Elsner NEGOTIATION
Darci O TollnerJapanBernardo Dominic UNQUALIFIED
Costa E FlosiFranceIoni Bowcher RENEWAL
Mayumi A GillianGermanyIoni Bowcher NEW
David J BriddickAustraliaAmy Elsner PROPOSAL
Ashley R DilliardArgentinaStephen Shaw PROPOSAL
Darci R GillianAustraliaElwin Sharvill UNQUALIFIED
Mujtaba P IturbideIndiaStephen Shaw NEGOTIATION
Morrow G PaprockiArgentinaAnna Fali NEGOTIATION
Jefferson K CampainItalyAnna Fali QUALIFIED
Kaitlin O WieserGermanyStephen Shaw NEW
Aruna X GillianGermanyAsiya Javayant RENEWAL
James X DarakjyAustraliaXuxue Feng NEW
Costa P FlosiArgentinaAsiya Javayant NEGOTIATION

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