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
Francesco S PoquetteIndiaAnna Fali UNQUALIFIED
Antonio H KuskoIndiaXuxue Feng NEGOTIATION
Jennifer I PoquetteArgentinaXuxue Feng NEW
Tony D OstroskyArgentinaBernardo Dominic RENEWAL
Deepesh B KolmetzFranceXuxue Feng NEW
Wickens Q WhobreyBrazilXuxue Feng NEGOTIATION
Costa A NickaJapanXuxue Feng QUALIFIED
Kadeem E AlbaresJapanIvan Magalhaes UNQUALIFIED
Jeanfrancois Z MaletCanadaIvan Magalhaes UNQUALIFIED
Mayumi Y MarrierFranceAmy Elsner PROPOSAL
Aika L PaprockiFranceXuxue Feng RENEWAL
Ricardo E WaycottBrazilAsiya Javayant UNQUALIFIED
Rodrigues C BriddickAustraliaXuxue Feng NEGOTIATION
Isabel L MaletUnited KingdomAsiya Javayant PROPOSAL
Kadeem P BologniaIndiaAnna Fali UNQUALIFIED
Rodrigues M CaudyUnited KingdomIvan Magalhaes QUALIFIED
Johnson Z WieserArgentinaXuxue Feng QUALIFIED
Silvio L FollerIndiaBernardo Dominic RENEWAL
Smith P KolmetzFranceIoni Bowcher NEGOTIATION
Jones W WaycottJapanIvan Magalhaes UNQUALIFIED
Jennifer E NestleGermanyBernardo Dominic NEW
Aditya K RimAustraliaAmy Elsner NEGOTIATION
Aruna P KuskoRussiaAnna Fali RENEWAL
Greenwood K OldroydGermanyElwin Sharvill NEW
Emily B AmigonBrazilIvan Magalhaes PROPOSAL
Darci D BologniaIndiaStephen Shaw RENEWAL
Julie F VocelkaJapanOnyama Limba NEGOTIATION
Jennifer R PoquetteIndiaAsiya Javayant PROPOSAL
Leon W DoeJapanAsiya Javayant NEGOTIATION
Wickens S GlickAustraliaIoni Bowcher QUALIFIED
Mayumi H ButtItalyStephen Shaw RENEWAL
Juan B BriddickFranceIoni Bowcher RENEWAL
Kaitlin A GillianUnited KingdomIvan Magalhaes NEW
Ricardo F RimAustraliaBernardo Dominic NEGOTIATION
Jefferson R SchemmerCanadaStephen Shaw QUALIFIED
David Q SlusarskiJapanElwin Sharvill UNQUALIFIED
Deepesh I SergiSpainIoni Bowcher QUALIFIED
Salvatore E FollerCanadaStephen Shaw QUALIFIED
Ricardo K DoeUnited KingdomXuxue Feng PROPOSAL
Claire O DilliardSpainElwin Sharvill QUALIFIED
Tony T PoquetteUnited KingdomAmy Elsner NEGOTIATION
Smith I PoquetteSpainIvan Magalhaes QUALIFIED
Wickens O MaletIndiaAnna Fali NEGOTIATION
Wickens X NickaArgentinaElwin Sharvill QUALIFIED
Costa T FlosiGermanyAnna Fali UNQUALIFIED
Mujtaba A OldroydCanadaIvan Magalhaes UNQUALIFIED
Emily N KuskoFranceStephen Shaw PROPOSAL
Arvin K BowleyAustraliaIoni Bowcher NEW
Maria I ChuiSpainAsiya Javayant PROPOSAL
Juan J WhobreyFranceXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo F TollnerIndiaAnna Fali PROPOSAL
Wickens Y FlosiJapanAnna Fali UNQUALIFIED
Aditya L PoquetteGermanyIoni Bowcher UNQUALIFIED
James V KolmetzCanadaStephen Shaw PROPOSAL
Maria U BologniaGermanyBernardo Dominic RENEWAL
Ricardo W CaldareraUnited KingdomOnyama Limba UNQUALIFIED
Claire S ShinkoFranceBernardo Dominic UNQUALIFIED
Jeanfrancois Q FlosiJapanOnyama Limba NEGOTIATION
Morrow O VocelkaRussiaXuxue Feng RENEWAL
James P InouyeBrazilElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria G StockhamJapan2024-05-23Feltz Printing Service NEGOTIATION60Elwin Sharvill
1001Munro Z IturbideRussia2024-06-04Chanay, Jeffrey A Esq PROPOSAL95Amy Elsner
1002Morrow Q OstroskyIndia2024-05-26Morlong Associates RENEWAL15Ioni Bowcher
1003Ivar M OldroydSpain2024-06-01Benton, John B Jr NEGOTIATION25Elwin Sharvill
1004Murillo A IturbideAustralia2024-06-11Dorl, James J Esq QUALIFIED47Elwin Sharvill
1005Mayumi I StensethArgentina2024-05-30King, Christopher A Esq QUALIFIED97Xuxue Feng
1006Rodrigues H SaylorsItaly2024-05-21Feiner Bros NEW96Ioni Bowcher
1007Aditya Z KuskoBrazil2024-05-22Buckley Miller Wright NEGOTIATION4Bernardo Dominic
1008Ivar K MaletJapan2024-05-23Truhlar And Truhlar Attys QUALIFIED22Bernardo Dominic
1009Mayumi L NickaUnited Kingdom2024-05-23Morlong Associates PROPOSAL8Bernardo Dominic
1010Murillo F StockhamJapan2024-06-05Feltz Printing Service PROPOSAL31Amy Elsner
1011Stacey K SaylorsGermany2024-05-30Morlong Associates NEW67Xuxue Feng
1012Leon E ButtIndia2024-05-20Commercial Press NEGOTIATION62Bernardo Dominic
1013Isabel P KolmetzGermany2024-06-01Chapman, Ross E Esq UNQUALIFIED32Onyama Limba
1014Jefferson C PoquetteFrance2024-05-31Chapman, Ross E Esq UNQUALIFIED37Xuxue Feng
1015Cody Q GauchoFrance2024-06-13Chanay, Jeffrey A Esq UNQUALIFIED85Onyama Limba
1016Smith S MaletIndia2024-05-18Printing Dimensions PROPOSAL91Anna Fali
1017Adams E AlbaresItaly2024-05-20Chemel, James L Cpa PROPOSAL85Amy Elsner
1018James K CampainAustralia2024-05-26Printing Dimensions QUALIFIED7Bernardo Dominic
1019Salvatore X WaycottFrance2024-05-22Commercial Press PROPOSAL99Onyama Limba
1020Tony K StockhamFrance2024-05-27Feiner Bros PROPOSAL48Stephen Shaw
1021Darci H KuskoRussia2024-06-11Chanay, Jeffrey A Esq RENEWAL19Ivan Magalhaes
1022Smith N OldroydAustralia2024-06-10Chapman, Ross E Esq NEW4Ioni Bowcher
1023Cody S PoquetteItaly2024-05-20Feltz Printing Service PROPOSAL75Bernardo Dominic
1024Nicolas Z VocelkaGermany2024-06-11Morlong Associates UNQUALIFIED10Anna Fali
1025Mujtaba I MarrierUnited Kingdom2024-06-02Benton, John B Jr NEW51Asiya Javayant
1026Aika G WaycottArgentina2024-06-12Truhlar And Truhlar Attys NEW20Stephen Shaw
1027Misaki Q CampainJapan2024-06-12Commercial Press NEGOTIATION71Ivan Magalhaes
1028Maria A CaudyRussia2024-05-28Dorl, James J Esq UNQUALIFIED80Anna Fali
1029Mayumi Q PaprockiAustralia2024-05-21Commercial Press QUALIFIED72Bernardo Dominic
1030Octavia I DoeIndia2024-06-04Rangoni Of Florence PROPOSAL11Onyama Limba
1031Nicolas P GauchoUnited Kingdom2024-06-01Feltz Printing Service NEGOTIATION8Amy Elsner
1032Stacey N GarufiFrance2024-06-08Rangoni Of Florence NEGOTIATION27Ivan Magalhaes
1033Emily G SlusarskiUnited Kingdom2024-05-15Buckley Miller Wright UNQUALIFIED86Elwin Sharvill
1034Rodrigues T StockhamUnited Kingdom2024-06-07Chapman, Ross E Esq PROPOSAL83Bernardo Dominic
1035James P ChuiCanada2024-06-07Feiner Bros RENEWAL42Asiya Javayant
1036Faith B SaylorsItaly2024-06-09Chemel, James L Cpa UNQUALIFIED41Xuxue Feng
1037Ricardo K IturbideAustralia2024-05-27Buckley Miller Wright NEGOTIATION34Xuxue Feng
1038Costa O RimSpain2024-06-13Chemel, James L Cpa PROPOSAL42Amy Elsner
1039Stacey F ButtSpain2024-06-08Chapman, Ross E Esq NEGOTIATION47Stephen Shaw
1040Sinclair M ButtCanada2024-05-24Commercial Press NEW93Elwin Sharvill
1041Mujtaba E CaudyIndia2024-05-30Truhlar And Truhlar Attys RENEWAL59Ivan Magalhaes
1042Stacey L RulapaughRussia2024-05-22Benton, John B Jr NEW6Anna Fali
1043Jeanfrancois M FigeroaJapan2024-05-17Benton, John B Jr NEGOTIATION75Ivan Magalhaes
1044Wickens V DoeUnited Kingdom2024-06-08Chemel, James L Cpa UNQUALIFIED84Amy Elsner
1045Johnson H VenereBrazil2024-06-07Benton, John B Jr NEW98Asiya Javayant
1046Jennifer A NickaJapan2024-05-15Benton, John B Jr QUALIFIED49Onyama Limba
1047Jefferson B GarufiGermany2024-05-25Buckley Miller Wright RENEWAL33Bernardo Dominic
1048Jeanfrancois I NestleArgentina2024-06-05Chemel, James L Cpa PROPOSAL92Xuxue Feng
1049Claire E WaycottJapan2024-06-08Chanay, Jeffrey A Esq NEGOTIATION52Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily C OldroydArgentinaBernardo Dominic NEGOTIATION
Maisha Q DoeCanadaAmy Elsner UNQUALIFIED
Jefferson F VenereFranceBernardo Dominic PROPOSAL
Darci B GarufiCanadaAsiya Javayant UNQUALIFIED
Smith V AlbaresJapanBernardo Dominic QUALIFIED
Aika U KuskoGermanyAnna Fali PROPOSAL
Costa G SaylorsItalyElwin Sharvill RENEWAL
Alejandro U PerinIndiaAnna Fali UNQUALIFIED
Mujtaba C SlusarskiItalyIoni Bowcher NEGOTIATION
Misaki Q RoysterAustraliaStephen Shaw RENEWAL
Darci M BologniaSpainIoni Bowcher NEGOTIATION
Ashley Z SlusarskiJapanIoni Bowcher RENEWAL
Julie K RulapaughBrazilStephen Shaw UNQUALIFIED
Leon Y MaletBrazilIvan Magalhaes NEW
Leja H MarrierAustraliaIvan Magalhaes NEGOTIATION
Cody J WaycottFranceBernardo Dominic RENEWAL
Murillo T SaylorsGermanyBernardo Dominic RENEWAL
Salvatore M WieserJapanOnyama Limba PROPOSAL
Adams Q KolmetzItalyStephen Shaw UNQUALIFIED
Jefferson Y RulapaughAustraliaOnyama Limba PROPOSAL
Ricardo U WaycottGermanyAnna Fali UNQUALIFIED
James O SergiUnited KingdomAmy Elsner PROPOSAL
Leon G IturbideJapanBernardo Dominic UNQUALIFIED
Rodrigues Q AmigonIndiaBernardo Dominic UNQUALIFIED
Nicolas F NickaRussiaStephen Shaw NEGOTIATION
Cody H ShinkoBrazilElwin Sharvill PROPOSAL
Mayumi R DoeUnited KingdomBernardo Dominic NEGOTIATION
Adams S MacleadCanadaXuxue Feng UNQUALIFIED
Maria B RutaGermanyIvan Magalhaes UNQUALIFIED
Wickens S IturbideArgentinaStephen Shaw RENEWAL
Aruna M GauchoAustraliaIvan Magalhaes NEW
Greenwood Z RulapaughSpainBernardo Dominic UNQUALIFIED
Emily I PoquetteCanadaXuxue Feng PROPOSAL
Izzy S MacleadCanadaBernardo Dominic NEW
Emily S ChuiAustraliaAmy Elsner RENEWAL
Aruna H WaycottGermanyElwin Sharvill NEGOTIATION
Mayumi N MarrierCanadaIvan Magalhaes UNQUALIFIED
Stacey Q NickaCanadaIoni Bowcher UNQUALIFIED
Wickens V SaylorsFranceStephen Shaw PROPOSAL
Silvio Q FollerItalyOnyama Limba RENEWAL
Cody Q GarufiCanadaIvan Magalhaes RENEWAL
Jeanfrancois V ChuiArgentinaAsiya Javayant PROPOSAL
Wickens G GauchoCanadaAmy Elsner PROPOSAL
Faith C VenereFranceStephen Shaw PROPOSAL
Jones N DilliardAustraliaOnyama Limba QUALIFIED
Jennifer D GillianAustraliaAsiya Javayant QUALIFIED
Sinclair X FollerCanadaStephen Shaw RENEWAL
Octavia L IturbideIndiaAnna Fali UNQUALIFIED
Octavia V StensethIndiaAmy Elsner NEGOTIATION
Jennifer F KolmetzGermanyOnyama Limba PROPOSAL
Frozen Columns
Name
Greenwood I Morasca
Ivar F Stenseth
Juan M Rulapaugh
Ivar B Ferencz
Rodrigues D Darakjy
Cody Q Chui
Jeanfrancois E Paprocki
Emily J Paprocki
Adams N Malet
Leja P Whobrey
Misaki Y Flosi
Adams K Caudy
Mayumi K Malet
Clifford M Inouye
Deepesh E Kusko
Emily C Waycott
Morrow Y Slusarski
Darci F Bolognia
James E Slusarski
Aruna T Perin
Adams G Butt
Darci S Paprocki
Jones C Albares
Isabel A Doe
Antonio K Ruta
Jones U Nestle
Adams S Iturbide
Juan N Iturbide
Julie X Flosi
Octavia O Butt
James L Gillian
Ivar L Briddick
Izzy G Malet
Cody L Stockham
Isabel Y Schemmer
Stacey A Waycott
Morrow F Ruta
Maisha D Stockham
Leja Q Foller
Julie G Caudy
Maria Z Malet
Arvin N Briddick
Darci C Albares
Ivar H Tollner
Aruna R Marrier
Clifford Z Foller
Murillo H Foller
Stacey C Maclead
Adams B Garufi
Nicolas A Ferencz
IdCountryDate
1000Australia2024-05-17
1001United Kingdom2024-05-31
1002Spain2024-06-09
1003Japan2024-06-03
1004Japan2024-06-05
1005Spain2024-05-24
1006Germany2024-06-05
1007United Kingdom2024-05-30
1008United Kingdom2024-06-09
1009France2024-06-02
1010Australia2024-05-23
1011United Kingdom2024-05-15
1012India2024-06-01
1013United Kingdom2024-05-19
1014Brazil2024-06-08
1015Spain2024-05-27
1016Argentina2024-05-23
1017France2024-05-31
1018France2024-06-02
1019Argentina2024-06-13
1020Spain2024-05-29
1021Argentina2024-05-30
1022Brazil2024-06-10
1023Spain2024-05-22
1024Russia2024-05-20
1025Brazil2024-06-03
1026India2024-05-28
1027Canada2024-06-06
1028Australia2024-06-01
1029India2024-05-30
1030Spain2024-06-11
1031Australia2024-06-10
1032India2024-05-29
1033Germany2024-05-18
1034Australia2024-05-16
1035France2024-05-21
1036France2024-05-18
1037Canada2024-06-11
1038Australia2024-05-24
1039India2024-05-22
1040Brazil2024-05-18
1041Argentina2024-05-26
1042Japan2024-06-11
1043India2024-06-08
1044United Kingdom2024-05-19
1045United Kingdom2024-06-09
1046Russia2024-05-16
1047Brazil2024-05-29
1048Australia2024-05-28
1049Russia2024-06-07

On-Demand Data

NameIdCountryDate
Leja A Waycott1000Germany2024-06-02
Emily E Dilliard1001France2024-06-09
Claire Y Ruta1002France2024-05-19
Juan J Malet1003Argentina2024-05-25
Izzy C Rim1004Argentina2024-06-13
Jones F Malet1005Canada2024-06-09
Morrow Q Garufi1006France2024-05-21
Aruna E Waycott1007Brazil2024-05-27
Mujtaba R Gaucho1008Argentina2024-06-13
Darci S Foller1009Argentina2024-06-12
Leon G Bolognia1010Spain2024-05-19
Ricardo J Campain1011Italy2024-06-06
Clifford Y Royster1012Brazil2024-05-18
Clifford O Kolmetz1013United Kingdom2024-06-02
Julie R Nestle1014India2024-05-23
Juan M Figeroa1015United Kingdom2024-06-07
Kadeem B Kolmetz1016Germany2024-05-24
Aruna M Kolmetz1017United Kingdom2024-06-07
Jeanfrancois N Gillian1018Japan2024-06-09
Jennifer D Nicka1019Germany2024-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie F WhobreySpainIvan Magalhaes UNQUALIFIED
Ricardo W IturbideIndiaElwin Sharvill NEW
Aruna Q GauchoUnited KingdomAmy Elsner NEGOTIATION
Aika L GlickUnited KingdomElwin Sharvill PROPOSAL
Greenwood Y VenereJapanBernardo Dominic RENEWAL
Francesco Q MarrierGermanyOnyama Limba RENEWAL
Jones Y GillianGermanyStephen Shaw RENEWAL
Octavia N MarrierArgentinaXuxue Feng UNQUALIFIED
Arvin H DarakjyRussiaIoni Bowcher NEW
Maria Y SchemmerGermanyOnyama Limba UNQUALIFIED
Tony X RutaIndiaXuxue Feng QUALIFIED
Arvin Z RulapaughIndiaXuxue Feng RENEWAL
Morrow U CaudyItalyAsiya Javayant QUALIFIED
Jennifer R BowleyUnited KingdomStephen Shaw NEGOTIATION
Deepesh K MarrierGermanyAsiya Javayant QUALIFIED
Isabel B MaletUnited KingdomOnyama Limba QUALIFIED
Jeanfrancois K StensethSpainIvan Magalhaes UNQUALIFIED
Jennifer W NestleArgentinaIoni Bowcher RENEWAL
Kaitlin A NestleSpainAnna Fali NEGOTIATION
Ivar W AmigonArgentinaElwin Sharvill NEGOTIATION
Jennifer U FerenczUnited KingdomIoni Bowcher QUALIFIED
Ashley U MarrierBrazilAmy Elsner RENEWAL
Antonio T PaprockiFranceOnyama Limba NEW
Maria V BowleyAustraliaAmy Elsner NEW
David W KolmetzItalyAsiya Javayant PROPOSAL
Octavia Z MacleadItalyAnna Fali UNQUALIFIED
Stacey D CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Francesco I BologniaGermanyIvan Magalhaes UNQUALIFIED
Clifford H BowleyFranceAnna Fali NEGOTIATION
Deepesh G RoysterRussiaOnyama Limba UNQUALIFIED
Sinclair M RulapaughCanadaBernardo Dominic QUALIFIED
Darci I WaycottBrazilOnyama Limba RENEWAL
Costa F ChuiItalyIvan Magalhaes PROPOSAL
Misaki Q KolmetzArgentinaAnna Fali RENEWAL
Kadeem A RulapaughGermanyElwin Sharvill NEGOTIATION
Julie B BriddickIndiaAnna Fali NEGOTIATION
Isabel N WaycottItalyXuxue Feng NEGOTIATION
Jennifer L NickaGermanyAnna Fali QUALIFIED
Arvin T NestleUnited KingdomXuxue Feng RENEWAL
Maisha Y InouyeFranceOnyama Limba QUALIFIED

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