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
Mujtaba U GauchoItalyAnna Fali UNQUALIFIED
Salvatore M BologniaArgentinaElwin Sharvill NEGOTIATION
Alejandro H BologniaJapanIvan Magalhaes RENEWAL
Jennifer O BowleyBrazilAsiya Javayant NEW
Jennifer Q MarrierRussiaOnyama Limba UNQUALIFIED
Adams J WieserRussiaXuxue Feng PROPOSAL
Cody M MarrierBrazilXuxue Feng NEGOTIATION
Isabel X ButtItalyElwin Sharvill NEGOTIATION
Salvatore L SchemmerUnited KingdomAmy Elsner NEW
Johnson Z AlbaresJapanIvan Magalhaes RENEWAL
Leja O SlusarskiArgentinaBernardo Dominic NEW
Antonio J GauchoFranceBernardo Dominic UNQUALIFIED
David K TollnerArgentinaAsiya Javayant NEGOTIATION
Julie P PerinAustraliaStephen Shaw NEGOTIATION
Munro P OldroydSpainStephen Shaw QUALIFIED
Isabel N GauchoIndiaIvan Magalhaes NEGOTIATION
James G KolmetzFranceAnna Fali RENEWAL
Salvatore R MarrierUnited KingdomAsiya Javayant RENEWAL
Clifford A FigeroaFranceXuxue Feng QUALIFIED
Maria I MaletUnited KingdomXuxue Feng UNQUALIFIED
Chavez I WhobreyBrazilStephen Shaw PROPOSAL
Silvio L MaletUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues P AlbaresBrazilIvan Magalhaes UNQUALIFIED
Misaki C SaylorsCanadaAmy Elsner UNQUALIFIED
Greenwood L ShinkoIndiaIvan Magalhaes QUALIFIED
Tony X FigeroaGermanyElwin Sharvill UNQUALIFIED
Johnson T CaudyCanadaBernardo Dominic RENEWAL
Julie I PaprockiCanadaBernardo Dominic NEW
Stacey L FerenczJapanOnyama Limba PROPOSAL
Deepesh L GauchoSpainAmy Elsner PROPOSAL
Jefferson V GarufiUnited KingdomAnna Fali RENEWAL
Francesco K WaycottIndiaStephen Shaw RENEWAL
Murillo W MorascaItalyBernardo Dominic PROPOSAL
Emily E PerinBrazilXuxue Feng RENEWAL
Salvatore Y VenereCanadaXuxue Feng NEW
Ricardo D GarufiRussiaAmy Elsner UNQUALIFIED
Munro D CaldareraIndiaOnyama Limba PROPOSAL
Mujtaba T FollerAustraliaAnna Fali NEW
Maria V ShinkoArgentinaAsiya Javayant UNQUALIFIED
Jefferson R MaletCanadaAnna Fali NEW
Francesco A GarufiFranceBernardo Dominic PROPOSAL
Juan V GauchoSpainAnna Fali NEGOTIATION
Julie Z MarrierUnited KingdomIoni Bowcher RENEWAL
Jennifer T PaprockiJapanAnna Fali RENEWAL
Kadeem L AlbaresArgentinaElwin Sharvill RENEWAL
Chavez I MarrierFranceAsiya Javayant UNQUALIFIED
Kaitlin F NickaFranceElwin Sharvill NEW
Octavia M OldroydJapanIoni Bowcher UNQUALIFIED
Julie E SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Francesco G VenereCanadaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois W MaletBrazilOnyama Limba UNQUALIFIED
Darci D MarrierFranceXuxue Feng NEGOTIATION
Aditya K MorascaSpainAsiya Javayant QUALIFIED
Faith J WaycottItalyStephen Shaw QUALIFIED
Morrow D GauchoIndiaOnyama Limba PROPOSAL
Greenwood S BriddickCanadaAsiya Javayant UNQUALIFIED
Claire V SergiSpainElwin Sharvill UNQUALIFIED
Jennifer D CampainArgentinaXuxue Feng NEGOTIATION
Maisha T IturbideRussiaIoni Bowcher RENEWAL
Arvin I MaletSpainElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin K MorascaBrazil2024-06-01Morlong Associates UNQUALIFIED43Anna Fali
1001Faith D RimCanada2024-05-30Dorl, James J Esq NEGOTIATION83Ioni Bowcher
1002Greenwood U BologniaGermany2024-06-20Benton, John B Jr UNQUALIFIED98Ioni Bowcher
1003Julie E WhobreyRussia2024-06-08Benton, John B Jr PROPOSAL10Amy Elsner
1004Alejandro D DilliardFrance2024-05-29Chanay, Jeffrey A Esq NEGOTIATION22Ioni Bowcher
1005Silvio Q ButtUnited Kingdom2024-06-02Chapman, Ross E Esq PROPOSAL44Anna Fali
1006Maria Q KolmetzBrazil2024-05-30Printing Dimensions PROPOSAL73Xuxue Feng
1007Emily F VocelkaJapan2024-05-26Morlong Associates RENEWAL44Amy Elsner
1008Alejandro P BowleyJapan2024-06-15Chapman, Ross E Esq NEW5Asiya Javayant
1009Aditya Y FigeroaSpain2024-06-02Chanay, Jeffrey A Esq NEGOTIATION77Stephen Shaw
1010Julie V StockhamBrazil2024-05-27Chemel, James L Cpa NEGOTIATION23Stephen Shaw
1011Mayumi B DoeUnited Kingdom2024-06-07Benton, John B Jr QUALIFIED17Elwin Sharvill
1012Jennifer Q MacleadIndia2024-06-24Commercial Press NEGOTIATION72Ioni Bowcher
1013Jennifer Z VenereBrazil2024-06-05Benton, John B Jr PROPOSAL46Ioni Bowcher
1014Johnson W SaylorsBrazil2024-06-14Rousseaux, Michael Esq NEW62Elwin Sharvill
1015Leon G NestleItaly2024-05-27Chapman, Ross E Esq NEGOTIATION85Amy Elsner
1016Costa L WaycottJapan2024-06-07Printing Dimensions PROPOSAL61Elwin Sharvill
1017Wickens K IturbideUnited Kingdom2024-06-06Feiner Bros PROPOSAL6Asiya Javayant
1018Costa U WieserCanada2024-06-08Rangoni Of Florence UNQUALIFIED84Bernardo Dominic
1019Julie J WhobreyFrance2024-06-05Feiner Bros NEW48Ioni Bowcher
1020Mujtaba O WhobreyAustralia2024-06-04Benton, John B Jr UNQUALIFIED73Ioni Bowcher
1021Arvin V KuskoJapan2024-06-04Chemel, James L Cpa QUALIFIED34Stephen Shaw
1022Murillo K DilliardJapan2024-05-26Buckley Miller Wright NEW98Asiya Javayant
1023Leja R KolmetzFrance2024-06-03Benton, John B Jr QUALIFIED87Asiya Javayant
1024Greenwood P KuskoIndia2024-06-02Benton, John B Jr PROPOSAL64Xuxue Feng
1025Isabel K GauchoSpain2024-06-11Commercial Press NEW20Asiya Javayant
1026Deepesh F StockhamCanada2024-05-31Commercial Press UNQUALIFIED78Elwin Sharvill
1027Izzy E PerinIndia2024-06-09Commercial Press NEGOTIATION72Asiya Javayant
1028Darci B BowleySpain2024-06-22Rousseaux, Michael Esq QUALIFIED60Stephen Shaw
1029Jefferson W NestleItaly2024-06-06Feltz Printing Service PROPOSAL61Xuxue Feng
1030Deepesh C RoysterSpain2024-06-17Chemel, James L Cpa PROPOSAL12Onyama Limba
1031Tony G GlickBrazil2024-06-08Rousseaux, Michael Esq NEGOTIATION64Ivan Magalhaes
1032Francesco D MacleadRussia2024-05-30Dorl, James J Esq NEGOTIATION25Bernardo Dominic
1033Munro L KuskoArgentina2024-06-04Commercial Press PROPOSAL1Amy Elsner
1034Nicolas Y MaletArgentina2024-06-18Chapman, Ross E Esq PROPOSAL39Ioni Bowcher
1035Juan V FigeroaItaly2024-06-23Feltz Printing Service PROPOSAL59Elwin Sharvill
1036Aika D DilliardIndia2024-06-21King, Christopher A Esq QUALIFIED50Xuxue Feng
1037Sinclair I RulapaughGermany2024-06-19Chemel, James L Cpa RENEWAL57Xuxue Feng
1038Jeanfrancois R GillianIndia2024-06-14Rangoni Of Florence UNQUALIFIED67Asiya Javayant
1039James L WieserUnited Kingdom2024-05-31Benton, John B Jr UNQUALIFIED14Onyama Limba
1040Stacey X MarrierArgentina2024-06-07Rousseaux, Michael Esq UNQUALIFIED89Elwin Sharvill
1041Mujtaba Y PaprockiArgentina2024-06-15Commercial Press QUALIFIED42Ivan Magalhaes
1042Tony X SaylorsArgentina2024-06-13Chemel, James L Cpa NEW29Xuxue Feng
1043Arvin L KuskoCanada2024-06-09Chapman, Ross E Esq NEGOTIATION10Asiya Javayant
1044Maisha G RulapaughAustralia2024-06-12Feltz Printing Service UNQUALIFIED31Ivan Magalhaes
1045Aditya N FerenczGermany2024-06-16King, Christopher A Esq NEGOTIATION68Ivan Magalhaes
1046Johnson Z InouyeBrazil2024-05-29Commercial Press QUALIFIED94Stephen Shaw
1047Leon S SergiGermany2024-05-29Commercial Press NEW11Xuxue Feng
1048Darci G DilliardFrance2024-06-15Buckley Miller Wright NEGOTIATION83Anna Fali
1049Aika H BologniaJapan2024-06-13Dorl, James J Esq QUALIFIED5Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Wickens L PaprockiRussiaAmy Elsner RENEWAL
Salvatore L StockhamIndiaIvan Magalhaes RENEWAL
Mayumi C GarufiItalyXuxue Feng NEGOTIATION
Darci V MorascaBrazilBernardo Dominic NEGOTIATION
Jennifer A PaprockiIndiaStephen Shaw NEGOTIATION
Ricardo A RulapaughFranceAnna Fali NEW
Claire W RimBrazilStephen Shaw NEGOTIATION
Smith G SchemmerArgentinaXuxue Feng RENEWAL
Greenwood N RimBrazilBernardo Dominic NEGOTIATION
Costa M IturbideGermanyAnna Fali PROPOSAL
Cody H SaylorsRussiaBernardo Dominic PROPOSAL
Alejandro T TollnerArgentinaIoni Bowcher NEW
Julie B RimItalyAsiya Javayant RENEWAL
Leja G CampainArgentinaXuxue Feng NEW
Morrow J MacleadGermanyElwin Sharvill RENEWAL
Kaitlin T AmigonIndiaOnyama Limba RENEWAL
Izzy H MacleadArgentinaElwin Sharvill PROPOSAL
Leon G WaycottIndiaAnna Fali NEW
Antonio L NickaIndiaOnyama Limba QUALIFIED
Faith K SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Morrow T ShinkoBrazilXuxue Feng RENEWAL
Ivar S KolmetzIndiaAnna Fali NEGOTIATION
Chavez B MaletSpainBernardo Dominic QUALIFIED
Julie P DarakjyArgentinaAnna Fali UNQUALIFIED
Claire P BologniaGermanyXuxue Feng QUALIFIED
Stacey T ButtJapanIvan Magalhaes RENEWAL
Sinclair N KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Adams X StensethAustraliaElwin Sharvill PROPOSAL
Kaitlin Q WieserAustraliaAnna Fali NEW
Wickens N FigeroaRussiaOnyama Limba NEGOTIATION
Murillo X KolmetzGermanyXuxue Feng PROPOSAL
Aditya C MacleadArgentinaIoni Bowcher UNQUALIFIED
Jeanfrancois A AlbaresSpainElwin Sharvill QUALIFIED
Murillo F CampainSpainBernardo Dominic NEGOTIATION
David U PaprockiItalyIvan Magalhaes PROPOSAL
Ivar H RutaUnited KingdomIvan Magalhaes UNQUALIFIED
David S ButtCanadaAnna Fali UNQUALIFIED
Misaki L FlosiGermanyStephen Shaw QUALIFIED
Morrow S PaprockiCanadaBernardo Dominic NEW
Kadeem F WieserItalyAsiya Javayant NEW
Clifford A SchemmerBrazilIvan Magalhaes QUALIFIED
Morrow T RutaItalyBernardo Dominic RENEWAL
Mujtaba K InouyeRussiaIoni Bowcher PROPOSAL
Misaki O GarufiIndiaStephen Shaw NEW
Salvatore F MorascaItalyElwin Sharvill NEGOTIATION
Cody X RutaArgentinaIvan Magalhaes NEW
Smith M StockhamIndiaXuxue Feng NEW
Tony D CaldareraUnited KingdomBernardo Dominic RENEWAL
Jones T RulapaughCanadaElwin Sharvill QUALIFIED
Stacey L StockhamUnited KingdomIvan Magalhaes RENEWAL
Frozen Columns
Name
Ashley F Tollner
Jeanfrancois W Sergi
Juan O Maclead
Antonio D Shinko
Julie B Nicka
Silvio E Slusarski
Tony O Nicka
Jefferson Y Poquette
Octavia L Saylors
Octavia X Malet
Jeanfrancois T Gillian
Octavia V Saylors
Nicolas R Doe
Antonio W Perin
Jones C Vocelka
Cody J Butt
Aditya L Whobrey
Rodrigues Q Maclead
Cody C Kusko
Deepesh Z Tollner
Jones Y Wieser
Juan R Whobrey
Kaitlin U Tollner
David G Stockham
Jones Z Vocelka
Jeanfrancois G Glick
Tony P Royster
Ashley N Ruta
Antonio T Kolmetz
Johnson J Maclead
Mujtaba B Foller
Tony Z Kusko
Adams S Stockham
Ivar H Poquette
Nicolas H Caudy
Salvatore S Ostrosky
Sinclair V Doe
Aditya I Ruta
Leon E Vocelka
Murillo E Flosi
Chavez Q Caudy
Isabel X Tollner
Stacey C Ruta
Morrow V Stockham
Octavia U Bowley
Antonio Q Iturbide
Costa J Briddick
Salvatore F Albares
Jones G Rulapaugh
Maisha Q Butt
IdCountryDate
1000Germany2024-06-15
1001Japan2024-06-10
1002Spain2024-05-30
1003Japan2024-05-31
1004Germany2024-06-24
1005Germany2024-06-18
1006Russia2024-06-08
1007Russia2024-06-17
1008Japan2024-06-02
1009United Kingdom2024-06-19
1010Japan2024-06-11
1011United Kingdom2024-06-20
1012Italy2024-06-07
1013Australia2024-05-31
1014Canada2024-05-28
1015Argentina2024-06-16
1016Russia2024-06-20
1017Germany2024-06-11
1018Italy2024-06-11
1019Argentina2024-05-26
1020Canada2024-06-19
1021Germany2024-06-10
1022United Kingdom2024-06-22
1023India2024-06-16
1024Canada2024-06-03
1025Australia2024-06-19
1026Italy2024-06-21
1027Germany2024-05-28
1028Australia2024-06-18
1029Spain2024-06-06
1030Brazil2024-06-16
1031Germany2024-06-03
1032Germany2024-06-14
1033Russia2024-06-20
1034Russia2024-05-27
1035Spain2024-06-21
1036Russia2024-06-03
1037Australia2024-06-11
1038Canada2024-06-18
1039Russia2024-06-16
1040Italy2024-06-16
1041Argentina2024-06-13
1042France2024-06-20
1043Australia2024-06-11
1044Brazil2024-06-13
1045France2024-06-09
1046Spain2024-06-09
1047Japan2024-06-18
1048Canada2024-06-06
1049France2024-06-11

On-Demand Data

NameIdCountryDate
Octavia B Stenseth1000Italy2024-06-03
Mujtaba T Figeroa1001United Kingdom2024-06-01
Kadeem Z Perin1002Argentina2024-06-14
Claire M Rim1003Japan2024-06-20
Munro K Figeroa1004Spain2024-06-15
Tony O Chui1005United Kingdom2024-06-21
Claire G Briddick1006Argentina2024-06-02
Mayumi K Doe1007Australia2024-06-23
Julie G Ruta1008United Kingdom2024-05-28
Jeanfrancois K Nicka1009Brazil2024-06-01
Johnson U Butt1010Spain2024-05-26
Faith S Foller1011Spain2024-05-31
David E Kusko1012India2024-05-27
Kaitlin J Slusarski1013Japan2024-06-16
Costa A Gillian1014Japan2024-06-19
James F Ostrosky1015Italy2024-06-11
Ricardo F Venere1016Canada2024-06-17
David T Saylors1017Japan2024-06-13
Cody L Stenseth1018Argentina2024-06-18
Mayumi Y Shinko1019France2024-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues D BriddickGermanyAmy Elsner RENEWAL
Octavia F CaudySpainOnyama Limba RENEWAL
Mujtaba C FerenczCanadaIoni Bowcher QUALIFIED
Kadeem S BriddickJapanElwin Sharvill PROPOSAL
Jennifer V PoquetteArgentinaIvan Magalhaes NEW
Ashley B MorascaGermanyAmy Elsner NEW
James N NestleArgentinaAsiya Javayant NEW
Stacey Y NestleCanadaBernardo Dominic PROPOSAL
Salvatore C OstroskyBrazilAsiya Javayant NEGOTIATION
Mayumi M WaycottArgentinaIoni Bowcher PROPOSAL
Silvio C GillianCanadaAsiya Javayant UNQUALIFIED
Darci B ShinkoBrazilAmy Elsner QUALIFIED
Murillo J RoysterItalyIvan Magalhaes QUALIFIED
Arvin O WieserArgentinaAsiya Javayant QUALIFIED
Juan U NickaItalyOnyama Limba RENEWAL
Misaki M SchemmerCanadaIoni Bowcher PROPOSAL
Aruna M DoeBrazilIvan Magalhaes NEW
Isabel I IturbideCanadaXuxue Feng NEGOTIATION
Mujtaba N TollnerRussiaStephen Shaw NEGOTIATION
Chavez L FollerCanadaXuxue Feng RENEWAL
Faith Y CampainSpainXuxue Feng NEGOTIATION
Mayumi N KolmetzArgentinaOnyama Limba QUALIFIED
Wickens G PoquetteSpainAmy Elsner UNQUALIFIED
Munro A SlusarskiCanadaBernardo Dominic NEW
Cody O MacleadBrazilXuxue Feng UNQUALIFIED
Greenwood K RulapaughGermanyBernardo Dominic UNQUALIFIED
Salvatore R WieserItalyElwin Sharvill RENEWAL
Francesco M OstroskyJapanAmy Elsner NEGOTIATION
Jefferson B SlusarskiItalyBernardo Dominic NEW
Salvatore S NestleArgentinaIoni Bowcher NEGOTIATION
Juan J FollerItalyAnna Fali UNQUALIFIED
Mujtaba U CaldareraUnited KingdomOnyama Limba NEW
Arvin Q SchemmerCanadaAnna Fali RENEWAL
Ivar V RutaIndiaIoni Bowcher RENEWAL
Costa Z ButtItalyAnna Fali QUALIFIED
Chavez I NickaGermanyOnyama Limba NEGOTIATION
Jennifer R PaprockiAustraliaBernardo Dominic QUALIFIED
Octavia L NestleRussiaAnna Fali NEGOTIATION
Leon G InouyeAustraliaXuxue Feng NEGOTIATION
Isabel K NestleGermanyAnna 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>