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
Wickens A ButtRussiaAnna Fali UNQUALIFIED
Nicolas E CaldareraAustraliaXuxue Feng UNQUALIFIED
Kaitlin G FollerItalyBernardo Dominic NEW
Isabel G OstroskyIndiaBernardo Dominic RENEWAL
Claire N DarakjyFranceIvan Magalhaes QUALIFIED
Deepesh W VenereGermanyIoni Bowcher PROPOSAL
Wickens U AlbaresArgentinaOnyama Limba PROPOSAL
Alejandro L CaudyFranceXuxue Feng QUALIFIED
Sinclair T GlickRussiaStephen Shaw NEW
Ivar R NestleCanadaAsiya Javayant UNQUALIFIED
Silvio K KolmetzRussiaAsiya Javayant UNQUALIFIED
Aika K BowleyBrazilAnna Fali NEW
Jennifer Z OstroskySpainXuxue Feng UNQUALIFIED
Smith Q MarrierItalyAsiya Javayant RENEWAL
Stacey I SchemmerCanadaAmy Elsner NEGOTIATION
Arvin R BologniaGermanyBernardo Dominic NEW
Morrow Q StockhamIndiaElwin Sharvill NEW
Claire M GarufiFranceOnyama Limba UNQUALIFIED
Alejandro P KuskoJapanXuxue Feng UNQUALIFIED
Costa Q IturbideJapanXuxue Feng UNQUALIFIED
Leja H ChuiUnited KingdomXuxue Feng NEGOTIATION
Alejandro U StensethItalyOnyama Limba QUALIFIED
Deepesh F MorascaRussiaBernardo Dominic RENEWAL
Leja N SergiRussiaAmy Elsner NEGOTIATION
Johnson O CampainArgentinaStephen Shaw UNQUALIFIED
Tony L WhobreyArgentinaAsiya Javayant RENEWAL
Emily N RutaUnited KingdomXuxue Feng UNQUALIFIED
Johnson A IturbideSpainElwin Sharvill NEGOTIATION
Tony C OldroydSpainIoni Bowcher QUALIFIED
Maisha Q SaylorsBrazilOnyama Limba UNQUALIFIED
Greenwood L VocelkaBrazilElwin Sharvill RENEWAL
Smith V ChuiItalyElwin Sharvill UNQUALIFIED
Leon E MacleadFranceElwin Sharvill QUALIFIED
Misaki G NickaFranceElwin Sharvill RENEWAL
Kadeem P DarakjySpainElwin Sharvill RENEWAL
Aditya L GarufiFranceBernardo Dominic PROPOSAL
Julie O KolmetzFranceAmy Elsner PROPOSAL
Ashley C CaudySpainAsiya Javayant RENEWAL
Tony A WaycottJapanAsiya Javayant NEGOTIATION
Aruna J OldroydIndiaStephen Shaw QUALIFIED
Stacey I StensethGermanyAsiya Javayant RENEWAL
Munro B MorascaJapanIoni Bowcher RENEWAL
Aika D OstroskyItalyIvan Magalhaes PROPOSAL
Antonio W GarufiCanadaIvan Magalhaes NEW
Kaitlin V MorascaIndiaElwin Sharvill PROPOSAL
Salvatore U StockhamGermanyAsiya Javayant NEGOTIATION
Emily V BowleyGermanyIoni Bowcher PROPOSAL
Jennifer Q FlosiRussiaAmy Elsner QUALIFIED
Ivar U FerenczJapanAsiya Javayant NEGOTIATION
Ashley H SchemmerCanadaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Darci R KolmetzRussiaOnyama Limba NEGOTIATION
Darci I VocelkaAustraliaAmy Elsner PROPOSAL
Mujtaba L SergiRussiaBernardo Dominic UNQUALIFIED
Juan Y MorascaJapanOnyama Limba UNQUALIFIED
Alejandro D StockhamUnited KingdomOnyama Limba RENEWAL
Misaki L IturbideBrazilIvan Magalhaes UNQUALIFIED
Jennifer C SchemmerFranceIoni Bowcher UNQUALIFIED
Chavez O StensethJapanXuxue Feng NEGOTIATION
Ashley I RimIndiaAmy Elsner QUALIFIED
Jefferson N IturbideUnited KingdomElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki D BriddickFrance2024-06-10Truhlar And Truhlar Attys UNQUALIFIED2Anna Fali
1001Kaitlin J DoeAustralia2024-06-17King, Christopher A Esq NEW7Onyama Limba
1002Jefferson S AlbaresGermany2024-05-25Rangoni Of Florence QUALIFIED96Onyama Limba
1003Mayumi I FlosiGermany2024-06-14Buckley Miller Wright UNQUALIFIED93Amy Elsner
1004Rodrigues Z PoquetteIndia2024-06-04Rangoni Of Florence QUALIFIED12Onyama Limba
1005Clifford C OldroydFrance2024-05-25Chemel, James L Cpa UNQUALIFIED96Bernardo Dominic
1006Jefferson V WaycottIndia2024-05-24Feltz Printing Service UNQUALIFIED98Xuxue Feng
1007Salvatore X GlickUnited Kingdom2024-06-01Chapman, Ross E Esq QUALIFIED47Ioni Bowcher
1008Adams M ChuiArgentina2024-06-13Buckley Miller Wright UNQUALIFIED27Ioni Bowcher
1009Morrow E MaletUnited Kingdom2024-05-31King, Christopher A Esq QUALIFIED12Amy Elsner
1010Adams M FigeroaRussia2024-06-20Rangoni Of Florence UNQUALIFIED5Xuxue Feng
1011Octavia J NickaBrazil2024-05-31Morlong Associates NEW6Elwin Sharvill
1012Claire Y SaylorsAustralia2024-05-28Chemel, James L Cpa RENEWAL91Bernardo Dominic
1013Jennifer R ChuiAustralia2024-06-06Commercial Press PROPOSAL35Ioni Bowcher
1014Munro J StockhamSpain2024-06-19Rangoni Of Florence PROPOSAL24Ivan Magalhaes
1015Juan M KuskoSpain2024-06-14Rousseaux, Michael Esq UNQUALIFIED83Stephen Shaw
1016Smith H RutaBrazil2024-06-09Benton, John B Jr PROPOSAL39Stephen Shaw
1017Leja V RoysterAustralia2024-05-30Feiner Bros NEGOTIATION73Xuxue Feng
1018Salvatore D DoeFrance2024-06-16Truhlar And Truhlar Attys UNQUALIFIED82Amy Elsner
1019Faith V DilliardBrazil2024-06-20Chemel, James L Cpa PROPOSAL68Ivan Magalhaes
1020Smith M RoysterGermany2024-06-03Rousseaux, Michael Esq UNQUALIFIED26Asiya Javayant
1021Aditya C FlosiJapan2024-05-28Morlong Associates NEGOTIATION89Bernardo Dominic
1022Sinclair Q SchemmerJapan2024-06-01Dorl, James J Esq PROPOSAL47Ivan Magalhaes
1023Antonio D WaycottCanada2024-05-27Dorl, James J Esq NEW65Elwin Sharvill
1024Costa B MaletRussia2024-06-21Truhlar And Truhlar Attys NEW73Onyama Limba
1025Julie A TollnerCanada2024-05-25Chapman, Ross E Esq NEW4Asiya Javayant
1026Silvio B NestleAustralia2024-06-12King, Christopher A Esq QUALIFIED46Bernardo Dominic
1027Wickens L SergiArgentina2024-05-24Feiner Bros NEW26Xuxue Feng
1028Ivar T SlusarskiUnited Kingdom2024-06-07Dorl, James J Esq UNQUALIFIED92Xuxue Feng
1029Leja X PaprockiItaly2024-05-29Benton, John B Jr QUALIFIED23Anna Fali
1030Aruna B MarrierSpain2024-06-15Chapman, Ross E Esq NEW54Bernardo Dominic
1031Alejandro B AlbaresSpain2024-06-08Feiner Bros PROPOSAL35Ioni Bowcher
1032Rodrigues O AlbaresUnited Kingdom2024-06-11Printing Dimensions UNQUALIFIED31Ioni Bowcher
1033Darci M RulapaughJapan2024-06-04King, Christopher A Esq UNQUALIFIED50Anna Fali
1034Leon N VenereRussia2024-06-19Benton, John B Jr NEW85Elwin Sharvill
1035Mujtaba Z SaylorsArgentina2024-05-26Rangoni Of Florence RENEWAL43Anna Fali
1036Maisha E DarakjyGermany2024-06-13Dorl, James J Esq QUALIFIED16Ioni Bowcher
1037Jefferson O WieserSpain2024-06-21Truhlar And Truhlar Attys UNQUALIFIED82Ioni Bowcher
1038Maria B WhobreyArgentina2024-05-30Benton, John B Jr NEGOTIATION95Ioni Bowcher
1039Sinclair I PaprockiSpain2024-05-25Feiner Bros PROPOSAL57Ioni Bowcher
1040Maisha L OldroydArgentina2024-06-03Morlong Associates NEGOTIATION58Amy Elsner
1041James N RutaJapan2024-06-18Morlong Associates PROPOSAL35Anna Fali
1042Cody K SergiUnited Kingdom2024-05-24Printing Dimensions UNQUALIFIED91Elwin Sharvill
1043Silvio X SlusarskiGermany2024-06-17Chemel, James L Cpa PROPOSAL97Ioni Bowcher
1044David R CampainUnited Kingdom2024-05-30Morlong Associates UNQUALIFIED95Xuxue Feng
1045Stacey Y GillianGermany2024-06-21Chemel, James L Cpa UNQUALIFIED79Elwin Sharvill
1046Leja Q FlosiArgentina2024-06-05King, Christopher A Esq NEGOTIATION44Ivan Magalhaes
1047Francesco Z GillianIndia2024-05-28Buckley Miller Wright UNQUALIFIED66Bernardo Dominic
1048Darci V KolmetzUnited Kingdom2024-06-01Chanay, Jeffrey A Esq NEGOTIATION30Asiya Javayant
1049Kaitlin P WhobreyArgentina2024-05-29Feiner Bros NEW56Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Francesco E RoysterRussiaAnna Fali NEGOTIATION
Octavia A PoquetteGermanyOnyama Limba PROPOSAL
David F MaletJapanStephen Shaw NEW
Wickens E RulapaughItalyXuxue Feng PROPOSAL
Arvin U RimGermanyXuxue Feng UNQUALIFIED
Isabel Q RutaBrazilXuxue Feng RENEWAL
Leja H GarufiJapanIvan Magalhaes NEW
Morrow L BriddickRussiaAmy Elsner PROPOSAL
Kadeem Z RutaAustraliaAnna Fali NEGOTIATION
James W MacleadAustraliaBernardo Dominic NEGOTIATION
Johnson P SchemmerArgentinaOnyama Limba UNQUALIFIED
Clifford A ShinkoAustraliaAnna Fali NEGOTIATION
Maisha H ShinkoJapanXuxue Feng UNQUALIFIED
James F WaycottCanadaIvan Magalhaes PROPOSAL
Smith X RutaGermanyAmy Elsner NEGOTIATION
Munro Y NestleJapanBernardo Dominic PROPOSAL
Johnson D RutaItalyOnyama Limba NEGOTIATION
Mayumi N MaletCanadaXuxue Feng PROPOSAL
Kaitlin Y StensethArgentinaStephen Shaw NEGOTIATION
Adams H DarakjyFranceIoni Bowcher NEW
Leja W MacleadAustraliaIvan Magalhaes NEW
Izzy Y WhobreyUnited KingdomAmy Elsner NEGOTIATION
Emily M MarrierFranceIvan Magalhaes QUALIFIED
David T RulapaughUnited KingdomAnna Fali PROPOSAL
Isabel Y PoquetteBrazilBernardo Dominic RENEWAL
Emily Z MarrierRussiaOnyama Limba QUALIFIED
Jeanfrancois D WaycottRussiaBernardo Dominic NEGOTIATION
Leon J MarrierItalyXuxue Feng NEW
Stacey X PaprockiIndiaAmy Elsner RENEWAL
Misaki P NestleIndiaAsiya Javayant NEW
Smith Q FlosiIndiaElwin Sharvill NEW
Murillo X OldroydSpainIvan Magalhaes PROPOSAL
Deepesh D GauchoItalyStephen Shaw NEGOTIATION
Leon U RulapaughCanadaOnyama Limba QUALIFIED
Aditya D ShinkoGermanyAmy Elsner QUALIFIED
Claire N MarrierSpainIvan Magalhaes NEW
Aika E GarufiItalyBernardo Dominic NEGOTIATION
Chavez S ChuiArgentinaBernardo Dominic UNQUALIFIED
Arvin M BowleyGermanyXuxue Feng QUALIFIED
Sinclair C ButtJapanAsiya Javayant QUALIFIED
Greenwood D MorascaJapanAnna Fali RENEWAL
Stacey U PoquetteItalyAsiya Javayant PROPOSAL
Deepesh D ChuiSpainElwin Sharvill QUALIFIED
Aruna F MaletJapanBernardo Dominic PROPOSAL
Julie C BologniaItalyIvan Magalhaes PROPOSAL
Cody V FigeroaJapanStephen Shaw QUALIFIED
David G WhobreyFranceAnna Fali PROPOSAL
Octavia J RoysterSpainIoni Bowcher NEW
Deepesh B SaylorsFranceAsiya Javayant PROPOSAL
Mujtaba Y DoeBrazilAnna Fali QUALIFIED
Frozen Columns
Name
Munro D Whobrey
Kadeem W Flosi
Cody E Perin
Deepesh H Wieser
Jeanfrancois J Kolmetz
Jennifer D Flosi
Chavez A Bolognia
Adams M Sergi
David N Briddick
Ashley Z Bolognia
Sinclair P Ruta
Maria G Rim
Jeanfrancois U Ostrosky
Octavia Y Darakjy
Arvin U Vocelka
Murillo U Caudy
Aika I Flosi
Aditya Y Saylors
Jeanfrancois F Briddick
Jeanfrancois S Oldroyd
Juan E Garufi
Silvio M Stenseth
Jennifer E Wieser
Isabel N Rulapaugh
Faith N Maclead
Ricardo N Paprocki
Morrow H Wieser
Leon V Iturbide
Maisha G Campain
Rodrigues T Dilliard
Nicolas L Stockham
Leon A Ferencz
Munro F Tollner
Clifford I Kusko
Faith V Nicka
Emily Z Garufi
Silvio G Waycott
Jones I Gaucho
Maria F Amigon
Octavia H Kusko
Claire H Gaucho
Nicolas C Malet
Juan K Gaucho
Maisha P Perin
Clifford I Poquette
Adams P Malet
Misaki Q Albares
Wickens Z Garufi
Antonio S Shinko
Smith H Tollner
IdCountryDate
1000Australia2024-06-20
1001India2024-06-21
1002Australia2024-06-06
1003Canada2024-06-20
1004Australia2024-06-14
1005Brazil2024-06-08
1006Germany2024-05-24
1007India2024-06-03
1008Russia2024-06-17
1009Brazil2024-06-05
1010Argentina2024-05-31
1011United Kingdom2024-06-02
1012Spain2024-06-13
1013Russia2024-05-29
1014Spain2024-05-29
1015France2024-06-12
1016Germany2024-06-14
1017Italy2024-06-09
1018India2024-05-26
1019Brazil2024-05-30
1020Argentina2024-05-26
1021Italy2024-05-29
1022India2024-06-21
1023Brazil2024-06-20
1024United Kingdom2024-05-28
1025Argentina2024-06-12
1026Japan2024-05-26
1027Spain2024-06-12
1028Australia2024-05-27
1029Australia2024-05-30
1030Spain2024-06-04
1031United Kingdom2024-06-03
1032Spain2024-06-07
1033France2024-06-07
1034Australia2024-06-06
1035Japan2024-06-21
1036Russia2024-06-01
1037Russia2024-06-22
1038Argentina2024-06-22
1039United Kingdom2024-06-20
1040Canada2024-06-01
1041United Kingdom2024-05-26
1042India2024-06-15
1043Canada2024-06-19
1044Germany2024-06-17
1045Argentina2024-06-03
1046Japan2024-05-25
1047Argentina2024-06-07
1048Australia2024-05-30
1049Canada2024-06-01

On-Demand Data

NameIdCountryDate
Octavia I Saylors1000France2024-06-19
Costa R Rulapaugh1001Russia2024-06-17
Julie A Malet1002Italy2024-06-15
Faith Z Malet1003Brazil2024-06-01
Ricardo O Ostrosky1004Brazil2024-06-01
Jones G Saylors1005Australia2024-06-21
Kadeem P Sergi1006France2024-06-07
Johnson A Malet1007Spain2024-05-29
Leja R Caudy1008Italy2024-05-29
Munro Q Poquette1009Argentina2024-06-06
Faith H Waycott1010Germany2024-06-04
Mayumi T Amigon1011Japan2024-06-09
Costa N Campain1012Italy2024-06-15
Kadeem S Sergi1013Brazil2024-05-28
Chavez A Glick1014India2024-05-31
Isabel L Waycott1015Australia2024-06-15
Salvatore O Schemmer1016Brazil2024-05-26
Mayumi W Albares1017Germany2024-06-02
Salvatore O Ruta1018Canada2024-06-18
James V Dilliard1019Australia2024-06-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey O SergiAustraliaBernardo Dominic PROPOSAL
Faith U RutaUnited KingdomAmy Elsner NEGOTIATION
Jennifer V RoysterGermanyIoni Bowcher NEW
Greenwood K SergiJapanAsiya Javayant NEGOTIATION
Jones K OstroskyGermanyBernardo Dominic UNQUALIFIED
Mayumi F SlusarskiItalyElwin Sharvill NEGOTIATION
Emily G VenereSpainAmy Elsner RENEWAL
Clifford W RoysterAustraliaBernardo Dominic QUALIFIED
Cody K MacleadIndiaStephen Shaw UNQUALIFIED
Kadeem I KuskoBrazilAnna Fali UNQUALIFIED
Maisha L FigeroaCanadaXuxue Feng NEW
Darci I CaudySpainOnyama Limba NEGOTIATION
Chavez D RimGermanyIvan Magalhaes UNQUALIFIED
James T StockhamItalyStephen Shaw NEGOTIATION
Francesco R FigeroaBrazilAmy Elsner NEW
Leja V MorascaArgentinaIoni Bowcher NEGOTIATION
Wickens N RoysterSpainBernardo Dominic QUALIFIED
Octavia M RimAustraliaBernardo Dominic RENEWAL
Mayumi V GarufiItalyBernardo Dominic UNQUALIFIED
Jefferson Y MaletUnited KingdomStephen Shaw UNQUALIFIED
Aditya Z FigeroaIndiaIvan Magalhaes NEW
Julie E CaudyAustraliaAmy Elsner RENEWAL
Nicolas N WaycottJapanElwin Sharvill RENEWAL
Alejandro A FigeroaJapanOnyama Limba PROPOSAL
Rodrigues H KolmetzItalyStephen Shaw UNQUALIFIED
Aditya Y IturbideAustraliaXuxue Feng PROPOSAL
Adams L DarakjyArgentinaAsiya Javayant QUALIFIED
Stacey F OstroskyAustraliaBernardo Dominic NEGOTIATION
Darci T NestleRussiaBernardo Dominic RENEWAL
Silvio F RoysterGermanyAsiya Javayant QUALIFIED
Costa X GlickAustraliaAmy Elsner NEGOTIATION
Ricardo R WaycottGermanyIvan Magalhaes PROPOSAL
Munro C DarakjyArgentinaOnyama Limba RENEWAL
Nicolas Z IturbideItalyAmy Elsner NEGOTIATION
Jeanfrancois I AlbaresItalyAmy Elsner UNQUALIFIED
Smith Z FollerItalyBernardo Dominic QUALIFIED
Tony S WieserUnited KingdomIvan Magalhaes UNQUALIFIED
Julie Z OstroskyFranceIvan Magalhaes RENEWAL
Murillo M BowleyBrazilAsiya Javayant QUALIFIED
Leon Y ButtJapanIoni Bowcher UNQUALIFIED

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