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
Maisha X StockhamSpainIvan Magalhaes NEGOTIATION
Ricardo W StensethUnited KingdomIoni Bowcher PROPOSAL
Jefferson M RimItalyElwin Sharvill PROPOSAL
Juan S WhobreyBrazilAmy Elsner UNQUALIFIED
Jefferson T OldroydRussiaAnna Fali NEW
Salvatore F AlbaresJapanAsiya Javayant PROPOSAL
Ricardo I CaldareraSpainIvan Magalhaes NEGOTIATION
Faith Q RoysterItalyOnyama Limba QUALIFIED
Octavia B GauchoUnited KingdomIvan Magalhaes NEGOTIATION
Murillo N AlbaresAustraliaAmy Elsner RENEWAL
Maria F MorascaFranceXuxue Feng PROPOSAL
Emily F MacleadRussiaAmy Elsner NEW
Costa D BologniaJapanElwin Sharvill PROPOSAL
Ricardo T BologniaAustraliaAmy Elsner NEW
Izzy D MaletIndiaIoni Bowcher QUALIFIED
Costa C WaycottArgentinaBernardo Dominic UNQUALIFIED
Isabel J PaprockiRussiaElwin Sharvill NEGOTIATION
Misaki W SaylorsUnited KingdomElwin Sharvill RENEWAL
Rodrigues M GlickAustraliaIvan Magalhaes PROPOSAL
Ivar J NickaCanadaAsiya Javayant QUALIFIED
Munro C MacleadAustraliaStephen Shaw NEW
Jennifer V StockhamUnited KingdomAsiya Javayant RENEWAL
Maisha J MarrierIndiaIoni Bowcher UNQUALIFIED
Cody F BologniaRussiaAsiya Javayant UNQUALIFIED
Johnson X WaycottAustraliaAsiya Javayant RENEWAL
Adams G OstroskyAustraliaBernardo Dominic UNQUALIFIED
Arvin P SlusarskiAustraliaStephen Shaw NEGOTIATION
Rodrigues M VocelkaGermanyAsiya Javayant QUALIFIED
Maisha S CaldareraJapanIvan Magalhaes RENEWAL
Juan L GauchoRussiaOnyama Limba UNQUALIFIED
Misaki B InouyeUnited KingdomOnyama Limba QUALIFIED
Arvin Y AmigonGermanyStephen Shaw UNQUALIFIED
Johnson K BriddickFranceStephen Shaw PROPOSAL
Rodrigues D NestleArgentinaAmy Elsner RENEWAL
Munro E NickaBrazilAsiya Javayant UNQUALIFIED
Stacey S KuskoFranceBernardo Dominic QUALIFIED
Nicolas R WhobreyArgentinaElwin Sharvill RENEWAL
Rodrigues Q RimUnited KingdomXuxue Feng PROPOSAL
Leja D FollerIndiaBernardo Dominic NEGOTIATION
Sinclair T WhobreyFranceAnna Fali NEGOTIATION
Aika N MaletCanadaAsiya Javayant RENEWAL
Aruna Y DarakjyUnited KingdomBernardo Dominic UNQUALIFIED
Leon C GauchoIndiaXuxue Feng UNQUALIFIED
Mujtaba Z SergiItalyIvan Magalhaes NEW
Maisha A PerinBrazilAnna Fali PROPOSAL
Murillo D WaycottArgentinaElwin Sharvill QUALIFIED
Johnson U RimItalyXuxue Feng QUALIFIED
Clifford G InouyeBrazilIvan Magalhaes RENEWAL
Maisha M KolmetzUnited KingdomStephen Shaw RENEWAL
Ricardo M MarrierAustraliaStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Johnson U FlosiGermanyIoni Bowcher UNQUALIFIED
Stacey A WieserJapanAnna Fali RENEWAL
Deepesh S ChuiIndiaIoni Bowcher UNQUALIFIED
Arvin S GlickGermanyIoni Bowcher NEW
Jefferson Z BologniaCanadaBernardo Dominic RENEWAL
Maria X NestleUnited KingdomAmy Elsner NEW
James F BriddickSpainAsiya Javayant PROPOSAL
Mayumi C KuskoSpainXuxue Feng QUALIFIED
Leja W IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Isabel L IturbideGermanyStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna B KuskoArgentina2026-06-27Feiner Bros NEW74Anna Fali
1001Salvatore Q ChuiBrazil2026-06-26Dorl, James J Esq NEW93Ivan Magalhaes
1002Juan J MaletSpain2026-07-16Rangoni Of Florence UNQUALIFIED16Ioni Bowcher
1003Kadeem S OldroydCanada2026-07-21Chapman, Ross E Esq NEGOTIATION90Xuxue Feng
1004Adams B OstroskySpain2026-07-21Morlong Associates NEGOTIATION78Onyama Limba
1005Tony Y PaprockiSpain2026-06-23Chapman, Ross E Esq NEW75Stephen Shaw
1006Munro S ShinkoAustralia2026-07-04Buckley Miller Wright NEW33Bernardo Dominic
1007Clifford L MarrierGermany2026-07-13Buckley Miller Wright NEGOTIATION21Stephen Shaw
1008Maisha H AlbaresUnited Kingdom2026-06-24Commercial Press QUALIFIED72Xuxue Feng
1009Leja T IturbideSpain2026-07-04Feltz Printing Service UNQUALIFIED87Anna Fali
1010Aruna H FlosiItaly2026-07-15Buckley Miller Wright NEGOTIATION54Anna Fali
1011Ricardo C CampainItaly2026-06-24Rangoni Of Florence QUALIFIED77Asiya Javayant
1012Kadeem L StensethCanada2026-07-20Morlong Associates QUALIFIED90Stephen Shaw
1013Kadeem H SaylorsUnited Kingdom2026-07-22Dorl, James J Esq RENEWAL94Ioni Bowcher
1014Kaitlin E ShinkoCanada2026-07-11Commercial Press NEGOTIATION84Xuxue Feng
1015Kadeem G SlusarskiCanada2026-06-28Chanay, Jeffrey A Esq NEW37Amy Elsner
1016Wickens I RutaSpain2026-07-22King, Christopher A Esq PROPOSAL72Xuxue Feng
1017Aika B RoysterFrance2026-07-04Buckley Miller Wright RENEWAL73Amy Elsner
1018Aika P KuskoArgentina2026-07-07King, Christopher A Esq QUALIFIED49Stephen Shaw
1019Julie O GauchoSpain2026-06-25King, Christopher A Esq QUALIFIED38Asiya Javayant
1020Greenwood C GillianJapan2026-07-17Rangoni Of Florence UNQUALIFIED88Anna Fali
1021Aika M StensethIndia2026-07-22Feiner Bros UNQUALIFIED47Elwin Sharvill
1022Greenwood W GauchoFrance2026-07-16King, Christopher A Esq RENEWAL47Bernardo Dominic
1023Rodrigues P CampainUnited Kingdom2026-07-02Chemel, James L Cpa NEW67Onyama Limba
1024Rodrigues B SergiJapan2026-07-12Buckley Miller Wright NEW70Ivan Magalhaes
1025Leja G MacleadSpain2026-07-21Rangoni Of Florence NEGOTIATION33Xuxue Feng
1026Maisha R CaudyAustralia2026-07-11Buckley Miller Wright UNQUALIFIED58Ioni Bowcher
1027Jones V VocelkaUnited Kingdom2026-07-07Benton, John B Jr QUALIFIED44Asiya Javayant
1028Antonio I GarufiGermany2026-07-16Rangoni Of Florence RENEWAL96Asiya Javayant
1029Emily A CaldareraUnited Kingdom2026-07-11Feiner Bros QUALIFIED35Elwin Sharvill
1030Claire Z KuskoRussia2026-07-05King, Christopher A Esq NEW9Bernardo Dominic
1031Costa K MaletSpain2026-06-27Chemel, James L Cpa UNQUALIFIED35Amy Elsner
1032Maria E WieserUnited Kingdom2026-07-07Buckley Miller Wright UNQUALIFIED44Elwin Sharvill
1033Ashley M BologniaUnited Kingdom2026-07-14Truhlar And Truhlar Attys PROPOSAL55Bernardo Dominic
1034Munro K WieserUnited Kingdom2026-07-08King, Christopher A Esq UNQUALIFIED59Xuxue Feng
1035Misaki G PaprockiFrance2026-07-02Buckley Miller Wright NEW56Ivan Magalhaes
1036Alejandro Q GauchoJapan2026-07-15Chanay, Jeffrey A Esq PROPOSAL62Onyama Limba
1037Wickens V WaycottGermany2026-07-09Rousseaux, Michael Esq PROPOSAL23Elwin Sharvill
1038Darci N CaldareraJapan2026-06-30Rousseaux, Michael Esq NEGOTIATION37Amy Elsner
1039Wickens V CaudyIndia2026-06-28Morlong Associates RENEWAL2Xuxue Feng
1040Jefferson Z MacleadRussia2026-07-14Feltz Printing Service QUALIFIED86Xuxue Feng
1041Cody X AmigonIndia2026-07-12Feiner Bros RENEWAL2Bernardo Dominic
1042Aruna I OstroskyBrazil2026-06-29King, Christopher A Esq QUALIFIED94Ioni Bowcher
1043Murillo E DoeUnited Kingdom2026-06-25Chemel, James L Cpa RENEWAL58Xuxue Feng
1044Mayumi O InouyeCanada2026-06-29Buckley Miller Wright NEGOTIATION58Asiya Javayant
1045Tony J PerinFrance2026-07-19Chanay, Jeffrey A Esq QUALIFIED98Xuxue Feng
1046Octavia Z PaprockiItaly2026-07-12Rousseaux, Michael Esq PROPOSAL18Asiya Javayant
1047Sinclair B OldroydAustralia2026-07-17Benton, John B Jr PROPOSAL88Stephen Shaw
1048Kaitlin I SlusarskiRussia2026-07-01Printing Dimensions NEGOTIATION95Onyama Limba
1049Darci W ChuiBrazil2026-07-06Rangoni Of Florence NEGOTIATION15Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Octavia E MarrierBrazilBernardo Dominic RENEWAL
Stacey O TollnerFranceIvan Magalhaes UNQUALIFIED
Chavez T BowleyGermanyAsiya Javayant NEW
Jeanfrancois V GauchoArgentinaBernardo Dominic UNQUALIFIED
Arvin I DoeCanadaAmy Elsner NEGOTIATION
Johnson O DarakjyArgentinaStephen Shaw PROPOSAL
Mujtaba S StockhamSpainIoni Bowcher RENEWAL
Johnson R ShinkoFranceAmy Elsner UNQUALIFIED
Smith C StensethGermanyIvan Magalhaes QUALIFIED
James K GarufiGermanyAsiya Javayant QUALIFIED
Ashley B DoeArgentinaStephen Shaw QUALIFIED
Isabel V DilliardBrazilAnna Fali RENEWAL
Wickens F MaletGermanyAnna Fali NEGOTIATION
Morrow V FollerIndiaElwin Sharvill NEGOTIATION
Ricardo B ShinkoGermanyStephen Shaw UNQUALIFIED
Izzy I GlickSpainElwin Sharvill UNQUALIFIED
Clifford V GauchoIndiaAsiya Javayant QUALIFIED
Claire K FigeroaBrazilAmy Elsner NEW
Nicolas G KolmetzGermanyBernardo Dominic RENEWAL
Jennifer O PaprockiIndiaOnyama Limba QUALIFIED
Murillo W ChuiAustraliaBernardo Dominic NEGOTIATION
Adams M BriddickRussiaElwin Sharvill NEW
Stacey M ShinkoSpainStephen Shaw NEW
Sinclair S BowleyArgentinaBernardo Dominic NEW
Jeanfrancois T OldroydCanadaBernardo Dominic NEGOTIATION
Greenwood Y MaletRussiaElwin Sharvill UNQUALIFIED
Izzy B GillianIndiaStephen Shaw NEGOTIATION
Izzy P WaycottIndiaIvan Magalhaes QUALIFIED
Jennifer D DoeUnited KingdomXuxue Feng PROPOSAL
Sinclair R ShinkoCanadaOnyama Limba NEW
Octavia X CaldareraAustraliaStephen Shaw UNQUALIFIED
Nicolas O OldroydRussiaElwin Sharvill NEW
Costa J OstroskyFranceOnyama Limba NEW
Munro W GarufiRussiaAnna Fali NEGOTIATION
Jennifer O CaldareraIndiaAmy Elsner NEW
Salvatore T FerenczGermanyIoni Bowcher RENEWAL
Munro M GauchoAustraliaXuxue Feng PROPOSAL
Emily V BologniaArgentinaAsiya Javayant NEW
Maisha M RutaRussiaAnna Fali NEW
Leon U PoquetteCanadaAnna Fali PROPOSAL
Juan A CaldareraGermanyIoni Bowcher NEW
Wickens H ShinkoJapanIvan Magalhaes RENEWAL
Alejandro O RulapaughRussiaBernardo Dominic RENEWAL
Octavia M SergiArgentinaAnna Fali NEGOTIATION
Rodrigues P MacleadAustraliaIvan Magalhaes RENEWAL
Leon B RutaCanadaStephen Shaw QUALIFIED
James E MorascaItalyBernardo Dominic NEW
Johnson C OstroskySpainXuxue Feng RENEWAL
Mujtaba L StockhamSpainAsiya Javayant PROPOSAL
Maisha Q BriddickJapanAsiya Javayant NEW
Frozen Columns
Name
Murillo E Caldarera
Murillo M Kusko
Claire V Kusko
Izzy Z Garufi
Greenwood U Malet
Arvin W Saylors
Costa F Slusarski
Claire G Caudy
Murillo M Stenseth
Adams C Royster
Izzy Z Gillian
Aruna K Maclead
Jennifer U Rim
Ricardo M Kolmetz
Aika Y Malet
Aditya K Sergi
Aika O Whobrey
Stacey K Slusarski
Juan F Darakjy
David Z Gillian
Francesco U Nestle
Ashley I Rulapaugh
Aika F Maclead
Emily Y Butt
Maria Z Vocelka
Morrow M Briddick
Ivar U Maclead
Julie G Waycott
Jones W Ostrosky
Ivar T Caldarera
Leja X Shinko
Isabel U Royster
Izzy H Campain
Wickens B Doe
Arvin T Perin
Izzy W Nestle
Julie Z Ruta
Costa U Bolognia
Octavia C Kusko
Kaitlin T Nicka
Rodrigues W Venere
Arvin Q Shinko
Deepesh I Caldarera
Adams V Malet
Maria R Vocelka
Jefferson E Stenseth
Aditya I Kolmetz
Emily A Caudy
Greenwood A Oldroyd
Mujtaba D Kolmetz
IdCountryDate
1000Argentina2026-07-10
1001Japan2026-07-01
1002Russia2026-07-09
1003Canada2026-06-27
1004Germany2026-07-03
1005Russia2026-07-11
1006France2026-07-15
1007France2026-07-15
1008Spain2026-07-10
1009India2026-07-13
1010Spain2026-07-06
1011Russia2026-06-25
1012France2026-07-11
1013France2026-07-05
1014Canada2026-07-01
1015Australia2026-07-04
1016Russia2026-07-12
1017Canada2026-07-19
1018Russia2026-07-07
1019Spain2026-07-19
1020India2026-07-14
1021France2026-07-21
1022Spain2026-07-21
1023Brazil2026-06-23
1024Brazil2026-07-05
1025Australia2026-06-26
1026Canada2026-07-12
1027Italy2026-06-25
1028Spain2026-07-21
1029Germany2026-07-09
1030Russia2026-07-06
1031Argentina2026-07-11
1032Spain2026-07-18
1033Canada2026-07-06
1034France2026-06-25
1035Japan2026-07-06
1036United Kingdom2026-07-14
1037France2026-07-17
1038India2026-07-15
1039France2026-07-07
1040Russia2026-06-28
1041Italy2026-07-18
1042United Kingdom2026-06-29
1043Russia2026-07-01
1044Australia2026-07-01
1045Russia2026-07-16
1046Canada2026-07-16
1047Japan2026-07-10
1048United Kingdom2026-07-15
1049Canada2026-07-04

On-Demand Data

NameIdCountryDate
Maria M Nicka1000Japan2026-07-18
Isabel L Chui1001Italy2026-07-14
Aruna G Gaucho1002Russia2026-07-15
David V Gillian1003India2026-07-05
Smith J Chui1004Argentina2026-07-08
Clifford K Foller1005Germany2026-07-02
Leja S Campain1006Brazil2026-06-29
Morrow Y Bolognia1007Brazil2026-07-18
Deepesh B Flosi1008Germany2026-07-02
Claire F Garufi1009Germany2026-06-25
James P Butt1010Japan2026-06-30
Chavez V Rim1011India2026-07-05
Mujtaba E Glick1012Australia2026-07-05
Stacey O Bowley1013Russia2026-07-02
Juan O Amigon1014Spain2026-07-16
Adams W Gaucho1015Germany2026-07-06
Jones P Albares1016Canada2026-07-20
Adams J Saylors1017India2026-07-22
Ashley C Albares1018India2026-06-26
Octavia C Amigon1019Brazil2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci V SergiArgentinaBernardo Dominic NEGOTIATION
Antonio R GarufiGermanyAnna Fali NEGOTIATION
Mayumi H MarrierBrazilAnna Fali NEW
Misaki B GillianFranceIoni Bowcher PROPOSAL
Octavia N VenereUnited KingdomAmy Elsner UNQUALIFIED
Jennifer V BologniaItalyBernardo Dominic RENEWAL
Leja I StockhamAustraliaIvan Magalhaes NEW
Cody T StockhamUnited KingdomIvan Magalhaes UNQUALIFIED
Jefferson I BowleyJapanIvan Magalhaes QUALIFIED
Silvio J GlickArgentinaOnyama Limba PROPOSAL
Deepesh N CaldareraArgentinaIvan Magalhaes NEW
Kaitlin S MorascaUnited KingdomOnyama Limba QUALIFIED
Chavez W InouyeBrazilIoni Bowcher NEW
Ivar D VenereBrazilStephen Shaw NEGOTIATION
Adams M NickaCanadaStephen Shaw RENEWAL
Julie Z VenereItalyElwin Sharvill NEGOTIATION
Aika L MaletRussiaStephen Shaw QUALIFIED
Arvin M StensethAustraliaAsiya Javayant UNQUALIFIED
Tony A PoquetteUnited KingdomBernardo Dominic RENEWAL
Maria H GauchoArgentinaAnna Fali NEW
Claire D RimGermanyAsiya Javayant NEW
Misaki O KolmetzArgentinaStephen Shaw UNQUALIFIED
Deepesh I OstroskyGermanyIoni Bowcher UNQUALIFIED
Octavia C FigeroaAustraliaStephen Shaw PROPOSAL
Leja N SergiIndiaStephen Shaw NEGOTIATION
Misaki J DarakjyArgentinaAnna Fali RENEWAL
Smith Z MacleadBrazilBernardo Dominic QUALIFIED
Antonio P OldroydAustraliaAsiya Javayant QUALIFIED
Adams G FollerRussiaXuxue Feng PROPOSAL
Aditya E NestleBrazilAmy Elsner QUALIFIED
Arvin B BowleyArgentinaIvan Magalhaes QUALIFIED
Chavez K CaldareraCanadaOnyama Limba QUALIFIED
Cody M RoysterCanadaXuxue Feng UNQUALIFIED
Alejandro T SlusarskiSpainStephen Shaw PROPOSAL
Octavia J MarrierSpainElwin Sharvill NEW
Cody T DarakjyCanadaIoni Bowcher PROPOSAL
Greenwood O WaycottRussiaAmy Elsner UNQUALIFIED
Faith O AmigonRussiaAsiya Javayant UNQUALIFIED
Jefferson L IturbideUnited KingdomBernardo Dominic RENEWAL
Jefferson R ShinkoItalyElwin Sharvill 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>