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
Arvin G KuskoArgentinaIoni Bowcher RENEWAL
James I MacleadFranceStephen Shaw NEGOTIATION
Rodrigues J OstroskyBrazilAmy Elsner QUALIFIED
Antonio P GarufiCanadaAnna Fali UNQUALIFIED
Aika F CaldareraAustraliaElwin Sharvill RENEWAL
Francesco A BriddickBrazilIvan Magalhaes NEW
Juan G WaycottSpainBernardo Dominic UNQUALIFIED
Izzy H CampainGermanyOnyama Limba QUALIFIED
Claire S GlickIndiaAnna Fali NEGOTIATION
Deepesh J CaldareraArgentinaOnyama Limba NEGOTIATION
Chavez J OldroydJapanBernardo Dominic QUALIFIED
Kaitlin V SergiBrazilOnyama Limba NEW
Cody Q BowleyRussiaAsiya Javayant NEGOTIATION
Jennifer K NestleFranceIoni Bowcher RENEWAL
Izzy C KolmetzCanadaBernardo Dominic NEW
Murillo X FlosiUnited KingdomOnyama Limba PROPOSAL
Ashley M KuskoItalyXuxue Feng UNQUALIFIED
Alejandro J VocelkaGermanyBernardo Dominic PROPOSAL
Claire I SaylorsFranceIoni Bowcher NEW
Jefferson L WaycottItalyIvan Magalhaes QUALIFIED
Murillo V DilliardBrazilAsiya Javayant NEW
Sinclair Q MaletItalyOnyama Limba NEGOTIATION
Munro G PerinJapanIoni Bowcher QUALIFIED
David I RoysterRussiaAsiya Javayant NEW
Jones I KuskoArgentinaBernardo Dominic UNQUALIFIED
Jennifer D MacleadArgentinaAsiya Javayant RENEWAL
Isabel G WieserJapanIoni Bowcher NEGOTIATION
Sinclair R FlosiBrazilIvan Magalhaes QUALIFIED
Clifford Y VenereBrazilIoni Bowcher NEGOTIATION
Costa G CampainArgentinaAnna Fali PROPOSAL
Alejandro S MarrierFranceElwin Sharvill RENEWAL
Jennifer J KolmetzUnited KingdomIoni Bowcher PROPOSAL
Deepesh U RimGermanyOnyama Limba RENEWAL
Aruna Q WaycottGermanyElwin Sharvill QUALIFIED
Claire R BologniaIndiaXuxue Feng PROPOSAL
Aditya J KuskoBrazilStephen Shaw UNQUALIFIED
Francesco L OstroskyFranceIvan Magalhaes RENEWAL
Chavez Z AmigonBrazilXuxue Feng QUALIFIED
Jones X RoysterGermanyStephen Shaw NEW
Costa G FollerBrazilIoni Bowcher PROPOSAL
Johnson R DarakjyCanadaXuxue Feng UNQUALIFIED
Tony C MorascaJapanIoni Bowcher RENEWAL
Jefferson S KuskoRussiaIvan Magalhaes RENEWAL
Mujtaba L InouyeFranceIvan Magalhaes PROPOSAL
Francesco W OstroskyIndiaIoni Bowcher UNQUALIFIED
Jennifer L MarrierFranceAmy Elsner NEW
David H FigeroaArgentinaIvan Magalhaes NEW
Darci C PerinFranceXuxue Feng PROPOSAL
Cody M VenereAustraliaXuxue Feng NEGOTIATION
Sinclair P GlickJapanIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Francesco Q VenereFranceIvan Magalhaes NEGOTIATION
Maria Y PerinRussiaBernardo Dominic PROPOSAL
Costa O GlickBrazilXuxue Feng NEGOTIATION
Adams V WieserFranceIoni Bowcher QUALIFIED
Johnson V MacleadRussiaOnyama Limba RENEWAL
David C ShinkoUnited KingdomAsiya Javayant QUALIFIED
Claire S RimItalyIvan Magalhaes NEGOTIATION
James E MorascaItalyStephen Shaw NEW
Alejandro I MacleadGermanyAnna Fali NEGOTIATION
Mujtaba G FigeroaArgentinaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel Y BriddickCanada2025-04-11Chemel, James L Cpa NEGOTIATION64Onyama Limba
1001Octavia V GauchoArgentina2025-04-01Morlong Associates UNQUALIFIED96Bernardo Dominic
1002Juan C TollnerAustralia2025-04-14Truhlar And Truhlar Attys PROPOSAL44Stephen Shaw
1003Maria G RoysterFrance2025-04-24Morlong Associates RENEWAL9Xuxue Feng
1004Johnson L KolmetzCanada2025-04-23Feltz Printing Service NEW26Ivan Magalhaes
1005Clifford M AmigonUnited Kingdom2025-04-08Commercial Press QUALIFIED84Anna Fali
1006Greenwood H BriddickUnited Kingdom2025-04-26King, Christopher A Esq NEGOTIATION55Xuxue Feng
1007Mayumi U RoysterCanada2025-04-23King, Christopher A Esq QUALIFIED12Xuxue Feng
1008Jeanfrancois F MarrierItaly2025-04-19Benton, John B Jr UNQUALIFIED62Xuxue Feng
1009Stacey D VocelkaJapan2025-04-09Morlong Associates QUALIFIED52Ioni Bowcher
1010Jones P GlickJapan2025-04-21Chemel, James L Cpa RENEWAL85Ivan Magalhaes
1011Alejandro H KuskoUnited Kingdom2025-04-10Rousseaux, Michael Esq NEW8Elwin Sharvill
1012Ivar M WhobreyIndia2025-04-06Rousseaux, Michael Esq RENEWAL91Onyama Limba
1013Isabel K WaycottItaly2025-04-15Dorl, James J Esq UNQUALIFIED23Asiya Javayant
1014Tony U FigeroaItaly2025-04-22Truhlar And Truhlar Attys QUALIFIED74Stephen Shaw
1015Maria P IturbideFrance2025-04-20Printing Dimensions NEW97Ivan Magalhaes
1016Misaki D KuskoAustralia2025-04-02Morlong Associates QUALIFIED95Onyama Limba
1017Deepesh L ShinkoAustralia2025-04-29Feiner Bros PROPOSAL40Ioni Bowcher
1018Emily S WieserAustralia2025-04-30Truhlar And Truhlar Attys QUALIFIED22Ioni Bowcher
1019Alejandro D SergiRussia2025-04-05Rangoni Of Florence NEGOTIATION30Ioni Bowcher
1020Munro Q FerenczGermany2025-04-27Dorl, James J Esq QUALIFIED22Xuxue Feng
1021Smith Z DoeIndia2025-04-09Morlong Associates QUALIFIED6Xuxue Feng
1022Jennifer Q NickaCanada2025-04-27Truhlar And Truhlar Attys RENEWAL1Stephen Shaw
1023Nicolas J WhobreyFrance2025-04-18Commercial Press PROPOSAL54Ivan Magalhaes
1024Chavez M StockhamFrance2025-04-19Benton, John B Jr UNQUALIFIED39Anna Fali
1025Morrow W FollerGermany2025-04-27Printing Dimensions NEGOTIATION14Elwin Sharvill
1026Rodrigues T CaldareraArgentina2025-04-25Feltz Printing Service NEW5Ioni Bowcher
1027Isabel I RulapaughRussia2025-04-15Rangoni Of Florence QUALIFIED38Onyama Limba
1028Darci E FlosiSpain2025-04-21King, Christopher A Esq RENEWAL68Anna Fali
1029Jefferson X PaprockiUnited Kingdom2025-04-09Buckley Miller Wright UNQUALIFIED11Anna Fali
1030Murillo P DarakjyItaly2025-04-09Dorl, James J Esq UNQUALIFIED14Xuxue Feng
1031Izzy Y RimGermany2025-04-03Dorl, James J Esq RENEWAL69Ioni Bowcher
1032Aruna L GillianJapan2025-04-29Chanay, Jeffrey A Esq NEGOTIATION96Amy Elsner
1033Octavia R MaletBrazil2025-04-27Morlong Associates NEGOTIATION13Amy Elsner
1034Jefferson G KolmetzRussia2025-04-14Buckley Miller Wright NEW67Elwin Sharvill
1035Leon E DoeBrazil2025-04-04Truhlar And Truhlar Attys UNQUALIFIED39Ivan Magalhaes
1036Jones G CampainArgentina2025-04-27Commercial Press NEW91Elwin Sharvill
1037Mujtaba R FerenczBrazil2025-04-26Chemel, James L Cpa RENEWAL98Ioni Bowcher
1038Faith K ButtGermany2025-04-09Rousseaux, Michael Esq QUALIFIED17Ivan Magalhaes
1039Munro D MaletCanada2025-04-12Dorl, James J Esq RENEWAL86Ivan Magalhaes
1040Murillo Y VenereGermany2025-04-08Feiner Bros RENEWAL77Ivan Magalhaes
1041Tony Y IturbideIndia2025-04-28Chemel, James L Cpa PROPOSAL88Stephen Shaw
1042Faith H VocelkaRussia2025-04-18Chapman, Ross E Esq NEGOTIATION63Stephen Shaw
1043Aruna Z MarrierCanada2025-04-16Benton, John B Jr PROPOSAL14Elwin Sharvill
1044David H StockhamCanada2025-04-03Chemel, James L Cpa NEW40Onyama Limba
1045Francesco J WaycottAustralia2025-04-05Truhlar And Truhlar Attys UNQUALIFIED75Ioni Bowcher
1046Leon L BowleyArgentina2025-04-10Truhlar And Truhlar Attys NEGOTIATION66Ioni Bowcher
1047Greenwood G VenereBrazil2025-04-06Morlong Associates QUALIFIED58Stephen Shaw
1048Costa D ButtFrance2025-04-23Chapman, Ross E Esq UNQUALIFIED74Elwin Sharvill
1049Juan V NestleArgentina2025-04-14Dorl, James J Esq RENEWAL50Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Darci E FollerUnited KingdomAsiya Javayant UNQUALIFIED
Munro B KuskoArgentinaAnna Fali UNQUALIFIED
Ashley J RutaItalyAnna Fali UNQUALIFIED
Smith Q WieserCanadaIoni Bowcher PROPOSAL
Deepesh L WieserIndiaStephen Shaw QUALIFIED
Aika G KolmetzItalyOnyama Limba RENEWAL
Mujtaba L PerinCanadaElwin Sharvill RENEWAL
Misaki X SchemmerBrazilXuxue Feng NEGOTIATION
Izzy W ChuiSpainBernardo Dominic UNQUALIFIED
Emily A ButtGermanyIvan Magalhaes UNQUALIFIED
Alejandro L StockhamArgentinaOnyama Limba NEW
Wickens Y PoquetteGermanyAsiya Javayant NEGOTIATION
Ivar J CampainAustraliaBernardo Dominic NEGOTIATION
Jefferson I ShinkoAustraliaAsiya Javayant PROPOSAL
Claire N ChuiArgentinaAsiya Javayant PROPOSAL
Octavia Q GlickUnited KingdomXuxue Feng QUALIFIED
James G RimSpainIvan Magalhaes NEGOTIATION
Izzy I FlosiIndiaAsiya Javayant QUALIFIED
Ivar Y PaprockiUnited KingdomIoni Bowcher QUALIFIED
Aruna U SaylorsBrazilBernardo Dominic NEGOTIATION
Cody F VocelkaAustraliaAsiya Javayant QUALIFIED
Nicolas F VenereRussiaAmy Elsner NEGOTIATION
Munro I InouyeItalyStephen Shaw RENEWAL
Jones M VenereSpainXuxue Feng UNQUALIFIED
Juan E FollerRussiaOnyama Limba PROPOSAL
Jennifer Q ShinkoRussiaElwin Sharvill NEGOTIATION
Maria M GillianIndiaIoni Bowcher QUALIFIED
Misaki L SaylorsIndiaXuxue Feng NEW
Arvin Q KolmetzItalyXuxue Feng PROPOSAL
Arvin O ButtItalyAsiya Javayant PROPOSAL
Munro H BowleyItalyElwin Sharvill PROPOSAL
Darci G MarrierBrazilElwin Sharvill NEW
Antonio Y KuskoCanadaAsiya Javayant RENEWAL
David O RulapaughJapanBernardo Dominic QUALIFIED
Ricardo T StockhamItalyAmy Elsner NEGOTIATION
David H VenereIndiaStephen Shaw UNQUALIFIED
Mujtaba V MorascaCanadaElwin Sharvill QUALIFIED
Ashley Q DilliardBrazilStephen Shaw PROPOSAL
Izzy S AmigonRussiaIoni Bowcher RENEWAL
Aika O GillianIndiaXuxue Feng QUALIFIED
Clifford O KolmetzItalyAnna Fali NEGOTIATION
Mujtaba P ShinkoIndiaStephen Shaw RENEWAL
Aika M MaletSpainOnyama Limba PROPOSAL
Chavez F ButtSpainBernardo Dominic QUALIFIED
David M ChuiItalyIvan Magalhaes UNQUALIFIED
Mujtaba Q MorascaJapanXuxue Feng PROPOSAL
Adams G WieserBrazilXuxue Feng UNQUALIFIED
Kaitlin M MorascaItalyIoni Bowcher QUALIFIED
Alejandro L RulapaughArgentinaElwin Sharvill NEW
Murillo T OstroskyFranceBernardo Dominic NEGOTIATION
Frozen Columns
Name
Isabel T Flosi
James O Tollner
Sinclair M Poquette
Mujtaba V Waycott
Murillo E Amigon
Wickens L Doe
Maria P Butt
Chavez K Iturbide
Greenwood C Butt
Kaitlin Y Nestle
Leja O Shinko
Jones Q Figeroa
David V Rulapaugh
Ashley E Figeroa
Leja Q Nestle
Silvio Z Maclead
Jones J Bowley
Aditya Q Whobrey
Mayumi P Glick
Rodrigues T Kusko
David D Sergi
Stacey T Rulapaugh
Rodrigues Q Briddick
Leja H Perin
Isabel L Albares
Aditya Q Nicka
Aika L Wieser
Mayumi L Stenseth
David F Ferencz
Claire R Rulapaugh
Aditya K Rulapaugh
Rodrigues D Inouye
Jefferson M Schemmer
Aika D Chui
Aika W Slusarski
Faith F Inouye
Maisha V Whobrey
Aditya B Gaucho
Ivar Q Dilliard
Antonio U Vocelka
Smith W Darakjy
Mujtaba O Poquette
Cody N Malet
Stacey X Foller
Tony R Caldarera
Maria H Sergi
Emily G Albares
Smith F Butt
Maria V Nestle
Darci U Amigon
IdCountryDate
1000India2025-04-13
1001Australia2025-04-10
1002Spain2025-04-05
1003Spain2025-04-20
1004United Kingdom2025-04-25
1005Russia2025-04-15
1006Argentina2025-04-22
1007Spain2025-04-28
1008France2025-04-21
1009India2025-04-19
1010Russia2025-04-25
1011Japan2025-04-17
1012Canada2025-04-13
1013Canada2025-04-18
1014Russia2025-04-04
1015Canada2025-04-27
1016Japan2025-04-06
1017Germany2025-04-05
1018Brazil2025-04-18
1019United Kingdom2025-04-19
1020Russia2025-04-22
1021Brazil2025-04-05
1022Spain2025-04-19
1023Canada2025-04-26
1024Italy2025-04-15
1025United Kingdom2025-04-05
1026Germany2025-04-10
1027France2025-04-18
1028Canada2025-04-13
1029United Kingdom2025-04-04
1030Italy2025-04-12
1031United Kingdom2025-04-16
1032Japan2025-04-26
1033Brazil2025-04-14
1034Japan2025-04-20
1035Brazil2025-04-18
1036Argentina2025-04-13
1037France2025-04-04
1038Italy2025-04-26
1039Argentina2025-04-24
1040Brazil2025-04-29
1041Spain2025-04-05
1042Japan2025-04-11
1043Argentina2025-04-07
1044France2025-04-25
1045Brazil2025-04-05
1046Japan2025-04-15
1047Germany2025-04-18
1048Australia2025-04-02
1049Australia2025-04-15

On-Demand Data

NameIdCountryDate
Jefferson S Ostrosky1000Spain2025-04-17
Nicolas Y Rulapaugh1001Germany2025-04-18
Ashley O Caldarera1002Japan2025-04-30
Greenwood B Kolmetz1003Italy2025-04-29
Alejandro R Bolognia1004Russia2025-04-05
Morrow M Perin1005Russia2025-04-30
Octavia G Oldroyd1006Japan2025-04-15
Antonio Z Nestle1007Argentina2025-04-18
Kaitlin P Gaucho1008Italy2025-04-21
Antonio F Garufi1009Canada2025-04-07
Arvin B Amigon1010Russia2025-04-20
Antonio G Inouye1011Russia2025-04-07
Deepesh I Vocelka1012Russia2025-04-02
Nicolas X Doe1013Australia2025-04-26
Alejandro C Morasca1014Brazil2025-04-30
Morrow Y Sergi1015Brazil2025-04-05
Deepesh J Bolognia1016Japan2025-04-03
Leja P Iturbide1017Germany2025-04-28
Misaki Y Briddick1018United Kingdom2025-04-22
Misaki I Paprocki1019Brazil2025-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson X AlbaresFranceIoni Bowcher NEW
Chavez F SergiCanadaAmy Elsner QUALIFIED
Murillo E OldroydAustraliaAsiya Javayant QUALIFIED
Mayumi M SergiFranceAnna Fali UNQUALIFIED
Octavia E WaycottAustraliaIoni Bowcher PROPOSAL
Alejandro Z RoysterRussiaStephen Shaw QUALIFIED
Alejandro P BriddickJapanIoni Bowcher NEGOTIATION
Mayumi Z RutaArgentinaBernardo Dominic UNQUALIFIED
Julie A RulapaughUnited KingdomOnyama Limba RENEWAL
Izzy P CaudySpainIoni Bowcher NEGOTIATION
Clifford G IturbideBrazilIoni Bowcher QUALIFIED
James O ShinkoArgentinaBernardo Dominic PROPOSAL
Kaitlin N WieserGermanyOnyama Limba NEW
Arvin P BologniaArgentinaStephen Shaw RENEWAL
Julie M GlickJapanAnna Fali UNQUALIFIED
Ivar O DilliardFranceIvan Magalhaes NEW
Jennifer T WaycottCanadaXuxue Feng UNQUALIFIED
Adams Z BologniaJapanStephen Shaw PROPOSAL
Faith B VenereIndiaIoni Bowcher NEW
Adams C FlosiSpainAnna Fali PROPOSAL
James Y GillianAustraliaAsiya Javayant NEGOTIATION
Adams O MaletJapanOnyama Limba RENEWAL
Salvatore E SchemmerFranceStephen Shaw PROPOSAL
Jefferson I WhobreyCanadaAmy Elsner QUALIFIED
Clifford H SaylorsUnited KingdomAnna Fali RENEWAL
Juan P VocelkaArgentinaIoni Bowcher UNQUALIFIED
Mayumi I DoeArgentinaAmy Elsner QUALIFIED
Nicolas C FigeroaIndiaXuxue Feng PROPOSAL
Maisha K SaylorsGermanyOnyama Limba NEW
Deepesh C AlbaresIndiaStephen Shaw QUALIFIED
Ivar E PoquetteAustraliaAmy Elsner PROPOSAL
Arvin T PaprockiCanadaBernardo Dominic NEGOTIATION
Alejandro T WieserGermanyAsiya Javayant PROPOSAL
Claire E WhobreyArgentinaOnyama Limba PROPOSAL
Sinclair H GarufiAustraliaBernardo Dominic PROPOSAL
Greenwood V PoquetteJapanAnna Fali UNQUALIFIED
Wickens Q GlickRussiaXuxue Feng RENEWAL
Mujtaba D VenereBrazilAnna Fali PROPOSAL
Jennifer A SergiFranceStephen Shaw QUALIFIED
Smith Q PerinIndiaIoni Bowcher 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>