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
Chavez X PaprockiJapanXuxue Feng UNQUALIFIED
Costa Z AmigonItalyXuxue Feng RENEWAL
Costa M KuskoGermanyElwin Sharvill PROPOSAL
Murillo G BriddickGermanyOnyama Limba QUALIFIED
Jennifer L KolmetzIndiaXuxue Feng NEW
Mujtaba W SaylorsSpainIvan Magalhaes QUALIFIED
Jefferson W PoquetteRussiaXuxue Feng NEW
David W RutaItalyIoni Bowcher NEGOTIATION
Leon S MacleadArgentinaOnyama Limba NEW
Izzy C CampainAustraliaAnna Fali UNQUALIFIED
Leja Y WieserItalyAnna Fali NEW
Jeanfrancois Q MarrierUnited KingdomXuxue Feng UNQUALIFIED
Salvatore H MarrierAustraliaXuxue Feng PROPOSAL
Munro B InouyeRussiaIvan Magalhaes NEGOTIATION
Johnson E RulapaughJapanIvan Magalhaes PROPOSAL
Claire W GauchoItalyAsiya Javayant PROPOSAL
Maisha E BriddickCanadaAsiya Javayant RENEWAL
Adams N MaletItalyStephen Shaw PROPOSAL
Alejandro E DarakjyJapanAnna Fali QUALIFIED
Ivar U KolmetzIndiaStephen Shaw RENEWAL
Juan B MorascaItalyElwin Sharvill PROPOSAL
Adams W DoeItalyBernardo Dominic QUALIFIED
Alejandro D CampainAustraliaAmy Elsner NEGOTIATION
Darci C WaycottGermanyAsiya Javayant NEGOTIATION
Stacey D GarufiRussiaBernardo Dominic QUALIFIED
David M RoysterRussiaIoni Bowcher NEGOTIATION
Mayumi T RutaArgentinaBernardo Dominic RENEWAL
Antonio U NestleSpainAnna Fali QUALIFIED
Leon Z DoeGermanyElwin Sharvill PROPOSAL
Nicolas J BologniaIndiaAmy Elsner RENEWAL
Faith R MacleadGermanyAsiya Javayant UNQUALIFIED
Darci E VocelkaCanadaXuxue Feng UNQUALIFIED
Deepesh O SergiCanadaAmy Elsner UNQUALIFIED
Aditya R SergiArgentinaAmy Elsner PROPOSAL
Ivar O MorascaGermanyStephen Shaw NEW
Aditya F MacleadJapanStephen Shaw UNQUALIFIED
Octavia F ChuiItalyXuxue Feng NEW
Cody D WaycottUnited KingdomAmy Elsner QUALIFIED
Ivar X DarakjyItalyStephen Shaw UNQUALIFIED
Darci Y PerinBrazilAnna Fali QUALIFIED
Smith P SchemmerFranceElwin Sharvill PROPOSAL
Francesco Q ChuiFranceAsiya Javayant NEGOTIATION
Clifford B WaycottUnited KingdomXuxue Feng QUALIFIED
Aditya H AmigonFranceAsiya Javayant NEW
Arvin H GillianJapanAsiya Javayant NEW
Leja N FollerSpainAmy Elsner UNQUALIFIED
Jennifer Z CaldareraUnited KingdomStephen Shaw UNQUALIFIED
Silvio G PaprockiFranceOnyama Limba PROPOSAL
Jeanfrancois I AlbaresBrazilAmy Elsner NEGOTIATION
David R GauchoAustraliaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith Q SergiCanadaElwin Sharvill RENEWAL
Octavia T VocelkaIndiaElwin Sharvill NEGOTIATION
Silvio D OldroydBrazilIvan Magalhaes QUALIFIED
Emily P ButtCanadaBernardo Dominic NEGOTIATION
Sinclair W RimAustraliaIvan Magalhaes PROPOSAL
Morrow D CaudyArgentinaOnyama Limba RENEWAL
Aruna N AmigonFranceElwin Sharvill RENEWAL
Izzy F TollnerBrazilAsiya Javayant NEW
Ricardo T PoquetteIndiaStephen Shaw PROPOSAL
Aruna Z VocelkaGermanyAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore Z ShinkoAustralia2026-07-01Truhlar And Truhlar Attys QUALIFIED82Asiya Javayant
1001Jones R VenereAustralia2026-07-01Rangoni Of Florence NEW37Amy Elsner
1002Costa A StockhamGermany2026-06-27Dorl, James J Esq NEW45Xuxue Feng
1003Maria U PoquetteItaly2026-06-10Dorl, James J Esq RENEWAL14Ivan Magalhaes
1004Antonio W RulapaughBrazil2026-07-02Truhlar And Truhlar Attys PROPOSAL8Ivan Magalhaes
1005Greenwood L RoysterAustralia2026-07-03Morlong Associates NEW38Xuxue Feng
1006Maria F InouyeUnited Kingdom2026-07-01Chanay, Jeffrey A Esq PROPOSAL73Elwin Sharvill
1007Smith V GarufiItaly2026-06-22Morlong Associates NEGOTIATION16Elwin Sharvill
1008Aruna S DilliardRussia2026-06-26King, Christopher A Esq QUALIFIED2Ivan Magalhaes
1009Murillo K MaletRussia2026-06-25Truhlar And Truhlar Attys UNQUALIFIED34Xuxue Feng
1010Leon G RimBrazil2026-06-21Rangoni Of Florence QUALIFIED68Onyama Limba
1011Mayumi E DilliardUnited Kingdom2026-06-20Feltz Printing Service NEW31Elwin Sharvill
1012Silvio I RoysterIndia2026-06-15Chemel, James L Cpa PROPOSAL93Amy Elsner
1013Francesco R MacleadBrazil2026-06-26Commercial Press RENEWAL99Bernardo Dominic
1014Mujtaba E RoysterSpain2026-06-29Feiner Bros NEGOTIATION6Stephen Shaw
1015Jennifer L MarrierAustralia2026-06-26Feltz Printing Service RENEWAL81Stephen Shaw
1016Ricardo Z FerenczBrazil2026-06-25King, Christopher A Esq QUALIFIED63Amy Elsner
1017Arvin U NickaArgentina2026-06-29Truhlar And Truhlar Attys NEW94Stephen Shaw
1018Maisha N BriddickItaly2026-06-14Feltz Printing Service NEW69Ioni Bowcher
1019Darci N CaudyGermany2026-06-25King, Christopher A Esq NEW30Ivan Magalhaes
1020Octavia E WhobreyIndia2026-06-23Buckley Miller Wright NEGOTIATION84Elwin Sharvill
1021Salvatore C VenereAustralia2026-07-05Chanay, Jeffrey A Esq RENEWAL97Amy Elsner
1022Izzy A RulapaughFrance2026-06-11Buckley Miller Wright RENEWAL61Amy Elsner
1023Maisha P FollerGermany2026-06-25Benton, John B Jr NEGOTIATION2Ivan Magalhaes
1024Adams M CaldareraSpain2026-07-06Truhlar And Truhlar Attys NEW49Amy Elsner
1025Greenwood B GauchoIndia2026-06-18Chemel, James L Cpa NEGOTIATION54Asiya Javayant
1026Clifford R RutaFrance2026-07-02Rangoni Of Florence NEW1Amy Elsner
1027Antonio L WaycottUnited Kingdom2026-07-01Morlong Associates QUALIFIED31Asiya Javayant
1028Aruna Q FollerUnited Kingdom2026-07-03Buckley Miller Wright RENEWAL34Anna Fali
1029Faith M RutaArgentina2026-06-10Chanay, Jeffrey A Esq PROPOSAL31Bernardo Dominic
1030Silvio K ButtArgentina2026-06-15Feiner Bros RENEWAL85Ioni Bowcher
1031Cody B RulapaughJapan2026-07-07King, Christopher A Esq PROPOSAL26Ivan Magalhaes
1032Ivar M VenereBrazil2026-07-04Truhlar And Truhlar Attys NEW66Elwin Sharvill
1033Sinclair K InouyeSpain2026-06-22Rangoni Of Florence RENEWAL63Xuxue Feng
1034Isabel X VocelkaBrazil2026-07-06Printing Dimensions NEW0Bernardo Dominic
1035Leja M RulapaughJapan2026-07-09Dorl, James J Esq PROPOSAL45Asiya Javayant
1036Leja O NickaAustralia2026-06-11Commercial Press UNQUALIFIED20Bernardo Dominic
1037Chavez H IturbideGermany2026-06-18Feiner Bros NEW14Ioni Bowcher
1038Jeanfrancois A GillianSpain2026-06-12Feltz Printing Service PROPOSAL19Ioni Bowcher
1039Ivar V FlosiAustralia2026-06-28Printing Dimensions NEGOTIATION15Xuxue Feng
1040Faith J OstroskyArgentina2026-06-27Chemel, James L Cpa UNQUALIFIED18Anna Fali
1041Izzy Y PoquetteCanada2026-06-19Truhlar And Truhlar Attys RENEWAL10Asiya Javayant
1042Mujtaba O ShinkoSpain2026-06-12Commercial Press NEW23Elwin Sharvill
1043Julie Y BologniaRussia2026-06-12Commercial Press NEGOTIATION93Anna Fali
1044Jeanfrancois H BologniaIndia2026-06-25Feltz Printing Service RENEWAL90Ioni Bowcher
1045Munro X CaldareraUnited Kingdom2026-07-08Feltz Printing Service RENEWAL3Elwin Sharvill
1046Kaitlin D VenereFrance2026-06-13Benton, John B Jr UNQUALIFIED69Anna Fali
1047Johnson S ShinkoSpain2026-06-10Commercial Press UNQUALIFIED0Asiya Javayant
1048Izzy Q VenereItaly2026-06-17Dorl, James J Esq UNQUALIFIED19Anna Fali
1049Murillo B FerenczFrance2026-07-06Feltz Printing Service PROPOSAL91Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Tony K DoeUnited KingdomIvan Magalhaes NEW
Aditya Q PaprockiIndiaAsiya Javayant PROPOSAL
Morrow N GlickArgentinaAnna Fali NEW
Adams P AmigonSpainBernardo Dominic RENEWAL
Ashley N MarrierJapanXuxue Feng UNQUALIFIED
Maria F FigeroaSpainAsiya Javayant NEGOTIATION
Maria R PaprockiItalyOnyama Limba UNQUALIFIED
Morrow K SergiArgentinaStephen Shaw UNQUALIFIED
Munro K SergiCanadaAmy Elsner UNQUALIFIED
Mayumi A CaldareraFranceIoni Bowcher NEW
Ashley Q OldroydItalyAsiya Javayant PROPOSAL
Stacey Q ShinkoGermanyOnyama Limba QUALIFIED
Kaitlin Q CaldareraCanadaIoni Bowcher RENEWAL
Leja Q MaletUnited KingdomIoni Bowcher QUALIFIED
Julie E GauchoAustraliaElwin Sharvill UNQUALIFIED
Leon P MorascaIndiaAnna Fali QUALIFIED
Munro E CampainAustraliaAmy Elsner RENEWAL
Darci L ChuiAustraliaXuxue Feng NEW
Misaki R WieserItalyIvan Magalhaes NEGOTIATION
Darci O FlosiItalyBernardo Dominic NEW
Claire L PaprockiJapanIvan Magalhaes PROPOSAL
Julie T AlbaresAustraliaElwin Sharvill PROPOSAL
Isabel N DilliardIndiaXuxue Feng NEW
Julie U FerenczAustraliaElwin Sharvill NEW
David E StockhamFranceIvan Magalhaes PROPOSAL
Smith R KuskoAustraliaIoni Bowcher PROPOSAL
Mujtaba C PoquetteFranceStephen Shaw QUALIFIED
Stacey Q MarrierArgentinaBernardo Dominic RENEWAL
Smith V BowleyBrazilOnyama Limba NEGOTIATION
Alejandro B TollnerGermanyStephen Shaw UNQUALIFIED
Johnson R VenereItalyElwin Sharvill PROPOSAL
Isabel E BriddickFranceStephen Shaw NEW
Sinclair T VenereAustraliaStephen Shaw NEW
Jeanfrancois A BowleyArgentinaAmy Elsner QUALIFIED
Rodrigues Q AlbaresJapanIoni Bowcher UNQUALIFIED
Costa M PaprockiFranceStephen Shaw NEGOTIATION
Leja F RimArgentinaIoni Bowcher NEW
Greenwood W WhobreyRussiaIvan Magalhaes UNQUALIFIED
Leon J DoeItalyAmy Elsner UNQUALIFIED
Rodrigues I WieserGermanyOnyama Limba PROPOSAL
Aruna J RulapaughFranceXuxue Feng NEGOTIATION
Greenwood G GillianCanadaXuxue Feng UNQUALIFIED
Maria C SchemmerFranceXuxue Feng RENEWAL
Mayumi N DarakjyAustraliaAsiya Javayant NEW
Alejandro Z OstroskyIndiaStephen Shaw NEGOTIATION
Munro W PerinGermanyElwin Sharvill RENEWAL
Rodrigues F RulapaughJapanElwin Sharvill NEW
Greenwood M MorascaAustraliaAnna Fali NEW
Nicolas T RoysterUnited KingdomIoni Bowcher NEGOTIATION
Claire V OstroskyArgentinaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Salvatore V Bowley
Clifford I Oldroyd
David O Nestle
Adams X Malet
Alejandro X Bowley
Faith S Nicka
Morrow A Ferencz
Mayumi W Malet
Rodrigues I Paprocki
Darci S Kolmetz
James Q Stenseth
Francesco D Butt
Alejandro H Ostrosky
Greenwood J Malet
Rodrigues H Ruta
Rodrigues H Butt
Greenwood C Venere
Smith J Iturbide
Leja V Rulapaugh
Ricardo Y Vocelka
Stacey R Glick
Aika F Glick
Octavia G Wieser
Octavia I Gillian
Leja J Ruta
Maria T Doe
Salvatore K Morasca
Wickens G Darakjy
Kadeem P Garufi
Cody O Ostrosky
Tony A Ostrosky
Costa E Wieser
Maria E Tollner
Mujtaba R Oldroyd
Silvio F Doe
Rodrigues F Tollner
Clifford O Ruta
Izzy R Whobrey
Maisha M Morasca
Adams O Saylors
Arvin T Foller
Mayumi P Shinko
Ashley L Sergi
Maisha T Foller
Aditya Z Nicka
Salvatore K Stenseth
Cody P Inouye
Julie O Paprocki
Aruna R Malet
Ashley H Doe
IdCountryDate
1000Spain2026-06-27
1001Brazil2026-07-08
1002Russia2026-06-18
1003Spain2026-06-22
1004France2026-07-07
1005Russia2026-06-18
1006Brazil2026-06-30
1007Spain2026-06-16
1008Canada2026-06-20
1009France2026-06-27
1010Brazil2026-06-25
1011Germany2026-07-09
1012Spain2026-07-06
1013Germany2026-06-28
1014Russia2026-06-17
1015Argentina2026-06-17
1016Italy2026-06-17
1017United Kingdom2026-06-11
1018Canada2026-06-26
1019Italy2026-06-29
1020Canada2026-06-14
1021Canada2026-06-29
1022Canada2026-06-16
1023Spain2026-07-07
1024Argentina2026-06-22
1025Germany2026-07-05
1026Argentina2026-07-08
1027Argentina2026-06-11
1028Germany2026-06-20
1029Spain2026-06-20
1030Germany2026-06-21
1031Japan2026-06-10
1032Brazil2026-06-20
1033Canada2026-06-24
1034Japan2026-07-02
1035India2026-06-23
1036Italy2026-06-27
1037Brazil2026-06-29
1038Russia2026-06-19
1039United Kingdom2026-07-04
1040Australia2026-06-17
1041Argentina2026-06-18
1042Italy2026-06-13
1043Spain2026-06-28
1044Brazil2026-07-07
1045Russia2026-07-06
1046Japan2026-06-23
1047Spain2026-06-24
1048Australia2026-07-05
1049Brazil2026-06-24

On-Demand Data

NameIdCountryDate
Kaitlin W Royster1000Spain2026-06-26
Jeanfrancois N Ferencz1001United Kingdom2026-06-24
Adams C Butt1002Germany2026-07-05
Jeanfrancois M Nicka1003Japan2026-06-12
Munro W Darakjy1004Italy2026-07-09
Maisha H Vocelka1005Canada2026-07-02
Mayumi U Shinko1006Russia2026-06-27
Octavia F Bolognia1007Argentina2026-06-10
Mayumi T Waycott1008Italy2026-06-15
Sinclair W Figeroa1009Germany2026-07-02
Alejandro J Tollner1010Germany2026-06-12
Maria O Perin1011Russia2026-07-07
Cody H Stockham1012Russia2026-06-12
Aditya N Ruta1013Russia2026-06-17
Maria D Gillian1014United Kingdom2026-06-24
Izzy R Poquette1015France2026-06-17
Cody O Shinko1016Russia2026-06-18
Ashley Y Stockham1017Argentina2026-07-07
Greenwood B Saylors1018Russia2026-07-05
Izzy G Slusarski1019Germany2026-07-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood D SaylorsSpainIvan Magalhaes NEW
Salvatore E GlickCanadaStephen Shaw QUALIFIED
Izzy Y TollnerCanadaElwin Sharvill RENEWAL
Sinclair W RoysterUnited KingdomElwin Sharvill RENEWAL
Deepesh T WhobreyCanadaBernardo Dominic RENEWAL
Chavez N RimCanadaStephen Shaw UNQUALIFIED
Misaki A ChuiIndiaAnna Fali NEGOTIATION
Ashley A SergiArgentinaIvan Magalhaes NEW
Maisha F InouyeJapanBernardo Dominic NEW
David U SchemmerSpainElwin Sharvill UNQUALIFIED
Munro M InouyeBrazilAnna Fali QUALIFIED
Chavez Y KuskoGermanyAnna Fali RENEWAL
Darci G GlickFranceStephen Shaw QUALIFIED
Deepesh W StockhamIndiaAmy Elsner NEW
Jones K SchemmerAustraliaIvan Magalhaes NEW
Clifford F MacleadGermanyBernardo Dominic NEW
Sinclair K OldroydSpainBernardo Dominic QUALIFIED
Misaki T TollnerUnited KingdomIoni Bowcher RENEWAL
Octavia A InouyeArgentinaStephen Shaw PROPOSAL
Isabel W RimFranceAsiya Javayant RENEWAL
Mayumi K GauchoFranceIoni Bowcher UNQUALIFIED
Izzy I InouyeArgentinaAnna Fali RENEWAL
Mujtaba P FlosiCanadaElwin Sharvill RENEWAL
Murillo A GauchoItalyStephen Shaw RENEWAL
Morrow L StensethJapanIoni Bowcher RENEWAL
Deepesh N GauchoFranceAmy Elsner UNQUALIFIED
Wickens E PaprockiArgentinaStephen Shaw RENEWAL
Juan M SchemmerJapanElwin Sharvill QUALIFIED
Alejandro O SaylorsCanadaStephen Shaw UNQUALIFIED
David S KuskoItalyOnyama Limba NEW
Cody Y VocelkaCanadaIoni Bowcher PROPOSAL
Jones R BologniaItalyIoni Bowcher RENEWAL
Wickens S NickaJapanBernardo Dominic UNQUALIFIED
Aditya I ShinkoArgentinaIvan Magalhaes RENEWAL
Alejandro C AlbaresCanadaIoni Bowcher NEW
Aditya V SlusarskiFranceIoni Bowcher NEGOTIATION
David I AmigonArgentinaIvan Magalhaes UNQUALIFIED
Adams T WaycottArgentinaAmy Elsner UNQUALIFIED
Emily W DarakjyBrazilAsiya Javayant NEGOTIATION
Ashley C GarufiIndiaBernardo Dominic QUALIFIED

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