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
David I FlosiAustraliaAmy Elsner QUALIFIED
Munro B NestleSpainAnna Fali QUALIFIED
Octavia N WhobreyBrazilAmy Elsner UNQUALIFIED
Aruna A NickaIndiaElwin Sharvill PROPOSAL
Maria A CaldareraFranceAmy Elsner NEW
Deepesh G SlusarskiAustraliaXuxue Feng PROPOSAL
Aika T WieserFranceElwin Sharvill UNQUALIFIED
Smith O PerinBrazilAnna Fali NEGOTIATION
Sinclair M GillianJapanXuxue Feng NEW
Misaki I DoeRussiaAnna Fali UNQUALIFIED
Murillo H BologniaBrazilStephen Shaw RENEWAL
Alejandro O AmigonGermanyAnna Fali NEW
Juan M ShinkoGermanyXuxue Feng UNQUALIFIED
Greenwood N PoquetteGermanyAmy Elsner PROPOSAL
Emily H WieserItalyAnna Fali PROPOSAL
Faith V NickaSpainOnyama Limba PROPOSAL
Wickens Z PerinSpainOnyama Limba RENEWAL
David L MarrierCanadaElwin Sharvill NEW
Kadeem C ChuiFranceIoni Bowcher UNQUALIFIED
Ivar M DoeArgentinaIoni Bowcher RENEWAL
Clifford K VocelkaRussiaIvan Magalhaes PROPOSAL
Stacey G DilliardItalyXuxue Feng NEGOTIATION
David T ButtArgentinaAnna Fali NEW
Chavez T VocelkaArgentinaAmy Elsner PROPOSAL
Kadeem E OldroydSpainElwin Sharvill PROPOSAL
Cody N SlusarskiBrazilXuxue Feng RENEWAL
Jennifer Q ButtBrazilAsiya Javayant PROPOSAL
Octavia I MarrierFranceIoni Bowcher RENEWAL
Chavez P IturbideCanadaAsiya Javayant NEW
Emily J ChuiFranceElwin Sharvill UNQUALIFIED
Ricardo X SchemmerRussiaIoni Bowcher NEW
Sinclair N FerenczIndiaAmy Elsner PROPOSAL
Tony A SchemmerBrazilAsiya Javayant NEW
Juan D DoeSpainStephen Shaw PROPOSAL
Salvatore R CaldareraItalyAnna Fali UNQUALIFIED
Ricardo N SergiCanadaIvan Magalhaes UNQUALIFIED
Nicolas K PerinUnited KingdomXuxue Feng NEW
Emily I BriddickFranceAnna Fali PROPOSAL
Antonio D SergiJapanBernardo Dominic NEW
Jefferson U IturbideCanadaAmy Elsner UNQUALIFIED
Misaki Q CaudyUnited KingdomIvan Magalhaes QUALIFIED
Smith X AmigonBrazilBernardo Dominic NEW
Jeanfrancois L CampainCanadaElwin Sharvill NEW
Nicolas P FlosiGermanyBernardo Dominic NEGOTIATION
Alejandro N MaletAustraliaAsiya Javayant QUALIFIED
Kadeem H KuskoGermanyXuxue Feng NEW
Maisha Q RulapaughArgentinaAmy Elsner QUALIFIED
James I BologniaGermanyAsiya Javayant RENEWAL
Deepesh M OstroskyArgentinaStephen Shaw QUALIFIED
Mayumi H GarufiSpainAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Smith G NickaSpainAsiya Javayant NEW
Wickens Y ShinkoJapanIoni Bowcher QUALIFIED
James E BologniaSpainAmy Elsner RENEWAL
Julie X RutaItalyStephen Shaw NEW
Murillo F RulapaughBrazilAnna Fali UNQUALIFIED
Jeanfrancois W MaletAustraliaXuxue Feng NEGOTIATION
Silvio U MaletAustraliaStephen Shaw NEGOTIATION
Stacey N InouyeFranceBernardo Dominic PROPOSAL
Aika H PaprockiSpainAsiya Javayant QUALIFIED
Juan P CaudyUnited KingdomStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith D ChuiFrance2026-06-30Printing Dimensions QUALIFIED80Amy Elsner
1001Munro K MorascaGermany2026-07-17Rangoni Of Florence NEW89Ioni Bowcher
1002Jeanfrancois W AmigonBrazil2026-07-01Rousseaux, Michael Esq NEGOTIATION91Ivan Magalhaes
1003Emily K FigeroaGermany2026-07-18Benton, John B Jr NEW76Ivan Magalhaes
1004Mujtaba G BologniaFrance2026-07-09Buckley Miller Wright NEW31Stephen Shaw
1005Ashley X BowleyBrazil2026-07-13Rangoni Of Florence UNQUALIFIED88Stephen Shaw
1006Adams T GarufiIndia2026-07-28Rangoni Of Florence PROPOSAL6Bernardo Dominic
1007Aditya T FigeroaArgentina2026-07-19Feiner Bros NEW53Ioni Bowcher
1008Misaki K InouyeAustralia2026-07-27Morlong Associates NEGOTIATION58Anna Fali
1009Wickens T RimBrazil2026-07-08Printing Dimensions NEGOTIATION52Elwin Sharvill
1010Izzy W OstroskyAustralia2026-07-18Truhlar And Truhlar Attys NEGOTIATION17Ivan Magalhaes
1011Silvio Y SchemmerJapan2026-07-02Truhlar And Truhlar Attys PROPOSAL88Elwin Sharvill
1012Juan R AmigonBrazil2026-07-19Feltz Printing Service RENEWAL61Asiya Javayant
1013James O AlbaresIndia2026-07-03Benton, John B Jr NEGOTIATION32Asiya Javayant
1014Emily V CampainCanada2026-07-05Benton, John B Jr NEW79Amy Elsner
1015Mujtaba E BriddickItaly2026-07-02Feltz Printing Service PROPOSAL46Elwin Sharvill
1016Arvin X FerenczCanada2026-07-18Chemel, James L Cpa PROPOSAL99Ivan Magalhaes
1017Jeanfrancois S PoquetteCanada2026-07-28Printing Dimensions RENEWAL79Asiya Javayant
1018Claire E SlusarskiIndia2026-07-17Feltz Printing Service NEGOTIATION75Elwin Sharvill
1019Francesco R VenereCanada2026-07-23Feltz Printing Service NEGOTIATION22Ivan Magalhaes
1020Stacey D SergiCanada2026-07-01Chemel, James L Cpa RENEWAL38Asiya Javayant
1021Mayumi R RutaSpain2026-07-16King, Christopher A Esq NEW44Amy Elsner
1022Isabel K NickaJapan2026-07-22Feltz Printing Service PROPOSAL32Asiya Javayant
1023Silvio W MaletFrance2026-07-06King, Christopher A Esq NEW24Onyama Limba
1024Isabel E KuskoGermany2026-07-10Morlong Associates RENEWAL97Amy Elsner
1025Murillo G IturbideBrazil2026-07-23Commercial Press NEGOTIATION88Amy Elsner
1026Silvio N NickaSpain2026-07-17Rangoni Of Florence QUALIFIED23Onyama Limba
1027Adams C FlosiFrance2026-07-19Feiner Bros NEGOTIATION49Amy Elsner
1028Rodrigues H GauchoAustralia2026-07-19Rangoni Of Florence PROPOSAL81Onyama Limba
1029Nicolas M MarrierAustralia2026-07-03Feltz Printing Service UNQUALIFIED41Onyama Limba
1030James P PerinArgentina2026-07-02Feiner Bros RENEWAL63Ioni Bowcher
1031Nicolas A OstroskyItaly2026-07-03Feltz Printing Service NEGOTIATION60Anna Fali
1032Greenwood P SchemmerAustralia2026-07-09Chapman, Ross E Esq PROPOSAL35Anna Fali
1033Deepesh Z ShinkoUnited Kingdom2026-07-01Benton, John B Jr UNQUALIFIED2Ivan Magalhaes
1034Mayumi Y NestleRussia2026-07-15Truhlar And Truhlar Attys UNQUALIFIED70Stephen Shaw
1035Maisha K RulapaughSpain2026-07-04Feltz Printing Service QUALIFIED68Ioni Bowcher
1036Julie L OstroskyItaly2026-07-23Printing Dimensions NEGOTIATION39Onyama Limba
1037Faith U OldroydBrazil2026-07-13Feiner Bros NEGOTIATION19Xuxue Feng
1038Alejandro P SlusarskiSpain2026-07-18Morlong Associates RENEWAL19Onyama Limba
1039Rodrigues C OstroskyIndia2026-07-23Benton, John B Jr UNQUALIFIED79Xuxue Feng
1040Murillo H PaprockiRussia2026-07-05Benton, John B Jr RENEWAL18Onyama Limba
1041Jefferson L DilliardAustralia2026-07-17Rousseaux, Michael Esq PROPOSAL78Xuxue Feng
1042Mujtaba D StensethAustralia2026-07-02King, Christopher A Esq NEGOTIATION68Bernardo Dominic
1043Jefferson P FigeroaBrazil2026-07-13Buckley Miller Wright UNQUALIFIED3Anna Fali
1044Deepesh J AlbaresJapan2026-07-09Feiner Bros UNQUALIFIED40Elwin Sharvill
1045Darci U ButtCanada2026-07-24Chemel, James L Cpa NEW89Onyama Limba
1046Isabel M FlosiSpain2026-07-04Feiner Bros QUALIFIED81Asiya Javayant
1047Aika F StockhamUnited Kingdom2026-07-05Dorl, James J Esq PROPOSAL77Onyama Limba
1048Rodrigues H OldroydItaly2026-06-30Benton, John B Jr NEW56Asiya Javayant
1049Jefferson H MaletJapan2026-07-09Printing Dimensions RENEWAL26Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Munro N MaletUnited KingdomBernardo Dominic QUALIFIED
Aika G RoysterIndiaElwin Sharvill NEGOTIATION
Arvin M InouyeJapanOnyama Limba NEGOTIATION
James I RimIndiaStephen Shaw NEGOTIATION
Aruna M DoeFranceIoni Bowcher UNQUALIFIED
Clifford Z RulapaughCanadaStephen Shaw PROPOSAL
Arvin N MaletBrazilOnyama Limba QUALIFIED
Clifford K InouyeArgentinaAnna Fali NEW
Jeanfrancois R AmigonIndiaBernardo Dominic PROPOSAL
Deepesh X AmigonRussiaElwin Sharvill NEW
Deepesh V PoquetteRussiaIoni Bowcher UNQUALIFIED
Nicolas K TollnerSpainAsiya Javayant QUALIFIED
Francesco D InouyeItalyOnyama Limba NEGOTIATION
Mayumi P WieserItalyStephen Shaw UNQUALIFIED
Mayumi F GarufiIndiaAmy Elsner QUALIFIED
Maisha L MacleadRussiaElwin Sharvill QUALIFIED
Francesco X MaletGermanyAmy Elsner QUALIFIED
Darci Y MorascaGermanyStephen Shaw NEGOTIATION
Leja B KolmetzSpainAsiya Javayant UNQUALIFIED
Francesco C SlusarskiGermanyAmy Elsner RENEWAL
Jennifer G AlbaresFranceAmy Elsner PROPOSAL
Tony D DoeIndiaStephen Shaw NEGOTIATION
Maisha Y SaylorsSpainIvan Magalhaes UNQUALIFIED
Silvio A CaldareraGermanyBernardo Dominic UNQUALIFIED
David Y DoeAustraliaAnna Fali UNQUALIFIED
Ricardo K GlickCanadaIvan Magalhaes PROPOSAL
Jones Y PaprockiCanadaIvan Magalhaes QUALIFIED
Maria J GarufiBrazilStephen Shaw NEGOTIATION
James X PaprockiIndiaIvan Magalhaes RENEWAL
Izzy P GarufiGermanyAmy Elsner NEW
Deepesh Z DoeBrazilOnyama Limba QUALIFIED
Silvio M KolmetzIndiaOnyama Limba PROPOSAL
Sinclair Y DarakjyItalyBernardo Dominic NEW
Smith C SchemmerSpainOnyama Limba UNQUALIFIED
Jennifer N RulapaughIndiaAsiya Javayant PROPOSAL
Francesco G CampainAustraliaXuxue Feng UNQUALIFIED
Mayumi F CampainJapanAmy Elsner RENEWAL
Kaitlin O CaudyBrazilAnna Fali NEGOTIATION
Izzy P RimFranceStephen Shaw UNQUALIFIED
Morrow O OldroydAustraliaAnna Fali QUALIFIED
Cody C WhobreyRussiaIvan Magalhaes NEW
Mayumi S WieserGermanyAmy Elsner UNQUALIFIED
Deepesh E KuskoFranceXuxue Feng QUALIFIED
Stacey M ShinkoRussiaIoni Bowcher QUALIFIED
Adams X DarakjyJapanOnyama Limba UNQUALIFIED
Greenwood H MacleadUnited KingdomStephen Shaw QUALIFIED
Chavez Q MaletIndiaBernardo Dominic UNQUALIFIED
Adams H StockhamAustraliaOnyama Limba QUALIFIED
Ashley Z KolmetzBrazilXuxue Feng NEW
Darci H BriddickRussiaAsiya Javayant QUALIFIED
Frozen Columns
Name
Antonio N Royster
Jeanfrancois R Garufi
Leon L Foller
Rodrigues I Kolmetz
Deepesh Q Caldarera
Morrow M Nicka
Jefferson Y Ruta
Maria I Garufi
Cody M Waycott
Stacey F Waycott
Aika T Malet
Aika O Wieser
Greenwood A Butt
Ashley F Caudy
Alejandro X Nicka
Claire T Doe
Sinclair H Nicka
Francesco G Figeroa
James K Malet
Nicolas S Darakjy
Clifford T Caudy
Stacey B Ostrosky
Mayumi H Amigon
Deepesh X Malet
Mujtaba J Shinko
Morrow C Perin
Jefferson S Malet
Silvio H Nestle
Faith D Wieser
Sinclair G Flosi
Ivar Y Iturbide
Murillo F Campain
David H Gaucho
Nicolas G Tollner
Alejandro H Figeroa
Salvatore H Sergi
Johnson R Amigon
Sinclair D Tollner
Kaitlin W Whobrey
Aika U Figeroa
Cody O Rim
Francesco Q Chui
Izzy C Glick
Ashley C Whobrey
Aruna W Stenseth
Mujtaba M Figeroa
Jeanfrancois E Marrier
Munro W Kolmetz
Salvatore Q Iturbide
Jones U Chui
IdCountryDate
1000India2026-07-13
1001United Kingdom2026-07-04
1002Brazil2026-07-06
1003United Kingdom2026-07-01
1004Argentina2026-07-08
1005Russia2026-07-08
1006Italy2026-07-15
1007Argentina2026-07-06
1008Japan2026-07-26
1009Argentina2026-07-23
1010Japan2026-07-09
1011Russia2026-07-10
1012Japan2026-07-13
1013Italy2026-07-12
1014Australia2026-06-30
1015France2026-07-16
1016Australia2026-06-29
1017Russia2026-07-27
1018Russia2026-06-29
1019Canada2026-07-16
1020United Kingdom2026-07-25
1021Germany2026-07-13
1022Canada2026-06-30
1023Canada2026-07-19
1024Japan2026-07-09
1025Spain2026-06-29
1026India2026-07-04
1027Australia2026-07-21
1028Russia2026-07-17
1029Japan2026-07-18
1030Canada2026-07-21
1031Canada2026-07-15
1032Spain2026-07-02
1033Italy2026-07-15
1034United Kingdom2026-07-17
1035Japan2026-07-02
1036Australia2026-07-13
1037Italy2026-07-26
1038France2026-07-02
1039Japan2026-07-06
1040Spain2026-07-27
1041Germany2026-07-15
1042Japan2026-07-28
1043Spain2026-07-12
1044Argentina2026-07-13
1045Japan2026-07-15
1046Canada2026-07-25
1047France2026-07-23
1048Canada2026-07-03
1049United Kingdom2026-07-02

On-Demand Data

NameIdCountryDate
Darci L Figeroa1000Brazil2026-07-15
Alejandro F Slusarski1001Canada2026-07-14
Silvio S Poquette1002Brazil2026-07-27
Kaitlin L Schemmer1003Russia2026-07-03
Rodrigues C Iturbide1004Germany2026-06-29
Murillo N Whobrey1005Germany2026-07-22
Rodrigues W Butt1006Russia2026-07-24
Jones R Kolmetz1007Australia2026-07-19
Morrow G Amigon1008Spain2026-07-04
Arvin F Bolognia1009France2026-07-22
Julie A Darakjy1010Japan2026-07-21
Claire Y Rim1011India2026-06-30
Maisha X Nicka1012France2026-07-12
Sinclair R Maclead1013United Kingdom2026-06-30
Deepesh H Rim1014Argentina2026-07-18
Arvin G Waycott1015India2026-07-05
Claire I Perin1016Spain2026-07-07
Emily D Iturbide1017France2026-07-05
Isabel J Poquette1018Japan2026-07-19
Murillo F Figeroa1019Japan2026-07-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones D MaletJapanAsiya Javayant NEW
Octavia W GarufiBrazilXuxue Feng NEGOTIATION
Jones A MaletRussiaAmy Elsner UNQUALIFIED
Jennifer D FollerBrazilAsiya Javayant NEGOTIATION
Morrow R StockhamBrazilIoni Bowcher QUALIFIED
James K SlusarskiIndiaAnna Fali NEW
Silvio A IturbideRussiaAnna Fali NEW
Juan K NickaIndiaXuxue Feng QUALIFIED
Alejandro Q FigeroaIndiaStephen Shaw QUALIFIED
Antonio B ShinkoCanadaXuxue Feng NEW
Silvio P StensethItalyAnna Fali NEW
Rodrigues O MarrierItalyAmy Elsner NEW
Antonio I DarakjyGermanyAnna Fali RENEWAL
Tony V FollerFranceOnyama Limba RENEWAL
Cody C NestleJapanXuxue Feng PROPOSAL
Isabel L PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Claire Z BriddickArgentinaXuxue Feng QUALIFIED
Johnson D PerinSpainXuxue Feng NEGOTIATION
Murillo Z RulapaughFranceIoni Bowcher QUALIFIED
Kaitlin Q WieserUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas J MaletJapanElwin Sharvill PROPOSAL
Salvatore G RulapaughSpainIoni Bowcher NEGOTIATION
Isabel P WieserFranceIoni Bowcher NEGOTIATION
Juan F WieserGermanyIoni Bowcher QUALIFIED
Costa O MaletIndiaAsiya Javayant UNQUALIFIED
Alejandro J ChuiAustraliaAmy Elsner UNQUALIFIED
Wickens F WaycottGermanyElwin Sharvill NEGOTIATION
Antonio P KolmetzSpainAmy Elsner UNQUALIFIED
Ricardo Z CampainItalyXuxue Feng PROPOSAL
Johnson P MaletSpainXuxue Feng NEW
Kadeem R VocelkaCanadaIoni Bowcher PROPOSAL
Smith E SaylorsFranceIoni Bowcher RENEWAL
Jennifer P FerenczBrazilStephen Shaw QUALIFIED
Sinclair J MorascaIndiaAnna Fali NEW
Misaki K ButtAustraliaIoni Bowcher QUALIFIED
Kaitlin U OstroskyFranceIvan Magalhaes PROPOSAL
Jeanfrancois A CaldareraFranceIvan Magalhaes NEW
Leja W IturbideFranceOnyama Limba RENEWAL
Octavia T AlbaresFranceAsiya Javayant PROPOSAL
Kaitlin G RoysterRussiaAsiya Javayant 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>