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
Ricardo W FlosiFranceAsiya Javayant NEW
James S StockhamJapanAsiya Javayant PROPOSAL
Claire B PerinIndiaXuxue Feng QUALIFIED
Aruna F OstroskyUnited KingdomBernardo Dominic UNQUALIFIED
Sinclair Z BologniaIndiaBernardo Dominic NEW
Costa A WieserArgentinaAmy Elsner NEGOTIATION
Francesco N WaycottBrazilIvan Magalhaes NEGOTIATION
Kadeem V DarakjyAustraliaOnyama Limba PROPOSAL
Aika F FollerRussiaElwin Sharvill PROPOSAL
Faith C FollerUnited KingdomStephen Shaw QUALIFIED
Juan O VenereAustraliaAnna Fali UNQUALIFIED
Ricardo U BowleyFranceIvan Magalhaes PROPOSAL
Aruna G RoysterSpainOnyama Limba UNQUALIFIED
Octavia Y KolmetzSpainAnna Fali PROPOSAL
Adams B DilliardBrazilStephen Shaw PROPOSAL
Silvio Q FollerArgentinaAnna Fali RENEWAL
Johnson K BowleyRussiaAsiya Javayant PROPOSAL
Clifford M PaprockiArgentinaOnyama Limba UNQUALIFIED
Wickens N GlickUnited KingdomIoni Bowcher UNQUALIFIED
Smith H ButtArgentinaIoni Bowcher UNQUALIFIED
Aruna P OldroydJapanIoni Bowcher UNQUALIFIED
Ricardo F OldroydBrazilIvan Magalhaes QUALIFIED
Mujtaba W BriddickRussiaAsiya Javayant NEGOTIATION
Sinclair M FollerGermanyIoni Bowcher UNQUALIFIED
Tony A CaldareraRussiaElwin Sharvill NEGOTIATION
Murillo B InouyeIndiaOnyama Limba QUALIFIED
Julie Y SergiJapanXuxue Feng NEGOTIATION
Aditya Q MaletItalyIoni Bowcher PROPOSAL
Deepesh E ButtAustraliaAnna Fali RENEWAL
Mayumi K SergiCanadaElwin Sharvill RENEWAL
David T GarufiRussiaAnna Fali UNQUALIFIED
Alejandro M RutaCanadaOnyama Limba UNQUALIFIED
Salvatore Z InouyeArgentinaOnyama Limba QUALIFIED
Sinclair N SchemmerBrazilOnyama Limba PROPOSAL
Juan O DoeRussiaBernardo Dominic NEGOTIATION
Aditya B FollerAustraliaAmy Elsner NEGOTIATION
Maria O StensethArgentinaXuxue Feng QUALIFIED
Mujtaba Z InouyeItalyElwin Sharvill QUALIFIED
Costa O MaletAustraliaOnyama Limba NEW
Kadeem J InouyeItalyXuxue Feng NEW
Aruna Z VocelkaAustraliaXuxue Feng PROPOSAL
Mayumi M GillianRussiaXuxue Feng RENEWAL
Clifford O AmigonFranceAsiya Javayant NEW
Smith H InouyeAustraliaElwin Sharvill QUALIFIED
James I KuskoUnited KingdomAsiya Javayant NEW
Tony S DilliardBrazilAsiya Javayant QUALIFIED
Rodrigues P NickaAustraliaAsiya Javayant QUALIFIED
Greenwood M DoeGermanyAmy Elsner QUALIFIED
Morrow G OstroskySpainElwin Sharvill NEW
Jennifer H FollerBrazilIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jennifer Z InouyeGermanyBernardo Dominic PROPOSAL
Leja Q PoquetteIndiaAsiya Javayant QUALIFIED
Sinclair H GlickArgentinaBernardo Dominic QUALIFIED
Mayumi H KolmetzAustraliaElwin Sharvill RENEWAL
Kadeem H FlosiGermanyAnna Fali NEGOTIATION
Misaki Y NestleCanadaIvan Magalhaes RENEWAL
Mujtaba O BologniaItalyStephen Shaw RENEWAL
Maria D MaletIndiaAmy Elsner UNQUALIFIED
Johnson A KolmetzUnited KingdomAsiya Javayant UNQUALIFIED
Leja B SergiItalyOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley D PoquetteItaly2026-07-06Commercial Press NEGOTIATION82Asiya Javayant
1001Faith Z BriddickUnited Kingdom2026-06-08Commercial Press NEW72Ioni Bowcher
1002Deepesh P NickaRussia2026-06-17Chapman, Ross E Esq PROPOSAL84Onyama Limba
1003Cody A BriddickFrance2026-06-16Chapman, Ross E Esq QUALIFIED17Bernardo Dominic
1004Adams U PoquetteJapan2026-06-08Feiner Bros UNQUALIFIED32Ivan Magalhaes
1005Aditya W RimSpain2026-06-23Buckley Miller Wright QUALIFIED47Ivan Magalhaes
1006Ricardo S SaylorsCanada2026-06-18Feiner Bros NEW82Stephen Shaw
1007Tony H NestleIndia2026-06-10Rousseaux, Michael Esq UNQUALIFIED86Stephen Shaw
1008Jennifer B BowleyCanada2026-06-11Morlong Associates RENEWAL5Asiya Javayant
1009Mujtaba B RutaFrance2026-06-09Buckley Miller Wright NEGOTIATION74Xuxue Feng
1010Rodrigues A KuskoCanada2026-06-07Benton, John B Jr PROPOSAL40Onyama Limba
1011Adams P FlosiCanada2026-07-01Truhlar And Truhlar Attys PROPOSAL94Onyama Limba
1012Costa J SaylorsBrazil2026-06-30Feiner Bros NEGOTIATION67Ioni Bowcher
1013Deepesh N MaletFrance2026-06-17Truhlar And Truhlar Attys UNQUALIFIED7Ivan Magalhaes
1014Juan K VenereGermany2026-06-20Buckley Miller Wright UNQUALIFIED42Ivan Magalhaes
1015James X IturbideFrance2026-06-23Chemel, James L Cpa RENEWAL76Asiya Javayant
1016Greenwood R MarrierJapan2026-06-17Dorl, James J Esq RENEWAL64Xuxue Feng
1017Greenwood S KolmetzCanada2026-06-08Chapman, Ross E Esq RENEWAL21Elwin Sharvill
1018Aruna P DarakjyGermany2026-06-12Morlong Associates QUALIFIED73Elwin Sharvill
1019Jones F DoeAustralia2026-06-10Printing Dimensions UNQUALIFIED84Anna Fali
1020Emily X AmigonCanada2026-06-28King, Christopher A Esq RENEWAL55Ioni Bowcher
1021Aika X ChuiJapan2026-06-10Chanay, Jeffrey A Esq RENEWAL69Bernardo Dominic
1022Tony V FlosiIndia2026-07-06Chapman, Ross E Esq UNQUALIFIED45Bernardo Dominic
1023Ashley Y RulapaughRussia2026-07-01Rousseaux, Michael Esq NEW30Bernardo Dominic
1024Mayumi K PaprockiCanada2026-06-17King, Christopher A Esq PROPOSAL5Ivan Magalhaes
1025Nicolas I SlusarskiSpain2026-07-06Chanay, Jeffrey A Esq PROPOSAL39Ioni Bowcher
1026Francesco K MarrierAustralia2026-06-12Chapman, Ross E Esq QUALIFIED17Asiya Javayant
1027Leon H AlbaresArgentina2026-07-06Buckley Miller Wright UNQUALIFIED37Onyama Limba
1028Morrow K StockhamUnited Kingdom2026-06-21King, Christopher A Esq NEW4Asiya Javayant
1029Murillo H FollerItaly2026-06-19Morlong Associates RENEWAL2Ioni Bowcher
1030Nicolas R MaletAustralia2026-06-09Printing Dimensions UNQUALIFIED42Asiya Javayant
1031Chavez J MaletUnited Kingdom2026-06-21Truhlar And Truhlar Attys QUALIFIED22Bernardo Dominic
1032James H PerinUnited Kingdom2026-06-16Commercial Press QUALIFIED6Ioni Bowcher
1033Johnson B TollnerGermany2026-06-08Benton, John B Jr PROPOSAL11Ioni Bowcher
1034Alejandro H DilliardGermany2026-06-19King, Christopher A Esq NEGOTIATION94Onyama Limba
1035Aika D PaprockiItaly2026-06-22Chanay, Jeffrey A Esq RENEWAL12Xuxue Feng
1036Rodrigues R KuskoFrance2026-06-07Printing Dimensions RENEWAL76Ivan Magalhaes
1037Juan Y ShinkoArgentina2026-06-18Feltz Printing Service NEW8Onyama Limba
1038Murillo L RimJapan2026-06-28King, Christopher A Esq NEW41Stephen Shaw
1039Wickens A FollerJapan2026-06-11Feiner Bros UNQUALIFIED3Bernardo Dominic
1040Jefferson V BowleyBrazil2026-06-09Printing Dimensions UNQUALIFIED46Bernardo Dominic
1041Ricardo W FlosiIndia2026-06-07Chanay, Jeffrey A Esq UNQUALIFIED4Anna Fali
1042Silvio Z BologniaFrance2026-06-09Rousseaux, Michael Esq QUALIFIED81Xuxue Feng
1043Izzy P OldroydUnited Kingdom2026-06-21Dorl, James J Esq PROPOSAL12Ioni Bowcher
1044Isabel T ShinkoRussia2026-07-02King, Christopher A Esq PROPOSAL90Onyama Limba
1045Clifford M TollnerGermany2026-06-28Rousseaux, Michael Esq NEW86Ioni Bowcher
1046Faith B RimBrazil2026-06-19Feltz Printing Service RENEWAL59Anna Fali
1047Ricardo B ChuiIndia2026-07-05Morlong Associates NEGOTIATION98Onyama Limba
1048Mujtaba Z MaletRussia2026-06-11Chemel, James L Cpa QUALIFIED32Asiya Javayant
1049Francesco P IturbideArgentina2026-06-18Feiner Bros NEGOTIATION44Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Costa M FlosiFranceStephen Shaw UNQUALIFIED
Aika J VocelkaRussiaIvan Magalhaes NEW
Salvatore W ShinkoFranceIoni Bowcher NEGOTIATION
Morrow A GillianJapanAmy Elsner QUALIFIED
Salvatore O BriddickIndiaOnyama Limba PROPOSAL
Emily T TollnerFranceAsiya Javayant NEGOTIATION
Mayumi E FlosiJapanXuxue Feng PROPOSAL
Mayumi V OldroydCanadaAmy Elsner RENEWAL
Greenwood L NickaBrazilAmy Elsner RENEWAL
Rodrigues O GauchoItalyAsiya Javayant NEGOTIATION
Salvatore T PerinCanadaXuxue Feng PROPOSAL
Nicolas E SlusarskiRussiaStephen Shaw NEW
Kaitlin F IturbideSpainAnna Fali UNQUALIFIED
Alejandro X FlosiArgentinaIvan Magalhaes QUALIFIED
Juan N MorascaSpainIoni Bowcher QUALIFIED
Deepesh G BowleyAustraliaAnna Fali NEW
Izzy N PerinUnited KingdomBernardo Dominic NEGOTIATION
Clifford C SchemmerIndiaIoni Bowcher PROPOSAL
Alejandro Z BriddickAustraliaElwin Sharvill NEGOTIATION
Tony R KuskoArgentinaBernardo Dominic NEW
Munro V WaycottCanadaAnna Fali NEGOTIATION
Jones G FerenczCanadaBernardo Dominic UNQUALIFIED
Jeanfrancois A FigeroaAustraliaXuxue Feng UNQUALIFIED
Antonio B ButtSpainIvan Magalhaes RENEWAL
Morrow P ChuiRussiaAmy Elsner PROPOSAL
Nicolas R DoeCanadaStephen Shaw NEGOTIATION
Clifford C BowleyAustraliaOnyama Limba QUALIFIED
Arvin T ShinkoUnited KingdomXuxue Feng RENEWAL
Mujtaba O DoeAustraliaIvan Magalhaes RENEWAL
Costa L SaylorsAustraliaAnna Fali RENEWAL
Johnson N TollnerIndiaBernardo Dominic PROPOSAL
Salvatore J CaudyAustraliaXuxue Feng NEGOTIATION
Jeanfrancois B BowleySpainIoni Bowcher UNQUALIFIED
Deepesh D GauchoRussiaAsiya Javayant NEW
Cody L TollnerFranceAsiya Javayant PROPOSAL
Nicolas G DarakjyIndiaXuxue Feng RENEWAL
Clifford J FigeroaItalyAsiya Javayant UNQUALIFIED
Maria Y RulapaughSpainXuxue Feng NEW
Jones H FerenczRussiaOnyama Limba NEGOTIATION
Misaki I SchemmerSpainIvan Magalhaes UNQUALIFIED
Maisha R MorascaRussiaIoni Bowcher NEW
Antonio A PoquetteItalyStephen Shaw NEGOTIATION
Kaitlin K BowleyCanadaAnna Fali QUALIFIED
Leja F AlbaresRussiaStephen Shaw RENEWAL
Tony D FigeroaGermanyBernardo Dominic UNQUALIFIED
Isabel M GauchoArgentinaIoni Bowcher RENEWAL
Aditya T KolmetzIndiaIoni Bowcher NEW
Ricardo C TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Julie A FigeroaArgentinaStephen Shaw QUALIFIED
Jeanfrancois T KolmetzJapanIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Octavia H Figeroa
Clifford A Ostrosky
Kadeem N Ruta
Aruna W Morasca
Clifford F Bolognia
Ashley U Malet
Morrow T Stenseth
Izzy T Shinko
Jones J Morasca
Leja N Bolognia
Aditya T Caudy
Rodrigues I Ostrosky
Arvin A Iturbide
Darci O Perin
Johnson W Glick
Aika C Poquette
Julie Q Morasca
Salvatore J Iturbide
Kadeem H Shinko
Jennifer U Gaucho
Cody C Nestle
Clifford G Nicka
Faith B Vocelka
Antonio H Venere
Jeanfrancois U Caldarera
Darci V Whobrey
Aditya H Kusko
Jennifer X Stenseth
Leja U Bowley
Jones S Oldroyd
Ricardo T Kusko
Munro O Malet
David L Dilliard
Rodrigues B Malet
Deepesh L Ostrosky
Aruna G Slusarski
Salvatore D Schemmer
Sinclair E Poquette
Jones E Schemmer
Leon A Iturbide
James N Waycott
James P Briddick
Jennifer A Garufi
Ivar G Amigon
Ashley B Royster
Kadeem V Kolmetz
Cody Q Stockham
Octavia B Figeroa
Jennifer L Amigon
Izzy P Kolmetz
IdCountryDate
1000Italy2026-06-22
1001Russia2026-06-10
1002Canada2026-06-22
1003Australia2026-07-03
1004Spain2026-06-10
1005Germany2026-06-23
1006Brazil2026-06-10
1007India2026-07-02
1008Spain2026-06-07
1009Germany2026-06-17
1010Brazil2026-06-29
1011Japan2026-06-14
1012Italy2026-06-20
1013India2026-06-16
1014Spain2026-06-14
1015Australia2026-06-29
1016Italy2026-06-08
1017Australia2026-06-29
1018Germany2026-06-11
1019United Kingdom2026-06-24
1020Canada2026-06-15
1021Japan2026-06-12
1022Russia2026-06-16
1023Brazil2026-06-13
1024Germany2026-06-20
1025Japan2026-06-25
1026Italy2026-06-07
1027Canada2026-06-21
1028Australia2026-06-17
1029United Kingdom2026-07-02
1030Japan2026-07-05
1031Russia2026-06-29
1032Italy2026-06-14
1033Spain2026-06-29
1034Japan2026-06-25
1035Canada2026-06-28
1036Japan2026-06-17
1037Spain2026-06-23
1038Brazil2026-06-18
1039Australia2026-06-12
1040United Kingdom2026-06-26
1041Australia2026-07-04
1042Australia2026-07-02
1043United Kingdom2026-06-17
1044Canada2026-06-09
1045Brazil2026-06-14
1046Canada2026-06-13
1047India2026-06-15
1048Australia2026-06-24
1049Russia2026-06-28

On-Demand Data

NameIdCountryDate
Mujtaba R Kusko1000Italy2026-06-09
Johnson E Iturbide1001Germany2026-06-22
Juan H Waycott1002Japan2026-06-21
Johnson A Nicka1003Japan2026-06-21
Francesco H Marrier1004India2026-06-20
Jones C Kolmetz1005Canada2026-06-28
Sinclair V Schemmer1006Spain2026-06-27
Francesco G Marrier1007India2026-07-03
Francesco O Morasca1008Spain2026-06-08
Alejandro A Paprocki1009Germany2026-06-30
Jennifer C Waycott1010France2026-06-29
Isabel U Poquette1011Italy2026-06-16
Salvatore U Whobrey1012Germany2026-06-24
Ashley D Poquette1013Japan2026-06-12
Smith O Rim1014Italy2026-06-18
Emily V Tollner1015Italy2026-07-03
Chavez U Poquette1016India2026-06-12
Antonio Z Malet1017Argentina2026-06-08
Adams F Wieser1018Spain2026-07-02
Cody S Wieser1019Italy2026-06-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci E DilliardUnited KingdomAnna Fali NEW
Leon C StensethAustraliaAnna Fali QUALIFIED
Wickens S ButtFranceOnyama Limba RENEWAL
Izzy A PaprockiCanadaElwin Sharvill RENEWAL
Kaitlin E KuskoAustraliaStephen Shaw UNQUALIFIED
Jones Y PaprockiIndiaIvan Magalhaes QUALIFIED
Murillo L MacleadRussiaIvan Magalhaes UNQUALIFIED
David B WieserBrazilStephen Shaw NEW
Juan T WaycottAustraliaOnyama Limba NEGOTIATION
Nicolas E ChuiBrazilBernardo Dominic QUALIFIED
Kadeem V GillianCanadaAsiya Javayant NEW
Mujtaba I ChuiRussiaOnyama Limba NEGOTIATION
Leja O FollerJapanStephen Shaw PROPOSAL
Chavez E AmigonSpainElwin Sharvill RENEWAL
Isabel I WhobreyIndiaOnyama Limba PROPOSAL
Aika Q NestleBrazilIoni Bowcher RENEWAL
Jones Q RimSpainElwin Sharvill PROPOSAL
Clifford Y WaycottArgentinaStephen Shaw PROPOSAL
Julie T PerinAustraliaAmy Elsner NEGOTIATION
Greenwood B SergiFranceAmy Elsner PROPOSAL
Adams V VocelkaGermanyIvan Magalhaes NEW
Octavia T MaletIndiaElwin Sharvill NEGOTIATION
Wickens I OldroydCanadaBernardo Dominic UNQUALIFIED
Chavez T AlbaresCanadaIoni Bowcher UNQUALIFIED
Ricardo H BowleyItalyIvan Magalhaes NEW
Leja L WhobreySpainXuxue Feng UNQUALIFIED
Jennifer S MaletBrazilOnyama Limba UNQUALIFIED
Aruna B ChuiRussiaElwin Sharvill UNQUALIFIED
Silvio J ButtCanadaOnyama Limba NEGOTIATION
Emily Q VenereIndiaIvan Magalhaes UNQUALIFIED
Misaki D BologniaGermanyIoni Bowcher NEW
Mayumi B PerinCanadaBernardo Dominic NEW
Francesco G RutaRussiaIoni Bowcher PROPOSAL
Jennifer U DilliardJapanXuxue Feng UNQUALIFIED
Silvio O VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Tony B FlosiJapanBernardo Dominic UNQUALIFIED
Rodrigues R GauchoCanadaStephen Shaw RENEWAL
Kadeem Z OldroydFranceIvan Magalhaes UNQUALIFIED
Mujtaba F RutaFranceAmy Elsner UNQUALIFIED
Jeanfrancois V ChuiArgentinaIoni Bowcher NEW

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