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
Adams S StockhamJapanStephen Shaw NEW
Smith W RimUnited KingdomXuxue Feng NEW
Greenwood E PerinIndiaBernardo Dominic NEGOTIATION
Leon I PerinAustraliaElwin Sharvill PROPOSAL
Salvatore Y PerinJapanElwin Sharvill UNQUALIFIED
Wickens G NickaFranceXuxue Feng NEGOTIATION
Wickens S MarrierItalyStephen Shaw NEGOTIATION
Isabel V GlickJapanOnyama Limba PROPOSAL
Leon E BriddickSpainElwin Sharvill NEW
Alejandro Y CaldareraAustraliaOnyama Limba NEW
Costa A RimUnited KingdomIvan Magalhaes QUALIFIED
Ricardo G MacleadIndiaAmy Elsner QUALIFIED
Rodrigues W DilliardGermanyXuxue Feng PROPOSAL
Nicolas R FerenczRussiaAmy Elsner NEGOTIATION
Octavia D RimRussiaIoni Bowcher UNQUALIFIED
Adams R SaylorsUnited KingdomIvan Magalhaes NEW
Francesco G MaletItalyXuxue Feng UNQUALIFIED
Wickens Y StockhamFranceStephen Shaw RENEWAL
Aruna H RulapaughFranceIoni Bowcher PROPOSAL
Murillo V BriddickSpainElwin Sharvill RENEWAL
Nicolas D RulapaughCanadaAmy Elsner RENEWAL
Emily D RimArgentinaAnna Fali UNQUALIFIED
Silvio M GillianJapanOnyama Limba NEW
Ashley M MacleadRussiaAnna Fali UNQUALIFIED
Jeanfrancois M DoeItalyIoni Bowcher QUALIFIED
Misaki J SergiItalyIoni Bowcher QUALIFIED
Juan R SchemmerItalyIoni Bowcher NEW
Sinclair K BowleySpainAsiya Javayant PROPOSAL
Nicolas O GarufiBrazilAmy Elsner NEW
Johnson N NestleJapanAmy Elsner PROPOSAL
Morrow T DarakjyBrazilXuxue Feng RENEWAL
Stacey U ButtArgentinaElwin Sharvill QUALIFIED
Murillo S SaylorsCanadaAnna Fali PROPOSAL
Mayumi E FigeroaGermanyAnna Fali UNQUALIFIED
Darci G CaldareraJapanIvan Magalhaes NEGOTIATION
Faith V SlusarskiItalyBernardo Dominic PROPOSAL
Tony D SergiArgentinaAnna Fali NEW
Ivar D NickaGermanyIvan Magalhaes PROPOSAL
Alejandro P SergiIndiaStephen Shaw NEW
Deepesh E WieserUnited KingdomIoni Bowcher QUALIFIED
Ashley V NestleGermanyAsiya Javayant NEGOTIATION
Sinclair O KolmetzAustraliaAnna Fali PROPOSAL
Ashley B AlbaresIndiaElwin Sharvill NEGOTIATION
Darci M BowleyAustraliaAsiya Javayant QUALIFIED
Francesco L ShinkoAustraliaStephen Shaw UNQUALIFIED
Jennifer J CaudyIndiaOnyama Limba PROPOSAL
Maria R RulapaughBrazilXuxue Feng PROPOSAL
Johnson X FollerCanadaAnna Fali RENEWAL
Stacey T MacleadJapanIoni Bowcher UNQUALIFIED
Salvatore R DoeIndiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Julie L DoeArgentinaElwin Sharvill QUALIFIED
David Y NestleJapanElwin Sharvill NEW
Smith W FigeroaCanadaAnna Fali RENEWAL
Clifford Q RoysterAustraliaIvan Magalhaes NEGOTIATION
Mujtaba H TollnerCanadaXuxue Feng UNQUALIFIED
Mujtaba Q BowleyAustraliaIvan Magalhaes RENEWAL
Antonio F BriddickFranceAnna Fali NEW
Aruna H SaylorsIndiaXuxue Feng QUALIFIED
Munro R SergiIndiaIoni Bowcher NEGOTIATION
James U FigeroaBrazilOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco G RoysterRussia2025-05-11Morlong Associates RENEWAL85Asiya Javayant
1001Mujtaba M NestleUnited Kingdom2025-05-21Rangoni Of Florence RENEWAL42Ioni Bowcher
1002Kadeem H SlusarskiItaly2025-05-23Printing Dimensions QUALIFIED65Elwin Sharvill
1003James H MorascaAustralia2025-05-22King, Christopher A Esq PROPOSAL14Ioni Bowcher
1004Adams N NickaFrance2025-05-23Chapman, Ross E Esq NEW75Anna Fali
1005Octavia F DilliardBrazil2025-05-09Dorl, James J Esq PROPOSAL60Xuxue Feng
1006Silvio J SergiCanada2025-05-25Feltz Printing Service NEW5Ioni Bowcher
1007Nicolas F BowleyGermany2025-05-11Dorl, James J Esq RENEWAL50Xuxue Feng
1008Francesco E StockhamArgentina2025-05-24Commercial Press NEW20Bernardo Dominic
1009Leja Q GarufiItaly2025-05-22Feiner Bros PROPOSAL8Amy Elsner
1010Ivar S InouyeGermany2025-05-10Truhlar And Truhlar Attys PROPOSAL66Ioni Bowcher
1011Kaitlin V BriddickFrance2025-05-16Chapman, Ross E Esq NEW9Stephen Shaw
1012Aika K ShinkoIndia2025-05-26Feltz Printing Service PROPOSAL36Ioni Bowcher
1013Aditya L RulapaughUnited Kingdom2025-06-06Chanay, Jeffrey A Esq UNQUALIFIED12Ivan Magalhaes
1014Ricardo C MaletItaly2025-05-24Chanay, Jeffrey A Esq NEGOTIATION97Stephen Shaw
1015Silvio F RutaRussia2025-05-10Feiner Bros RENEWAL5Bernardo Dominic
1016James M SlusarskiFrance2025-05-09Feiner Bros PROPOSAL83Asiya Javayant
1017Ricardo T SlusarskiRussia2025-06-01Truhlar And Truhlar Attys QUALIFIED77Ioni Bowcher
1018Smith U SchemmerGermany2025-05-10Rangoni Of Florence QUALIFIED77Amy Elsner
1019Mayumi D GillianItaly2025-05-21Feiner Bros UNQUALIFIED10Asiya Javayant
1020Morrow V DilliardIndia2025-05-27Feiner Bros RENEWAL14Elwin Sharvill
1021Sinclair P SlusarskiArgentina2025-05-12Morlong Associates RENEWAL39Amy Elsner
1022Greenwood C ChuiCanada2025-05-19Rangoni Of Florence NEGOTIATION87Anna Fali
1023Aditya F StensethAustralia2025-06-05Printing Dimensions NEW16Bernardo Dominic
1024Darci X StensethIndia2025-05-25Chemel, James L Cpa RENEWAL25Bernardo Dominic
1025Adams M StensethBrazil2025-05-27Morlong Associates UNQUALIFIED94Stephen Shaw
1026Munro L ChuiFrance2025-05-25Chemel, James L Cpa RENEWAL90Anna Fali
1027Mujtaba O TollnerCanada2025-05-21Chemel, James L Cpa UNQUALIFIED83Ioni Bowcher
1028Clifford C MaletCanada2025-06-06Truhlar And Truhlar Attys QUALIFIED12Elwin Sharvill
1029Julie B MaletBrazil2025-05-25Dorl, James J Esq NEGOTIATION27Xuxue Feng
1030Stacey V StensethAustralia2025-06-05Morlong Associates QUALIFIED93Onyama Limba
1031Murillo U TollnerAustralia2025-05-30Benton, John B Jr NEGOTIATION87Stephen Shaw
1032Tony E MarrierCanada2025-05-18Benton, John B Jr NEW93Bernardo Dominic
1033Silvio F RimCanada2025-05-20Benton, John B Jr NEGOTIATION11Amy Elsner
1034Sinclair E FerenczAustralia2025-05-10King, Christopher A Esq NEW52Bernardo Dominic
1035Faith Z KolmetzCanada2025-06-07Morlong Associates QUALIFIED13Ivan Magalhaes
1036Johnson V StockhamUnited Kingdom2025-05-09Truhlar And Truhlar Attys RENEWAL17Asiya Javayant
1037Francesco F AlbaresGermany2025-05-19Dorl, James J Esq RENEWAL76Stephen Shaw
1038Murillo C MaletAustralia2025-05-16Chapman, Ross E Esq QUALIFIED96Stephen Shaw
1039Aruna R GillianUnited Kingdom2025-05-29Chemel, James L Cpa NEGOTIATION83Stephen Shaw
1040Aditya Y VenereIndia2025-05-31Morlong Associates PROPOSAL15Elwin Sharvill
1041Juan H ChuiIndia2025-05-14Chapman, Ross E Esq NEGOTIATION43Onyama Limba
1042Johnson P BologniaUnited Kingdom2025-06-01Benton, John B Jr UNQUALIFIED30Elwin Sharvill
1043Ricardo P DilliardIndia2025-05-09Morlong Associates QUALIFIED23Bernardo Dominic
1044Mayumi I MacleadSpain2025-05-17Benton, John B Jr NEW41Amy Elsner
1045Greenwood H SaylorsSpain2025-05-23Rangoni Of Florence PROPOSAL71Asiya Javayant
1046Jefferson R OldroydArgentina2025-06-04Feiner Bros NEW78Anna Fali
1047Cody Y SaylorsRussia2025-05-23Morlong Associates QUALIFIED35Stephen Shaw
1048Leja A FigeroaIndia2025-05-09Chemel, James L Cpa PROPOSAL84Asiya Javayant
1049Silvio O ShinkoSpain2025-05-19Benton, John B Jr NEW27Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Deepesh M AlbaresUnited KingdomBernardo Dominic NEW
Wickens R GauchoAustraliaAmy Elsner PROPOSAL
Claire O MaletJapanStephen Shaw NEGOTIATION
Mayumi F GlickBrazilIvan Magalhaes PROPOSAL
Wickens E NestleRussiaAmy Elsner RENEWAL
Darci S ButtSpainXuxue Feng PROPOSAL
Octavia U FlosiGermanyBernardo Dominic QUALIFIED
Aruna E SlusarskiFranceBernardo Dominic NEW
Costa G GauchoArgentinaAnna Fali RENEWAL
Smith V TollnerUnited KingdomAmy Elsner RENEWAL
Izzy X MarrierRussiaAnna Fali NEGOTIATION
Aruna N RutaRussiaOnyama Limba NEW
Leon W CampainSpainAmy Elsner NEGOTIATION
Julie Y MaletRussiaStephen Shaw RENEWAL
Mayumi E SergiGermanyAnna Fali UNQUALIFIED
Izzy H GauchoFranceElwin Sharvill NEGOTIATION
Stacey V SlusarskiJapanIvan Magalhaes NEW
Morrow K GillianBrazilIvan Magalhaes QUALIFIED
Leja P SlusarskiRussiaIoni Bowcher PROPOSAL
Costa Z FlosiJapanAsiya Javayant PROPOSAL
James L NickaIndiaElwin Sharvill NEGOTIATION
Julie X StockhamArgentinaStephen Shaw UNQUALIFIED
Cody F CaldareraBrazilElwin Sharvill QUALIFIED
Adams Z SchemmerAustraliaOnyama Limba PROPOSAL
Adams N BologniaArgentinaAnna Fali QUALIFIED
Murillo Y WhobreyIndiaXuxue Feng NEGOTIATION
Ricardo T ButtRussiaAsiya Javayant UNQUALIFIED
Stacey F PoquetteIndiaBernardo Dominic RENEWAL
Kaitlin C GillianIndiaAsiya Javayant PROPOSAL
Cody I VenereArgentinaAmy Elsner PROPOSAL
Julie O PerinJapanAsiya Javayant QUALIFIED
Arvin M KuskoIndiaIvan Magalhaes NEW
Kadeem F FlosiFranceStephen Shaw NEGOTIATION
Leja F MaletCanadaAsiya Javayant RENEWAL
Arvin I VenereRussiaStephen Shaw UNQUALIFIED
Murillo S VenereItalyStephen Shaw UNQUALIFIED
Misaki W SchemmerBrazilAsiya Javayant PROPOSAL
Munro F BowleyAustraliaXuxue Feng RENEWAL
Wickens A OstroskyBrazilIoni Bowcher QUALIFIED
Stacey B VenereGermanyAnna Fali NEW
Stacey T CaldareraItalyAmy Elsner RENEWAL
Mujtaba G InouyeJapanIvan Magalhaes QUALIFIED
Smith B InouyeRussiaIoni Bowcher QUALIFIED
Adams V MaletItalyOnyama Limba PROPOSAL
Misaki A MaletFranceXuxue Feng NEW
Stacey C ShinkoGermanyIoni Bowcher NEGOTIATION
Mujtaba N RoysterJapanAmy Elsner NEW
Kaitlin B OstroskyUnited KingdomElwin Sharvill QUALIFIED
Francesco Q RimArgentinaXuxue Feng NEW
Antonio K InouyeSpainOnyama Limba UNQUALIFIED
Frozen Columns
Name
Silvio H Royster
Darci U Figeroa
Clifford X Morasca
Jeanfrancois W Tollner
Tony I Stenseth
Jeanfrancois T Shinko
David L Kolmetz
Smith X Caldarera
Kaitlin Y Stenseth
Costa F Venere
Murillo O Bolognia
Antonio X Kolmetz
Maria W Royster
Silvio O Amigon
Juan X Paprocki
Jeanfrancois N Albares
Leon W Morasca
David Q Albares
Mayumi Q Chui
Wickens P Butt
Jeanfrancois F Kolmetz
Johnson G Stockham
Murillo I Ferencz
Maria S Wieser
Adams G Butt
James R Campain
Jefferson M Figeroa
Deepesh H Darakjy
Rodrigues G Tollner
Mujtaba Y Briddick
Isabel B Nicka
Costa R Rim
Maisha T Briddick
Jones C Inouye
James Z Nicka
Stacey M Oldroyd
David A Malet
Julie Y Gillian
Aditya V Campain
Ivar K Royster
Deepesh C Slusarski
Chavez D Glick
Ashley M Maclead
Nicolas O Vocelka
Wickens W Schemmer
Juan X Maclead
Costa D Caldarera
Kadeem J Slusarski
Octavia Y Marrier
Ricardo C Albares
IdCountryDate
1000France2025-05-10
1001Italy2025-05-23
1002France2025-05-26
1003Russia2025-05-18
1004France2025-05-14
1005France2025-06-07
1006France2025-06-01
1007India2025-05-18
1008Canada2025-05-31
1009France2025-05-16
1010India2025-05-27
1011Russia2025-05-18
1012Canada2025-05-20
1013Argentina2025-05-27
1014Brazil2025-05-22
1015Canada2025-05-20
1016Russia2025-05-30
1017India2025-05-29
1018Russia2025-06-01
1019Canada2025-05-17
1020Russia2025-06-04
1021Argentina2025-06-02
1022Russia2025-05-22
1023Italy2025-05-23
1024Brazil2025-05-28
1025Australia2025-05-28
1026India2025-05-31
1027France2025-05-23
1028Spain2025-05-09
1029Germany2025-05-31
1030Germany2025-05-27
1031Germany2025-05-30
1032Japan2025-05-27
1033France2025-05-16
1034United Kingdom2025-06-06
1035Brazil2025-05-22
1036Japan2025-06-06
1037Australia2025-06-06
1038Argentina2025-05-15
1039Australia2025-05-20
1040India2025-05-22
1041Russia2025-05-24
1042Brazil2025-06-01
1043Brazil2025-05-24
1044France2025-05-25
1045France2025-05-31
1046France2025-06-07
1047Brazil2025-06-07
1048Germany2025-05-10
1049Australia2025-05-12

On-Demand Data

NameIdCountryDate
Aruna N Darakjy1000Japan2025-06-05
Morrow J Butt1001Spain2025-05-17
Kadeem V Wieser1002United Kingdom2025-05-23
Mujtaba Q Tollner1003India2025-05-17
Adams F Briddick1004Germany2025-05-22
Arvin E Royster1005Canada2025-05-25
Kadeem E Venere1006Russia2025-05-21
Salvatore S Paprocki1007Japan2025-05-16
Leja F Kolmetz1008Russia2025-06-07
Kadeem H Kusko1009India2025-05-29
Antonio J Sergi1010France2025-06-02
Mujtaba E Sergi1011Russia2025-05-21
Morrow U Paprocki1012France2025-05-19
James G Ostrosky1013Brazil2025-05-29
Ivar U Briddick1014Germany2025-06-04
Jones R Oldroyd1015Italy2025-05-18
Kaitlin A Poquette1016India2025-06-07
Murillo M Campain1017Japan2025-06-01
Costa A Albares1018Japan2025-05-23
Silvio B Wieser1019India2025-05-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro Q GillianGermanyElwin Sharvill UNQUALIFIED
Aditya B BowleySpainBernardo Dominic NEGOTIATION
Maisha S RutaJapanElwin Sharvill QUALIFIED
Emily P CaldareraAustraliaAsiya Javayant PROPOSAL
Claire A MacleadRussiaBernardo Dominic NEGOTIATION
Johnson V SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues X CaudyCanadaXuxue Feng PROPOSAL
Faith C MorascaFranceAsiya Javayant QUALIFIED
Leja J CampainRussiaAmy Elsner NEW
Maria X DoeGermanyStephen Shaw PROPOSAL
Jefferson M CampainArgentinaElwin Sharvill NEGOTIATION
Claire A PoquetteJapanAnna Fali UNQUALIFIED
Ivar F FollerGermanyAnna Fali NEW
Salvatore O CaldareraFranceIoni Bowcher NEW
Jennifer T FlosiCanadaAnna Fali NEGOTIATION
Cody E MaletItalyAnna Fali UNQUALIFIED
Morrow H OstroskyArgentinaXuxue Feng NEGOTIATION
Misaki Y WaycottUnited KingdomAmy Elsner QUALIFIED
James J DilliardArgentinaAmy Elsner NEGOTIATION
Izzy G AlbaresIndiaOnyama Limba NEGOTIATION
Francesco S StockhamBrazilXuxue Feng RENEWAL
Izzy S ButtGermanyAmy Elsner QUALIFIED
Aditya U VenereSpainAmy Elsner PROPOSAL
Murillo E MacleadIndiaOnyama Limba QUALIFIED
Mujtaba P VocelkaJapanElwin Sharvill NEW
Silvio F FigeroaAustraliaAnna Fali UNQUALIFIED
Nicolas Q AlbaresArgentinaXuxue Feng PROPOSAL
Morrow Y ShinkoAustraliaAsiya Javayant QUALIFIED
Johnson L OstroskySpainXuxue Feng RENEWAL
Johnson S PerinRussiaIvan Magalhaes UNQUALIFIED
Izzy G WhobreyBrazilXuxue Feng QUALIFIED
Francesco D PerinBrazilOnyama Limba NEW
Costa X SergiFranceAnna Fali QUALIFIED
Ivar B FerenczItalyStephen Shaw PROPOSAL
Izzy W SlusarskiRussiaIoni Bowcher PROPOSAL
Mujtaba X PoquetteFranceIoni Bowcher NEW
James G MacleadJapanAsiya Javayant PROPOSAL
James S RutaArgentinaIvan Magalhaes NEGOTIATION
Murillo I GlickJapanElwin Sharvill RENEWAL
Rodrigues S MacleadAustraliaElwin Sharvill NEW

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