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
Ricardo W PerinFranceIoni Bowcher NEW
Ashley Q GlickCanadaIoni Bowcher UNQUALIFIED
Leja I KolmetzAustraliaStephen Shaw NEGOTIATION
Sinclair R VenereIndiaAnna Fali NEW
Leon N RimCanadaAsiya Javayant PROPOSAL
Clifford W RimCanadaElwin Sharvill UNQUALIFIED
Leon B MorascaArgentinaStephen Shaw PROPOSAL
Adams O MaletArgentinaAmy Elsner NEW
Murillo V FerenczAustraliaElwin Sharvill QUALIFIED
Kadeem D KolmetzAustraliaIoni Bowcher UNQUALIFIED
Claire A ButtItalyIoni Bowcher QUALIFIED
Wickens T FlosiSpainAnna Fali PROPOSAL
Jennifer Q GillianArgentinaStephen Shaw NEW
Jefferson Z ShinkoAustraliaAnna Fali UNQUALIFIED
Aditya G WaycottItalyIoni Bowcher NEGOTIATION
Morrow P CampainSpainIvan Magalhaes UNQUALIFIED
Ivar I SergiIndiaBernardo Dominic PROPOSAL
Jennifer B NestleUnited KingdomElwin Sharvill UNQUALIFIED
Faith M FollerBrazilXuxue Feng UNQUALIFIED
Leja S ButtAustraliaIvan Magalhaes UNQUALIFIED
Izzy O SaylorsItalyXuxue Feng QUALIFIED
Darci L RutaBrazilAmy Elsner QUALIFIED
Kaitlin E DilliardBrazilOnyama Limba UNQUALIFIED
Ivar J DilliardArgentinaIoni Bowcher NEGOTIATION
Juan W FlosiCanadaAsiya Javayant NEW
Jefferson E TollnerJapanAmy Elsner NEW
Morrow L CaudyFranceAmy Elsner NEW
Maria M FlosiIndiaIvan Magalhaes UNQUALIFIED
Tony R SergiJapanAsiya Javayant UNQUALIFIED
Maria M ShinkoArgentinaStephen Shaw QUALIFIED
Izzy P SchemmerBrazilBernardo Dominic RENEWAL
Sinclair C PoquetteFranceAnna Fali PROPOSAL
Deepesh U FigeroaSpainStephen Shaw UNQUALIFIED
Aruna K OldroydJapanStephen Shaw QUALIFIED
Mayumi Q WhobreyItalyOnyama Limba PROPOSAL
Francesco C StockhamRussiaAmy Elsner RENEWAL
Alejandro R BriddickUnited KingdomAmy Elsner NEGOTIATION
Clifford N FollerItalyIvan Magalhaes UNQUALIFIED
Cody Q ShinkoItalyIoni Bowcher PROPOSAL
Salvatore U RoysterIndiaBernardo Dominic NEW
Darci M FigeroaFranceAsiya Javayant NEW
Leja Y PerinCanadaStephen Shaw QUALIFIED
Ivar P AmigonUnited KingdomElwin Sharvill PROPOSAL
Adams J DoeFranceBernardo Dominic PROPOSAL
Munro I ShinkoSpainStephen Shaw NEGOTIATION
Wickens M MacleadFranceAsiya Javayant PROPOSAL
Mayumi D MaletCanadaElwin Sharvill NEGOTIATION
Jeanfrancois D MaletFranceAmy Elsner QUALIFIED
Juan D RutaItalyIoni Bowcher PROPOSAL
Antonio M RutaUnited KingdomBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leon G VenereAustraliaStephen Shaw RENEWAL
Alejandro W IturbideRussiaAsiya Javayant PROPOSAL
Jefferson D RutaSpainElwin Sharvill PROPOSAL
Jefferson Y MaletJapanOnyama Limba NEW
Maria V ShinkoItalyAmy Elsner NEGOTIATION
Ivar V SaylorsRussiaBernardo Dominic PROPOSAL
Silvio H SchemmerRussiaIoni Bowcher QUALIFIED
Ivar W MacleadCanadaAmy Elsner UNQUALIFIED
Arvin S KolmetzRussiaAsiya Javayant NEGOTIATION
James H MorascaRussiaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya G MarrierUnited Kingdom2026-08-09Rousseaux, Michael Esq RENEWAL4Ivan Magalhaes
1001Cody P PoquetteSpain2026-08-21Feltz Printing Service UNQUALIFIED97Xuxue Feng
1002Antonio W RulapaughUnited Kingdom2026-07-25Printing Dimensions NEW51Xuxue Feng
1003Ashley X StockhamJapan2026-08-07Feltz Printing Service UNQUALIFIED59Xuxue Feng
1004Ricardo L GlickFrance2026-07-29Commercial Press PROPOSAL73Bernardo Dominic
1005Leja D GarufiRussia2026-08-08Chemel, James L Cpa PROPOSAL63Elwin Sharvill
1006Octavia B SergiJapan2026-08-19King, Christopher A Esq NEW98Xuxue Feng
1007Isabel D ShinkoArgentina2026-07-29King, Christopher A Esq NEGOTIATION53Stephen Shaw
1008Smith Q WieserAustralia2026-07-25Benton, John B Jr NEW58Onyama Limba
1009Izzy S TollnerCanada2026-08-04Rangoni Of Florence RENEWAL15Elwin Sharvill
1010Jennifer F AlbaresAustralia2026-08-04Commercial Press QUALIFIED77Onyama Limba
1011Aika Q WieserCanada2026-08-13King, Christopher A Esq NEW42Xuxue Feng
1012Sinclair Z GauchoJapan2026-07-30Dorl, James J Esq RENEWAL29Bernardo Dominic
1013Isabel I FigeroaBrazil2026-08-04Chemel, James L Cpa NEW53Xuxue Feng
1014Aruna S IturbideRussia2026-08-06Buckley Miller Wright PROPOSAL25Amy Elsner
1015Octavia J StockhamJapan2026-08-01Benton, John B Jr UNQUALIFIED64Asiya Javayant
1016Isabel F SlusarskiJapan2026-07-31Feltz Printing Service NEW44Onyama Limba
1017Aruna E OstroskyBrazil2026-07-30Printing Dimensions NEW99Xuxue Feng
1018Jennifer G GarufiBrazil2026-08-17Morlong Associates QUALIFIED64Xuxue Feng
1019Wickens M SergiGermany2026-08-02Benton, John B Jr RENEWAL47Ioni Bowcher
1020James A ShinkoArgentina2026-07-24Morlong Associates RENEWAL50Ioni Bowcher
1021Maria M VenereSpain2026-08-02Buckley Miller Wright PROPOSAL65Anna Fali
1022Leon Y DoeUnited Kingdom2026-08-06Printing Dimensions NEW12Asiya Javayant
1023Mujtaba L KolmetzSpain2026-08-07Feiner Bros RENEWAL70Onyama Limba
1024David J GauchoRussia2026-07-31Commercial Press NEW52Asiya Javayant
1025Francesco A VenereGermany2026-08-17Feiner Bros NEW9Stephen Shaw
1026Clifford A RulapaughGermany2026-08-01Dorl, James J Esq PROPOSAL27Ioni Bowcher
1027Julie M FollerGermany2026-08-02Commercial Press NEW56Stephen Shaw
1028Aika R GauchoItaly2026-07-23Benton, John B Jr NEW90Ivan Magalhaes
1029David M VocelkaSpain2026-08-14Benton, John B Jr UNQUALIFIED94Bernardo Dominic
1030David X FerenczItaly2026-08-15Rousseaux, Michael Esq RENEWAL12Ivan Magalhaes
1031Johnson X BologniaArgentina2026-08-04Printing Dimensions NEW35Elwin Sharvill
1032Ricardo Y CaudyCanada2026-07-24Rangoni Of Florence QUALIFIED92Ivan Magalhaes
1033Adams D MarrierItaly2026-08-12King, Christopher A Esq PROPOSAL65Elwin Sharvill
1034Sinclair A BowleyCanada2026-08-09Buckley Miller Wright PROPOSAL89Elwin Sharvill
1035Deepesh Z FerenczFrance2026-08-14Rangoni Of Florence RENEWAL40Bernardo Dominic
1036Murillo B FerenczBrazil2026-08-19Chemel, James L Cpa UNQUALIFIED42Asiya Javayant
1037James Y AlbaresCanada2026-08-01Rousseaux, Michael Esq UNQUALIFIED73Xuxue Feng
1038Johnson R RimJapan2026-08-20Dorl, James J Esq RENEWAL18Ivan Magalhaes
1039Aika M AlbaresUnited Kingdom2026-07-28Commercial Press NEGOTIATION14Anna Fali
1040Ashley H DarakjyFrance2026-07-25Rangoni Of Florence NEW18Bernardo Dominic
1041Nicolas K PaprockiBrazil2026-08-08Truhlar And Truhlar Attys QUALIFIED45Bernardo Dominic
1042Octavia F AlbaresGermany2026-08-18Benton, John B Jr RENEWAL75Xuxue Feng
1043Jeanfrancois H SergiSpain2026-07-23Buckley Miller Wright QUALIFIED8Amy Elsner
1044Salvatore N KolmetzFrance2026-08-16Dorl, James J Esq RENEWAL38Elwin Sharvill
1045Adams Q SchemmerArgentina2026-08-01Truhlar And Truhlar Attys QUALIFIED31Xuxue Feng
1046Murillo S ButtFrance2026-07-23Rangoni Of Florence NEGOTIATION54Bernardo Dominic
1047Wickens B FlosiCanada2026-08-16Chemel, James L Cpa RENEWAL77Amy Elsner
1048Misaki U ButtItaly2026-07-28King, Christopher A Esq NEW16Bernardo Dominic
1049Aika I MarrierAustralia2026-07-25Dorl, James J Esq PROPOSAL38Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
James K GauchoGermanyIvan Magalhaes NEGOTIATION
Sinclair L DilliardItalyXuxue Feng PROPOSAL
Leja G RutaJapanIoni Bowcher RENEWAL
Aruna N CaldareraCanadaAsiya Javayant RENEWAL
Smith L VenereUnited KingdomAsiya Javayant NEW
Clifford T WaycottIndiaStephen Shaw NEGOTIATION
Emily Y RutaBrazilAmy Elsner NEGOTIATION
Darci U GlickCanadaBernardo Dominic UNQUALIFIED
Misaki R AmigonBrazilStephen Shaw UNQUALIFIED
Aruna Q RulapaughRussiaStephen Shaw RENEWAL
Tony J RoysterIndiaStephen Shaw NEW
Murillo Y VocelkaGermanyElwin Sharvill QUALIFIED
Cody N SlusarskiRussiaStephen Shaw UNQUALIFIED
Jefferson F ButtItalyIvan Magalhaes NEW
Mujtaba Y MarrierGermanyElwin Sharvill NEGOTIATION
Emily H WieserArgentinaIvan Magalhaes NEW
Johnson U StockhamItalyAsiya Javayant QUALIFIED
Munro Q OldroydFranceAmy Elsner QUALIFIED
Cody V BologniaGermanyBernardo Dominic NEW
Francesco C CampainJapanAsiya Javayant NEW
Jennifer S FerenczIndiaAmy Elsner NEW
Tony S WaycottGermanyIoni Bowcher PROPOSAL
Jefferson L NickaCanadaAnna Fali PROPOSAL
Murillo N MarrierUnited KingdomAsiya Javayant PROPOSAL
David Y ButtIndiaStephen Shaw UNQUALIFIED
Costa Y DarakjyRussiaStephen Shaw NEGOTIATION
Kaitlin L BowleySpainAnna Fali PROPOSAL
Jones N RoysterIndiaAmy Elsner NEGOTIATION
Jones L GarufiSpainAmy Elsner RENEWAL
Arvin Y NestleAustraliaStephen Shaw NEW
Adams O RimGermanyBernardo Dominic QUALIFIED
James K FlosiUnited KingdomOnyama Limba UNQUALIFIED
Emily Y DarakjyAustraliaIvan Magalhaes PROPOSAL
Maisha J MaletGermanyAmy Elsner QUALIFIED
Antonio B FerenczCanadaXuxue Feng QUALIFIED
Maria V MaletIndiaStephen Shaw NEGOTIATION
Stacey Z VenereFranceAnna Fali PROPOSAL
Jeanfrancois F KolmetzBrazilBernardo Dominic RENEWAL
Alejandro E BowleyItalyOnyama Limba NEW
Darci C SaylorsAustraliaIoni Bowcher UNQUALIFIED
Faith Q MacleadFranceIoni Bowcher UNQUALIFIED
Murillo D MacleadGermanyIoni Bowcher RENEWAL
Misaki R AmigonRussiaElwin Sharvill NEW
Tony T ButtRussiaElwin Sharvill RENEWAL
Mayumi A RimArgentinaElwin Sharvill QUALIFIED
Izzy W StensethBrazilBernardo Dominic PROPOSAL
Izzy B InouyeJapanAsiya Javayant RENEWAL
Aika F GlickCanadaBernardo Dominic RENEWAL
Ricardo M MacleadAustraliaStephen Shaw PROPOSAL
Aika E DilliardSpainBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Juan I Perin
Jones F Butt
Mujtaba G Garufi
Ashley Q Maclead
Julie P Kolmetz
Ivar A Flosi
Francesco N Rulapaugh
Alejandro N Slusarski
Leja D Whobrey
Johnson U Perin
Mujtaba H Dilliard
Salvatore M Ruta
Leon Q Foller
Adams Q Royster
Deepesh C Royster
Ivar W Morasca
Francesco T Shinko
Alejandro Z Kusko
Antonio F Dilliard
Darci C Oldroyd
Francesco V Iturbide
Kaitlin H Glick
Johnson J Malet
Stacey L Shinko
Arvin R Foller
Octavia N Garufi
Leon R Iturbide
Isabel G Schemmer
Leja E Iturbide
Izzy P Ruta
Isabel G Wieser
Chavez U Royster
Claire F Sergi
Silvio B Bowley
Izzy I Butt
Jennifer V Albares
Deepesh I Royster
Kadeem H Paprocki
Mayumi Q Bolognia
Izzy R Stockham
Kaitlin P Stenseth
Mujtaba S Wieser
Darci Z Albares
Misaki G Gaucho
Francesco F Kusko
Francesco R Iturbide
David J Flosi
Arvin J Foller
Aika U Tollner
Rodrigues G Slusarski
IdCountryDate
1000Japan2026-08-06
1001Argentina2026-08-15
1002Russia2026-08-04
1003United Kingdom2026-08-15
1004Spain2026-07-24
1005Canada2026-08-12
1006Spain2026-08-11
1007France2026-08-20
1008Canada2026-07-31
1009Canada2026-07-27
1010France2026-07-27
1011Japan2026-08-18
1012Argentina2026-07-30
1013Italy2026-08-14
1014Argentina2026-08-05
1015Argentina2026-08-17
1016Argentina2026-08-04
1017Japan2026-08-17
1018Germany2026-08-16
1019Spain2026-08-18
1020France2026-08-07
1021Australia2026-08-13
1022Russia2026-08-08
1023Russia2026-07-31
1024France2026-07-23
1025Brazil2026-07-27
1026Canada2026-07-23
1027Japan2026-08-01
1028India2026-08-10
1029Italy2026-08-11
1030India2026-08-11
1031Argentina2026-08-12
1032Canada2026-08-20
1033Canada2026-08-14
1034Spain2026-08-18
1035France2026-08-15
1036Russia2026-08-08
1037Russia2026-08-08
1038Italy2026-08-13
1039Russia2026-08-20
1040Australia2026-07-31
1041Italy2026-07-31
1042Brazil2026-08-11
1043Russia2026-08-18
1044France2026-08-11
1045Russia2026-07-29
1046Canada2026-08-01
1047Italy2026-07-28
1048India2026-08-20
1049France2026-08-02

On-Demand Data

NameIdCountryDate
Morrow P Albares1000France2026-08-15
Octavia Y Iturbide1001Italy2026-08-06
Munro P Venere1002Russia2026-08-02
Kadeem S Malet1003Argentina2026-08-15
Jefferson O Whobrey1004Spain2026-07-23
Cody M Glick1005Australia2026-07-28
Maria K Amigon1006Australia2026-07-25
Aika Q Morasca1007Germany2026-07-29
Kaitlin Y Iturbide1008Argentina2026-08-18
Octavia P Paprocki1009Argentina2026-08-11
Chavez U Schemmer1010United Kingdom2026-08-15
Ashley O Dilliard1011Australia2026-07-30
Ashley M Shinko1012Australia2026-08-08
Jennifer X Amigon1013Japan2026-07-31
Stacey P Glick1014Brazil2026-08-13
Octavia H Ferencz1015Germany2026-08-11
Salvatore Y Foller1016Argentina2026-08-10
Alejandro K Dilliard1017India2026-08-08
Octavia E Maclead1018India2026-07-29
Isabel Y Butt1019India2026-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria X BriddickFranceAmy Elsner QUALIFIED
Izzy W CampainGermanyIvan Magalhaes QUALIFIED
Ricardo Y RoysterCanadaElwin Sharvill PROPOSAL
Munro G PaprockiIndiaXuxue Feng NEGOTIATION
Greenwood G KolmetzSpainElwin Sharvill RENEWAL
Misaki V SaylorsIndiaBernardo Dominic NEW
Ashley R GillianFranceIvan Magalhaes NEW
Murillo H MacleadUnited KingdomXuxue Feng UNQUALIFIED
Octavia S MaletBrazilOnyama Limba NEW
Aika V RulapaughFranceBernardo Dominic QUALIFIED
Kaitlin G SlusarskiIndiaBernardo Dominic NEGOTIATION
Salvatore I RulapaughFranceAsiya Javayant NEGOTIATION
Rodrigues G CaldareraIndiaElwin Sharvill RENEWAL
Wickens E StensethSpainAsiya Javayant NEW
James R ChuiBrazilOnyama Limba QUALIFIED
Adams P WhobreyRussiaAnna Fali PROPOSAL
Maria W IturbideArgentinaIoni Bowcher NEW
Deepesh F WhobreyCanadaOnyama Limba NEW
Juan O ButtGermanyIvan Magalhaes UNQUALIFIED
Ricardo V InouyeJapanAmy Elsner UNQUALIFIED
Costa B WhobreyIndiaStephen Shaw UNQUALIFIED
Julie C PoquetteIndiaBernardo Dominic UNQUALIFIED
Greenwood Y WieserItalyElwin Sharvill PROPOSAL
Leja E GauchoGermanyAnna Fali PROPOSAL
James B ChuiItalyOnyama Limba NEW
Kadeem R WaycottGermanyBernardo Dominic PROPOSAL
Silvio Y FlosiSpainElwin Sharvill UNQUALIFIED
Misaki H BowleyGermanyIoni Bowcher RENEWAL
Antonio F WhobreyArgentinaIvan Magalhaes NEGOTIATION
Juan P AlbaresBrazilOnyama Limba PROPOSAL
Morrow F BriddickUnited KingdomOnyama Limba NEW
Greenwood X FollerGermanyAsiya Javayant UNQUALIFIED
Mayumi W RulapaughJapanOnyama Limba RENEWAL
Izzy R VenereFranceIvan Magalhaes NEW
Clifford M TollnerSpainStephen Shaw PROPOSAL
Maria C RutaCanadaOnyama Limba PROPOSAL
Clifford S MarrierBrazilXuxue Feng NEW
Salvatore V DarakjyItalyIvan Magalhaes NEW
Alejandro J WaycottUnited KingdomIvan Magalhaes NEW
Ivar N GauchoRussiaIvan Magalhaes UNQUALIFIED

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