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
Ivar K NestleJapanBernardo Dominic NEW
Mayumi U ChuiArgentinaIvan Magalhaes PROPOSAL
Misaki K DarakjyCanadaBernardo Dominic RENEWAL
Jefferson T FerenczGermanyStephen Shaw UNQUALIFIED
Ricardo F PaprockiBrazilAmy Elsner NEGOTIATION
Adams X ShinkoItalyAmy Elsner PROPOSAL
Wickens N NickaJapanElwin Sharvill QUALIFIED
Darci D AmigonRussiaAmy Elsner QUALIFIED
Tony Y SaylorsUnited KingdomBernardo Dominic RENEWAL
David A OstroskyFranceAsiya Javayant UNQUALIFIED
Jennifer G StensethAustraliaAnna Fali NEW
Maria N MaletBrazilBernardo Dominic QUALIFIED
Salvatore V SchemmerItalyXuxue Feng NEW
Aika Q RimGermanyIoni Bowcher QUALIFIED
Murillo M KolmetzIndiaAnna Fali QUALIFIED
Cody Y MorascaIndiaOnyama Limba UNQUALIFIED
Arvin B GarufiIndiaStephen Shaw RENEWAL
Maisha T FollerSpainBernardo Dominic QUALIFIED
Aditya D WhobreySpainAnna Fali QUALIFIED
Leja A CampainGermanyAsiya Javayant RENEWAL
Darci M IturbideFranceOnyama Limba PROPOSAL
Maisha N SergiBrazilAmy Elsner QUALIFIED
Ashley W WhobreyItalyAnna Fali QUALIFIED
Greenwood Y WhobreyRussiaBernardo Dominic UNQUALIFIED
Izzy N WaycottBrazilIvan Magalhaes NEGOTIATION
Mayumi J AlbaresGermanyIoni Bowcher PROPOSAL
Arvin Z OstroskyArgentinaAnna Fali QUALIFIED
Maria D FollerUnited KingdomAmy Elsner UNQUALIFIED
Claire X GarufiBrazilElwin Sharvill RENEWAL
Juan N NickaJapanXuxue Feng PROPOSAL
David J GillianSpainIoni Bowcher NEGOTIATION
Ivar R RimRussiaElwin Sharvill PROPOSAL
Antonio L BowleyJapanIvan Magalhaes QUALIFIED
Mujtaba Q AlbaresGermanyXuxue Feng RENEWAL
Ivar L DoeJapanElwin Sharvill PROPOSAL
Munro H FerenczJapanAsiya Javayant RENEWAL
Sinclair O FollerGermanyIvan Magalhaes UNQUALIFIED
Johnson N NickaArgentinaIvan Magalhaes UNQUALIFIED
Emily R PoquetteGermanyXuxue Feng QUALIFIED
Kadeem T MacleadItalyBernardo Dominic QUALIFIED
Stacey T WhobreyJapanElwin Sharvill PROPOSAL
Murillo Z WhobreyItalyStephen Shaw NEGOTIATION
Johnson M ShinkoCanadaElwin Sharvill RENEWAL
Maisha R VenereGermanyXuxue Feng UNQUALIFIED
James V RimSpainIvan Magalhaes PROPOSAL
Smith G StensethRussiaXuxue Feng UNQUALIFIED
Tony Z DoeFranceXuxue Feng RENEWAL
Jones E MaletFranceIvan Magalhaes NEW
Mayumi Z WaycottBrazilAsiya Javayant PROPOSAL
Jennifer G RulapaughGermanyIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois U DarakjyBrazilBernardo Dominic RENEWAL
David D InouyeUnited KingdomElwin Sharvill PROPOSAL
Antonio D MarrierItalyOnyama Limba NEW
Isabel O MacleadIndiaXuxue Feng QUALIFIED
Isabel B AlbaresItalyAnna Fali UNQUALIFIED
Tony Q CampainFranceIoni Bowcher RENEWAL
Clifford E PoquetteIndiaIoni Bowcher NEGOTIATION
Rodrigues D CaudyAustraliaStephen Shaw UNQUALIFIED
Clifford G VenereRussiaAnna Fali NEW
Izzy G CampainCanadaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones Z PerinArgentina2026-06-27Feiner Bros NEGOTIATION77Asiya Javayant
1001Jones G IturbideSpain2026-06-20Morlong Associates NEGOTIATION49Anna Fali
1002Claire A GillianCanada2026-06-21Benton, John B Jr QUALIFIED25Ivan Magalhaes
1003Aditya P MorascaArgentina2026-06-19Commercial Press QUALIFIED13Ioni Bowcher
1004Leja J FlosiSpain2026-06-17Dorl, James J Esq RENEWAL54Onyama Limba
1005Chavez X ButtSpain2026-06-26Benton, John B Jr NEGOTIATION46Amy Elsner
1006Aruna O WieserCanada2026-06-29Chanay, Jeffrey A Esq QUALIFIED77Stephen Shaw
1007Munro T InouyeBrazil2026-06-29Feiner Bros QUALIFIED44Onyama Limba
1008Smith M AlbaresJapan2026-06-02Feiner Bros UNQUALIFIED84Ivan Magalhaes
1009Maisha D NestleFrance2026-06-26Chapman, Ross E Esq NEW31Asiya Javayant
1010Clifford W VocelkaCanada2026-06-15Printing Dimensions PROPOSAL17Anna Fali
1011Morrow K TollnerCanada2026-06-14Rousseaux, Michael Esq NEW72Bernardo Dominic
1012Aruna K NickaCanada2026-06-04Dorl, James J Esq PROPOSAL6Asiya Javayant
1013Tony Y GauchoArgentina2026-06-05Feltz Printing Service RENEWAL55Amy Elsner
1014Johnson Q PaprockiCanada2026-06-05Chanay, Jeffrey A Esq NEW29Onyama Limba
1015Claire G BologniaUnited Kingdom2026-06-18Chemel, James L Cpa RENEWAL20Stephen Shaw
1016Isabel H RoysterArgentina2026-06-20Feiner Bros NEGOTIATION9Bernardo Dominic
1017Misaki X OldroydAustralia2026-06-11Feiner Bros QUALIFIED58Xuxue Feng
1018Maisha C VenereUnited Kingdom2026-06-25Buckley Miller Wright RENEWAL37Anna Fali
1019Morrow R WaycottCanada2026-06-15Rousseaux, Michael Esq NEGOTIATION40Anna Fali
1020Deepesh S SchemmerBrazil2026-06-19Printing Dimensions RENEWAL35Amy Elsner
1021Izzy P MarrierBrazil2026-06-22Chapman, Ross E Esq PROPOSAL52Ioni Bowcher
1022Alejandro E MarrierGermany2026-06-25Commercial Press NEGOTIATION46Elwin Sharvill
1023Kaitlin F WieserUnited Kingdom2026-06-14Rousseaux, Michael Esq NEGOTIATION93Ivan Magalhaes
1024Ricardo L KuskoCanada2026-06-30Commercial Press UNQUALIFIED83Anna Fali
1025Silvio X SlusarskiUnited Kingdom2026-07-01Chemel, James L Cpa UNQUALIFIED71Xuxue Feng
1026Darci J MorascaJapan2026-06-18Buckley Miller Wright RENEWAL48Elwin Sharvill
1027Stacey F DarakjyBrazil2026-06-18Rousseaux, Michael Esq NEGOTIATION61Xuxue Feng
1028Rodrigues J CaudySpain2026-06-24Chemel, James L Cpa QUALIFIED15Amy Elsner
1029Octavia R DilliardCanada2026-06-06Rousseaux, Michael Esq NEGOTIATION45Xuxue Feng
1030Chavez E PoquetteSpain2026-06-23Dorl, James J Esq NEGOTIATION2Ivan Magalhaes
1031Chavez W RutaRussia2026-06-16Rousseaux, Michael Esq QUALIFIED72Ivan Magalhaes
1032Rodrigues X FigeroaAustralia2026-06-15Morlong Associates PROPOSAL29Ioni Bowcher
1033Johnson W PerinArgentina2026-06-21Printing Dimensions QUALIFIED47Ivan Magalhaes
1034Leon D KolmetzArgentina2026-06-04Chapman, Ross E Esq QUALIFIED77Ioni Bowcher
1035Alejandro E CampainUnited Kingdom2026-06-13King, Christopher A Esq UNQUALIFIED99Ivan Magalhaes
1036Greenwood O MarrierSpain2026-06-28Chapman, Ross E Esq PROPOSAL89Stephen Shaw
1037Johnson X WaycottBrazil2026-06-27Buckley Miller Wright UNQUALIFIED65Xuxue Feng
1038Alejandro F StensethGermany2026-06-12Chapman, Ross E Esq UNQUALIFIED10Asiya Javayant
1039Misaki Y StensethAustralia2026-06-06Buckley Miller Wright QUALIFIED76Amy Elsner
1040Rodrigues F MaletRussia2026-06-08Truhlar And Truhlar Attys PROPOSAL7Stephen Shaw
1041Wickens A NickaArgentina2026-06-06Dorl, James J Esq NEW25Onyama Limba
1042Jeanfrancois P BowleyRussia2026-06-22Rangoni Of Florence NEGOTIATION1Anna Fali
1043Alejandro A FlosiArgentina2026-06-14Chanay, Jeffrey A Esq QUALIFIED95Bernardo Dominic
1044Nicolas O InouyeArgentina2026-06-22Truhlar And Truhlar Attys UNQUALIFIED15Onyama Limba
1045Arvin G WieserUnited Kingdom2026-06-30King, Christopher A Esq NEGOTIATION20Onyama Limba
1046Kadeem K RulapaughSpain2026-06-23Rousseaux, Michael Esq NEGOTIATION64Asiya Javayant
1047Clifford O CampainArgentina2026-06-13Chemel, James L Cpa PROPOSAL77Elwin Sharvill
1048Aika Q WaycottSpain2026-06-16Truhlar And Truhlar Attys NEGOTIATION86Stephen Shaw
1049Juan E CaudyFrance2026-06-08Rousseaux, Michael Esq UNQUALIFIED92Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ricardo D BologniaJapanAnna Fali PROPOSAL
Cody Y ShinkoCanadaXuxue Feng UNQUALIFIED
Salvatore K KuskoIndiaAmy Elsner NEW
Julie R ShinkoBrazilAsiya Javayant QUALIFIED
Arvin F StockhamFranceBernardo Dominic UNQUALIFIED
Costa K StockhamUnited KingdomAmy Elsner RENEWAL
Aika T WhobreyItalyBernardo Dominic RENEWAL
Rodrigues T TollnerIndiaIvan Magalhaes UNQUALIFIED
Darci E AmigonSpainAsiya Javayant RENEWAL
Leon R MorascaIndiaAnna Fali UNQUALIFIED
Stacey U CaldareraRussiaIoni Bowcher PROPOSAL
Adams Y AlbaresSpainXuxue Feng PROPOSAL
Claire I CampainAustraliaStephen Shaw QUALIFIED
Izzy Z BowleyArgentinaOnyama Limba QUALIFIED
Arvin N SaylorsCanadaIoni Bowcher QUALIFIED
Stacey P OldroydItalyAsiya Javayant UNQUALIFIED
Kaitlin C SlusarskiItalyIoni Bowcher PROPOSAL
Costa B GlickJapanOnyama Limba NEGOTIATION
Ivar R RimJapanStephen Shaw PROPOSAL
Misaki P ShinkoItalyOnyama Limba QUALIFIED
Ricardo V RulapaughItalyXuxue Feng NEW
Morrow Y PoquetteItalyElwin Sharvill NEGOTIATION
Morrow J ChuiSpainXuxue Feng PROPOSAL
Deepesh Q SlusarskiGermanyAmy Elsner UNQUALIFIED
Jennifer M InouyeIndiaElwin Sharvill UNQUALIFIED
Aruna C WaycottIndiaStephen Shaw RENEWAL
Greenwood W GauchoArgentinaBernardo Dominic PROPOSAL
Wickens W StockhamBrazilIoni Bowcher UNQUALIFIED
Juan G WaycottBrazilAnna Fali QUALIFIED
Aruna O MorascaBrazilAsiya Javayant UNQUALIFIED
Misaki K OldroydUnited KingdomIoni Bowcher QUALIFIED
Costa S DilliardItalyIvan Magalhaes NEW
Stacey H TollnerAustraliaAmy Elsner QUALIFIED
Salvatore C PaprockiGermanyAnna Fali RENEWAL
Izzy B AmigonCanadaIvan Magalhaes NEW
Jones S MacleadGermanyXuxue Feng NEW
Murillo G CaldareraAustraliaStephen Shaw NEGOTIATION
Aditya Y TollnerCanadaAnna Fali QUALIFIED
Morrow K BriddickArgentinaIvan Magalhaes UNQUALIFIED
Adams H WieserFranceAnna Fali PROPOSAL
Faith D ChuiCanadaAmy Elsner NEGOTIATION
Aditya V ButtIndiaIvan Magalhaes QUALIFIED
Smith C CaudyFranceIoni Bowcher PROPOSAL
Smith N SlusarskiArgentinaIoni Bowcher NEGOTIATION
Julie Y CaldareraRussiaAsiya Javayant NEGOTIATION
Kaitlin Z MaletSpainOnyama Limba RENEWAL
Costa N AlbaresItalyXuxue Feng RENEWAL
Emily G FerenczGermanyAmy Elsner PROPOSAL
Mayumi J KuskoJapanIvan Magalhaes NEGOTIATION
James L RulapaughSpainAsiya Javayant QUALIFIED
Frozen Columns
Name
Greenwood B Nestle
Wickens D Albares
Mujtaba N Sergi
Faith M Ruta
Silvio P Flosi
Murillo M Paprocki
Aditya Z Iturbide
Antonio S Malet
Jones C Whobrey
Faith E Flosi
Jefferson M Doe
David Q Poquette
Faith V Ruta
Jefferson B Slusarski
Chavez B Tollner
Aruna I Briddick
Jeanfrancois Y Bowley
Mayumi V Perin
Clifford P Ruta
Misaki J Kusko
Wickens F Venere
Claire A Saylors
Murillo Q Maclead
Johnson P Stockham
Adams B Royster
Jeanfrancois G Gillian
Misaki Q Iturbide
Smith Q Perin
Faith Z Marrier
Maisha S Darakjy
Maria U Marrier
Chavez S Malet
Nicolas K Stockham
Costa G Albares
Jefferson P Stockham
Clifford W Venere
Antonio J Albares
Wickens D Glick
Arvin V Oldroyd
Octavia I Chui
Adams F Gaucho
Cody J Paprocki
Greenwood T Glick
Silvio G Rulapaugh
Nicolas U Ferencz
Wickens Q Amigon
Stacey A Gillian
Adams W Ruta
Ricardo O Shinko
Clifford W Stenseth
IdCountryDate
1000Canada2026-06-15
1001France2026-06-30
1002Germany2026-06-27
1003United Kingdom2026-06-27
1004Canada2026-06-14
1005Brazil2026-06-12
1006Russia2026-06-19
1007Brazil2026-06-13
1008Germany2026-06-15
1009United Kingdom2026-06-17
1010Germany2026-06-04
1011Argentina2026-06-03
1012Brazil2026-06-30
1013Australia2026-06-29
1014France2026-06-17
1015Italy2026-06-03
1016Argentina2026-06-25
1017United Kingdom2026-06-16
1018Russia2026-06-10
1019France2026-06-15
1020Spain2026-06-12
1021France2026-06-19
1022Italy2026-06-13
1023Germany2026-06-04
1024United Kingdom2026-06-20
1025Italy2026-06-11
1026Argentina2026-06-30
1027Italy2026-06-07
1028Spain2026-06-28
1029Brazil2026-07-01
1030United Kingdom2026-06-09
1031Germany2026-06-07
1032Italy2026-06-20
1033Russia2026-06-09
1034India2026-06-11
1035Japan2026-06-04
1036Russia2026-06-11
1037Canada2026-06-22
1038Brazil2026-06-10
1039Russia2026-06-29
1040Japan2026-06-03
1041United Kingdom2026-06-13
1042France2026-06-24
1043Spain2026-06-22
1044India2026-06-04
1045Spain2026-06-11
1046Japan2026-06-20
1047Australia2026-06-27
1048Japan2026-06-29
1049Japan2026-06-13

On-Demand Data

NameIdCountryDate
Octavia A Rulapaugh1000United Kingdom2026-06-15
James J Shinko1001France2026-06-09
Kaitlin R Tollner1002United Kingdom2026-07-01
Mayumi U Saylors1003India2026-06-08
Aruna A Schemmer1004Spain2026-06-21
Maisha V Glick1005United Kingdom2026-06-29
Greenwood M Ruta1006Italy2026-06-12
Octavia R Foller1007Canada2026-06-11
Leja W Bolognia1008France2026-06-09
James N Gillian1009Australia2026-06-07
Stacey M Maclead1010United Kingdom2026-06-27
Tony U Nestle1011Germany2026-06-09
Misaki S Caldarera1012Spain2026-06-13
Sinclair Z Royster1013Spain2026-06-26
Cody X Ostrosky1014Australia2026-06-30
Faith D Schemmer1015Spain2026-06-07
Kadeem U Briddick1016United Kingdom2026-06-14
Ashley W Perin1017Italy2026-06-23
Ashley X Sergi1018Germany2026-06-25
Kadeem A Glick1019Russia2026-06-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia Y VocelkaArgentinaAnna Fali RENEWAL
Costa O OstroskyRussiaAsiya Javayant PROPOSAL
Juan E SergiFranceOnyama Limba NEGOTIATION
Ivar K SaylorsArgentinaElwin Sharvill NEW
Adams G FollerCanadaAmy Elsner QUALIFIED
Julie D MarrierAustraliaBernardo Dominic QUALIFIED
Francesco G IturbideSpainBernardo Dominic UNQUALIFIED
Jefferson G BowleyCanadaAnna Fali PROPOSAL
Emily Z FerenczAustraliaBernardo Dominic NEGOTIATION
Claire V MarrierCanadaOnyama Limba QUALIFIED
Claire O VenereBrazilAsiya Javayant QUALIFIED
Antonio Z GlickBrazilBernardo Dominic QUALIFIED
Emily U TollnerJapanAnna Fali QUALIFIED
Smith Z SaylorsArgentinaIvan Magalhaes NEGOTIATION
Aditya W KuskoRussiaOnyama Limba UNQUALIFIED
Julie H ShinkoFranceIoni Bowcher QUALIFIED
Chavez H PerinSpainOnyama Limba PROPOSAL
Claire H DarakjyJapanAmy Elsner UNQUALIFIED
Sinclair N VenereFranceAnna Fali NEW
Adams R NickaArgentinaElwin Sharvill NEW
Ivar E MacleadFranceAnna Fali RENEWAL
Tony B MaletFranceAnna Fali NEGOTIATION
Maisha J SlusarskiItalyAmy Elsner NEGOTIATION
Francesco J GarufiJapanAnna Fali RENEWAL
Juan V BologniaIndiaStephen Shaw NEW
Clifford O MarrierCanadaIoni Bowcher QUALIFIED
Costa K FollerRussiaStephen Shaw NEGOTIATION
Silvio Z ShinkoSpainXuxue Feng PROPOSAL
Izzy Z FerenczJapanOnyama Limba RENEWAL
Arvin J StockhamJapanAsiya Javayant NEGOTIATION
Stacey F InouyeIndiaIvan Magalhaes PROPOSAL
Deepesh E ChuiRussiaXuxue Feng PROPOSAL
Kadeem I DarakjyJapanXuxue Feng NEW
David Q SergiGermanyXuxue Feng UNQUALIFIED
Sinclair K CampainBrazilBernardo Dominic NEGOTIATION
Nicolas I WhobreyIndiaOnyama Limba RENEWAL
Nicolas Z PoquetteJapanElwin Sharvill RENEWAL
Aika Y MaletJapanXuxue Feng NEGOTIATION
James G VocelkaFranceElwin Sharvill RENEWAL
Arvin X MorascaFranceAsiya 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>