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
James K SergiItalyBernardo Dominic NEW
Isabel Q BowleyAustraliaStephen Shaw UNQUALIFIED
Silvio C CaudyItalyBernardo Dominic RENEWAL
Cody I SchemmerGermanyXuxue Feng RENEWAL
Aika W KolmetzFranceAnna Fali PROPOSAL
Silvio C WhobreySpainIvan Magalhaes PROPOSAL
Kaitlin E GlickGermanyAnna Fali PROPOSAL
Emily B MorascaBrazilStephen Shaw QUALIFIED
Alejandro E MacleadItalyAnna Fali NEW
Izzy V WaycottGermanyXuxue Feng RENEWAL
Leon S KuskoItalyXuxue Feng NEGOTIATION
Alejandro O KolmetzBrazilXuxue Feng UNQUALIFIED
Costa M BologniaJapanStephen Shaw QUALIFIED
Sinclair H OldroydFranceOnyama Limba UNQUALIFIED
Clifford J SchemmerSpainBernardo Dominic NEW
Emily J KolmetzRussiaElwin Sharvill PROPOSAL
Murillo V FlosiCanadaStephen Shaw UNQUALIFIED
Greenwood W MorascaCanadaBernardo Dominic NEW
Mayumi X PoquetteIndiaIoni Bowcher NEGOTIATION
Sinclair C StockhamItalyIvan Magalhaes UNQUALIFIED
Izzy A StensethIndiaAsiya Javayant UNQUALIFIED
Antonio C GillianUnited KingdomAnna Fali UNQUALIFIED
Jones Z SchemmerIndiaAnna Fali UNQUALIFIED
Leon O StensethUnited KingdomIvan Magalhaes NEW
Kaitlin T NestleFranceAsiya Javayant QUALIFIED
Munro W GarufiRussiaAmy Elsner NEW
Clifford U WieserJapanAmy Elsner UNQUALIFIED
Morrow S StensethUnited KingdomIoni Bowcher NEW
Costa E KolmetzFranceAmy Elsner RENEWAL
Darci W IturbideItalyBernardo Dominic NEW
Jefferson D MarrierFranceAmy Elsner NEW
Morrow N DilliardBrazilAnna Fali QUALIFIED
Morrow Q WaycottArgentinaAsiya Javayant NEGOTIATION
Izzy O InouyeIndiaOnyama Limba UNQUALIFIED
Alejandro M WaycottJapanOnyama Limba PROPOSAL
Adams G MorascaFranceAnna Fali NEW
Morrow N PoquetteItalyElwin Sharvill PROPOSAL
Misaki M CaldareraCanadaIoni Bowcher QUALIFIED
Aika Q VenereAustraliaAnna Fali NEGOTIATION
Greenwood V FigeroaJapanXuxue Feng NEW
Izzy W TollnerArgentinaAmy Elsner PROPOSAL
Wickens G RutaJapanOnyama Limba NEGOTIATION
Smith B GlickCanadaOnyama Limba PROPOSAL
Maisha S MaletGermanyAmy Elsner RENEWAL
Maria D PaprockiAustraliaElwin Sharvill QUALIFIED
Aditya U SlusarskiBrazilIvan Magalhaes RENEWAL
Alejandro H ButtIndiaAsiya Javayant UNQUALIFIED
Adams Y MacleadSpainAnna Fali UNQUALIFIED
Julie I StensethItalyIoni Bowcher NEGOTIATION
David K MaletAustraliaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Johnson Q PaprockiRussiaIvan Magalhaes RENEWAL
Leja A KuskoJapanIoni Bowcher NEW
Ashley W StensethArgentinaAmy Elsner RENEWAL
Munro W CaudyJapanIoni Bowcher NEW
Deepesh V VenereBrazilAsiya Javayant QUALIFIED
Murillo B IturbideAustraliaElwin Sharvill QUALIFIED
Mujtaba W FerenczBrazilBernardo Dominic NEW
Ricardo D TollnerItalyOnyama Limba PROPOSAL
Tony T RulapaughCanadaBernardo Dominic QUALIFIED
Octavia V CaldareraIndiaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna B MorascaSpain2026-07-10King, Christopher A Esq NEW71Xuxue Feng
1001Morrow J TollnerSpain2026-07-02Truhlar And Truhlar Attys RENEWAL24Onyama Limba
1002Octavia R MacleadFrance2026-06-17Chemel, James L Cpa QUALIFIED59Stephen Shaw
1003Faith O KolmetzItaly2026-06-22Morlong Associates UNQUALIFIED29Asiya Javayant
1004Morrow Z PerinBrazil2026-06-29Chapman, Ross E Esq UNQUALIFIED6Amy Elsner
1005Francesco A DoeItaly2026-07-06Benton, John B Jr QUALIFIED69Xuxue Feng
1006Aika S ButtSpain2026-07-07Feiner Bros NEW60Bernardo Dominic
1007Costa Q PaprockiIndia2026-07-07Chapman, Ross E Esq NEW62Stephen Shaw
1008Maria J FigeroaFrance2026-06-23Buckley Miller Wright NEW24Ivan Magalhaes
1009Maisha Q DarakjySpain2026-06-17King, Christopher A Esq NEW6Stephen Shaw
1010Alejandro V GauchoArgentina2026-06-24Rangoni Of Florence NEGOTIATION99Elwin Sharvill
1011Aditya U SergiCanada2026-07-10Chapman, Ross E Esq RENEWAL99Elwin Sharvill
1012James T PerinArgentina2026-06-19Chapman, Ross E Esq PROPOSAL99Bernardo Dominic
1013Jeanfrancois R VenereUnited Kingdom2026-06-11Chanay, Jeffrey A Esq RENEWAL4Asiya Javayant
1014Claire P TollnerCanada2026-06-27Chanay, Jeffrey A Esq RENEWAL47Xuxue Feng
1015Stacey N KuskoFrance2026-06-23Rangoni Of Florence NEW68Asiya Javayant
1016Costa J BowleyAustralia2026-07-09Feiner Bros RENEWAL44Amy Elsner
1017Morrow Z CaldareraItaly2026-07-01Feltz Printing Service NEGOTIATION73Ioni Bowcher
1018Isabel C ChuiBrazil2026-06-19Chapman, Ross E Esq NEW66Xuxue Feng
1019Mayumi S StockhamFrance2026-06-30Feltz Printing Service NEGOTIATION78Amy Elsner
1020Antonio Q SchemmerGermany2026-06-14Printing Dimensions RENEWAL34Onyama Limba
1021Arvin C KolmetzGermany2026-07-10Chanay, Jeffrey A Esq NEGOTIATION60Asiya Javayant
1022Aruna X KuskoArgentina2026-07-08Rangoni Of Florence NEGOTIATION19Ioni Bowcher
1023Darci Z MacleadAustralia2026-06-27Benton, John B Jr NEW86Elwin Sharvill
1024Kaitlin N AlbaresSpain2026-06-19Chemel, James L Cpa PROPOSAL31Anna Fali
1025Julie A ChuiGermany2026-07-04Chapman, Ross E Esq RENEWAL7Onyama Limba
1026Costa S MarrierCanada2026-06-16Morlong Associates PROPOSAL43Asiya Javayant
1027Julie K DilliardArgentina2026-06-19Rangoni Of Florence RENEWAL81Xuxue Feng
1028Emily O VenereUnited Kingdom2026-06-23Chanay, Jeffrey A Esq NEW79Ivan Magalhaes
1029Murillo M OldroydCanada2026-06-12Printing Dimensions UNQUALIFIED5Bernardo Dominic
1030Ricardo P MaletArgentina2026-06-19Feiner Bros PROPOSAL18Xuxue Feng
1031Chavez I DarakjyIndia2026-06-14Chanay, Jeffrey A Esq NEW95Asiya Javayant
1032Antonio F CampainUnited Kingdom2026-07-08Commercial Press RENEWAL29Onyama Limba
1033Aruna U RoysterIndia2026-06-11Morlong Associates UNQUALIFIED28Anna Fali
1034Jennifer O AlbaresItaly2026-07-01Dorl, James J Esq NEW60Onyama Limba
1035Juan V IturbideBrazil2026-07-04Commercial Press NEGOTIATION43Ioni Bowcher
1036Murillo C RoysterBrazil2026-06-24King, Christopher A Esq NEGOTIATION44Asiya Javayant
1037Silvio W KolmetzJapan2026-07-03Chapman, Ross E Esq NEW52Elwin Sharvill
1038Leja P CampainRussia2026-07-08Rangoni Of Florence PROPOSAL76Stephen Shaw
1039Isabel W InouyeFrance2026-06-27Printing Dimensions NEW35Elwin Sharvill
1040Rodrigues H WhobreyGermany2026-07-05Buckley Miller Wright NEW42Bernardo Dominic
1041Ricardo J VocelkaRussia2026-07-07Benton, John B Jr QUALIFIED33Ioni Bowcher
1042Leon J NestleIndia2026-07-06Morlong Associates RENEWAL15Onyama Limba
1043Leon T OldroydRussia2026-06-21Chemel, James L Cpa QUALIFIED58Stephen Shaw
1044Aditya J GarufiAustralia2026-06-16Benton, John B Jr RENEWAL56Ioni Bowcher
1045Smith N WaycottCanada2026-06-20Truhlar And Truhlar Attys RENEWAL92Asiya Javayant
1046David D TollnerUnited Kingdom2026-06-21Commercial Press NEW77Amy Elsner
1047Francesco I SergiArgentina2026-06-25King, Christopher A Esq UNQUALIFIED18Bernardo Dominic
1048Salvatore K CaudyFrance2026-06-14Truhlar And Truhlar Attys RENEWAL31Bernardo Dominic
1049Antonio F InouyeFrance2026-06-21Chemel, James L Cpa QUALIFIED96Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maisha Z FigeroaBrazilOnyama Limba UNQUALIFIED
Antonio J IturbideUnited KingdomStephen Shaw PROPOSAL
Munro Q MaletJapanIoni Bowcher NEW
Stacey Q NickaIndiaAmy Elsner QUALIFIED
Darci F FollerGermanyElwin Sharvill RENEWAL
Aditya K FerenczGermanyStephen Shaw NEGOTIATION
Juan F SlusarskiArgentinaAmy Elsner QUALIFIED
Isabel C IturbideIndiaIoni Bowcher NEGOTIATION
Jefferson K MaletRussiaElwin Sharvill NEGOTIATION
Kadeem Y WaycottIndiaXuxue Feng NEGOTIATION
Wickens Q FigeroaArgentinaOnyama Limba PROPOSAL
Tony S VocelkaRussiaXuxue Feng NEW
Clifford V PerinSpainXuxue Feng NEGOTIATION
Maria Z KuskoIndiaIoni Bowcher NEGOTIATION
Izzy D CaldareraGermanyStephen Shaw NEW
Jones J PerinArgentinaAmy Elsner UNQUALIFIED
Kaitlin B ShinkoItalyAsiya Javayant PROPOSAL
Morrow S VenereIndiaOnyama Limba NEGOTIATION
Maisha A PerinArgentinaXuxue Feng NEW
Mayumi U SchemmerUnited KingdomAsiya Javayant UNQUALIFIED
Emily G WhobreyJapanAmy Elsner PROPOSAL
Leja N RulapaughRussiaIvan Magalhaes NEW
Octavia Z IturbideAustraliaXuxue Feng NEW
Misaki I FigeroaSpainIvan Magalhaes RENEWAL
Darci U TollnerIndiaIvan Magalhaes PROPOSAL
Clifford S DoeBrazilAsiya Javayant UNQUALIFIED
Smith K FlosiAustraliaStephen Shaw QUALIFIED
Murillo K FerenczRussiaAsiya Javayant RENEWAL
Julie M RulapaughCanadaOnyama Limba UNQUALIFIED
Isabel Z SaylorsJapanBernardo Dominic RENEWAL
Mayumi X MarrierRussiaAnna Fali QUALIFIED
Murillo C MacleadItalyIoni Bowcher UNQUALIFIED
Morrow B CaldareraCanadaElwin Sharvill NEW
Munro R SaylorsArgentinaStephen Shaw QUALIFIED
Morrow X GarufiBrazilXuxue Feng RENEWAL
Nicolas W DoeGermanyIoni Bowcher PROPOSAL
Johnson F FigeroaAustraliaOnyama Limba UNQUALIFIED
Izzy E WhobreyArgentinaElwin Sharvill RENEWAL
Aruna Z VocelkaRussiaAnna Fali NEW
Jeanfrancois Q ChuiBrazilAsiya Javayant RENEWAL
Maria V FigeroaSpainIoni Bowcher UNQUALIFIED
Leja E OstroskyJapanElwin Sharvill NEW
Stacey Y CampainCanadaIvan Magalhaes UNQUALIFIED
Ashley M InouyeBrazilAmy Elsner PROPOSAL
Mayumi T VenereSpainAsiya Javayant NEW
Salvatore W InouyeAustraliaAmy Elsner PROPOSAL
Nicolas U InouyeIndiaIoni Bowcher RENEWAL
James U RutaGermanyAsiya Javayant PROPOSAL
Murillo X MacleadUnited KingdomIvan Magalhaes RENEWAL
Greenwood T BowleyArgentinaAnna Fali PROPOSAL
Frozen Columns
Name
Ricardo S Ostrosky
Jennifer O Campain
Aika J Campain
Octavia Q Bolognia
Ricardo B Malet
Isabel H Nestle
Leon N Waycott
Leon Z Gaucho
Leon H Vocelka
Maisha A Darakjy
Alejandro H Oldroyd
Aika T Rulapaugh
Isabel I Chui
Deepesh H Darakjy
Julie D Doe
Jennifer M Bolognia
Costa K Albares
Leon I Darakjy
Silvio K Rulapaugh
Claire W Gillian
Wickens T Ostrosky
Julie Z Caldarera
Ivar F Stenseth
Jones Q Rulapaugh
Faith S Figeroa
Kaitlin R Chui
Sinclair N Butt
Jefferson M Gaucho
Rodrigues F Tollner
Ashley U Marrier
Costa H Royster
Morrow H Slusarski
Murillo X Nestle
Misaki A Briddick
Octavia J Venere
Arvin D Figeroa
Costa T Gillian
Chavez R Schemmer
Mayumi C Vocelka
Leja X Caudy
Jennifer U Rim
Francesco C Rim
Murillo H Darakjy
Murillo R Ferencz
Isabel S Glick
Arvin O Amigon
Juan O Rim
Faith X Albares
Julie S Glick
Aika M Amigon
IdCountryDate
1000Japan2026-06-14
1001Spain2026-06-16
1002Spain2026-06-18
1003Spain2026-07-09
1004France2026-06-16
1005Japan2026-06-22
1006Australia2026-07-09
1007Spain2026-06-16
1008Italy2026-06-15
1009Brazil2026-06-13
1010United Kingdom2026-07-10
1011India2026-06-29
1012Russia2026-06-14
1013France2026-07-03
1014India2026-06-28
1015France2026-06-19
1016Canada2026-07-08
1017United Kingdom2026-06-20
1018Spain2026-07-09
1019Argentina2026-07-03
1020Germany2026-06-20
1021Canada2026-07-04
1022United Kingdom2026-06-30
1023Germany2026-07-06
1024Spain2026-07-07
1025United Kingdom2026-06-25
1026Germany2026-06-22
1027France2026-06-14
1028Canada2026-07-01
1029United Kingdom2026-07-09
1030Japan2026-06-19
1031Argentina2026-07-07
1032France2026-06-29
1033United Kingdom2026-06-17
1034France2026-07-09
1035Canada2026-07-03
1036Russia2026-07-04
1037India2026-07-09
1038Spain2026-06-19
1039India2026-07-10
1040Japan2026-06-13
1041Russia2026-07-09
1042Australia2026-06-20
1043Argentina2026-07-01
1044Russia2026-07-05
1045Russia2026-07-08
1046Canada2026-07-10
1047France2026-06-15
1048Germany2026-07-02
1049Germany2026-06-21

On-Demand Data

NameIdCountryDate
Nicolas U Nestle1000Brazil2026-06-16
Kadeem E Ferencz1001Italy2026-06-23
Jennifer D Tollner1002Spain2026-06-21
Stacey N Rulapaugh1003Australia2026-07-01
Aruna A Waycott1004Argentina2026-07-07
Faith D Bolognia1005United Kingdom2026-07-06
Chavez K Bowley1006Brazil2026-07-09
David O Slusarski1007Japan2026-06-18
Faith M Schemmer1008Japan2026-06-20
Jones Z Shinko1009Australia2026-06-15
Munro M Sergi1010Italy2026-06-13
Aika O Perin1011Italy2026-06-20
Costa B Amigon1012Japan2026-06-23
Morrow C Glick1013Brazil2026-07-10
Murillo Z Bowley1014Spain2026-06-25
Nicolas S Chui1015Japan2026-07-10
Silvio G Whobrey1016India2026-06-27
Aditya G Sergi1017Argentina2026-06-14
Clifford Y Sergi1018Brazil2026-06-18
Jeanfrancois Q Poquette1019France2026-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika Z PaprockiUnited KingdomAnna Fali UNQUALIFIED
Alejandro Z NestleBrazilAnna Fali NEGOTIATION
Salvatore R FlosiGermanyElwin Sharvill RENEWAL
Rodrigues Q VocelkaCanadaAmy Elsner QUALIFIED
Maisha S GlickSpainBernardo Dominic RENEWAL
Darci U DarakjyIndiaOnyama Limba NEW
Octavia H MaletRussiaStephen Shaw QUALIFIED
Jennifer J BologniaJapanBernardo Dominic PROPOSAL
Jeanfrancois S FigeroaSpainIoni Bowcher PROPOSAL
Chavez P StockhamItalyAnna Fali NEW
James P NickaUnited KingdomAnna Fali PROPOSAL
Salvatore G RimJapanAsiya Javayant QUALIFIED
Claire N VenereCanadaIvan Magalhaes UNQUALIFIED
Kadeem L StensethArgentinaIvan Magalhaes QUALIFIED
Leon R VocelkaArgentinaXuxue Feng NEGOTIATION
Cody M MacleadRussiaXuxue Feng NEW
Julie S BriddickGermanyAnna Fali RENEWAL
Arvin S MorascaItalyIoni Bowcher UNQUALIFIED
Sinclair T GauchoJapanOnyama Limba NEGOTIATION
Arvin N MacleadUnited KingdomBernardo Dominic PROPOSAL
Nicolas J TollnerBrazilIoni Bowcher UNQUALIFIED
Leja X KuskoBrazilAnna Fali QUALIFIED
Ivar I CaudyCanadaElwin Sharvill UNQUALIFIED
Claire L AmigonSpainAsiya Javayant RENEWAL
Alejandro T PaprockiJapanAnna Fali RENEWAL
Julie C KolmetzSpainXuxue Feng PROPOSAL
Jones B CampainGermanyElwin Sharvill NEW
Juan Z CaldareraAustraliaIvan Magalhaes NEW
Tony B MacleadJapanElwin Sharvill RENEWAL
Deepesh X BowleyBrazilAnna Fali PROPOSAL
Sinclair Q CaudyJapanElwin Sharvill NEW
Ivar F SlusarskiIndiaIoni Bowcher RENEWAL
Juan O BriddickSpainBernardo Dominic UNQUALIFIED
Murillo E SchemmerCanadaXuxue Feng RENEWAL
Stacey X RulapaughGermanyIoni Bowcher NEGOTIATION
Costa K RimRussiaElwin Sharvill UNQUALIFIED
Darci Q SchemmerCanadaBernardo Dominic NEGOTIATION
Leon T NickaBrazilBernardo Dominic UNQUALIFIED
Maisha O CaldareraItalyStephen Shaw NEGOTIATION
Arvin G PerinRussiaIvan Magalhaes 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>