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
Nicolas K MaletGermanyXuxue Feng QUALIFIED
Stacey T VocelkaUnited KingdomXuxue Feng QUALIFIED
Greenwood C FlosiCanadaOnyama Limba UNQUALIFIED
Sinclair P GauchoArgentinaOnyama Limba PROPOSAL
Antonio W VenereUnited KingdomElwin Sharvill QUALIFIED
James S BologniaAustraliaStephen Shaw PROPOSAL
Jefferson K GillianAustraliaAnna Fali RENEWAL
Julie U MorascaJapanAmy Elsner UNQUALIFIED
Emily F FollerRussiaXuxue Feng PROPOSAL
Mujtaba L OstroskyUnited KingdomStephen Shaw QUALIFIED
Wickens V MorascaFranceXuxue Feng NEGOTIATION
Francesco M BowleyFranceXuxue Feng PROPOSAL
Aruna V DilliardItalyBernardo Dominic RENEWAL
Aruna O MacleadFranceAsiya Javayant UNQUALIFIED
Isabel C KolmetzItalyAmy Elsner PROPOSAL
Misaki D WaycottBrazilXuxue Feng UNQUALIFIED
Costa I FollerRussiaXuxue Feng NEW
Aika C WieserIndiaXuxue Feng RENEWAL
Ricardo S CaudyCanadaAsiya Javayant QUALIFIED
Mujtaba I PoquetteGermanyAnna Fali QUALIFIED
Faith O SlusarskiFranceAmy Elsner RENEWAL
Morrow U PoquetteFranceAnna Fali NEW
Aruna Z DoeUnited KingdomStephen Shaw UNQUALIFIED
Wickens C BowleySpainElwin Sharvill UNQUALIFIED
Salvatore G PerinIndiaBernardo Dominic NEW
Faith I NickaRussiaOnyama Limba PROPOSAL
Maisha B NickaIndiaXuxue Feng NEGOTIATION
Isabel Y FlosiIndiaBernardo Dominic NEW
David D NestleSpainAmy Elsner PROPOSAL
Cody O SlusarskiSpainAmy Elsner NEGOTIATION
Jefferson Q ButtItalyStephen Shaw UNQUALIFIED
David Y PaprockiItalyXuxue Feng NEGOTIATION
Mayumi E AmigonArgentinaIvan Magalhaes UNQUALIFIED
Maria N NestleBrazilIvan Magalhaes PROPOSAL
Deepesh O StockhamJapanElwin Sharvill NEGOTIATION
Morrow X ShinkoItalyAmy Elsner UNQUALIFIED
Smith M BowleyJapanOnyama Limba NEGOTIATION
Morrow K RutaJapanIoni Bowcher PROPOSAL
Emily R SaylorsGermanyAmy Elsner NEW
Francesco E BologniaItalyAsiya Javayant QUALIFIED
James O MaletGermanyAsiya Javayant PROPOSAL
Antonio X MacleadAustraliaAmy Elsner QUALIFIED
Jefferson Y ShinkoItalyAnna Fali QUALIFIED
Cody D SlusarskiBrazilAmy Elsner RENEWAL
Kaitlin B OstroskyArgentinaAsiya Javayant UNQUALIFIED
Jefferson D GlickJapanElwin Sharvill UNQUALIFIED
Adams N PaprockiRussiaAsiya Javayant PROPOSAL
Kadeem O FlosiRussiaIoni Bowcher RENEWAL
Adams Y OldroydUnited KingdomAmy Elsner UNQUALIFIED
Ashley T OldroydRussiaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie D VocelkaSpainIvan Magalhaes UNQUALIFIED
Octavia X RutaGermanyAnna Fali UNQUALIFIED
Adams N GarufiItalyOnyama Limba RENEWAL
Jennifer U CaldareraBrazilIoni Bowcher QUALIFIED
Johnson N InouyeFranceIoni Bowcher QUALIFIED
Emily V MaletUnited KingdomOnyama Limba NEGOTIATION
Claire N OldroydCanadaElwin Sharvill UNQUALIFIED
Arvin C StensethItalyAsiya Javayant UNQUALIFIED
Clifford H ButtFranceIvan Magalhaes RENEWAL
Smith E StensethCanadaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois L VenereRussia2024-05-30Morlong Associates NEGOTIATION93Ivan Magalhaes
1001Julie Q FigeroaGermany2024-06-19Chanay, Jeffrey A Esq QUALIFIED8Amy Elsner
1002Arvin T SlusarskiSpain2024-05-26Printing Dimensions UNQUALIFIED4Ivan Magalhaes
1003Leon Z RutaBrazil2024-05-27Truhlar And Truhlar Attys RENEWAL44Ioni Bowcher
1004Octavia R VenereArgentina2024-05-29Rangoni Of Florence NEGOTIATION46Asiya Javayant
1005Jefferson W SaylorsItaly2024-06-15Dorl, James J Esq UNQUALIFIED44Amy Elsner
1006Smith Y FerenczItaly2024-06-02Feltz Printing Service QUALIFIED63Stephen Shaw
1007Greenwood S BologniaUnited Kingdom2024-06-19Truhlar And Truhlar Attys RENEWAL98Elwin Sharvill
1008Costa K BologniaSpain2024-06-03Rangoni Of Florence PROPOSAL4Bernardo Dominic
1009Isabel U PerinGermany2024-06-11Rousseaux, Michael Esq PROPOSAL83Asiya Javayant
1010Wickens Z VocelkaJapan2024-05-29Buckley Miller Wright RENEWAL14Asiya Javayant
1011Deepesh X RimAustralia2024-06-12Printing Dimensions NEW36Anna Fali
1012Claire E MorascaRussia2024-06-14Chemel, James L Cpa UNQUALIFIED86Amy Elsner
1013Claire T StockhamJapan2024-05-30Feltz Printing Service NEGOTIATION47Bernardo Dominic
1014Claire T OldroydIndia2024-05-26Chanay, Jeffrey A Esq NEGOTIATION8Onyama Limba
1015Leon V ButtIndia2024-06-13Feltz Printing Service NEW99Amy Elsner
1016Tony R FigeroaIndia2024-06-21King, Christopher A Esq QUALIFIED81Onyama Limba
1017Rodrigues W RutaCanada2024-06-09Buckley Miller Wright QUALIFIED77Onyama Limba
1018Chavez E BriddickGermany2024-06-20Chemel, James L Cpa NEGOTIATION17Bernardo Dominic
1019Ashley T ChuiIndia2024-06-12Benton, John B Jr RENEWAL40Ivan Magalhaes
1020Nicolas A GillianBrazil2024-06-03Feltz Printing Service NEW9Bernardo Dominic
1021Izzy Z MorascaUnited Kingdom2024-06-08Commercial Press RENEWAL67Onyama Limba
1022Octavia M SaylorsArgentina2024-06-14Feltz Printing Service NEW93Elwin Sharvill
1023Leon T SaylorsGermany2024-06-21Benton, John B Jr NEGOTIATION26Ioni Bowcher
1024Cody K SlusarskiCanada2024-06-08King, Christopher A Esq RENEWAL9Ioni Bowcher
1025Maria E MarrierIndia2024-06-14Dorl, James J Esq QUALIFIED7Ivan Magalhaes
1026Leja Y BowleySpain2024-06-22Commercial Press QUALIFIED71Ivan Magalhaes
1027Morrow T FerenczArgentina2024-06-15King, Christopher A Esq RENEWAL82Bernardo Dominic
1028Morrow S FigeroaUnited Kingdom2024-05-26Chemel, James L Cpa RENEWAL33Elwin Sharvill
1029Isabel W MorascaArgentina2024-06-19Dorl, James J Esq PROPOSAL12Ioni Bowcher
1030Isabel L NickaBrazil2024-06-19Benton, John B Jr NEW5Asiya Javayant
1031Maisha Y DilliardJapan2024-06-18Chemel, James L Cpa QUALIFIED34Bernardo Dominic
1032Nicolas C MarrierCanada2024-06-23Printing Dimensions PROPOSAL17Anna Fali
1033Claire G WieserAustralia2024-06-07Chapman, Ross E Esq QUALIFIED20Xuxue Feng
1034Silvio K MaletRussia2024-05-30Printing Dimensions NEW19Anna Fali
1035Claire J InouyeFrance2024-06-17Dorl, James J Esq UNQUALIFIED36Onyama Limba
1036Octavia N RimSpain2024-06-03Printing Dimensions UNQUALIFIED58Xuxue Feng
1037Darci Q ShinkoAustralia2024-05-29Dorl, James J Esq QUALIFIED56Anna Fali
1038Smith R CaudyArgentina2024-06-05Feiner Bros PROPOSAL12Xuxue Feng
1039Kadeem T GillianAustralia2024-06-23Chanay, Jeffrey A Esq NEW25Onyama Limba
1040Antonio G MarrierBrazil2024-06-10Chemel, James L Cpa NEGOTIATION61Xuxue Feng
1041Nicolas B WhobreyRussia2024-06-02King, Christopher A Esq UNQUALIFIED80Ioni Bowcher
1042Mujtaba E ShinkoUnited Kingdom2024-05-26Chanay, Jeffrey A Esq PROPOSAL55Elwin Sharvill
1043Kaitlin M FigeroaRussia2024-06-10Chemel, James L Cpa PROPOSAL42Bernardo Dominic
1044Aika H DarakjyArgentina2024-06-08Feiner Bros QUALIFIED17Ioni Bowcher
1045Leon R MorascaRussia2024-06-15Benton, John B Jr NEW5Amy Elsner
1046Salvatore G PoquetteFrance2024-06-10Rousseaux, Michael Esq RENEWAL20Elwin Sharvill
1047Stacey R FerenczBrazil2024-06-06Chemel, James L Cpa PROPOSAL85Xuxue Feng
1048Emily D KolmetzUnited Kingdom2024-06-15Commercial Press NEGOTIATION49Elwin Sharvill
1049Jennifer C WieserAustralia2024-05-27Buckley Miller Wright PROPOSAL93Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Smith Y FollerIndiaStephen Shaw PROPOSAL
Kaitlin O IturbideJapanIvan Magalhaes PROPOSAL
Johnson G DarakjySpainIoni Bowcher NEW
Misaki L ButtSpainIoni Bowcher RENEWAL
Morrow L ChuiCanadaAsiya Javayant RENEWAL
Nicolas B StockhamUnited KingdomOnyama Limba RENEWAL
Arvin L IturbideItalyXuxue Feng RENEWAL
Leja B KuskoGermanyXuxue Feng NEW
Greenwood O InouyeFranceElwin Sharvill RENEWAL
Silvio Z MarrierAustraliaIvan Magalhaes PROPOSAL
Alejandro U SergiItalyBernardo Dominic NEGOTIATION
Maisha A StensethJapanStephen Shaw NEW
Jones C ChuiJapanIvan Magalhaes NEW
Adams B PoquetteJapanElwin Sharvill PROPOSAL
Jones R KuskoBrazilXuxue Feng NEGOTIATION
Kaitlin I SlusarskiFranceIvan Magalhaes UNQUALIFIED
Leja I OldroydAustraliaOnyama Limba NEW
Silvio A StensethAustraliaIvan Magalhaes NEGOTIATION
Greenwood W FerenczCanadaIoni Bowcher NEW
Costa D GillianFranceStephen Shaw PROPOSAL
Izzy T OldroydFranceOnyama Limba RENEWAL
Emily M DoeAustraliaBernardo Dominic UNQUALIFIED
Adams D GauchoUnited KingdomAmy Elsner NEW
Alejandro Z AmigonCanadaXuxue Feng PROPOSAL
Chavez I WaycottJapanBernardo Dominic UNQUALIFIED
Nicolas D BologniaUnited KingdomAmy Elsner UNQUALIFIED
Mujtaba L MorascaAustraliaIoni Bowcher PROPOSAL
Smith T AlbaresGermanyAnna Fali QUALIFIED
Antonio D WhobreyGermanyXuxue Feng NEGOTIATION
Jefferson C FerenczItalyAnna Fali NEGOTIATION
Sinclair H NestleGermanyBernardo Dominic NEGOTIATION
Ivar V KuskoCanadaIoni Bowcher UNQUALIFIED
Costa T GauchoFranceAsiya Javayant PROPOSAL
Kadeem O ShinkoRussiaIvan Magalhaes RENEWAL
Salvatore S KuskoItalyBernardo Dominic PROPOSAL
Clifford C StockhamRussiaIoni Bowcher QUALIFIED
Ivar Z CampainAustraliaOnyama Limba UNQUALIFIED
Salvatore U VocelkaSpainAnna Fali UNQUALIFIED
Ashley D MarrierFranceAsiya Javayant NEGOTIATION
Kadeem G FerenczGermanyBernardo Dominic PROPOSAL
Jones Q ButtFranceElwin Sharvill PROPOSAL
Isabel Z PaprockiArgentinaBernardo Dominic UNQUALIFIED
Jones Q SlusarskiJapanIvan Magalhaes UNQUALIFIED
Isabel H SlusarskiIndiaElwin Sharvill QUALIFIED
Francesco Q ChuiItalyIoni Bowcher QUALIFIED
Maria E IturbideRussiaAmy Elsner NEW
Octavia S GauchoCanadaIvan Magalhaes QUALIFIED
Murillo N SlusarskiBrazilAsiya Javayant NEGOTIATION
Johnson R ShinkoCanadaAmy Elsner NEGOTIATION
Clifford N DoeUnited KingdomElwin Sharvill RENEWAL
Frozen Columns
Name
Mujtaba B Royster
Leon Q Darakjy
Costa H Saylors
Kaitlin Y Darakjy
Antonio Y Doe
Ricardo X Flosi
Aditya Q Rulapaugh
Costa P Bolognia
Adams R Schemmer
Jennifer X Stockham
Jeanfrancois F Kusko
Izzy E Nicka
Salvatore X Flosi
Antonio A Vocelka
Maisha P Maclead
Juan T Foller
Rodrigues R Bowley
Claire U Iturbide
Isabel W Caldarera
Aditya J Paprocki
Adams C Paprocki
Sinclair I Doe
Izzy E Maclead
Julie V Kusko
Darci Q Chui
Jefferson B Royster
Maisha W Royster
Rodrigues F Nicka
David J Gaucho
Arvin P Nestle
Clifford J Garufi
Deepesh Q Butt
Juan M Malet
Morrow R Kusko
Silvio W Albares
Jefferson P Kolmetz
Juan G Rulapaugh
Deepesh E Marrier
Jones S Paprocki
Ivar G Butt
Octavia Y Gillian
Juan O Inouye
Ricardo U Darakjy
Aika R Kolmetz
Francesco L Vocelka
Julie S Garufi
Clifford D Stenseth
Mujtaba O Slusarski
Jennifer E Campain
Kaitlin B Stenseth
IdCountryDate
1000Spain2024-06-09
1001India2024-06-21
1002Brazil2024-06-08
1003Italy2024-06-13
1004Argentina2024-06-22
1005Brazil2024-06-09
1006France2024-05-30
1007Australia2024-06-06
1008India2024-06-18
1009Italy2024-06-19
1010Italy2024-06-17
1011Japan2024-06-12
1012India2024-06-13
1013Canada2024-06-20
1014Japan2024-06-18
1015India2024-06-05
1016Australia2024-06-13
1017Italy2024-06-16
1018Russia2024-06-04
1019Brazil2024-06-04
1020Russia2024-05-25
1021Argentina2024-05-27
1022Spain2024-06-05
1023Brazil2024-06-19
1024United Kingdom2024-06-10
1025Spain2024-06-03
1026Italy2024-06-06
1027Brazil2024-06-23
1028Brazil2024-06-01
1029France2024-06-11
1030Italy2024-06-10
1031Italy2024-06-21
1032France2024-06-20
1033United Kingdom2024-06-10
1034Brazil2024-06-18
1035Argentina2024-06-15
1036France2024-05-30
1037Japan2024-06-06
1038Argentina2024-06-08
1039United Kingdom2024-06-09
1040Spain2024-06-16
1041Germany2024-05-28
1042Russia2024-06-07
1043Germany2024-06-19
1044Canada2024-06-16
1045United Kingdom2024-06-05
1046Canada2024-06-10
1047France2024-06-05
1048Spain2024-06-14
1049Australia2024-05-31

On-Demand Data

NameIdCountryDate
Juan A Caldarera1000Canada2024-06-10
Tony K Slusarski1001France2024-06-11
Aditya C Whobrey1002United Kingdom2024-06-08
Leon C Perin1003Brazil2024-06-08
Jefferson A Figeroa1004Russia2024-05-31
Jennifer B Nestle1005Spain2024-06-10
Ricardo S Rulapaugh1006Canada2024-05-29
Greenwood X Sergi1007Argentina2024-06-04
Murillo K Vocelka1008United Kingdom2024-06-22
David J Iturbide1009Russia2024-06-13
Antonio F Kusko1010Japan2024-06-21
Leja H Morasca1011India2024-05-27
Clifford Z Albares1012Argentina2024-06-08
Izzy Q Bolognia1013India2024-06-06
Stacey F Bowley1014Germany2024-05-25
Nicolas F Rim1015Canada2024-06-11
Leja G Ostrosky1016Japan2024-06-22
Julie P Whobrey1017Germany2024-06-22
Jeanfrancois O Sergi1018United Kingdom2024-05-25
Smith P Caldarera1019Brazil2024-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya Z KuskoGermanyBernardo Dominic NEGOTIATION
Misaki Q CaldareraJapanBernardo Dominic PROPOSAL
Faith H WieserIndiaAnna Fali PROPOSAL
Juan Q CaldareraGermanyAsiya Javayant NEGOTIATION
Greenwood M ShinkoJapanBernardo Dominic QUALIFIED
Jefferson W WieserGermanyAsiya Javayant NEW
Octavia V KolmetzIndiaElwin Sharvill RENEWAL
Clifford A FigeroaIndiaBernardo Dominic NEW
Adams G IturbideItalyBernardo Dominic RENEWAL
Mayumi M SlusarskiFranceIvan Magalhaes QUALIFIED
Jennifer I BologniaSpainOnyama Limba RENEWAL
Costa E PoquetteItalyXuxue Feng RENEWAL
Arvin T FlosiRussiaBernardo Dominic RENEWAL
Kadeem Z NickaItalyAsiya Javayant NEGOTIATION
Smith I MarrierGermanyAmy Elsner NEW
Aditya H BowleyIndiaAnna Fali UNQUALIFIED
Rodrigues N MacleadUnited KingdomStephen Shaw RENEWAL
Izzy X SaylorsArgentinaAsiya Javayant UNQUALIFIED
Greenwood D FlosiAustraliaXuxue Feng NEW
Wickens U PoquetteUnited KingdomOnyama Limba NEW
Wickens V MaletRussiaStephen Shaw RENEWAL
Mayumi A PaprockiCanadaAnna Fali RENEWAL
David U TollnerSpainElwin Sharvill UNQUALIFIED
Aruna B AlbaresSpainIvan Magalhaes QUALIFIED
Emily K FollerAustraliaXuxue Feng UNQUALIFIED
Octavia A CaldareraItalyStephen Shaw PROPOSAL
Arvin E FerenczIndiaAmy Elsner NEW
Stacey T GillianGermanyIoni Bowcher PROPOSAL
Murillo R VocelkaBrazilXuxue Feng NEGOTIATION
Nicolas W MaletItalyAsiya Javayant NEW
Greenwood L DoeAustraliaElwin Sharvill RENEWAL
Clifford U OstroskyCanadaBernardo Dominic QUALIFIED
Jennifer O ShinkoGermanyElwin Sharvill NEW
Salvatore P BriddickFranceOnyama Limba QUALIFIED
Deepesh R WieserArgentinaIvan Magalhaes NEW
Jones D BologniaArgentinaIoni Bowcher PROPOSAL
Aditya J RutaCanadaIoni Bowcher PROPOSAL
Darci K FigeroaAustraliaBernardo Dominic QUALIFIED
Leja J DarakjyItalyBernardo Dominic UNQUALIFIED
Stacey I OstroskyCanadaOnyama 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>