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
Costa D SchemmerCanadaAsiya Javayant QUALIFIED
Jones J MarrierUnited KingdomBernardo Dominic PROPOSAL
Antonio R ButtFranceXuxue Feng QUALIFIED
Morrow A KolmetzIndiaElwin Sharvill RENEWAL
Alejandro E OldroydGermanyIoni Bowcher NEW
Mujtaba Q AmigonItalyOnyama Limba NEGOTIATION
Clifford P MacleadFranceOnyama Limba UNQUALIFIED
Sinclair H GauchoArgentinaStephen Shaw UNQUALIFIED
Julie D WieserUnited KingdomBernardo Dominic PROPOSAL
Emily R RutaCanadaXuxue Feng NEW
Mujtaba S GarufiCanadaIoni Bowcher NEW
Misaki R PaprockiCanadaXuxue Feng PROPOSAL
Sinclair C PerinBrazilAnna Fali RENEWAL
Sinclair E OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore R BologniaAustraliaIoni Bowcher NEGOTIATION
James J ChuiItalyXuxue Feng UNQUALIFIED
Faith F CaldareraGermanyIoni Bowcher NEW
Ivar R RoysterJapanBernardo Dominic UNQUALIFIED
Octavia M SchemmerUnited KingdomXuxue Feng UNQUALIFIED
Ashley U VocelkaArgentinaElwin Sharvill QUALIFIED
Alejandro Q OldroydArgentinaAsiya Javayant UNQUALIFIED
Adams H ShinkoJapanXuxue Feng PROPOSAL
Costa B GlickCanadaIoni Bowcher NEGOTIATION
Maria M GarufiGermanyIoni Bowcher QUALIFIED
Maisha E DilliardGermanyStephen Shaw NEW
Aruna M TollnerGermanyIvan Magalhaes QUALIFIED
Misaki E MarrierAustraliaIvan Magalhaes RENEWAL
Nicolas G CaudyFranceIvan Magalhaes UNQUALIFIED
Silvio V WaycottItalyAsiya Javayant RENEWAL
Alejandro O ChuiGermanyIvan Magalhaes RENEWAL
Misaki R MarrierBrazilElwin Sharvill UNQUALIFIED
Johnson M MarrierUnited KingdomAmy Elsner NEW
Deepesh D KuskoItalyIvan Magalhaes QUALIFIED
Jeanfrancois S OstroskyUnited KingdomAmy Elsner NEW
Antonio G ButtBrazilIvan Magalhaes QUALIFIED
Adams J AlbaresItalyOnyama Limba RENEWAL
Claire W AmigonArgentinaOnyama Limba RENEWAL
Tony Z AlbaresFranceElwin Sharvill NEW
Smith C RimAustraliaOnyama Limba PROPOSAL
Silvio F MorascaJapanBernardo Dominic NEGOTIATION
Leon E BriddickSpainOnyama Limba NEGOTIATION
Juan L WaycottRussiaIoni Bowcher RENEWAL
Emily Q VocelkaIndiaXuxue Feng NEGOTIATION
Jennifer Y CaudyBrazilXuxue Feng NEW
Claire R MorascaItalyStephen Shaw NEW
Jeanfrancois C GlickCanadaAnna Fali PROPOSAL
Mujtaba A NickaRussiaIvan Magalhaes NEGOTIATION
Jones I GlickAustraliaIoni Bowcher UNQUALIFIED
Chavez Z AmigonIndiaStephen Shaw UNQUALIFIED
Antonio A WieserAustraliaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens L WhobreyItalyElwin Sharvill RENEWAL
Mayumi H KuskoIndiaAnna Fali NEW
Faith O PaprockiArgentinaOnyama Limba QUALIFIED
Johnson Z RoysterBrazilXuxue Feng QUALIFIED
Mayumi E KolmetzRussiaBernardo Dominic PROPOSAL
Chavez R BologniaAustraliaStephen Shaw PROPOSAL
Deepesh K MorascaRussiaIoni Bowcher NEW
Jeanfrancois Q RimIndiaAmy Elsner RENEWAL
Murillo X FlosiFranceIoni Bowcher UNQUALIFIED
Wickens X DilliardFranceElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez F MarrierAustralia2024-06-20Chanay, Jeffrey A Esq NEW31Amy Elsner
1001Jeanfrancois N MaletCanada2024-06-02Printing Dimensions NEW58Anna Fali
1002Julie Z TollnerCanada2024-06-03Rangoni Of Florence UNQUALIFIED86Ioni Bowcher
1003Maisha B KuskoJapan2024-05-29Chanay, Jeffrey A Esq NEW60Bernardo Dominic
1004Deepesh E PoquetteBrazil2024-06-06Chemel, James L Cpa UNQUALIFIED19Xuxue Feng
1005Aika X MarrierArgentina2024-05-27Chanay, Jeffrey A Esq RENEWAL39Onyama Limba
1006Kadeem J WieserAustralia2024-06-03Rousseaux, Michael Esq NEGOTIATION1Anna Fali
1007Costa N MaletUnited Kingdom2024-06-22Feiner Bros QUALIFIED57Onyama Limba
1008Faith P KolmetzRussia2024-05-28Chanay, Jeffrey A Esq QUALIFIED31Ivan Magalhaes
1009Clifford D ChuiUnited Kingdom2024-06-23Rousseaux, Michael Esq UNQUALIFIED14Ivan Magalhaes
1010Rodrigues O NickaRussia2024-05-29King, Christopher A Esq PROPOSAL7Asiya Javayant
1011Maria D OstroskyUnited Kingdom2024-06-17Morlong Associates UNQUALIFIED58Anna Fali
1012Darci P PerinCanada2024-06-19King, Christopher A Esq RENEWAL66Onyama Limba
1013Leja P StockhamUnited Kingdom2024-06-21Benton, John B Jr QUALIFIED99Elwin Sharvill
1014Ivar Y KolmetzUnited Kingdom2024-06-20Chemel, James L Cpa NEW45Elwin Sharvill
1015Clifford V InouyeItaly2024-06-05Dorl, James J Esq RENEWAL15Amy Elsner
1016Stacey N SchemmerJapan2024-06-04Chanay, Jeffrey A Esq RENEWAL28Ioni Bowcher
1017Sinclair K KolmetzBrazil2024-05-28Commercial Press NEW35Ioni Bowcher
1018Francesco C DarakjyBrazil2024-06-19King, Christopher A Esq UNQUALIFIED24Amy Elsner
1019Misaki Q MaletBrazil2024-06-11Morlong Associates UNQUALIFIED64Stephen Shaw
1020Cody H StensethGermany2024-05-27Rangoni Of Florence UNQUALIFIED77Stephen Shaw
1021Clifford X WhobreyUnited Kingdom2024-05-31Chanay, Jeffrey A Esq NEW62Ioni Bowcher
1022Adams X WaycottFrance2024-06-18Chemel, James L Cpa NEW21Amy Elsner
1023James Y WieserIndia2024-06-05Commercial Press NEW39Asiya Javayant
1024Rodrigues A FigeroaAustralia2024-06-10King, Christopher A Esq PROPOSAL37Asiya Javayant
1025Smith W CaudyGermany2024-06-09Truhlar And Truhlar Attys QUALIFIED60Onyama Limba
1026Misaki N SergiIndia2024-06-13Dorl, James J Esq NEGOTIATION53Onyama Limba
1027Leon A ChuiGermany2024-06-10Truhlar And Truhlar Attys RENEWAL46Elwin Sharvill
1028Jefferson B SchemmerItaly2024-06-08Chemel, James L Cpa PROPOSAL91Anna Fali
1029Smith V SlusarskiAustralia2024-06-18Chanay, Jeffrey A Esq NEGOTIATION60Bernardo Dominic
1030Leon M DarakjyCanada2024-05-29Morlong Associates PROPOSAL46Anna Fali
1031Faith W ButtBrazil2024-06-13Chapman, Ross E Esq NEGOTIATION69Asiya Javayant
1032Kadeem Z MaletCanada2024-06-11Benton, John B Jr UNQUALIFIED18Bernardo Dominic
1033Kaitlin D BowleyItaly2024-06-17King, Christopher A Esq NEW85Ivan Magalhaes
1034Antonio Y GlickSpain2024-06-16Buckley Miller Wright RENEWAL5Onyama Limba
1035Kaitlin V StensethUnited Kingdom2024-06-19Rangoni Of Florence PROPOSAL83Stephen Shaw
1036David J BologniaJapan2024-06-19Feiner Bros UNQUALIFIED53Ioni Bowcher
1037Maria W GarufiJapan2024-06-03Rousseaux, Michael Esq RENEWAL1Ioni Bowcher
1038Francesco X DoeUnited Kingdom2024-06-19Feiner Bros PROPOSAL66Asiya Javayant
1039Morrow X SlusarskiUnited Kingdom2024-06-22Rousseaux, Michael Esq NEW78Anna Fali
1040Adams X StockhamSpain2024-05-26King, Christopher A Esq QUALIFIED30Stephen Shaw
1041Claire K MaletUnited Kingdom2024-06-24Commercial Press PROPOSAL62Xuxue Feng
1042Alejandro X CaudyAustralia2024-05-26Printing Dimensions NEGOTIATION14Bernardo Dominic
1043Ashley V SaylorsJapan2024-06-07Truhlar And Truhlar Attys NEW67Xuxue Feng
1044Sinclair Y BowleyFrance2024-05-30Chapman, Ross E Esq RENEWAL19Asiya Javayant
1045Jones S DarakjyJapan2024-06-15Chapman, Ross E Esq UNQUALIFIED30Xuxue Feng
1046Kaitlin R WieserCanada2024-05-28Truhlar And Truhlar Attys NEW16Xuxue Feng
1047Julie I NickaArgentina2024-06-12Commercial Press RENEWAL90Xuxue Feng
1048Alejandro O ChuiItaly2024-06-18Chanay, Jeffrey A Esq QUALIFIED87Onyama Limba
1049Jones Z OldroydRussia2024-06-05Chemel, James L Cpa NEGOTIATION51Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba D GauchoRussiaStephen Shaw QUALIFIED
Silvio D GillianBrazilIvan Magalhaes NEGOTIATION
Jones Y RimItalyIoni Bowcher RENEWAL
Isabel F RoysterItalyXuxue Feng PROPOSAL
Ricardo P FollerJapanAsiya Javayant QUALIFIED
Silvio P RoysterJapanBernardo Dominic PROPOSAL
Ashley L BologniaBrazilBernardo Dominic NEGOTIATION
Antonio B NickaGermanyXuxue Feng QUALIFIED
Octavia K NickaItalyStephen Shaw NEW
James E DarakjySpainElwin Sharvill QUALIFIED
Kaitlin M StockhamAustraliaBernardo Dominic RENEWAL
Morrow I DilliardItalyXuxue Feng NEGOTIATION
Faith K ShinkoIndiaStephen Shaw NEGOTIATION
Silvio M FollerRussiaAsiya Javayant QUALIFIED
Nicolas F AlbaresJapanStephen Shaw RENEWAL
Jefferson W ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
Julie C ButtBrazilAmy Elsner NEGOTIATION
James E KuskoCanadaIoni Bowcher PROPOSAL
Cody Z GauchoFranceAmy Elsner NEW
Aditya M MacleadArgentinaStephen Shaw QUALIFIED
Silvio B NickaRussiaOnyama Limba NEGOTIATION
Leon R NestleUnited KingdomAnna Fali QUALIFIED
Juan Z PoquetteAustraliaElwin Sharvill NEW
Maisha N MacleadBrazilAmy Elsner UNQUALIFIED
Kaitlin N GauchoJapanIoni Bowcher NEW
Nicolas P BologniaAustraliaOnyama Limba NEGOTIATION
David P CaudyRussiaAnna Fali NEGOTIATION
Tony Q StensethAustraliaAsiya Javayant UNQUALIFIED
Mujtaba Z AlbaresIndiaAmy Elsner NEW
Darci D MaletIndiaBernardo Dominic QUALIFIED
Smith E FollerBrazilElwin Sharvill QUALIFIED
David V SchemmerSpainAnna Fali UNQUALIFIED
Antonio E InouyeUnited KingdomIvan Magalhaes PROPOSAL
Arvin E MaletAustraliaAsiya Javayant NEGOTIATION
David N RulapaughFranceElwin Sharvill NEGOTIATION
Aditya H RutaRussiaIoni Bowcher PROPOSAL
Jefferson N DarakjyUnited KingdomAmy Elsner RENEWAL
Emily L MorascaSpainAsiya Javayant NEGOTIATION
Mayumi E AlbaresUnited KingdomBernardo Dominic QUALIFIED
Maria Z MaletGermanyStephen Shaw QUALIFIED
Octavia V PaprockiItalyAmy Elsner PROPOSAL
Claire M FigeroaBrazilAsiya Javayant NEW
Morrow O CaldareraItalyIvan Magalhaes UNQUALIFIED
Ashley B KuskoFranceBernardo Dominic NEW
Jennifer V SchemmerSpainIvan Magalhaes NEW
Juan I MarrierArgentinaStephen Shaw QUALIFIED
Leon N MorascaArgentinaElwin Sharvill PROPOSAL
Claire U PoquetteSpainAmy Elsner UNQUALIFIED
Jeanfrancois V SlusarskiJapanStephen Shaw PROPOSAL
Stacey O MacleadSpainBernardo Dominic QUALIFIED
Frozen Columns
Name
David A Maclead
Antonio D Oldroyd
Aika Q Kolmetz
Sinclair W Rulapaugh
Munro W Morasca
Darci D Caudy
Alejandro H Oldroyd
Cody K Stockham
Maisha B Stockham
Jeanfrancois X Dilliard
Claire X Malet
Jones E Butt
Stacey C Nicka
Arvin J Foller
Maisha B Bolognia
Maisha K Stenseth
Johnson C Gillian
Kadeem W Kolmetz
Silvio D Inouye
Wickens T Malet
Leja B Amigon
Johnson I Malet
Darci R Nestle
Jones R Malet
Greenwood D Garufi
Murillo B Bowley
Munro V Tollner
Antonio K Kolmetz
Izzy O Briddick
Mujtaba Y Shinko
Ashley S Ferencz
Wickens L Whobrey
David I Flosi
Claire Y Vocelka
Leon L Oldroyd
Smith J Caldarera
Jennifer W Glick
Deepesh U Schemmer
Misaki Z Bolognia
Johnson V Wieser
Maisha G Slusarski
Kadeem R Waycott
Aika A Chui
Mayumi G Foller
Alejandro E Malet
Isabel G Gaucho
Ashley P Rim
Emily H Malet
Maria Y Stenseth
Tony W Paprocki
IdCountryDate
1000Japan2024-06-02
1001Japan2024-06-17
1002India2024-06-14
1003France2024-06-22
1004Australia2024-06-13
1005Spain2024-05-26
1006France2024-06-19
1007United Kingdom2024-06-09
1008Russia2024-06-04
1009Argentina2024-06-14
1010Russia2024-06-08
1011France2024-06-22
1012Germany2024-06-06
1013India2024-06-18
1014India2024-06-12
1015Germany2024-06-02
1016Germany2024-06-06
1017United Kingdom2024-06-14
1018Russia2024-06-10
1019Russia2024-06-24
1020Russia2024-06-05
1021Argentina2024-06-24
1022Canada2024-06-15
1023United Kingdom2024-06-06
1024Germany2024-06-06
1025Brazil2024-06-20
1026India2024-05-30
1027Russia2024-06-14
1028Argentina2024-06-12
1029Argentina2024-05-28
1030Argentina2024-06-07
1031India2024-06-24
1032Australia2024-06-01
1033France2024-06-21
1034United Kingdom2024-05-29
1035Canada2024-06-06
1036Italy2024-06-23
1037United Kingdom2024-06-22
1038Italy2024-06-18
1039Australia2024-06-08
1040Germany2024-05-28
1041Spain2024-05-27
1042Spain2024-06-19
1043India2024-06-11
1044Spain2024-06-02
1045France2024-06-21
1046Italy2024-06-01
1047Japan2024-06-11
1048Spain2024-06-20
1049Brazil2024-06-01

On-Demand Data

NameIdCountryDate
Mujtaba T Gaucho1000France2024-06-01
Adams K Malet1001United Kingdom2024-06-14
Francesco V Ferencz1002Russia2024-06-18
Jefferson C Malet1003Argentina2024-06-22
Chavez P Garufi1004Italy2024-06-04
Kadeem C Saylors1005India2024-06-10
Costa O Doe1006India2024-06-14
Nicolas Q Bolognia1007France2024-06-09
Mujtaba Z Tollner1008United Kingdom2024-06-11
Clifford U Ferencz1009Spain2024-06-18
Darci S Sergi1010Italy2024-06-22
Isabel D Perin1011Russia2024-06-11
Tony A Morasca1012Japan2024-06-12
Maria O Poquette1013Germany2024-06-15
Jefferson G Slusarski1014Italy2024-06-05
Faith D Kolmetz1015United Kingdom2024-06-24
Arvin F Rim1016France2024-06-21
Leon B Saylors1017France2024-06-21
Alejandro K Ostrosky1018Argentina2024-06-07
James E Oldroyd1019India2024-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair S SaylorsCanadaIoni Bowcher NEGOTIATION
Ricardo M OldroydUnited KingdomOnyama Limba NEGOTIATION
Aditya Z VenereJapanAmy Elsner PROPOSAL
James P FigeroaIndiaAmy Elsner QUALIFIED
Tony M ShinkoArgentinaElwin Sharvill RENEWAL
Mujtaba Z NestleCanadaBernardo Dominic RENEWAL
Stacey G VocelkaArgentinaStephen Shaw RENEWAL
Costa Y CaudyRussiaElwin Sharvill NEW
Antonio R SchemmerGermanyIvan Magalhaes UNQUALIFIED
Arvin R StockhamIndiaStephen Shaw NEW
Mayumi E KolmetzJapanAsiya Javayant PROPOSAL
Mayumi C GarufiIndiaIvan Magalhaes RENEWAL
Faith L SlusarskiCanadaAmy Elsner RENEWAL
James E CaldareraItalyOnyama Limba PROPOSAL
Octavia E DoeJapanStephen Shaw NEGOTIATION
Jeanfrancois Q WaycottSpainAnna Fali PROPOSAL
Aika G BriddickAustraliaAsiya Javayant QUALIFIED
Wickens H FigeroaFranceAnna Fali UNQUALIFIED
Silvio I OldroydRussiaXuxue Feng UNQUALIFIED
Ashley A PerinJapanBernardo Dominic RENEWAL
Johnson E DilliardBrazilAsiya Javayant PROPOSAL
Jennifer J SlusarskiRussiaAnna Fali PROPOSAL
Maria D FlosiUnited KingdomElwin Sharvill NEGOTIATION
Tony R TollnerIndiaStephen Shaw RENEWAL
Jefferson Z DilliardIndiaAnna Fali PROPOSAL
Juan G MorascaCanadaOnyama Limba RENEWAL
David X WieserUnited KingdomAsiya Javayant UNQUALIFIED
Chavez B SaylorsBrazilIoni Bowcher UNQUALIFIED
Octavia B WieserRussiaOnyama Limba UNQUALIFIED
Kaitlin Q KolmetzCanadaXuxue Feng NEGOTIATION
Cody C SlusarskiBrazilStephen Shaw RENEWAL
Smith A FigeroaItalyXuxue Feng RENEWAL
David D DilliardJapanStephen Shaw UNQUALIFIED
Aruna B FollerFranceAsiya Javayant UNQUALIFIED
Jones X ShinkoAustraliaAnna Fali QUALIFIED
Maria D ChuiSpainIvan Magalhaes PROPOSAL
Wickens F BriddickIndiaIoni Bowcher RENEWAL
Aditya U VocelkaJapanStephen Shaw UNQUALIFIED
Silvio K OstroskyUnited KingdomBernardo Dominic QUALIFIED
Johnson M SlusarskiRussiaAnna Fali PROPOSAL

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