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 E MorascaJapanOnyama Limba RENEWAL
James L SergiRussiaAnna Fali UNQUALIFIED
Darci H PoquetteJapanElwin Sharvill NEW
Aika Z RutaArgentinaXuxue Feng QUALIFIED
Stacey H ShinkoItalyAsiya Javayant QUALIFIED
Tony H BologniaIndiaAsiya Javayant UNQUALIFIED
Francesco K MacleadRussiaAmy Elsner NEW
Clifford J OldroydRussiaIvan Magalhaes UNQUALIFIED
Leon T WhobreySpainOnyama Limba UNQUALIFIED
Ricardo S SaylorsCanadaIoni Bowcher NEGOTIATION
Aditya O CaldareraGermanyBernardo Dominic PROPOSAL
Claire I CaudyItalyStephen Shaw PROPOSAL
James R SaylorsFranceIvan Magalhaes NEGOTIATION
Jennifer S DoeJapanStephen Shaw UNQUALIFIED
Tony B OldroydFranceAmy Elsner UNQUALIFIED
Rodrigues S CampainJapanIvan Magalhaes PROPOSAL
Aika N KuskoSpainXuxue Feng PROPOSAL
Aruna F AmigonAustraliaOnyama Limba QUALIFIED
Nicolas B GillianUnited KingdomAsiya Javayant NEGOTIATION
Mujtaba D RimGermanyStephen Shaw NEGOTIATION
Clifford Y RutaIndiaAsiya Javayant PROPOSAL
Stacey D DilliardFranceIoni Bowcher QUALIFIED
Ivar J GlickItalyAmy Elsner PROPOSAL
Wickens E ChuiBrazilAmy Elsner UNQUALIFIED
Aruna X SchemmerUnited KingdomIvan Magalhaes QUALIFIED
Chavez L AlbaresCanadaAmy Elsner RENEWAL
Maria N VenereCanadaBernardo Dominic RENEWAL
Aika Z AmigonUnited KingdomStephen Shaw UNQUALIFIED
Octavia Q GarufiUnited KingdomBernardo Dominic NEW
Alejandro K MaletAustraliaOnyama Limba UNQUALIFIED
Isabel E NickaArgentinaAmy Elsner RENEWAL
Julie M GarufiBrazilAnna Fali UNQUALIFIED
Ricardo C NestleRussiaIvan Magalhaes NEGOTIATION
Misaki K PaprockiRussiaAnna Fali NEW
Maria X GauchoGermanyAmy Elsner UNQUALIFIED
Wickens M MaletUnited KingdomStephen Shaw UNQUALIFIED
Silvio E StockhamBrazilOnyama Limba QUALIFIED
Ricardo J MaletJapanAmy Elsner NEGOTIATION
Clifford W FlosiRussiaOnyama Limba NEGOTIATION
Clifford L BologniaFranceStephen Shaw UNQUALIFIED
Mujtaba P VocelkaSpainElwin Sharvill UNQUALIFIED
Maria Z MarrierUnited KingdomBernardo Dominic PROPOSAL
Juan T OstroskyAustraliaOnyama Limba UNQUALIFIED
Jefferson R MaletUnited KingdomOnyama Limba NEGOTIATION
Munro Z GarufiArgentinaAnna Fali RENEWAL
Darci V MaletSpainAmy Elsner UNQUALIFIED
Jones Z NickaBrazilIoni Bowcher NEGOTIATION
Ricardo I OstroskyAustraliaIvan Magalhaes QUALIFIED
James Z VenereArgentinaIvan Magalhaes QUALIFIED
Emily L BriddickRussiaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
David S MarrierJapanBernardo Dominic RENEWAL
Emily V KuskoArgentinaElwin Sharvill UNQUALIFIED
Jennifer M MorascaBrazilIvan Magalhaes RENEWAL
Julie E PaprockiRussiaBernardo Dominic NEW
Darci Q FlosiItalyXuxue Feng NEW
Maisha A RoysterCanadaOnyama Limba QUALIFIED
Izzy L FerenczCanadaIoni Bowcher QUALIFIED
Emily Q WhobreyFranceElwin Sharvill NEGOTIATION
Sinclair M KuskoAustraliaIoni Bowcher RENEWAL
Silvio H GarufiFranceIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro C ChuiGermany2026-07-17Rousseaux, Michael Esq UNQUALIFIED17Stephen Shaw
1001Izzy I ShinkoBrazil2026-07-25Chemel, James L Cpa RENEWAL32Elwin Sharvill
1002Faith X AlbaresBrazil2026-07-26Morlong Associates NEW67Onyama Limba
1003Jennifer D SaylorsSpain2026-07-05Commercial Press UNQUALIFIED26Stephen Shaw
1004Munro P WieserJapan2026-07-28Truhlar And Truhlar Attys PROPOSAL59Elwin Sharvill
1005Ivar Y RimIndia2026-07-06Buckley Miller Wright NEGOTIATION32Elwin Sharvill
1006Darci L RulapaughGermany2026-07-24King, Christopher A Esq PROPOSAL80Ivan Magalhaes
1007Stacey V WhobreyAustralia2026-07-13Morlong Associates UNQUALIFIED41Asiya Javayant
1008Clifford E IturbideItaly2026-07-28Benton, John B Jr NEGOTIATION85Ivan Magalhaes
1009Smith H GauchoSpain2026-07-24Truhlar And Truhlar Attys UNQUALIFIED65Xuxue Feng
1010Stacey C TollnerJapan2026-07-16Morlong Associates PROPOSAL99Bernardo Dominic
1011Claire P DilliardArgentina2026-07-16Chemel, James L Cpa NEGOTIATION34Stephen Shaw
1012Arvin C AmigonJapan2026-07-03Commercial Press PROPOSAL63Stephen Shaw
1013Antonio O AmigonRussia2026-07-15Feiner Bros QUALIFIED98Ivan Magalhaes
1014Rodrigues C RutaUnited Kingdom2026-06-30Chemel, James L Cpa NEW28Amy Elsner
1015Adams C PaprockiSpain2026-07-12Rangoni Of Florence RENEWAL57Onyama Limba
1016Adams V GauchoCanada2026-07-15Chanay, Jeffrey A Esq RENEWAL76Ioni Bowcher
1017Stacey M GarufiSpain2026-07-01Buckley Miller Wright UNQUALIFIED80Stephen Shaw
1018Misaki L RimIndia2026-07-17Buckley Miller Wright UNQUALIFIED53Onyama Limba
1019Jeanfrancois T MorascaArgentina2026-07-04King, Christopher A Esq RENEWAL52Asiya Javayant
1020Johnson U CampainItaly2026-07-06Printing Dimensions PROPOSAL71Ivan Magalhaes
1021Claire B FlosiArgentina2026-07-04King, Christopher A Esq RENEWAL3Asiya Javayant
1022Aditya Z DilliardSpain2026-07-25Rangoni Of Florence NEW7Onyama Limba
1023Julie Z DilliardSpain2026-07-17Printing Dimensions RENEWAL23Stephen Shaw
1024Darci H BriddickUnited Kingdom2026-07-01Morlong Associates NEGOTIATION76Ivan Magalhaes
1025Stacey L StockhamGermany2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED70Stephen Shaw
1026Isabel C WieserItaly2026-07-15Buckley Miller Wright PROPOSAL47Onyama Limba
1027Faith W WaycottSpain2026-07-13Chapman, Ross E Esq NEGOTIATION38Asiya Javayant
1028Isabel O MaletIndia2026-07-26King, Christopher A Esq QUALIFIED70Xuxue Feng
1029Smith Q SaylorsIndia2026-07-02Buckley Miller Wright PROPOSAL62Asiya Javayant
1030Faith P StockhamAustralia2026-07-18Feiner Bros NEW22Ioni Bowcher
1031Cody C OstroskyAustralia2026-07-10Rousseaux, Michael Esq PROPOSAL77Amy Elsner
1032Alejandro N BowleyFrance2026-07-15King, Christopher A Esq PROPOSAL30Elwin Sharvill
1033Isabel C WaycottRussia2026-07-01Chanay, Jeffrey A Esq NEGOTIATION6Stephen Shaw
1034Juan V PaprockiSpain2026-07-28Feiner Bros NEGOTIATION10Amy Elsner
1035Nicolas H TollnerRussia2026-07-18Printing Dimensions NEGOTIATION0Stephen Shaw
1036Jones L GillianIndia2026-07-24Feiner Bros UNQUALIFIED76Onyama Limba
1037Salvatore F GillianBrazil2026-07-22Truhlar And Truhlar Attys NEW9Stephen Shaw
1038David L RulapaughItaly2026-07-04Feltz Printing Service NEW32Onyama Limba
1039Antonio D CampainGermany2026-07-19Morlong Associates QUALIFIED40Amy Elsner
1040Jones D DilliardSpain2026-07-18Dorl, James J Esq NEW55Onyama Limba
1041Sinclair N FerenczItaly2026-07-10Buckley Miller Wright RENEWAL3Onyama Limba
1042Smith I FigeroaIndia2026-07-22Truhlar And Truhlar Attys NEGOTIATION7Bernardo Dominic
1043Jefferson H DoeSpain2026-07-07Truhlar And Truhlar Attys UNQUALIFIED75Stephen Shaw
1044Ricardo N RutaGermany2026-07-25Feltz Printing Service NEW14Asiya Javayant
1045Antonio W BriddickIndia2026-07-26Truhlar And Truhlar Attys RENEWAL9Amy Elsner
1046Claire Q GillianRussia2026-07-09Chemel, James L Cpa UNQUALIFIED43Ivan Magalhaes
1047James V FollerRussia2026-07-01Buckley Miller Wright PROPOSAL2Ivan Magalhaes
1048Murillo E OldroydFrance2026-07-20Printing Dimensions NEGOTIATION7Xuxue Feng
1049Ivar E PerinIndia2026-07-20Rousseaux, Michael Esq NEW33Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Kadeem Z SergiItalyXuxue Feng RENEWAL
Cody C KuskoJapanStephen Shaw QUALIFIED
Tony H FlosiItalyAnna Fali QUALIFIED
Claire G DarakjyCanadaBernardo Dominic NEW
Costa Z StockhamArgentinaElwin Sharvill QUALIFIED
Aika M GlickItalyAnna Fali NEGOTIATION
Aruna S AlbaresSpainElwin Sharvill UNQUALIFIED
Ivar A RutaArgentinaElwin Sharvill RENEWAL
Izzy K AlbaresFranceAnna Fali NEW
Adams I InouyeIndiaAmy Elsner NEW
Aruna P ChuiIndiaXuxue Feng PROPOSAL
Ashley E KolmetzGermanyIoni Bowcher UNQUALIFIED
Claire A BowleyAustraliaOnyama Limba RENEWAL
Mujtaba W RutaBrazilElwin Sharvill UNQUALIFIED
Leon F FerenczBrazilBernardo Dominic PROPOSAL
Antonio V RoysterSpainStephen Shaw NEGOTIATION
Greenwood R WhobreyAustraliaElwin Sharvill PROPOSAL
Faith G GillianUnited KingdomIoni Bowcher RENEWAL
Salvatore H SchemmerGermanyIvan Magalhaes RENEWAL
Cody Y MacleadArgentinaBernardo Dominic NEGOTIATION
Aika C NestleUnited KingdomAmy Elsner NEGOTIATION
Ashley F RulapaughIndiaAsiya Javayant PROPOSAL
Munro Q DilliardIndiaAsiya Javayant PROPOSAL
Kaitlin H RutaJapanBernardo Dominic PROPOSAL
Darci D WieserCanadaXuxue Feng QUALIFIED
Julie Y RulapaughJapanElwin Sharvill QUALIFIED
Adams E VocelkaJapanAmy Elsner NEGOTIATION
Johnson Y SchemmerIndiaElwin Sharvill UNQUALIFIED
Rodrigues N NickaJapanAsiya Javayant NEGOTIATION
Adams V MaletItalyIoni Bowcher NEGOTIATION
Alejandro W NestleBrazilElwin Sharvill UNQUALIFIED
Arvin W CaldareraBrazilAsiya Javayant QUALIFIED
Misaki L SlusarskiFranceIvan Magalhaes RENEWAL
Kaitlin Z VocelkaArgentinaIoni Bowcher NEW
Greenwood Z VenereGermanyAmy Elsner RENEWAL
Aditya C RimJapanAmy Elsner NEW
Tony B OstroskyGermanyXuxue Feng PROPOSAL
Julie V OldroydAustraliaStephen Shaw PROPOSAL
Murillo J GauchoCanadaXuxue Feng NEW
Aditya P PerinSpainAmy Elsner NEGOTIATION
Salvatore X FigeroaUnited KingdomStephen Shaw PROPOSAL
Maisha N KolmetzGermanyBernardo Dominic UNQUALIFIED
Smith B NickaUnited KingdomAsiya Javayant UNQUALIFIED
Aika L MaletArgentinaAsiya Javayant NEW
Mayumi V KolmetzJapanAnna Fali RENEWAL
Misaki L MaletJapanIvan Magalhaes NEW
Deepesh Z CaldareraIndiaXuxue Feng NEW
David D MaletUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois J DarakjyAustraliaIoni Bowcher PROPOSAL
Cody X GlickJapanOnyama Limba NEGOTIATION
Frozen Columns
Name
Antonio E Garufi
Leja P Bowley
Jefferson T Garufi
Mayumi L Paprocki
Mayumi R Ferencz
Claire Q Butt
Kaitlin E Gaucho
Jennifer J Dilliard
Rodrigues F Schemmer
Cody X Garufi
Faith I Chui
Greenwood F Maclead
Antonio Y Wieser
Johnson O Nestle
Mayumi W Perin
Silvio Z Figeroa
Kadeem V Ruta
Ashley I Bolognia
Jeanfrancois A Nicka
Smith Y Chui
Sinclair X Poquette
Antonio W Wieser
Aika Y Butt
Chavez U Caldarera
Kaitlin H Venere
Francesco F Chui
Julie G Flosi
Murillo E Malet
Stacey R Sergi
Mujtaba Q Ruta
Ashley K Gaucho
Costa T Caudy
Isabel Z Malet
Salvatore D Gaucho
Maisha Y Malet
Misaki A Ferencz
Juan J Gillian
Izzy Z Nicka
Arvin B Caldarera
Mujtaba R Ferencz
Wickens R Ferencz
Salvatore G Gaucho
Murillo J Poquette
Ricardo C Bolognia
Julie L Nestle
Deepesh R Campain
Kadeem Y Wieser
Jones F Nicka
Silvio S Malet
Mayumi K Albares
IdCountryDate
1000India2026-07-29
1001Canada2026-07-20
1002Italy2026-07-17
1003Canada2026-07-07
1004Russia2026-06-30
1005France2026-07-29
1006France2026-07-15
1007Spain2026-07-04
1008Spain2026-07-15
1009Australia2026-07-26
1010Australia2026-07-19
1011Spain2026-07-28
1012Italy2026-07-22
1013India2026-07-08
1014Japan2026-07-12
1015Russia2026-07-17
1016Germany2026-07-27
1017Germany2026-07-20
1018France2026-07-10
1019Argentina2026-07-03
1020Canada2026-07-26
1021Australia2026-07-02
1022Spain2026-07-02
1023Russia2026-07-13
1024Brazil2026-06-30
1025Brazil2026-07-23
1026Italy2026-07-22
1027India2026-07-22
1028Italy2026-07-03
1029Spain2026-06-30
1030Brazil2026-07-19
1031Brazil2026-07-12
1032Russia2026-07-01
1033India2026-07-16
1034Brazil2026-07-05
1035Italy2026-07-14
1036Canada2026-07-29
1037Germany2026-07-02
1038Brazil2026-07-21
1039United Kingdom2026-07-13
1040Spain2026-07-04
1041Argentina2026-07-29
1042United Kingdom2026-07-18
1043Canada2026-07-16
1044Brazil2026-07-04
1045Australia2026-07-07
1046United Kingdom2026-07-23
1047United Kingdom2026-07-22
1048United Kingdom2026-07-25
1049Japan2026-07-27

On-Demand Data

NameIdCountryDate
Octavia Y Perin1000Australia2026-07-27
Arvin Z Briddick1001Spain2026-07-10
Sinclair M Schemmer1002Brazil2026-07-27
Mujtaba D Waycott1003Japan2026-07-26
Isabel O Schemmer1004Russia2026-07-07
Jefferson F Kusko1005United Kingdom2026-07-22
Clifford E Foller1006France2026-07-28
Smith O Amigon1007Argentina2026-07-02
Adams L Doe1008Australia2026-07-08
Ricardo H Saylors1009United Kingdom2026-07-15
David I Shinko1010United Kingdom2026-07-25
Izzy P Venere1011Japan2026-07-15
Ricardo J Bolognia1012Brazil2026-06-30
Clifford P Poquette1013Argentina2026-07-11
Arvin Q Venere1014Australia2026-07-10
Munro N Maclead1015Brazil2026-07-18
Isabel M Bowley1016Italy2026-07-04
Maria A Amigon1017Germany2026-07-23
Aika I Sergi1018Italy2026-07-25
Alejandro K Wieser1019Argentina2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford Y BologniaRussiaIvan Magalhaes PROPOSAL
Deepesh V CaudyItalyStephen Shaw QUALIFIED
Darci K DarakjyUnited KingdomOnyama Limba QUALIFIED
Clifford Q ChuiItalyElwin Sharvill UNQUALIFIED
Octavia L GlickRussiaIoni Bowcher UNQUALIFIED
Kaitlin L FerenczUnited KingdomIvan Magalhaes PROPOSAL
Costa N GarufiArgentinaAsiya Javayant NEGOTIATION
Silvio B WieserRussiaAmy Elsner RENEWAL
Deepesh S MaletSpainOnyama Limba PROPOSAL
Smith N PerinGermanyBernardo Dominic RENEWAL
Jeanfrancois Z CampainFranceElwin Sharvill QUALIFIED
Ivar B FerenczCanadaElwin Sharvill UNQUALIFIED
Francesco M GillianJapanAmy Elsner NEGOTIATION
Aruna K DilliardIndiaIvan Magalhaes RENEWAL
Izzy I DilliardRussiaStephen Shaw PROPOSAL
Misaki R FerenczSpainIoni Bowcher QUALIFIED
Claire Q KolmetzAustraliaOnyama Limba RENEWAL
Mayumi X KolmetzRussiaIvan Magalhaes NEW
Munro C SaylorsGermanyIoni Bowcher PROPOSAL
Rodrigues U StockhamIndiaStephen Shaw NEGOTIATION
Salvatore S SchemmerSpainBernardo Dominic RENEWAL
Smith Z GlickGermanyAnna Fali NEGOTIATION
Rodrigues I StensethUnited KingdomStephen Shaw NEW
Sinclair Q KolmetzArgentinaXuxue Feng NEW
Silvio N DilliardRussiaAnna Fali UNQUALIFIED
Wickens S PerinUnited KingdomIoni Bowcher NEW
Juan L SchemmerBrazilAmy Elsner PROPOSAL
Arvin Z StockhamBrazilElwin Sharvill UNQUALIFIED
Mayumi T KolmetzAustraliaXuxue Feng NEW
Ivar L AlbaresGermanyIvan Magalhaes PROPOSAL
David V CaudyArgentinaXuxue Feng NEW
Isabel T KolmetzSpainXuxue Feng UNQUALIFIED
Jones Q DoeCanadaIvan Magalhaes QUALIFIED
Tony P ShinkoCanadaStephen Shaw UNQUALIFIED
James A GauchoItalyStephen Shaw RENEWAL
Ricardo A FlosiCanadaStephen Shaw RENEWAL
Adams B SlusarskiArgentinaElwin Sharvill NEW
Kaitlin Y ShinkoIndiaStephen Shaw UNQUALIFIED
Kaitlin U AlbaresFranceAsiya Javayant UNQUALIFIED
Smith T BriddickBrazilIvan Magalhaes UNQUALIFIED

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