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
Julie J GarufiJapanBernardo Dominic PROPOSAL
Mujtaba B BowleyGermanyIoni Bowcher PROPOSAL
Octavia I TollnerSpainAsiya Javayant NEGOTIATION
Murillo U StensethUnited KingdomAnna Fali UNQUALIFIED
Smith F MaletItalyStephen Shaw PROPOSAL
David L FollerBrazilAmy Elsner PROPOSAL
Maisha A DoeFranceElwin Sharvill NEGOTIATION
Darci U WaycottAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois B TollnerSpainStephen Shaw QUALIFIED
Leon R BowleyJapanAsiya Javayant NEW
Ricardo M MaletIndiaBernardo Dominic NEW
Murillo C GillianJapanAmy Elsner QUALIFIED
Claire X GauchoSpainXuxue Feng RENEWAL
Johnson N StockhamIndiaAnna Fali NEGOTIATION
Leja W DarakjyGermanyAmy Elsner NEGOTIATION
Sinclair R StensethGermanyStephen Shaw QUALIFIED
Munro X VenereIndiaIoni Bowcher UNQUALIFIED
David P AlbaresRussiaAnna Fali QUALIFIED
Silvio X PerinUnited KingdomBernardo Dominic RENEWAL
Leja K StockhamBrazilIoni Bowcher NEGOTIATION
Wickens X StensethSpainIvan Magalhaes RENEWAL
Octavia M BriddickFranceStephen Shaw RENEWAL
Clifford E DarakjyGermanyBernardo Dominic NEW
Faith E KolmetzUnited KingdomElwin Sharvill NEGOTIATION
Antonio H SlusarskiItalyXuxue Feng UNQUALIFIED
Jefferson H OldroydIndiaIoni Bowcher RENEWAL
James P RimIndiaAmy Elsner RENEWAL
Aika Z RimUnited KingdomXuxue Feng NEW
Faith L VenereIndiaAmy Elsner QUALIFIED
Greenwood L ButtItalyAmy Elsner UNQUALIFIED
Adams O RulapaughIndiaXuxue Feng NEGOTIATION
Arvin I SlusarskiGermanyXuxue Feng UNQUALIFIED
Ricardo T DarakjyArgentinaXuxue Feng UNQUALIFIED
Nicolas Z ChuiUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo W InouyeCanadaAnna Fali UNQUALIFIED
Leon A OstroskyItalyOnyama Limba UNQUALIFIED
Costa X NickaAustraliaAmy Elsner NEW
Ivar E WhobreySpainAmy Elsner QUALIFIED
Aditya R CaldareraRussiaElwin Sharvill PROPOSAL
Ricardo M WhobreyJapanAnna Fali NEGOTIATION
Octavia A RimRussiaAnna Fali QUALIFIED
Deepesh N MaletRussiaBernardo Dominic RENEWAL
Smith M MacleadJapanAsiya Javayant QUALIFIED
Kadeem G FigeroaSpainXuxue Feng UNQUALIFIED
Wickens M ButtJapanAnna Fali NEGOTIATION
Julie U CaldareraGermanyOnyama Limba RENEWAL
Nicolas D FigeroaFranceBernardo Dominic RENEWAL
Salvatore B PaprockiRussiaStephen Shaw NEGOTIATION
Deepesh W PaprockiIndiaIvan Magalhaes QUALIFIED
Darci P WieserFranceIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jennifer B RoysterCanadaIoni Bowcher NEW
Alejandro P GillianJapanElwin Sharvill QUALIFIED
Silvio N SlusarskiFranceAnna Fali RENEWAL
Maria T CaldareraAustraliaAsiya Javayant NEW
Murillo F SchemmerItalyOnyama Limba RENEWAL
Maisha Q RimFranceStephen Shaw PROPOSAL
Ivar S MaletCanadaAsiya Javayant UNQUALIFIED
Francesco J InouyeCanadaAnna Fali NEGOTIATION
Murillo X MaletBrazilIvan Magalhaes QUALIFIED
Julie V FerenczCanadaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson L DilliardArgentina2026-08-23Commercial Press NEGOTIATION43Anna Fali
1001Adams Q NestleArgentina2026-08-15Benton, John B Jr QUALIFIED0Stephen Shaw
1002Isabel D OstroskyItaly2026-08-05King, Christopher A Esq RENEWAL45Asiya Javayant
1003Salvatore W PoquetteItaly2026-08-16Buckley Miller Wright NEGOTIATION56Ioni Bowcher
1004Ashley M RulapaughItaly2026-08-06Chemel, James L Cpa PROPOSAL17Ioni Bowcher
1005Wickens J ButtItaly2026-08-15Chemel, James L Cpa NEGOTIATION78Elwin Sharvill
1006Kadeem F SlusarskiCanada2026-08-24Feiner Bros UNQUALIFIED20Stephen Shaw
1007Murillo U SchemmerBrazil2026-08-21Benton, John B Jr NEGOTIATION93Anna Fali
1008Clifford U KuskoArgentina2026-08-02Buckley Miller Wright NEW99Asiya Javayant
1009Ashley L DarakjyArgentina2026-08-14Dorl, James J Esq UNQUALIFIED32Elwin Sharvill
1010Murillo U FlosiUnited Kingdom2026-08-23Truhlar And Truhlar Attys NEW55Amy Elsner
1011Johnson X NestleItaly2026-08-19Rangoni Of Florence RENEWAL98Xuxue Feng
1012Juan K MaletArgentina2026-08-18Morlong Associates NEGOTIATION56Xuxue Feng
1013Jefferson T KuskoItaly2026-08-16King, Christopher A Esq PROPOSAL26Elwin Sharvill
1014Morrow O StensethBrazil2026-08-17Commercial Press UNQUALIFIED48Xuxue Feng
1015Cody W GillianSpain2026-08-18Truhlar And Truhlar Attys NEGOTIATION66Xuxue Feng
1016Stacey S GlickGermany2026-08-11Rangoni Of Florence QUALIFIED80Xuxue Feng
1017Juan Y GillianRussia2026-08-01Chapman, Ross E Esq QUALIFIED27Onyama Limba
1018Julie P MarrierBrazil2026-08-14King, Christopher A Esq QUALIFIED0Elwin Sharvill
1019Greenwood F OldroydBrazil2026-08-19Chemel, James L Cpa QUALIFIED10Elwin Sharvill
1020Mayumi Y DoeAustralia2026-08-01Rangoni Of Florence QUALIFIED6Xuxue Feng
1021David P GillianAustralia2026-08-25Chanay, Jeffrey A Esq RENEWAL21Elwin Sharvill
1022Nicolas A MarrierGermany2026-08-26Chapman, Ross E Esq NEW45Xuxue Feng
1023Ashley E SaylorsSpain2026-08-17Chapman, Ross E Esq PROPOSAL74Ivan Magalhaes
1024Mayumi N MacleadArgentina2026-08-08Buckley Miller Wright PROPOSAL86Amy Elsner
1025Misaki C MaletBrazil2026-08-12Printing Dimensions NEW35Xuxue Feng
1026Juan D StockhamBrazil2026-08-22Rangoni Of Florence NEGOTIATION91Stephen Shaw
1027Costa U MacleadIndia2026-08-16Rangoni Of Florence QUALIFIED77Ivan Magalhaes
1028Isabel B DarakjyItaly2026-08-01Chapman, Ross E Esq QUALIFIED27Stephen Shaw
1029Leon Y SlusarskiItaly2026-08-10Dorl, James J Esq NEW64Elwin Sharvill
1030Munro R StensethAustralia2026-08-21Dorl, James J Esq QUALIFIED12Xuxue Feng
1031James G IturbideRussia2026-08-02Truhlar And Truhlar Attys PROPOSAL6Xuxue Feng
1032Izzy V MaletFrance2026-08-24Truhlar And Truhlar Attys NEGOTIATION70Ioni Bowcher
1033Salvatore W PoquetteAustralia2026-08-28King, Christopher A Esq UNQUALIFIED78Stephen Shaw
1034Wickens O VocelkaSpain2026-08-21Feiner Bros NEGOTIATION39Ivan Magalhaes
1035Costa L SchemmerGermany2026-08-24Commercial Press UNQUALIFIED34Anna Fali
1036Wickens P CaudyFrance2026-08-19King, Christopher A Esq QUALIFIED58Onyama Limba
1037Ashley J PerinBrazil2026-08-28Buckley Miller Wright NEGOTIATION40Anna Fali
1038Izzy N SlusarskiArgentina2026-08-14Benton, John B Jr RENEWAL63Amy Elsner
1039Morrow Y PerinAustralia2026-08-23Rangoni Of Florence UNQUALIFIED14Ioni Bowcher
1040Ashley Z OldroydGermany2026-08-02Feltz Printing Service PROPOSAL70Asiya Javayant
1041Antonio F MacleadRussia2026-08-05Feltz Printing Service UNQUALIFIED48Onyama Limba
1042Isabel F CaudyItaly2026-08-17Buckley Miller Wright RENEWAL40Stephen Shaw
1043Ivar X RulapaughFrance2026-08-25Benton, John B Jr RENEWAL54Anna Fali
1044Adams I MorascaUnited Kingdom2026-08-21Benton, John B Jr RENEWAL80Bernardo Dominic
1045Leja L StockhamJapan2026-08-11Morlong Associates NEGOTIATION90Stephen Shaw
1046Isabel S RutaJapan2026-08-07Morlong Associates NEGOTIATION29Elwin Sharvill
1047Faith J CaudyArgentina2026-08-05Buckley Miller Wright UNQUALIFIED63Stephen Shaw
1048Chavez X AlbaresBrazil2026-08-18Morlong Associates UNQUALIFIED97Amy Elsner
1049Claire A PoquetteGermany2026-08-08Rangoni Of Florence PROPOSAL18Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Adams Q RoysterSpainOnyama Limba PROPOSAL
Ricardo E GlickArgentinaIvan Magalhaes NEGOTIATION
Juan M MorascaAustraliaAnna Fali QUALIFIED
Kadeem A SergiSpainAsiya Javayant PROPOSAL
Aruna J FlosiCanadaOnyama Limba NEW
Adams O StensethGermanyIvan Magalhaes UNQUALIFIED
Jefferson T ChuiItalyAsiya Javayant PROPOSAL
Antonio V NestleFranceAmy Elsner RENEWAL
Maria C GillianRussiaBernardo Dominic PROPOSAL
Murillo G BologniaAustraliaXuxue Feng NEGOTIATION
Rodrigues Z FerenczCanadaBernardo Dominic NEGOTIATION
Aditya R SlusarskiItalyAnna Fali QUALIFIED
Cody S MaletUnited KingdomElwin Sharvill RENEWAL
Clifford O MacleadAustraliaIoni Bowcher NEGOTIATION
Kadeem E RoysterArgentinaOnyama Limba NEGOTIATION
Cody X SlusarskiJapanXuxue Feng QUALIFIED
Johnson Y BriddickFranceAnna Fali NEW
Morrow X NestleBrazilAsiya Javayant PROPOSAL
Sinclair Z KuskoIndiaElwin Sharvill NEGOTIATION
Claire B GauchoUnited KingdomIvan Magalhaes NEW
Mayumi Z SchemmerJapanStephen Shaw RENEWAL
Ivar U IturbideBrazilOnyama Limba QUALIFIED
Leon B FerenczJapanAsiya Javayant QUALIFIED
Claire V SergiArgentinaXuxue Feng PROPOSAL
Jones U FigeroaJapanIoni Bowcher NEGOTIATION
Izzy B GillianArgentinaXuxue Feng NEGOTIATION
Izzy J MaletItalyElwin Sharvill PROPOSAL
Leon M SaylorsItalyAsiya Javayant NEW
Rodrigues N RoysterArgentinaBernardo Dominic UNQUALIFIED
Octavia G BriddickGermanyXuxue Feng NEW
Cody F RulapaughRussiaStephen Shaw UNQUALIFIED
Nicolas A OldroydAustraliaIvan Magalhaes NEW
Johnson P BowleyGermanyAnna Fali QUALIFIED
Jeanfrancois H MarrierRussiaOnyama Limba PROPOSAL
Smith I StensethIndiaBernardo Dominic RENEWAL
Murillo Q CaldareraFranceXuxue Feng RENEWAL
Greenwood G OstroskyAustraliaElwin Sharvill QUALIFIED
Mayumi W IturbideIndiaAsiya Javayant UNQUALIFIED
Mujtaba H GauchoCanadaAnna Fali RENEWAL
Arvin D IturbideItalyBernardo Dominic NEW
Emily R RoysterAustraliaXuxue Feng NEGOTIATION
Rodrigues J BologniaUnited KingdomAsiya Javayant RENEWAL
Sinclair M GlickAustraliaIvan Magalhaes QUALIFIED
Isabel A WhobreyRussiaIoni Bowcher UNQUALIFIED
Adams A SergiRussiaStephen Shaw QUALIFIED
Rodrigues R MarrierGermanyBernardo Dominic UNQUALIFIED
Jefferson N ButtFranceAsiya Javayant QUALIFIED
Isabel O RimBrazilAsiya Javayant NEGOTIATION
Jones R IturbideAustraliaStephen Shaw NEW
David B MacleadFranceAnna Fali RENEWAL
Frozen Columns
Name
Salvatore K Gaucho
Morrow A Butt
Kadeem S Garufi
Izzy F Inouye
Aruna B Kolmetz
Kadeem I Royster
Kaitlin Q Ostrosky
Ashley C Sergi
Leon U Sergi
Antonio N Ostrosky
Faith U Wieser
Silvio Q Kusko
Darci L Chui
Costa T Tollner
Antonio Z Caudy
Rodrigues U Glick
Rodrigues U Iturbide
Stacey O Wieser
Francesco P Morasca
Juan C Malet
Kaitlin E Flosi
Jones G Wieser
Johnson J Marrier
Salvatore P Caudy
Chavez R Sergi
Stacey V Malet
Jefferson F Gaucho
Misaki P Glick
Ashley J Wieser
Ashley O Inouye
Clifford C Flosi
Aika E Poquette
Jennifer L Amigon
Nicolas T Shinko
Ricardo Y Schemmer
Jefferson H Perin
Rodrigues E Sergi
Jones I Maclead
Johnson A Wieser
Misaki A Rim
Rodrigues C Darakjy
Isabel B Campain
Jefferson K Albares
Ashley M Butt
David J Schemmer
Claire J Poquette
Maisha A Paprocki
Sinclair U Doe
Johnson B Figeroa
Kadeem H Flosi
IdCountryDate
1000Argentina2026-08-13
1001Australia2026-08-09
1002Australia2026-08-27
1003Germany2026-08-17
1004France2026-08-19
1005Canada2026-08-21
1006Australia2026-08-20
1007Australia2026-08-13
1008France2026-08-23
1009Australia2026-08-25
1010Italy2026-08-27
1011Spain2026-08-15
1012Italy2026-08-23
1013Argentina2026-08-08
1014Brazil2026-08-02
1015Spain2026-08-09
1016Australia2026-08-19
1017Russia2026-08-24
1018India2026-08-20
1019Russia2026-08-11
1020Australia2026-08-02
1021Argentina2026-08-17
1022Argentina2026-08-10
1023United Kingdom2026-08-01
1024Argentina2026-08-18
1025Germany2026-08-28
1026Russia2026-08-01
1027Spain2026-08-01
1028Russia2026-08-01
1029Japan2026-08-18
1030Australia2026-07-30
1031India2026-08-28
1032Australia2026-08-19
1033Germany2026-08-15
1034Germany2026-08-08
1035Spain2026-08-23
1036Brazil2026-08-15
1037Argentina2026-08-09
1038France2026-08-26
1039Canada2026-08-02
1040Argentina2026-08-11
1041Canada2026-07-31
1042Russia2026-08-07
1043Italy2026-08-01
1044Argentina2026-08-17
1045France2026-08-24
1046France2026-08-07
1047India2026-07-30
1048United Kingdom2026-08-25
1049Italy2026-08-24

On-Demand Data

NameIdCountryDate
Isabel E Garufi1000Germany2026-08-21
Murillo A Iturbide1001Argentina2026-08-14
Mayumi R Malet1002Spain2026-08-13
Maria G Gaucho1003Germany2026-08-12
Octavia G Amigon1004Italy2026-08-11
Nicolas N Paprocki1005Germany2026-07-30
Darci G Perin1006Brazil2026-08-15
Mujtaba B Campain1007Brazil2026-08-07
Francesco N Butt1008Russia2026-08-02
Leon K Rim1009Japan2026-08-20
Rodrigues H Albares1010France2026-07-30
Jeanfrancois Q Saylors1011Spain2026-08-03
Stacey A Caldarera1012Russia2026-08-03
Juan O Stenseth1013Argentina2026-08-09
Greenwood M Ruta1014Italy2026-08-08
Antonio B Kusko1015Russia2026-08-22
Morrow T Caldarera1016Australia2026-08-28
Faith J Ferencz1017Australia2026-07-30
Aika O Albares1018United Kingdom2026-08-13
Costa L Nicka1019India2026-07-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio T RulapaughArgentinaElwin Sharvill NEW
Aika W RutaIndiaElwin Sharvill UNQUALIFIED
Ashley S ChuiFranceOnyama Limba NEW
Izzy S AmigonAustraliaXuxue Feng NEW
Aditya E RulapaughUnited KingdomIoni Bowcher RENEWAL
Murillo G RulapaughJapanAsiya Javayant PROPOSAL
Greenwood X RoysterArgentinaAsiya Javayant UNQUALIFIED
Adams X PaprockiGermanyIoni Bowcher PROPOSAL
Izzy P FlosiJapanXuxue Feng UNQUALIFIED
Antonio N GauchoArgentinaAmy Elsner NEGOTIATION
Alejandro G CaudyArgentinaOnyama Limba RENEWAL
Ivar P MacleadUnited KingdomElwin Sharvill QUALIFIED
Aruna F FlosiUnited KingdomAnna Fali QUALIFIED
Jeanfrancois R RimFranceIoni Bowcher NEW
Jennifer P DilliardBrazilBernardo Dominic QUALIFIED
Arvin A RulapaughArgentinaElwin Sharvill RENEWAL
Jones H CampainArgentinaAmy Elsner QUALIFIED
Leon O CaudyGermanyIoni Bowcher NEW
Tony W DilliardJapanAnna Fali QUALIFIED
Claire Z RulapaughSpainBernardo Dominic QUALIFIED
Costa C CampainCanadaOnyama Limba QUALIFIED
Mayumi N FlosiBrazilIoni Bowcher RENEWAL
Nicolas M WaycottRussiaXuxue Feng NEGOTIATION
Jones W RutaRussiaAmy Elsner UNQUALIFIED
Leon I MorascaSpainAsiya Javayant UNQUALIFIED
Wickens Y FerenczUnited KingdomIoni Bowcher UNQUALIFIED
Julie O SchemmerArgentinaOnyama Limba RENEWAL
James A SergiGermanyOnyama Limba RENEWAL
Ricardo X VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Claire A OstroskyAustraliaElwin Sharvill NEW
Salvatore I OstroskyUnited KingdomBernardo Dominic PROPOSAL
Juan S InouyeRussiaXuxue Feng NEW
Leja V RutaFranceBernardo Dominic PROPOSAL
Maisha X FlosiCanadaElwin Sharvill NEGOTIATION
Julie M ShinkoCanadaXuxue Feng NEW
Aditya L MaletRussiaXuxue Feng NEGOTIATION
Chavez L PoquetteSpainAmy Elsner NEW
Faith W DilliardJapanElwin Sharvill NEW
Jeanfrancois Y TollnerItalyIoni Bowcher QUALIFIED
Antonio B VocelkaBrazilAsiya Javayant PROPOSAL

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