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
Aruna X SergiArgentinaStephen Shaw NEW
Arvin S StensethIndiaBernardo Dominic PROPOSAL
Deepesh D GarufiAustraliaBernardo Dominic NEW
Isabel I KuskoCanadaIvan Magalhaes QUALIFIED
Darci M PerinJapanIvan Magalhaes QUALIFIED
Johnson H MacleadJapanXuxue Feng QUALIFIED
Salvatore V FerenczAustraliaOnyama Limba NEW
Sinclair R GarufiItalyOnyama Limba UNQUALIFIED
Ashley S MaletGermanyAmy Elsner QUALIFIED
Mujtaba F FollerIndiaOnyama Limba RENEWAL
Greenwood B RulapaughIndiaAsiya Javayant NEGOTIATION
Antonio X RutaUnited KingdomAmy Elsner UNQUALIFIED
Arvin W BowleyBrazilIvan Magalhaes RENEWAL
Mujtaba N StockhamIndiaXuxue Feng RENEWAL
Jones B AmigonArgentinaBernardo Dominic UNQUALIFIED
Misaki K OstroskyBrazilStephen Shaw PROPOSAL
Morrow V ButtAustraliaStephen Shaw PROPOSAL
David S GillianJapanIoni Bowcher UNQUALIFIED
Ricardo K IturbideGermanyAsiya Javayant NEW
Octavia X InouyeAustraliaElwin Sharvill RENEWAL
Munro S DilliardCanadaOnyama Limba RENEWAL
Munro S WieserJapanStephen Shaw NEGOTIATION
Costa A PoquetteUnited KingdomStephen Shaw PROPOSAL
Emily P StensethJapanElwin Sharvill QUALIFIED
Maisha D KuskoJapanAnna Fali PROPOSAL
Johnson F GarufiJapanIoni Bowcher NEW
Costa F SergiJapanAnna Fali NEGOTIATION
Smith Z WhobreyIndiaIoni Bowcher UNQUALIFIED
Sinclair D RoysterCanadaIvan Magalhaes PROPOSAL
Tony W StockhamSpainIvan Magalhaes QUALIFIED
Maria T SlusarskiSpainXuxue Feng NEGOTIATION
Mujtaba H MorascaGermanyStephen Shaw UNQUALIFIED
Adams F DarakjySpainOnyama Limba UNQUALIFIED
Rodrigues A PaprockiRussiaAnna Fali NEGOTIATION
Ashley L SergiIndiaOnyama Limba UNQUALIFIED
Cody U IturbideArgentinaAsiya Javayant NEW
Faith A InouyeJapanAnna Fali QUALIFIED
Claire T StensethArgentinaElwin Sharvill QUALIFIED
Maisha P CampainArgentinaAnna Fali NEW
Clifford U VenereArgentinaBernardo Dominic PROPOSAL
Julie X SlusarskiFranceOnyama Limba PROPOSAL
Francesco Y AmigonAustraliaBernardo Dominic UNQUALIFIED
Nicolas A FerenczUnited KingdomElwin Sharvill NEW
Isabel V InouyeJapanBernardo Dominic UNQUALIFIED
Munro J PerinItalyStephen Shaw RENEWAL
Arvin F MacleadBrazilStephen Shaw PROPOSAL
Murillo S SaylorsBrazilStephen Shaw NEW
Johnson Q SlusarskiJapanIvan Magalhaes PROPOSAL
Arvin I SergiArgentinaIvan Magalhaes NEGOTIATION
Faith Q PaprockiRussiaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Deepesh F KolmetzBrazilStephen Shaw NEGOTIATION
Jeanfrancois T AmigonItalyAsiya Javayant RENEWAL
Jefferson E OldroydGermanyOnyama Limba NEW
Silvio P MaletSpainAmy Elsner QUALIFIED
Maisha B SaylorsCanadaAnna Fali UNQUALIFIED
Alejandro Z GauchoGermanyAnna Fali QUALIFIED
Jennifer H ChuiCanadaXuxue Feng UNQUALIFIED
Maria V GauchoJapanElwin Sharvill RENEWAL
Johnson W SaylorsUnited KingdomAmy Elsner NEW
Stacey I SlusarskiItalyAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony P MaletSpain2026-07-02Rousseaux, Michael Esq QUALIFIED84Ivan Magalhaes
1001Ivar K SergiRussia2026-06-26King, Christopher A Esq UNQUALIFIED6Bernardo Dominic
1002Jones M CaldareraCanada2026-07-15Commercial Press PROPOSAL6Stephen Shaw
1003Sinclair D PaprockiFrance2026-07-06Benton, John B Jr PROPOSAL19Stephen Shaw
1004Smith R MaletGermany2026-06-24Dorl, James J Esq NEW78Stephen Shaw
1005Leon Z AmigonArgentina2026-07-15Benton, John B Jr QUALIFIED15Anna Fali
1006Sinclair T WieserAustralia2026-07-04King, Christopher A Esq NEW76Xuxue Feng
1007Juan G BologniaCanada2026-07-17Chapman, Ross E Esq PROPOSAL22Anna Fali
1008Morrow Q AlbaresGermany2026-07-16Buckley Miller Wright RENEWAL96Stephen Shaw
1009Silvio F FlosiUnited Kingdom2026-07-10Dorl, James J Esq RENEWAL61Ioni Bowcher
1010Maria D RulapaughGermany2026-07-07Morlong Associates UNQUALIFIED36Ivan Magalhaes
1011Maisha H AlbaresCanada2026-06-26Commercial Press PROPOSAL87Ivan Magalhaes
1012Maisha P WhobreyFrance2026-06-29Rousseaux, Michael Esq PROPOSAL15Bernardo Dominic
1013Darci S GarufiRussia2026-06-30Chapman, Ross E Esq NEGOTIATION8Ioni Bowcher
1014Stacey X DilliardFrance2026-07-05Morlong Associates NEGOTIATION50Onyama Limba
1015Aika O PerinRussia2026-06-22Printing Dimensions PROPOSAL24Ioni Bowcher
1016Jefferson C SaylorsUnited Kingdom2026-07-08Benton, John B Jr QUALIFIED35Bernardo Dominic
1017Cody P IturbideUnited Kingdom2026-07-17Morlong Associates UNQUALIFIED82Asiya Javayant
1018Aika B TollnerFrance2026-06-28King, Christopher A Esq QUALIFIED16Ivan Magalhaes
1019Stacey C BriddickItaly2026-07-02Feiner Bros PROPOSAL11Amy Elsner
1020Maria P TollnerSpain2026-06-23Printing Dimensions RENEWAL66Amy Elsner
1021Izzy J DilliardJapan2026-06-29Dorl, James J Esq QUALIFIED16Amy Elsner
1022Aruna Z CaudyItaly2026-07-13Feiner Bros RENEWAL81Ioni Bowcher
1023Jennifer U MaletIndia2026-06-28Feltz Printing Service PROPOSAL21Elwin Sharvill
1024Costa O BologniaBrazil2026-07-01Chanay, Jeffrey A Esq RENEWAL42Onyama Limba
1025Adams B PoquetteArgentina2026-06-25Printing Dimensions RENEWAL65Anna Fali
1026Ashley V PaprockiCanada2026-06-22Commercial Press PROPOSAL13Onyama Limba
1027Misaki R GauchoBrazil2026-06-23Dorl, James J Esq NEGOTIATION46Stephen Shaw
1028Alejandro X TollnerSpain2026-06-20Rangoni Of Florence PROPOSAL74Onyama Limba
1029Mayumi P GlickSpain2026-06-22Dorl, James J Esq PROPOSAL73Anna Fali
1030James R AmigonFrance2026-06-26Morlong Associates QUALIFIED24Anna Fali
1031Jefferson K NickaIndia2026-06-30Feiner Bros NEGOTIATION42Elwin Sharvill
1032Maria K InouyeRussia2026-07-13Printing Dimensions RENEWAL25Ivan Magalhaes
1033Jones W GarufiUnited Kingdom2026-07-10Chapman, Ross E Esq RENEWAL68Bernardo Dominic
1034Deepesh J MaletIndia2026-06-20King, Christopher A Esq NEW15Amy Elsner
1035Deepesh T DoeUnited Kingdom2026-07-06Benton, John B Jr NEW5Elwin Sharvill
1036Morrow D FigeroaAustralia2026-07-10Rangoni Of Florence UNQUALIFIED79Asiya Javayant
1037Mujtaba H MacleadSpain2026-07-17Chapman, Ross E Esq UNQUALIFIED81Amy Elsner
1038Maisha K KuskoSpain2026-06-29Morlong Associates NEGOTIATION92Anna Fali
1039Ivar R TollnerCanada2026-06-22Morlong Associates NEGOTIATION19Anna Fali
1040David A BriddickItaly2026-06-20Morlong Associates NEW56Stephen Shaw
1041Munro H BriddickIndia2026-06-25Feltz Printing Service NEW78Asiya Javayant
1042Aika M FlosiArgentina2026-07-15Feltz Printing Service RENEWAL22Elwin Sharvill
1043Morrow G StensethSpain2026-06-26Dorl, James J Esq RENEWAL67Elwin Sharvill
1044David H WieserItaly2026-06-20Commercial Press NEW44Stephen Shaw
1045Mayumi W SchemmerBrazil2026-07-08Buckley Miller Wright NEW72Anna Fali
1046Faith O OldroydItaly2026-06-29Benton, John B Jr NEGOTIATION68Asiya Javayant
1047Isabel F RulapaughUnited Kingdom2026-07-13Morlong Associates NEW55Ivan Magalhaes
1048Arvin S GarufiBrazil2026-06-26Feiner Bros NEW51Bernardo Dominic
1049Alejandro T PerinUnited Kingdom2026-07-17Rangoni Of Florence UNQUALIFIED96Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Wickens Q NickaArgentinaAnna Fali QUALIFIED
Arvin W WaycottUnited KingdomXuxue Feng PROPOSAL
Isabel C MacleadCanadaAmy Elsner PROPOSAL
Francesco O BologniaSpainBernardo Dominic UNQUALIFIED
Leja H WhobreyIndiaAsiya Javayant NEGOTIATION
Rodrigues V DarakjyGermanyElwin Sharvill PROPOSAL
Jefferson D ChuiIndiaAsiya Javayant NEW
Munro N StensethCanadaAsiya Javayant UNQUALIFIED
Johnson N StockhamArgentinaAmy Elsner NEW
Mujtaba H OstroskyArgentinaIoni Bowcher NEW
Izzy L WieserItalyXuxue Feng UNQUALIFIED
Munro D BriddickIndiaAsiya Javayant NEW
Cody L CaudyRussiaAsiya Javayant NEW
Claire H SchemmerGermanyAsiya Javayant NEW
Claire H SaylorsBrazilElwin Sharvill PROPOSAL
Morrow O SlusarskiRussiaAmy Elsner QUALIFIED
Stacey E PerinGermanyOnyama Limba QUALIFIED
Silvio L BriddickJapanAnna Fali UNQUALIFIED
Maria S CaudyCanadaAnna Fali NEGOTIATION
Clifford V MarrierArgentinaStephen Shaw QUALIFIED
Jennifer H SchemmerSpainElwin Sharvill NEW
Wickens J SchemmerArgentinaStephen Shaw UNQUALIFIED
Stacey Q DarakjySpainOnyama Limba PROPOSAL
Ashley Q GlickArgentinaOnyama Limba RENEWAL
James G WhobreyRussiaIoni Bowcher RENEWAL
Aika N CaudyRussiaIoni Bowcher NEGOTIATION
Maria R BologniaRussiaBernardo Dominic RENEWAL
Francesco M CaudyIndiaIoni Bowcher PROPOSAL
Octavia R WaycottFranceAmy Elsner PROPOSAL
Leja Q PaprockiAustraliaAnna Fali PROPOSAL
Chavez D GillianFranceOnyama Limba NEW
Greenwood B WaycottCanadaAmy Elsner PROPOSAL
Johnson R MaletJapanXuxue Feng PROPOSAL
Morrow P GlickAustraliaStephen Shaw UNQUALIFIED
Ivar Z DilliardSpainStephen Shaw QUALIFIED
Maria J OldroydFranceXuxue Feng NEW
Kadeem G GauchoSpainAmy Elsner NEW
Darci E MacleadUnited KingdomIoni Bowcher PROPOSAL
Ashley U DilliardRussiaElwin Sharvill NEW
Arvin Q GillianBrazilAsiya Javayant NEW
Silvio T SchemmerBrazilXuxue Feng NEGOTIATION
Arvin K GarufiFranceIvan Magalhaes RENEWAL
Leon Z GillianUnited KingdomOnyama Limba NEGOTIATION
Deepesh P SaylorsSpainIvan Magalhaes QUALIFIED
Stacey P OldroydAustraliaStephen Shaw NEW
Jennifer F WieserBrazilAnna Fali NEW
Silvio L PoquetteSpainIoni Bowcher NEGOTIATION
Juan U WhobreyAustraliaIoni Bowcher RENEWAL
Munro L SaylorsItalyStephen Shaw NEGOTIATION
Faith O MaletSpainStephen Shaw UNQUALIFIED
Frozen Columns
Name
James M Malet
David Y Campain
Aditya V Nestle
Kaitlin U Iturbide
Morrow P Slusarski
Leon J Kolmetz
Mayumi X Butt
Mujtaba H Marrier
Morrow T Malet
Leja R Stockham
Emily E Waycott
Smith N Perin
Salvatore D Flosi
James R Dilliard
Faith N Nestle
Antonio K Kolmetz
Isabel B Malet
Ricardo K Whobrey
Isabel X Butt
Cody L Ruta
Isabel S Gillian
Rodrigues E Venere
Aditya W Gaucho
Jones F Butt
Costa R Stockham
Alejandro Y Shinko
Adams X Shinko
Isabel L Kolmetz
Stacey T Doe
Isabel Z Maclead
Rodrigues P Paprocki
Francesco L Caudy
Arvin D Oldroyd
Rodrigues V Nestle
Chavez A Oldroyd
Adams G Maclead
Leja E Iturbide
Costa Q Paprocki
Silvio W Poquette
Leon M Shinko
Claire G Bowley
Arvin P Ferencz
Clifford I Waycott
Jennifer Z Saylors
Wickens W Gaucho
Kadeem T Darakjy
Mayumi K Amigon
Izzy S Whobrey
Julie K Gaucho
Cody Y Schemmer
IdCountryDate
1000Canada2026-06-20
1001Spain2026-07-16
1002Japan2026-06-18
1003France2026-07-17
1004India2026-07-03
1005Japan2026-07-06
1006Canada2026-07-05
1007Japan2026-07-08
1008India2026-07-01
1009Germany2026-07-02
1010Australia2026-07-06
1011Argentina2026-07-02
1012Spain2026-06-18
1013Japan2026-06-25
1014Argentina2026-06-30
1015Russia2026-06-20
1016Japan2026-07-05
1017Australia2026-07-17
1018United Kingdom2026-06-20
1019Russia2026-07-03
1020Spain2026-07-07
1021Australia2026-06-22
1022Russia2026-07-17
1023France2026-07-11
1024United Kingdom2026-07-15
1025Russia2026-07-08
1026Spain2026-07-08
1027Argentina2026-07-12
1028Germany2026-06-20
1029Italy2026-06-18
1030Brazil2026-07-08
1031Brazil2026-06-21
1032Canada2026-07-12
1033Germany2026-06-22
1034Australia2026-06-22
1035United Kingdom2026-07-14
1036Canada2026-07-02
1037Argentina2026-07-08
1038India2026-06-27
1039India2026-06-25
1040India2026-06-20
1041France2026-07-08
1042Russia2026-06-20
1043Brazil2026-06-30
1044France2026-06-21
1045Australia2026-06-27
1046Italy2026-06-29
1047Russia2026-07-11
1048Argentina2026-07-13
1049Italy2026-07-06

On-Demand Data

NameIdCountryDate
Munro Q Kolmetz1000Germany2026-07-07
Darci O Morasca1001Germany2026-06-27
Maisha P Iturbide1002Australia2026-06-19
Salvatore E Butt1003Canada2026-06-20
Izzy V Morasca1004Japan2026-06-19
Rodrigues R Rulapaugh1005Spain2026-07-10
Ashley P Perin1006India2026-06-27
Jeanfrancois Y Foller1007India2026-07-08
Salvatore X Iturbide1008United Kingdom2026-06-18
Adams U Morasca1009Brazil2026-07-06
Misaki J Doe1010Japan2026-07-02
Stacey J Paprocki1011Japan2026-06-19
Munro P Malet1012Argentina2026-06-21
Chavez N Caudy1013Brazil2026-07-07
Morrow B Chui1014Spain2026-07-12
Ivar E Gaucho1015United Kingdom2026-07-10
Alejandro Y Poquette1016Canada2026-06-21
Misaki T Sergi1017France2026-07-04
Arvin S Gillian1018Japan2026-06-28
Juan B Rim1019Russia2026-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire T NickaJapanIvan Magalhaes RENEWAL
Jennifer A KuskoCanadaIoni Bowcher UNQUALIFIED
Julie V NestleAustraliaXuxue Feng NEGOTIATION
Deepesh C DilliardCanadaAnna Fali UNQUALIFIED
Smith F StensethAustraliaAnna Fali RENEWAL
Smith S ButtIndiaIoni Bowcher PROPOSAL
Izzy C OstroskyCanadaXuxue Feng PROPOSAL
Octavia R SlusarskiCanadaIvan Magalhaes UNQUALIFIED
Greenwood E CaudyUnited KingdomIvan Magalhaes NEW
Stacey D CaudyCanadaAsiya Javayant RENEWAL
Mayumi L TollnerCanadaIoni Bowcher UNQUALIFIED
Morrow D MarrierUnited KingdomAnna Fali NEW
Mayumi P GillianItalyBernardo Dominic QUALIFIED
Silvio H CampainItalyAsiya Javayant UNQUALIFIED
Kadeem N WaycottUnited KingdomStephen Shaw QUALIFIED
Alejandro H PoquetteRussiaOnyama Limba NEW
Antonio U OldroydRussiaAnna Fali NEW
Jones S GauchoCanadaAnna Fali PROPOSAL
Leon B SergiFranceBernardo Dominic RENEWAL
Kadeem K PaprockiRussiaOnyama Limba UNQUALIFIED
Silvio F MaletJapanAnna Fali UNQUALIFIED
Sinclair G MorascaAustraliaIvan Magalhaes NEW
Mayumi H StockhamRussiaIvan Magalhaes PROPOSAL
David G DilliardCanadaStephen Shaw RENEWAL
Ricardo R GauchoRussiaIvan Magalhaes QUALIFIED
Jeanfrancois X FlosiGermanyElwin Sharvill UNQUALIFIED
Francesco O MaletSpainIvan Magalhaes NEGOTIATION
Sinclair W PerinSpainAnna Fali RENEWAL
Ashley A NestleIndiaIoni Bowcher PROPOSAL
Claire O DarakjyRussiaAnna Fali NEW
Rodrigues L MaletSpainBernardo Dominic PROPOSAL
Ashley J PaprockiCanadaAnna Fali RENEWAL
Tony T BologniaItalyIoni Bowcher PROPOSAL
David O MarrierAustraliaIvan Magalhaes NEGOTIATION
Murillo O MorascaAustraliaIoni Bowcher PROPOSAL
Adams J KuskoIndiaAmy Elsner PROPOSAL
Morrow T TollnerJapanStephen Shaw RENEWAL
Francesco I ButtBrazilElwin Sharvill QUALIFIED
Maisha H SlusarskiJapanElwin Sharvill RENEWAL
Francesco H RulapaughJapanXuxue Feng 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>