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
Darci I KolmetzSpainAnna Fali QUALIFIED
Clifford R MarrierUnited KingdomIvan Magalhaes UNQUALIFIED
Claire J MaletCanadaElwin Sharvill UNQUALIFIED
Munro P KuskoItalyElwin Sharvill QUALIFIED
Isabel F MarrierGermanyAsiya Javayant NEGOTIATION
Clifford B ButtIndiaStephen Shaw NEW
Munro Q FlosiItalyStephen Shaw PROPOSAL
Silvio C SchemmerGermanyOnyama Limba RENEWAL
David V PoquetteGermanyElwin Sharvill PROPOSAL
Chavez Q RutaJapanAnna Fali QUALIFIED
Jeanfrancois E FlosiIndiaStephen Shaw QUALIFIED
Julie D FlosiArgentinaAmy Elsner QUALIFIED
Emily E AlbaresItalyBernardo Dominic QUALIFIED
Claire L MarrierGermanyStephen Shaw NEW
Jennifer P FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Arvin J PerinRussiaElwin Sharvill NEGOTIATION
Greenwood Y CaudySpainElwin Sharvill NEGOTIATION
Jeanfrancois D CaudyBrazilAmy Elsner NEGOTIATION
Aika A FigeroaSpainOnyama Limba UNQUALIFIED
Johnson Y BriddickArgentinaAmy Elsner NEW
Costa X AmigonFranceAmy Elsner NEW
Murillo Y PoquetteGermanyAnna Fali QUALIFIED
Emily L GarufiBrazilElwin Sharvill QUALIFIED
Deepesh U WaycottArgentinaElwin Sharvill PROPOSAL
Rodrigues Y StockhamJapanIoni Bowcher PROPOSAL
Alejandro P MacleadJapanAsiya Javayant RENEWAL
Alejandro F MacleadAustraliaElwin Sharvill QUALIFIED
Adams F DoeSpainElwin Sharvill QUALIFIED
Chavez Q RimJapanIvan Magalhaes NEGOTIATION
Mujtaba C StockhamAustraliaIoni Bowcher UNQUALIFIED
Misaki O WhobreyIndiaXuxue Feng NEGOTIATION
Maisha V StensethGermanyElwin Sharvill RENEWAL
Kaitlin P AmigonArgentinaIoni Bowcher NEW
Mujtaba Q InouyeBrazilOnyama Limba NEGOTIATION
Emily D BologniaSpainOnyama Limba RENEWAL
Faith Z DarakjySpainAmy Elsner NEW
Jeanfrancois W InouyeIndiaAnna Fali UNQUALIFIED
Julie S VenereJapanAsiya Javayant PROPOSAL
Leja B CaudyGermanyBernardo Dominic NEGOTIATION
Emily I RimJapanBernardo Dominic NEW
Faith J SchemmerAustraliaAsiya Javayant NEGOTIATION
Murillo Y ButtSpainAnna Fali QUALIFIED
Maisha K CampainArgentinaIoni Bowcher UNQUALIFIED
Izzy Z OstroskyJapanIoni Bowcher RENEWAL
Arvin Q SergiRussiaElwin Sharvill UNQUALIFIED
Aditya H SchemmerCanadaIoni Bowcher RENEWAL
Leja F SergiAustraliaAmy Elsner NEGOTIATION
Antonio B OldroydSpainStephen Shaw NEGOTIATION
Ivar C InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Aditya G SergiSpainIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas W RimAustraliaIvan Magalhaes NEGOTIATION
Misaki H ChuiSpainXuxue Feng PROPOSAL
Jeanfrancois Q PoquetteArgentinaOnyama Limba NEW
Jefferson D DilliardItalyAnna Fali QUALIFIED
Aruna M FigeroaAustraliaAmy Elsner PROPOSAL
Jefferson M RulapaughUnited KingdomAsiya Javayant QUALIFIED
Chavez D SergiCanadaXuxue Feng QUALIFIED
Rodrigues O IturbideBrazilXuxue Feng RENEWAL
Mujtaba W SergiFranceBernardo Dominic RENEWAL
Arvin Q MarrierSpainIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer N KolmetzSpain2026-07-16Buckley Miller Wright QUALIFIED36Ivan Magalhaes
1001Octavia Q RutaFrance2026-08-05Dorl, James J Esq PROPOSAL23Ioni Bowcher
1002Ashley E GarufiAustralia2026-08-07Commercial Press PROPOSAL30Asiya Javayant
1003Stacey N FerenczRussia2026-08-10Rousseaux, Michael Esq NEGOTIATION82Bernardo Dominic
1004Ricardo W MaletCanada2026-08-02Printing Dimensions QUALIFIED56Elwin Sharvill
1005Antonio C PerinSpain2026-07-24Truhlar And Truhlar Attys UNQUALIFIED95Xuxue Feng
1006Sinclair H GillianItaly2026-07-17Printing Dimensions UNQUALIFIED49Amy Elsner
1007Tony K PerinUnited Kingdom2026-07-31Morlong Associates PROPOSAL27Anna Fali
1008Francesco Z StockhamSpain2026-07-28Printing Dimensions PROPOSAL61Bernardo Dominic
1009Jennifer D RulapaughArgentina2026-08-07Buckley Miller Wright PROPOSAL40Asiya Javayant
1010David P KuskoIndia2026-07-23Printing Dimensions QUALIFIED32Elwin Sharvill
1011Mujtaba D BriddickBrazil2026-07-19Buckley Miller Wright UNQUALIFIED54Bernardo Dominic
1012Jefferson G CaldareraBrazil2026-07-18King, Christopher A Esq QUALIFIED52Stephen Shaw
1013Cody D InouyeCanada2026-08-07Chapman, Ross E Esq UNQUALIFIED81Anna Fali
1014Jefferson X InouyeFrance2026-07-22Dorl, James J Esq UNQUALIFIED35Onyama Limba
1015Sinclair E BologniaJapan2026-08-04Rangoni Of Florence UNQUALIFIED74Ioni Bowcher
1016Darci U SaylorsJapan2026-07-18Feiner Bros NEW10Ioni Bowcher
1017James P BologniaItaly2026-08-10Chapman, Ross E Esq UNQUALIFIED9Onyama Limba
1018Faith I FigeroaJapan2026-08-01Rangoni Of Florence UNQUALIFIED21Asiya Javayant
1019Mujtaba A GarufiUnited Kingdom2026-07-17Dorl, James J Esq UNQUALIFIED22Amy Elsner
1020Leon T FerenczBrazil2026-08-01Benton, John B Jr RENEWAL27Ivan Magalhaes
1021Alejandro E FollerRussia2026-07-26Printing Dimensions PROPOSAL96Ivan Magalhaes
1022Mujtaba O BologniaIndia2026-08-04Commercial Press UNQUALIFIED69Xuxue Feng
1023Clifford R BriddickRussia2026-08-07Buckley Miller Wright NEW24Onyama Limba
1024Julie C StockhamSpain2026-08-05King, Christopher A Esq UNQUALIFIED55Elwin Sharvill
1025Jefferson V NickaArgentina2026-07-24Rousseaux, Michael Esq QUALIFIED19Ioni Bowcher
1026Salvatore N ChuiGermany2026-07-15Morlong Associates NEW3Asiya Javayant
1027Julie Z AmigonAustralia2026-07-14Chapman, Ross E Esq QUALIFIED76Xuxue Feng
1028Kadeem H FerenczArgentina2026-07-20Chemel, James L Cpa PROPOSAL19Xuxue Feng
1029Sinclair Y SaylorsIndia2026-07-27Chemel, James L Cpa QUALIFIED49Onyama Limba
1030Francesco X OstroskyJapan2026-07-23Feltz Printing Service RENEWAL78Xuxue Feng
1031Jennifer N PaprockiCanada2026-07-17Feltz Printing Service UNQUALIFIED30Xuxue Feng
1032Jones C IturbideUnited Kingdom2026-07-29King, Christopher A Esq QUALIFIED89Elwin Sharvill
1033Arvin M KuskoBrazil2026-07-21Commercial Press QUALIFIED45Ivan Magalhaes
1034Costa U StensethArgentina2026-08-05Buckley Miller Wright RENEWAL95Anna Fali
1035Aditya V AmigonBrazil2026-08-01Rousseaux, Michael Esq QUALIFIED99Ioni Bowcher
1036Maisha M PerinJapan2026-07-15Dorl, James J Esq NEGOTIATION88Elwin Sharvill
1037Aruna Y OstroskyJapan2026-07-27Dorl, James J Esq NEW51Stephen Shaw
1038Jones Y FerenczBrazil2026-07-13Chemel, James L Cpa QUALIFIED71Ioni Bowcher
1039Octavia P InouyeItaly2026-07-28Feiner Bros RENEWAL29Elwin Sharvill
1040Jones L PaprockiUnited Kingdom2026-07-29Chapman, Ross E Esq QUALIFIED21Bernardo Dominic
1041Smith S FollerBrazil2026-08-10Printing Dimensions NEGOTIATION55Amy Elsner
1042Leja Z ButtSpain2026-07-26Feiner Bros NEGOTIATION73Onyama Limba
1043Jennifer L BriddickCanada2026-07-15Morlong Associates QUALIFIED52Anna Fali
1044Costa V DarakjyItaly2026-07-24King, Christopher A Esq UNQUALIFIED84Xuxue Feng
1045Munro X FlosiBrazil2026-08-06Chemel, James L Cpa QUALIFIED73Elwin Sharvill
1046Tony C NickaBrazil2026-07-15Truhlar And Truhlar Attys RENEWAL54Elwin Sharvill
1047Silvio P BowleySpain2026-07-22Chemel, James L Cpa RENEWAL39Stephen Shaw
1048Nicolas J AlbaresGermany2026-07-19Rousseaux, Michael Esq NEGOTIATION35Amy Elsner
1049Francesco W ShinkoFrance2026-07-13Dorl, James J Esq UNQUALIFIED43Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jennifer P NestleUnited KingdomIvan Magalhaes UNQUALIFIED
Munro H ButtAustraliaIvan Magalhaes NEW
Jeanfrancois F BowleyJapanXuxue Feng NEGOTIATION
Sinclair H RutaItalyOnyama Limba RENEWAL
Aditya P MacleadGermanyIoni Bowcher RENEWAL
Antonio A MaletAustraliaOnyama Limba QUALIFIED
Jennifer B SaylorsGermanyAsiya Javayant NEGOTIATION
Kaitlin D KuskoCanadaAsiya Javayant NEGOTIATION
Aruna Y MarrierUnited KingdomIoni Bowcher NEGOTIATION
Kaitlin P BowleyArgentinaAnna Fali NEGOTIATION
Jeanfrancois W CaldareraJapanStephen Shaw RENEWAL
Juan E WieserBrazilAnna Fali QUALIFIED
Maisha W GarufiCanadaAnna Fali NEW
Octavia Y IturbideFranceElwin Sharvill PROPOSAL
Jefferson D MaletAustraliaBernardo Dominic UNQUALIFIED
Munro L TollnerUnited KingdomAsiya Javayant PROPOSAL
Leja X CampainIndiaAnna Fali QUALIFIED
Emily W AlbaresArgentinaXuxue Feng NEGOTIATION
Leon T AlbaresCanadaIvan Magalhaes NEGOTIATION
Wickens A PerinArgentinaStephen Shaw PROPOSAL
Cody G MaletJapanAmy Elsner QUALIFIED
Alejandro N BologniaGermanyAmy Elsner RENEWAL
Ashley Z GauchoItalyElwin Sharvill QUALIFIED
Deepesh Q DoeCanadaBernardo Dominic QUALIFIED
Kadeem I PaprockiIndiaAsiya Javayant PROPOSAL
Salvatore I RoysterUnited KingdomAnna Fali PROPOSAL
Silvio W StensethIndiaIoni Bowcher PROPOSAL
Nicolas L BriddickGermanyIvan Magalhaes PROPOSAL
Murillo F GillianRussiaXuxue Feng UNQUALIFIED
Arvin T DoeArgentinaIvan Magalhaes NEW
Deepesh G StensethGermanyElwin Sharvill NEGOTIATION
Alejandro C DilliardSpainElwin Sharvill NEW
Clifford D KuskoSpainElwin Sharvill NEGOTIATION
Maria W SergiAustraliaBernardo Dominic NEGOTIATION
Deepesh T MaletCanadaBernardo Dominic UNQUALIFIED
David M RulapaughGermanyBernardo Dominic RENEWAL
Adams H FigeroaCanadaIoni Bowcher PROPOSAL
Stacey A VenereCanadaBernardo Dominic NEGOTIATION
David Q VenereJapanBernardo Dominic NEGOTIATION
Ricardo K PaprockiGermanyAmy Elsner QUALIFIED
Julie X ChuiItalyIvan Magalhaes NEGOTIATION
Murillo T FlosiBrazilBernardo Dominic NEW
Aruna Z MorascaUnited KingdomStephen Shaw QUALIFIED
Rodrigues R VocelkaSpainIvan Magalhaes NEGOTIATION
Maisha S KuskoRussiaXuxue Feng RENEWAL
Aruna M IturbideGermanyAnna Fali RENEWAL
Alejandro V IturbideFranceAnna Fali NEGOTIATION
Silvio N RimSpainAnna Fali QUALIFIED
Murillo Y MaletBrazilStephen Shaw QUALIFIED
Emily B RutaIndiaIoni Bowcher PROPOSAL
Frozen Columns
Name
Misaki P Doe
Adams D Garufi
David Z Stenseth
Jennifer S Oldroyd
Ashley V Sergi
Leon F Inouye
Jones T Dilliard
Arvin U Inouye
Julie Q Flosi
Mujtaba R Nicka
Darci J Nestle
Stacey N Albares
Deepesh A Bolognia
Smith U Nicka
Mayumi C Maclead
Misaki A Ruta
Juan S Albares
Leja P Flosi
Morrow G Ferencz
Maisha X Paprocki
Claire X Ferencz
Aditya H Gillian
Salvatore X Bowley
Jennifer B Rulapaugh
Munro C Bolognia
Jefferson P Whobrey
Rodrigues B Campain
Izzy Z Perin
Kadeem D Nicka
Julie K Schemmer
Maria Z Nicka
Aruna Z Maclead
Faith L Malet
Francesco H Wieser
Cody L Saylors
Munro Q Shinko
Smith Q Rulapaugh
Aruna N Venere
Alejandro R Chui
Aika V Whobrey
Faith H Chui
Cody U Waycott
Sinclair C Ferencz
Wickens P Schemmer
Francesco S Darakjy
Tony B Venere
Nicolas S Schemmer
Smith F Gaucho
Nicolas N Bolognia
Jefferson F Figeroa
IdCountryDate
1000India2026-07-21
1001Italy2026-08-05
1002United Kingdom2026-08-05
1003Japan2026-08-03
1004Germany2026-08-08
1005Germany2026-07-23
1006Brazil2026-07-16
1007Australia2026-07-16
1008Canada2026-07-24
1009Italy2026-08-01
1010France2026-07-27
1011India2026-07-20
1012Canada2026-08-06
1013United Kingdom2026-08-03
1014Canada2026-07-23
1015Russia2026-07-17
1016United Kingdom2026-08-04
1017United Kingdom2026-07-17
1018Argentina2026-07-21
1019United Kingdom2026-08-09
1020Canada2026-08-03
1021Russia2026-07-30
1022Canada2026-07-27
1023Spain2026-07-25
1024Italy2026-07-27
1025Argentina2026-07-23
1026Brazil2026-08-05
1027Canada2026-07-31
1028Japan2026-07-25
1029Russia2026-08-01
1030Brazil2026-07-30
1031India2026-07-29
1032India2026-07-15
1033Australia2026-08-08
1034Germany2026-07-18
1035Italy2026-07-15
1036Germany2026-08-06
1037United Kingdom2026-07-14
1038Italy2026-08-04
1039United Kingdom2026-07-23
1040Argentina2026-07-18
1041India2026-08-08
1042Japan2026-07-18
1043Japan2026-08-02
1044Brazil2026-07-27
1045Argentina2026-07-24
1046Germany2026-07-31
1047Spain2026-07-15
1048Russia2026-07-24
1049Germany2026-07-25

On-Demand Data

NameIdCountryDate
James F Maclead1000United Kingdom2026-07-26
Greenwood A Royster1001Germany2026-08-02
Ivar E Foller1002Spain2026-08-11
Sinclair W Rim1003India2026-08-10
Tony E Stockham1004Australia2026-07-15
Munro E Morasca1005Canada2026-07-21
Salvatore C Inouye1006United Kingdom2026-07-30
James K Ostrosky1007Russia2026-07-22
Maria N Kusko1008Germany2026-07-20
Johnson A Malet1009Australia2026-07-19
Ivar T Maclead1010France2026-07-15
James X Whobrey1011Canada2026-08-11
Antonio G Stockham1012Italy2026-07-13
Morrow T Stockham1013France2026-07-31
Claire Q Doe1014Argentina2026-08-08
Smith H Marrier1015Argentina2026-07-23
Aika D Flosi1016Italy2026-08-10
David Q Gaucho1017Australia2026-07-25
Rodrigues H Doe1018United Kingdom2026-07-29
Aditya Q Waycott1019France2026-08-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson T GillianBrazilOnyama Limba PROPOSAL
Leja S WhobreyItalyIvan Magalhaes NEW
Julie S BologniaArgentinaStephen Shaw NEW
Ivar U StensethArgentinaAsiya Javayant RENEWAL
David B BologniaAustraliaAmy Elsner NEGOTIATION
Clifford B MarrierSpainStephen Shaw UNQUALIFIED
Tony M WieserArgentinaStephen Shaw PROPOSAL
Misaki Z FollerCanadaStephen Shaw NEGOTIATION
Misaki D DoeSpainAmy Elsner NEGOTIATION
Isabel X VocelkaGermanyOnyama Limba RENEWAL
Rodrigues F OstroskyAustraliaOnyama Limba NEW
Clifford T KolmetzRussiaIvan Magalhaes NEGOTIATION
Salvatore K FigeroaRussiaOnyama Limba PROPOSAL
Clifford H CaudyFranceElwin Sharvill NEGOTIATION
Silvio H KuskoFranceAmy Elsner QUALIFIED
Jeanfrancois A OldroydUnited KingdomStephen Shaw QUALIFIED
Francesco Z MacleadGermanyIoni Bowcher QUALIFIED
Maisha O RoysterBrazilAmy Elsner PROPOSAL
Francesco K WaycottIndiaIoni Bowcher NEGOTIATION
Costa D KolmetzArgentinaIoni Bowcher NEW
Wickens G NestleUnited KingdomStephen Shaw PROPOSAL
Octavia W DarakjyItalyElwin Sharvill PROPOSAL
James O ButtBrazilBernardo Dominic PROPOSAL
Ashley E PoquetteGermanyIoni Bowcher PROPOSAL
Julie B GauchoJapanAmy Elsner RENEWAL
Nicolas D WieserItalyOnyama Limba NEW
Izzy X RulapaughItalyIoni Bowcher PROPOSAL
Aika X PaprockiItalyBernardo Dominic PROPOSAL
Rodrigues W PerinArgentinaIoni Bowcher NEGOTIATION
David L SlusarskiArgentinaAsiya Javayant UNQUALIFIED
Jefferson O SaylorsSpainAmy Elsner QUALIFIED
Tony A GillianJapanAmy Elsner NEGOTIATION
Nicolas U SaylorsIndiaIoni Bowcher QUALIFIED
Antonio L KolmetzUnited KingdomIoni Bowcher PROPOSAL
Aika V OstroskyRussiaAsiya Javayant NEGOTIATION
Sinclair N ButtGermanyAmy Elsner PROPOSAL
Wickens H DarakjyBrazilAsiya Javayant PROPOSAL
Munro V MacleadAustraliaIvan Magalhaes UNQUALIFIED
Silvio B MaletFranceIvan Magalhaes NEW
Wickens Q GarufiAustraliaAmy Elsner 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>