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
Maria C PerinCanadaXuxue Feng PROPOSAL
Greenwood R StockhamAustraliaOnyama Limba RENEWAL
Adams O AlbaresIndiaIvan Magalhaes NEGOTIATION
Kadeem U FerenczIndiaAnna Fali NEGOTIATION
Jeanfrancois I BriddickItalyXuxue Feng NEW
Jefferson Q GarufiItalyAsiya Javayant PROPOSAL
Tony C OldroydGermanyStephen Shaw NEGOTIATION
Rodrigues C KolmetzArgentinaAmy Elsner UNQUALIFIED
Julie S PaprockiItalyBernardo Dominic RENEWAL
James K OldroydUnited KingdomOnyama Limba NEGOTIATION
Adams W PaprockiIndiaIvan Magalhaes UNQUALIFIED
Mayumi T AlbaresBrazilOnyama Limba UNQUALIFIED
Maisha Z SergiAustraliaAnna Fali QUALIFIED
Aruna K FlosiRussiaAsiya Javayant NEGOTIATION
Jennifer U OldroydFranceIoni Bowcher QUALIFIED
Juan L InouyeBrazilIoni Bowcher RENEWAL
Greenwood T RoysterBrazilIoni Bowcher NEGOTIATION
Claire A DilliardFranceAsiya Javayant UNQUALIFIED
Maria E MorascaJapanStephen Shaw UNQUALIFIED
Mayumi O ShinkoUnited KingdomAnna Fali UNQUALIFIED
Munro J GarufiItalyAmy Elsner RENEWAL
Maria Q RutaGermanyXuxue Feng NEW
Greenwood G SchemmerJapanIoni Bowcher PROPOSAL
Aruna P SlusarskiAustraliaStephen Shaw PROPOSAL
Morrow W VenereFranceIoni Bowcher RENEWAL
Jefferson R FerenczGermanyIoni Bowcher QUALIFIED
Jones U WhobreySpainIvan Magalhaes UNQUALIFIED
Leon G FerenczJapanBernardo Dominic NEGOTIATION
Aruna Q KuskoArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues L MorascaRussiaAsiya Javayant RENEWAL
Cody Q NestleCanadaIvan Magalhaes NEW
Arvin F StockhamUnited KingdomOnyama Limba NEGOTIATION
Arvin M GillianArgentinaXuxue Feng PROPOSAL
Aruna F OldroydFranceAmy Elsner NEW
Juan X IturbideCanadaStephen Shaw NEW
Ashley C TollnerSpainStephen Shaw UNQUALIFIED
Smith I SergiArgentinaStephen Shaw PROPOSAL
Darci T IturbideUnited KingdomIoni Bowcher NEW
Tony H ButtCanadaXuxue Feng QUALIFIED
Adams C MaletCanadaOnyama Limba UNQUALIFIED
Silvio E AlbaresUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois S FerenczRussiaStephen Shaw PROPOSAL
Jennifer G BologniaJapanOnyama Limba RENEWAL
Rodrigues K OstroskySpainAnna Fali RENEWAL
Silvio M WhobreyRussiaStephen Shaw RENEWAL
Leja I TollnerGermanyXuxue Feng UNQUALIFIED
Sinclair P SlusarskiFranceAmy Elsner RENEWAL
Darci Y SlusarskiIndiaAsiya Javayant QUALIFIED
Sinclair E AmigonBrazilStephen Shaw PROPOSAL
Chavez T ButtJapanAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo I BowleyIndiaIoni Bowcher NEGOTIATION
Francesco Z DarakjyUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois S DarakjyCanadaBernardo Dominic PROPOSAL
Aruna T MaletFranceIvan Magalhaes UNQUALIFIED
Jeanfrancois X GarufiSpainStephen Shaw NEGOTIATION
Maria S MorascaCanadaXuxue Feng QUALIFIED
James A CampainJapanAmy Elsner RENEWAL
Kaitlin V CaudyFranceElwin Sharvill UNQUALIFIED
Antonio A InouyeAustraliaIoni Bowcher PROPOSAL
Rodrigues H GarufiItalyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro Q RimJapan2026-06-17Buckley Miller Wright UNQUALIFIED0Elwin Sharvill
1001Antonio W GillianCanada2026-06-17Buckley Miller Wright NEGOTIATION74Onyama Limba
1002Jefferson Z PerinArgentina2026-07-04Rangoni Of Florence RENEWAL32Xuxue Feng
1003Jennifer U OldroydAustralia2026-06-22Chemel, James L Cpa QUALIFIED19Amy Elsner
1004Silvio J BriddickItaly2026-06-21King, Christopher A Esq UNQUALIFIED59Ivan Magalhaes
1005Aditya U CampainSpain2026-06-07Morlong Associates QUALIFIED38Asiya Javayant
1006Octavia U AlbaresItaly2026-06-09Rangoni Of Florence NEGOTIATION71Onyama Limba
1007Clifford W FerenczCanada2026-07-01Chapman, Ross E Esq RENEWAL54Ivan Magalhaes
1008Wickens M WaycottArgentina2026-06-17Chanay, Jeffrey A Esq RENEWAL30Stephen Shaw
1009David U WaycottGermany2026-06-07Feltz Printing Service NEGOTIATION31Onyama Limba
1010Claire X PaprockiCanada2026-06-30Feiner Bros RENEWAL72Onyama Limba
1011Aruna F SergiAustralia2026-06-19Chanay, Jeffrey A Esq RENEWAL21Xuxue Feng
1012Adams X ShinkoAustralia2026-06-16Printing Dimensions NEW37Ivan Magalhaes
1013Chavez R CaldareraAustralia2026-06-12Printing Dimensions UNQUALIFIED70Stephen Shaw
1014Isabel E NickaFrance2026-06-12Printing Dimensions UNQUALIFIED51Bernardo Dominic
1015Leon T StensethUnited Kingdom2026-07-04Morlong Associates UNQUALIFIED40Stephen Shaw
1016Chavez W AmigonJapan2026-07-05Printing Dimensions QUALIFIED17Bernardo Dominic
1017Octavia B OstroskySpain2026-06-29Buckley Miller Wright NEW44Ivan Magalhaes
1018Greenwood U ShinkoBrazil2026-06-08Printing Dimensions PROPOSAL15Anna Fali
1019Stacey Z DoeRussia2026-06-15Morlong Associates NEGOTIATION93Bernardo Dominic
1020Tony G KuskoSpain2026-06-12Commercial Press QUALIFIED60Bernardo Dominic
1021Morrow G SergiJapan2026-06-16Chemel, James L Cpa RENEWAL51Asiya Javayant
1022Isabel D GillianItaly2026-06-10Printing Dimensions UNQUALIFIED13Asiya Javayant
1023Murillo N ChuiCanada2026-06-14Printing Dimensions RENEWAL15Anna Fali
1024Octavia K FerenczUnited Kingdom2026-07-05Rangoni Of Florence PROPOSAL41Elwin Sharvill
1025Emily D ButtSpain2026-06-06Feiner Bros NEGOTIATION17Anna Fali
1026Emily J WieserGermany2026-07-05Morlong Associates UNQUALIFIED93Stephen Shaw
1027Maria P WaycottAustralia2026-06-11Rousseaux, Michael Esq NEGOTIATION20Stephen Shaw
1028Kadeem Q MaletBrazil2026-06-21King, Christopher A Esq PROPOSAL33Bernardo Dominic
1029Tony S RutaJapan2026-06-21Dorl, James J Esq NEGOTIATION3Ioni Bowcher
1030Murillo D NestleAustralia2026-06-08Commercial Press NEW54Ivan Magalhaes
1031Misaki W StensethSpain2026-06-20Dorl, James J Esq QUALIFIED49Stephen Shaw
1032Faith U OstroskyItaly2026-06-15Benton, John B Jr NEW89Ivan Magalhaes
1033Chavez P CaudyFrance2026-06-29Chapman, Ross E Esq RENEWAL3Ioni Bowcher
1034Juan P MacleadUnited Kingdom2026-06-27Chemel, James L Cpa UNQUALIFIED91Onyama Limba
1035Misaki O StensethGermany2026-07-05Truhlar And Truhlar Attys QUALIFIED95Ivan Magalhaes
1036Antonio L FerenczBrazil2026-06-15Morlong Associates UNQUALIFIED25Xuxue Feng
1037Kaitlin N WhobreyItaly2026-07-03Rousseaux, Michael Esq NEGOTIATION46Stephen Shaw
1038Silvio Y MaletBrazil2026-06-27Feltz Printing Service UNQUALIFIED66Stephen Shaw
1039Izzy W CampainCanada2026-06-16Chanay, Jeffrey A Esq QUALIFIED3Anna Fali
1040Misaki R CaldareraAustralia2026-06-20Chanay, Jeffrey A Esq PROPOSAL15Asiya Javayant
1041Tony K FigeroaJapan2026-06-26Rangoni Of Florence RENEWAL82Ivan Magalhaes
1042Adams J FerenczIndia2026-06-13Rangoni Of Florence UNQUALIFIED69Anna Fali
1043Arvin Z SergiCanada2026-06-30Printing Dimensions QUALIFIED45Ioni Bowcher
1044Munro T InouyeCanada2026-06-20Commercial Press QUALIFIED7Anna Fali
1045Aika C WieserArgentina2026-06-30Feltz Printing Service RENEWAL92Stephen Shaw
1046Kaitlin N VocelkaFrance2026-06-18Commercial Press NEGOTIATION81Onyama Limba
1047Alejandro C FlosiGermany2026-06-27Truhlar And Truhlar Attys RENEWAL10Onyama Limba
1048Isabel J TollnerCanada2026-06-11Benton, John B Jr QUALIFIED30Amy Elsner
1049Faith W RimCanada2026-06-30Feltz Printing Service NEGOTIATION16Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Nicolas C ShinkoFranceOnyama Limba PROPOSAL
Stacey B FerenczArgentinaOnyama Limba NEGOTIATION
Misaki M KuskoCanadaAmy Elsner RENEWAL
Aditya O DarakjyItalyBernardo Dominic RENEWAL
Jefferson H DilliardRussiaAmy Elsner RENEWAL
Chavez K PerinArgentinaAnna Fali NEGOTIATION
Maria B WaycottGermanyAnna Fali PROPOSAL
Mujtaba T PoquetteCanadaStephen Shaw QUALIFIED
Faith W MorascaSpainAmy Elsner NEW
Aditya F KuskoBrazilOnyama Limba PROPOSAL
Aruna G MorascaArgentinaAmy Elsner RENEWAL
Octavia H MaletAustraliaAmy Elsner QUALIFIED
Alejandro F SergiCanadaElwin Sharvill UNQUALIFIED
Jones U GarufiAustraliaIvan Magalhaes NEGOTIATION
Cody X BriddickUnited KingdomBernardo Dominic PROPOSAL
Octavia E ChuiRussiaIoni Bowcher PROPOSAL
Silvio W MaletItalyXuxue Feng RENEWAL
Ivar L BologniaGermanyBernardo Dominic RENEWAL
Tony W FerenczItalyXuxue Feng QUALIFIED
Alejandro U MacleadRussiaXuxue Feng UNQUALIFIED
Maisha P DilliardAustraliaAnna Fali QUALIFIED
Jeanfrancois F BowleyArgentinaAmy Elsner QUALIFIED
Jeanfrancois N ButtJapanAsiya Javayant UNQUALIFIED
Antonio I StockhamFranceAmy Elsner UNQUALIFIED
Julie G RutaItalyIvan Magalhaes QUALIFIED
Deepesh A WieserUnited KingdomBernardo Dominic RENEWAL
Stacey A SergiIndiaAnna Fali PROPOSAL
Aika L BologniaGermanyIvan Magalhaes PROPOSAL
Mayumi V RulapaughCanadaElwin Sharvill UNQUALIFIED
Juan Y StensethSpainAnna Fali UNQUALIFIED
Leon T GlickArgentinaIoni Bowcher PROPOSAL
Juan A OldroydBrazilElwin Sharvill QUALIFIED
Jones M RoysterUnited KingdomIoni Bowcher NEGOTIATION
Jennifer E AmigonIndiaAmy Elsner UNQUALIFIED
Leon I InouyeArgentinaBernardo Dominic NEW
Silvio L NickaSpainAsiya Javayant PROPOSAL
Mujtaba X AlbaresArgentinaIvan Magalhaes PROPOSAL
Johnson I MacleadRussiaXuxue Feng QUALIFIED
Greenwood A MacleadUnited KingdomAnna Fali NEGOTIATION
Rodrigues I OstroskyJapanElwin Sharvill RENEWAL
Mujtaba V RulapaughBrazilStephen Shaw PROPOSAL
Francesco T VenereIndiaXuxue Feng NEW
Claire S AlbaresBrazilAmy Elsner NEW
Rodrigues I InouyeFranceXuxue Feng RENEWAL
Alejandro Y InouyeAustraliaBernardo Dominic PROPOSAL
Isabel T GauchoAustraliaAnna Fali NEW
Jefferson U MaletArgentinaElwin Sharvill NEW
Misaki L KuskoIndiaBernardo Dominic QUALIFIED
Chavez I StensethIndiaAmy Elsner NEW
Misaki B ButtUnited KingdomIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Aditya D Saylors
Tony V Figeroa
Kadeem H Figeroa
Sinclair A Sergi
Izzy H Slusarski
Mayumi Q Caudy
Misaki E Sergi
Alejandro M Rim
Juan E Rim
Jeanfrancois G Briddick
Jeanfrancois W Whobrey
Maisha J Chui
Mujtaba Z Marrier
Jones E Sergi
Aditya C Royster
Wickens L Sergi
Izzy J Saylors
Darci S Royster
Rodrigues O Campain
Morrow H Briddick
Cody W Nicka
Leja R Foller
Isabel G Gaucho
David R Kolmetz
Arvin F Gaucho
Sinclair A Ostrosky
Aditya U Ferencz
Aruna L Morasca
Nicolas S Slusarski
Ricardo N Royster
Maria E Wieser
Ricardo X Marrier
Julie H Ruta
Johnson D Dilliard
James B Morasca
Mayumi V Stockham
Alejandro V Albares
Salvatore Y Sergi
Kaitlin M Gaucho
Morrow O Iturbide
Stacey R Poquette
Juan M Poquette
Alejandro T Gillian
Izzy D Figeroa
Morrow W Briddick
Emily F Ostrosky
Wickens H Nestle
Jefferson U Butt
Julie M Malet
Rodrigues X Inouye
IdCountryDate
1000Japan2026-06-24
1001Argentina2026-07-03
1002Italy2026-06-21
1003Australia2026-06-21
1004Spain2026-06-27
1005France2026-06-16
1006Spain2026-06-13
1007France2026-06-06
1008Spain2026-06-06
1009Germany2026-06-06
1010Japan2026-06-30
1011United Kingdom2026-06-23
1012Brazil2026-06-21
1013Canada2026-06-20
1014Canada2026-06-09
1015Italy2026-06-13
1016Italy2026-06-26
1017Japan2026-06-30
1018Spain2026-06-30
1019United Kingdom2026-06-23
1020United Kingdom2026-06-18
1021Argentina2026-06-29
1022Italy2026-06-15
1023Brazil2026-06-12
1024Australia2026-07-03
1025Spain2026-07-05
1026Canada2026-06-15
1027Germany2026-06-16
1028France2026-06-08
1029United Kingdom2026-06-29
1030Italy2026-06-14
1031Brazil2026-06-27
1032United Kingdom2026-06-24
1033Australia2026-06-23
1034Australia2026-06-18
1035Germany2026-06-13
1036Argentina2026-06-06
1037Russia2026-06-24
1038Brazil2026-06-23
1039Australia2026-06-09
1040Germany2026-06-17
1041Canada2026-06-09
1042India2026-06-08
1043Italy2026-06-08
1044Argentina2026-06-18
1045Argentina2026-06-16
1046Canada2026-06-15
1047Germany2026-06-09
1048India2026-06-24
1049Japan2026-06-06

On-Demand Data

NameIdCountryDate
Darci U Shinko1000Brazil2026-06-18
Jefferson H Briddick1001Germany2026-06-17
Nicolas U Saylors1002Russia2026-06-26
Izzy B Bowley1003Japan2026-06-11
Clifford N Shinko1004Russia2026-06-22
Mayumi T Campain1005Italy2026-06-08
Misaki I Rim1006India2026-06-21
Aditya V Doe1007Russia2026-06-09
Chavez K Figeroa1008Germany2026-06-19
Julie T Butt1009United Kingdom2026-06-21
Antonio O Stenseth1010Australia2026-07-02
Jeanfrancois D Stenseth1011Spain2026-06-24
Jones A Briddick1012Japan2026-06-20
Deepesh D Stenseth1013India2026-07-04
Octavia P Bowley1014Argentina2026-07-04
Arvin L Garufi1015Italy2026-07-01
Ashley T Nicka1016Japan2026-06-19
Jefferson S Rim1017France2026-06-13
Costa F Caudy1018Germany2026-06-29
Aruna X Rulapaugh1019France2026-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony J BriddickIndiaElwin Sharvill RENEWAL
Sinclair G NickaAustraliaIoni Bowcher NEGOTIATION
Aruna F DilliardArgentinaIoni Bowcher NEW
Tony U SlusarskiCanadaAnna Fali NEGOTIATION
Jefferson I FlosiJapanOnyama Limba RENEWAL
Greenwood K NickaGermanyAmy Elsner NEGOTIATION
Smith A SaylorsUnited KingdomStephen Shaw UNQUALIFIED
James L OstroskyAustraliaAmy Elsner PROPOSAL
Misaki W ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Kaitlin I DoeFranceAsiya Javayant NEW
Deepesh P RulapaughAustraliaBernardo Dominic NEW
Maria Z BowleyGermanyBernardo Dominic PROPOSAL
Adams V OstroskyIndiaBernardo Dominic QUALIFIED
Jones H OldroydJapanBernardo Dominic NEW
Kadeem B WhobreyGermanyBernardo Dominic UNQUALIFIED
Nicolas N CaudyAustraliaStephen Shaw RENEWAL
Murillo N WieserIndiaIvan Magalhaes UNQUALIFIED
Rodrigues H MarrierJapanStephen Shaw NEW
Adams T BriddickBrazilXuxue Feng RENEWAL
Arvin R SergiUnited KingdomElwin Sharvill NEW
Julie O WieserArgentinaOnyama Limba PROPOSAL
Jefferson J GlickRussiaAmy Elsner NEGOTIATION
Jeanfrancois E GillianRussiaAnna Fali QUALIFIED
Morrow M IturbideRussiaIoni Bowcher RENEWAL
Claire O KolmetzGermanyIoni Bowcher PROPOSAL
Costa G SaylorsArgentinaIvan Magalhaes NEW
Antonio O GarufiAustraliaXuxue Feng PROPOSAL
Francesco A GarufiUnited KingdomIoni Bowcher QUALIFIED
Stacey Y PaprockiItalyAnna Fali UNQUALIFIED
Jeanfrancois L CaudyUnited KingdomBernardo Dominic RENEWAL
Wickens B RutaIndiaBernardo Dominic QUALIFIED
Isabel B SchemmerSpainOnyama Limba NEGOTIATION
Octavia R SlusarskiRussiaXuxue Feng QUALIFIED
Aika I AmigonArgentinaAnna Fali QUALIFIED
Munro U DarakjyRussiaXuxue Feng RENEWAL
Silvio W SlusarskiRussiaStephen Shaw PROPOSAL
Ivar I RimRussiaElwin Sharvill NEGOTIATION
Tony Y NickaArgentinaAnna Fali UNQUALIFIED
Adams O NickaAustraliaAmy Elsner RENEWAL
Deepesh P VenereRussiaIoni Bowcher 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>