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
Ashley O MorascaGermanyOnyama Limba PROPOSAL
Jefferson K GarufiGermanyOnyama Limba RENEWAL
David G KolmetzUnited KingdomElwin Sharvill NEW
Claire I FigeroaFranceBernardo Dominic NEGOTIATION
Silvio P MacleadSpainElwin Sharvill RENEWAL
Faith Z RoysterUnited KingdomElwin Sharvill NEW
Octavia T CaldareraCanadaOnyama Limba NEGOTIATION
Munro F OldroydSpainAnna Fali PROPOSAL
Deepesh F ChuiUnited KingdomXuxue Feng RENEWAL
Darci L DarakjySpainOnyama Limba QUALIFIED
Chavez D RulapaughJapanStephen Shaw PROPOSAL
Leja L VenereSpainAnna Fali NEGOTIATION
Darci L DarakjyBrazilStephen Shaw QUALIFIED
Francesco Y WaycottBrazilOnyama Limba RENEWAL
Arvin J SchemmerRussiaElwin Sharvill NEGOTIATION
Chavez C SaylorsFranceElwin Sharvill RENEWAL
Rodrigues Y NestleArgentinaXuxue Feng PROPOSAL
Morrow E ShinkoGermanyIoni Bowcher PROPOSAL
Adams U SaylorsRussiaStephen Shaw RENEWAL
Alejandro L MaletUnited KingdomOnyama Limba NEGOTIATION
Maisha M RulapaughRussiaIvan Magalhaes NEGOTIATION
Munro T SlusarskiAustraliaStephen Shaw NEW
Clifford V WieserItalyAnna Fali UNQUALIFIED
Morrow R PerinSpainIoni Bowcher NEW
Jennifer H PaprockiBrazilAmy Elsner NEW
Kadeem G FigeroaItalyAmy Elsner NEW
Misaki P GillianFranceXuxue Feng PROPOSAL
Claire H RulapaughGermanyElwin Sharvill UNQUALIFIED
Aruna W SaylorsSpainIoni Bowcher NEGOTIATION
Wickens U AlbaresSpainAsiya Javayant UNQUALIFIED
Juan J DoeFranceStephen Shaw QUALIFIED
Nicolas U ChuiAustraliaAmy Elsner NEGOTIATION
Mayumi O TollnerRussiaAnna Fali QUALIFIED
Juan D DarakjyArgentinaOnyama Limba UNQUALIFIED
Rodrigues B MorascaItalyXuxue Feng QUALIFIED
Faith J AlbaresBrazilAmy Elsner PROPOSAL
Silvio I MacleadGermanyStephen Shaw NEGOTIATION
Kaitlin N ButtIndiaOnyama Limba PROPOSAL
Chavez A ShinkoArgentinaAmy Elsner QUALIFIED
Aika N CaldareraArgentinaAmy Elsner QUALIFIED
Johnson E GauchoRussiaAsiya Javayant UNQUALIFIED
Sinclair V PaprockiItalyStephen Shaw QUALIFIED
Clifford U CampainSpainXuxue Feng NEGOTIATION
Jones A FerenczFranceAmy Elsner NEGOTIATION
Murillo X VocelkaItalyAnna Fali NEGOTIATION
Adams F StockhamIndiaIoni Bowcher NEGOTIATION
Claire G NestleRussiaBernardo Dominic PROPOSAL
Silvio V BriddickGermanyElwin Sharvill NEGOTIATION
Ashley N KuskoBrazilXuxue Feng RENEWAL
Isabel Y ButtCanadaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Francesco B BowleyIndiaElwin Sharvill NEGOTIATION
Kaitlin J SergiCanadaStephen Shaw PROPOSAL
Isabel Y CaldareraCanadaStephen Shaw QUALIFIED
Misaki J VocelkaAustraliaAsiya Javayant UNQUALIFIED
Claire U CaudyRussiaXuxue Feng UNQUALIFIED
Jefferson T AlbaresJapanXuxue Feng UNQUALIFIED
Emily L FerenczJapanIoni Bowcher NEW
Ashley D BriddickCanadaStephen Shaw RENEWAL
Alejandro P ChuiIndiaAmy Elsner QUALIFIED
Ivar B NickaFranceXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio O MaletIndia2026-07-07King, Christopher A Esq NEW12Asiya Javayant
1001Costa D IturbideArgentina2026-06-23Truhlar And Truhlar Attys PROPOSAL88Amy Elsner
1002Smith J IturbideAustralia2026-06-27Commercial Press RENEWAL68Bernardo Dominic
1003Mujtaba D ButtGermany2026-06-16Buckley Miller Wright QUALIFIED98Amy Elsner
1004Greenwood P SchemmerGermany2026-06-20Chanay, Jeffrey A Esq RENEWAL65Amy Elsner
1005Cody M VenereSpain2026-07-06Feltz Printing Service PROPOSAL79Stephen Shaw
1006Smith K NestleBrazil2026-07-02Printing Dimensions QUALIFIED26Ivan Magalhaes
1007Wickens Q PoquetteSpain2026-06-15Chapman, Ross E Esq QUALIFIED65Bernardo Dominic
1008Claire A SchemmerItaly2026-07-06Dorl, James J Esq NEGOTIATION10Stephen Shaw
1009Adams V MarrierGermany2026-07-07Commercial Press NEW79Xuxue Feng
1010Leja J OldroydBrazil2026-07-05Rangoni Of Florence UNQUALIFIED77Stephen Shaw
1011Jennifer E RulapaughCanada2026-07-06Buckley Miller Wright NEGOTIATION31Ioni Bowcher
1012Smith Q AmigonUnited Kingdom2026-06-25Rangoni Of Florence RENEWAL87Ioni Bowcher
1013Cody U InouyeItaly2026-06-14Feiner Bros RENEWAL7Xuxue Feng
1014Izzy W MaletCanada2026-07-07Printing Dimensions RENEWAL85Bernardo Dominic
1015Leon S GillianJapan2026-07-05Chanay, Jeffrey A Esq PROPOSAL87Amy Elsner
1016Mujtaba B KolmetzGermany2026-06-15Chanay, Jeffrey A Esq RENEWAL65Bernardo Dominic
1017Isabel W MaletItaly2026-06-25Rangoni Of Florence QUALIFIED21Asiya Javayant
1018Alejandro D SaylorsBrazil2026-06-11Morlong Associates NEGOTIATION24Stephen Shaw
1019Jefferson T WieserAustralia2026-06-26Chapman, Ross E Esq NEW70Asiya Javayant
1020David Z BriddickJapan2026-06-16Printing Dimensions PROPOSAL26Anna Fali
1021Mujtaba E DarakjySpain2026-07-05Printing Dimensions UNQUALIFIED36Elwin Sharvill
1022Alejandro P RoysterCanada2026-06-22Morlong Associates PROPOSAL80Asiya Javayant
1023Tony N WaycottSpain2026-07-03Rousseaux, Michael Esq NEGOTIATION93Elwin Sharvill
1024Adams L PaprockiRussia2026-06-10Morlong Associates QUALIFIED90Asiya Javayant
1025Jones N MaletSpain2026-06-08King, Christopher A Esq PROPOSAL45Xuxue Feng
1026Costa W RimIndia2026-06-19Feltz Printing Service QUALIFIED57Asiya Javayant
1027Stacey U ButtSpain2026-06-14Rangoni Of Florence NEW61Stephen Shaw
1028Juan F GauchoRussia2026-06-21Benton, John B Jr RENEWAL29Stephen Shaw
1029Misaki H KolmetzSpain2026-06-29Benton, John B Jr PROPOSAL88Bernardo Dominic
1030Francesco O IturbideFrance2026-06-28Feltz Printing Service NEW37Stephen Shaw
1031Cody Y VenereSpain2026-06-09Buckley Miller Wright UNQUALIFIED68Ivan Magalhaes
1032Deepesh Y NestleJapan2026-06-08Feiner Bros NEW99Elwin Sharvill
1033Octavia Q DoeCanada2026-06-30Chemel, James L Cpa UNQUALIFIED12Elwin Sharvill
1034Antonio N SergiBrazil2026-06-09King, Christopher A Esq RENEWAL47Asiya Javayant
1035Tony S GarufiJapan2026-06-15Commercial Press RENEWAL92Stephen Shaw
1036Stacey M ChuiJapan2026-06-12Feltz Printing Service QUALIFIED19Xuxue Feng
1037Clifford F SchemmerIndia2026-06-08Commercial Press UNQUALIFIED4Anna Fali
1038Clifford R BowleyAustralia2026-06-28Feltz Printing Service PROPOSAL62Xuxue Feng
1039Greenwood J InouyeBrazil2026-07-01Commercial Press PROPOSAL2Bernardo Dominic
1040Aika Y NickaRussia2026-06-22Rousseaux, Michael Esq NEGOTIATION71Elwin Sharvill
1041Misaki J MaletFrance2026-06-11Rangoni Of Florence QUALIFIED16Xuxue Feng
1042Leja V SchemmerCanada2026-06-15Commercial Press UNQUALIFIED1Onyama Limba
1043Smith E CampainGermany2026-06-13Morlong Associates PROPOSAL49Asiya Javayant
1044Kaitlin X SaylorsRussia2026-06-10Chanay, Jeffrey A Esq NEGOTIATION83Stephen Shaw
1045Sinclair X FollerGermany2026-06-15Buckley Miller Wright UNQUALIFIED64Bernardo Dominic
1046Octavia O BowleyArgentina2026-07-07Chapman, Ross E Esq RENEWAL42Amy Elsner
1047Ricardo F RoysterSpain2026-06-09Feltz Printing Service UNQUALIFIED68Ioni Bowcher
1048Ivar F StensethAustralia2026-07-07Chanay, Jeffrey A Esq RENEWAL39Bernardo Dominic
1049Silvio K VenereSpain2026-06-26Feltz Printing Service NEGOTIATION81Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Isabel W NestleGermanyAnna Fali RENEWAL
Maisha B FollerGermanyAnna Fali NEW
Ivar H FlosiRussiaAmy Elsner NEGOTIATION
Ashley P CaudyItalyIvan Magalhaes UNQUALIFIED
Aika D NickaUnited KingdomBernardo Dominic QUALIFIED
Murillo D SlusarskiAustraliaElwin Sharvill PROPOSAL
Johnson D BologniaSpainStephen Shaw NEGOTIATION
Silvio O CampainSpainElwin Sharvill QUALIFIED
Maisha K VenereSpainAmy Elsner QUALIFIED
Jefferson A SchemmerIndiaXuxue Feng UNQUALIFIED
Kaitlin D KuskoRussiaElwin Sharvill RENEWAL
Wickens Q StockhamJapanStephen Shaw PROPOSAL
Izzy Z FollerCanadaElwin Sharvill QUALIFIED
Sinclair X GauchoAustraliaIoni Bowcher PROPOSAL
David O PoquetteJapanAmy Elsner NEGOTIATION
Mujtaba L RimCanadaXuxue Feng NEGOTIATION
Costa B KolmetzFranceAnna Fali NEGOTIATION
Francesco N BriddickJapanIoni Bowcher UNQUALIFIED
Leon O MaletUnited KingdomStephen Shaw RENEWAL
Faith U MorascaSpainStephen Shaw UNQUALIFIED
Izzy P FigeroaAustraliaIvan Magalhaes PROPOSAL
Kaitlin H VocelkaSpainAnna Fali NEW
Jefferson G IturbideCanadaAsiya Javayant NEGOTIATION
Emily Z OldroydFranceAmy Elsner UNQUALIFIED
Greenwood F FigeroaAustraliaBernardo Dominic QUALIFIED
Aika J FerenczItalyAmy Elsner RENEWAL
David G DoeIndiaIvan Magalhaes QUALIFIED
Wickens C SchemmerArgentinaStephen Shaw NEW
Johnson A DarakjyGermanyOnyama Limba UNQUALIFIED
Faith H FigeroaRussiaOnyama Limba QUALIFIED
Mayumi L SaylorsJapanOnyama Limba QUALIFIED
Arvin R RulapaughJapanBernardo Dominic NEW
Alejandro P AmigonFranceXuxue Feng RENEWAL
Jefferson V BowleyAustraliaElwin Sharvill UNQUALIFIED
Stacey E ButtCanadaXuxue Feng QUALIFIED
Maria K WhobreyGermanyElwin Sharvill QUALIFIED
Juan J SergiSpainOnyama Limba RENEWAL
Wickens F SergiRussiaOnyama Limba NEW
Izzy X SchemmerUnited KingdomAmy Elsner NEGOTIATION
Claire A PerinItalyAmy Elsner QUALIFIED
Isabel M KuskoAustraliaAmy Elsner PROPOSAL
Claire S WaycottJapanIoni Bowcher RENEWAL
Izzy Z ShinkoAustraliaElwin Sharvill NEW
Clifford V RutaJapanAsiya Javayant UNQUALIFIED
Munro C RulapaughCanadaStephen Shaw QUALIFIED
Ivar W ShinkoFranceAnna Fali PROPOSAL
Izzy E FigeroaArgentinaXuxue Feng RENEWAL
James Z KuskoArgentinaAmy Elsner QUALIFIED
Silvio X BologniaArgentinaAmy Elsner RENEWAL
Kadeem K SaylorsCanadaStephen Shaw QUALIFIED
Frozen Columns
Name
Juan E Briddick
Aditya S Tollner
Deepesh S Wieser
Jennifer U Ruta
Claire W Butt
Aruna M Marrier
Johnson N Chui
Smith B Nestle
Adams J Stenseth
Stacey Q Flosi
Clifford M Darakjy
Mayumi R Bolognia
Silvio Y Rulapaugh
Kadeem J Morasca
Maisha S Malet
Alejandro N Saylors
Julie V Briddick
Leja H Garufi
Sinclair V Albares
Rodrigues R Schemmer
Ashley J Figeroa
Ashley S Glick
Wickens D Rim
Maria G Nestle
Jones P Wieser
Leon O Royster
Nicolas Q Venere
Mujtaba H Marrier
Alejandro J Saylors
Isabel F Caldarera
Adams U Caldarera
Ivar Q Schemmer
Stacey T Bowley
Mayumi P Slusarski
Chavez A Oldroyd
James A Sergi
Ashley J Butt
Mujtaba W Waycott
Juan B Briddick
Jefferson C Whobrey
Alejandro V Butt
Octavia J Venere
Izzy Q Marrier
Costa F Marrier
Jeanfrancois X Ruta
Jones J Rulapaugh
Ivar Q Dilliard
Munro A Saylors
Silvio R Sergi
Claire B Oldroyd
IdCountryDate
1000France2026-06-16
1001India2026-07-06
1002Spain2026-06-21
1003United Kingdom2026-06-19
1004Canada2026-06-12
1005Australia2026-07-01
1006Italy2026-06-21
1007Spain2026-07-01
1008India2026-06-18
1009Argentina2026-06-26
1010Russia2026-06-08
1011United Kingdom2026-06-08
1012Russia2026-07-05
1013Japan2026-07-07
1014Argentina2026-06-27
1015Russia2026-07-02
1016Canada2026-06-27
1017Brazil2026-07-06
1018Brazil2026-06-29
1019Brazil2026-06-25
1020Japan2026-07-06
1021Russia2026-06-29
1022Russia2026-06-20
1023United Kingdom2026-06-28
1024Italy2026-06-20
1025Spain2026-06-28
1026Germany2026-06-19
1027India2026-06-26
1028Australia2026-06-22
1029Canada2026-07-07
1030Spain2026-07-03
1031Germany2026-06-12
1032Brazil2026-06-19
1033France2026-06-10
1034Brazil2026-06-28
1035United Kingdom2026-06-28
1036Russia2026-07-05
1037Brazil2026-06-16
1038India2026-06-27
1039Italy2026-06-28
1040Brazil2026-07-05
1041India2026-06-19
1042Argentina2026-06-12
1043United Kingdom2026-06-17
1044Australia2026-06-27
1045Argentina2026-06-22
1046Brazil2026-07-07
1047Argentina2026-07-04
1048France2026-07-03
1049Germany2026-06-16

On-Demand Data

NameIdCountryDate
Jones B Ruta1000Germany2026-06-27
Darci S Caldarera1001Japan2026-06-29
Sinclair V Oldroyd1002Russia2026-06-19
Kaitlin O Schemmer1003Italy2026-06-21
Arvin V Stenseth1004Canada2026-06-28
Wickens J Iturbide1005Russia2026-06-28
Nicolas Z Poquette1006Japan2026-06-21
Maria R Caudy1007Japan2026-06-20
Ivar Y Slusarski1008Australia2026-06-21
Murillo O Inouye1009Spain2026-06-08
Nicolas U Kusko1010Spain2026-06-11
Cody K Marrier1011Japan2026-06-15
Leja M Garufi1012Italy2026-07-06
Nicolas A Caldarera1013France2026-06-21
Isabel L Morasca1014Russia2026-06-29
Leon L Dilliard1015Argentina2026-07-05
Leja B Glick1016India2026-07-06
Aditya W Albares1017Canada2026-06-23
Stacey K Campain1018Argentina2026-06-21
Kadeem K Gillian1019Germany2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin S FerenczAustraliaIoni Bowcher NEW
Sinclair B WhobreyGermanyAsiya Javayant QUALIFIED
Maria O PerinJapanAmy Elsner NEGOTIATION
Smith R GillianAustraliaAsiya Javayant RENEWAL
Juan J RimFranceIvan Magalhaes PROPOSAL
Cody U ChuiCanadaBernardo Dominic UNQUALIFIED
Costa C ShinkoArgentinaAmy Elsner NEGOTIATION
Misaki O KolmetzGermanyStephen Shaw NEW
Leon V StensethUnited KingdomElwin Sharvill UNQUALIFIED
Munro Z BologniaArgentinaIvan Magalhaes NEW
Octavia D MorascaGermanyStephen Shaw NEGOTIATION
Aika M MarrierBrazilAsiya Javayant NEW
Jennifer C GillianRussiaAmy Elsner PROPOSAL
Julie V SergiIndiaElwin Sharvill RENEWAL
Aika U WhobreyFranceXuxue Feng RENEWAL
Mujtaba P BowleyCanadaIoni Bowcher RENEWAL
James C BologniaArgentinaBernardo Dominic RENEWAL
Emily X StensethSpainXuxue Feng NEGOTIATION
Aditya Q RutaArgentinaAmy Elsner NEGOTIATION
David K NickaRussiaXuxue Feng NEW
James B AmigonFranceAmy Elsner RENEWAL
Mayumi P KolmetzJapanStephen Shaw NEGOTIATION
Morrow A IturbideCanadaIoni Bowcher NEGOTIATION
James T AlbaresCanadaBernardo Dominic RENEWAL
Kaitlin I OldroydCanadaAnna Fali NEGOTIATION
Emily E WieserBrazilAmy Elsner PROPOSAL
Alejandro Q GlickAustraliaStephen Shaw NEW
Silvio P RoysterCanadaAmy Elsner QUALIFIED
Silvio W GlickArgentinaAsiya Javayant NEGOTIATION
Jones O NestleRussiaIoni Bowcher NEGOTIATION
Aditya E BologniaBrazilAmy Elsner UNQUALIFIED
Mayumi T GillianItalyXuxue Feng NEW
Emily D MaletJapanOnyama Limba NEW
Octavia R RulapaughRussiaAmy Elsner QUALIFIED
Aditya D TollnerCanadaElwin Sharvill NEW
Jones E WhobreyCanadaIoni Bowcher QUALIFIED
Aditya B MaletUnited KingdomBernardo Dominic NEGOTIATION
Murillo G PerinItalyAmy Elsner NEGOTIATION
Arvin K KolmetzUnited KingdomBernardo Dominic UNQUALIFIED
Chavez V MaletBrazilAnna Fali 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>