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
Sinclair H WhobreyRussiaIoni Bowcher NEGOTIATION
Cody Y AmigonRussiaElwin Sharvill UNQUALIFIED
Mujtaba D FollerBrazilBernardo Dominic NEW
Costa N VocelkaRussiaIvan Magalhaes RENEWAL
Murillo E BowleySpainAmy Elsner QUALIFIED
Mujtaba X SchemmerBrazilXuxue Feng RENEWAL
Munro R RulapaughJapanOnyama Limba UNQUALIFIED
Leon X VocelkaCanadaStephen Shaw PROPOSAL
Sinclair Y OstroskyItalyAsiya Javayant NEW
Kadeem I OstroskyGermanyXuxue Feng QUALIFIED
Maisha U MacleadSpainElwin Sharvill QUALIFIED
Stacey Z TollnerUnited KingdomBernardo Dominic QUALIFIED
Julie U FollerIndiaAmy Elsner PROPOSAL
Darci A SchemmerItalyAsiya Javayant RENEWAL
Aditya G PoquetteGermanyAmy Elsner PROPOSAL
Jones J DoeJapanStephen Shaw UNQUALIFIED
Octavia B BriddickAustraliaIoni Bowcher RENEWAL
Salvatore L WaycottSpainBernardo Dominic UNQUALIFIED
Jennifer M DilliardIndiaIoni Bowcher QUALIFIED
Morrow N FlosiCanadaAnna Fali NEGOTIATION
Maisha A MorascaGermanyXuxue Feng PROPOSAL
David L MaletBrazilAmy Elsner UNQUALIFIED
Kaitlin M AlbaresArgentinaIvan Magalhaes RENEWAL
Rodrigues T GlickRussiaStephen Shaw UNQUALIFIED
Rodrigues S CampainUnited KingdomIvan Magalhaes QUALIFIED
Ivar G GauchoSpainAsiya Javayant QUALIFIED
Aika M GarufiFranceIvan Magalhaes NEW
Jeanfrancois C MacleadUnited KingdomAsiya Javayant QUALIFIED
Morrow T BologniaGermanyAsiya Javayant PROPOSAL
David P OstroskyRussiaBernardo Dominic UNQUALIFIED
Ricardo Y TollnerFranceAmy Elsner NEGOTIATION
Aruna D RoysterFranceElwin Sharvill QUALIFIED
Smith V BowleyJapanAnna Fali RENEWAL
Tony V SlusarskiArgentinaAmy Elsner UNQUALIFIED
Kaitlin N BriddickArgentinaIoni Bowcher PROPOSAL
James D PoquetteItalyAnna Fali QUALIFIED
Faith H BowleyCanadaElwin Sharvill NEW
Leja I StensethUnited KingdomXuxue Feng PROPOSAL
Julie Y MacleadRussiaBernardo Dominic RENEWAL
Ashley K DilliardFranceAnna Fali NEW
Silvio X AlbaresRussiaStephen Shaw NEW
Mayumi T WieserUnited KingdomAsiya Javayant RENEWAL
Julie F CaldareraArgentinaAnna Fali NEGOTIATION
Stacey S IturbideItalyAnna Fali QUALIFIED
Claire O StensethBrazilAnna Fali PROPOSAL
Nicolas K OldroydCanadaAmy Elsner NEGOTIATION
Aruna V BowleyAustraliaBernardo Dominic UNQUALIFIED
Chavez G MacleadUnited KingdomElwin Sharvill UNQUALIFIED
Aika Z SchemmerIndiaOnyama Limba NEGOTIATION
Wickens I RoysterAustraliaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Ashley X PerinAustraliaOnyama Limba UNQUALIFIED
Alejandro Q ButtUnited KingdomIvan Magalhaes PROPOSAL
Izzy C PoquetteAustraliaAnna Fali NEGOTIATION
Claire N MaletItalyStephen Shaw PROPOSAL
Ricardo T MaletUnited KingdomStephen Shaw NEW
Juan O KuskoItalyOnyama Limba QUALIFIED
Misaki W VocelkaAustraliaIoni Bowcher NEGOTIATION
Isabel H IturbideCanadaXuxue Feng PROPOSAL
Jefferson I VocelkaArgentinaXuxue Feng NEW
Aditya H AlbaresSpainStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire M CaudyAustralia2026-08-12King, Christopher A Esq RENEWAL95Onyama Limba
1001Leon U DilliardJapan2026-08-04Benton, John B Jr QUALIFIED42Anna Fali
1002Juan A SlusarskiCanada2026-08-16Buckley Miller Wright UNQUALIFIED50Amy Elsner
1003Cody E ShinkoArgentina2026-08-22Morlong Associates RENEWAL58Stephen Shaw
1004Juan M SchemmerRussia2026-08-03Benton, John B Jr PROPOSAL99Onyama Limba
1005Jennifer T WhobreyUnited Kingdom2026-08-23Chapman, Ross E Esq UNQUALIFIED93Bernardo Dominic
1006David A MaletUnited Kingdom2026-08-21Morlong Associates NEGOTIATION74Onyama Limba
1007Salvatore M OldroydFrance2026-08-14Dorl, James J Esq NEW78Bernardo Dominic
1008Munro B StockhamFrance2026-08-17Feiner Bros NEGOTIATION0Ioni Bowcher
1009Nicolas Z ButtItaly2026-08-16Benton, John B Jr RENEWAL4Amy Elsner
1010Maria Y PerinArgentina2026-08-04Truhlar And Truhlar Attys NEW43Anna Fali
1011Emily A TollnerCanada2026-08-05Chapman, Ross E Esq PROPOSAL71Elwin Sharvill
1012Mayumi X ChuiAustralia2026-08-02Benton, John B Jr QUALIFIED74Anna Fali
1013Jennifer F OldroydUnited Kingdom2026-08-23Buckley Miller Wright PROPOSAL49Amy Elsner
1014Aika L SlusarskiArgentina2026-07-30Rangoni Of Florence NEGOTIATION66Bernardo Dominic
1015Mujtaba A BriddickItaly2026-08-08Truhlar And Truhlar Attys NEGOTIATION4Asiya Javayant
1016Cody C RulapaughIndia2026-08-10Chemel, James L Cpa NEW48Ioni Bowcher
1017Rodrigues C SchemmerJapan2026-08-09Commercial Press UNQUALIFIED45Bernardo Dominic
1018Darci G FigeroaAustralia2026-08-21Printing Dimensions RENEWAL78Asiya Javayant
1019Ricardo D MarrierGermany2026-08-22Dorl, James J Esq QUALIFIED62Onyama Limba
1020Adams X BologniaFrance2026-08-06Chanay, Jeffrey A Esq PROPOSAL51Amy Elsner
1021Julie K DilliardSpain2026-08-25Chanay, Jeffrey A Esq PROPOSAL50Onyama Limba
1022Murillo N PoquetteAustralia2026-08-13Feltz Printing Service NEW44Anna Fali
1023Emily C ButtIndia2026-08-18Feiner Bros QUALIFIED22Stephen Shaw
1024Claire H DoeArgentina2026-08-19Feltz Printing Service PROPOSAL6Amy Elsner
1025Greenwood E DilliardBrazil2026-08-13Rangoni Of Florence QUALIFIED73Ivan Magalhaes
1026Darci C GauchoRussia2026-08-05Morlong Associates RENEWAL0Xuxue Feng
1027Octavia T FigeroaArgentina2026-08-06Dorl, James J Esq UNQUALIFIED28Anna Fali
1028Isabel A BriddickItaly2026-08-20Printing Dimensions PROPOSAL84Anna Fali
1029Salvatore S InouyeJapan2026-08-01Morlong Associates NEW67Ivan Magalhaes
1030Misaki O GarufiUnited Kingdom2026-08-27Chemel, James L Cpa NEW4Ioni Bowcher
1031Francesco S PerinArgentina2026-08-16Chanay, Jeffrey A Esq NEW39Ioni Bowcher
1032Alejandro P FigeroaJapan2026-08-19Feltz Printing Service NEW23Elwin Sharvill
1033Morrow R PoquetteFrance2026-08-24Truhlar And Truhlar Attys RENEWAL26Bernardo Dominic
1034Adams V WaycottFrance2026-08-19Feiner Bros PROPOSAL25Asiya Javayant
1035Aditya F WieserFrance2026-08-09Chapman, Ross E Esq QUALIFIED6Anna Fali
1036Kaitlin C CaudyItaly2026-08-13Morlong Associates UNQUALIFIED33Elwin Sharvill
1037Deepesh E SergiBrazil2026-08-07Morlong Associates NEW17Ioni Bowcher
1038Maria O KuskoJapan2026-07-31Chemel, James L Cpa NEW22Onyama Limba
1039Aruna H SchemmerAustralia2026-08-15Buckley Miller Wright QUALIFIED54Anna Fali
1040Jones X FollerFrance2026-08-09Morlong Associates NEGOTIATION2Ioni Bowcher
1041Jennifer W MorascaRussia2026-08-01Commercial Press QUALIFIED84Ioni Bowcher
1042Chavez V KuskoCanada2026-08-08Benton, John B Jr QUALIFIED97Ioni Bowcher
1043Alejandro I IturbideRussia2026-08-27Chemel, James L Cpa QUALIFIED51Elwin Sharvill
1044Aruna W PaprockiUnited Kingdom2026-07-30Morlong Associates NEGOTIATION87Asiya Javayant
1045Izzy G MaletFrance2026-08-01Chemel, James L Cpa QUALIFIED51Stephen Shaw
1046Darci C GlickBrazil2026-08-25Buckley Miller Wright NEGOTIATION67Anna Fali
1047Deepesh R MaletUnited Kingdom2026-08-15Rousseaux, Michael Esq PROPOSAL89Anna Fali
1048Kadeem A BowleyAustralia2026-08-10Benton, John B Jr RENEWAL72Anna Fali
1049Wickens S FigeroaGermany2026-08-13Rousseaux, Michael Esq QUALIFIED61Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Cody H WieserGermanyOnyama Limba NEW
Darci U FigeroaAustraliaXuxue Feng PROPOSAL
Arvin A WieserArgentinaOnyama Limba NEW
Kadeem Y ButtItalyXuxue Feng RENEWAL
Murillo Z AmigonJapanBernardo Dominic QUALIFIED
Emily R WhobreyFranceAsiya Javayant NEGOTIATION
Stacey N RoysterRussiaAnna Fali RENEWAL
Octavia I PoquetteAustraliaIoni Bowcher RENEWAL
Rodrigues U WieserArgentinaOnyama Limba NEW
Greenwood L WieserIndiaStephen Shaw PROPOSAL
Greenwood R FigeroaFranceAsiya Javayant NEGOTIATION
Morrow Z AmigonRussiaIvan Magalhaes UNQUALIFIED
Julie X WhobreyBrazilStephen Shaw NEW
Jennifer O FollerRussiaIoni Bowcher NEGOTIATION
Aika D PerinArgentinaXuxue Feng RENEWAL
Mayumi C MorascaFranceAsiya Javayant NEGOTIATION
Alejandro K PerinFranceBernardo Dominic QUALIFIED
Misaki Z NickaItalyOnyama Limba QUALIFIED
Maisha R DoeGermanyAmy Elsner PROPOSAL
Arvin W StockhamItalyAmy Elsner UNQUALIFIED
Misaki Z RutaUnited KingdomBernardo Dominic RENEWAL
Julie Y GauchoCanadaStephen Shaw QUALIFIED
Murillo N WhobreyFranceAmy Elsner PROPOSAL
Mayumi T WieserUnited KingdomBernardo Dominic RENEWAL
Stacey P GlickSpainAnna Fali QUALIFIED
Deepesh D FigeroaSpainAmy Elsner NEW
Emily Y MaletUnited KingdomBernardo Dominic UNQUALIFIED
Morrow H WhobreyIndiaAmy Elsner NEW
Adams O WieserIndiaBernardo Dominic PROPOSAL
Smith Y GillianIndiaBernardo Dominic UNQUALIFIED
Antonio P SchemmerIndiaElwin Sharvill QUALIFIED
Jennifer Z FerenczBrazilAnna Fali RENEWAL
Adams X MorascaRussiaIvan Magalhaes RENEWAL
Silvio M GillianFranceStephen Shaw RENEWAL
Mujtaba S StensethCanadaIoni Bowcher PROPOSAL
Misaki J DilliardAustraliaAmy Elsner PROPOSAL
Rodrigues E BowleyIndiaXuxue Feng QUALIFIED
Adams E PoquetteArgentinaElwin Sharvill RENEWAL
Ivar D StensethAustraliaBernardo Dominic RENEWAL
Claire U ChuiItalyAmy Elsner PROPOSAL
Darci N PaprockiBrazilOnyama Limba QUALIFIED
Mujtaba P MacleadItalyIoni Bowcher PROPOSAL
David Q TollnerFranceStephen Shaw PROPOSAL
Mujtaba Q ButtUnited KingdomIvan Magalhaes NEGOTIATION
Clifford I DoeItalyElwin Sharvill NEW
Leja G InouyeIndiaIoni Bowcher UNQUALIFIED
Francesco X NestleIndiaIvan Magalhaes NEW
Cody H NestleSpainXuxue Feng NEGOTIATION
Mayumi C WhobreyCanadaAmy Elsner UNQUALIFIED
Johnson J AmigonFranceAnna Fali UNQUALIFIED
Frozen Columns
Name
Greenwood H Glick
Silvio N Ferencz
Jones V Caudy
Kaitlin T Rim
Aditya Z Iturbide
Munro R Stockham
Misaki T Caudy
Jefferson C Saylors
Morrow M Whobrey
Claire K Royster
Isabel L Stenseth
Rodrigues W Darakjy
Murillo A Nestle
Sinclair L Briddick
Ricardo B Butt
Jones C Malet
Darci X Amigon
Salvatore T Dilliard
Tony N Ruta
Sinclair C Doe
Leja Q Waycott
Ivar T Sergi
Aika M Vocelka
Faith Y Nicka
James S Shinko
Julie U Waycott
Morrow N Stockham
Ivar Z Shinko
Silvio O Dilliard
Wickens P Flosi
Jeanfrancois B Waycott
Maria O Dilliard
Ashley J Glick
Kaitlin K Morasca
Kaitlin G Shinko
Octavia Y Chui
Aika H Caudy
Kaitlin C Paprocki
Morrow P Stenseth
Aika T Bowley
Julie T Venere
Isabel Q Paprocki
Cody B Schemmer
Silvio K Ruta
Arvin L Garufi
Faith L Doe
Kaitlin O Whobrey
Kadeem N Paprocki
Faith A Wieser
Tony Q Royster
IdCountryDate
1000Japan2026-08-09
1001India2026-08-21
1002Germany2026-08-09
1003Germany2026-07-31
1004France2026-08-08
1005Italy2026-08-10
1006Canada2026-08-24
1007Brazil2026-08-08
1008France2026-08-05
1009France2026-08-12
1010Japan2026-08-06
1011Brazil2026-08-14
1012Australia2026-08-22
1013France2026-08-11
1014Canada2026-08-10
1015Germany2026-08-25
1016Australia2026-08-01
1017Italy2026-08-07
1018Canada2026-08-05
1019France2026-08-09
1020Brazil2026-08-14
1021Brazil2026-08-24
1022United Kingdom2026-07-31
1023Spain2026-08-25
1024India2026-08-07
1025Germany2026-08-25
1026Germany2026-08-21
1027Australia2026-08-04
1028Germany2026-08-08
1029Japan2026-08-15
1030Italy2026-08-05
1031Australia2026-08-07
1032Argentina2026-07-30
1033Italy2026-08-01
1034United Kingdom2026-07-31
1035Spain2026-08-06
1036India2026-08-24
1037India2026-08-26
1038Spain2026-08-16
1039Germany2026-08-15
1040Brazil2026-08-15
1041Spain2026-08-17
1042Germany2026-08-17
1043India2026-08-18
1044Argentina2026-08-27
1045Spain2026-08-03
1046Russia2026-08-03
1047Brazil2026-08-23
1048Argentina2026-08-18
1049Italy2026-08-16

On-Demand Data

NameIdCountryDate
Kaitlin Y Perin1000Argentina2026-07-29
Aditya S Doe1001Brazil2026-08-09
Greenwood N Glick1002Spain2026-07-30
Salvatore O Iturbide1003Germany2026-08-17
Octavia H Sergi1004Canada2026-08-01
Octavia M Shinko1005United Kingdom2026-08-19
Alejandro T Stockham1006Australia2026-07-29
Rodrigues F Marrier1007Spain2026-08-17
Octavia G Albares1008Argentina2026-08-21
Nicolas U Vocelka1009Japan2026-08-12
Ivar G Kolmetz1010Japan2026-08-15
Rodrigues X Darakjy1011Italy2026-08-05
Wickens N Perin1012Australia2026-08-15
Adams G Shinko1013Canada2026-08-12
Murillo D Vocelka1014Canada2026-08-24
Maisha L Venere1015France2026-08-03
Murillo F Rim1016Canada2026-08-04
Jefferson K Kusko1017Germany2026-08-16
Juan T Ruta1018Germany2026-08-16
Maria Z Marrier1019France2026-08-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia N FollerSpainXuxue Feng PROPOSAL
Silvio B CaudyGermanyIoni Bowcher QUALIFIED
Cody P InouyeGermanyIvan Magalhaes NEGOTIATION
Izzy M ChuiAustraliaAmy Elsner QUALIFIED
Murillo Z BriddickBrazilAnna Fali NEW
Maria D GauchoJapanElwin Sharvill NEGOTIATION
Octavia D StensethArgentinaStephen Shaw QUALIFIED
Chavez H PoquetteArgentinaAsiya Javayant NEW
Adams G GarufiBrazilAnna Fali UNQUALIFIED
Arvin U NestleBrazilOnyama Limba QUALIFIED
Munro Z NickaRussiaBernardo Dominic QUALIFIED
Antonio O DarakjySpainStephen Shaw PROPOSAL
Claire J OldroydIndiaAmy Elsner UNQUALIFIED
Silvio V WhobreyRussiaElwin Sharvill QUALIFIED
Adams K SaylorsItalyBernardo Dominic NEW
Chavez U StockhamAustraliaAnna Fali NEGOTIATION
Kadeem K BologniaBrazilIoni Bowcher NEGOTIATION
Clifford A CampainJapanXuxue Feng NEW
Alejandro Y AmigonBrazilStephen Shaw NEW
Francesco R BowleyItalyIoni Bowcher RENEWAL
Aika F GillianJapanAmy Elsner UNQUALIFIED
Emily U GarufiItalyXuxue Feng NEGOTIATION
Isabel T GlickIndiaOnyama Limba QUALIFIED
Greenwood S GarufiCanadaElwin Sharvill UNQUALIFIED
Tony R AmigonIndiaXuxue Feng RENEWAL
Jennifer Z RimArgentinaAnna Fali RENEWAL
Tony G WaycottArgentinaBernardo Dominic NEW
Wickens V GauchoRussiaElwin Sharvill NEW
Sinclair E MaletUnited KingdomAmy Elsner NEGOTIATION
Sinclair J MacleadCanadaOnyama Limba NEW
Clifford S RimAustraliaElwin Sharvill RENEWAL
Jeanfrancois R BologniaItalyElwin Sharvill NEGOTIATION
Ricardo O InouyeArgentinaXuxue Feng NEW
Silvio S SlusarskiItalyXuxue Feng NEW
Jennifer Q TollnerArgentinaAmy Elsner NEW
Mujtaba G TollnerArgentinaOnyama Limba UNQUALIFIED
Stacey E RulapaughFranceAnna Fali RENEWAL
Chavez U MaletFranceIoni Bowcher NEGOTIATION
Deepesh E CaudyFranceAnna Fali QUALIFIED
Jennifer P PerinCanadaStephen Shaw NEW

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