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
Juan P KolmetzBrazilStephen Shaw NEW
David Z TollnerGermanyStephen Shaw PROPOSAL
Juan W MaletSpainOnyama Limba PROPOSAL
Tony Q CaudyBrazilAsiya Javayant UNQUALIFIED
Aika S FlosiRussiaAsiya Javayant RENEWAL
Johnson T FerenczAustraliaXuxue Feng NEGOTIATION
Munro Z FerenczItalyElwin Sharvill UNQUALIFIED
Kaitlin O RoysterIndiaBernardo Dominic NEW
Chavez E TollnerCanadaAnna Fali RENEWAL
Claire O VenereJapanAsiya Javayant NEW
Rodrigues H SlusarskiFranceStephen Shaw PROPOSAL
Darci O RulapaughSpainIvan Magalhaes NEGOTIATION
Nicolas C KolmetzIndiaAsiya Javayant PROPOSAL
Mayumi T RulapaughUnited KingdomIvan Magalhaes UNQUALIFIED
Jennifer W FlosiRussiaAnna Fali NEW
Stacey Q InouyeJapanBernardo Dominic PROPOSAL
Aruna I StensethJapanOnyama Limba UNQUALIFIED
Francesco Y RulapaughRussiaAmy Elsner UNQUALIFIED
Ivar Z RoysterArgentinaElwin Sharvill RENEWAL
Aruna D ButtArgentinaAnna Fali QUALIFIED
Mujtaba Y DilliardCanadaAnna Fali RENEWAL
Deepesh C RoysterUnited KingdomStephen Shaw PROPOSAL
Johnson I TollnerRussiaIvan Magalhaes RENEWAL
Murillo I MarrierArgentinaAnna Fali PROPOSAL
Jennifer N WaycottAustraliaAsiya Javayant RENEWAL
Faith W FerenczItalyBernardo Dominic PROPOSAL
Silvio C FerenczCanadaElwin Sharvill NEGOTIATION
Aika G SaylorsGermanyAnna Fali QUALIFIED
Antonio W OstroskyJapanXuxue Feng NEGOTIATION
Jeanfrancois H CaldareraGermanyXuxue Feng RENEWAL
Wickens X DilliardRussiaStephen Shaw NEGOTIATION
Silvio F TollnerJapanAsiya Javayant QUALIFIED
Darci N InouyeGermanyXuxue Feng QUALIFIED
Maisha L RutaBrazilAnna Fali RENEWAL
Salvatore H VocelkaSpainXuxue Feng PROPOSAL
Johnson P VenereJapanAnna Fali NEGOTIATION
Jones L RutaBrazilAnna Fali NEW
Adams H CaudyUnited KingdomBernardo Dominic QUALIFIED
Octavia Z GauchoAustraliaAmy Elsner QUALIFIED
Chavez A RulapaughAustraliaStephen Shaw UNQUALIFIED
Leja L GarufiCanadaAsiya Javayant NEGOTIATION
Jones U VenereItalyStephen Shaw QUALIFIED
Mayumi Q SaylorsJapanElwin Sharvill QUALIFIED
Mayumi C KuskoCanadaAnna Fali UNQUALIFIED
Emily S NestleSpainXuxue Feng PROPOSAL
Jennifer T CampainSpainIvan Magalhaes PROPOSAL
Aditya O ButtJapanXuxue Feng QUALIFIED
Leon X GlickJapanElwin Sharvill UNQUALIFIED
Tony I GauchoArgentinaXuxue Feng NEGOTIATION
Izzy Z SaylorsGermanyXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ashley H GauchoJapanAsiya Javayant QUALIFIED
Izzy C ChuiFranceIvan Magalhaes PROPOSAL
Claire A RimBrazilIoni Bowcher RENEWAL
Juan J KuskoBrazilElwin Sharvill NEW
Misaki J CaldareraJapanXuxue Feng UNQUALIFIED
Wickens N MorascaIndiaAmy Elsner PROPOSAL
Leon U CampainJapanStephen Shaw QUALIFIED
Maisha H DarakjyGermanyElwin Sharvill RENEWAL
Munro I WhobreyGermanyStephen Shaw NEGOTIATION
Misaki T AlbaresAustraliaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar E WaycottUnited Kingdom2026-08-25Printing Dimensions PROPOSAL83Asiya Javayant
1001Murillo C OstroskyGermany2026-08-31Printing Dimensions NEW64Amy Elsner
1002Aditya P RutaCanada2026-08-05Chanay, Jeffrey A Esq PROPOSAL54Asiya Javayant
1003Tony Z DilliardGermany2026-08-24Chanay, Jeffrey A Esq NEW91Ivan Magalhaes
1004Julie A MarrierSpain2026-08-02Buckley Miller Wright QUALIFIED57Bernardo Dominic
1005Aika Z RoysterBrazil2026-08-14Printing Dimensions QUALIFIED33Asiya Javayant
1006Johnson Y SaylorsItaly2026-08-31Buckley Miller Wright PROPOSAL72Asiya Javayant
1007Claire Z ChuiArgentina2026-08-02Chemel, James L Cpa QUALIFIED55Ioni Bowcher
1008Aruna Q KuskoCanada2026-08-14Morlong Associates UNQUALIFIED78Ioni Bowcher
1009Kaitlin R StockhamAustralia2026-08-20Morlong Associates NEW34Stephen Shaw
1010Ivar K BologniaIndia2026-08-12Buckley Miller Wright UNQUALIFIED51Anna Fali
1011Wickens R OldroydUnited Kingdom2026-08-06Chemel, James L Cpa NEGOTIATION13Bernardo Dominic
1012Jones E KuskoArgentina2026-08-06Dorl, James J Esq QUALIFIED59Xuxue Feng
1013Smith N TollnerIndia2026-08-15Chanay, Jeffrey A Esq NEW11Stephen Shaw
1014Emily M RutaFrance2026-08-31Printing Dimensions NEGOTIATION82Bernardo Dominic
1015Cody C WaycottGermany2026-08-18Commercial Press QUALIFIED74Anna Fali
1016Adams Q MaletBrazil2026-08-04Feiner Bros UNQUALIFIED91Stephen Shaw
1017Smith Z PaprockiGermany2026-08-09Feiner Bros UNQUALIFIED2Stephen Shaw
1018Arvin W WaycottGermany2026-08-05Buckley Miller Wright UNQUALIFIED39Anna Fali
1019Maria Z WhobreyJapan2026-08-15Rangoni Of Florence RENEWAL71Anna Fali
1020Antonio S SergiJapan2026-08-07Rousseaux, Michael Esq RENEWAL29Ivan Magalhaes
1021Deepesh Y RoysterItaly2026-08-07Rangoni Of Florence NEGOTIATION5Ioni Bowcher
1022James S MorascaRussia2026-08-05Truhlar And Truhlar Attys QUALIFIED32Onyama Limba
1023Johnson F StensethCanada2026-08-11Chemel, James L Cpa UNQUALIFIED1Elwin Sharvill
1024Alejandro R RutaGermany2026-08-14Benton, John B Jr PROPOSAL28Ivan Magalhaes
1025Francesco A PerinIndia2026-08-03Rangoni Of Florence PROPOSAL13Stephen Shaw
1026James L ButtUnited Kingdom2026-08-30Chapman, Ross E Esq NEW90Ioni Bowcher
1027Silvio S StensethIndia2026-08-18Morlong Associates QUALIFIED28Anna Fali
1028Julie Y RutaCanada2026-08-16Benton, John B Jr UNQUALIFIED10Amy Elsner
1029Misaki E GlickJapan2026-08-23Feltz Printing Service QUALIFIED48Ivan Magalhaes
1030Claire H DilliardCanada2026-08-13Dorl, James J Esq PROPOSAL64Amy Elsner
1031Mujtaba I TollnerGermany2026-08-21King, Christopher A Esq NEGOTIATION48Elwin Sharvill
1032Ricardo C FigeroaIndia2026-08-16Chanay, Jeffrey A Esq NEW28Ioni Bowcher
1033Jones Y GillianAustralia2026-08-17King, Christopher A Esq NEW5Ivan Magalhaes
1034Maisha E SergiBrazil2026-08-20Rangoni Of Florence PROPOSAL19Anna Fali
1035Greenwood I FerenczGermany2026-08-14Chemel, James L Cpa NEGOTIATION7Xuxue Feng
1036Juan Q MorascaBrazil2026-08-27Buckley Miller Wright NEW29Onyama Limba
1037Julie I IturbideArgentina2026-08-22Chanay, Jeffrey A Esq RENEWAL4Bernardo Dominic
1038Stacey Q DilliardUnited Kingdom2026-08-05Chemel, James L Cpa NEGOTIATION73Ioni Bowcher
1039Wickens Z CaldareraUnited Kingdom2026-08-13Truhlar And Truhlar Attys QUALIFIED8Asiya Javayant
1040Deepesh K StockhamIndia2026-08-23Rousseaux, Michael Esq QUALIFIED62Anna Fali
1041Nicolas C SaylorsJapan2026-08-16Truhlar And Truhlar Attys QUALIFIED77Bernardo Dominic
1042Francesco O CaudyAustralia2026-08-28Feiner Bros NEGOTIATION85Stephen Shaw
1043Costa R GauchoJapan2026-08-25Benton, John B Jr NEW73Ivan Magalhaes
1044Wickens E GillianArgentina2026-08-24King, Christopher A Esq UNQUALIFIED33Anna Fali
1045Silvio L GarufiRussia2026-08-29Feiner Bros PROPOSAL36Stephen Shaw
1046Stacey W OstroskyIndia2026-08-06Dorl, James J Esq NEGOTIATION71Anna Fali
1047Wickens D NickaItaly2026-08-17Printing Dimensions NEW0Asiya Javayant
1048Cody V BologniaUnited Kingdom2026-08-20Truhlar And Truhlar Attys QUALIFIED14Anna Fali
1049Mujtaba H WieserRussia2026-08-06Dorl, James J Esq NEW51Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Leon T SaylorsAustraliaIoni Bowcher NEW
Jones V VenereBrazilAnna Fali QUALIFIED
Morrow L MacleadIndiaBernardo Dominic RENEWAL
Munro O StockhamArgentinaOnyama Limba QUALIFIED
Clifford N MaletUnited KingdomAmy Elsner NEW
Octavia C GillianBrazilAmy Elsner QUALIFIED
Octavia B MarrierUnited KingdomStephen Shaw RENEWAL
Arvin E OldroydCanadaIvan Magalhaes RENEWAL
Octavia R GlickItalyAsiya Javayant PROPOSAL
Aika M SchemmerAustraliaIvan Magalhaes RENEWAL
Aditya S BriddickAustraliaAmy Elsner NEGOTIATION
Tony J GlickArgentinaStephen Shaw PROPOSAL
Isabel S FigeroaArgentinaAmy Elsner QUALIFIED
Juan T WaycottSpainIvan Magalhaes QUALIFIED
Ashley F WhobreyGermanyIoni Bowcher PROPOSAL
David E VocelkaArgentinaIvan Magalhaes NEGOTIATION
Aika L CaudyCanadaIoni Bowcher PROPOSAL
Ricardo S ShinkoGermanyOnyama Limba PROPOSAL
Munro V BriddickJapanOnyama Limba UNQUALIFIED
Costa S PaprockiJapanBernardo Dominic UNQUALIFIED
Arvin B OstroskyJapanBernardo Dominic QUALIFIED
Aruna R GarufiJapanIvan Magalhaes NEGOTIATION
Tony N NickaItalyBernardo Dominic NEGOTIATION
Murillo U CampainArgentinaElwin Sharvill PROPOSAL
Kadeem L WieserJapanIoni Bowcher NEGOTIATION
Salvatore W DarakjyItalyXuxue Feng UNQUALIFIED
Isabel P StensethIndiaIoni Bowcher NEGOTIATION
Rodrigues M ShinkoFranceOnyama Limba NEW
Leja G DarakjyRussiaXuxue Feng RENEWAL
Adams P RoysterSpainAsiya Javayant QUALIFIED
Alejandro J NestleUnited KingdomXuxue Feng PROPOSAL
Maria N FlosiSpainAnna Fali UNQUALIFIED
Emily Y MaletJapanAmy Elsner UNQUALIFIED
Morrow R WieserSpainIoni Bowcher QUALIFIED
Octavia F SlusarskiSpainElwin Sharvill NEW
Ivar L ButtArgentinaStephen Shaw NEW
Claire O MorascaRussiaOnyama Limba PROPOSAL
Murillo G CaudyItalyAmy Elsner UNQUALIFIED
David Y AlbaresArgentinaXuxue Feng PROPOSAL
Salvatore E FollerCanadaAsiya Javayant QUALIFIED
Julie C DilliardCanadaAmy Elsner NEGOTIATION
Stacey H RoysterGermanyAnna Fali QUALIFIED
Adams P DilliardIndiaXuxue Feng PROPOSAL
Morrow Y MaletGermanyIvan Magalhaes PROPOSAL
Maisha T NickaIndiaOnyama Limba NEGOTIATION
James Z CaudyBrazilOnyama Limba PROPOSAL
Morrow Z SlusarskiArgentinaStephen Shaw UNQUALIFIED
Deepesh P BriddickFranceBernardo Dominic QUALIFIED
Leja Y PoquetteIndiaAnna Fali PROPOSAL
Munro G DoeJapanAmy Elsner QUALIFIED
Frozen Columns
Name
Arvin F Gillian
Alejandro L Waycott
Octavia X Stockham
Jeanfrancois C Nicka
Faith R Ruta
Mujtaba S Maclead
Claire T Chui
Salvatore W Figeroa
Kaitlin P Inouye
Arvin W Perin
Leon H Campain
Clifford P Albares
Stacey S Gillian
Jennifer M Chui
David B Shinko
James Z Stockham
Ivar S Campain
Greenwood K Venere
Antonio K Perin
Jones L Inouye
Munro L Amigon
Leja N Kusko
Faith L Marrier
Silvio D Bolognia
Antonio F Bowley
Johnson V Slusarski
Morrow L Whobrey
Ricardo A Royster
Maisha I Waycott
Misaki J Flosi
Maisha W Oldroyd
Leon F Malet
Kaitlin Q Gaucho
Kadeem T Amigon
Ashley Y Nicka
Clifford H Ostrosky
Aika W Doe
Mayumi E Saylors
Nicolas X Rulapaugh
Faith R Rim
Jones B Darakjy
Silvio X Iturbide
Murillo M Chui
Francesco P Caudy
Deepesh Y Glick
Tony G Perin
James Y Paprocki
Juan R Tollner
Francesco P Marrier
Greenwood H Gillian
IdCountryDate
1000United Kingdom2026-08-21
1001France2026-08-23
1002Russia2026-08-10
1003Russia2026-08-20
1004India2026-08-27
1005France2026-08-10
1006United Kingdom2026-08-30
1007Australia2026-08-07
1008Australia2026-08-31
1009Russia2026-08-05
1010Japan2026-08-02
1011Russia2026-08-04
1012United Kingdom2026-08-15
1013United Kingdom2026-08-09
1014Argentina2026-08-25
1015India2026-08-09
1016Canada2026-08-20
1017India2026-08-29
1018Australia2026-08-10
1019Spain2026-08-16
1020Brazil2026-08-19
1021Canada2026-08-12
1022Brazil2026-08-02
1023France2026-08-21
1024Russia2026-08-11
1025Germany2026-08-05
1026Spain2026-08-06
1027United Kingdom2026-08-19
1028Canada2026-08-21
1029Spain2026-08-25
1030Japan2026-08-28
1031Russia2026-08-03
1032India2026-08-06
1033Argentina2026-08-12
1034Brazil2026-08-10
1035Argentina2026-08-15
1036Italy2026-08-07
1037Brazil2026-08-27
1038Italy2026-08-11
1039Argentina2026-08-31
1040United Kingdom2026-08-11
1041India2026-08-07
1042Russia2026-08-20
1043India2026-08-08
1044Russia2026-08-22
1045Argentina2026-08-12
1046Brazil2026-08-06
1047India2026-08-24
1048Russia2026-08-24
1049United Kingdom2026-08-19

On-Demand Data

NameIdCountryDate
Darci D Rulapaugh1000France2026-08-10
Clifford N Inouye1001Brazil2026-08-18
Isabel S Venere1002Australia2026-08-16
Costa R Royster1003Canada2026-08-18
Tony T Dilliard1004Canada2026-08-07
Alejandro G Amigon1005Canada2026-08-11
Wickens A Poquette1006France2026-08-10
Mujtaba G Malet1007Spain2026-08-05
Adams T Amigon1008India2026-08-20
Wickens Q Poquette1009Spain2026-08-24
Mayumi J Shinko1010France2026-08-21
Faith F Bowley1011Germany2026-08-14
Tony H Paprocki1012France2026-08-11
Sinclair H Venere1013Italy2026-08-28
Darci W Ferencz1014Spain2026-08-30
Misaki I Malet1015Germany2026-08-04
Mujtaba U Iturbide1016Italy2026-08-25
Mayumi K Doe1017United Kingdom2026-08-21
Antonio G Albares1018France2026-08-31
Wickens Q Whobrey1019Italy2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya W KuskoItalyIoni Bowcher RENEWAL
Mayumi J PoquetteAustraliaAnna Fali RENEWAL
Ashley Y BowleyAustraliaElwin Sharvill UNQUALIFIED
Aruna I ChuiCanadaAsiya Javayant UNQUALIFIED
Jefferson P IturbideCanadaStephen Shaw PROPOSAL
Deepesh F BowleyJapanStephen Shaw QUALIFIED
Alejandro O OstroskyItalyElwin Sharvill RENEWAL
Morrow V NestleSpainXuxue Feng QUALIFIED
Mayumi N FollerIndiaStephen Shaw UNQUALIFIED
Munro K PerinBrazilAnna Fali UNQUALIFIED
James C GarufiAustraliaStephen Shaw NEW
Aditya A StockhamRussiaBernardo Dominic RENEWAL
Stacey N GauchoAustraliaXuxue Feng UNQUALIFIED
Kaitlin L NickaAustraliaAsiya Javayant QUALIFIED
Antonio C WieserFranceIvan Magalhaes QUALIFIED
Silvio I GauchoJapanAnna Fali UNQUALIFIED
Silvio S DilliardGermanyXuxue Feng PROPOSAL
Isabel G GarufiIndiaAnna Fali NEW
Smith Q SchemmerUnited KingdomXuxue Feng QUALIFIED
Jennifer A ChuiFranceAnna Fali NEGOTIATION
Smith E ButtJapanAsiya Javayant NEGOTIATION
Maisha X DarakjySpainXuxue Feng NEGOTIATION
Salvatore F NestleRussiaElwin Sharvill UNQUALIFIED
Ashley A SlusarskiCanadaXuxue Feng RENEWAL
Misaki K CaldareraFranceElwin Sharvill NEW
David K CampainIndiaIoni Bowcher NEW
Cody O ButtUnited KingdomAnna Fali RENEWAL
Misaki S StockhamRussiaBernardo Dominic NEW
Jefferson Q AmigonArgentinaBernardo Dominic NEW
Smith J WaycottFranceAmy Elsner PROPOSAL
Aruna N VocelkaAustraliaIoni Bowcher NEW
Deepesh H RoysterSpainIvan Magalhaes PROPOSAL
Stacey F SchemmerGermanyElwin Sharvill QUALIFIED
Jones O TollnerJapanIvan Magalhaes NEGOTIATION
Wickens T MacleadRussiaElwin Sharvill RENEWAL
Isabel S StensethUnited KingdomBernardo Dominic NEW
Jennifer G SaylorsAustraliaOnyama Limba QUALIFIED
Adams P SchemmerFranceIoni Bowcher UNQUALIFIED
Jeanfrancois X VenereArgentinaElwin Sharvill RENEWAL
James C SergiSpainIvan Magalhaes QUALIFIED

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