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
Francesco C MarrierItalyIvan Magalhaes QUALIFIED
Clifford O SaylorsItalyAnna Fali QUALIFIED
Francesco U MaletUnited KingdomOnyama Limba NEW
Johnson D NestleCanadaElwin Sharvill NEW
Nicolas Z RoysterRussiaAsiya Javayant UNQUALIFIED
Maisha F CampainGermanyOnyama Limba NEW
Kaitlin R RulapaughAustraliaAnna Fali PROPOSAL
Clifford P CaldareraCanadaStephen Shaw NEW
Smith B SergiItalyXuxue Feng RENEWAL
Aika O IturbideRussiaAmy Elsner PROPOSAL
Ricardo W ChuiBrazilAmy Elsner NEGOTIATION
Aika C FerenczArgentinaOnyama Limba NEW
Salvatore J WhobreySpainIvan Magalhaes PROPOSAL
Jones L DoeBrazilStephen Shaw NEGOTIATION
Claire V FigeroaFranceIvan Magalhaes PROPOSAL
Greenwood R FlosiBrazilAmy Elsner RENEWAL
Izzy R PoquetteJapanOnyama Limba RENEWAL
Leon S VenereIndiaStephen Shaw RENEWAL
Greenwood R DarakjyAustraliaAsiya Javayant NEGOTIATION
Misaki E WhobreyBrazilAnna Fali QUALIFIED
Maria E StensethGermanyAsiya Javayant NEGOTIATION
Darci A PoquetteBrazilElwin Sharvill NEW
Misaki Z SlusarskiGermanyAnna Fali NEW
Jefferson R GillianBrazilAsiya Javayant QUALIFIED
Cody Y KuskoArgentinaXuxue Feng RENEWAL
Adams Y DoeJapanIoni Bowcher UNQUALIFIED
Faith O ButtSpainIoni Bowcher NEW
Emily C KolmetzGermanyElwin Sharvill UNQUALIFIED
Salvatore S FerenczArgentinaIvan Magalhaes RENEWAL
Morrow N IturbideBrazilElwin Sharvill UNQUALIFIED
David E MaletFranceIoni Bowcher QUALIFIED
Ashley N PaprockiFranceStephen Shaw RENEWAL
Francesco B DoeRussiaAmy Elsner RENEWAL
Aika Q FigeroaSpainIvan Magalhaes UNQUALIFIED
Nicolas O IturbideFranceOnyama Limba PROPOSAL
Leon P BriddickFranceAsiya Javayant NEW
Juan B RulapaughJapanXuxue Feng NEW
Aditya G SchemmerRussiaXuxue Feng UNQUALIFIED
Silvio A WaycottRussiaBernardo Dominic QUALIFIED
Jeanfrancois W GillianJapanBernardo Dominic PROPOSAL
Munro H BriddickJapanAsiya Javayant RENEWAL
Salvatore H SlusarskiUnited KingdomBernardo Dominic NEW
Salvatore S WieserCanadaIvan Magalhaes QUALIFIED
Kadeem E RulapaughCanadaAmy Elsner NEW
Maisha V InouyeFranceIoni Bowcher RENEWAL
Aditya U BriddickBrazilIvan Magalhaes QUALIFIED
Clifford P GarufiAustraliaAnna Fali NEGOTIATION
Maria U ChuiBrazilAmy Elsner UNQUALIFIED
Ivar B GarufiCanadaAsiya Javayant NEGOTIATION
Adams U ShinkoAustraliaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Arvin N StockhamItalyAsiya Javayant PROPOSAL
Stacey W CaudyItalyStephen Shaw RENEWAL
Claire X TollnerItalyOnyama Limba UNQUALIFIED
Salvatore C SergiJapanStephen Shaw PROPOSAL
Aruna W TollnerUnited KingdomIoni Bowcher RENEWAL
Leon Y VenereBrazilElwin Sharvill QUALIFIED
Francesco P GillianJapanXuxue Feng NEGOTIATION
Maria G SchemmerSpainAsiya Javayant NEW
Nicolas C PaprockiIndiaIoni Bowcher PROPOSAL
Jefferson M OldroydUnited KingdomOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio X NestleRussia2026-07-23Buckley Miller Wright UNQUALIFIED23Onyama Limba
1001Darci J SergiGermany2026-07-20Rousseaux, Michael Esq PROPOSAL63Ioni Bowcher
1002Munro D CaldareraArgentina2026-07-27Buckley Miller Wright PROPOSAL99Ivan Magalhaes
1003Francesco D ChuiGermany2026-07-20Printing Dimensions RENEWAL95Stephen Shaw
1004Clifford L MacleadIndia2026-08-04Chapman, Ross E Esq RENEWAL36Ivan Magalhaes
1005Sinclair F GillianAustralia2026-08-06Rousseaux, Michael Esq RENEWAL79Stephen Shaw
1006Aruna D WieserIndia2026-07-28Benton, John B Jr NEGOTIATION11Elwin Sharvill
1007Clifford Q FigeroaIndia2026-08-12Chemel, James L Cpa UNQUALIFIED9Amy Elsner
1008Jeanfrancois J NestleRussia2026-08-06Printing Dimensions UNQUALIFIED31Onyama Limba
1009Aika C DoeJapan2026-07-29Buckley Miller Wright PROPOSAL58Asiya Javayant
1010Francesco Q ButtSpain2026-07-26Rangoni Of Florence PROPOSAL33Ioni Bowcher
1011Juan K IturbideGermany2026-07-26Feiner Bros UNQUALIFIED97Ivan Magalhaes
1012Isabel C DilliardRussia2026-08-02Rousseaux, Michael Esq NEW22Anna Fali
1013Claire E AmigonAustralia2026-07-23Morlong Associates RENEWAL48Ivan Magalhaes
1014Mujtaba L ShinkoSpain2026-07-24Buckley Miller Wright UNQUALIFIED69Xuxue Feng
1015Octavia B PoquetteJapan2026-08-17Rangoni Of Florence UNQUALIFIED88Stephen Shaw
1016Faith Z WaycottCanada2026-08-03Chapman, Ross E Esq PROPOSAL37Ioni Bowcher
1017Johnson I InouyeItaly2026-08-04Dorl, James J Esq UNQUALIFIED23Xuxue Feng
1018Octavia B TollnerSpain2026-08-02Printing Dimensions RENEWAL83Elwin Sharvill
1019Morrow H AlbaresBrazil2026-08-05Dorl, James J Esq NEGOTIATION91Bernardo Dominic
1020Sinclair K GlickBrazil2026-08-05Feiner Bros PROPOSAL62Xuxue Feng
1021Misaki H WhobreyAustralia2026-08-11Dorl, James J Esq QUALIFIED16Bernardo Dominic
1022Mayumi D CaudySpain2026-07-24Feltz Printing Service PROPOSAL41Xuxue Feng
1023Ashley V MaletRussia2026-08-10Commercial Press PROPOSAL76Stephen Shaw
1024Isabel V FollerFrance2026-07-25Dorl, James J Esq UNQUALIFIED46Anna Fali
1025Leon H SergiItaly2026-08-16Chapman, Ross E Esq UNQUALIFIED93Ivan Magalhaes
1026Aika K StockhamJapan2026-07-29Benton, John B Jr QUALIFIED69Onyama Limba
1027Mujtaba S BologniaRussia2026-08-09King, Christopher A Esq PROPOSAL21Asiya Javayant
1028Silvio R PoquetteGermany2026-07-26Buckley Miller Wright PROPOSAL62Xuxue Feng
1029Jones R FigeroaAustralia2026-08-18Chemel, James L Cpa NEW68Asiya Javayant
1030Misaki T RoysterJapan2026-07-26Truhlar And Truhlar Attys NEGOTIATION94Elwin Sharvill
1031Salvatore V FollerBrazil2026-08-11Truhlar And Truhlar Attys NEGOTIATION87Asiya Javayant
1032Costa E FerenczItaly2026-08-15Chemel, James L Cpa UNQUALIFIED19Bernardo Dominic
1033Claire M KuskoCanada2026-08-01Feltz Printing Service NEGOTIATION16Stephen Shaw
1034Isabel E NickaArgentina2026-08-11Benton, John B Jr UNQUALIFIED89Anna Fali
1035Ricardo D GarufiSpain2026-08-05Chapman, Ross E Esq NEGOTIATION57Amy Elsner
1036Costa V GarufiFrance2026-08-08Truhlar And Truhlar Attys PROPOSAL21Ivan Magalhaes
1037Juan N SchemmerJapan2026-07-25Chapman, Ross E Esq NEGOTIATION22Elwin Sharvill
1038Munro F GarufiRussia2026-08-16Rousseaux, Michael Esq NEW6Xuxue Feng
1039Leon S BriddickArgentina2026-07-29Printing Dimensions RENEWAL29Anna Fali
1040Isabel M KolmetzJapan2026-07-24Chapman, Ross E Esq PROPOSAL79Xuxue Feng
1041Kadeem W MarrierJapan2026-07-23King, Christopher A Esq NEGOTIATION8Anna Fali
1042David E SchemmerJapan2026-08-08Dorl, James J Esq RENEWAL41Ioni Bowcher
1043Jennifer O SlusarskiGermany2026-07-24Printing Dimensions RENEWAL10Anna Fali
1044Rodrigues C ShinkoGermany2026-08-12Rousseaux, Michael Esq UNQUALIFIED47Ioni Bowcher
1045Antonio H AlbaresSpain2026-08-05Feiner Bros UNQUALIFIED14Ioni Bowcher
1046Julie C CaudyGermany2026-08-12Dorl, James J Esq QUALIFIED12Elwin Sharvill
1047Faith V RoysterAustralia2026-07-21King, Christopher A Esq NEGOTIATION68Onyama Limba
1048Aruna O SchemmerArgentina2026-08-17Printing Dimensions PROPOSAL44Asiya Javayant
1049Munro X AmigonSpain2026-07-28Benton, John B Jr RENEWAL40Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
David G BowleyArgentinaIoni Bowcher PROPOSAL
Tony O BologniaJapanAnna Fali QUALIFIED
Darci E NickaFranceIvan Magalhaes NEGOTIATION
Silvio U DilliardUnited KingdomAnna Fali PROPOSAL
Salvatore P WhobreyCanadaIoni Bowcher NEW
Mujtaba U PoquetteBrazilBernardo Dominic QUALIFIED
Kaitlin R MaletUnited KingdomAmy Elsner NEW
Silvio C SergiIndiaIvan Magalhaes NEGOTIATION
Silvio Q CampainAustraliaIoni Bowcher PROPOSAL
Mujtaba R SaylorsAustraliaIvan Magalhaes PROPOSAL
Antonio H MorascaSpainElwin Sharvill PROPOSAL
Cody X AmigonAustraliaBernardo Dominic UNQUALIFIED
Claire T CaudyArgentinaIvan Magalhaes RENEWAL
Jennifer D WaycottAustraliaIoni Bowcher PROPOSAL
Antonio L WieserRussiaOnyama Limba PROPOSAL
Rodrigues F PaprockiIndiaAnna Fali UNQUALIFIED
Morrow G MacleadGermanyXuxue Feng NEW
Antonio E GauchoIndiaStephen Shaw UNQUALIFIED
Morrow D FollerJapanIvan Magalhaes PROPOSAL
Claire S KolmetzFranceAnna Fali RENEWAL
Jones G OldroydJapanElwin Sharvill NEW
Kaitlin Q AmigonCanadaIoni Bowcher NEW
Darci C NickaSpainOnyama Limba QUALIFIED
Aditya D FollerGermanyAnna Fali PROPOSAL
Emily S VocelkaRussiaStephen Shaw NEGOTIATION
Aditya O KuskoCanadaIoni Bowcher NEW
Alejandro R ShinkoIndiaXuxue Feng UNQUALIFIED
Leon G InouyeItalyOnyama Limba QUALIFIED
Jones M AlbaresAustraliaElwin Sharvill QUALIFIED
Adams L WieserJapanAsiya Javayant PROPOSAL
Leon J GauchoArgentinaStephen Shaw QUALIFIED
Leja G FerenczFranceIvan Magalhaes NEW
Mayumi T OstroskyBrazilAsiya Javayant NEGOTIATION
Smith F GlickJapanOnyama Limba RENEWAL
Greenwood K SaylorsArgentinaElwin Sharvill QUALIFIED
Chavez Z PoquetteItalyXuxue Feng QUALIFIED
Salvatore D KolmetzRussiaElwin Sharvill RENEWAL
James D NestleJapanAnna Fali QUALIFIED
Aruna C FigeroaBrazilBernardo Dominic QUALIFIED
Salvatore G DarakjyFranceAmy Elsner NEGOTIATION
Misaki L OldroydFranceAsiya Javayant QUALIFIED
Aditya I MaletBrazilAnna Fali RENEWAL
Silvio W RimItalyOnyama Limba NEGOTIATION
Julie Q MorascaCanadaXuxue Feng NEW
Morrow T BriddickJapanOnyama Limba PROPOSAL
Maisha I RoysterGermanyIvan Magalhaes QUALIFIED
Sinclair E PaprockiRussiaXuxue Feng RENEWAL
Kadeem B ShinkoAustraliaIoni Bowcher PROPOSAL
Mujtaba O DoeRussiaAsiya Javayant NEGOTIATION
Maria I MarrierCanadaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Mayumi R Stockham
Alejandro Q Iturbide
Isabel B Chui
Wickens J Vocelka
Murillo E Oldroyd
Nicolas I Caldarera
Leon L Saylors
Jeanfrancois E Amigon
Stacey R Paprocki
Mayumi O Waycott
Ivar N Chui
Murillo X Nicka
Ivar E Tollner
Ivar I Poquette
Rodrigues A Stenseth
Claire R Saylors
Maria R Foller
Isabel X Glick
Mujtaba O Caudy
Morrow L Kusko
Silvio H Tollner
Morrow K Wieser
Rodrigues C Whobrey
Arvin M Flosi
Izzy X Royster
Deepesh D Royster
Octavia F Bowley
Leon E Butt
Adams A Flosi
Jennifer R Caldarera
Isabel T Kusko
Leja S Figeroa
Kaitlin T Rim
Isabel K Stockham
James F Whobrey
Cody Z Kusko
Alejandro X Paprocki
Rodrigues C Malet
Cody B Butt
Kaitlin G Oldroyd
Clifford R Albares
Mujtaba J Kolmetz
Chavez A Wieser
Aditya X Slusarski
Stacey F Caudy
Aruna A Paprocki
Leon E Gillian
Johnson E Kusko
Octavia Y Slusarski
Adams Q Campain
IdCountryDate
1000Japan2026-07-23
1001Brazil2026-08-18
1002Brazil2026-08-15
1003Canada2026-07-23
1004Australia2026-08-10
1005Australia2026-08-15
1006Australia2026-08-06
1007Italy2026-08-16
1008Germany2026-08-06
1009United Kingdom2026-08-11
1010United Kingdom2026-07-26
1011Brazil2026-08-08
1012United Kingdom2026-08-12
1013United Kingdom2026-07-25
1014Italy2026-08-01
1015United Kingdom2026-08-08
1016Brazil2026-07-28
1017Germany2026-07-24
1018Australia2026-08-01
1019United Kingdom2026-08-01
1020Canada2026-07-26
1021Brazil2026-08-08
1022Brazil2026-08-03
1023Italy2026-08-08
1024India2026-07-23
1025Australia2026-07-26
1026Australia2026-08-03
1027Brazil2026-07-21
1028France2026-08-09
1029Italy2026-08-14
1030Canada2026-07-29
1031Spain2026-07-31
1032Germany2026-07-21
1033Brazil2026-08-16
1034Japan2026-08-01
1035Canada2026-07-26
1036Argentina2026-07-26
1037Spain2026-08-12
1038Russia2026-08-01
1039Canada2026-07-21
1040Brazil2026-08-08
1041Brazil2026-08-03
1042Russia2026-07-25
1043Brazil2026-08-01
1044Argentina2026-08-10
1045Spain2026-08-03
1046India2026-08-05
1047Brazil2026-07-23
1048Argentina2026-07-25
1049United Kingdom2026-08-10

On-Demand Data

NameIdCountryDate
Chavez D Royster1000France2026-07-30
Jeanfrancois C Briddick1001Japan2026-08-10
Maria F Iturbide1002Canada2026-08-12
Darci F Glick1003Brazil2026-07-20
Salvatore S Poquette1004Italy2026-07-29
Misaki M Nestle1005Italy2026-07-30
Greenwood O Kusko1006Japan2026-08-11
Silvio W Royster1007Italy2026-08-04
Ivar H Ferencz1008Argentina2026-08-09
Maria M Nicka1009Germany2026-07-20
Murillo H Gaucho1010Brazil2026-08-13
Tony I Maclead1011India2026-08-01
Clifford P Malet1012Russia2026-07-29
Adams V Whobrey1013United Kingdom2026-07-21
Stacey A Saylors1014Japan2026-08-05
Isabel S Flosi1015France2026-08-11
Aika Z Doe1016Germany2026-07-21
Ricardo A Shinko1017Brazil2026-08-11
Izzy S Bowley1018Germany2026-08-16
Leja G Malet1019Japan2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna N VocelkaArgentinaOnyama Limba NEGOTIATION
Maria E NickaArgentinaXuxue Feng NEGOTIATION
Salvatore D CampainItalyXuxue Feng PROPOSAL
Silvio H MaletUnited KingdomElwin Sharvill RENEWAL
Nicolas X MacleadArgentinaElwin Sharvill PROPOSAL
Aika U ButtArgentinaAsiya Javayant PROPOSAL
Smith P MaletJapanAnna Fali QUALIFIED
Leon H SergiArgentinaAnna Fali UNQUALIFIED
Sinclair H SergiCanadaAnna Fali UNQUALIFIED
Silvio C ButtUnited KingdomAmy Elsner UNQUALIFIED
Jones Y AlbaresArgentinaAmy Elsner RENEWAL
Murillo R NestleUnited KingdomAmy Elsner NEGOTIATION
Clifford Z GlickAustraliaStephen Shaw UNQUALIFIED
Jefferson W PoquetteSpainIoni Bowcher NEW
Kaitlin F MarrierAustraliaBernardo Dominic RENEWAL
David V RoysterCanadaIoni Bowcher RENEWAL
Morrow G AmigonItalyOnyama Limba UNQUALIFIED
Alejandro X RutaBrazilAmy Elsner RENEWAL
Juan P AlbaresArgentinaXuxue Feng UNQUALIFIED
Leon N InouyeArgentinaOnyama Limba PROPOSAL
Misaki S GauchoIndiaIoni Bowcher RENEWAL
Stacey V ChuiGermanyStephen Shaw UNQUALIFIED
Costa V AlbaresIndiaStephen Shaw UNQUALIFIED
Mayumi B VocelkaArgentinaIoni Bowcher NEGOTIATION
Leja B FigeroaSpainOnyama Limba PROPOSAL
Maria N WhobreySpainAmy Elsner UNQUALIFIED
David T MarrierCanadaXuxue Feng PROPOSAL
Aika M BowleyRussiaElwin Sharvill RENEWAL
Smith Q CaldareraBrazilAsiya Javayant PROPOSAL
Aruna J CaldareraRussiaAmy Elsner RENEWAL
Sinclair M PaprockiSpainOnyama Limba NEGOTIATION
Juan F NestleBrazilBernardo Dominic QUALIFIED
Ashley Y SaylorsAustraliaStephen Shaw QUALIFIED
Silvio T StensethCanadaBernardo Dominic RENEWAL
Stacey K StensethUnited KingdomStephen Shaw RENEWAL
Maisha P OldroydItalyIoni Bowcher NEW
Ashley E TollnerSpainIoni Bowcher RENEWAL
Juan W BowleyRussiaAmy Elsner QUALIFIED
Francesco W MaletRussiaIoni Bowcher RENEWAL
Adams B InouyeGermanyOnyama Limba 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>