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
David U PerinCanadaAnna Fali NEGOTIATION
Sinclair C StockhamGermanyElwin Sharvill RENEWAL
Isabel V SergiRussiaAsiya Javayant NEW
Faith M MarrierCanadaStephen Shaw QUALIFIED
Deepesh E PaprockiGermanyIoni Bowcher QUALIFIED
Maisha X NickaArgentinaBernardo Dominic RENEWAL
Morrow Z DoeSpainOnyama Limba NEGOTIATION
Greenwood A MaletAustraliaXuxue Feng NEGOTIATION
Deepesh U RimArgentinaAsiya Javayant QUALIFIED
Costa M NestleItalyIoni Bowcher PROPOSAL
Smith Z DarakjyRussiaAnna Fali RENEWAL
Mayumi O KolmetzIndiaBernardo Dominic NEGOTIATION
Clifford R KolmetzArgentinaIvan Magalhaes NEGOTIATION
Adams Z SergiJapanOnyama Limba UNQUALIFIED
Alejandro Q TollnerItalyIoni Bowcher RENEWAL
Alejandro V BologniaFranceIoni Bowcher QUALIFIED
Francesco B MaletFranceIoni Bowcher RENEWAL
Murillo X RutaIndiaIvan Magalhaes RENEWAL
Stacey O KuskoRussiaBernardo Dominic NEW
Aruna B RoysterFranceIoni Bowcher QUALIFIED
Salvatore C NickaFranceBernardo Dominic PROPOSAL
Ivar T ShinkoJapanBernardo Dominic QUALIFIED
Greenwood M OldroydFranceAmy Elsner RENEWAL
Aruna F NestleRussiaXuxue Feng QUALIFIED
Munro O KolmetzItalyAnna Fali QUALIFIED
Aika W KuskoGermanyBernardo Dominic PROPOSAL
Nicolas Q WhobreyJapanStephen Shaw NEGOTIATION
Faith P MacleadGermanyAmy Elsner PROPOSAL
Faith M BologniaUnited KingdomOnyama Limba RENEWAL
Kaitlin N DoeJapanBernardo Dominic PROPOSAL
Antonio E DilliardAustraliaIvan Magalhaes NEGOTIATION
Juan T MaletUnited KingdomBernardo Dominic UNQUALIFIED
Johnson H RimItalyAnna Fali QUALIFIED
Costa V MorascaJapanOnyama Limba NEGOTIATION
Kadeem J FigeroaArgentinaAmy Elsner NEGOTIATION
Ashley J FigeroaItalyXuxue Feng RENEWAL
Deepesh O TollnerGermanyStephen Shaw NEW
Adams H SergiAustraliaIoni Bowcher RENEWAL
Adams V CaudyItalyAnna Fali NEW
Darci R IturbideUnited KingdomAnna Fali UNQUALIFIED
Leja G IturbideFranceOnyama Limba NEW
Misaki M FerenczItalyElwin Sharvill PROPOSAL
Johnson B PerinJapanIoni Bowcher QUALIFIED
Ricardo T WieserRussiaAmy Elsner UNQUALIFIED
Tony C PerinJapanBernardo Dominic UNQUALIFIED
Alejandro N ChuiArgentinaIvan Magalhaes NEW
Tony Z FigeroaItalyAsiya Javayant PROPOSAL
Leon B GillianBrazilElwin Sharvill NEGOTIATION
Jefferson H VenereIndiaXuxue Feng NEW
Cody C VenereUnited KingdomAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jones H DoeBrazilAsiya Javayant NEGOTIATION
Wickens G RutaCanadaAsiya Javayant PROPOSAL
Leon W WieserAustraliaAmy Elsner PROPOSAL
Jeanfrancois V DarakjyItalyBernardo Dominic PROPOSAL
Tony H MacleadBrazilAnna Fali RENEWAL
Aruna T MarrierJapanIvan Magalhaes NEGOTIATION
Misaki Z GauchoCanadaStephen Shaw PROPOSAL
James S FlosiRussiaAnna Fali PROPOSAL
Jefferson S CampainRussiaAmy Elsner NEW
Mayumi H WhobreyIndiaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika N RimAustralia2026-08-25Benton, John B Jr UNQUALIFIED48Bernardo Dominic
1001Jennifer K OstroskyArgentina2026-08-26Benton, John B Jr NEGOTIATION24Ivan Magalhaes
1002Jefferson F ButtFrance2026-08-10Morlong Associates RENEWAL15Ivan Magalhaes
1003Smith D KolmetzItaly2026-08-15Dorl, James J Esq PROPOSAL87Xuxue Feng
1004Mujtaba M KolmetzArgentina2026-08-27Commercial Press NEW52Ioni Bowcher
1005Maisha X AmigonCanada2026-08-13Truhlar And Truhlar Attys QUALIFIED54Stephen Shaw
1006James C FlosiAustralia2026-08-06Feltz Printing Service NEW33Amy Elsner
1007Nicolas Y RulapaughRussia2026-08-01Dorl, James J Esq NEW98Onyama Limba
1008Emily E VenereBrazil2026-08-05Commercial Press UNQUALIFIED53Anna Fali
1009Wickens W NickaGermany2026-08-11Feltz Printing Service RENEWAL10Xuxue Feng
1010Chavez Q FlosiUnited Kingdom2026-08-25Buckley Miller Wright PROPOSAL62Ioni Bowcher
1011Silvio W GlickAustralia2026-08-03Benton, John B Jr RENEWAL14Ivan Magalhaes
1012Octavia M PaprockiJapan2026-08-22Dorl, James J Esq QUALIFIED39Asiya Javayant
1013Maria A SergiUnited Kingdom2026-08-01Commercial Press QUALIFIED69Xuxue Feng
1014Leon Z MaletGermany2026-08-08Printing Dimensions QUALIFIED55Ioni Bowcher
1015Kadeem F VocelkaJapan2026-08-10Dorl, James J Esq UNQUALIFIED45Anna Fali
1016Clifford Y MaletUnited Kingdom2026-08-01Truhlar And Truhlar Attys RENEWAL92Ivan Magalhaes
1017Chavez L PerinUnited Kingdom2026-08-01Chapman, Ross E Esq PROPOSAL7Amy Elsner
1018Munro W BologniaCanada2026-08-23Chapman, Ross E Esq NEW66Stephen Shaw
1019Deepesh L CaudySpain2026-08-27King, Christopher A Esq NEW29Anna Fali
1020Aditya B GauchoSpain2026-07-30Buckley Miller Wright NEW52Amy Elsner
1021Leja U AlbaresSpain2026-07-31Truhlar And Truhlar Attys NEGOTIATION85Asiya Javayant
1022James W DarakjyGermany2026-08-28Chemel, James L Cpa RENEWAL71Bernardo Dominic
1023Isabel A RutaArgentina2026-08-28Feiner Bros NEGOTIATION95Asiya Javayant
1024Aruna Q AmigonFrance2026-07-30King, Christopher A Esq QUALIFIED84Ioni Bowcher
1025Octavia V OldroydIndia2026-07-30Feltz Printing Service NEW86Bernardo Dominic
1026Sinclair U MaletRussia2026-08-23Buckley Miller Wright QUALIFIED70Bernardo Dominic
1027Darci A SaylorsIndia2026-08-16Truhlar And Truhlar Attys QUALIFIED24Asiya Javayant
1028Greenwood P OstroskyBrazil2026-08-06Rangoni Of Florence QUALIFIED34Amy Elsner
1029Clifford U StensethIndia2026-08-01Dorl, James J Esq PROPOSAL80Ioni Bowcher
1030Kaitlin P ChuiCanada2026-08-11Morlong Associates UNQUALIFIED65Asiya Javayant
1031Salvatore T StockhamUnited Kingdom2026-08-06King, Christopher A Esq PROPOSAL15Anna Fali
1032Darci K DilliardArgentina2026-08-05Chemel, James L Cpa NEGOTIATION71Ivan Magalhaes
1033Silvio G RulapaughFrance2026-08-18Feiner Bros NEGOTIATION35Xuxue Feng
1034Mayumi O BriddickItaly2026-08-13Rousseaux, Michael Esq NEGOTIATION31Anna Fali
1035David E TollnerAustralia2026-08-21Dorl, James J Esq RENEWAL11Xuxue Feng
1036Wickens P BriddickBrazil2026-08-20Morlong Associates NEW82Stephen Shaw
1037Leon C WieserRussia2026-08-14Benton, John B Jr PROPOSAL46Xuxue Feng
1038Maria S NestleRussia2026-08-14Chapman, Ross E Esq RENEWAL61Asiya Javayant
1039Juan A WaycottArgentina2026-08-26Commercial Press UNQUALIFIED16Anna Fali
1040Kaitlin S GillianUnited Kingdom2026-08-19Buckley Miller Wright RENEWAL96Bernardo Dominic
1041James Z StockhamJapan2026-08-04Chemel, James L Cpa NEW60Onyama Limba
1042Octavia E OstroskyArgentina2026-08-08Rousseaux, Michael Esq NEW67Asiya Javayant
1043Francesco I SergiSpain2026-08-20Feltz Printing Service NEW19Xuxue Feng
1044Aditya L SlusarskiAustralia2026-08-12Printing Dimensions PROPOSAL67Asiya Javayant
1045Maisha V DilliardSpain2026-08-17Truhlar And Truhlar Attys UNQUALIFIED44Xuxue Feng
1046Ashley V SchemmerFrance2026-08-01Buckley Miller Wright PROPOSAL9Anna Fali
1047Rodrigues V WhobreyRussia2026-08-07Chemel, James L Cpa PROPOSAL46Amy Elsner
1048Aika L SlusarskiArgentina2026-08-11King, Christopher A Esq PROPOSAL62Stephen Shaw
1049Munro J SchemmerCanada2026-08-13Buckley Miller Wright PROPOSAL35Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba H IturbideGermanyElwin Sharvill NEW
Rodrigues R FollerBrazilBernardo Dominic QUALIFIED
Izzy N GarufiAustraliaElwin Sharvill NEW
Costa M RimIndiaAnna Fali UNQUALIFIED
Leja K BologniaCanadaXuxue Feng PROPOSAL
Ricardo P PoquetteJapanIoni Bowcher RENEWAL
Arvin X TollnerSpainXuxue Feng PROPOSAL
Maria G VenereGermanyStephen Shaw NEGOTIATION
Alejandro O StockhamCanadaAmy Elsner QUALIFIED
James A FigeroaArgentinaXuxue Feng PROPOSAL
Claire E RoysterJapanXuxue Feng PROPOSAL
Chavez G MaletItalyAnna Fali NEW
Faith I BriddickRussiaAmy Elsner PROPOSAL
Tony X WaycottGermanyAnna Fali RENEWAL
Johnson O FigeroaAustraliaXuxue Feng QUALIFIED
Leja B CampainCanadaAmy Elsner RENEWAL
Mayumi E NickaItalyAmy Elsner NEW
Deepesh A KuskoGermanyXuxue Feng NEW
Jennifer O BowleyGermanyIoni Bowcher PROPOSAL
Silvio Z TollnerCanadaStephen Shaw PROPOSAL
Aika P BriddickSpainAnna Fali NEGOTIATION
Faith N TollnerSpainXuxue Feng RENEWAL
Kadeem R OstroskyFranceElwin Sharvill QUALIFIED
Stacey E BologniaGermanyAmy Elsner NEW
Ivar R GillianCanadaElwin Sharvill NEW
Julie T MaletCanadaElwin Sharvill QUALIFIED
Aruna W NickaSpainStephen Shaw PROPOSAL
Munro V RutaRussiaElwin Sharvill RENEWAL
Faith Y MaletItalyOnyama Limba RENEWAL
Julie M WieserRussiaIoni Bowcher QUALIFIED
Clifford R WieserBrazilAnna Fali NEW
Tony S AmigonBrazilXuxue Feng RENEWAL
Silvio L DarakjyJapanXuxue Feng QUALIFIED
Maria G DoeSpainElwin Sharvill NEGOTIATION
Kadeem B CaudyAustraliaAsiya Javayant UNQUALIFIED
Nicolas Y AmigonSpainXuxue Feng QUALIFIED
Sinclair B PerinUnited KingdomOnyama Limba UNQUALIFIED
Faith C MaletJapanIoni Bowcher PROPOSAL
Darci M IturbideFranceElwin Sharvill UNQUALIFIED
Rodrigues U ButtFranceIvan Magalhaes RENEWAL
Alejandro N SaylorsBrazilAnna Fali RENEWAL
Jennifer R VenereAustraliaAnna Fali NEGOTIATION
Rodrigues J MarrierCanadaOnyama Limba NEGOTIATION
Adams I StensethItalyXuxue Feng UNQUALIFIED
Murillo S MacleadUnited KingdomXuxue Feng NEW
Isabel U DarakjyUnited KingdomAnna Fali UNQUALIFIED
Leon D GarufiSpainAnna Fali QUALIFIED
Francesco H DarakjyCanadaOnyama Limba PROPOSAL
Morrow Z GillianFranceAmy Elsner NEW
Jones W SergiJapanElwin Sharvill NEGOTIATION
Frozen Columns
Name
Misaki J Maclead
Chavez O Nestle
Julie O Waycott
Isabel N Maclead
Izzy B Glick
David Z Gillian
Aditya A Kusko
Silvio I Schemmer
Kadeem K Nicka
Alejandro K Perin
Juan F Gaucho
Rodrigues P Vocelka
Morrow D Ferencz
Mujtaba X Gaucho
Kadeem Y Inouye
Clifford Z Vocelka
Maisha S Vocelka
Morrow A Kolmetz
Silvio V Foller
Wickens C Amigon
Mujtaba V Ostrosky
Aruna Y Ostrosky
Silvio R Figeroa
Johnson H Shinko
Costa Z Chui
Adams Y Amigon
Alejandro D Whobrey
Morrow S Dilliard
Leja W Darakjy
Jeanfrancois B Slusarski
Ashley E Doe
Arvin Z Butt
Kaitlin X Shinko
Johnson U Tollner
Nicolas E Nestle
Octavia D Maclead
Mayumi A Wieser
Jefferson W Shinko
Kadeem R Ostrosky
Ivar R Bolognia
Chavez Y Nestle
Morrow L Royster
Aditya L Glick
Silvio D Nestle
Faith X Dilliard
David E Royster
Nicolas E Foller
Silvio A Paprocki
David D Rulapaugh
Aika F Paprocki
IdCountryDate
1000Italy2026-08-23
1001India2026-07-31
1002Germany2026-07-31
1003Italy2026-08-05
1004Brazil2026-07-31
1005Brazil2026-08-07
1006Canada2026-08-11
1007Japan2026-08-17
1008Japan2026-08-15
1009Canada2026-08-11
1010Brazil2026-08-16
1011Germany2026-08-12
1012Russia2026-08-02
1013Russia2026-08-13
1014Brazil2026-08-18
1015Australia2026-08-20
1016India2026-08-01
1017Japan2026-08-04
1018Japan2026-08-06
1019Australia2026-08-07
1020India2026-08-21
1021India2026-08-11
1022Argentina2026-08-08
1023Russia2026-07-30
1024Brazil2026-08-12
1025Australia2026-08-16
1026India2026-08-27
1027Italy2026-08-24
1028Spain2026-08-04
1029Japan2026-08-14
1030Russia2026-08-13
1031Canada2026-08-27
1032India2026-08-08
1033Russia2026-08-12
1034Germany2026-08-26
1035Japan2026-08-12
1036Japan2026-08-12
1037Brazil2026-08-09
1038India2026-08-03
1039France2026-08-23
1040Japan2026-08-04
1041Australia2026-08-02
1042Italy2026-08-28
1043Italy2026-08-20
1044Australia2026-08-18
1045Russia2026-08-13
1046Russia2026-08-22
1047Australia2026-07-30
1048Russia2026-07-30
1049Germany2026-08-17

On-Demand Data

NameIdCountryDate
Ivar B Perin1000Russia2026-08-09
Juan R Bolognia1001Italy2026-08-11
Clifford L Gaucho1002Russia2026-08-03
Aditya E Ferencz1003Russia2026-08-27
Mayumi M Saylors1004Germany2026-08-10
Silvio P Sergi1005Argentina2026-07-31
Kaitlin D Poquette1006Brazil2026-08-23
Juan U Morasca1007Argentina2026-08-27
David Q Foller1008Argentina2026-08-08
Maisha S Schemmer1009Italy2026-08-03
Leon N Malet1010Argentina2026-08-04
Wickens G Briddick1011Canada2026-08-25
Morrow S Stockham1012Canada2026-08-08
Cody P Caudy1013Argentina2026-08-01
Ricardo U Darakjy1014Canada2026-08-28
Rodrigues I Bolognia1015Argentina2026-08-05
Mayumi G Figeroa1016Brazil2026-08-26
Darci Q Stockham1017Japan2026-08-24
Rodrigues E Stockham1018Italy2026-08-25
Antonio X Glick1019Brazil2026-08-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio S GillianGermanyIvan Magalhaes UNQUALIFIED
Nicolas S RutaFranceXuxue Feng NEGOTIATION
Isabel H VocelkaSpainOnyama Limba NEGOTIATION
Jones Y FlosiGermanyIvan Magalhaes NEW
Izzy V VocelkaJapanXuxue Feng PROPOSAL
Maisha I StockhamSpainOnyama Limba QUALIFIED
Nicolas A ButtAustraliaIoni Bowcher NEW
Adams L SchemmerCanadaAmy Elsner UNQUALIFIED
Mayumi M CaudyAustraliaStephen Shaw NEW
Juan W CampainSpainBernardo Dominic RENEWAL
Misaki A MorascaJapanAsiya Javayant PROPOSAL
Kadeem W NickaCanadaXuxue Feng NEGOTIATION
Ashley Y DoeRussiaAsiya Javayant UNQUALIFIED
Salvatore S VenereBrazilElwin Sharvill QUALIFIED
Deepesh B SlusarskiJapanOnyama Limba RENEWAL
Alejandro H StensethUnited KingdomAmy Elsner PROPOSAL
Murillo E DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Kadeem T FlosiFranceAsiya Javayant RENEWAL
Ashley E AmigonArgentinaIvan Magalhaes PROPOSAL
Leja K DarakjyItalyOnyama Limba PROPOSAL
Ashley V RoysterGermanyStephen Shaw NEW
Ricardo R MaletCanadaBernardo Dominic UNQUALIFIED
Maria V FollerSpainIvan Magalhaes UNQUALIFIED
Munro D RoysterFranceIoni Bowcher UNQUALIFIED
Leon N SergiJapanAsiya Javayant NEW
Octavia C FerenczJapanIoni Bowcher QUALIFIED
Jeanfrancois G StockhamRussiaOnyama Limba NEW
Francesco S GauchoArgentinaAsiya Javayant NEGOTIATION
Salvatore A PerinIndiaAnna Fali NEW
Mayumi C CaudyAustraliaAsiya Javayant NEGOTIATION
Morrow G MarrierItalyBernardo Dominic NEW
Salvatore Z IturbideJapanIoni Bowcher PROPOSAL
Munro F OldroydRussiaAnna Fali PROPOSAL
Ashley J FollerUnited KingdomElwin Sharvill NEGOTIATION
Cody B NestleFranceBernardo Dominic NEGOTIATION
Kaitlin J PerinRussiaAmy Elsner NEGOTIATION
Smith D KuskoSpainAmy Elsner UNQUALIFIED
Octavia U SchemmerAustraliaIoni Bowcher NEW
Costa L StensethRussiaIoni Bowcher NEGOTIATION
Aditya G CampainSpainAmy Elsner RENEWAL

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