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
Arvin G StockhamIndiaBernardo Dominic PROPOSAL
Ashley G OldroydJapanAmy Elsner PROPOSAL
Jennifer S SaylorsSpainAsiya Javayant QUALIFIED
Costa U InouyeItalyStephen Shaw NEGOTIATION
Tony C VocelkaAustraliaIoni Bowcher UNQUALIFIED
Claire C MaletFranceOnyama Limba NEW
Maisha Z DarakjyAustraliaOnyama Limba RENEWAL
Mujtaba X StockhamAustraliaAmy Elsner PROPOSAL
Greenwood G BowleyArgentinaAnna Fali NEGOTIATION
Julie R BowleySpainAnna Fali QUALIFIED
Kadeem U RulapaughJapanElwin Sharvill RENEWAL
Nicolas A DilliardRussiaElwin Sharvill QUALIFIED
Tony Z MaletBrazilAnna Fali QUALIFIED
Rodrigues Q BowleyUnited KingdomIoni Bowcher NEW
Jefferson F BowleySpainBernardo Dominic NEGOTIATION
Jones V NickaUnited KingdomAnna Fali RENEWAL
Cody Z MaletGermanyIoni Bowcher RENEWAL
Silvio H MorascaFranceXuxue Feng PROPOSAL
Stacey X GauchoJapanIoni Bowcher QUALIFIED
Maria R BologniaSpainStephen Shaw UNQUALIFIED
Francesco N BowleyUnited KingdomAnna Fali NEW
Octavia E SchemmerCanadaElwin Sharvill PROPOSAL
Leon O RutaGermanyXuxue Feng QUALIFIED
Leja O FerenczGermanyIvan Magalhaes PROPOSAL
James T DilliardArgentinaBernardo Dominic NEW
Wickens D ButtAustraliaIoni Bowcher UNQUALIFIED
Misaki P RutaItalyAnna Fali NEGOTIATION
Darci Q NickaArgentinaOnyama Limba QUALIFIED
Kaitlin Z OldroydFranceOnyama Limba QUALIFIED
Jones Z BriddickBrazilIoni Bowcher RENEWAL
Misaki F SlusarskiAustraliaIvan Magalhaes PROPOSAL
Costa Y StensethUnited KingdomAnna Fali UNQUALIFIED
Silvio R SchemmerIndiaOnyama Limba UNQUALIFIED
Leon S OldroydAustraliaXuxue Feng PROPOSAL
Kadeem V MarrierSpainOnyama Limba NEW
Leon O FollerCanadaIvan Magalhaes UNQUALIFIED
Rodrigues P SlusarskiRussiaIvan Magalhaes RENEWAL
Arvin H CampainFranceIoni Bowcher PROPOSAL
Greenwood C GillianItalyIoni Bowcher UNQUALIFIED
Izzy M WaycottBrazilAsiya Javayant NEW
Julie T VocelkaArgentinaAsiya Javayant PROPOSAL
Chavez X WaycottSpainXuxue Feng UNQUALIFIED
Smith J CaudyFranceXuxue Feng QUALIFIED
Misaki U DarakjyJapanElwin Sharvill NEGOTIATION
Silvio Q NestleIndiaXuxue Feng NEW
Faith W SchemmerItalyOnyama Limba PROPOSAL
Ashley Y RulapaughFranceIoni Bowcher RENEWAL
Francesco S MaletIndiaOnyama Limba RENEWAL
Clifford X FigeroaBrazilXuxue Feng UNQUALIFIED
Johnson T PoquetteRussiaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci E VocelkaFranceBernardo Dominic NEW
Ricardo W SaylorsBrazilAnna Fali NEGOTIATION
Wickens U GlickItalyAnna Fali RENEWAL
Costa G SchemmerGermanyIvan Magalhaes NEW
Cody V ShinkoSpainElwin Sharvill QUALIFIED
Jefferson N VocelkaArgentinaXuxue Feng UNQUALIFIED
Adams F IturbideAustraliaOnyama Limba NEGOTIATION
Salvatore N WaycottCanadaAnna Fali NEGOTIATION
Rodrigues H TollnerAustraliaOnyama Limba PROPOSAL
Leon Z RutaAustraliaXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens C KuskoFrance2026-07-31Rangoni Of Florence NEW31Ioni Bowcher
1001Silvio R GarufiGermany2026-07-19Rousseaux, Michael Esq RENEWAL72Ioni Bowcher
1002Izzy C DoeRussia2026-07-29Dorl, James J Esq PROPOSAL87Ivan Magalhaes
1003Mayumi D OstroskyIndia2026-07-26King, Christopher A Esq NEW83Ivan Magalhaes
1004Greenwood B FollerItaly2026-07-25Chanay, Jeffrey A Esq UNQUALIFIED19Ioni Bowcher
1005Morrow V VenereArgentina2026-07-26Rousseaux, Michael Esq RENEWAL78Amy Elsner
1006Rodrigues R SaylorsCanada2026-07-16Rangoni Of Florence NEGOTIATION87Xuxue Feng
1007Greenwood F MaletUnited Kingdom2026-07-16Commercial Press NEGOTIATION70Amy Elsner
1008Isabel B RulapaughFrance2026-07-29Buckley Miller Wright RENEWAL66Anna Fali
1009Salvatore F DoeJapan2026-07-18Dorl, James J Esq QUALIFIED43Onyama Limba
1010Jennifer E BriddickUnited Kingdom2026-07-12Commercial Press PROPOSAL91Elwin Sharvill
1011Jefferson E InouyeCanada2026-07-28Chanay, Jeffrey A Esq PROPOSAL24Anna Fali
1012Jeanfrancois C MacleadBrazil2026-08-02Rangoni Of Florence QUALIFIED46Xuxue Feng
1013Aditya S SergiFrance2026-07-20Chanay, Jeffrey A Esq PROPOSAL41Elwin Sharvill
1014Arvin D RulapaughFrance2026-08-07Truhlar And Truhlar Attys NEGOTIATION86Asiya Javayant
1015Salvatore Z FollerUnited Kingdom2026-07-18Dorl, James J Esq PROPOSAL96Bernardo Dominic
1016Nicolas X DilliardSpain2026-08-04Rangoni Of Florence NEGOTIATION61Ivan Magalhaes
1017Silvio W SlusarskiJapan2026-08-10Rangoni Of Florence NEW82Ioni Bowcher
1018Leja I MaletSpain2026-07-23Chemel, James L Cpa UNQUALIFIED11Asiya Javayant
1019Mayumi E NestleRussia2026-07-31Chapman, Ross E Esq RENEWAL11Onyama Limba
1020Salvatore K InouyeCanada2026-08-05Truhlar And Truhlar Attys QUALIFIED69Xuxue Feng
1021Maria M DilliardArgentina2026-07-15Feltz Printing Service NEGOTIATION82Asiya Javayant
1022Wickens C OstroskyUnited Kingdom2026-07-16Dorl, James J Esq QUALIFIED74Amy Elsner
1023Nicolas S BowleyArgentina2026-07-14Feiner Bros NEW7Elwin Sharvill
1024James V TollnerSpain2026-07-20Feiner Bros UNQUALIFIED43Stephen Shaw
1025Arvin V SchemmerIndia2026-07-18King, Christopher A Esq UNQUALIFIED23Bernardo Dominic
1026Jones Q MacleadIndia2026-08-09Rangoni Of Florence QUALIFIED0Anna Fali
1027Antonio I ShinkoSpain2026-07-19Dorl, James J Esq UNQUALIFIED1Amy Elsner
1028Darci L KolmetzJapan2026-07-24Rangoni Of Florence NEW89Xuxue Feng
1029Adams V KuskoFrance2026-08-09King, Christopher A Esq NEW92Bernardo Dominic
1030Aditya R FigeroaBrazil2026-08-05Printing Dimensions QUALIFIED36Xuxue Feng
1031Antonio I FerenczArgentina2026-07-20Truhlar And Truhlar Attys NEW45Xuxue Feng
1032Clifford G ShinkoRussia2026-07-31Feltz Printing Service UNQUALIFIED62Anna Fali
1033Mayumi W InouyeUnited Kingdom2026-07-18Chanay, Jeffrey A Esq UNQUALIFIED4Elwin Sharvill
1034Aruna O GillianUnited Kingdom2026-08-06Feltz Printing Service NEGOTIATION13Ioni Bowcher
1035Deepesh L DarakjyItaly2026-07-29King, Christopher A Esq PROPOSAL26Ivan Magalhaes
1036Mujtaba P RimIndia2026-07-12Morlong Associates NEW0Ioni Bowcher
1037Cody G VenereSpain2026-07-18Feltz Printing Service PROPOSAL11Ivan Magalhaes
1038Smith O DarakjyAustralia2026-07-18Rangoni Of Florence RENEWAL51Elwin Sharvill
1039Greenwood C BowleyRussia2026-08-01Rangoni Of Florence RENEWAL62Ivan Magalhaes
1040Maisha R VocelkaIndia2026-07-23Feltz Printing Service UNQUALIFIED92Stephen Shaw
1041James W InouyeIndia2026-07-27Feltz Printing Service NEGOTIATION81Xuxue Feng
1042Adams J AlbaresSpain2026-07-25King, Christopher A Esq NEW40Ioni Bowcher
1043Rodrigues Q VenereSpain2026-07-15Feiner Bros QUALIFIED43Xuxue Feng
1044Ivar O BologniaAustralia2026-07-20Benton, John B Jr PROPOSAL8Onyama Limba
1045Claire A OldroydBrazil2026-07-14Rousseaux, Michael Esq NEW44Ioni Bowcher
1046Ricardo L WieserCanada2026-07-16Benton, John B Jr RENEWAL20Ivan Magalhaes
1047Izzy M RimSpain2026-08-02Dorl, James J Esq NEGOTIATION45Asiya Javayant
1048Deepesh Y PerinItaly2026-07-27Morlong Associates NEGOTIATION72Onyama Limba
1049Ricardo Z AmigonIndia2026-08-06Buckley Miller Wright UNQUALIFIED92Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Kadeem G WieserGermanyIoni Bowcher RENEWAL
Mujtaba H RulapaughCanadaAmy Elsner QUALIFIED
Alejandro C MaletSpainAmy Elsner QUALIFIED
Claire Q CaudyArgentinaAnna Fali PROPOSAL
Mujtaba N PerinItalyXuxue Feng UNQUALIFIED
Rodrigues I GarufiSpainXuxue Feng RENEWAL
Francesco Q RutaCanadaIoni Bowcher NEGOTIATION
Mayumi V SchemmerIndiaAsiya Javayant UNQUALIFIED
Francesco R IturbideRussiaAnna Fali QUALIFIED
Kaitlin A StensethAustraliaElwin Sharvill NEW
David U StockhamFranceStephen Shaw RENEWAL
Chavez Q CampainAustraliaBernardo Dominic QUALIFIED
Juan H AmigonBrazilBernardo Dominic NEW
Mayumi J FigeroaIndiaIvan Magalhaes RENEWAL
Ricardo L NestleItalyIvan Magalhaes RENEWAL
Nicolas E NestleRussiaIoni Bowcher RENEWAL
Julie N CaldareraBrazilBernardo Dominic NEGOTIATION
Emily Y IturbideBrazilStephen Shaw NEGOTIATION
Greenwood X NickaAustraliaXuxue Feng UNQUALIFIED
David H BriddickCanadaAmy Elsner NEW
Munro A FlosiGermanyIvan Magalhaes NEW
Salvatore N RoysterSpainAnna Fali UNQUALIFIED
Emily E SergiJapanStephen Shaw QUALIFIED
Silvio G RulapaughItalyBernardo Dominic NEW
Johnson P PaprockiUnited KingdomElwin Sharvill QUALIFIED
Cody G FollerUnited KingdomAsiya Javayant RENEWAL
Mayumi Z RutaArgentinaIvan Magalhaes NEW
Clifford U RutaBrazilAnna Fali PROPOSAL
Francesco A TollnerAustraliaStephen Shaw NEW
Jeanfrancois J RutaCanadaBernardo Dominic PROPOSAL
James P GauchoGermanyIoni Bowcher NEW
Antonio Y WieserFranceStephen Shaw RENEWAL
Misaki Q BowleyFranceBernardo Dominic NEW
Misaki C RimArgentinaIvan Magalhaes NEGOTIATION
Clifford O StockhamItalyOnyama Limba PROPOSAL
Aika S MacleadFranceBernardo Dominic NEW
Aruna M VocelkaCanadaIvan Magalhaes PROPOSAL
Leon U AmigonCanadaAmy Elsner QUALIFIED
Darci Y RoysterSpainOnyama Limba QUALIFIED
Silvio P ShinkoIndiaIvan Magalhaes RENEWAL
Aditya K DoeSpainIoni Bowcher UNQUALIFIED
Ivar L ButtCanadaOnyama Limba UNQUALIFIED
Aruna V WaycottAustraliaElwin Sharvill UNQUALIFIED
Arvin H CaldareraCanadaAnna Fali NEW
Leja B MaletCanadaIoni Bowcher RENEWAL
Claire T CaudyFranceBernardo Dominic RENEWAL
Tony L SergiGermanyIvan Magalhaes PROPOSAL
Silvio S MaletJapanXuxue Feng PROPOSAL
Leja F MacleadCanadaIoni Bowcher QUALIFIED
Chavez I RulapaughUnited KingdomAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Smith P Malet
Kaitlin P Nestle
James J Ferencz
Ivar F Morasca
Deepesh A Glick
Leja M Gillian
Johnson B Butt
Isabel F Stenseth
Jones I Paprocki
Leja I Paprocki
Faith P Darakjy
Chavez P Glick
Faith X Stenseth
Aruna Z Albares
Misaki F Sergi
Mujtaba R Maclead
Juan H Dilliard
Johnson W Chui
Kadeem U Whobrey
Stacey E Wieser
Aika Y Caldarera
Ivar D Ostrosky
Julie H Ostrosky
Ivar K Schemmer
Jennifer Q Flosi
Rodrigues M Doe
Julie W Kolmetz
Jennifer E Glick
Alejandro P Venere
Ashley I Amigon
Wickens U Marrier
Maria I Oldroyd
Rodrigues Z Inouye
David N Shinko
Antonio U Kusko
David A Garufi
Silvio F Schemmer
Nicolas E Poquette
Silvio J Nicka
Wickens Q Sergi
Chavez H Rim
Octavia X Campain
Ivar Z Malet
Leja M Caldarera
Cody R Rulapaugh
Jeanfrancois D Rim
Murillo R Saylors
Adams X Gaucho
Murillo O Kolmetz
Aika A Caudy
IdCountryDate
1000Russia2026-07-24
1001Italy2026-07-19
1002Russia2026-07-12
1003United Kingdom2026-07-19
1004Japan2026-08-01
1005India2026-07-27
1006United Kingdom2026-07-23
1007France2026-07-31
1008Germany2026-07-20
1009Germany2026-07-25
1010Argentina2026-07-25
1011India2026-07-20
1012United Kingdom2026-08-05
1013Japan2026-08-01
1014Japan2026-07-14
1015Canada2026-07-12
1016France2026-08-05
1017Russia2026-08-02
1018United Kingdom2026-07-12
1019Japan2026-07-12
1020Spain2026-07-25
1021India2026-08-02
1022Germany2026-08-08
1023France2026-08-08
1024Russia2026-07-15
1025Japan2026-07-31
1026Spain2026-07-16
1027Italy2026-07-29
1028United Kingdom2026-07-24
1029India2026-08-03
1030Russia2026-07-18
1031Brazil2026-07-18
1032United Kingdom2026-07-19
1033Argentina2026-08-07
1034Brazil2026-08-01
1035Spain2026-07-15
1036Japan2026-08-07
1037France2026-08-02
1038India2026-07-21
1039France2026-08-05
1040Russia2026-07-27
1041Spain2026-08-06
1042Australia2026-07-17
1043Germany2026-07-31
1044Russia2026-08-04
1045Germany2026-08-02
1046Australia2026-07-28
1047Argentina2026-07-28
1048Germany2026-07-14
1049Spain2026-08-05

On-Demand Data

NameIdCountryDate
Mujtaba R Schemmer1000Italy2026-08-10
Maria U Figeroa1001Argentina2026-07-16
Aruna E Doe1002Brazil2026-07-30
Mayumi A Amigon1003Japan2026-07-13
Izzy C Ruta1004Brazil2026-07-30
Izzy I Venere1005Argentina2026-07-12
Izzy I Marrier1006Italy2026-07-20
Salvatore A Gaucho1007Germany2026-07-28
Octavia T Kusko1008Japan2026-08-09
Aruna L Nestle1009Germany2026-08-10
Wickens I Oldroyd1010Brazil2026-07-27
James K Kusko1011Italy2026-07-15
Faith Q Kolmetz1012Australia2026-08-06
Leon U Rulapaugh1013Australia2026-07-27
Munro D Bolognia1014Russia2026-07-27
Clifford J Tollner1015United Kingdom2026-07-12
Kaitlin V Rim1016India2026-07-15
Tony W Tollner1017Italy2026-08-04
Antonio V Kolmetz1018France2026-07-25
Alejandro I Whobrey1019Japan2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas O ChuiIndiaIoni Bowcher UNQUALIFIED
Jefferson X RulapaughJapanBernardo Dominic QUALIFIED
Kaitlin L KolmetzArgentinaAsiya Javayant PROPOSAL
Maria N VenereJapanIvan Magalhaes QUALIFIED
Misaki B ShinkoItalyBernardo Dominic NEW
Jennifer D FollerFranceAmy Elsner RENEWAL
Aditya A DilliardFranceAsiya Javayant PROPOSAL
Aruna O DilliardGermanyStephen Shaw QUALIFIED
Arvin V RulapaughBrazilElwin Sharvill PROPOSAL
Adams G IturbideJapanIoni Bowcher UNQUALIFIED
Aruna K OstroskyBrazilXuxue Feng QUALIFIED
Aruna X MaletJapanBernardo Dominic RENEWAL
Emily M RulapaughItalyElwin Sharvill NEGOTIATION
Wickens M GauchoGermanyIoni Bowcher NEW
Aruna C GillianArgentinaAmy Elsner UNQUALIFIED
Rodrigues J VenereBrazilIvan Magalhaes QUALIFIED
Juan W FlosiUnited KingdomIoni Bowcher RENEWAL
Aditya I VenereArgentinaXuxue Feng NEW
Jefferson D RutaIndiaAmy Elsner NEGOTIATION
Maria N DilliardFranceOnyama Limba RENEWAL
Salvatore Z SergiArgentinaXuxue Feng UNQUALIFIED
Juan A ChuiIndiaIoni Bowcher NEW
David P AmigonSpainElwin Sharvill NEW
Mayumi Q FollerFranceAsiya Javayant NEGOTIATION
Darci B AmigonIndiaStephen Shaw UNQUALIFIED
Salvatore Q InouyeCanadaIoni Bowcher UNQUALIFIED
Arvin Q WaycottUnited KingdomIoni Bowcher UNQUALIFIED
Jefferson K DilliardJapanBernardo Dominic RENEWAL
Wickens N StensethFranceAnna Fali UNQUALIFIED
Claire V AmigonJapanAsiya Javayant UNQUALIFIED
Ivar P StockhamFranceAmy Elsner NEGOTIATION
Sinclair B RimArgentinaOnyama Limba PROPOSAL
Stacey S BriddickJapanIvan Magalhaes UNQUALIFIED
Chavez M NestleItalyStephen Shaw NEGOTIATION
Ivar U ChuiFranceXuxue Feng NEW
Jeanfrancois J KuskoRussiaAnna Fali UNQUALIFIED
Octavia W StockhamArgentinaElwin Sharvill NEW
Jones M GillianFranceStephen Shaw PROPOSAL
Rodrigues Z IturbideItalyStephen Shaw NEGOTIATION
Greenwood B FollerJapanIvan 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>