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
Kadeem V FerenczArgentinaAmy Elsner RENEWAL
Claire S TollnerUnited KingdomXuxue Feng PROPOSAL
David Q OldroydArgentinaIoni Bowcher UNQUALIFIED
Maisha O ChuiItalyAnna Fali UNQUALIFIED
Arvin Q NestleBrazilIvan Magalhaes RENEWAL
Arvin T RulapaughAustraliaAsiya Javayant RENEWAL
Darci F IturbideArgentinaAnna Fali QUALIFIED
Mayumi W CampainGermanyIoni Bowcher RENEWAL
Jennifer A MarrierCanadaIoni Bowcher NEW
Nicolas P WaycottArgentinaAnna Fali QUALIFIED
Salvatore X GauchoIndiaXuxue Feng QUALIFIED
Juan T BriddickGermanyAmy Elsner UNQUALIFIED
Misaki T IturbideFranceAnna Fali PROPOSAL
Stacey W MarrierUnited KingdomIoni Bowcher UNQUALIFIED
Misaki V MorascaFranceStephen Shaw NEW
Claire T StockhamBrazilOnyama Limba QUALIFIED
Emily U BologniaArgentinaElwin Sharvill NEW
Ricardo V BriddickGermanyOnyama Limba NEW
Munro F SaylorsUnited KingdomElwin Sharvill RENEWAL
Cody X SchemmerArgentinaIoni Bowcher QUALIFIED
Johnson Y KolmetzCanadaAnna Fali UNQUALIFIED
Mujtaba G ChuiBrazilAmy Elsner NEGOTIATION
Mayumi E RutaUnited KingdomOnyama Limba NEGOTIATION
Kaitlin I MacleadIndiaElwin Sharvill RENEWAL
Maria D SaylorsArgentinaAnna Fali NEW
Greenwood F MaletItalyIoni Bowcher QUALIFIED
James O InouyeItalyIoni Bowcher NEW
Salvatore K DarakjyGermanyAnna Fali RENEWAL
Jefferson U PoquetteCanadaBernardo Dominic NEGOTIATION
Octavia F PoquetteItalyElwin Sharvill NEW
Munro H KuskoFranceAsiya Javayant UNQUALIFIED
Kaitlin X PerinRussiaAsiya Javayant UNQUALIFIED
Adams E BologniaFranceIvan Magalhaes NEW
Misaki W RimItalyOnyama Limba UNQUALIFIED
Kaitlin G WieserAustraliaOnyama Limba UNQUALIFIED
Clifford G ButtCanadaXuxue Feng RENEWAL
Jennifer B GillianRussiaElwin Sharvill UNQUALIFIED
Mujtaba Y BologniaAustraliaStephen Shaw RENEWAL
Cody X GillianFranceAnna Fali RENEWAL
Rodrigues G RimUnited KingdomAmy Elsner PROPOSAL
Silvio P SlusarskiRussiaIoni Bowcher NEW
Alejandro T ShinkoGermanyAnna Fali UNQUALIFIED
Kaitlin S PerinBrazilStephen Shaw QUALIFIED
Greenwood J PoquetteAustraliaAmy Elsner UNQUALIFIED
Aika S PerinBrazilElwin Sharvill NEGOTIATION
Jeanfrancois E DoeSpainElwin Sharvill UNQUALIFIED
Costa S RutaUnited KingdomOnyama Limba NEW
Salvatore H NestleArgentinaAmy Elsner NEGOTIATION
Stacey K BriddickSpainAnna Fali NEW
Salvatore U GillianRussiaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues H OldroydUnited KingdomAmy Elsner RENEWAL
Ashley Y MarrierBrazilAsiya Javayant UNQUALIFIED
Darci L DilliardArgentinaIoni Bowcher PROPOSAL
Clifford G ChuiGermanyXuxue Feng NEGOTIATION
Julie L FigeroaIndiaAsiya Javayant PROPOSAL
Cody A ShinkoJapanIoni Bowcher NEGOTIATION
Isabel L MaletSpainBernardo Dominic QUALIFIED
Mayumi F PoquetteBrazilElwin Sharvill UNQUALIFIED
Stacey W SlusarskiFranceOnyama Limba QUALIFIED
Antonio C SergiIndiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna U BologniaIndia2025-06-04Printing Dimensions NEGOTIATION82Ivan Magalhaes
1001Jones Q PoquetteItaly2025-05-20Benton, John B Jr UNQUALIFIED26Elwin Sharvill
1002Murillo U NickaIndia2025-06-10Benton, John B Jr RENEWAL70Elwin Sharvill
1003Aditya B DoeJapan2025-06-16Rousseaux, Michael Esq RENEWAL78Stephen Shaw
1004Smith V StensethRussia2025-05-19Morlong Associates NEGOTIATION69Ioni Bowcher
1005Julie K MorascaRussia2025-05-20Chapman, Ross E Esq NEGOTIATION18Xuxue Feng
1006Morrow E FlosiRussia2025-05-18Rangoni Of Florence NEGOTIATION99Elwin Sharvill
1007Julie L KolmetzUnited Kingdom2025-06-03Feiner Bros PROPOSAL18Xuxue Feng
1008Chavez O RimUnited Kingdom2025-05-18Chapman, Ross E Esq UNQUALIFIED25Onyama Limba
1009Jones X IturbideIndia2025-06-11Commercial Press NEGOTIATION62Stephen Shaw
1010Jennifer Q GlickCanada2025-05-22Rousseaux, Michael Esq NEW39Bernardo Dominic
1011Aika S MacleadUnited Kingdom2025-05-30Benton, John B Jr NEW80Ioni Bowcher
1012Morrow I DilliardRussia2025-05-22Commercial Press NEGOTIATION4Ioni Bowcher
1013Silvio O PoquetteUnited Kingdom2025-06-06Dorl, James J Esq RENEWAL45Onyama Limba
1014Clifford W MorascaCanada2025-06-01Dorl, James J Esq RENEWAL79Onyama Limba
1015Ivar Y WaycottItaly2025-06-15Rousseaux, Michael Esq NEGOTIATION88Elwin Sharvill
1016Jefferson J GlickItaly2025-06-07Truhlar And Truhlar Attys RENEWAL64Stephen Shaw
1017Misaki C ShinkoFrance2025-06-11King, Christopher A Esq QUALIFIED88Xuxue Feng
1018James E ChuiSpain2025-06-15Dorl, James J Esq QUALIFIED90Stephen Shaw
1019David W MaletCanada2025-06-12Benton, John B Jr UNQUALIFIED32Bernardo Dominic
1020Ashley B FlosiUnited Kingdom2025-05-27Truhlar And Truhlar Attys NEGOTIATION92Bernardo Dominic
1021Arvin C KuskoGermany2025-06-11King, Christopher A Esq NEGOTIATION89Bernardo Dominic
1022Sinclair W WieserBrazil2025-05-29Chanay, Jeffrey A Esq UNQUALIFIED45Ivan Magalhaes
1023Clifford O RutaArgentina2025-06-11Chapman, Ross E Esq UNQUALIFIED92Onyama Limba
1024Nicolas D GarufiIndia2025-06-12Benton, John B Jr RENEWAL6Ioni Bowcher
1025Tony A GauchoItaly2025-06-14Morlong Associates UNQUALIFIED20Asiya Javayant
1026Greenwood Y RutaCanada2025-05-19Commercial Press RENEWAL34Ioni Bowcher
1027Smith L GlickGermany2025-05-25Rangoni Of Florence QUALIFIED6Stephen Shaw
1028Julie P MorascaRussia2025-06-13Rousseaux, Michael Esq QUALIFIED78Anna Fali
1029Costa R TollnerRussia2025-06-16King, Christopher A Esq UNQUALIFIED45Ioni Bowcher
1030Clifford F GillianCanada2025-05-22Truhlar And Truhlar Attys NEW60Xuxue Feng
1031Silvio N NestleUnited Kingdom2025-06-13Chanay, Jeffrey A Esq NEW90Ivan Magalhaes
1032Adams S CaudyCanada2025-06-02Feltz Printing Service UNQUALIFIED42Amy Elsner
1033James O DoeArgentina2025-06-15Buckley Miller Wright QUALIFIED81Amy Elsner
1034Johnson A ButtCanada2025-06-15Truhlar And Truhlar Attys QUALIFIED84Ivan Magalhaes
1035James J DoeUnited Kingdom2025-05-26Buckley Miller Wright NEGOTIATION97Stephen Shaw
1036Emily X NickaGermany2025-06-09Commercial Press QUALIFIED6Stephen Shaw
1037Juan L ChuiIndia2025-06-15Feiner Bros NEGOTIATION91Xuxue Feng
1038Chavez G BologniaFrance2025-06-05Commercial Press NEW65Stephen Shaw
1039Juan O KuskoUnited Kingdom2025-05-29Chanay, Jeffrey A Esq UNQUALIFIED93Bernardo Dominic
1040Adams G KolmetzRussia2025-06-16Commercial Press NEGOTIATION84Bernardo Dominic
1041Rodrigues J NickaGermany2025-06-10Truhlar And Truhlar Attys NEW27Elwin Sharvill
1042Leon J SaylorsArgentina2025-06-03Feltz Printing Service QUALIFIED28Onyama Limba
1043Mujtaba B CampainItaly2025-06-14Rousseaux, Michael Esq PROPOSAL55Amy Elsner
1044Munro L MorascaItaly2025-05-21Rangoni Of Florence RENEWAL84Ivan Magalhaes
1045Alejandro N MaletUnited Kingdom2025-06-16Rangoni Of Florence QUALIFIED1Elwin Sharvill
1046Chavez W MacleadArgentina2025-06-16Feltz Printing Service NEW57Stephen Shaw
1047Claire J CaudyAustralia2025-06-11Rangoni Of Florence RENEWAL25Ioni Bowcher
1048Greenwood F BowleyBrazil2025-05-23Morlong Associates NEGOTIATION77Bernardo Dominic
1049Claire C DilliardFrance2025-06-11Benton, John B Jr NEW63Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Mayumi X AlbaresUnited KingdomAmy Elsner QUALIFIED
Ricardo G GarufiArgentinaStephen Shaw QUALIFIED
Rodrigues X BologniaCanadaIoni Bowcher RENEWAL
Emily M DarakjyCanadaOnyama Limba PROPOSAL
Aika C KuskoCanadaElwin Sharvill QUALIFIED
Smith A FerenczFranceAsiya Javayant QUALIFIED
Jefferson P FerenczBrazilAnna Fali QUALIFIED
Johnson X CaudyItalyXuxue Feng QUALIFIED
Misaki C DilliardRussiaBernardo Dominic UNQUALIFIED
Silvio Y ButtUnited KingdomOnyama Limba QUALIFIED
Morrow Z BowleyBrazilIoni Bowcher NEW
Francesco D OldroydRussiaAsiya Javayant QUALIFIED
David V DarakjyArgentinaBernardo Dominic RENEWAL
Octavia W CampainIndiaXuxue Feng RENEWAL
Aruna M StensethCanadaIvan Magalhaes QUALIFIED
Ricardo N DarakjySpainElwin Sharvill QUALIFIED
Sinclair Z OldroydAustraliaStephen Shaw QUALIFIED
Murillo K BriddickAustraliaIoni Bowcher RENEWAL
Chavez M IturbideUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois C VocelkaItalyIoni Bowcher QUALIFIED
Alejandro N DarakjyFranceElwin Sharvill PROPOSAL
Faith W SergiRussiaAsiya Javayant RENEWAL
Julie F SchemmerAustraliaOnyama Limba UNQUALIFIED
Deepesh E CaldareraArgentinaElwin Sharvill RENEWAL
Francesco B GillianGermanyStephen Shaw NEGOTIATION
Kaitlin W WieserGermanyStephen Shaw NEGOTIATION
Cody Q GarufiAustraliaElwin Sharvill QUALIFIED
Munro D MacleadAustraliaStephen Shaw RENEWAL
Maisha F CaudyUnited KingdomAmy Elsner NEGOTIATION
Juan C KuskoGermanyXuxue Feng PROPOSAL
Rodrigues H MacleadGermanyElwin Sharvill NEGOTIATION
Morrow A MacleadAustraliaIvan Magalhaes UNQUALIFIED
Maisha G TollnerAustraliaAnna Fali RENEWAL
Izzy J RoysterCanadaOnyama Limba NEGOTIATION
David I PoquetteRussiaAmy Elsner NEGOTIATION
Darci K CaudyGermanyElwin Sharvill QUALIFIED
Jennifer I NestleCanadaAmy Elsner QUALIFIED
Adams W ShinkoIndiaXuxue Feng NEGOTIATION
Leon Q ShinkoBrazilAmy Elsner UNQUALIFIED
Stacey Y PerinArgentinaIoni Bowcher QUALIFIED
Isabel G FerenczJapanAsiya Javayant NEW
Adams A WaycottSpainIvan Magalhaes RENEWAL
Octavia N RimUnited KingdomStephen Shaw NEW
Antonio M SergiIndiaStephen Shaw RENEWAL
Maisha Y GauchoItalyIoni Bowcher QUALIFIED
Ivar T ChuiGermanyStephen Shaw QUALIFIED
Leja T WhobreyGermanyAnna Fali UNQUALIFIED
Wickens W RimBrazilStephen Shaw QUALIFIED
Rodrigues R GarufiSpainIvan Magalhaes QUALIFIED
James P FollerBrazilElwin Sharvill QUALIFIED
Frozen Columns
Name
Maria Y Briddick
Ashley R Vocelka
Misaki X Saylors
Mayumi H Amigon
Aruna A Oldroyd
Misaki I Kolmetz
James P Campain
Aika S Vocelka
Isabel C Figeroa
Stacey F Schemmer
Adams R Doe
Aruna L Inouye
Wickens F Kolmetz
Clifford S Venere
Greenwood F Whobrey
Misaki C Inouye
Juan N Campain
Ashley Q Kolmetz
Greenwood A Maclead
Greenwood T Glick
Stacey D Nicka
Maisha D Ruta
Claire K Shinko
Claire K Stockham
Ricardo F Garufi
Morrow W Rulapaugh
Smith W Bolognia
Tony H Shinko
Nicolas U Malet
Morrow Z Gaucho
David T Bowley
Greenwood X Poquette
Nicolas N Ruta
Leja M Schemmer
Adams O Garufi
Alejandro V Campain
Sinclair E Nicka
Tony Z Campain
Clifford J Oldroyd
James P Slusarski
Murillo H Foller
David L Figeroa
Izzy H Slusarski
Ivar R Perin
Ashley K Royster
Octavia H Briddick
Wickens H Ferencz
Cody Q Stenseth
Kadeem O Butt
Rodrigues G Kusko
IdCountryDate
1000Russia2025-05-21
1001France2025-06-04
1002India2025-05-26
1003Argentina2025-06-07
1004Russia2025-06-13
1005Japan2025-06-09
1006Japan2025-05-28
1007Canada2025-06-09
1008Australia2025-05-30
1009Germany2025-06-09
1010Australia2025-06-08
1011India2025-06-16
1012India2025-06-10
1013Russia2025-06-04
1014Spain2025-05-18
1015Germany2025-06-13
1016Germany2025-05-19
1017Argentina2025-05-20
1018Spain2025-05-25
1019United Kingdom2025-05-20
1020Australia2025-06-13
1021Brazil2025-06-13
1022Spain2025-06-02
1023Italy2025-05-23
1024Brazil2025-06-15
1025India2025-05-29
1026United Kingdom2025-05-21
1027Brazil2025-06-08
1028United Kingdom2025-06-09
1029Spain2025-05-31
1030Australia2025-05-25
1031Russia2025-05-30
1032Argentina2025-05-23
1033Spain2025-06-06
1034Italy2025-06-09
1035Argentina2025-06-02
1036United Kingdom2025-05-31
1037Japan2025-06-06
1038Argentina2025-06-01
1039Spain2025-06-05
1040Germany2025-05-30
1041Brazil2025-05-24
1042Canada2025-05-21
1043Japan2025-06-08
1044India2025-05-28
1045Brazil2025-06-03
1046Germany2025-06-10
1047Canada2025-06-05
1048Australia2025-05-26
1049Russia2025-05-29

On-Demand Data

NameIdCountryDate
Ashley E Amigon1000United Kingdom2025-05-24
Greenwood E Bolognia1001Spain2025-06-16
Darci V Inouye1002Germany2025-05-23
Stacey X Figeroa1003Italy2025-05-24
Maria Q Rulapaugh1004Spain2025-06-10
Faith N Stenseth1005Russia2025-05-21
Tony Z Gaucho1006Argentina2025-06-01
Francesco P Malet1007Brazil2025-05-25
Costa Z Glick1008Germany2025-06-04
Kadeem P Kolmetz1009Russia2025-06-07
Adams F Schemmer1010Argentina2025-05-21
Darci X Bolognia1011Japan2025-05-20
Nicolas H Venere1012Brazil2025-05-21
Wickens L Foller1013United Kingdom2025-06-05
Kadeem E Stockham1014Canada2025-06-04
Wickens L Inouye1015Argentina2025-05-21
Aditya Z Shinko1016Japan2025-06-05
James Z Rulapaugh1017Japan2025-05-22
Alejandro W Malet1018Argentina2025-06-04
Deepesh D Poquette1019Canada2025-05-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar Q RoysterArgentinaAnna Fali PROPOSAL
Adams R SergiUnited KingdomAmy Elsner NEW
Smith O GlickCanadaXuxue Feng QUALIFIED
James N NestleRussiaIvan Magalhaes NEW
Julie C WhobreyAustraliaAnna Fali PROPOSAL
Wickens Z MarrierBrazilAnna Fali UNQUALIFIED
Costa Z GauchoBrazilElwin Sharvill RENEWAL
Costa Y FigeroaGermanyAmy Elsner UNQUALIFIED
Jefferson H MaletArgentinaBernardo Dominic QUALIFIED
Aika C MacleadAustraliaXuxue Feng NEGOTIATION
Darci A TollnerGermanyAnna Fali NEW
Octavia S OldroydCanadaAnna Fali RENEWAL
Maria E OldroydFranceAnna Fali UNQUALIFIED
Jefferson R MorascaArgentinaAmy Elsner NEGOTIATION
Adams J StockhamItalyAnna Fali NEGOTIATION
Kadeem F RimRussiaXuxue Feng UNQUALIFIED
Smith G DarakjyItalyBernardo Dominic NEW
Salvatore P VocelkaRussiaIoni Bowcher NEGOTIATION
Claire E AmigonSpainXuxue Feng NEW
Maisha K NickaArgentinaOnyama Limba PROPOSAL
Juan R StockhamGermanyIoni Bowcher RENEWAL
Cody P GillianIndiaOnyama Limba NEW
Murillo O DoeFranceAsiya Javayant QUALIFIED
Cody K AmigonIndiaAmy Elsner RENEWAL
Jones R BologniaBrazilXuxue Feng RENEWAL
Aruna T OstroskySpainXuxue Feng UNQUALIFIED
Clifford N RutaSpainStephen Shaw NEGOTIATION
Greenwood Z RimBrazilElwin Sharvill NEGOTIATION
Johnson Q SchemmerUnited KingdomBernardo Dominic UNQUALIFIED
Maisha D VocelkaIndiaBernardo Dominic PROPOSAL
Morrow B DilliardGermanyBernardo Dominic UNQUALIFIED
James M StensethSpainBernardo Dominic RENEWAL
Aruna I CampainFranceOnyama Limba UNQUALIFIED
Costa S MacleadAustraliaOnyama Limba RENEWAL
Aika G SlusarskiArgentinaAnna Fali NEGOTIATION
Aditya T KolmetzAustraliaBernardo Dominic RENEWAL
Misaki R GillianItalyIoni Bowcher NEW
Jennifer T InouyeItalyOnyama Limba NEGOTIATION
Octavia N SergiIndiaXuxue Feng NEGOTIATION
Tony X RutaCanadaIvan Magalhaes 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>