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
Jeanfrancois W NestleSpainOnyama Limba QUALIFIED
Sinclair G SchemmerRussiaAsiya Javayant PROPOSAL
Aruna N MarrierCanadaAsiya Javayant NEGOTIATION
David O PaprockiItalyStephen Shaw RENEWAL
Octavia W OldroydSpainXuxue Feng PROPOSAL
Julie J IturbideAustraliaIoni Bowcher QUALIFIED
Darci S RulapaughIndiaAnna Fali NEW
Isabel E IturbideBrazilAsiya Javayant QUALIFIED
Chavez P SchemmerArgentinaBernardo Dominic RENEWAL
Greenwood O MorascaItalyStephen Shaw RENEWAL
Faith F InouyeAustraliaIvan Magalhaes NEW
Munro R IturbideIndiaXuxue Feng NEGOTIATION
Claire I BowleyGermanyXuxue Feng RENEWAL
Jefferson E PerinUnited KingdomXuxue Feng QUALIFIED
Johnson U WhobreySpainElwin Sharvill NEW
Mayumi X VocelkaArgentinaAmy Elsner NEW
Kadeem U ButtUnited KingdomOnyama Limba NEW
Tony R CampainCanadaIvan Magalhaes PROPOSAL
Maria Y GlickJapanOnyama Limba NEGOTIATION
Adams O AlbaresCanadaIvan Magalhaes PROPOSAL
Octavia R OstroskyBrazilIoni Bowcher QUALIFIED
Cody X WaycottSpainAnna Fali PROPOSAL
Jeanfrancois I SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Mujtaba Y RutaRussiaOnyama Limba QUALIFIED
Aditya S RoysterFranceAnna Fali NEW
Darci G GlickCanadaIvan Magalhaes PROPOSAL
Isabel L GauchoFranceElwin Sharvill QUALIFIED
Maria M GauchoRussiaAnna Fali RENEWAL
Arvin M CaldareraArgentinaXuxue Feng NEGOTIATION
David A TollnerJapanIvan Magalhaes RENEWAL
Arvin Q BologniaUnited KingdomIoni Bowcher RENEWAL
Leon P SergiCanadaIvan Magalhaes QUALIFIED
Rodrigues L GarufiIndiaIoni Bowcher UNQUALIFIED
Kaitlin H VocelkaJapanAsiya Javayant NEGOTIATION
Adams C FlosiBrazilIoni Bowcher NEW
Morrow E AmigonItalyIvan Magalhaes PROPOSAL
Alejandro X MorascaCanadaIvan Magalhaes NEW
Johnson U MorascaSpainOnyama Limba PROPOSAL
Nicolas L PaprockiSpainXuxue Feng RENEWAL
Smith G MarrierRussiaElwin Sharvill QUALIFIED
Sinclair G BriddickAustraliaAnna Fali NEW
Adams N GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford X CampainFranceOnyama Limba RENEWAL
Jones R ButtUnited KingdomAmy Elsner NEGOTIATION
Aditya N ButtBrazilStephen Shaw NEGOTIATION
Leon G SergiItalyIoni Bowcher PROPOSAL
Kaitlin R StockhamGermanyStephen Shaw QUALIFIED
Mayumi O RutaIndiaAnna Fali NEW
Emily G MorascaJapanAnna Fali QUALIFIED
Jennifer Q MacleadRussiaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood Q TollnerBrazilAsiya Javayant PROPOSAL
Maisha J TollnerBrazilOnyama Limba QUALIFIED
Mayumi Z InouyeAustraliaIoni Bowcher NEGOTIATION
Jefferson O SergiGermanyOnyama Limba QUALIFIED
Mayumi V FlosiBrazilXuxue Feng QUALIFIED
Silvio J RoysterCanadaOnyama Limba NEW
Clifford O AmigonGermanyIvan Magalhaes NEGOTIATION
Arvin C PoquetteJapanIvan Magalhaes UNQUALIFIED
Francesco R CaldareraBrazilOnyama Limba RENEWAL
Morrow H RimCanadaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba O MaletSpain2025-04-11Rousseaux, Michael Esq PROPOSAL3Bernardo Dominic
1001Isabel T RimItaly2025-04-24Chemel, James L Cpa QUALIFIED7Xuxue Feng
1002Leja L DilliardSpain2025-04-04Buckley Miller Wright UNQUALIFIED23Bernardo Dominic
1003David R KolmetzFrance2025-04-08Printing Dimensions UNQUALIFIED29Elwin Sharvill
1004Isabel S KuskoAustralia2025-04-23Truhlar And Truhlar Attys QUALIFIED3Bernardo Dominic
1005Tony N StockhamUnited Kingdom2025-04-03Printing Dimensions PROPOSAL56Anna Fali
1006Leja L RoysterCanada2025-04-22Feiner Bros NEW11Xuxue Feng
1007Silvio A SchemmerSpain2025-04-08King, Christopher A Esq RENEWAL91Onyama Limba
1008Greenwood Q KolmetzItaly2025-04-12Feltz Printing Service NEW70Ivan Magalhaes
1009Sinclair D SaylorsSpain2025-04-12Dorl, James J Esq PROPOSAL19Anna Fali
1010Jennifer B MaletCanada2025-04-08Rangoni Of Florence RENEWAL45Anna Fali
1011Ashley M SchemmerFrance2025-04-12Chanay, Jeffrey A Esq UNQUALIFIED76Stephen Shaw
1012Maria E AmigonSpain2025-04-05Rangoni Of Florence NEW6Stephen Shaw
1013Murillo F WaycottCanada2025-04-22Commercial Press UNQUALIFIED32Ioni Bowcher
1014Ricardo N GauchoIndia2025-04-19King, Christopher A Esq NEGOTIATION96Anna Fali
1015Smith C RutaAustralia2025-04-12Morlong Associates NEGOTIATION13Xuxue Feng
1016Mujtaba O AlbaresSpain2025-04-16Truhlar And Truhlar Attys UNQUALIFIED12Elwin Sharvill
1017Leja K BologniaRussia2025-04-29Chemel, James L Cpa PROPOSAL69Elwin Sharvill
1018Cody S MaletBrazil2025-04-27Rangoni Of Florence QUALIFIED62Elwin Sharvill
1019Tony O PoquetteRussia2025-04-28Printing Dimensions UNQUALIFIED57Ivan Magalhaes
1020Stacey F ChuiRussia2025-04-12Commercial Press PROPOSAL45Xuxue Feng
1021Mujtaba U ChuiJapan2025-04-08Chemel, James L Cpa RENEWAL32Elwin Sharvill
1022Izzy O KuskoBrazil2025-04-02Commercial Press UNQUALIFIED75Xuxue Feng
1023Wickens Q StensethItaly2025-04-07Dorl, James J Esq UNQUALIFIED54Asiya Javayant
1024Nicolas B MaletBrazil2025-04-04Morlong Associates QUALIFIED66Ivan Magalhaes
1025Aruna Q ShinkoIndia2025-04-23Buckley Miller Wright UNQUALIFIED25Asiya Javayant
1026Jeanfrancois B RulapaughRussia2025-04-10Dorl, James J Esq PROPOSAL94Amy Elsner
1027Rodrigues V FigeroaUnited Kingdom2025-04-03Rousseaux, Michael Esq PROPOSAL84Onyama Limba
1028Aika K MarrierUnited Kingdom2025-04-23Feiner Bros RENEWAL80Stephen Shaw
1029Faith L InouyeArgentina2025-04-26King, Christopher A Esq RENEWAL97Amy Elsner
1030Ricardo H GlickCanada2025-04-04Truhlar And Truhlar Attys PROPOSAL61Stephen Shaw
1031Francesco G MacleadIndia2025-04-10Chanay, Jeffrey A Esq UNQUALIFIED86Anna Fali
1032Murillo O GauchoGermany2025-04-06Benton, John B Jr PROPOSAL44Elwin Sharvill
1033Octavia U TollnerGermany2025-04-29Chanay, Jeffrey A Esq QUALIFIED83Onyama Limba
1034Emily Q FigeroaGermany2025-04-11Dorl, James J Esq PROPOSAL45Bernardo Dominic
1035Nicolas P ChuiItaly2025-04-28Printing Dimensions NEW43Stephen Shaw
1036Aika N AmigonSpain2025-04-27Rangoni Of Florence NEW85Asiya Javayant
1037Darci S VocelkaSpain2025-04-27Rangoni Of Florence PROPOSAL15Stephen Shaw
1038Juan N KuskoCanada2025-04-18Feltz Printing Service NEW68Anna Fali
1039Stacey K SaylorsGermany2025-04-06Rangoni Of Florence PROPOSAL2Ioni Bowcher
1040Misaki U BologniaAustralia2025-04-19Chanay, Jeffrey A Esq NEW39Ivan Magalhaes
1041Arvin Q WhobreySpain2025-04-01Feiner Bros NEW74Asiya Javayant
1042Maisha Q DilliardArgentina2025-04-27Chemel, James L Cpa NEW48Bernardo Dominic
1043David R KuskoJapan2025-04-25Chapman, Ross E Esq UNQUALIFIED93Anna Fali
1044James J BriddickJapan2025-04-26Feiner Bros NEW67Ivan Magalhaes
1045Smith Q NestleCanada2025-04-03Chemel, James L Cpa UNQUALIFIED22Ioni Bowcher
1046Faith U GlickCanada2025-04-26Rangoni Of Florence UNQUALIFIED91Bernardo Dominic
1047Darci E KuskoAustralia2025-04-08Dorl, James J Esq UNQUALIFIED85Elwin Sharvill
1048Jones J BowleyRussia2025-04-26Rangoni Of Florence RENEWAL6Anna Fali
1049Mujtaba S PerinRussia2025-04-19Morlong Associates NEGOTIATION18Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Juan W BowleyArgentinaAmy Elsner NEGOTIATION
David Z InouyeFranceAmy Elsner UNQUALIFIED
Adams I DarakjyIndiaOnyama Limba QUALIFIED
James F GillianBrazilStephen Shaw QUALIFIED
Clifford J OstroskyItalyXuxue Feng UNQUALIFIED
James P MacleadGermanyAmy Elsner NEGOTIATION
Clifford V TollnerBrazilOnyama Limba NEGOTIATION
Arvin U StensethGermanyElwin Sharvill NEGOTIATION
Mujtaba H GauchoIndiaBernardo Dominic RENEWAL
Leon Z CaudyBrazilXuxue Feng QUALIFIED
Johnson A BowleySpainXuxue Feng UNQUALIFIED
Adams S InouyeArgentinaXuxue Feng NEGOTIATION
Izzy F DarakjyUnited KingdomAnna Fali QUALIFIED
Kaitlin L MorascaArgentinaIoni Bowcher RENEWAL
Adams R IturbideBrazilAnna Fali UNQUALIFIED
Silvio Q GlickArgentinaStephen Shaw NEW
Aika M FerenczCanadaStephen Shaw PROPOSAL
Munro W FerenczArgentinaBernardo Dominic UNQUALIFIED
Aditya U DoeBrazilElwin Sharvill PROPOSAL
Rodrigues B TollnerSpainBernardo Dominic RENEWAL
Aruna A KuskoAustraliaElwin Sharvill RENEWAL
Maria G FigeroaItalyOnyama Limba NEW
Mayumi O DoeJapanAsiya Javayant UNQUALIFIED
Arvin B GarufiArgentinaXuxue Feng QUALIFIED
Jeanfrancois B VocelkaRussiaIvan Magalhaes RENEWAL
Claire G IturbideRussiaBernardo Dominic NEW
Murillo M StensethBrazilElwin Sharvill NEW
Sinclair C VenereCanadaOnyama Limba NEW
Maisha W GarufiItalyBernardo Dominic UNQUALIFIED
Silvio J DoeSpainStephen Shaw RENEWAL
Tony P SlusarskiRussiaAmy Elsner NEGOTIATION
Claire Q RutaArgentinaStephen Shaw NEGOTIATION
Deepesh O CampainIndiaElwin Sharvill QUALIFIED
Wickens E BriddickIndiaXuxue Feng NEGOTIATION
Jeanfrancois R OldroydJapanOnyama Limba NEW
Jennifer J FlosiAustraliaStephen Shaw UNQUALIFIED
James A OldroydCanadaIvan Magalhaes QUALIFIED
Cody O PoquetteIndiaAmy Elsner PROPOSAL
Jones O FollerJapanAmy Elsner NEW
Emily E NickaAustraliaAnna Fali NEW
Faith Z RoysterUnited KingdomStephen Shaw QUALIFIED
Nicolas T VenereJapanBernardo Dominic PROPOSAL
Aruna H FerenczAustraliaOnyama Limba NEW
Maisha A FerenczSpainBernardo Dominic PROPOSAL
Murillo L SchemmerAustraliaOnyama Limba PROPOSAL
Maria T RoysterRussiaIoni Bowcher NEW
Clifford G BriddickFranceAmy Elsner NEGOTIATION
Aika F GlickFranceAmy Elsner UNQUALIFIED
Tony C FlosiCanadaElwin Sharvill PROPOSAL
Wickens G OldroydRussiaIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Leon B Dilliard
Octavia D Shinko
Maisha E Figeroa
Greenwood A Inouye
Sinclair P Rim
Isabel K Morasca
Misaki A Wieser
Alejandro S Oldroyd
Faith U Nestle
Alejandro K Amigon
Julie Y Bolognia
Mujtaba P Bolognia
Ashley M Campain
Adams M Figeroa
Rodrigues L Bolognia
Jeanfrancois B Amigon
Isabel M Foller
Stacey M Doe
Sinclair M Oldroyd
Murillo X Wieser
Emily V Butt
Greenwood I Schemmer
Aika A Amigon
Arvin N Nestle
Costa L Butt
Aika D Darakjy
Salvatore R Slusarski
Chavez X Venere
Aika V Gaucho
James N Paprocki
Johnson G Nicka
Aika D Waycott
Ricardo U Briddick
Kaitlin M Paprocki
Kaitlin B Whobrey
Smith K Ostrosky
Clifford P Poquette
Antonio W Malet
Chavez L Oldroyd
Juan Q Whobrey
Morrow K Amigon
Izzy V Oldroyd
Leja B Venere
Ashley R Kusko
Jefferson M Butt
Antonio K Paprocki
Claire T Wieser
Arvin G Nestle
Tony Q Chui
Smith G Ostrosky
IdCountryDate
1000Japan2025-04-29
1001India2025-04-23
1002India2025-04-16
1003Argentina2025-04-03
1004Japan2025-04-28
1005Russia2025-04-20
1006United Kingdom2025-04-17
1007India2025-04-30
1008Argentina2025-04-03
1009Brazil2025-04-11
1010India2025-04-05
1011Australia2025-04-05
1012Argentina2025-04-25
1013Spain2025-04-17
1014Canada2025-04-29
1015Japan2025-04-15
1016Russia2025-04-15
1017Germany2025-04-04
1018Brazil2025-04-10
1019Canada2025-04-18
1020United Kingdom2025-04-10
1021Canada2025-04-27
1022Australia2025-04-27
1023United Kingdom2025-04-17
1024France2025-04-15
1025India2025-04-19
1026France2025-04-19
1027Germany2025-04-15
1028Russia2025-04-15
1029Argentina2025-04-23
1030Brazil2025-04-17
1031France2025-04-06
1032France2025-04-01
1033Japan2025-04-03
1034Italy2025-04-26
1035United Kingdom2025-04-23
1036Brazil2025-04-06
1037Germany2025-04-07
1038Canada2025-04-19
1039Italy2025-04-17
1040Argentina2025-04-16
1041Argentina2025-04-30
1042India2025-04-02
1043Japan2025-04-09
1044Brazil2025-04-27
1045United Kingdom2025-04-22
1046India2025-04-11
1047Japan2025-04-21
1048Italy2025-04-23
1049Brazil2025-04-10

On-Demand Data

NameIdCountryDate
Kaitlin Y Rulapaugh1000France2025-04-25
Antonio B Paprocki1001India2025-04-17
Ashley D Venere1002Brazil2025-04-10
Sinclair A Caldarera1003Australia2025-04-28
Ashley Y Bowley1004Australia2025-04-10
Antonio G Darakjy1005Italy2025-04-22
Jones R Malet1006Spain2025-04-12
Cody V Ostrosky1007Russia2025-04-08
Emily B Kolmetz1008Canada2025-04-15
Ricardo T Royster1009Argentina2025-04-04
Adams L Schemmer1010India2025-04-24
Isabel W Paprocki1011Japan2025-04-01
Antonio S Wieser1012India2025-04-10
Munro B Shinko1013Argentina2025-04-27
Izzy I Albares1014Brazil2025-04-27
Isabel D Royster1015France2025-04-19
Wickens B Paprocki1016Australia2025-04-03
Mujtaba R Caudy1017Argentina2025-04-24
Claire Q Schemmer1018Russia2025-04-20
Mayumi N Malet1019Canada2025-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow Q IturbideIndiaIvan Magalhaes PROPOSAL
Juan R CampainBrazilXuxue Feng NEW
Maria U PerinGermanyIoni Bowcher NEGOTIATION
Johnson S CampainRussiaXuxue Feng UNQUALIFIED
Chavez C FlosiArgentinaStephen Shaw PROPOSAL
Cody Y BowleySpainIoni Bowcher NEW
Jefferson N RimFranceIvan Magalhaes NEW
Francesco X CampainFranceIvan Magalhaes NEW
Misaki J MaletRussiaAsiya Javayant PROPOSAL
Aditya X RoysterUnited KingdomOnyama Limba RENEWAL
Darci H FlosiJapanAmy Elsner NEGOTIATION
Johnson F RimRussiaIoni Bowcher RENEWAL
Misaki Y RoysterBrazilAnna Fali PROPOSAL
Jones B FlosiArgentinaStephen Shaw PROPOSAL
Leon O OldroydBrazilBernardo Dominic UNQUALIFIED
Claire G RulapaughIndiaIvan Magalhaes NEGOTIATION
Faith E GarufiArgentinaIoni Bowcher UNQUALIFIED
Jennifer L MaletItalyAsiya Javayant NEGOTIATION
Munro J ButtItalyXuxue Feng UNQUALIFIED
Maisha Q FigeroaFranceXuxue Feng UNQUALIFIED
Ivar G CaudyIndiaAsiya Javayant NEGOTIATION
Aditya T InouyeItalyElwin Sharvill QUALIFIED
Clifford G GillianCanadaStephen Shaw NEGOTIATION
Munro R GlickIndiaIvan Magalhaes UNQUALIFIED
Claire W MorascaGermanyElwin Sharvill QUALIFIED
Sinclair M SaylorsGermanyAmy Elsner UNQUALIFIED
Costa E DilliardSpainAnna Fali NEW
Johnson I SaylorsIndiaAmy Elsner NEGOTIATION
Leon D WieserCanadaAnna Fali UNQUALIFIED
Faith R KuskoRussiaAnna Fali NEGOTIATION
Costa O RimBrazilStephen Shaw PROPOSAL
Jefferson L AlbaresRussiaIvan Magalhaes QUALIFIED
Izzy D RulapaughRussiaAnna Fali PROPOSAL
Jefferson I DoeItalyStephen Shaw PROPOSAL
Aruna H BologniaCanadaIoni Bowcher NEGOTIATION
Maisha F MorascaAustraliaXuxue Feng RENEWAL
Claire M MaletSpainAmy Elsner QUALIFIED
Jeanfrancois I ButtFranceAmy Elsner PROPOSAL
Antonio F MacleadBrazilOnyama Limba UNQUALIFIED
Jennifer S TollnerRussiaStephen Shaw 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>